杭州领祺智能网关、通信管理机可以使用MODBUS-TCP转发与组态王软件通信。
1. 我的支持 modbus 协议的串口设备,能否与多个上位软件(比如组态王软件和某品牌触摸屏)同时通讯?
modbus 串口协议不支持多主站, modbus 设备一般不能与多个软件同时通信。 需要领祺通讯管理机,支持转发到多个上位系统。
2. 在组态王工程中建立多个 modbusTCP/IPserver 设备定义,分别使用两台客户端对其访问,只有站点高的那个 server 通讯 ok,站点低的通讯失败,为什么?
这是因为在组态王软件中只支持建立一个 modbusTCP/IP server,当建立多个 server时,组态王客户端则会自动与站点高的server进行通讯,所以会导致站点低的通讯失败。
3. 如何实现组态王数据通过串口或者以太网驱动方式传送到其他组态软件或者应用程序中?
可以领祺通过通讯管理机采集组态王的数据,再转发给任意网络上可访问的其他组态软件或系统。
如果没有网络环境,其他组态软件或者应用程序支持 modbus 协议,也可以通过组态王提供的 Mod RTU server 或者 modbus TCPserver 驱动来实现。
4 组态王与支持 Modbus协议的设备进行通讯时, 组态王画面上显示的数据不正确常有哪些原因?
引起数据不正确的原因主要有如下几点:
1)组态王中定义的寄存器地址跟实际设备不一致导致。比如某些使用 modbus 协议通讯的设备的数据地址是从 0 开始的,而组态王 modbus 协议驱动寄存器地址是从 1 开
始的,所以遇到此种情况时在组态王中定义变量时,寄存器地址要进行加1 处理;
2)数据词典中最大原始值和最大值定义不不当;比如最大原始值和最大值不一样会导致画面看到的数据和实际设备不一致;
3)组态王读取 FLOAT 和 LONG 类型的数据时,没有使用提供的 SwapF 和 SwapL寄存器来调整FLOAT 型和 LONG型数据的字节顺序;
4)LONG 或 FLOAT 型的双字的数据,没有按照间隔隔地址方式定义;因为 modbus协议所对应的参数地址一般按照字为基本单位进行分地址排序的。
5. 组态王与西门子 200plc自由口协议通过modem 通讯,硬件接线怎样实现?
领祺物联网网关可以连接组态王和各种不同厂商的PLC,并把不同PLC中的点位数据在网关内组合计算,结果送到组态王。
设备上插标准 PPI 电缆,modem9 针口通过一个标准 232 交叉线接到 PPI 电缆上即可,232交叉线的 modem侧需要 1 4 6 短接,7 和 8 短接。
6. 西门子200plc通过modbus协议与组态王通讯时, 组态王中定义的寄存器地址与plc地址是如何对应的?
映射关系如下:
0-Q,1-I,3、4、8、9-V;
3,4,8,9的 dd 号与 PLC中 V寄存器的偏移地址(实际地址-1000)的对应关系:
组态王中(寄存器的dd 号-1)*2=PLC中的 V寄存器的偏移地址。组态王中 40031
对应 PLC:VW1060 (组态王中寄存器 4 表示SHORT 型变量)组态王中 90640 对应 PLC:
VD2278 (组态王中寄存器9 表示 FLOAT型变量)。
注:上面的对应关系是针对用户使用的是亚控公司提供了PLC(MODBUS)通讯的初始化程序,如果用户是自己编程写的初始化程序,则根据实际程序规定的 modbus 对应地址定义变量。
7. 西门子 200plc通过 modbus协议与组态王通讯,需要注意哪些事项?
需要注意如下几点:
1)需要向 PLC中下载对应的初始化程序(KVmoddbus.mwp),由亚控提供。此程序默认的 plc 通讯端口为 port0,地址为 2,波特率 9600,无校验(地址和波特率可由程
SBR0 中的 VB8,SMB30 进行修改);
2)由于 PLCModbus 协议程序占用 V1000及以前的地址,所以用户在编写逻辑控制程序中用到的寄存器不能和亚控提供的协议中所占用的 V区地址冲突;
3)西门子 S7200PLC 和通过 modbus 协议和组态王通讯时,CPU上的开关必须拨在RUN状态,否则 PLC中的 modbus 通讯程序没有处于运行状态,组态王和设备通过自由
口协议肯定通讯失败;
8. 西门子 200plc通过 GPRS链路和组态王通讯,使用哪种协议方式比较好?
推荐使用自由口/modbusRTu协议。
ppi 协议实际上也支持通过GPRS 链路和组态王通讯,但由于PPI 协议的特殊性,GPRS方式下通讯效果不是很好,因此不推荐客户使用。
10. 组态王提供的 ModbusRTUServer 和 ModbusRTU驱动的寄存器是怎样对应的?
ModbusRTUServer 的B寄存器对应ModbusRTU的 0 寄存器;
ModbusRTUServer 的R寄存器对应ModbusRTU的 4 寄存器。