陳 亮
(中石化石油機械股份有限公司沙市鋼管分公司,湖北 荊州 434001)
隨著工業控制技術的發展和信息化系統的建設,某公司鋼管生產線水壓機試驗及信息存儲分析系統逐漸暴露出以下問題[1-15]:
(1)原系統硬件采集卡為研華ISA插拔式采集卡,目前市場上所有品牌工控機均取消了ISA插槽,且研華公司已經停產了ISA插槽式采集卡。此情況的發生導致原水壓試驗系統的采集卡無法作為備件使用。
(2)原試驗系統缺乏管號輸入錯誤修正功能,導致操作人員壓完的某根鋼管,該管已經轉運至后續崗位,過一段時間發現管號輸錯時,缺乏一鍵式將數據庫中原錯誤管號刷新為正確管號的功能。由此增加了向客戶駐廠監理解釋答疑的工作。
(3)MES(Manufacturing Execution System)制造企業生產過程執行管理系統現場生產執行層軟件均在WIN 7 64位系統、微軟Visual Studio 2013 C#(縮寫VS2013 C#)框架下開發,原水壓試驗系統在XP系統下Visual Basic Script平臺開發運行,二者同時安裝在同一臺工控機上運行時,頻繁出現不兼容沖突。使得水壓崗位采用2臺電腦,2套鍵盤鼠標供操作人員交互使用,壓管效率跟不上生產節奏。
(4)原系統不具備壓管數據往MES系統轉存的功能,壓管信息不能形成雙備份。
為解決以上問題,中國石化石油機械股份有限公司沙市鋼管分公司(簡稱沙市鋼管)自主攻關研發了一套基于C#及Prodave IP協議的水壓機打壓試驗及信息存儲分析系統。
水壓機試驗及信息存儲分析系統的軟硬件架構如圖1所示。

圖1 系統軟硬件架構示意
工作原理:工控機顯示屏中輸入管號、材質、保壓時間、試壓值等信息,水壓/油壓傳感器獲取水壓/油壓信號傳輸給PLC 300模擬量AI模塊,PLC CPU程序進行模數轉換后,油壓/水壓信息通過Prodave 6.2協議轉換之后經過網卡1被工控機主機中自行開發的VS2013 C#程序實時讀取,讀取后可通過C# MSchart控件動態展示水壓實時曲線供操作工參考,該C#程序可實現調型參數下載設備功能,可實現試驗數據拋存本地數據庫功能、管號修正功能,且可通過軟件菜單式操作后自動分析本地數據,形成質量曲線報表,還可將工控機本地壓管數據庫通過網卡2定時自動上傳至服務器Oracle數據庫中。
Prodave接口協議是西門子公司推出的動態鏈接庫,是供Windows系統使用的高級語言接口函數,使高級語言通過以太網能對PLC存儲區的數據進行讀寫,Prodave 6.2版本支持操作系統 有Windows XP Professional、Windows Vista 32以 及Windows 7(32和64位),該接口協議軟件安裝過程中,自動識別操作系統,在安裝過程中實現函數封裝,對于使用者來說,在不同版本Windows系統上采用同一種高級語言編程,功能函數的調用方法是一致的。
自行開發的該軟件系統中,工控機VS2013 C#編程平臺使用Prodave 6.2接口與PLC通信時候,必須首先點擊“通信連接”按鈕,按鈕對應的程序需要首先加載PLC CPU的IP地址,IP通信類型(西門子PLC支持IPMPIDP通信類型)、PLC CPU在硬件組態中的插槽號、CPU所在機架號;之后通過調用接口函數庫中通信連接函數Prodave6.LoadConnection_ex6(),該函數會接收PLC反饋回來的通信成功與否標志位,當為0時,表示通信成功,代表工控機已經通過Prodave 6.2接口庫連接上PLC,并且會給出綠色提示性語句“通信成功”;當為1時,表示通信失敗,代表工控機通過Prodave 6.2接口庫連接上PLC失敗,程序給出紅色提示性語句“通信失敗,請檢查通信”。當出現通信失敗的警示后,需要工程師去現場處理通信鏈路的硬件故障或PLC端軟件設置。通信連接處理流程如圖2所示。

圖2 通信連接處理流程示意
通信連接程序如下。


//注意在Prodave連接庫中有類Program.cs,該類中定義了一個全局變量RetValue

通信異常時,硬件上排查主要查看網線的兩端水晶頭、工控機的網卡是否正常,軟件設置上主要排查PLC的編程組態軟件中的相關通信設置是否正確。
水壓機鋼管試驗數據采集主要包括水壓值、油壓值、管徑、保壓值、保壓時間、材質、壁厚、操作員工號和管號。其中管徑、保壓值、保壓時間、材質、壁厚和操作員工號是一次性輸入,每換一根鋼管自動綁定。只有水壓值、油壓值、管號3個數據是每根鋼管不一樣的,管號信息會在后面敘述。水壓值、油壓值采集及實時顯示程序邏輯如圖3所示。

