新增气体流量控制 GUI 与 Windows 可执行程序

新增 Tkinter 单窗口操作界面和后台设备状态机,支持连接与断开 PLC、在线设置目标流量、实时显示传感器数据与下发总开度,并在监测及闭环阶段统一执行安全保护。

默认将 valve_model_004.json 内置到单文件 EXE,同时支持校验并选择外部阀模型;整理标定 JSON/PNG 到 valve_model 目录并同步配置路径。补充运行层离线测试、PyInstaller 构建配置、交付文件和完整的 README 使用及重新打包说明。
This commit is contained in:
2026-09-03 17:35:40 +08:00
parent d7ed4181df
commit ead625bf2d
51 changed files with 44578 additions and 24 deletions
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
2026-09-03 16:10:35.432 INFO PLC 已连接 192.168.1.88:502,站号=1;模型=内置 valve_model_004.json80 点)
2026-09-03 16:11:54.165 INFO 目标流量设置为 60.000 SLM
2026-09-03 16:12:01.872 INFO PID 模式 FAR -> NEAR:基础 Kp=0.100 Ki=0.100 Kd=0.000,有效 Kp=0.100 Ki=0.100scale=1.000),最大开度速度=2.000%/s;原因=|误差|=0.056 SLM <= 阈值=2.000 SLM,连续 10 个周期
2026-09-03 16:12:35.171 INFO 设备已安全断开
+327
View File
@@ -0,0 +1,327 @@
{
"motor_open": 800.0,
"motor_closed": 1000.0,
"enforce_monotonic": false,
"area_table": [
[
800.0,
0.7209916054057561
],
[
802.0,
0.7125354555381634
],
[
804.0,
0.6561316030427767
],
[
808.0,
0.6598630623935171
],
[
810.0,
0.6753272742288868
],
[
812.0,
0.621104587742021
],
[
814.0,
0.6240506162781531
],
[
816.0,
0.595488483660327
],
[
820.0,
0.5924200631363882
],
[
824.0,
0.5416291218881875
],
[
826.0,
0.5394252385668694
],
[
828.0,
0.5163395000335028
],
[
830.0,
0.5386794264154983
],
[
832.0,
0.5087205083171691
],
[
836.0,
0.46458618805923835
],
[
838.0,
0.47364585752172367
],
[
840.0,
0.46827932318875193
],
[
844.0,
0.43243164500883
],
[
848.0,
0.3984505111170211
],
[
850.0,
0.413907876348738
],
[
852.0,
0.3813184002409792
],
[
856.0,
0.3620510591370111
],
[
860.0,
0.35385962516692854
],
[
862.0,
0.3447135247536444
],
[
864.0,
0.3156364126476435
],
[
868.0,
0.29675945681605137
],
[
870.0,
0.306501316808223
],
[
872.0,
0.27050112885120703
],
[
874.0,
0.27959628186642943
],
[
876.0,
0.25531630079673473
],
[
880.0,
0.2535114488327249
],
[
884.0,
0.225092732619715
],
[
886.0,
0.22841807147673635
],
[
888.0,
0.2086511681620107
],
[
890.0,
0.2218855517263943
],
[
892.0,
0.20075819923793375
],
[
896.0,
0.18918524712906334
],
[
898.0,
0.19215080166026982
],
[
900.0,
0.18807050761212185
],
[
904.0,
0.17245083700454789
],
[
908.0,
0.16153923372120163
],
[
910.0,
0.16985605651603905
],
[
912.0,
0.15429304713019132
],
[
916.0,
0.151574549449086
],
[
920.0,
0.1530920502767755
],
[
922.0,
0.14979075485074195
],
[
924.0,
0.1428763734264717
],
[
928.0,
0.14159844506284675
],
[
930.0,
0.1481317007247288
],
[
932.0,
0.13731846151118046
],
[
934.0,
0.13994004337287919
],
[
936.0,
0.1344586476808378
],
[
940.0,
0.13892390786199926
],
[
944.0,
0.13143952256792465
],
[
946.0,
0.13338917913072393
],
[
948.0,
0.12960342436338804
],
[
950.0,
0.14035651644159308
],
[
952.0,
0.13085895406830145
],
[
956.0,
0.12884698464592212
],
[
958.0,
0.1340123387779701
],
[
960.0,
0.1353515916092655
],
[
964.0,
0.12802772183117378
],
[
968.0,
0.12244258908969449
],
[
970.0,
0.12014602858505499
],
[
972.0,
0.09119982507825447
],
[
973.0,
0.09502834500740251
],
[
976.0,
0.06089048620458142
],
[
979.0,
0.010700147302522556
],
[
980.0,
0.002096375744184619
],
[
982.0,
0.0020885117831348173
],
[
984.0,
0.0020668385196096484
],
[
985.0,
0.002069140121524581
],
[
988.0,
0.002072106769105725
],
[
990.0,
0.0021514223899834284
],
[
991.0,
0.002063386116737249
],
[
992.0,
0.002091005339716443
],
[
994.0,
0.00207971813405268
],
[
996.0,
0.0020990609464187075
],
[
997.0,
0.0020639615172159823
],
[
1000.0,
0.0020914299290714883
]
]
}
+73
View File
@@ -0,0 +1,73 @@
气体流量控制程序使用说明
========================
一、交付文件
1. FlowControl.exe
双击运行的 Windows 单文件程序,不需要安装 Python。
2. valve_model_004.json
内置模型的外置备份和自定义模型格式参考。程序默认使用 EXE 内部自带的
valve_model_004.json,外置文件被移动或删除不会影响默认模型。
3. 使用说明.txt
本文件。
二、重要安全说明
本程序会直接控制真实阀门。首次连接前必须确认 PLC IP、端口、站号、寄存器
地址、传感器量程、阀门动作方向和管路允许压力,并准备独立的机械或电气急停。
根据当前工程的安全策略:
- 连接 PLC 成功后,程序会先命令阀门至 100% 开度(电机行程 800);
- 点击“断开设备”、关闭窗口或发生控制故障时,程序会再次尝试命令阀门至
100% 开度,然后断开 PLC;
- “100% 开度”是当前软件定义的逻辑位置,现场必须再次确认真实动作方向。
三、正常操作
1. 双击 FlowControl.exe。程序启动后不会自动连接设备。
2. 核对 PLC 地址、端口和站号。默认值为 192.168.1.88、502、1。
3. 默认模型显示为“内置 valve_model_004.json80 点)”。
4. 点击“连接设备”。连接成功后程序先设置 100% 开度,并进入传感器监测。
5. 输入 0~300 SLM 的目标值,点击“设置目标流量”或按回车。首次设置即启动
10 Hz 闭环;运行中可以继续修改目标。
6. 观察当前流量、阀前压力、阀后压力、下发总开度、电机行程、前馈开度、
PI 修正量和 FAR/NEAR 模式。
7. 结束时点击“断开设备”,等待状态变为“设备已断开”后再关闭程序。
四、选择其他 A_eff 模型
只能在未连接或故障已断开的状态下切换模型。点击“选择 JSON…”后选择由本工程
辨识工具生成的模型。程序会检查 JSON 结构、有效数值、标定点数量以及行程范围
是否与当前 800~1000 配置一致。无效模型不会用于控制。
点击“使用内置”可随时恢复 valve_model_004.json。该模型允许非单调特性;同一
A_eff 存在多个反解行程时,沿用工程算法选择更接近关闭端的较大行程。
五、状态与故障
- 已连接 / 监测中:设备已连接,阀门保持 100% 开度,尚未启动闭环。
- 闭环运行中:目标流量已经生效,程序以 10 Hz 读取传感器并下发总开度。
- 故障 / 已断开:出现流量越界、压力超限、连续读取失败、写入失败、控制周期
严重超时或通信异常;程序已停止闭环并执行安全断开。
运行日志保存在 FlowControl.exe 同目录下的 logs\flow_control.log。遇到问题时请
保留该日志。日志最多约 2 MB,自动保留 3 份历史文件。
六、当前默认硬件参数
- 阀后流量:D700,量程 0300 SLM
- 阀后压力:D710,量程 0400 kPa
- 阀前压力:D720,量程 0300 kPa
- 电机命令:D730,行程 0~1000 映射到模拟量 032000
- 有效控制行程:800(100% 开度)~10000% 开度)
- 压力保护上限:500 kPa
首次真实设备投用必须由现场人员确认上述参数。