一、如何替换西门子MODBUS库
1、按Delete键删除程序中西门子Modbus库指令
主站:MBUS_CTRL、MBUS_MSG(端口0)、MBUS_CTRL_P1、MBUS_MSG_P1(端口1);
从站:MBUS_INIT、MBUS_SLAVE(端口0)。
下图以主站程序为例:
2、找到并点开左侧程序块,找到西门子Modbus库子程序(如实例程序中SBR1、SBR2、SBR3、INIT1),将这些子程序删除。
3、鼠标右键单击程序块,在弹出的菜单栏中选择库储存区,在弹出的库存储区窗口中找到西门子Modbus库存储区,并删除。
4、将对应的Unimat Modbus库指令拖到梯形图中,设置好参数。
5、再次右键单击程序块,选择打开库存储区,设置好库存储区范围,点击全部编译,显示无错误,Modbus库替换成功。
二、MODBUS-RTU通讯测试
包含Modbus-RTU从站指令库的项目编译、下载到CPU中后在编程计算机(PG/PC)上运行一些Modbus测试软件可以检验CPU的Modbus-RTU通讯是否正常,这对查找故障点很有用。在运行之前,我们可以从以下几步进行软件及硬件连接的检查。
①主站与从站的对应地址是否一致。即:slave
②波特率、检验位及通讯速率设置是否相同。
③硬件外部通讯线是否有断线、破损。
? 硬件连线
1、两DB头连接方式
如两端都是DB9头,我们可以使用屏蔽线,按图1方式连接。
图一
2、端子与DB头的连接方式
若是端子与DB头连接,可按图2方式连接。
图二
3、电脑与设备的连接线
可以使用USB转485串口线将电脑与PLC或其他设备连接。
?软件测试
在连接好设备后如出现通讯不上,或者通讯前的验证,可以使用测试软件检验通讯是否正常,程序及参数有无错误。
(以Mbslave和mbpoll测试软件为例作以检测说明)
1、PLC做从站
(1)当使用PLC作为从站,设置好相应站地址、波特率、检验方式等参数。
本例程是新版Modbus端口0从站指令使用例程,通信参数设置为:从站站号2,波特率9600,校验位0,保持寄存器从VW100开始的1000个字。
(2)双击打开Mbpoll软件-----点击Display——选择数据类型——选择PLC Address——点击SETU——选择Read/Write Definition——配置相应的参数——点击确定
参数说明:
A、SLAVE ID:从站地址 2
B、function:数据类型及功能 4x
C、address:数据存储地址起始地址 1(此处1相相当于40001)
D、quantity:地址数量 100
E、scan rate:扫面速率 1000
F、read/write enable:启用读写功能
G、Display:数据类型 HEX十六进制
(3)单击菜单栏Connection——选择connection——编辑相应参数
只需配置的参数:选择连接 Serial port 串行端口
选择对应端口port3
配置相应的模式 RTU
波特率 9600
校验位 无校验
数据位 8
停止位 1
(4)输入十六进制数,从站PLC起始地址vw100起的后1000字,将被写入相应的十六进制数值。(如第一位输入16#23)
(5)PLC被写入的值(第一位为16#0023)
2、PLC做主站
(1)调用主站指令程序块,配置相应的参数。
本例程是新版Modbus端口0主站指令使用,通信参数设置为波特率9600,校验位0(无校验),超时时间1000ms,每隔1S将主站Vw100到Vw118的数据发送到从站的40001-40010。
(2)双击打开Modbus slave软件——点击DISplay——选择PLC address——选择Binary(二进制)——打开Setup设置Slave Definition参数(按照主站,从站地址为2、modbus地址为4x)
(3)单击菜单栏Connection——选择connection Setup——编辑相应参数
只需配置的参数:选择连接 Serial port 串行端口
选择对应端口port3
配置相应的模式 RTU
波特率 9600
校验位 无校验
数据位 8
停止位 1
(4)输入二进制数,从站PLC起始地址vw100起的后10字,将被写入相应的二进制数值。(如第一位输入2#15)
(5)从站被写入的值(第一位怎是“1111”;第二位读出主站“15”为“1111”)
注意:此处的Port3是指将串口线插入电脑后显示的端口号。如图:
(打开设备管理器,看端口号是多少,则选择相应的PORTx)