级联PLC Modbus通信优化策略在水电站消防水系统中的应用
2014-09-11吴凯
吴凯
(贵州乌江水电开发有限责任公司东风发电厂,贵州 清镇 551408)
1 水电站消防水系统概述
水电站消防水系统由3部分组成:第一是消防水系统的启动控制柜,包含1组用于控制的ABB公司的AC31可编程控制器(PLC),07KR51中央处理器(CPU)和2个消防水泵;第二是继电保护室的消防水控制柜,包含1组ABBAC31 PLC,07KR51 CPU和07KP53模块,实现主机和消火栓控制柜的通信;第三是不同地点的18个消防栓控制柜,每个控制柜中有1个ABB远程I/O模块ICMK14F1-M。消防水启动控制柜到继电保护室的消防水控制柜距离约300 m,所以需要采用光纤通信[1]。继电保护室的消防水控制柜和18个消防栓控制柜采用RS485总线进行通信。
该系统的主要功能是使用3种方式来实现2个消防水泵的启、停:消防水启动控制柜面板上的手动启、停按钮;继电保护室消防水控制柜面板上的手动启、停按钮;18个消防栓控制柜上的启、停按钮。消防水系统如图1所示。
图1 消防水系统
2 传统通信方式及存在的问题
网络通信协议是一种广泛使用的通信协议,ABBAC3140-50系列的中央处理单元遵从Modbus RTU协议[2]。许多自动化设备,如PLC、人机界面、变频器和监测系统可以被认为是标准的选择模块,并且有Modbus远程终端设备接口。所以,通过串行接口(RS232和RS485)或网络通信协议模型与CS31相连接,可以很容易地与40或50系列的中央处理单元进行通信。
基于工业领域Modbus通信的普遍性和标准性,加上AC31 PLC通信接口的特点,在继电保护室和18个消火栓控制柜I/O模块之间采用RS485总线进行Modbus RTU主、从站消防水控制柜PLC通信。RS485通信方式允许1个主站可以与31个相同类型的从站进行通信,传统的通信方式为:在18个消防栓控制柜中,远程I/O模块ICMK14F1-M的接口是并行的(因为使用了屏蔽双绞线,其总长约1 200 m),并与中央控制室的消防水PLC控制柜相连接。常见的通信方案如图2所示。
图2 消防水控制柜和消火栓控制柜之间常见的通信方案
现场调试的主要问题是:主站 PLC 读取输入信息和写输出信息的过程要消耗很长的时间[3],延时性不好,并且每个ICMK14F1-M接受信息的时间是随机的,这将导致控制箱上的按钮必须按很长时间(长达10 s,一般最快响应时间是2 s),给用户操作带来很大不便。
3 影响Modbus RTU通信速率的原因
Modbus通信的响应时间是由以下因素决定的:传输速度、帧字节的数量、CPU程序周期以及CPU的负载。
(1)通信距离长,直接影响传输速度。RS485的最长传输距离是1 200 m,18个消防栓控制柜的总传输长度约为1 000 m,未超过1 200 m,所以RS485通信本身是没有问题的。造成通信缓慢的主要因素是波特率,它与通信距离成反比。
(2)帧字节的数量多。当响应时间为10 ms时,负载率为80%,速度是9 600 bit/s。ABB 50系列中央处理单元的响应时间见表1,从表1可以看出:CPU处理反应速度按“字”读写比按“位”读写有优势;同时,按“字”读写可以减少信息帧的数量,提高通信效率。传统的通信方案是按“位”读写,信息帧的数量更多、效率较低。
表1 ABB50系列中央处理单元的响应时间 ms
(3)CPU程序的周期较长。根据系统参数“周期声明”定义的周期,CPU程序被循环执行。CPU程序周期为0和100 ms,且只接受5 ms的多重值;从站或单一机器CPU程序的周期为0和250 ms。周期可以由以下公式计算:
Tc≥tb+tp,
式中:tb为总线传输时间;tp为程序执行时间。
程序执行时间相当于用户程序现存功能时间的总和,总线传输时间来自设备配置的计算,它需要总线上所有单元的时间加在一起。远程扩展单元的时间是由单元时间和连接的局部扩展时间求和得到的[4]。
在常见的通信系统中,主PLC管理18个从站,总线传输时间过长,主PLC程序需要36个MODMASTK功能模块来连续不断地读写18个控制柜的信息,程序执行时间约为2 s。
(4)CPU的负载影响很大。在常见的通信系统中,18个从站之间的距离很远,CPU的负载影响接近95%。
4 改进方案及效果
4.1 硬件的改进
由上述分析可知,长距离通信是造成传播速度慢的一个主要因素。结合实际情况,并根据装置所处的位置,#1,#9,#13消防栓控制柜的远程I/O模块ICMK14F1-M(只有1个通信端口)被独立的CPU模块07KR51(有2个通信端口)所取代。模块采用多层级联方式:#13消火栓控制柜的07KR51模块用作#14,#15,#16,#17和#18消防栓的5个远程I/O模块(作为从站)的Modbus Master,用来收集数据并存储到它的PLC CPU;#13消火栓控制柜模块07KR51(COM1)也被用作#9消火栓控制柜07KR51(COM2)的Modbus Slave,用来接受其读写的命令。
诸如此类,#1消火栓控制柜的模块O7KR51是18个消防栓控制柜的中心。消防栓PLC控制柜的通信设备负责收集数据并传输到消防栓PLC控制柜;同时,它也发送PLC控制柜的指令到每个控制柜,改进方案如图3所示。
图3 消防水控制柜和消火栓控制柜之间通信级联方案
4.2 软件通信算法优化
(1)“位”写和“字”写的优化。远程I/O模块ICMK14F1-M有8个开关信号输入模块和6个开关信号输出模块,8个开关信号“位”输入的信息集成到一个“字”,被读为一个整体的模块,可减少帧字节的数量,提高传输速度。
(2)“单一模块”读写和优化“集成模块”读写。PLC Modbus通信程序的编译是基于MODMASTK功能模块实现的。每个主站和从站之间的PLC通信,首先都需要由从站PLC读入开关输入信号,逻辑处理后,其结果要写进从站PLC的开关输出信号。主站和18个消防栓控制柜之间的通信需要36个MODMASTK功能模块。Time是一种对传输Modbus信号定义的延迟,该延迟被称为Time_out,通常取值为2 000 ms。为了优化传输时间,读、写模块可以连接在一起,这就是级联功能模块RDY。延迟传播的时间设置为300 ms,可以大大提高传输速度,并且不影响每个模块的响应时间。
硬件连接和软件算法进行优化和改善后,对系统进行测试,从按下任意一个消防栓控制柜的开机按钮到主控PLC接收控制箱信号所需时间大约为1 s,系统通信速率明显提高,实时性能良好,能更好地满足用户的需求。
5 结束语
在工业控制领域,通过PLC实现一台主机和多台从机的Modbus通信得到广泛的应用。实践证明,这种级联的PLC通信方案可有效解决RS485长距离传输导致通信速率下降的问题。PLC控制程序中通信算法的优化能有效提高Modbus通信速率,实时性也将变得更强,是一个值得学习和推广的应用模式。
参考文献:
[1]李桢.DCS与PLC的Modbus协议通信在石油化工厂的应用[J].计算机应用与软件,2009,26(4):185-187.
[2]王力.Modbus RTU从站通信协议在嵌入式系统中的实现[J].石油化工自动化,2011,47(5):46-48.
[3]卢文俊,冷杉,杨建军.基于Modbus协议的控制器远程监控系统[J].电力自动化设备,2003,23(6):54-56.
[4]王念春.基于Modbus协议的PC与下位机PLC间的通信程序[J].自动化仪表,2001,22(8):44-46.