童健
(浙江杭钢动力有限公司,浙江杭州310022)
基于S7-200的Modbus通讯过程容错性提高方法
童健
(浙江杭钢动力有限公司,浙江杭州310022)
采用西门子S7-200实现iFIX上位机同英格索兰氮气透平机的数据通讯,通过对数据包通讯状态的监控,判断氮透是否正常运行,跳过处于非工作状态的氮透数据包请求,解决了因氮透停止运行导致的数据读取异常现象,提高了通讯过程容错性。
数据通讯;监控;容错性
随着工业通讯技术的不断发展,在工控领域,仪器仪表之间以总线通讯的方式实现信息传递成为越来越普遍的做法。其原因在于现场总线通讯技术改变了传统模拟信号采集中,一对一的采集方式,实现一对多、双向的信号传递过程,在通讯效率、抗干扰能力上远强于传统的模拟信号传递方式。然而,在实际的现场总线通讯过程中,总线上某通讯对象的异常状况可能会影响总线上信号传递过程,降低通讯效率甚至造成通讯中断。
本文针对iFIX上位机与英格索兰氮气透平机之间采用Modbus现场总线方式通讯过程中出现的通讯故障问题,提出了一种新的通讯模式,彻底解决了通讯过程中存在的故障,提高系统运行的稳定性。
iFIX组态软件自带Modbus驱动接口。英格索兰氮透支持基于RS485的Modbus通讯方式。在工控机上安装一块RS485通讯卡,即可实现iFIX组态软件与英格索兰氮透的数据通讯。通讯结构图如图1所示。
图1 通讯结构图
笔者所在单位原一期氮透项目只有1#、2#2台氮压机,即采用以上通讯方式,实施方便,数据采集、通讯正常。二期又上了2台氮透,还是采用该通讯模式进行数据的采集监控。可随后,监控计算机采集的数据经常不更新,刷新时间很长,严重影响监控系统的实时性。
通过对数据采集过程的分析,我们发现由于每个Modbus数据包只能读取连续地址的数据,而每个数据包最长只能读取128个字节数据。因此,如果需要读取地址40001、40130的数据,需要分成两个数据包读取。本系统中,为了读取一台氮透中AI/ AO/DI/DO的数据,需要12个数据包,四台氮透共需要48个数据包。每个数据包的发送与接收时间约为0.1 s,故完成4台氮透的所有数据的采集过程,约需要4.8 s时间。
然而,当其中有一台氮透断电(处于备机状态)时,iFIX所发出的请求包无法获得回应,在iFIX的Modbus通讯机制中,数据包无法获得回应时,每1秒重复发生5次,还没有获得回应,则跳转至下一个数据包。因此,如果有一台氮透断电没有工作,则该氮透的12个数据包均需要重复发送5次,耗时60 s,整个数据采集循环周期为63.6 s。两台氮透没有工作,则循环周期为122.4 s。该情况导致正常运行的氮透在上位机上长时间无法获取数据,影响上位机系统对氮透的监控进程,进而影响正常的生产。
以上的分析与实际情况相符。因为一期时二台氮透(一台低压、一台中压)均长期处于运行状态,不存在备机的通讯等待问题。而二期后,有了备用机组,当备用机组未通电时,即发生了上述的数据长时间不刷新的现象,备用机组越多,该现象越明显。
为了在氮透运行台数发生变化时,均能够保证iFIX上位机对氮透的数据采集速度,拟采用西门子S7-200系列PLC与氮透实现通讯,利用S7-200灵活的数据通讯功能,解决同氮透通讯中存在的问题,实现稳定、快速通讯。
采用S7-200实现iFIX同氮透的通讯结构图如图2所示。
图2 利用S7-200通讯结构图
S7-200的CPU自带1~2个RS485通讯端口,默认支持PPI通讯协议。同时,通过自由编程,可支持任何基于RS485主从通讯模式的通讯协议。利用该通讯口实现同氮透之间基于RS485的Modbus通讯,采集氮透的实时运行数据。再通过以太网,实现iFIX上位机同S7-200的通讯,从S7-200读取所有氮透的运行数据,实现上位机对氮透系统的数据监控功能。S7-200 Modbus通讯初始化程序如图3。
图3 S7-200 Modbus通讯初始化程序图
针对于通讯过程由于某台氮透断电影响其他氮透的数据读取速度的问题,S7-200的通讯过程采用以下方式解决:
(1)每个数据包分别设置标示符。每组氮透数据包对应的标示符表如表1。
表1 氮透数据包对应的标示符
(2)程序实时监控数据包发送与接收成功位“Done”。当检测到“101Done”位为1,表示101数据包发送与接收成功,继续执行102数据包的发送。按此顺序执行所有数据包的发送过程。
(3)程序试试监控数据包发送与接收失败位“Error”。当程序检测到每台氮透第一个数据包发送失败时,直接跳转至发送下一台氮透数据包。
程序运行流程图如图4所示。
程序实现部分代码分数据包顺序发送代码和通讯故障跳转代码两部分。因篇幅所限,不在此详列。
经过测试,采用S7-200与英格索兰氮透通讯,4台氮透全部正常运行时,数据采集周期为4.8 s。3台氮透运行时,数据采集周期为3.7 s。2台氮透运行时,数据采集周期为2.6 s。实践证明,在该模式下运行,氮透的启动或者停止,对上位机的数据采集过程没有任何影响,提高了数据通讯过程容错性。
Improvement Method of Modbus Communication Process Fault Tolerance Based on S7-200
TONG Jian
(Power Co.,Ltd.,Hangzhou Iron and Steel Group Co.,Hangzhou,Zhejiang 310022,China)
Siemens S7-200 is adopted to realize data communication of iFIX upper computer and Ingersoll Rand nitrogen turbine.By monitoring the state of the data packet communication it can determine whether the nitrogen turbine is in normal operation or not. The packet request of the nitrogen turbine in the non-working state can be ignored.It solves datareadabnormalphenomenonduetothenitrogenturbine’soutageandimproves communication process fault tolerance.
data communication;monitor;fault tolerance
TN919
B
1006-6764(2013)07-0081-03
2013-03-15
童健(1974-),男,1994年7月毕业于本溪冶金高等专科学校工业自动化仪表,大专学历,2013年2月毕业于浙江大学远程教育学院电气工程,本科学历,学士学位,工程师,现从事仪控自动化专业的技术管理和气体厂的设备管理工作。