袁亞峰,楊 濤
(1.西南科技大學 信息工程學院,綿陽 621010;2.特殊環境機器人技術四川重點實驗室,綿陽 621010)
隨著工業4.0戰略和“中國制造2025”的深入推進,由各類機器人與工業設備組成的自動化生產線成為我國制造業變革的重要目標,也對生產線人員的操作技術提出了更高的要求,因此需采用高效、高質量的培訓方式來提高操作人員的熟練度[1]。然而傳統的生產線培訓主要采用視頻教學與現場操作的方式,該方法學習效率低下,而且存在諸多安全隱患、影響正常的生產作業等問題[2]。
目前,虛擬仿真技術為生產線培訓系統提供了重要的技術支撐[3,4]。虛擬PLC技術是以傳統操作系統和計算機為軟件平臺,實現PLC程序調試與仿真功能的PLC編輯器,具有編程語言標準化、豐富的I/O開放接口及可仿真運行的特點[5]。但各PLC生產廠商的產品存在軟件互不兼容、體系結構封閉等缺陷,導致學員只能進行簡單的調試實驗,沒有控制對象與連接平臺,不利于對PLC編程的學習[6]。虛擬仿真技術充分利用三維動畫引擎以及Maya等建模、渲染軟件,逼真的還原生產線場景,加強學員對生產線控制系統的研究和生產線運行流程的理解,降低培訓系統的硬件投資,又顯著提高培訓過程的安全性[7,8]。但傳統的虛擬仿真系統忽略了許多實際因素,沒有建立完善的工藝流程,降低了仿真逼真度;并且控制系統功能單一,不能實現全系統仿真,無法達到良好的培訓效果[9]。
針對上述虛擬仿真系統中存在的問題,本文提出一種基于虛擬PLC的生產線仿真系統。針對可編程控制器技術進行了虛擬PLC結構分析與邏輯處理算法設計;采用模塊化設計方法,建立了一套將機械結構、電氣控制技術、PLC控制技術充分融合的生產線仿真平臺;利用Socket網絡通信協議實現虛擬PLC和生產線仿真平臺的數據通信。
如圖1所示,本文將生產線仿真系統分為虛擬PLC開發系統和生產線仿真平臺。兩部分通過交換梯形圖信息和虛擬設備狀態形成閉環通信。

圖1 生產線仿真系統結構
虛擬PLC是仿真系統的控制器,主要包括PLC編輯模塊和仿真模塊,控制物流生產線的工作流程。在虛擬PLC中編寫物流生產線的控制程序,經過程序解析完成對PLC梯形圖程序的仿真運算。將仿真結果提供給通信接口進行傳輸,生產線仿真平臺接收程序的可執行代碼后控制虛擬設備運行。
生產線仿真平臺包括了現代工業系統中所涉及的PLC控制系統、電機驅動、工業機器人等多種技術,由各自獨立而又交互相連的不同工作站組成,每個工作站均由單獨的PLC程序控制,能夠對學員進行設計、編程和調試等一系列的訓練。Unity3D作為生產線仿真平臺的開發引擎,提供了高效的實時三維構建技術與成熟的DirectX引擎,可以模擬真實設備行為[10],用Unity3D建立上述生產線仿真平臺,配以動畫的方式呈現出生產線設備的工作流程,完成生產線運行仿真。編寫通信接口將虛擬PLC與生產線控制對象連接,實現數據交換。

圖2 生產線結構示意圖
開發系統由編輯模塊和仿真模塊組成。編輯模塊主要功能包括梯形圖編輯、梯形圖注釋、保存與讀取。仿真模塊進行梯形圖的語法邏輯檢查、串并聯邏輯處理和狀態監控。虛擬PLC結構如圖3所示。

