# Oxygen_Ctrl.py 函数文档 氧化测试仪器的核心控制模块,负责整个系统的运行控制、数据采集、温度控制和通信管理。 ## 全局常量 - coeff_flow: 流量系数 (10)
- coeff_Flow_k: 触摸屏K值系数 (100)
- coeff_Flow_b: 触摸屏B值系数 (10)
- MEASURE_TEMP_COFF: 温度小数点系数 (1)
- CONFIG_TEMP_COFF: 配置温度小数点系数 (100) ## GPIO 定义 - LED_SLAVE: GPIO16,维电器指示灯
- LED_4G: GPIO38,4G状态指示灯
- LED_Wifi: GPIO39,WiFi状态指示灯
- LED_Heat: GPIO40,加热状态指示灯
- LED_RELAY: GPIO15,加热控制继电器 ## Oxygen_Ctrl 类 ### 初始化函数
python
def __init__(self, port=2, baudrate=9600)

- 功能: 初始化氧化测试仪器控制系统
- 参数:
- port: 串口号,默认2
- baudrate: 波特率,默认9600
- 初始化内容:
- EEPROM配置
- Modbus通信
- 触摸屏控制
- 温度流量数据缓存
- LED指示灯状态
- 系统状态机
- AI控制器 ### 核心控制函数 #### Heat_ctrl(self, bHeat)
- 功能: 控制加热器开关
- 参数:
- bHeat: 布尔值,True开启加热,False关闭加热 #### set_p_out(self, pwm_width)
- 功能: 设置PWM输出控制加热
- 参数:
- pwm_width: PWM脉宽,控制加热功率 #### Ai_read(self)
- 功能: 读取温度和流量传感器数据
- 实现: 通过Modbus协议读取4路温度和12路流量数据 #### Ai_write(self)
- 功能: 写入12路流量控制值
- 实现: 通过Modbus协议写入流量控制数据 #### state_machine(self)
- 功能: 系统状态机
- 状态定义:
- 0-1: 等待氧化
- 2-3: 加热至目标温度
- 4: 系统就绪等待测试
- 5: 氧化测试运行中 ### 数据处理函数 #### update_Anlog_in_value(self)
- 功能: 更新模拟量输入值的校准数据
- 处理内容:
- 温度校准换算
- 12路流量校准换算 #### update_flow_out_value(self)
- 功能: 更新流量输出值
- 实现: 根据配置参数计算12路流量输出值 ### 通信接口函数 #### Ai_Dwin_show(self)
- 功能: 显示数据到DWIN触摸屏
- 显示内容:
- 12路流量数据
- 温度数据 #### updateMqtt_dwin(self, updatePeriod)
- 功能: 更新MQTT和触摸屏数据
- 参数:
- updatePeriod: 更新周期
- 上传数据:
- 12路流量值
- 温度值
- 系统状态
- 剩余时间 ### 任务管理函数 #### add_task(self)
- 功能: 添加系统任务
- 任务列表:
- Modbus数据读取 (200ms周期)
- 触摸屏更新 (5ms周期)
- 状态机运行 (100ms周期)
- 模糊控制 (PWM周期) ## 全局函数 ### ctrl_run()
- 功能: 系统主运行函数
- 执行流程:
1. 等待硬件初始化
2. 初始化任务系统
3. 连接4G网络
4. 初始化MQTT
5. 启动任务调度 ### Connect4G_NTP()
- 功能: 连接4G网络并同步时间
- 实现:
- 同步网络时间
- 更新LED状态
- 更新显示信息 ### Task_refresh_modbus_in()
- 功能: Modbus数据刷新任务
- 实现:
- 读取传感器数据
- 更新校准值
- 更新显示 ### Task_refresh_dwin_input()
- 功能: 触摸屏输入刷新任务
- 实现: 运行触摸屏处理程序 ### Task_state_machine()
- 功能: 状态机任务
- 实现: 运行系统状态机 ## 使用示例
python
from Oxygen_Ctrl import ctrl_run if __name__ == '__main__':
ctrl_run()
## 依赖模块
- modbus: Modbus通信协议
- eeprom: 配置存储
- config: 系统配置
- DwinTest: 触摸屏控制
- fuzzy: 模糊控制算法
- task: 任务调度
- IOT_4G: 4G通信
- mqtt: MQTT协议 ## 注意事项
1. 系统启动前需要等待5秒让硬件稳定
2. 温度和流量数据有不同的单位换算系数
3. 状态机状态转换需要注意安全性
4. 加热控制需要注意过温保护
5. 网络通信需要考虑断线重连