本软件是用go语言编写,可以运行在windows、linux等系统上,实现了通过modbus tcp采集modbus从站数据,对外提供http接口给用户查询实时数据和控制modbus地址写值,且还对外提供了websocket服务,用户可以直接通过websocket订阅实时变动更新的数据。程序退出会把最近一次数据进行本地存储,程序重启后会有最近一次数据。后期还会在此版本基础上扩展opcua、mqtt等其它PLC协议。
- config.ini
SerId=5301039008990002 Host=127.0.0.1 HttpPort=20080 WsPort=15554 [LogInfo] LogMode=0 LogLevel=7 Addr=log |
Host:modbus2http_webwocket.exe运行所在机器的IP;
HttpPort:通过http访问的端口
WsPort:通过websocket订阅数据的端口
- deviceConfig.json
{ "DeviceList":[ { "DeviceId":"a001", "Protocol":0, "ProtocolConnParamStr":"{\"MbScanInterval\":1000,\"MbSlaveIP\":\"192.168.12.120\",\"MbSlavePort\":5502}", "TagList":[ { "Tag":"Addr1", "Addr":"00000", "DataType":0 }, { "Tag":"Addr2", "Addr":"00001", "DataType":0 }, { "Tag":"Addr3", "Addr":"00002", "DataType":0 }, { "Tag":"Addr4", "Addr":"00003", "DataType":0 } ] } ], "HMIPageParam":"" } |
MbScanInterval:扫描数据间隔,单位是毫秒
MbSlaveIP:modbus从站(modbus服务器)的IP地址
MbSlavePort: modbus从站(modbus服务器)的端口
Tag:给一个modbus地址取的别名
Addr:modbus地址,格式可以是0XXXX or 1XXXX or 3XXXX or 3XXXX.X or 4XXXX or 4XXXX.X,支持coils,discrete,inputRegisters,holdingRegisters,.X表示使用第几位
DataType:数据类型, 0:bool,1:byte,2:word,3:dword,4:string,
5:real,6:lreal
- testscript使用说明
用于测试通过http接口查看值、控制写值,通过websocket订阅实时数据,index.html里面有使用参考代码
下载链接: modbus数据采集转换为http/websocket协议-C++文档类资源-CSDN文库