馬曉寧,祖艷萍,溫 杰,閆洪偉,常生財
(首鋼京唐鋼鐵聯(lián)合有限責任公司冷軋作業(yè)部,河北 唐山 063200)
隨著鋼鐵市場競爭日益激烈,對于產(chǎn)品質量要求不斷提高,某鋼鐵生產(chǎn)線引進內(nèi)部缺陷檢測儀對帶鋼內(nèi)部質量進行檢測,由于該大型儀表是目前國際領先的帶鋼內(nèi)部缺陷在線檢測裝置,在原有的西門子過程控制系統(tǒng)中沒有相應的通訊接口,因此添加新的通訊接口進程勢在必行。本通訊接口COMIDD基于西門子的底層通訊libcom通過以太網(wǎng)采用TCP/IP協(xié)議實現(xiàn)與內(nèi)部缺陷儀的通訊連接。 TCP/IP協(xié)議實現(xiàn)的通信方式簡便實用,對于鋼鐵、工礦等企業(yè)中涉及數(shù)據(jù)通訊大部分采用該協(xié)議,可以滿足工業(yè)生產(chǎn)的需求[1-6]。
按照實際數(shù)據(jù)傳輸需要設計通訊所需的電文結構,包括設計電文頭、與內(nèi)部缺陷檢測儀交互的心跳電文、原料卷主數(shù)據(jù)電文、產(chǎn)出成品卷數(shù)據(jù)電文,并接收內(nèi)部缺陷檢測儀返回的心跳電文及成品卷檢查結果電文,同時設計接收內(nèi)部MT進程發(fā)送的原料卷及成品卷電文。在新增加的電文結構中設計了新的基類及電文結構,這樣既不與原有電文混淆,又使整個電文整齊明了,同時方便后期的優(yōu)化及修改。
所有與內(nèi)陷儀設備交互的電文都使用相同結構的電文頭,電文頭長度為16字節(jié),結構表如表1所示。
表1 電文頭結構表
心跳電文用于監(jiān)控過程自動化系統(tǒng)與內(nèi)陷儀設備間的通訊狀態(tài),每隔60S向內(nèi)陷儀設備發(fā)送一次心跳電文,同樣每隔60S內(nèi)陷儀設備向二級過程自動化系統(tǒng)發(fā)送一次心跳電文。如果超過60S未接收到內(nèi)陷儀設備發(fā)送的心跳電文,則進程日志報錯,提示通訊異常。
當接收到MT進程發(fā)送的原料卷號電文后,COMIDD進程對電文進行解析,并準備向外的部內(nèi)陷儀設備發(fā)送原料卷數(shù)據(jù)電文。首先根據(jù)MT進程發(fā)送的鋼卷號獲取內(nèi)陷儀設備需要的原料卷數(shù)據(jù),然后進行相應的電文填充,最后發(fā)送電文。電文內(nèi)容包括電文頭、原料卷號、檢查模式、牌號代碼、帶鋼厚度、帶鋼寬度、鍍層厚度、表面處理、用戶代碼、使用代碼等信息。內(nèi)部缺陷儀在接收到原料卷電文后,向二級系統(tǒng)發(fā)送應答電文,二級接收到該應答電文后,更新應答狀態(tài)不做其它處理。
當接收到MT進程發(fā)送的成品卷電文后,COMIDD進程對電文進行解析,并準備向外的部內(nèi)陷儀設備發(fā)送成品卷數(shù)據(jù)電文。首先根據(jù)MT進程發(fā)送的成品卷號獲取內(nèi)陷儀設備需要的原料卷數(shù)據(jù),再通過原料卷號獲取所有成品卷號,卷號獲取后進行相應成品卷數(shù)據(jù)電文填充,最后發(fā)送電文。
在向內(nèi)陷儀設備發(fā)送成品卷數(shù)據(jù)電文時,需要將同一母卷生產(chǎn)的所有子卷一起發(fā)送,同時為準確定位檢查結果位置,需要將廢料剪切長度一并發(fā)送給內(nèi)陷儀設備。電文內(nèi)容包括電文頭、原料卷號、第一子成品卷廢料長度、第一子成品卷卷號、第一子成品卷長度,以此類推第二子成品卷、第三子成品卷,設定最多可向內(nèi)陷儀發(fā)送6卷成品卷數(shù)據(jù), 實際剪切長度和廢料長度示意圖如圖1所示。
圖1 剪切長度和廢料長度信息實際值
同樣內(nèi)部缺陷儀在接收到成品卷電文后,向二級系統(tǒng)發(fā)送應答電文,二級接收到該應答電文后,更新應答狀態(tài)不做其它處理。
創(chuàng)建COMIDD進程接收內(nèi)陷儀設備發(fā)送的檢查結果電文,并對電文進行解析,按成品卷將對應檢查數(shù)據(jù)存入二級數(shù)據(jù)庫中。電文內(nèi)容包括電文頭、原料卷號、成品卷號、檢查模式、檢查狀態(tài)、系統(tǒng)狀態(tài)、不同區(qū)域不同等級缺陷數(shù)量以及缺陷率等。
MT原料卷電文負責通知CMOIDD進程發(fā)送原料卷數(shù)據(jù)信息,電文內(nèi)容包括電文頭、原料卷SID號、原料卷卷號。
MT成品卷觸發(fā)電文負責通知CMOIDD進程發(fā)送原料卷數(shù)據(jù)信息,電文內(nèi)容包括電文頭、成品卷SID號、成品卷卷號。
由于原過程控制系統(tǒng)中采用的編程語言為C++語言,因此本文COMIDD通訊進程的源代碼采用C++語言編寫實現(xiàn)。
創(chuàng)建COMIDD實例通過底層通訊libcom監(jiān)控各個事件。在程序進行初始化時啟動定時器,包括發(fā)送內(nèi)陷儀心跳電文定時器和接收內(nèi)陷儀心跳電文定時器,并首次向內(nèi)陷儀設備發(fā)送心跳電文建立通訊連接。
設置電文緩存區(qū),包括與二級內(nèi)部進程通訊電文緩存及與內(nèi)部缺陷儀通訊電文緩存。
底層通訊接收定時事件和電文事件。在接收到定時事件時,通過通道號判定是定時器觸發(fā)(通道號TIMER_COMIDD_ALIVE)或是定時接收內(nèi)陷儀設備發(fā)送的心跳電文(通道號為TIMER_COMSIS_CHECK_RECV)。如果為定時器觸發(fā)則向內(nèi)陷儀設備發(fā)送心跳電文,如果為內(nèi)陷儀發(fā)送心跳電文則更新與表撿儀通訊狀態(tài)。如果沒有檢測到定時事件,系統(tǒng)將自動重新啟動定時器。
接收電文事件,通過端口號判定電文來自過程自動化內(nèi)部MT進程(內(nèi)部端口CHAN_COMIDD)或是來自內(nèi)部缺陷檢測儀(接收端口CHAN_SIS_RECV)。在接收到不同的通訊電文后進行相應的處理。
為方便COMIDD進程在數(shù)據(jù)庫中讀取數(shù)據(jù),在過程自動化數(shù)據(jù)庫中建立視圖,用于獲取發(fā)送內(nèi)陷儀設備所需的成品卷數(shù)據(jù)。在數(shù)據(jù)庫中建立存儲表,用于存儲內(nèi)部缺陷檢查儀返回的檢查數(shù)據(jù)。
過程控制系統(tǒng)中MT進程負責與現(xiàn)場一級進行數(shù)據(jù)交互,MT進程接收一級上傳的大部分處理事件,其中包括向內(nèi)陷儀設備發(fā)送原料卷、成品卷報文的觸發(fā)事件,因此需要建立COMIDD進程與MT進程之間的通訊,以實現(xiàn)準確的事件觸發(fā)。
當MT進程接收到一級發(fā)送的帶鋼入口焊接電文后,會觸發(fā)COMIDD進程向內(nèi)陷儀儀發(fā)送原料卷數(shù)據(jù)電文,內(nèi)陷儀收到原料卷數(shù)據(jù)電文后,向COMIDD進程返回應答電文;當原料卷的最后一卷產(chǎn)出后,MT進程觸發(fā)COMIDD進程給內(nèi)陷儀發(fā)送對應于該原料卷的所有成品卷數(shù)據(jù),在接收到成品卷數(shù)據(jù)后,內(nèi)陷儀給COMIDD發(fā)送成品卷檢查結果數(shù)據(jù),COMIDD進程對數(shù)據(jù)進行處理機存儲。
在成品卷產(chǎn)出后需要通知內(nèi)陷儀設備成品卷的相關數(shù)據(jù)。過程自動化系統(tǒng)在接收現(xiàn)場一級成品卷電文是通過MT處理進程進行接收及處理,因此在成品卷產(chǎn)出后通過MT進程觸發(fā)COMIDD進程向內(nèi)陷儀設備發(fā)送成品卷數(shù)據(jù)電文。通訊電文為MT_T_PCOIL,發(fā)送到過程控制系統(tǒng)中CHAN_COMIDD端口。根據(jù)內(nèi)陷儀設備需求,在原料卷的最后一卷產(chǎn)出后,將屬于該原料卷的所有成品卷數(shù)據(jù)發(fā)送給表撿儀。因此需要增加判定條件,在成品卷產(chǎn)出后判定是否為最后一卷,若該成品卷是最后一卷,則觸發(fā)成品卷數(shù)據(jù)電文,向COMIDD進程發(fā)送成品卷觸發(fā)電文。
本通訊接口采用TCP/IP協(xié)議,基于西門子過程控制平臺底層通訊,添加通訊所需電文結構,建立COMIDD進程實現(xiàn)對內(nèi)部缺陷檢測儀所需數(shù)據(jù)的處理及存儲,建立COMIDD進程與系統(tǒng)內(nèi)部原有MT進程通訊,以獲取相關鋼卷信息, MT進程中添加觸發(fā)電文程序,實現(xiàn)COMIDD進程給內(nèi)部缺陷檢測儀發(fā)送原料卷數(shù)據(jù)電文及成品卷數(shù)據(jù)電文。該通訊方法高效穩(wěn)定,COMIDD接口進程可實時監(jiān)控通訊狀態(tài),在通訊重新建立后,無需任何操作自動進行連接,且連接速度快;可復用性強,任何外部儀表設備與西門子過程控制器的通訊連接都可以采用該接口進行通信。