( 1 广西电力职业技术学院,广西南宁 530000;
2 湖南工业职业技术学院,湖南长沙 410000)
摘要:Modbus是一种串行通信协议,目前主要以串口、以太网以及其他支持互联网协议的网络版本方式实现通讯,它的优点是结构简单明了、通讯可靠、通讯数据量大,缺点是通讯速度相对较为缓慢,不适用于一些高要求的反馈控制系统。大多数Modbus设备通过485串口进行通信,广泛应用于控制工程中。如火电厂锅炉壁温、发电机温度的采集系统就是以Modbus协议通过485串口方式与DCS控制系统进行通讯,部分智能仪表也是通过Modbus协议与PLC等设备进行通讯。文通过分析Modbus通讯协议在控制工程中的应用,掌握Modbus通讯协议的特点与相关知识,提高控制工程设计、维护的可靠性。
关键词:Modbus,通讯协议,控制工程
前言:火力发电厂中,由于锅炉壁温、发电机定子温度等相关设备的测点数量较多,如果使用实际接线通道一对一连接DCS,首先需要敷设大量的线缆,还要更多的DCS通道与卡件、控制器等相关配套设备,增加施工任务量的同时也极大地浪费了材料,加大了经济投入成本。因此,在工程中一般都是引用远程IO通讯的形式,将就地温度集中至前置盒,再将各个前置端使用RS485的方式进行串接,连接至DCS控制系统已配置好的通讯卡,最后进行相应的组态即可实现DCS对远程IO设备相关测点的监控。在PLC相关控制设备中,也同样具备Modbus通讯的功能。因此,在工程应用中,要结合实际具体情况选择相应的通讯方式并进行相对应的通讯配置,才能使控制系统正常工作。
一、火电厂智能前端
火电厂智能前端主要用于生产过程中各种模拟量、开关量信号的就地集中采集和数字式转换,转换后的数据可直接用于就地设备的控制,也可通过网络将数据送入DCS等,由系统做统一处理后,用于设备参数监测及作为设备控制的依据。火电厂智能前端一般采用壁挂式就地安装,可节省大量信号电缆,采用(RS-485/RS-422)现场总线式远程冗余通讯网络,很大程序上保证了通讯线路的正常工作,确保测点参数的正常采集与处理。火电厂智能前端一般使用是MODBUS协议中的RTU模式,以串口RS485的通讯方式进行组网(图1),整个智能前端系统结构如图2所示。
图
1:RS-485通讯接线图
图
2:RS-485通讯系统构成图
在通讯双方中,一般DCS为主站方(master),主站方发送数据请求命令,一次通讯发送一个命令,可以多个设备同时接收,串口通讯参数一般设置为(baud:9600,word:8,parit:even,stop:1),端口号由DCS选择,单层模式接收的命令格式一般如下例,共8字节(16进制模式):
第1字节 slave address:01(单层结构从1-设备数,多层为1-分组数)
第2字节 function:03(采用的功能码为3,Read Holding Registers)
第3字节 Starting Address Hi:00(欲读寄存器首地址高字节)
第4字节 Starting Address Lo:00(欲读寄存器首地址低字节)
第5字节 No.of Registers Hi:00(欲读字个数高字节)
第6字节 No.of Registers Lo:18(10)(欲读字个数低字节,24点(16点))
第7字节 Error Check Hi:** (16bits CRC校验高字节)
第8字节 Error Check Lo:** (16bits CRC校验低字节)
进入DCS通讯卡分析模式察看Modbus报文,如图3所示。
图
3:DCS通讯卡Modbus报文
因此,就地智能前端各通讯参数设置与DCS通讯卡件参数设置要一致才能
正常通讯。
可通过使用Modscan软件检测智能前端至DCS之间的通讯是否正常,Modscan软件主要设置有:Address:001;Length:24,即从001通道开始扫描直至第24个通道,也可从其它通道开始到其它别的通道;Device Id:即输入就地智能前端的地址,如1、2、3……32等,其它如波特率、停止位等的设置要与就地设置一致。设置正确后即可查看接收到的数据。显示如40001:<196> 40002:<201> ......40012:<203> 40013:<205>......即表示该智能前端1通道温度为19.6度,2通道温度为20.1度,12通道为20.3度,13通道为20.5度。因是整数型传输,数据需在DCS侧乘以0.1系数。
PLC的Modbus通讯方式
当PLC以Modbus协议与第三方系统如组态王、scada、DCS、触摸屏等进行通讯时,需要对PLC进行编程初始化调用Modbus库,当PLC做为从站或主站时,调用程序是不同的。以S7-200PLC做从站为例,调用MBUS_INIT 指令(初始化从站)和MBUS_SLAVE指令。MBUS_INIT指令用于使能和初始化或禁止Modbus通讯,必须无错误的执行,然后才能够使用 MBUS_SLAVE指令。MBUS_SLAVE指令用于服务来自Modbus主站的请求,必须在每个循环周期都执行,以便检查和响应Modbus请求。配置如图4所示。
图4:PLC调用Modbus协议配置
SM0.1:首次扫描为1,以后为0,SM0.0:始终接通。即用SM0.1使PLC在第一循环扫描中初始化Modbus从站协议,用SM0.0使每循环周期内执行Modbus从站协议。模式(Mode):为1时,将端口0分配给Modbus协议,并启用该协议;为0时,将端口0分配给PPI,并禁止Modbus协议。Addr设置地址,其数值在1到247之间。Baud为波特率设设置。Parity用于设置校验位使之与Modbus主站相配匹:0—无校验(NONE),1—奇校验(ODD),2—偶校验(EVEN)。MaxIQ将Modbus地址0xxxx和1xxxx可用的I和Q点数设为一个0--128之间的数值,数值为0时,禁止输入和输出的所有读和写操作。参数MaxAI将Modbus地址3xxxx可用的字输入(AI)数目设为一个0--32之间的数值,数值为0时,禁止读模拟量输入。参数MaxHold设置可以使用的V区字保持寄存器的个数,相应于Modbus地址4xxxx。参数HoldStart是V存储区的保持寄存器的起始地址。
PLC配置好后,可使用Modscan软件检测通讯是否正常。要注意软件设置的地址、波特率等参数一致。在PLC输出线圈Q0.0和Q0.2闭合的情况下,测试的效果如图5。
图5:Modbus测试效果
结束语:Modbus通讯协议在控制工程中的应用,必须离不开上位系统与下位系统的正确配置,才能正常收发数据。Modbus通信协议传输字节数少、效率高,广泛应用于众多小型仪表和大型工业设备,再加上RS232/RS485端口采用Modbus通信方式的场合很多,使用经济、便捷,值得深入学习。
参考文献:
[2]赵钊.基于Modbus协议的DCS系统与PLC系统的通讯[J].节能技术,2011,29(04).
[3]郭琼 姚晓宁.现场总线技术及其应用.机械工业出版社.
[4]基于Modbus协议的工业自动化网络规范第1部分:Modbus应用协议GB/T19582.1-2008.
[5]基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南GB/T19582.2-2008.
2