国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于iPlature和iXCom的過程控制系統(tǒng)通信接口的開發(fā)

2023-11-15 01:51:26尉,王
寶鋼技術(shù) 2023年4期
關(guān)鍵詞:源文件回線電文

沈 尉,王 欣

(寶山鋼鐵股份有限公司設(shè)備部,上海 201999)

鋼鐵行業(yè)的生產(chǎn)過程是典型的流程型工業(yè)生產(chǎn)過程,為了實(shí)現(xiàn)企業(yè)全流程綜合經(jīng)濟(jì)指標(biāo)優(yōu)化,企業(yè)通常會(huì)采用覆蓋全流程的綜合自動(dòng)化系統(tǒng),國內(nèi)外大型鋼鐵企業(yè)的綜合自動(dòng)化系統(tǒng)一般采用的是五層架構(gòu):決策支持系統(tǒng),企業(yè)級(jí)或離線批處理為主的產(chǎn)銷系統(tǒng),分廠級(jí)或在線實(shí)時(shí)處理為主的生產(chǎn)控制系統(tǒng),過程控制系統(tǒng)及基礎(chǔ)自動(dòng)化系統(tǒng)[1]。

與其他行業(yè)相比,鋼鐵行業(yè)通信的應(yīng)用環(huán)境更為復(fù)雜多樣,對(duì)通信接口的開發(fā)提出了更加個(gè)性化的要求。伴隨著國內(nèi)鋼鐵企業(yè)規(guī)模日益擴(kuò)大的趨勢(shì),以及更多新的生產(chǎn)系統(tǒng)的加入,如何實(shí)現(xiàn)新老系統(tǒng)間的通信兼容,如何在安全高效的前提下降低系統(tǒng)改造費(fèi)用,如何確保生產(chǎn)系統(tǒng)運(yùn)行與通信的連續(xù)性,如何向生產(chǎn)運(yùn)維提供更為可靠的支撐,成為了當(dāng)前鋼鐵行業(yè)通信接口開發(fā)的共同課題。

1 開發(fā)平臺(tái)介紹

iPlature 是上海寶信軟件股份有限公司研制的面向各種過程控制系統(tǒng)的軟件開發(fā)平臺(tái),適用各種操作系統(tǒng)。該軟件具有功能完備、可擴(kuò)充能力強(qiáng)、效率高、支持多種操作系統(tǒng)、全面支持多線程、穩(wěn)定可靠、服務(wù)程序運(yùn)行狀態(tài)自動(dòng)檢測和易用性好等優(yōu)點(diǎn),在國內(nèi)工業(yè)生產(chǎn)及其他過程控制系統(tǒng)中得到廣泛應(yīng)用[2]。該軟件的平臺(tái)任務(wù)開發(fā)為構(gòu)建面向?qū)ο蟮目蛻簟?wù)器應(yīng)用提供了工具、API和庫支持。iPlature::Component及iPlature::P99Component作為應(yīng)用組件開發(fā)模板,解決了進(jìn)程間的通信問題,大大減少了應(yīng)用開發(fā)的復(fù)雜性,提高了開發(fā)效率和擴(kuò)展能力。

iXCom是一款面向開發(fā)人員的外部通信中間件平臺(tái),由上海寶信軟件股份有限公司研制,通過它可以實(shí)現(xiàn)計(jì)算機(jī)之間的數(shù)據(jù)通信。平臺(tái)內(nèi)置了多種常用的通信規(guī)約。它起源于大型鋼鐵制造企業(yè),專業(yè)解決不同供應(yīng)商提供的平臺(tái)上的連通性問題,實(shí)現(xiàn)分布式應(yīng)用中的信息交換[3]。iXCom作為通信中間件,對(duì)上層的應(yīng)用程序提供了統(tǒng)一的編程界面(圖1)。平臺(tái)主要實(shí)現(xiàn)了發(fā)送和接收應(yīng)用電文、支持多種通信協(xié)議、日志管理、分布式修改配置信息、分布式管理回線狀態(tài)、分布式模擬收發(fā)電文等功能。

圖1 基于iPlature和iXCom的系統(tǒng)間通信實(shí)現(xiàn)方式

2 基于iXCom的配置方法