圖3 虛擬PLC結構
依據IEC61131-3國際標準制定虛擬PLC梯形圖的編程規則與要求,利用Visual Studio 2017中Winform窗體應用程序設計編輯界面,實現梯形圖的編輯、注釋等功能。梯形圖編輯區中左右兩端的粗線代表母線,編輯區被分割成多行多列的矩陣網絡,行列數可由用戶設置。每個網絡表示一個PLC梯形圖單元,采用C#控件實現,該控件包含有圖符、坐標、大小等屬性,是輸入開關、輸出負載等器件的抽象表示。隨著PLC控制對象的多元化及控制功能的具體化,梯形圖的控件類型越加豐富。因此,提取所有控件的相同特性,根據C#語言的多態性、繼承性和封裝性,設計一個控件的基類Control,包含控件所有的屬性與接口,通過類的擴展創建具有不同特性的控件。
2.2.1 基于鄰接矩陣的邏輯處理算法
本文提出一種基于鄰接矩陣的轉換方法,利用矩陣化思想建立一個完整的有向圖,將梯形圖控件間串并聯邏輯關系轉化為數值關系,分析梯形圖的層次,從而精確地計算出各個控件間串并聯關系。
梯形圖邏輯關系的處理過程大體分為以下兩步:
1)梯形圖映射為鄰接矩陣表。梯形圖由多個梯級構成,通過梯形圖存儲數據結構,標明了各個控件所在的行與列,因此梯形圖本質上是一個矩陣表。在梯形圖的轉換過程中,遵循自上而下、從左往右的原則,逐個梯級進行掃描,得到梯形圖控件數量N,建立一個N*N的二維矩陣表,從左母線第一個控件開始,依次找出并記錄當前控件到后繼控件所有連接路徑,沿著指定路徑往右母線方向讀取,從中所經過的控件與當前控件的關系在鄰接矩陣中表示為1,未經過的控件在鄰接矩陣中表示為0。
例如掃描圖4(a)中的梯形圖,從左母線第一個控件I0.0開始,I0.0與I0.1相連,則矩陣表中I0.0與I0.1的連接關系為1。I0.3與I0.1相連,則連接關系為1。I0.1與I0.2和I0.4直接相連,則與之連接關系為1。則根據規則,梯形圖至鄰接矩陣的轉換如圖4(b)所示。

圖4 梯形圖至鄰接矩陣表的轉換
2)矩陣表轉換為有向圖。逐行掃描矩陣表,構建一個以控件為頂點、連接關系為邊的有向圖。以圖5中鄰接矩陣表為例,I0.0和I0.3的右路徑都直接連接I0.1,因此是并聯關系,可以用并1表示;并1與I0.1是串聯關系,可以用串1表示;I0.2和I0.4的右路徑都連接Q0.0,因此是并聯關系,用并2表示。如此不斷掃描更新,最終建立一個有向圖如圖5所示。

圖5 串并聯掃描生成的有向圖
2.2.2 語法邏輯檢查
梯形圖的程序需要符合IEC61131-3國際標準規定,當發現梯形圖存在錯誤時,軟件將彈出錯誤提示窗口,向用戶指出錯誤的位置和類型。針對梯形圖常見錯誤進行如下的分類:梯形圖中控件短接,被短接的控件無法正常工作;出現斷路的情況,控件之間沒有連接完整;控件的參數未進行設置。圖6為語法檢查流程。

圖6 語法檢查流程圖
三維模型的建立是生產線仿真平臺的基礎,按照實際現場設備,采用三維建模軟件Maya繪制出各個設備的模型,如環形輸送帶、機器人、直流電機、推料氣缸等,設備模型的尺寸需要按照比例與真實設備一致,建立的模型需要移除重復點和重復面,減少模型貼圖量,以降低硬件負擔,提高系統運行速度。
生產線仿真平臺模擬實際設備工作時的真實場景,通過現場調研對實際物流生產線的性能要求和工藝流程進行分析,結合生產線培訓的具體情況,平臺需要完成對物料的運輸、檢測、移除、存放等復雜過程,因此對其進行簡化處理保留主干。工藝流程如下:環形輸送線運行,井式供料裝置推動物料至環形輸送線上,物料在輸送線上依次進行掃碼檢測、顏色檢測和外形檢測,不合格的物料由剔除裝置移除,合格的物料被推送至設備暫存臺,機器人抓取物料將其放入鏈式輸送機的托盤中。當托盤中的物料達到預定重量時,搬運機械手抓取托盤放入立體庫中。物流生產線工藝流程如圖7所示。

