陳 亮
(中石化石油機(jī)械股份有限公司沙市鋼管分公司,湖北 荊州 434001)
隨著工業(yè)控制技術(shù)的發(fā)展和信息化系統(tǒng)的建設(shè),某公司鋼管生產(chǎn)線水壓機(jī)試驗及信息存儲分析系統(tǒng)逐漸暴露出以下問題[1-15]:
(1)原系統(tǒng)硬件采集卡為研華ISA插拔式采集卡,目前市場上所有品牌工控機(jī)均取消了ISA插槽,且研華公司已經(jīng)停產(chǎn)了ISA插槽式采集卡。此情況的發(fā)生導(dǎo)致原水壓試驗系統(tǒng)的采集卡無法作為備件使用。
(2)原試驗系統(tǒng)缺乏管號輸入錯誤修正功能,導(dǎo)致操作人員壓完的某根鋼管,該管已經(jīng)轉(zhuǎn)運至后續(xù)崗位,過一段時間發(fā)現(xiàn)管號輸錯時,缺乏一鍵式將數(shù)據(jù)庫中原錯誤管號刷新為正確管號的功能。由此增加了向客戶駐廠監(jiān)理解釋答疑的工作。
(3)MES(Manufacturing Execution System)制造企業(yè)生產(chǎn)過程執(zhí)行管理系統(tǒng)現(xiàn)場生產(chǎn)執(zhí)行層軟件均在WIN 7 64位系統(tǒng)、微軟Visual Studio 2013 C#(縮寫VS2013 C#)框架下開發(fā),原水壓試驗系統(tǒng)在XP系統(tǒng)下Visual Basic Script平臺開發(fā)運行,二者同時安裝在同一臺工控機(jī)上運行時,頻繁出現(xiàn)不兼容沖突。使得水壓崗位采用2臺電腦,2套鍵盤鼠標(biāo)供操作人員交互使用,壓管效率跟不上生產(chǎn)節(jié)奏。
(4)原系統(tǒng)不具備壓管數(shù)據(jù)往MES系統(tǒng)轉(zhuǎn)存的功能,壓管信息不能形成雙備份。
為解決以上問題,中國石化石油機(jī)械股份有限公司沙市鋼管分公司(簡稱沙市鋼管)自主攻關(guān)研發(fā)了一套基于C#及Prodave IP協(xié)議的水壓機(jī)打壓試驗及信息存儲分析系統(tǒng)。
水壓機(jī)試驗及信息存儲分析系統(tǒng)的軟硬件架構(gòu)如圖1所示。
圖1 系統(tǒng)軟硬件架構(gòu)示意
工作原理:工控機(jī)顯示屏中輸入管號、材質(zhì)、保壓時間、試壓值等信息,水壓/油壓傳感器獲取水壓/油壓信號傳輸給PLC 300模擬量AI模塊,PLC CPU程序進(jìn)行模數(shù)轉(zhuǎn)換后,油壓/水壓信息通過Prodave 6.2協(xié)議轉(zhuǎn)換之后經(jīng)過網(wǎng)卡1被工控機(jī)主機(jī)中自行開發(fā)的VS2013 C#程序?qū)崟r讀取,讀取后可通過C# MSchart控件動態(tài)展示水壓實時曲線供操作工參考,該C#程序可實現(xiàn)調(diào)型參數(shù)下載設(shè)備功能,可實現(xiàn)試驗數(shù)據(jù)拋存本地數(shù)據(jù)庫功能、管號修正功能,且可通過軟件菜單式操作后自動分析本地數(shù)據(jù),形成質(zhì)量曲線報表,還可將工控機(jī)本地壓管數(shù)據(jù)庫通過網(wǎng)卡2定時自動上傳至服務(wù)器Oracle數(shù)據(jù)庫中。
Prodave接口協(xié)議是西門子公司推出的動態(tài)鏈接庫,是供Windows系統(tǒng)使用的高級語言接口函數(shù),使高級語言通過以太網(wǎng)能對PLC存儲區(qū)的數(shù)據(jù)進(jìn)行讀寫,Prodave 6.2版本支持操作系統(tǒng) 有Windows XP Professional、Windows Vista 32以 及Windows 7(32和64位),該接口協(xié)議軟件安裝過程中,自動識別操作系統(tǒng),在安裝過程中實現(xiàn)函數(shù)封裝,對于使用者來說,在不同版本W(wǎng)indows系統(tǒng)上采用同一種高級語言編程,功能函數(shù)的調(diào)用方法是一致的。
自行開發(fā)的該軟件系統(tǒng)中,工控機(jī)VS2013 C#編程平臺使用Prodave 6.2接口與PLC通信時候,必須首先點擊“通信連接”按鈕,按鈕對應(yīng)的程序需要首先加載PLC CPU的IP地址,IP通信類型(西門子PLC支持IPMPIDP通信類型)、PLC CPU在硬件組態(tài)中的插槽號、CPU所在機(jī)架號;之后通過調(diào)用接口函數(shù)庫中通信連接函數(shù)Prodave6.LoadConnection_ex6(),該函數(shù)會接收PLC反饋回來的通信成功與否標(biāo)志位,當(dāng)為0時,表示通信成功,代表工控機(jī)已經(jīng)通過Prodave 6.2接口庫連接上PLC,并且會給出綠色提示性語句“通信成功”;當(dāng)為1時,表示通信失敗,代表工控機(jī)通過Prodave 6.2接口庫連接上PLC失敗,程序給出紅色提示性語句“通信失敗,請檢查通信”。當(dāng)出現(xiàn)通信失敗的警示后,需要工程師去現(xiàn)場處理通信鏈路的硬件故障或PLC端軟件設(shè)置。通信連接處理流程如圖2所示。
圖2 通信連接處理流程示意
通信連接程序如下。
//注意在Prodave連接庫中有類Program.cs,該類中定義了一個全局變量RetValue
通信異常時,硬件上排查主要查看網(wǎng)線的兩端水晶頭、工控機(jī)的網(wǎng)卡是否正常,軟件設(shè)置上主要排查PLC的編程組態(tài)軟件中的相關(guān)通信設(shè)置是否正確。
水壓機(jī)鋼管試驗數(shù)據(jù)采集主要包括水壓值、油壓值、管徑、保壓值、保壓時間、材質(zhì)、壁厚、操作員工號和管號。其中管徑、保壓值、保壓時間、材質(zhì)、壁厚和操作員工號是一次性輸入,每換一根鋼管自動綁定。只有水壓值、油壓值、管號3個數(shù)據(jù)是每根鋼管不一樣的,管號信息會在后面敘述。水壓值、油壓值采集及實時顯示程序邏輯如圖3所示。
圖3 水壓機(jī)鋼管數(shù)據(jù)采集功能塊C#程序流程
此部分功能屬于沙市鋼管自動化方面首次嘗試使用微軟底層C#語言直接對西門子PLC進(jìn)行調(diào)型參數(shù)寫入下載操作,在各車間西門子上位機(jī)升級及將來可能的數(shù)字化車間建設(shè)等方面有廣闊的應(yīng)用場景。調(diào)型參數(shù)下載實現(xiàn)流程如圖4所示。
圖4 調(diào)型參數(shù)下載功能實現(xiàn)流程
VS2013 C#平臺進(jìn)行曲線實時顯示采用的是Chart曲線圖表控件,對該控件菜單中相關(guān)功能項進(jìn)行設(shè)置后,通過程序進(jìn)行水壓變量數(shù)組輸入,描點連線,形成實時曲線。水壓實時曲線顯示程序?qū)崿F(xiàn)邏輯如圖5所示。
圖5 水壓實時曲線顯示程序?qū)崿F(xiàn)邏輯示意
壓管數(shù)據(jù)存儲數(shù)據(jù)庫采用微軟Access2013,支持ODBC(Open Database Connectivity)開放數(shù)據(jù)庫互聯(lián)技術(shù),可與其他數(shù)據(jù)庫互聯(lián)。壓管數(shù)據(jù)拋存Access2013的實現(xiàn)邏輯如圖6所示。
圖6 壓管數(shù)據(jù)拋存本地數(shù)據(jù)庫功能實現(xiàn)邏輯示意
該模塊的功能是:當(dāng)操作人員水壓試驗一根鋼管,輸入管號時候,由于手誤,將管號輸錯后,運行通過該功能進(jìn)行修正。管號修正功能實現(xiàn)邏輯如圖7所示。
圖7 管號修正功能實現(xiàn)邏輯示意
此功能塊是為駐廠監(jiān)理檢驗水壓試驗鋼管質(zhì)量提供記錄,或者為后期相關(guān)標(biāo)準(zhǔn)審核時提供數(shù)據(jù)支撐。此部分由于對實時性要求不高,采取微軟事件驅(qū)動機(jī)制來進(jìn)行開發(fā)。主要分為兩部分,一部分為歷史壓力曲線繪制,另一部分為試驗報告。
根據(jù)駐廠監(jiān)理的要求,需要提供按歷史管號查詢該鋼管保壓期間水壓壓力變化曲線,方便直觀地抽查該根鋼管保壓期間壓力值變化情況。
VS2013 C#平臺繪制歷史曲線采用chart控件,首先在開發(fā)平臺上設(shè)置chart控件要展示的曲線類型為曲線型(SPLINE型),之后通過C#語句設(shè)置Chart控件的橫坐標(biāo)與縱坐標(biāo)格數(shù),輸入管號后,通過數(shù)據(jù)庫查詢函數(shù)Query(GH),查詢本文第5節(jié)提到某根鋼管歷史數(shù)據(jù)庫中的系列水壓值與時間值作為坐標(biāo),通過Chart控件自帶的函數(shù)chart1.Series[0].Points.DataBindXY(iXAxis,yValue)獲取對應(yīng)坐標(biāo)進(jìn)行曲線繪制。
具體歷史曲線繪制的程序如下:
此部分主要是通過數(shù)據(jù)庫查詢函數(shù)將查詢到的某個鋼管的管號、管徑、壁厚、材質(zhì)、試壓值、最低值、最高值、保壓完畢時間、結(jié)論、日期和操作員等信息予以展示,具體C#程序?qū)崿F(xiàn)流程如圖8所示。
圖8 試驗報告功能實現(xiàn)流程示意
由圖8可知,關(guān)于計算保壓過程中的水壓最高值與最低值極為重要,因為這2個值是判定合格與否的標(biāo)準(zhǔn),當(dāng)水壓最高值大于工藝要求的試壓值上限認(rèn)為不合格,當(dāng)水壓最低值小于工藝要求的試壓值認(rèn)為不合格。最高值與最低值的尋找這里采用數(shù)據(jù)結(jié)構(gòu)算法中的冒泡法實現(xiàn)。具體程序如下:
水壓歷史曲線質(zhì)量報表查詢界面如圖9所示。
圖9 水壓歷史曲線質(zhì)量報表界面
過去水壓機(jī)的壓管信息由于只在現(xiàn)場工控機(jī)本地數(shù)據(jù)庫中存儲,出現(xiàn)過現(xiàn)場工控機(jī)硬盤損壞后,壓管信息報表便無法讀取,檢查前,需要大規(guī)模人工補(bǔ)交記錄。針對此情況,此次研發(fā)特別強(qiáng)化了壓管信息雙備份功能,開發(fā)了本地Access2013的壓管數(shù)據(jù)信息往MES Oracle自動拋存功能,實現(xiàn)本地電腦和服務(wù)器各存一份。
本地數(shù)據(jù)庫自動拋存MES Oracle數(shù)據(jù)庫功能實現(xiàn)邏輯,如圖10所示。
圖10 數(shù)據(jù)拋存MES邏輯流程示意
綜上所述,新開發(fā)的水壓機(jī)試驗及信息存儲分析系統(tǒng)可滿足:
(1)采集數(shù)據(jù)通過網(wǎng)線以網(wǎng)絡(luò)形式獲取,無需采集卡做備件。
(2)該系統(tǒng)除了基本的供操作人員進(jìn)行打壓試驗的參考判別功能外,特別增加了管號修正功能。
(3)該系統(tǒng)采用與沙市鋼管MES統(tǒng)一的開發(fā)平臺(VS2013 C#平臺),使二者在同一電腦上運行具有較好的兼容性,提高了生產(chǎn)節(jié)奏。
(4)新系統(tǒng)具備自動往MES系統(tǒng)轉(zhuǎn)存數(shù)據(jù)的功能,形成信息和安全的雙備份。
該焊管水壓機(jī)試驗及信息存儲分析系統(tǒng)已得到很好的應(yīng)用,水壓設(shè)備壓管數(shù)據(jù)全自動采集及保存且實現(xiàn)雙備份,能為鋼管水壓質(zhì)量的可追溯性提供數(shù)據(jù)支撐。