在iXCom平臺(tái)上實(shí)現(xiàn)電文收發(fā)主要是通過客戶端來實(shí)現(xiàn)信息交互。首先需要在兩臺(tái)設(shè)備的iXCom客戶端上分別新建回線,保證兩臺(tái)設(shè)備回線號(hào)和協(xié)議相同,并填寫回線屬性,包括本方機(jī)器代碼、監(jiān)聽端口、對(duì)方機(jī)器代碼、對(duì)方IP、對(duì)方端口,其中端口和機(jī)器代碼自行設(shè)置,兩臺(tái)交互的機(jī)器信息匹配即可,配置完成后便可以在客戶端進(jìn)行收發(fā)電文的操作(圖2)。

圖2 回線屬性配置

iXCom平臺(tái)配置發(fā)送電文有兩種模式:高速模式和高可靠模式。高速模式發(fā)送表示對(duì)發(fā)送的電文不進(jìn)行緩存,發(fā)送失敗則丟棄電文,不重發(fā),一般在與PLC等高速設(shè)備進(jìn)行通信時(shí)使用。高可靠模式發(fā)送表示會(huì)將發(fā)送的數(shù)據(jù)進(jìn)行緩存,可查詢歷史數(shù)據(jù),發(fā)送失敗會(huì)根據(jù)配置的重發(fā)次數(shù)進(jìn)行重發(fā),一般用于與生產(chǎn)管理系統(tǒng)進(jìn)行通信。電文接收上,iXCom主要提供了4種電文接收方式:PCS_Receive方式、iPlature方式、外部數(shù)據(jù)庫方式、XMLRPC方式。其中,以iPlature方式接收電文能很好地將電文拋給進(jìn)程,更利于后續(xù)的電文解析工作,因此更加適合應(yīng)用于鋼鐵行業(yè)過程控制計(jì)算機(jī)系統(tǒng)。

3 基于iPlature的配置方法

開發(fā)中常用的基于iPlature 的電文收發(fā)主要包括兩部分內(nèi)容,分別是電文處理及進(jìn)程間的數(shù)據(jù)傳遞。

3.1 電文處理方法

3.1.1 發(fā)送電文

使用進(jìn)程發(fā)送電文(圖3)主要通過調(diào)用iXCom中的PCS_Send方法來實(shí)現(xiàn)。

圖3 發(fā)送電文程序框架與功能介紹

為了在進(jìn)程中使用這個(gè)方法,至少在進(jìn)程的基本結(jié)構(gòu)中包括兩個(gè)頭文件app*.h(進(jìn)程啟動(dòng)頭文件)、*ICEI.h(電文收發(fā)功能頭文件),兩個(gè)源文件app*.cpp(進(jìn)程啟動(dòng)源文件)、*ICEI.cpp(電文收發(fā)功能源文件)。

app*.h和app*.cpp的作用主要是通過繼承iPlature平臺(tái)中定義的Component類,并實(shí)現(xiàn)start等方法,構(gòu)建并啟動(dòng)進(jìn)程。

*ICEI.h和*ICEI.cpp的主要功能是通過繼承iPlature平臺(tái)中定義的MessageICE類,實(shí)現(xiàn)諸如SendDataShort(短電文發(fā)送),SendDataLong(長電文發(fā)送),TimeNotify(時(shí)間通知)等方法,并通過這些方法,向其他進(jìn)程提供數(shù)據(jù)接收的接口;收到數(shù)據(jù)后,程序通過實(shí)現(xiàn)Autotele類中的Rebuild方法,根據(jù)在數(shù)據(jù)庫中定義的eventNo和電文結(jié)構(gòu),構(gòu)建電文;最后調(diào)用PCS_Send,通過iXCom發(fā)送電文。

3.1.2 接收電文

通過進(jìn)程接收電文也可以用iPlature的方式來實(shí)現(xiàn)(圖4)。

圖4 接收電文程序框架與執(zhí)行流程

類似發(fā)送電文的進(jìn)程,用于接收電文的進(jìn)程,其基本結(jié)構(gòu)包括一個(gè)頭文件app*.h,兩個(gè)源文件*Cus.cpp(電文賦值轉(zhuǎn)發(fā)功能源文件)和*Base.cpp(其他功能實(shí)現(xiàn)源文件)。

