一、功能特性
-
协议支持
• 完整兼容 标准Modbus RTU协议
• 基于pymodbus标准库开发,具备良好扩展性 -
配置灵活
• 全参数可配置:
o 设备类型
o 寄存器大小
o 设备寄存器地址
• 支持动态配置调整 -
可视化界面
• 采用PyQt5框架开发
• 实时显示窗口包含:
o 串口通信日志
o 设备状态信息
o 寄存器数据可视化 -
数据格式支持
-
基础数据类型
类型编号 格式标识符 说明 字节序
0 stringhex HEX字符串原始数据 -
1 uint16 无符号16位整型 AB (默认)
3 uint16_CD_AB 无符号16位整型 CD AB (字节交换)
5 int16 有符号16位整型 AB
7 int16_CD_AB 有符号16位整型 CD AB -
32位整型
类型编号 格式标识符 说明 字节序
9 uint32 无符号32位整型 AB CD (小端)
11 uint32_GH_EF_CD_AB 无符号32位整型 GH EF CD AB (大端)
13 int32 有符号32位整型 AB CD
15 int32_GH_EF_CD_AB 有符号32位整型 GH EF CD AB
21 uint32_EF_GH_AB_CD 无符号32位整型 EF GH AB CD (混合端)
22 int32_EF_GH_AB_CD 有符号32位整型 EF GH AB CD -
浮点型
类型编号 格式标识符 说明 字节序
17 float32 IEEE754单精度浮点 AB CD (小端)
19 float32_GH_EF_CD_AB IEEE754单精度浮点 GH EF CD AB (大端)
二、打包指南 -
无控制台模式(静默运行)
bash
pyinstaller --onefile --noconsole
--name="模拟表app"
--icon=app_icon.ico
main.py -
调试模式(显示控制台)
bash
pyinstaller --onefile
--name="模拟表app"
--icon=app_icon.ico
main.py
打包建议:
• 生产环境推荐使用--noconsole模式
• 调试阶段建议保留控制台查看日志
• 图标文件建议使用256x256像素ICO格式
三、程序界面
-
串口打印
-
模拟表 数据参数配置
四、配置项
1.确保软件同目录下有该配置文件,否则默认加载程序内置写死的几个设备。
{
"测试用": {
"registerSize": {
"d": 10,
"c": 10,
"h": 1000,
"i": 1000
},
"dataTable": [
[1,8,"字符串",0,1,"0","i"],
[12,1,"uint16大端",0,1,"1","i"],
[13,1,"uint16小端",0,1,"3","i"],
[14,1,"int16大端",0,1,"5","i"],
[15,1,"int16小端",0,1,"7","i"],
[16,2,"uint32大端",0,1,"9","i"],
[18,2,"uint32小端",0,1,"11","i"],
[20,2,"int32大端",0,1,"13","i"],
[22,2,"int32小端",0,1,"15","i"],
[24,2,"float32大端",0,1,"17","i"],
[26,2,"float32小端",0,1,"19","i"],
[28,2,"uint32_EF_GH_AB_CD",0,1,"21","i"],
[30,2,"int32_EF_GH_AB_CD",0,1,"22","i"]
]
}
}
参数 说明 补充
测试用 最外侧字段,为要配置的设备名称,自定义即可
registerSize 设备寄存器大小,分为四个部分,对应关系看补充 register_map = {
'h':'保持寄存器',
'i':'输入寄存器',
'c':'线圈',
'd':'离散输入'
}
dataTable 数据表,即要模拟的设备具体数据项
dataTable 列1 寄存器地址 确保为int
dataTable 列2 寄存器数量 确保为int
dataTable 列3 该数据项具体名称 确保为string
dataTable 列4 默认数据,写0即可 确保为int
dataTable 列5 倍率比:如频率:实际49.99,存储4999,则倍率填写100即可 确保为int
dataTable 列6 数据类型,具体见补充 type_map = {
"0": "stringhex",
"1": "uint16",
"3": "uint16_CD_AB",
"5": "int16",
"7": "int16_CD_AB",
"9": "uint32",
"11": "uint32_GH_EF_CD_AB",
"13": "int32",
"15": "int32_GH_EF_CD_AB",
"17": "float32",
"19": "float32_GH_EF_CD_AB",
"21": "uint32_EF_GH_AB_CD",
"22": "int32_EF_GH_AB_CD",
}
dataTable 列7 寄存器类型,参考registerSize补充内容
五、程序及配置文件下载路径
https://wwgs.lanzoue.com/b0mbtnh2f密码:1czr
