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