组态王KINGVIEW 6X
MODBUS-常见问题解答
北京亚控科技发展有限公司
2010年09月
“MODBUS”常见问题解答
目 录
1. 我的设备支持Modbus设备,能否直接与组态王软件连接? ......................... 1 2. 我的支持Modbus协议的串口设备,能否与多个上位软件(比如组态王软件和某品牌触摸屏)同时通讯? ......................................................................................... 1 3. 在组态王工程中建立多个ModbusTCPServer设备定义,分别使用两台客户端对其访问,只有站点高的那个Server通讯ok,站点低的通讯失败,为什么? ........ 1
4. 如何实现组态王数据通过串口或者以太网驱动方式传送到其他组态软件或者应用程序中? ................................................................................................................. 1 5. 组态王与支持Modbus协议的设备进行通讯时,组态王画面上显示的数据不正确常有哪些原因? ......................................................................................................... 1 6. 西门子200PLC通过Modbus协议与组态王通讯时,组态王中定义的寄存器地址与PLC地址是如何对应的? ................................................................................... 2
7. 西门子200PLC通过Modbus协议与组态王通讯,需要注意哪些事项?...... 2 8. 西门子200PLC通过GPRS链路和组态王通讯,使用哪种协议方式比较好? ............................................................................................................................................. 2 9. 组态王提供的ModbusRTUServer和ModbusRTU驱动的寄存器是怎样对应的? ..................................................................................................................................... 2
10. 在组态王工程中能否建立多个ModRTUServer设备? .................................. 3
北京亚控科技发展有限公司 i
“MODBUS”常见问题解答
1. 我的设备支持Modbus设备,能否直接与组态王软件连接?
只要设备是标准的Modbus协议设备,即可使用组态王设备列表下的PLC-->莫迪康-->ModbusRTU(或者ACSII码)进行通信。但具体的寄存器地址对照表必须从设备厂家索取。
2. 我的支持Modbus协议的串口设备,能否与多个上位软件(比如组态王软件和某品牌触摸屏)同时通讯?
因为Modbus串口协议不支持多主站,所以不能多个软件同时与Modbus设备同时通信。
3. 在组态王工程中建立多个ModbusTCPServer设备定义,分别使用两台客户端对其访问,只有站点高的那个Server通讯ok,站点低的通讯失败,为什么?
这是因为在组态王软件中只支持建立一个ModbusTCPServer,当建立多个Server时,组态王客户端则会自动与站点高的Server进行通讯,所以会导致站点低的通讯失败。 4. 如何实现组态王数据通过串口或者以太网驱动方式传送到其他组态软件或者应用程序中?
如果其他组态软件或者应用程序支持Modbus协议,则可以通过组态王提供的ModRTUServer或者ModbusTCPServer驱动来实现。
5. 组态王与支持Modbus协议的设备进行通讯时,组态王画面上显示的数据不正确常有哪些原因?
引起数据不正确的原因主要有如下几点:
1)组态王中定义的寄存器地址跟实际设备不一致导致。比如某些使用Modbus协议通讯的设备的数据地址是从0开始的,而组态王Modbus协议驱动寄存器地址是从1开始的,所以遇到此种情况时在组态王中定义变量时,寄存器地址要进行加1处理; 2)数据词典中最大原始值和最大值定义不不当;比如最大原始值和最大值不一样会导致画面看到的数据和实际设备不一致;
3)组态王读取FLOAT和LONG类型的数据时,没有使用提供的SwapF和SwapL寄存器来调整FLOAT型和LONG型数据的字节顺序;
4)LONG或FLOAT型的双字的数据,没有按照间隔隔地址方式定义;因为Modbus协议所对应的参数地址一般按照字为基本单位进行分地址排序的。
北京亚控科技发展有限公司 1
“MODBUS”常见问题解答
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方式下通讯效果不是很好,因此不推荐客户使用。
9. 组态王提供的ModbusRTUServer和ModbusRTU驱动的寄存器是怎样对应的?
ModbusRTUServer的B寄存器对应ModbusRTU的0寄存器; ModbusRTUServer的R寄存器对应ModbusRTU的4寄存器。
北京亚控科技发展有限公司 2
“MODBUS”常见问题解答
10. 在组态王工程中能否建立多个ModRTUServer设备?
可以。
在组态王工程中可以建立多个ModRTUServer设备,组态王定义设备时请选择:PLC\\莫迪康\\ModRTUServer\\串口,每个ModRTUServer设备要定义到不同的COM口上。
北京亚控科技发展有限公司 3
因篇幅问题不能全部显示,请点此查看更多更全内容