首先在app*.h中繼承iPlature平臺(tái)中的P99Component類;然后在*Base.cpp中使用PostInitCall(進(jìn)程啟動(dòng))來構(gòu)建并啟動(dòng)進(jìn)程,并定義關(guān)聯(lián)的數(shù)據(jù)處理進(jìn)程;進(jìn)程啟動(dòng)后,通過HandleMessage(服務(wù)接口)來接收通過iXCom接收到的電文數(shù)據(jù),簡單解析出電文號(hào)后,發(fā)送到DispatchData(賦值轉(zhuǎn)發(fā))進(jìn)行后續(xù)電文處理;最后在*Cus.cpp中通過DispatchData,將電文內(nèi)容和電文號(hào)通過關(guān)聯(lián)的數(shù)據(jù)處理進(jìn)程的ICEI中定義的SendDataShort等方法進(jìn)行傳送。

3.2 進(jìn)程間數(shù)據(jù)傳遞方法

內(nèi)部進(jìn)程收發(fā)主要依托于iPlature平臺(tái)(圖5),并不涉及到iXCom平臺(tái)。因此,可以視作發(fā)送電文示例中的SendDataShort實(shí)現(xiàn)過程,與接收電文實(shí)例中的DispatchData實(shí)現(xiàn)過程的結(jié)合。

圖5 基于iPlature的內(nèi)部進(jìn)程收發(fā)設(shè)計(jì)結(jié)構(gòu)