圖3 水壓機鋼管數據采集功能塊C#程序流程
此部分功能屬于沙市鋼管自動化方面首次嘗試使用微軟底層C#語言直接對西門子PLC進行調型參數寫入下載操作,在各車間西門子上位機升級及將來可能的數字化車間建設等方面有廣闊的應用場景。調型參數下載實現流程如圖4所示。

圖4 調型參數下載功能實現流程
VS2013 C#平臺進行曲線實時顯示采用的是Chart曲線圖表控件,對該控件菜單中相關功能項進行設置后,通過程序進行水壓變量數組輸入,描點連線,形成實時曲線。水壓實時曲線顯示程序實現邏輯如圖5所示。

圖5 水壓實時曲線顯示程序實現邏輯示意
壓管數據存儲數據庫采用微軟Access2013,支持ODBC(Open Database Connectivity)開放數據庫互聯技術,可與其他數據庫互聯。壓管數據拋存Access2013的實現邏輯如圖6所示。

圖6 壓管數據拋存本地數據庫功能實現邏輯示意
該模塊的功能是:當操作人員水壓試驗一根鋼管,輸入管號時候,由于手誤,將管號輸錯后,運行通過該功能進行修正。管號修正功能實現邏輯如圖7所示。

圖7 管號修正功能實現邏輯示意
此功能塊是為駐廠監理檢驗水壓試驗鋼管質量提供記錄,或者為后期相關標準審核時提供數據支撐。此部分由于對實時性要求不高,采取微軟事件驅動機制來進行開發。主要分為兩部分,一部分為歷史壓力曲線繪制,另一部分為試驗報告。
根據駐廠監理的要求,需要提供按歷史管號查詢該鋼管保壓期間水壓壓力變化曲線,方便直觀地抽查該根鋼管保壓期間壓力值變化情況。
VS2013 C#平臺繪制歷史曲線采用chart控件,首先在開發平臺上設置chart控件要展示的曲線類型為曲線型(SPLINE型),之后通過C#語句設置Chart控件的橫坐標與縱坐標格數,輸入管號后,通過數據庫查詢函數Query(GH),查詢本文第5節提到某根鋼管歷史數據庫中的系列水壓值與時間值作為坐標,通過Chart控件自帶的函數chart1.Series[0].Points.DataBindXY(iXAxis,yValue)獲取對應坐標進行曲線繪制。
具體歷史曲線繪制的程序如下:


此部分主要是通過數據庫查詢函數將查詢到的某個鋼管的管號、管徑、壁厚、材質、試壓值、最低值、最高值、保壓完畢時間、結論、日期和操作員等信息予以展示,具體C#程序實現流程如圖8所示。

圖8 試驗報告功能實現流程示意
由圖8可知,關于計算保壓過程中的水壓最高值與最低值極為重要,因為這2個值是判定合格與否的標準,當水壓最高值大于工藝要求的試壓值上限認為不合格,當水壓最低值小于工藝要求的試壓值認為不合格。最高值與最低值的尋找這里采用數據結構算法中的冒泡法實現。具體程序如下:


水壓歷史曲線質量報表查詢界面如圖9所示。

圖9 水壓歷史曲線質量報表界面
過去水壓機的壓管信息由于只在現場工控機本地數據庫中存儲,出現過現場工控機硬盤損壞后,壓管信息報表便無法讀取,檢查前,需要大規模人工補交記錄。針對此情況,此次研發特別強化了壓管信息雙備份功能,開發了本地Access2013的壓管數據信息往MES Oracle自動拋存功能,實現本地電腦和服務器各存一份。
本地數據庫自動拋存MES Oracle數據庫功能實現邏輯,如圖10所示。

圖10 數據拋存MES邏輯流程示意
綜上所述,新開發的水壓機試驗及信息存儲分析系統可滿足:
(1)采集數據通過網線以網絡形式獲取,無需采集卡做備件。
(2)該系統除了基本的供操作人員進行打壓試驗的參考判別功能外,特別增加了管號修正功能。
(3)該系統采用與沙市鋼管MES統一的開發平臺(VS2013 C#平臺),使二者在同一電腦上運行具有較好的兼容性,提高了生產節奏。
(4)新系統具備自動往MES系統轉存數據的功能,形成信息和安全的雙備份。
該焊管水壓機試驗及信息存儲分析系統已得到很好的應用,水壓設備壓管數據全自動采集及保存且實現雙備份,能為鋼管水壓質量的可追溯性提供數據支撐。