西门子PLCS7-200通过拓普瑞DTU连接物联网
方法/步骤
1、一.本案例中PLC和DTU通讯利用的是DTU的透传模式,PLC和平台之间利用的是MODBUS-RTU协议进行通讯。S7-200通过以下两种方式支持MODBUS-RTU通信协议: (1):S7-200CPU上的通信口0(port0)通过指令库支持ModbusRTU从站模式。 (2):S7-200CPU上的通信口0和1(port0和port1)通过指令库支持ModbusRTU主站模式。(注:指令库可在西门子提供的相关网站进行下载). 本案例中用到的是第一种方式,S7-200用作从站和tlink物联网平台通信。
2、二.设置PLC通讯信息 S7-200通讯的举例程序如下图所示:
3、 Mode:启动/停止Modbus,1=on;0=off Addr佼沣族昀:Modbus从站地址,取值1-247 Baud:波特率,可选120扉钛笆哇0,2400,4800,9600,19200,38400,57600,115200 Parity:奇偶校验位,0=无校验;1=奇校验;2=偶校验 Delay:延时,附加字符间延时,缺省值为0 MaxIQ:最大IO点数,一般可设置为128. MaxAI:最大AI通道数,视PLC的具体情况而定,一般可设置为16或32. Maxhold:最大保持寄存器区. Holdstart:保持寄存器起始区,以&VBx指定. Done(网络1中):初始化完成标志,成功初始化后置1. Error(网络1中):初始化错误代码,0为无错误. Done(网络2中):通信时置1,无Modbus通信时为0. Error(网络2中):通信错误代码,0为无错误. Holdstart和MaxHold规定的是保持寄存器的区域,保持寄存器区域的范围一定不能和程序存储区的范围冲突,否则无法通信。上图中指定的保持寄存器起始区的值为1000,也可以不指定1000.只要设置好程序存储的区域就能成功通信,程序存储区的设定如下图所示:
4、 在程序块中,程序储存区分配的为1050至1829.因为Holdstart和Maxhold规定的区域是1000至1040(Maxhold规定的是VW的个数,所以变成VB需要乘以2)所以程序储存区分配为VB1050至VB1829.三.编写控制程序 写好通信程序,分配好存储区之后便可以作为从站和主站进行通信了。为了更好的展示效果,这里编写了一些额外的控制程序,控制程序如下图所示:
5、四:配置DTU DTU的配置主要由PLC的通讯信息和tlink平台来决定:
6、五.配置tlink平台读写命令 在tlink平台点击设备,在设备列表中选择设置链接,在传感器栏选择批量设置即可出现如下界面:
7、PLC各个区域对应的Modbus地址如下: ·00001颍骈城茇-09999:数字量输出(线圈,可读可写 ·10001-19999:数字量输入(触点,只可读) ·30001-39刻八圄俏999:输入数据寄存器(通常为模拟量输入,只可读) ·40001-49999:数据保持寄存器(可读写) 上述程序中写入寄存器的值对应的地址为40001和40002,对应平台中的03功能码(可读可写)偏置为1和2数据格式依据实际情况可填写为16位无符号或有符号数。采集周期可自行设定,建议设定为10.六.运行PLC和DTU 将PLC和DTU连接上之后即可使PLC与tlink平台通讯成功,tlink平台的显示界面如下图所示:
8、PLC的状态显示如下图所示: