输煤程控系统PLC与入炉煤皮带秤之间通信的实现
2019-07-10邓有纬盛玉林严凡华
邓有纬,盛玉林,严凡华
(1.国电南京自动化股份有限公司,南京 210032; 2.南京化学工业园热电有限公司,南京 210047)
0 引言
在我国燃煤发电机组中,煤耗统计依据主要是入炉煤皮带秤计量数据,但计量数据有些是通过可编程逻辑控制器(PLC)采集皮带秤称重显示控制仪输出的模拟量累计得到的,有些是通过PLC采集皮带秤称重显示控制仪发出的脉冲值累计得到的,有些数据甚至是人工现场抄写得到的。由于输煤系统的强电磁干扰[1]以及人工抄写时可能存在的差错,使得数据的统计存在较大误差,为了解决这一问题,本文探讨如何对入炉煤皮带秤计量数据进行准确远传,减少干扰及人工抄写造成的误差。
1 工程概况
南京化学工业园热电有限公司一期工程为3台220 t/h锅炉,二期扩建工程为2台1 025 t/h锅炉,设置A/B两侧入炉煤皮带,每条入炉煤皮带各配置1台电子皮带秤进行入炉煤计量。
输煤程控系统通过PLC+上位机来完成系统的监控与操作。PLC为施耐德Unity Quantum 67160双机热备系统,上位机为iFIX4.0;入炉煤皮带秤称重显示控制仪为拉姆齐Micro-TechTM2000系列。称重显示控制仪输出4~20 mA信号,接入输煤程控系统PLC,以显示皮带秤瞬时流量;输出无源节点信号接入输煤程控系统高速计数模块,供输煤程控系统进行累积值的计算,但皮带速度未接入程控系统进行监视。各班组上煤后,人工抄写称重显示控制仪数据并与输煤程控系统累计值进行比对,最终以人工抄表数值为准。为此,可以考虑将称重显示控制仪直接以通信的方式接入输煤程控系统PLC,这样就可以避免电流信号、无源节点信号受到干扰而造成误差,也省去了人工抄表的麻烦。
2 通信接口及协议
2.1 称重显示控制仪通信接口及协议
拉姆齐Micro-TechTM2000系列称重显示控制仪是一种基于总线的微处理器仪表,可以根据需要选配1~2块串口通信板,每块串口通信板都有1个串行通道[2],可根据表1进行配置;同时,该控制仪还支持多种软件通信协议,见表2。拉姆齐Micro-TechTM2000系列称重显示控制仪选择不同的串行通信标准时,需要更改串行通信板上跳线的位置,其端子上的连接也不一样,具体参见仪表说明书。
表1 Micro-TechTM2000系列称重显示控制仪支持的通信标准Tab.1 Communication standards supported by the Micro-TechTM 2000 series weighing display controller
表2 Micro-TechTM2000系列称重显示控制仪支持的通信协议Tab.2 Communication protocols supported by the Micro-TechTM 2000 series weighing display controller
2.2 输煤PLC通信接口及协议
Unity Quantum 67160支持标准的ModBus协议通信,ModBus端口位于中央处理器(CPU)的前面,接口为RJ45,如图1所示。该ModBus端口既支持RS232串行通信标准,也支持RS485串行通信标准,不同的串行通信标准采用不同的网络拓扑结构,RJ45上的连接也不一样,其引脚定义见表3。
2.3 输煤PLC与称重显示控制仪的连接
由于RS232只支持点对点的访问,因此PLC对2台称重显示控制仪的通信不宜采用RS232通信标准。而RS485支持以处理器作为主站的一主多从总线拓扑结构,且称重显示控制仪和PLC都支持ModBus协议,所以PLC与称重显示控制仪的通信标准选用RS485,协议选择ModBus。根据称重显示控制仪说明书设置通信板跳线:op1:B,op2:A,op3:B,op4:B,op5:B,op6:C。PLC与称重显示控制仪通信接线如图2所示。
图1 ModBus 端口示意Fig.1 ModBus port schematic
表3 RJ45接口引脚定义Tab.3 RJ45 interface pin definition
注:在RS485通信标准,引脚 1和6,2和3必须短接。
图2 PLC与称重显示控制仪通信接线Fig.2 Communication wiring of PLC and weighing display controller
在该通信接线中,虽然物理上存在2台PLC,但在Quantum Hot Standby系统中,只有运行为主的CPU上的端口可用于ModBus,在默认情况下,发生主、备切换时,主、备CPU交换ModBus地址,因此在逻辑上主、备CPU为1个ModBus节点。
3 通信要求分析和软件实现
3.1 通信要求分析
拉姆齐Micro-TechTM2000系列称重显示控制仪在通信中通常作为从站,接收主站的请求消息,而不主动发出消息。当通信线路中主站发出请求消息时,称重显示控制仪由中断程序接收消息;接收完毕后,在周期性任务(100 ms/次)中核对消息中的设备地址;当消息中的地址与控制仪的地址匹配时,则检查消息的正确性,若消息正确,则处理请求消息生成应答消息,应答消息最多为41个字[2]。因此,数据访问时,主站发出请求消息的时间间隔必须大于100 ms且请求消息不得超过41个字。
然而,对于需要向显示控制仪写入数据的请求消息(对应ModBus功能码10H),成功地返回响应消息并不代表数据已写入显示控制仪,在显示控制仪的当前任务周期中还需要核对地址、数据上下限、口令等,只有满足要求后数据才会被写入显示控制仪,并将标志位置0,否则置1。因此,主站在向显示控制仪发送写入数据请求后还需等待100 ms,再发送一条查询标志位的请求消息,以确认数据被成功地写入显示控制仪。
对于主站140CPU67160,UnityPro软件提供了XXMIT功能块,管理CPU上的ModBus端口通信。当采用RS485标准通信时,由于RS485是半双工通信,任何时候只能有一点处于发送状态,在不发送的时候都处于接收状态[3],因此,当某一节点需要发送时将自身状态切换成发送,然后开始发送数据,发送完毕后再切换至接收状态。虽然该切换由XXMIT进行内部控制,不需要编程人员进行组态,但通信设计时仍需关注发送、接收之间的切换。
当XXMIT进行ModBus通信时,对于非广播的ModBus消息,应用程序需要在传送消息后从其他设备获得回答(请求-响应)[4],则XXMIT 需要从传送模式切换为接收模式,来读取通信合作方的响应。PLC将XXMIT 从传送切换为接收模式的最早时刻是紧接传送操作后的下一个扫描周期[5],即使在最少消息最快传递时,主站PLC至少需要2个扫描周期才能完成1个非广播的ModBus消息传递,如图3所示。
图3 XXMIT传送、接收模式转换及从站响应示意Fig.3 XXMIT transmission,reception mode conversion and response from slave station
当主站的扫描周期长而从站的响应速度快时,从站的响应延时尤为重要[5]。否则,主站发送完数据后,XXMIT仍处于当前扫描周期中,未切换为接收模式,主站还处在发送状态;而从站接收完数据后开始响应,则从站已切换为发送状态,导致RS485通信中有2点处于发送状态。为了避免这种状态,从站的ModBus消息响应应延时,延时时间=主站扫描周期-请求消息的发送时间,即使延时时间小于主站的扫描周期,为了保证通信顺利,建议设置从站的延时时间为主站扫描周期。
当从站无法设置响应消息延时时,应让主站的XXMIT尽快从传送模式切换为接收模式,虽然缩短主站的扫描周期可以尽快完成模式切换,但由于主站的扫描周期受工艺过程即应用程序的限制,所以通过缩短主站扫描周期来使切换时间缩短的幅度有限。
对RS485而言,虽然请求发送/清除发送(RTS/CTS)硬件控制流不受控制,但输入的StartDly和EndDly值依然对通信产生影响:StartDly输入的时间值确定了XXMIT在将消息发出PLC端口前等待的时间长度;EndDly输入的时间值确定了 XXMIT 在将消息发出PLC端口后等待的时间长度[5],如图4所示(图中:DCE为数据通信设备;TXD为发送数据)。EndDly值的设置,将延迟主站的XXMIT从发送模式切换为接收模式。
图4 RTS/CTS控制时序图Fig.4 Sequence diagram with RTS/CTS control
在RS485通信时, 发送信号在EndDly时间内保持为“1”,即节点的发送端口(TX)处于使能状态,接收端口(RX)禁止。当主站非广播的ModBus请求消息发送完毕EndDly结束前,由于无RTS/CTS硬件控制,异步扫描的从站会进行消息响应,即从站发送消息,则从站的TX处于使能状态,此时主站的TX也处于使能状态,必然导致线路冲突(如图5所示),从而将丢失来自从站响应的所有字符。因此,EndDly时间设置会导致以下问题:主站请求消息发送完毕后,从站消息响应开始时,应禁止的主站TX使能延时EndDly禁止,应使能的主站RX延时EndDly使能,亦即XXMIT延时EndDly从发送模式切换为接收模式。对此,可将EndDly设置为0,以让主站CPU尽快切换发送和接收。
图5 无RTS/CTS控制的响应冲突时序图Fig.5 Sequence diagram of response conflict without RTS/CTS control
当主站对从站数据实时性要求不高,或由于生产实际情况导致从站数据变化率不快,亦或从站对于主站的请求周期有时间要求时,可对StartDly设置稍长的时间,以减少主站的请求频率和从站的响应频率,例如设置为500 ms,则主站发出下一个请求时,至少需要等待500 ms。
3.2 软件实现
该项目要求读取2台称重显示控制仪的瞬时流量、皮带速度、累计流量至PLC并送上位机显示。Micro-Tech 2001,2101系列称重显示控制仪数据定义见表4。
表4 称重显示控制仪数据定义Tab.4 Data definition of weighing display controller
由于地址400095~400144的长度超过了41个字,因此瞬时流量、皮带速度、累计流量需要分2次读取。根据ModBus请求-响应的通信机制,同一时刻主站只能和一台从站通信,所以,获取2台称重显示控制仪的数据需要4次ModBus通信才能完成。
首先,设定好称重显示控制仪的通信参数,包括设备地址、波特率、数据位、停止位、校验方式等。然后在UntiyPro软件中利用XXMIT功能块进行组态编程:设置Port为1;Command为16#2100,即启用RS485模式,选择ModBus消息传递;MsgOut是主站PLC向从站称重显示控制仪发送ModBus消息的具体内容,包括ModBus功能码、读取或写入的数据长度、从设备地址、从设备数据区起始地址、主设备数据区起始地址等;功能块波特率、数据位、停止位、校验方式与从站保持一致,如图6所示。
图6 XXMIT功能块实例Fig.6 An example of XXMIT function module
在程序中定义Int型的标志Flag,初始值设置为1,系统初始化完成后XXMIT开始执行,当Flag=1时,主站向A称重显示控制仪发送一条ModBus消息,读取400095~400100的值,成功后(管脚Done为1)Flag自动加1变为2;当Flag=2时,主站再向A称重显示控制仪发送一条ModBus消息,读取400141~00142的值,成功后Flag自动加1变为3;当Flag=3时,主站向B称重显示控制仪发送一条ModBus消息,读取400095~400100的值,成功后Flag自动加1变为4;当Flag=4时,主站再向B称重显示控制仪发送一条ModBus消息,读取400141~400142的值,成功后Flag复位为1,开始第2轮数据交换,如此循环。
如果某个ModBus通信出现故障(管脚Error为1),Flag也需自动加1,让程序跳过该故障继续往下执行,否则Flag数值不变,CPU每次都执行这段通信故障程序,导致整个数据交换中断,如图7所示(图中:X为1,2,3)。
图7 数据交换循环控制逻辑Fig.7 Data exchange loop control logic
140CPU67160通过以上的程序组态读取到了2台称重显示控制仪的数据并传送至上位机,省去了人工抄表的麻烦,避免了人工抄表的错误。上位机数据通过厂级监控信息系统(SIS)读取,直接传送至数据分析部门及管理部门,为管理者及时决策提供了可靠的数据支撑。
4 结束语
通过上述分析和实施,实现了入炉煤皮带秤数据准确可靠地远传至Quantum PLC,减少干扰造成的误差,为煤耗计算提供了翔实的数据,降低了人工工作负荷;同时,也为拉姆齐Micro-TechTM2000系列称重显示控制仪与RockWell或Siemens PLC组成的输煤控制系统采用相应协议(AB DF1或3964R)通信提供了范例。