气压监测自动化测试方案

前言
由于项目中设备使用气体对容器进行充气。需要测试充气稳定性和一些管道堵塞等情况下防护措施。开发本套自动化测试方案。

一、试验器件
      1、Arduino mega2560单片机 * 1
      2、电磁阀 * 3
      3、气体压力传感器 * 1
      4、待测设备

二、试验方法
      1、单片机写入程序,电脑USB串口对单片机发送串口指令分别执行电磁阀闭合以及压力传感器设备数据读取
      2、对不同管路进行关闭
      3、通过脚本实现每隔0.5秒读取一次压力传感器设备数值,然后记录在一个Excel列表中
     4、通过程序对Excel列表中的数据进行折线图显示,分析充气稳定性

三、试验
1、搭建测试环境
在这里插入图片描述
四、控制和实现代码

import time
import serial
import openpyxl
from openpyxl import Workbook
import os

"""
以下是3个电磁阀控制代码
"""

"""
串口参数设置
"""
PORT = 'COM17'  # 根据实际情况修改端口号
BAUDRATE = 9600  # 波特率
BYTESIZE = 8  # 数据位
PARITY = 'N'  # 奇偶校验
STOPBITS = 1  # 停止位
TIMEOUT = 2  #

"""
指令参数设置
"""
END_MARKER = b"\xEF\xEF"  # 结束标记

"""
压力采集控制
"""
command_barometric_pressure_sensor = b"\xFE\xFE\x02\x02\x04\xEF\xEF"
expected_barometric_pressure_sensor_response = b"\xFE\xFE\x04\x82"
LOOP_TIME = 30  # 实验持续时间(秒)
SAMPLE_INTERVAL = 0.5  # 传感器采样间隔(秒)

"""
文件参数设置
"""
EXCEL_FILENAME = "test_bunper_123_new20241016.xlsx"

# todo 电磁阀控制变量
# =============================打   开  电  磁  阀======================================
"""
电磁阀控制打开-----1号电磁阀
"""
command_open_magnetic_valve1 = b"\xFE\xFE\x04\x01\x01\x01\x07\xEF\xEF"
expected_open_magnetic_valve1_response = b"\xFE\xFE\x04\x81\x01\x01\x00"

"""
电磁阀控制打开-----2号电磁阀
"""
command_open_magnetic_valve2 = b"\xFE\xFE\x04\x01\x02\x01\x07\xEF\xEF"
expected_open_magnetic_valve2_response = b"\xFE\xFE\x04\x81\x02\x01\x00"

"""
电磁阀控制打开-----3号电磁阀
"""
command_open_magnetic_valve3 = b"\xFE\xFE\x04\x01\x03\x01\x07\xEF\xEF"
expected_open_magnetic_valve3_response = b"\xFE\xFE\x04\x81\x03\x01\x00"

"""
电磁阀控制打开-----4号电磁阀
"""
command_open_magnetic_valve4 = b"\xFE\xFE\x04\x01\x04\x01\x07\xEF\xEF"
expected_open_magnetic_valve4_response = b"\xFE\xFE\x04\x81\x04\x01\x00"

# =============================关  闭  电  磁  阀======================================
"""
电磁阀控制关闭-----1号电磁阀
"""
command_close_magnetic_valve1 = b"\xFE\xFE\x04\x01\x01\x00\x07\xEF\xEF"
expected_close_magnetic_valve1_response = b"\xFE\xFE\x04\x81\x01\x00\x00"

"""
电磁阀控制关闭-----2号电磁阀
"""
command_close_magnetic_valve2 = b"\xFE\xFE\x04\x01\x02\x00\x07\xEF\xEF"
expected_close_magnetic_valve2_response = b"\xFE\xFE\x04\x81\x02\x00\x00"

"""
电磁阀控制关闭-----3号电磁阀
"""
command_close_magnetic_valve3 = b"\xFE\xFE\x04\x01\x03\x00\x07\xEF\xEF"
expected_close_magnetic_valve3_response = b"\xFE\xFE\x04\x81\x03\x00\x00"

"""
电磁阀控制关闭-----4号电磁阀
"""
command_close_magnetic_valve4 = b"\xFE\xFE\x04\x01\x04\x00\x07\xEF\xEF"
expected_close_magnetic_valve4_response = b"\xFE\xFE\x04\x81\x04\x00\x00"


# 定义串口通信类
class SerialCommunicator:
    def __init__(self, port):
        """
        初始化串口设置
        """
        self.ser = serial.Serial(
            port=port,  # 串口名称
            baudrate=BAUDRATE,  # 波特率
            bytesize=BYTESIZE,  # 数据位
            parity=PARITY,  # 校验位
            stopbits=STOPBITS,  # 停止位
            timeout=TIMEOUT  # 超时设置
        )
        self.ser.flushInput()  # 清空输入缓冲区
        self.ser.flushOutput()  # 清空输出缓冲区

    def send_data(self, data):
        """发送数据到串口"""
        self.ser.write(data)

    def receive_data(self):
        """从串口接收数据"""
        buffer = bytearray()
        start_time = time.time()
        timeout = 1  # 设置超时时间
        while time.time() - start_time < timeout:
            count = self.ser.in_waiting
            if count != 0:
                recv = self.ser.read(count)
                buffer.extend(recv)  # 将新接收到的数据追加到缓冲区

                # 检查是否包含预期的结束标记
                if END_MARKER in buffer:
                    message, buffer = buffer.split(END_MARKER, 1)
                    return message
            time.sleep(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值