西门子PLC控制系统轮巡功能的设计与实现
2017-03-18杨键天津渤化石化有限公司天津300452
杨键(天津渤化石化有限公司,天津 300452)
西门子PLC控制系统轮巡功能的设计与实现
杨键(天津渤化石化有限公司,天津 300452)
本文提出采用一种基于MODBUS RTU(RS485)通讯协议,实现西门子PLC系统作为master实现对多个slave站的通讯应用,介绍了西门子PLC作为master的组态设计与实现。
MODBUS;PLC;通讯
在目前的工业控制领域,对同一厂区的不同控制系统之间要求远程监控控制的需求不断加大。通过利用MODBUS RTU Master/Slave协议,实现主站PLC对多从站进行数据采集和控制,保证了可靠有效的实时数据传递和控制效果。
1 MODBUS RTU(RS485)通讯协议
1.1 MODBUS通讯协议
Modbus协议是使用了一个可以使网络上的各个控制器能够识别的消息结构。各个控制器之间通过识别消息,来完成需要的动作。Modbus协议可以将不同生产厂商的设备连接到一起形成控制网络,进行监控控制。在中国,Modbus已经成为国家标准GB/T19582-2008。Modbus网络要求只可以有一个mas⁃ter,网络上所有的消息都由它发出。每条网络最大有247个slave控制器。
1.2 Modbus传输模式
Modbus协议有ASCII或RTU两种传输模式。本文采用RTU模式。用RTU模式传输的数据是8位二进制字符且报文字符必须以连续数据流的形式传送。
1.2.1 主机请求数据报文格式
如表1所示。(功能码以03为例)
表1 主机请求数据报文格式表
1.2.2 从站响应读数命令报文格式
如表2所示。(功能码以03为例)
表2 从站响应读数命令报文格式表
2 系统组态过程
2.1 西门子PLC功能块
2.1.1 DB块构建
我们以S7组态环境为例,因为Modbus协议通讯报文8位二进制字符固定格式,所以我们要先构建第一个DB块,起名以DB1为例,用来完成master站发送请求报文信息的收集。这个DB块中需要定义一个字节的slave站地址(byte类型)、一个字节的功能码(byte类型)、两个字节的起始地址(word类型)、和两个字节的数据长度(word类型)。然后,我们构建第二个DB块,起名DB2为例,这个DB块主要用来接收slave站的回复数据。
2.1.2 FB7,FB8功能块
PLC控制器要完成发送与接受功能,需要西门子功能块库中的FB7接收功能块与FB8发送功能块。而将它们使用的时候会自动生成背景DB块,为了方便使用将DB命名为相应的DB7与DB8。
2.1.3 FC功能块
FC功能块完成轮巡程序的写入,最后将FC块在OB1或OB35中调用即可完成轮巡。
2.2 轮巡程序
a.将第一个slave站地址,功能码、起始地址、数据长度分别写入DB1的对应地址。
b.将第一个slave站接收DB块的号码(本文为2)写入DB7的DBW4,将接收起始地址写入DB7的DBW6。
c.重复前2步操作完成剩余slave站。
d.为每个slave站程序设置入口条件,条件满足启动,不满足等待。
e.设置FB7的LADDR管脚为CP341卡件的地址,启动条件为对应的slave站的条件。设置FB8的LADDR管脚为CP341卡件的地址,DB_NO管脚填入1,DBB_NO管脚填入0,SF管脚填入'S',LEN管脚填入6,R_TYP管脚填入'X',REQ管脚为对应的slave站启动条件。
2.3 CP341卡件设置
在CP341中设置modbus master类型、波特率、停止位、奇偶效验位等参数后load。
3 结语
Modbus RTU通讯是现场两个或几个不同控制系统实现通讯的一个简单例证,成功的解决了西门子PLC和第三方的通讯问题,节省了因标准仪表信号布线所需的大量电缆,并且可靠性得到了大幅度提高,是我们今后现场信号采集通讯值得借鉴的一个典型代表。
[1]潘洪跃.基于Modbus协议通信的设计与实现.计量技术, 2002,(4).
[2]封亚斌.采用串口通信技术实现Modbus数据通信.自动化仪表,2004,25(10):56-58.
[3]吉顺平.西门子PLC与工业网络技术.机械工业出版社, 2008.
[4]王海波.基于CP341的Modbus RTU通信的设计与实现.工矿自动化,2009,8:89-91.
[5]西门子技术手册.CP340_CP341_CP440_CP441通讯及编程.2010:37-44.