圖7 物流生產線工藝流程
本系統采用的數據類型主要是數字量。PLC數字量輸入有系統的啟動按鈕、停止按鈕、設備的工作狀態等,數字量輸出有電機、指示燈、機器人部件電磁閥的開關等。部分I/O端口分配如表1所示。

表1 I/O端口分配表
動畫是仿真系統的主要內容之一,它直觀地展現了設備的驅動原理與生產線的工作流程。生產線仿真平臺涉及的運動有物料在生產線上的移動、環形輸送帶的環繞運動,機器人的抓取釋放,推料氣缸的推進動作等;不僅模型復雜,而且各設備的運動相互耦合,導致腳本驅動的實現方法較為困難。此時,可以采用Animation關鍵幀動畫技術來實現,采用模塊化的思想將系統進行劃分,最終將各模塊的動畫相組合完成整個生產線仿真平臺的動畫制作
關鍵幀動畫設計的核心方法是對設備的工作流程進行逐幀分解,每一幀記錄設備模型的代表性位置,在每兩個關鍵幀之間自動生成設備的運動路徑,關鍵幀設置完成后,將每幀按先后順序與頻率進行播放,其連續播放所形成的序列幀動畫就能完整的演示生產線設備的工作流程,完成生產線運行仿真。
Unity3D和虛擬PLC作為兩個獨立運行的進程,都有獨立的代碼和數據空間,因此它們的資源分配和調度也相互獨立,同時運行多個進程,能夠最大化利用CPU的資源,提高系統的運行速度。
Socket網絡協議提供了豐富的接口,不同的進程按照制定好的規則進行數據的雙向傳輸。在生產線仿真系統中,采用Socket網絡協議搭建了連接虛擬PLC與Unity3D的通信接口,通過將PLC梯形圖信息和虛擬設備狀態互相傳輸給彼此,實現PLC仿真狀態與生產線設備運動狀態的一致性。
I/O分配確定了生產線上每個虛擬設備所對應的PLC控制端口。通訊協議將PLC的輸出端與Unity3D的I/O端口對接,PLC的輸出信號會改變I/O端口的狀態,Unity3D循環檢測設備端口的數字量信息(用0或1表示),實現對虛擬設備狀態的控制。Unity3D將虛擬設備的端口狀態發送給PLC的輸入端,改變PLC中對應控件的開閉狀態,實現軟件在環調試。虛擬PLC與Unity3D通過交換輸入輸出信號形成閉合回路。
在虛擬PLC中新建梯形圖,根據物流生產線工作流程編輯如圖8所示PLC控制程序,按照對應的I/O端口號將PLC與生產線平臺的設備端口配對,點擊“開始仿真”,此時虛擬PLC與生產線仿真平臺連接成功。

圖8 PLC控制程序
進入生產線仿真平臺,點擊“運行”按鈕啟動仿真程序,然后點擊“啟動”按鈕,物流生產線控制系統開始運行。虛擬設備將按照PLC控制程序依次完成物料輸送、物料檢測、機器人碼垛、托盤輸送、托盤出入庫等操作。運行效果如圖9所示。

圖9 運行效果
測試結果表明,本文開發的基于虛擬PLC的生產線仿真系統按照PLC程序設定正常運行。可以實現運輸、碼垛、搬運和PLC綜合實訓等功能要求,
本文分析了物流生產線的組成和工藝流程,結合工業培訓的實際需求,采用模塊化的設計思想開發了適用于技能培訓的生產線仿真系統,該系統層次分明、靈活度高,具備完善的工藝流程。虛擬PLC作為仿真系統的控制器,能準確地完成梯形圖程序的編輯,采用鄰接矩陣算法實現梯形圖仿真功能,建立Socket通訊協議完成與生產線仿真平臺的數據交互,實現生產線智能控制。
虛擬調試與實驗結果顯示,其仿真結果與模型運行結果能實現PLC編程訓練、生產線運行演示和對生產線控制仿真的研究,為生產線操作人員的培訓工作提供了有效方案。