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