孔志學 黃 飄 穆英娟 李凌霄
基于Petri網(wǎng)的單元控制系統(tǒng)及編程研究
孔志學 黃 飄 穆英娟 李凌霄
(上海航天精密機械研究所,上海 201600)
針對艙體制造單元控制系統(tǒng)開發(fā)與調試周期長、控制邏輯正確性難以評估的問題,提出一種基于Petri網(wǎng)建模仿真與面向對象的PLC程序快速設計方法。該方法首先依據(jù)產(chǎn)品工藝流程,形成單元制造流程,并基于Petri網(wǎng)建立制造單元控制系統(tǒng)模型,通過Petri網(wǎng)仿真與優(yōu)化,使得Petri網(wǎng)模型可達、有界、無死鎖、無沖突,再通過在PLC程序設計中融入庫所、變遷、托肯、有向弧的元素,實現(xiàn)Petri網(wǎng)并發(fā)、爭奪、共享資源的特性,最后,面向Petri網(wǎng)模型中的對象,將Petri網(wǎng)模型中的對象快速映射至PLC程序中,使PLC運行邏輯與Petri網(wǎng)模型保持一致。本文以艙體制造單元為例,闡述了該方法的應用。
Petri網(wǎng);仿真;控制系統(tǒng);PLC程序設計
隨著航天的快速發(fā)展,航天飛行器關重件對制造品質的要求不斷增強,應用自動化制造單元的需求也隨之增長,同時,同類結構件在制造單元中的適應性要求不斷增強,使得制造單元控制系統(tǒng)的可靠性、易讀性、可維護性要求不斷提升。而PLC的梯形圖不能用數(shù)學方法分析,不能直觀地反映出自動控制系統(tǒng)中的協(xié)調控制、競爭控制和并行控制,因此可讀性差,難于升級和維護[1]。
Petri網(wǎng)是一種離散并行系統(tǒng)的數(shù)學表示[2,3],靳舒琪[3]等提出一種面向對象分層次Petri網(wǎng)建模方法,確保了汽車零部件生產(chǎn)線運行過程無死鎖現(xiàn)象;陳鶴峰[4]提出采用面向資源的Petri網(wǎng)——ROPN模型為制造系統(tǒng)建模,實現(xiàn)了制造系統(tǒng)死鎖問題的有效避免;陳玉峰、李呈宗等[5]提出了基于可達圖分析的Petri網(wǎng)控制器優(yōu)化設計方法,實現(xiàn)了控制器的策略優(yōu)化;焦志剛等[6]研究了基于Petri網(wǎng)的PLC控制系統(tǒng)設計方法,實現(xiàn)了Petri網(wǎng)模型到PLC程序的轉換;石平義等[7]針對耳機部件自動裝配設備基于Petri網(wǎng)開展了PLC控制系統(tǒng)研究,通過Petri網(wǎng)仿真驗證指導設計了PLC程序。綜上可知,Petri網(wǎng)模型是描述柔性制造系統(tǒng)的有效方法,然而Petri網(wǎng)模型到PLC程序的轉換依然需要大量的人工語義翻譯,PLC程序可讀性差、易出錯的問題尚未得到有效解決。
本文結合航天艙體結構件制造單元,通過分析產(chǎn)品工藝流程,建立單元控制系統(tǒng)的Petri網(wǎng)模型并仿真,保證了Petri網(wǎng)模型的活性、可達性、無死鎖,并面向Petri網(wǎng)各元素設計PLC功能塊,實現(xiàn)了Petri網(wǎng)模型到PLC程序的快速映射,降低了PLC程序設計的開發(fā)難度與設計周期,使PLC運行邏輯與Petri網(wǎng)模型保持一致,保證了PLC程序的正確性。
圖1為航天艙體結構件制造單元,控制對象共包括2臺數(shù)控機床、1臺桁架機器人、1個緩存庫(含出入庫工位、上下料工位)、1個操作員等5部分。
圖1 艙體制造單元組成圖
艙體結構件制造單元主要包括2道工序,分別為OP10道車銑外圓、OP20道車銑內(nèi)圓,如圖2所示,OP10工序采用兩端悶頭裝夾車削外圓,OP20工序采用主軸外圓定位、中心架支撐車內(nèi)圓的裝夾方式,兩道工序加工前需對零件裝夾定位的精度在機測量,加工后需對零件加工尺寸精度在機測量。
圖2 艙體結構件車削單元工藝流程
根據(jù)單元的組成與產(chǎn)品工藝流程可分解單元的生產(chǎn)制造流程,如圖3所示,詳細說明如表1所示。其中,桁架機器人的上下料過程,緩存庫的出入庫和上下料過程,機床的測量和加工過程均由各自控制器或控制系統(tǒng)負責控制,單元控制系統(tǒng)負責各設備間的協(xié)調調度。
圖3 單元制造流程圖
表1 制造流程說明表
根據(jù)上述單元生產(chǎn)流程的描述,其控制系統(tǒng)可以使用Petri網(wǎng)建模。通過Petri網(wǎng)仿真軟件PIPE建立的艙體制造單元控制系統(tǒng)Petri網(wǎng)模型如圖4所示,基于面向對象建模的思想,可將該單元劃分為工件、OP10機床、OP20機床、桁架機器人、緩存庫、操作員等6個對象,對象的狀態(tài)用庫所表示,對象狀態(tài)的變化用變遷表示,工件的托肯數(shù)表示每批次加工的產(chǎn)品數(shù)量,機床、緩存庫、機器人、操作員的托肯數(shù)表示該對象的數(shù)量,各庫所和變遷的含義如表2所示。在某一控制對象狀態(tài)的變化是其他控制對象變遷的輸入條件時,在Petri網(wǎng)模型中,通常可設置門遷對象[8],實現(xiàn)消息在對象間的相互傳遞,可使用庫所對象表示,使用方法與庫所對象一致,表2中為門遷對象的庫所有P7~P12、P56、P58。
圖4 工件、機床、操作員、桁架機器人、緩存庫的Petri網(wǎng)模型
表2 模型的部分庫所、變遷含義表
Petri網(wǎng)分析方法包括可達標示圖和可覆蓋樹、狀態(tài)方程和不變量、語言分析方法、計算機仿真分析、結構分析等[9]。在 Petri 網(wǎng)模型中,元素的連接只能存在于庫所與變遷之間。如果庫所與庫所之間存在連接、變遷與變遷之間存在連接或者是有孤立元素或多余及不完整信息存在,則視為模型錯誤[10]。通過該規(guī)則分析Petri網(wǎng)結構,檢查Petri模型規(guī)范性,確認了該模型無異常結構,無死鎖、沖突,可確保模型與實際的制造流程相符。
圖5為PIPE軟件Petri網(wǎng)可達標識圖仿真分析結果,可見托肯經(jīng)過54次變遷后,在T13之后達到P26,總仿真用時0.759s,根據(jù)仿真結果可以得出結論,該Petri網(wǎng)模型可以連續(xù)運行,具有活性、有界性,不存在死鎖、競爭沖突的問題[9]。
圖5 Petri網(wǎng)的可達圖仿真
通過針對Petri網(wǎng)元素開展PLC程序功能塊設計,實現(xiàn)Petri網(wǎng)四類基本控制模型的PLC程序對應,進而對Petri網(wǎng)模型對象進行PLC程序快速設計,并對對象間的消息傳遞進行變量映射,形成完整的制造單元控制系統(tǒng)程序,最后,通過可視化界面,模擬桁架機器人、緩存庫、操作員、機床等工作狀態(tài),進一步驗證程序的正確性,如圖6所示。
圖6 面向Petri網(wǎng)的PLC程序設計步驟
通過建立的Petri網(wǎng)模型的特點可知,Petri網(wǎng)的基本元素包括庫所、變遷、有向弧、托肯,其中,庫所包含托肯、輸入輸出變量,變遷包含輸入輸出變量、延時、優(yōu)先級,有向弧連接庫所與變遷,使得Petri網(wǎng)可描述四類基本控制模型:順序控制模型、并行控制模型、同步控制模型和競爭控制模型,如圖7所示。
圖7 Petri網(wǎng)的四類基本控制模型
通過分析Petri網(wǎng)基本元素的特性,對PLC功能塊進行了程序設計,基于PLC功能塊實現(xiàn)了庫所、變遷、托肯的特性,其中實現(xiàn)庫所特性的PLC功能塊FB_PLACE偽代碼如下:
a. 根據(jù)庫所輸入變量增加庫所的托肯數(shù)
IF 庫所的托肯數(shù)量限制不等于0
THEN IF 已接收的托肯輸入總數(shù)<庫所限制的托肯數(shù)量 AND 庫所輸入變量為ON
THEN 當前庫所的托肯數(shù)+1,并將庫所輸入變量置OFF END_IF
ELSE 庫所的托肯數(shù)量無限制
IF 庫所輸入變量為ON
THEN 當前庫所的托肯數(shù)+1,并將庫所輸入變量置OFF END_IF
END_IF
b. 根據(jù)庫所的輸出變量被接收情況,減少庫所的托肯數(shù)
IF 庫所現(xiàn)存托肯數(shù)量>0 AND 無輸出被接收
THEN 將所有該庫所的輸出變量置ON
END_IF
IF 任一輸出變量被置OFF
THEN IF 庫所的托肯數(shù)>0
THEN 庫所的托肯數(shù)-1執(zhí)行1次
END_IF
END_IF
IF 當庫所現(xiàn)存托肯數(shù)量=0
THEN 將所有該庫所的輸出變量置OFF
END_IF
其中,該庫所功能塊的輸入變量對應Petri網(wǎng)托肯輸入,功能塊的輸出變量對應Petri網(wǎng)有向弧輸出,兩者均使用BOOL型指針變量,在循環(huán)周期內(nèi),庫所功能塊不斷接受托肯變量的輸入并增加托肯數(shù),在功能塊包含托肯數(shù)大于零時,將所有輸出至ON,在輸出被接收時,相應減少托肯數(shù)量。
實現(xiàn)變遷特性的PLC功能塊FB_Transition偽代碼:
REPEAT
IF輸入變量為ON
THEN 輸入條件數(shù)量+1執(zhí)行1次
END_IF
UNTIL遍歷所有輸入變量
END_REPEAT
IF輸入條件數(shù)量=設置的條件數(shù)量閾值
THEN 所有輸入變量置OFF 所有輸出變量置ON
END_IF
其中,變遷功能塊的輸入條件變量對應Petri網(wǎng)的有向弧輸入,功能塊的輸出變量對應托肯輸出,在循環(huán)周期內(nèi),當輸入條件數(shù)滿足時,將全部輸入變量置OFF,輸出置ON。
因此,通過應用BOOL型指針變量,使庫所功能塊能夠在變遷過程中,通過改變輸入輸出變量值,實現(xiàn)托肯數(shù)的實時更新。
由于每個Petri網(wǎng)模型中的對象均由庫所、變遷、有向弧和托肯構建的四種基本控制模型組成,本文基于上述設計的“庫所”與“變遷”功能塊,通過定義相應的庫所、變遷對象,并進行輸入輸出變量地址映射、設置變遷的條件數(shù),快速設計了與四種基本控制模型應對的PLC程序,如圖7所示,其中,并行控制模型偽代碼可表述如下:
a. 定義庫所變量P2、P3、P4,變遷變量T1;
b. P2的輸出變量=T1輸入變量的地址;
c.P3的輸入變量=T1輸出變量的地址;
d.P4的輸入變量=T1輸出變量的地址;
e. 設置T1的條件數(shù)為1,輸出變量數(shù)為2。
基于四種基本控制模型的PLC程序,結合單元控制系統(tǒng)Petri網(wǎng)模型,針對每個對象模型進行了PLC程序功能塊設計,以圖4所示OP10工件對象舉例說明程序設計過程。
a. 定義P0~P6庫所對象
P0,P1,P2,P3,P4,P5,P6:FB_PLACE。
b. 定義T1~T6變遷對象
T0,T1,T2,T3,T4,T5,T6: FB_Transition。
c. 定義實現(xiàn)消息傳遞的庫所對象
P7,P8,P9,P10,P11,P12:FB_PLACE。
d. 將變遷對象的輸入輸出與庫所的輸入輸出變量進行變量地址映射,設置變遷的條件數(shù)、輸出數(shù),形成工件對象的PLC程序,其中,P0、P6、T0、T6功能塊的偽代碼如下:
P0(庫所托肯數(shù)=OP10工件待加工數(shù),P0的輸出變量=T0輸入變量的地址);
P6(P6的輸入變量=T5輸出變量的地址,P6的輸出變量=T6輸入變量的地址);
T0(輸入條件數(shù)=1,輸出條件數(shù)=2);
T6(輸入條件數(shù)=2,輸出條件數(shù)=1)。
e. 將門遷對象的輸入輸出變量與不同功能塊間變遷對象的輸入輸出變量進行地址映射,實現(xiàn)消息在不同功能塊間的傳遞。其中,P7功能塊的偽代碼為:P7(P7的輸入變量=T0輸出變量的地址,P7的輸出變量=T46輸入變量的地址)。
通過Petri網(wǎng)模型分析,各對象間傳遞的消息即是單元控制系統(tǒng)與控制對象間的輸入輸出信號,為提前進一步驗證單元控制系統(tǒng)的正確性,可通過PLC可視化界面的按燈控件模擬外部反饋信號,通過在適當時機模擬各控制對象反饋信號,可進一步驗證單元控制系統(tǒng)運行邏輯的正確性。針對Petri網(wǎng)模型對象設置的模擬反饋信號如圖8所示,將各物理對象任務完成的模擬信號設置為變遷對象的輸入條件,可觸發(fā)PLC程序按工藝流程全流程執(zhí)行完畢,并使P0庫所的托肯全部轉移至P26庫所,即OP10工件毛坯全部完成加工,轉變?yōu)镺P20成品工件。經(jīng)過PLC程序運行邏輯與PIPE軟件仿真Petri網(wǎng)模型運行邏輯對比驗證,結果表明本文設計的PLC程序運行邏輯與所建立的Petri網(wǎng)模型仿真運行邏輯保持一致。
圖8 按Petri網(wǎng)模型設置的模擬反饋信號示意圖
a.提出一種基于Petri網(wǎng)建模仿真與面向對象的PLC程序快速設計方法。結果表明,面向對象的PLC程序設計方法能夠實現(xiàn)Petri網(wǎng)模型到PLC程序的快速轉換,無需人工進行語義到語法的翻譯,控制系統(tǒng)設計效率大幅提高,程序的可閱讀性高,更易于維護。
b. 基于Petri網(wǎng)模型快速設計的PLC程序繼承了Petri網(wǎng)模型的特性,具備無死鎖、無沖突,控制流程邏輯正確,系統(tǒng)可靠性高的優(yōu)點。本文的研究結果對建立制造單元控制系統(tǒng)模型、編制控制系統(tǒng)程序具有指導意義和參考價值。
1 劉杰杰,趙不賄,朱天禹,等. Petri網(wǎng)平臺上的LNG鋼瓶生產(chǎn)線控制系統(tǒng)建模與設計[J]. 現(xiàn)代制造工程,2017(1):24~28,135
2 李俊英,景亮,趙不賄,等. 基于Petri網(wǎng)的食用菌工廠控制系統(tǒng)研究[J]. 電子器件,2014,37(5):927~931
3 王雪燃,張換香. 基于PLC軟件的建模方法[J]. 電腦知識與技術,2018,14(22):225~227
4 靳舒琪. 基于Petri網(wǎng)的汽車零部件生產(chǎn)線建模與優(yōu)化研究[D]. 北京:北京郵電大學,2019
5 陳鶴峰. 基于面向資源Petri網(wǎng)的自動化制造系統(tǒng)的死鎖控制與優(yōu)化[D]. 廣州:廣東工業(yè)大學,2019
6 李呈宗. 基于可達圖分析的Petri網(wǎng)控制器優(yōu)化設計[D]. 西安:西安電子科技大學,2018
7 焦志剛,楊慧遠,杜寧. 基于Petri網(wǎng)的PLC控制系統(tǒng)設計研究[J]. 自動化儀表,2017(2):18~21
8 李玉晨. 基于OOPN的柔性制造系統(tǒng)控制過程建模與仿真[D]. 長春:長春工業(yè)大學,2017
9 董紅斌,楊巨慶. Petri網(wǎng):概念、分析方法和應用[J]. 哈爾濱師范大學自然科學學報,1999(5):59~63
10 李晨,魏玉光. 基于Petri網(wǎng)模型的口岸站作業(yè)流程分析及優(yōu)化[J]. 鐵道運輸與經(jīng)濟,2020,42(2):93~102,114
Research on Cell Control System and Programming Based on Petri Net
Kong Zhixue Huang Piao Mu Yingjuan Li Lingxiao
(Shanghai Spaceflight Precision Machinery Institute, Shanghai 201600)
For the problems of long development and debugging cycle, and the difficulty of evaluating the correctness of the control logic of the control system of the cabin manufacturing unit, a rapid design method of PLC program based on Petri net modeling simulation and object-oriented is proposed.This method first forms the unit manufacturing process according to the product process, establishes the manufacturing unit control system model based on Petri net, and makes Petri net model reachable, bounded, no deadlock, no conflict, through Petri net simulation and optimization. Then, by integrating the elements of place, transition, token, and directed arc in the PLC program design, the characteristics of Petri net concurrency, contention, and shared resources are realized.Finally, facing the objects in the Petri net model, the objects in the Petri net model are quickly mapped into the PLC program, so that the PLC operation logic is consistent with the Petri net model.This article takes the cabin manufacturing unit as an example to illustrate the application of this method.
petri net;simulation;control system;PLC programming
孔志學(1989),碩士,機械工程專業(yè);研究方向:數(shù)字化生產(chǎn)線技術。
2020-04-20