韓超
(大慶油田有限責(zé)任公司第一采油廠儀表安裝維修大隊,黑龍江 大慶 163000)
中石油為了推進(jìn)業(yè)務(wù)領(lǐng)域的信息化,提出進(jìn)行油田物聯(lián)網(wǎng)系統(tǒng)建設(shè),在總體規(guī)劃內(nèi)容中要求各油氣生產(chǎn)企業(yè)在已建成的站庫自動控制系統(tǒng)當(dāng)中的作業(yè)區(qū)實現(xiàn)二次組態(tài)。由于油田應(yīng)用的PLC 品牌較多,每個品牌的硬件和軟件之間有著很大的差異,給使用人員的工作帶來很多不便,PLC 自動控制系統(tǒng)之間進(jìn)行信息交換的能力不強,有的PLC 沒有自主的上位機(jī)軟件,只能通過其它品牌的上位機(jī)進(jìn)行控制。同時,無法把關(guān)鍵的運行信息全部集成到控制主站之中。軟PLC 技術(shù)可以在具備原有功能的基礎(chǔ)之上,應(yīng)用面向控制現(xiàn)場的總線構(gòu)建體系,開放以太網(wǎng)、串行數(shù)據(jù)等通訊接口,使軟件起到傳統(tǒng)PLC 的作用。
軟PLC 采用軟邏輯控制技術(shù),可以靈活的配置PLC 控制系統(tǒng)的軟、硬件,用戶可以采用自己較為熟悉的編程語言進(jìn)行控制軟件的開發(fā),把工業(yè)計算機(jī)變成功能強大的PLC 控制器。軟件PLC 結(jié)合了計算機(jī)以及PLC 的開關(guān)和模擬量控制功能,可以對數(shù)據(jù)進(jìn)行數(shù)學(xué)運算,并對數(shù)值結(jié)果進(jìn)行處理,實現(xiàn)數(shù)據(jù)的通訊,可以對控制對象進(jìn)行PID 控制。利用多任務(wù)控制內(nèi)核,具有功能強大的指令,較高的掃描周期,對被控對象實現(xiàn)穩(wěn)定可靠的控制,可以實現(xiàn)與各類I/O 接口進(jìn)行數(shù)據(jù)連接,構(gòu)建出開放式的網(wǎng)絡(luò)體系。
原來采用PLC 控制系統(tǒng),利用現(xiàn)場總線控制技術(shù)把PLC控制器和現(xiàn)場設(shè)備連接起來,利用上位機(jī)系統(tǒng)對PLC 控制系統(tǒng)進(jìn)行監(jiān)測和控制,之后把獲取到的數(shù)據(jù)信息傳送給企業(yè)的管理層,這樣組建的系統(tǒng)進(jìn)行數(shù)據(jù)交換所需要的時間較長,相互之間的通訊極不便利。而采用軟PLC 控制系統(tǒng)可以通過組建高效率、實時的通訊網(wǎng)絡(luò)來對現(xiàn)場設(shè)備進(jìn)行操控。真正意義上實現(xiàn)了從企業(yè)管理層到設(shè)備層的直接數(shù)據(jù)傳輸,把企業(yè)管理和現(xiàn)場控制進(jìn)行有效的集成,使控制系統(tǒng)的工作效率以及各類設(shè)備的可靠性得到大幅提升。依據(jù)軟PLC 硬件運行平臺之間存在的差異,可以把控制方案劃分為3 種,也就是以傳統(tǒng)PLC 為基礎(chǔ)的控制方案、IPC 或者EPC 控制方案和嵌入式控制方案。
本文把傳統(tǒng)的PLC 控制方案作為研究的前提,該控制方案可以把軟PLC 和傳統(tǒng)的PLC 硬件系統(tǒng)進(jìn)行有效地匹配,傳統(tǒng)的PLC 控制系統(tǒng)提供一個硬件系統(tǒng)的平臺,利用上位機(jī)軟件開發(fā)和編寫PLC 控制的應(yīng)用程序,利用通訊接口下載到硬件支持平臺中實現(xiàn)對執(zhí)行對象的控制,再通過輸入輸出模塊達(dá)到要實現(xiàn)的控制功能。
軟PLC 是以PC 機(jī)作為開發(fā)基礎(chǔ),在操作系統(tǒng)提供的平臺上利用軟件的方式實現(xiàn)傳統(tǒng)PLC 的數(shù)據(jù)處理、數(shù)學(xué)運算、數(shù)據(jù)存儲和通訊功能,采用輸入輸出模塊和現(xiàn)場總線技術(shù)對現(xiàn)場設(shè)備進(jìn)行數(shù)據(jù)采集和控制。
參照傳統(tǒng)PLC 控制系統(tǒng)的結(jié)構(gòu),軟PLC 控制系統(tǒng)由開發(fā)和應(yīng)用系統(tǒng)組成。對于開發(fā)系統(tǒng),該系統(tǒng)為用戶提供了符合國際標(biāo)準(zhǔn)的程序編輯器,把5 種編程語言經(jīng)過編譯生成目標(biāo)代碼,通過數(shù)據(jù)連接后下載到硬件當(dāng)中,還具備對應(yīng)用程序進(jìn)行調(diào)試以及和第三方程序進(jìn)行數(shù)據(jù)通訊的功能。
軟PLC 運行系統(tǒng)是面向不同的硬件平臺而研制開發(fā)出來的虛擬機(jī),對編譯生成的目標(biāo)代碼進(jìn)行讀取和執(zhí)行代碼指令。針對不同的硬件平臺,運行系統(tǒng)可以和開發(fā)系統(tǒng)進(jìn)行數(shù)據(jù)通訊,并可以和輸入輸出模塊進(jìn)行數(shù)據(jù)連接。該部分為軟PLC的核心,可以進(jìn)行數(shù)據(jù)輸入的處理,執(zhí)行控制程序,對輸入控制信號進(jìn)行處理等。
梯形圖作為一種比較常用的PLC 編程,對該語言進(jìn)行直接的編譯是較為困難的,由于梯形圖和指令之間存在著緊密的聯(lián)系,可以不對梯形圖編寫的PLC 程序進(jìn)行編譯,而是把它轉(zhuǎn)變?yōu)榭蓤?zhí)行的指令語言,采用指令語言的編譯功能模塊來完成編譯,有效解決了上述問題,提升了代碼的利用效率。
梯形圖可以為用戶編程提供很大的便利,避免應(yīng)用較多程序語句引起邏輯上的混亂,開發(fā)出功能齊全的指令集來滿足程序編寫的需要。每個PLC 廠家的PLC 編程指令雖然不同,但是指令的功能大多是相同的。在梯形圖當(dāng)中,繼電器應(yīng)該對應(yīng)實際的物理輸入輸出端子,而繼電器控制采用開關(guān)量控制,也就是應(yīng)用位存儲器,如果該位存儲器狀態(tài)為1,則表明該繼電器線圈處于通電狀態(tài),常開觸點閉合,而常閉觸點為斷開。如果該位存儲器為0,說明該線圈沒有通電,PLC 控制器通過持續(xù)掃描執(zhí)行程序來完成各類邏輯判斷和數(shù)據(jù)處理,從而控制繼電器線圈通斷電以及發(fā)送各類控制指令。
IL 與ST 編輯器和梯形圖語言進(jìn)行比較來看,前者主要針對的是文本。IL 編輯器設(shè)計有效傳承了CILView,設(shè)計功能主要在CSyntaxEditView 類中完成。
功能是指具備輸入變量作用和功能值,在進(jìn)行程序設(shè)計時,參照國際通用的標(biāo)準(zhǔn)內(nèi)容,可以把沒有進(jìn)行命名的一個輸入變量用IN 來表達(dá),多個沒有被命名的輸入變量用IN1、IN2 等符號進(jìn)行表示,而功能值則用F 來表示,常用的數(shù)據(jù)類型有ANY、ANY_NUM 等,具有進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換、運算、數(shù)據(jù)移位和字符串等功能。而程序設(shè)計的功能模功能有計數(shù)器、定時器、雙穩(wěn)態(tài)觸發(fā)功能等。
編譯器設(shè)計過程十分繁雜,先要對高級語言的實現(xiàn)進(jìn)行充分的考慮,發(fā)揮出目標(biāo)機(jī)的特征,還要注意到程序的移植問題,保證程序移植之后執(zhí)行效率不會降低,保證具有友好的可編輯界面。編譯系統(tǒng)在對可執(zhí)行程序進(jìn)行編譯時起到了重要的作用,它和計算機(jī)的硬件構(gòu)成有著十分緊密的聯(lián)系。最后的目標(biāo)代碼生成要經(jīng)過對源程序進(jìn)行語法分析,中間代碼生成等多個階段。
(1)梯形圖轉(zhuǎn)變?yōu)橹噶畋淼姆治龊蛯崿F(xiàn)。因為很難對梯形圖程序進(jìn)行較為直接的編譯,所以,應(yīng)該把梯形圖程序轉(zhuǎn)變?yōu)橹噶畋砗笤賹崿F(xiàn)對其的編譯。指令表是以助記符的方式來體現(xiàn)用戶編寫的程序,CPU 可以較為容易地識別出它的機(jī)器碼。
(2)轉(zhuǎn)換中間語言模型的組建和實現(xiàn)?,F(xiàn)在常用的多種編程語言都可以把其轉(zhuǎn)變成指令表語言,本論文設(shè)計的系統(tǒng)對指令表語句進(jìn)行簡化處理??梢允箶?shù)據(jù)信息在控制策略以及監(jiān)控策略文件之間實現(xiàn)自動的數(shù)據(jù)傳輸。所以,相對于指令表程序,采用一種更加優(yōu)化的中間語句轉(zhuǎn)換程序更符合標(biāo)準(zhǔn)對轉(zhuǎn)換目標(biāo)的要求。
(3)指令表編譯器設(shè)計。指令表編譯器可以把IL 用戶程序轉(zhuǎn)換為利用四元組進(jìn)行表示的中間代碼,IL 語言是一種類似于匯編語言的簡單化機(jī)器語言,可是,如果把其轉(zhuǎn)變?yōu)橹虚g代碼,還得需要經(jīng)過語法分析、中間代碼生成等多個階段。
該模塊可以給用戶創(chuàng)建出一種在電腦上可以模擬的PLC運行環(huán)境,對編制完成的梯形圖程序是否滿足設(shè)計要求進(jìn)行檢驗,如果達(dá)不到設(shè)計要求,則可以重新返回梯形圖編程界面來完成對程序的修改。具體的實現(xiàn)功能有:讀取出編輯完的PLC 程序,對PLC 應(yīng)用程序的運行過程和最終結(jié)果進(jìn)行描述,對接點以及負(fù)載情況進(jìn)行描述。
本論文將軟件PLC 體系構(gòu)成作為開發(fā)的前提,對軟PLC編輯環(huán)境的重要組成構(gòu)架、編譯器以及仿真模塊進(jìn)行了設(shè)計。軟PLC 的實現(xiàn)較為復(fù)雜,研發(fā)時間較長,但是,軟PLC 完全滿足當(dāng)前工控領(lǐng)域的應(yīng)用需要,應(yīng)有前景較好,應(yīng)用在油田物聯(lián)網(wǎng)技術(shù)中將會產(chǎn)生很好的效果。