首先需要建立兩個(gè)進(jìn)程,分別負(fù)責(zé)發(fā)送數(shù)據(jù)(進(jìn)程S)與接收數(shù)據(jù)(進(jìn)程R)。兩個(gè)進(jìn)程的基本結(jié)構(gòu)包括頭文件app*.h/*Func.h/*ICEI.h共3個(gè),對(duì)應(yīng)的3個(gè)實(shí)現(xiàn)源文件為app*.cpp/*Func.cpp/*ICEI.cpp。

構(gòu)建負(fù)責(zé)發(fā)送電文的進(jìn)程(進(jìn)程S)時(shí),首先要在app*.cpp文件中定義一個(gè)app組件類,并定義其對(duì)應(yīng)的構(gòu)造函數(shù)。其中,MessageICEPrx *_proxy定義了進(jìn)程發(fā)送電文的目標(biāo)進(jìn)程(進(jìn)程R),主要的實(shí)現(xiàn)內(nèi)容代碼可以通過*Func.cpp(電文發(fā)送功能源文件)實(shí)現(xiàn),通過給預(yù)先定義的變量或者數(shù)據(jù)結(jié)構(gòu)賦值,并且通過vector將數(shù)據(jù)轉(zhuǎn)換為流數(shù)據(jù),再調(diào)用進(jìn)程R類中的SendDataShort()函數(shù),將數(shù)據(jù)發(fā)送至進(jìn)程R。*ICEI.cpp中則定義了進(jìn)程S用于接收數(shù)據(jù)的相關(guān)方法。

負(fù)責(zé)接收數(shù)據(jù)的進(jìn)程R,結(jié)構(gòu)和進(jìn)程S類似,在SendDataShort收到數(shù)據(jù)后,可以根據(jù)與進(jìn)程S共同約定的數(shù)據(jù)結(jié)構(gòu),對(duì)收到的流數(shù)據(jù)進(jìn)行解析,然后發(fā)送到Func類中定義的內(nèi)部方法進(jìn)行處理(log記錄或者其他操作)。

4 實(shí)現(xiàn)與應(yīng)用

在實(shí)際的應(yīng)用中,iXCom往往用以配合iPlature來使用,即通過iXcom上配置的回線來發(fā)送電文,然后在另一臺(tái)機(jī)器上以iPlature的方式通過進(jìn)程來接收并解析電文。相關(guān)操作完成之后,接收電文的信息可以通過進(jìn)程的日志來進(jìn)行查詢。

整體開發(fā)流程如圖6所示。

4.1 進(jìn)程管理

通過iPlature平臺(tái)實(shí)現(xiàn)進(jìn)程管理,首先在$iPlature/conf中的admin.xml文件里為新增的進(jìn)程進(jìn)行配置(如表1所示設(shè)置,*為新建進(jìn)程名),其次通過運(yùn)行$iPlature/bin路徑下的iPlatureAdmin腳本啟動(dòng)和關(guān)閉全部進(jìn)程。

表1 Admin文件新增配置內(nèi)容

4.2 進(jìn)程監(jiān)控

iPlature平臺(tái)可以使用IceGrid工具監(jiān)視進(jìn)程狀態(tài),控制進(jìn)程的起停。IceGrid是負(fù)責(zé)對(duì)Ice分布式應(yīng)用集合中各種服務(wù)進(jìn)行定位和激活的服務(wù),是一個(gè)Ice的核心基礎(chǔ)服務(wù)設(shè)施。作為一個(gè)進(jìn)程管理工具,IceGrid同樣需要讀取admin.xml里的配置,其優(yōu)點(diǎn)在于可以比較方便地對(duì)單個(gè)進(jìn)程進(jìn)行啟動(dòng)和關(guān)閉。在使用IceGrid管理進(jìn)程前,還需要在IceGridGUI中完成進(jìn)程的創(chuàng)建。進(jìn)程創(chuàng)建完成后,需要執(zhí)行$iPlature/bin/boot_update.bat來實(shí)現(xiàn)更新,使服務(wù)生效。

4.3 日志系統(tǒng)

iPlature平臺(tái)提供Log4cplus方法。用戶進(jìn)程可以在代碼中繼承并使用這個(gè)方法,在程序的日志文件里就可以查到日志信息,如圖7所示。

圖7 接收端日志文件主要內(nèi)容

5 結(jié)語

面對(duì)鋼鐵行業(yè)復(fù)雜的通信應(yīng)用環(huán)境,基于iPlature與iXCom的過程控制系統(tǒng)通信接口的開發(fā)方法能夠更加高效地接收與解析電文,與過程控制系統(tǒng)及鋼鐵生產(chǎn)工藝的適配性更強(qiáng)。

在鋼鐵企業(yè)持續(xù)發(fā)展的進(jìn)程中,相關(guān)開發(fā)平臺(tái)也需要與時(shí)俱進(jìn),結(jié)合行業(yè)特點(diǎn)開發(fā)更多個(gè)性化的應(yīng)用,積累更多核心技術(shù),提高平臺(tái)的可靠性、實(shí)時(shí)性、易用性,為鋼鐵行業(yè)的智能化、信息化發(fā)展做出更多貢獻(xiàn)。

猜你喜歡
源文件回線電文
無接地極直流輸電線路金屬回線選型設(shè)計(jì)
吉林電力(2022年1期)2022-11-10 09:20:24
一種與內(nèi)部缺陷儀設(shè)備通訊的接口模塊
ADS-B延遲轉(zhuǎn)發(fā)電文檢測及干擾臺(tái)定位方法
網(wǎng)絡(luò)社區(qū)劃分在軟件質(zhì)量問題分析中的應(yīng)用
基于源文件可疑度的軟件缺陷定位方法研究
LKJ基礎(chǔ)數(shù)據(jù)源文件自動(dòng)編制系統(tǒng)的研究
±800?kV特高壓直流金屬回線斷路器保護(hù)誤動(dòng)分析
8字形載流方形回線的空間磁場分布
衛(wèi)星導(dǎo)航系統(tǒng)導(dǎo)航電文編排結(jié)構(gòu)研究
誤寫C源文件擴(kuò)展名為CPP的危害
上栗县| 祁门县| 荆门市| 原平市| 德阳市| 加查县| 油尖旺区| 兴化市| 鸡西市| 交城县| 临澧县| 公主岭市| 桓仁| 靖安县| 博湖县| 天门市| 青海省| 洮南市| 名山县| 广宗县| 潢川县| 南溪县| 高阳县| 堆龙德庆县| 苍梧县| 石渠县| 南靖县| 新郑市| 广水市| 阿克| 沙雅县| 新晃| 扬州市| 河北省| 思南县| 绥化市| 都江堰市| 湄潭县| 雅安市| 信阳市| 永定县|