摘? 要:PLC的虛擬化已成為智能制造發(fā)展的必然趨勢,分析了PLC虛擬化的技術架構。介紹了虛擬PLC軟件Beremiz開源平臺的技術標準,及其主要功能和組成模塊,進一步探討了其運行原理以及應用現(xiàn)狀。通過實例介紹了虛擬PLC的編程和仿真過程以及開發(fā)注意事項,并給出了開發(fā)過程詳細的參數(shù)設置和功能配置。最后探討了基于SVG格式的HMI圖形界面開發(fā)流程,為PLC的學習和虛擬PLC的開發(fā)提供了技術方案。
關鍵詞:虛擬PLC? 自動控制? 虛擬實訓? 在線課程
中圖分類號:G712? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A文章編號:1672-3791(2020)10(c)-0011-03
Abstract: The virtualization of PLC has become an inevitable trend in the development of intelligent manufacturing. The technical framework of PLC virtualization is analyzed. This paper introduces the technical standards, main functions and components of the open source platform of the virtual PLC software Beremiz, and further discusses its operation principle and application status. This paper introduces the programming and simulation process of Virtual PLC, and points for attention in development, and gives the detailed parameter setting and function configuration in the development process. Finally, the development process of HMI graphic interface based on SVG format is discussed, which provides a technical scheme for PLC learning and virtual PLC development.
Key Words: Virtual PLC; Automatic control; Virtual training; Online course
隨著“中國制造2025”的持續(xù)推進,傳統(tǒng)封閉的工業(yè)控制系統(tǒng),其通過特定硬件實現(xiàn)的功能在工業(yè)互聯(lián)網(wǎng)或“工業(yè)4.0”時代都將被軟件所取代。
所謂PLC的虛擬化,是指通過軟件模擬的方式,將PLC的硬件和邏輯抽象出來,利用軟件虛擬網(wǎng)絡的思路,通過特定應用程序來實現(xiàn)PLC執(zhí)行程序邏輯的開發(fā)和管理,從而完成應用程序虛擬硬件PLC的功能。也就是將傳統(tǒng)PLC的程序控制、數(shù)據(jù)存儲和IO模塊分離,利用虛擬應用程序來實現(xiàn)邏輯控制部分[1]。
從技術角度來講,就是實現(xiàn)PLC系統(tǒng)的“硬件重構和軟件模擬”。硬件重構和軟件模擬是基于虛擬化技術之上的更高級、更抽象的數(shù)據(jù)和資源自動化。
基于PLC虛擬化的產品和服務形態(tài)是新時代的工業(yè)互聯(lián)網(wǎng)或工業(yè)4.0的發(fā)展需要,其標準化、模塊化的優(yōu)勢更加顯著,能廣泛利用人工智能作為控制系統(tǒng)核心大腦,大幅度降低客戶的進入門檻。而基礎技術架構層面的穩(wěn)定性、靈活性、便捷性又帶來了更好的客戶體驗。再加上云計算、大數(shù)據(jù)技術所帶來的規(guī)模效應,將使基于PLC虛擬化的物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)能夠成為更大的一種商業(yè)模式。
1? Beremiz開源平臺
Beremiz是一款開源軟件,它的出現(xiàn)給PLC的學習與開發(fā)者帶來了福音。其電氣規(guī)范符合國際電工委員會IEC61131標準以及可編程控制器通用PLCopen標準。Beremiz是一個多功能的集成開發(fā)環(huán)境,其內部組件包含PLCOpen編輯器和MatPLCIEC編譯器[2-3]。
PLCOpen編輯器組件是使用Python語言開發(fā)的,它提供了類似西門子、三菱等商業(yè)化軟件的圖形化編程界面,帶給開發(fā)者良好的用戶體驗。并且提供5種開發(fā)語言供開發(fā)者自由選擇和編輯,這5種語言都是符合IEC61131-3標準的控制程序,完全支持PLC程序的在線(Online)和離線(Offline)調試。編寫完成的程序采用符合PLCOpen規(guī)范的XML格式文件進行存檔;同時,Beremiz也可以動態(tài)載入符合PLCOpen規(guī)范的XML程序文件,利用這個功能,可實現(xiàn)用戶程序在符合PLCOpen標準的不同編程平臺之間進行無障礙移植,以實現(xiàn)不同軟件平臺的資源交換,提高程序的可重復利用率。
完成程序文件的編輯后,MatPLCIEC編譯器開始工作,其作用是將上述保存為XML格式的PLC程序翻譯為基于C語言格式的代碼,最后通過交叉編譯器完成遠程編譯,便得到可在嵌入式系統(tǒng)中運行的C語言目標代碼。編譯完成的最終代碼,包含了PLC程序里全部的POU變量和參數(shù),用戶也可以利用嵌套的C語言代碼程序實時訪問POU中的參數(shù)和變量,從而完全實現(xiàn)在線監(jiān)控和調試功能。
近年來,為響應國家推薦智能制造戰(zhàn)略發(fā)展,虛擬PLC及其網(wǎng)絡實訓平臺成為很多高校的科研熱點[3-4]。
2? 虛擬PLC控制系統(tǒng)開發(fā)流程
進入Beremiz系統(tǒng)后新建一個項目,會自動生成一個資源文件,再新建一個梯形圖程序。梯形圖程序文檔的上方列表為變量,下方為程序,變量列表中的類型有輸入、輸出、外部、Local等。其中,輸入和輸出的意思是當此梯形圖作為別的程序的一個模塊時,定義的輸入和輸出端口。外部是用來定義和HMI接口用的(Wxglade類型、svgui類型不需要),且一定要和HMI接口中定義的一樣,如果只在該程序內用,用Local就可以了。
梯形圖編輯時,會用到工具欄中常見的幾個工具。其中,手型為幅面移動工具;CMT為注釋工具;導軌工具為梯形圖左右母線;線圈為輸出;觸點為輸入;變量工具比較靈活,一般作為模塊的參數(shù)設置端,可以設定為某個變量,也可以自己寫常量或者字符串表達式,數(shù)字常量直接寫,時間常量格式為T#30ms,字符串常量需要加單引號。
梯形圖設置好了,還不能運行,需要設置資源文件。資源文件里有3個設置:變量、任務和實例,主要設置好任務和實例就可以了。在任務欄里單擊增加,每添加一行就添加一個任務“mainprg”,Trigging設置為“Cyclic”,即循環(huán)執(zhí)行,時間設置為10ms。還可以再添加一個任務guiprg,意思是圖形顯示任務,Trigging設置為“Cyclic”,時間可以設置長一點,比如1s。
最后設置實例,添加兩個實例,一個為主程序執(zhí)行實例,一個為HMI執(zhí)行實例。當然,也可以只執(zhí)行一個實例,將HMI和主程序放一起。以上3個設置列表中,絕對不能有空行,如果有,編譯就會出錯。
最后進入運行階段,點擊連接按鈕,連接成功后,任務欄會出現(xiàn)成功提示。接下來,點擊編譯按鈕,完成編譯。接下來點擊傳輸按鈕,將編譯后的程序傳到PLC,傳輸完成后,就可以點擊人形按鈕,開始執(zhí)行。
3? 基于SVG格式的HMI圖形界面開發(fā)
如果不需要圖形界面,以上操作就夠了,如果要用到HMI圖形界面,則需要進一步開發(fā)工作。
Beremiz圖形界面的原理是這樣的:需要一個svg格式的圖形文件,文件里設置好了不同圖形的ID名稱,通過這些ID名稱和梯形圖的名稱關聯(lián),從而實現(xiàn)動畫效果。比如SVGUI組里的Led指令塊,有3個參數(shù)可以設置,即back-id、sele-id、state-in,當state_in為1時,顯示sele_id對應的圖形,反之,顯示back_id對應的圖形。下圖,當T1為1時,顯示紅色RED圖片,為0時,顯示黑色BLACK圖片。這里的RED和BLACK必須和svg文件中的圖形ID完全一致。
舉一個例子來說明svg文件的創(chuàng)建,比如使用inkscape畫圖軟件。打開inkscape軟件后,畫一個紅色圓狀圖形,再選擇編輯菜單,選擇XML編輯器,出現(xiàn)XML代碼編輯框后,將ID號改為RED;同樣畫一個紅色圓狀圖形,將ID號改為BLACK。按照這個方法繼續(xù)將其他圖形的設置做完。并保存為svg格式文件。
導入svg文件,在beremiz項目中新建svgui文件,雙擊進入界面,選擇import svg按鈕,找到剛才的svg文件,導入。
再次執(zhí)行程序,在瀏覽器中,輸入http://localhost:8009/,便可以看到運行界面。
4? 結語
PLC正在朝著開放式、多功能的方向發(fā)展,軟PLC代表著這一趨勢。西門子、倍福、3S、菲尼克斯等大公司都推出了自己的軟PLC產品,但是其底層核心代碼不夠開放、通信模塊不便宜、不利于初學者的深入學習和開發(fā)。Beremiz就是一個完全開源的軟PLC,它包括了開發(fā)環(huán)境和運行系統(tǒng)。在開發(fā)環(huán)境中,用戶可以靈活地使用梯形圖、ST、C、Python等語言進行編程,并且Beremiz自帶上百個常用的函數(shù)。
Beremiz大部分都是用Python這種解釋性語言編寫而成,并使用了大量的第三方庫,與底層硬件通信的部分用C語言實現(xiàn)。Beremiz的IDE部分可以在Linux和Windows下運行,而運行系統(tǒng)既可以在Linux和Windows下運行,也可以在無操作系統(tǒng)的嵌入式設備上運行。
按照該文提到的方法,便可以將調試好的程序下載到運行系統(tǒng)中自動執(zhí)行。目前,Beremiz已經(jīng)集成了Modbus RTU/TCP、CANopen、EtherCAT等常用的總線通信協(xié)議,可以控制各類現(xiàn)場設備。借助Beremiz,我們完全可以搭建自己的PLC控制系統(tǒng),是一種強大的、低成本的學習和開發(fā)工具。
參考文獻
[1] Asier Llano,Itziar Angulo,David de la Vega,et al.Virtual PLC Lab Enabled Physical Layer Improvement Proposals for PRIME and G3-PLC Standards[J]. Applied Sciences,2020,10(5):1777.
[2] 王雨晨.基于μC/OS-Ⅱ的嵌入式軟PLC系統(tǒng)的設計實現(xiàn)[D].西南交通大學,2016.
[3] 李芃.基于Beremiz的邏輯控制二次開發(fā)[J].技術與市場,2016,23(12):98.
[4] 周國棟.融入工匠精神培養(yǎng)的工科專業(yè)人才培養(yǎng)改革[J].科技資訊,2019,17(12):144-145.
[5] 周國棟.自適應學習對高職課程改革的思考[J].科技資訊,2019,17(13):102-103.
[6] 林雪冬,孫建.基于虛擬仿真技術的電氣控制與PLC教學改革實踐研究[J].科技創(chuàng)新導報,2019,16(17):236-238.
[7] 顧巍.基于虛擬儀器的PLC仿真驗證系統(tǒng)開發(fā)[J].現(xiàn)代制造技術與裝備,2019(3):54-55.
[8] 李繼芳,許英杰,鮑平,等.虛擬仿真被控對象在PLC實踐教學中的應用研究[J].實驗技術與管理,2017,34(6):114-118.