马晓宁,祖艳萍,温 杰,闫洪伟,常生财
(首钢京唐钢铁联合有限责任公司冷轧作业部,河北 唐山 063200)
随着钢铁市场竞争日益激烈,对于产品质量要求不断提高,某钢铁生产线引进内部缺陷检测仪对带钢内部质量进行检测,由于该大型仪表是目前国际领先的带钢内部缺陷在线检测装置,在原有的西门子过程控制系统中没有相应的通讯接口,因此添加新的通讯接口进程势在必行。本通讯接口COMIDD基于西门子的底层通讯libcom通过以太网采用TCP/IP协议实现与内部缺陷仪的通讯连接。 TCP/IP协议实现的通信方式简便实用,对于钢铁、工矿等企业中涉及数据通讯大部分采用该协议,可以满足工业生产的需求[1-6]。
按照实际数据传输需要设计通讯所需的电文结构,包括设计电文头、与内部缺陷检测仪交互的心跳电文、原料卷主数据电文、产出成品卷数据电文,并接收内部缺陷检测仪返回的心跳电文及成品卷检查结果电文,同时设计接收内部MT进程发送的原料卷及成品卷电文。在新增加的电文结构中设计了新的基类及电文结构,这样既不与原有电文混淆,又使整个电文整齐明了,同时方便后期的优化及修改。
所有与内陷仪设备交互的电文都使用相同结构的电文头,电文头长度为16字节,结构表如表1所示。
表1 电文头结构表
心跳电文用于监控过程自动化系统与内陷仪设备间的通讯状态,每隔60S向内陷仪设备发送一次心跳电文,同样每隔60S内陷仪设备向二级过程自动化系统发送一次心跳电文。如果超过60S未接收到内陷仪设备发送的心跳电文,则进程日志报错,提示通讯异常。
当接收到MT进程发送的原料卷号电文后,COMIDD进程对电文进行解析,并准备向外的部内陷仪设备发送原料卷数据电文。首先根据MT进程发送的钢卷号获取内陷仪设备需要的原料卷数据,然后进行相应的电文填充,最后发送电文。电文内容包括电文头、原料卷号、检查模式、牌号代码、带钢厚度、带钢宽度、镀层厚度、表面处理、用户代码、使用代码等信息。内部缺陷仪在接收到原料卷电文后,向二级系统发送应答电文,二级接收到该应答电文后,更新应答状态不做其它处理。
当接收到MT进程发送的成品卷电文后,COMIDD进程对电文进行解析,并准备向外的部内陷仪设备发送成品卷数据电文。首先根据MT进程发送的成品卷号获取内陷仪设备需要的原料卷数据,再通过原料卷号获取所有成品卷号,卷号获取后进行相应成品卷数据电文填充,最后发送电文。
在向内陷仪设备发送成品卷数据电文时,需要将同一母卷生产的所有子卷一起发送,同时为准确定位检查结果位置,需要将废料剪切长度一并发送给内陷仪设备。电文内容包括电文头、原料卷号、第一子成品卷废料长度、第一子成品卷卷号、第一子成品卷长度,以此类推第二子成品卷、第三子成品卷,设定最多可向内陷仪发送6卷成品卷数据, 实际剪切长度和废料长度示意图如图1所示。
图1 剪切长度和废料长度信息实际值
同样内部缺陷仪在接收到成品卷电文后,向二级系统发送应答电文,二级接收到该应答电文后,更新应答状态不做其它处理。
创建COMIDD进程接收内陷仪设备发送的检查结果电文,并对电文进行解析,按成品卷将对应检查数据存入二级数据库中。电文内容包括电文头、原料卷号、成品卷号、检查模式、检查状态、系统状态、不同区域不同等级缺陷数量以及缺陷率等。
MT原料卷电文负责通知CMOIDD进程发送原料卷数据信息,电文内容包括电文头、原料卷SID号、原料卷卷号。
MT成品卷触发电文负责通知CMOIDD进程发送原料卷数据信息,电文内容包括电文头、成品卷SID号、成品卷卷号。
由于原过程控制系统中采用的编程语言为C++语言,因此本文COMIDD通讯进程的源代码采用C++语言编写实现。
创建COMIDD实例通过底层通讯libcom监控各个事件。在程序进行初始化时启动定时器,包括发送内陷仪心跳电文定时器和接收内陷仪心跳电文定时器,并首次向内陷仪设备发送心跳电文建立通讯连接。
设置电文缓存区,包括与二级内部进程通讯电文缓存及与内部缺陷仪通讯电文缓存。
底层通讯接收定时事件和电文事件。在接收到定时事件时,通过通道号判定是定时器触发(通道号TIMER_COMIDD_ALIVE)或是定时接收内陷仪设备发送的心跳电文(通道号为TIMER_COMSIS_CHECK_RECV)。如果为定时器触发则向内陷仪设备发送心跳电文,如果为内陷仪发送心跳电文则更新与表捡仪通讯状态。如果没有检测到定时事件,系统将自动重新启动定时器。
接收电文事件,通过端口号判定电文来自过程自动化内部MT进程(内部端口CHAN_COMIDD)或是来自内部缺陷检测仪(接收端口CHAN_SIS_RECV)。在接收到不同的通讯电文后进行相应的处理。
为方便COMIDD进程在数据库中读取数据,在过程自动化数据库中建立视图,用于获取发送内陷仪设备所需的成品卷数据。在数据库中建立存储表,用于存储内部缺陷检查仪返回的检查数据。
过程控制系统中MT进程负责与现场一级进行数据交互,MT进程接收一级上传的大部分处理事件,其中包括向内陷仪设备发送原料卷、成品卷报文的触发事件,因此需要建立COMIDD进程与MT进程之间的通讯,以实现准确的事件触发。
当MT进程接收到一级发送的带钢入口焊接电文后,会触发COMIDD进程向内陷仪仪发送原料卷数据电文,内陷仪收到原料卷数据电文后,向COMIDD进程返回应答电文;当原料卷的最后一卷产出后,MT进程触发COMIDD进程给内陷仪发送对应于该原料卷的所有成品卷数据,在接收到成品卷数据后,内陷仪给COMIDD发送成品卷检查结果数据,COMIDD进程对数据进行处理机存储。
在成品卷产出后需要通知内陷仪设备成品卷的相关数据。过程自动化系统在接收现场一级成品卷电文是通过MT处理进程进行接收及处理,因此在成品卷产出后通过MT进程触发COMIDD进程向内陷仪设备发送成品卷数据电文。通讯电文为MT_T_PCOIL,发送到过程控制系统中CHAN_COMIDD端口。根据内陷仪设备需求,在原料卷的最后一卷产出后,将属于该原料卷的所有成品卷数据发送给表捡仪。因此需要增加判定条件,在成品卷产出后判定是否为最后一卷,若该成品卷是最后一卷,则触发成品卷数据电文,向COMIDD进程发送成品卷触发电文。
本通讯接口采用TCP/IP协议,基于西门子过程控制平台底层通讯,添加通讯所需电文结构,建立COMIDD进程实现对内部缺陷检测仪所需数据的处理及存储,建立COMIDD进程与系统内部原有MT进程通讯,以获取相关钢卷信息, MT进程中添加触发电文程序,实现COMIDD进程给内部缺陷检测仪发送原料卷数据电文及成品卷数据电文。该通讯方法高效稳定,COMIDD接口进程可实时监控通讯状态,在通讯重新建立后,无需任何操作自动进行连接,且连接速度快;可复用性强,任何外部仪表设备与西门子过程控制器的通讯连接都可以采用该接口进行通信。