圖 1.5 為本論文研究方法各流程與論文架構各章之對照。
程式實作及驗證 建立轉換標準階段 裴氏圖與階梯圖之回顧 確認研究目的與研究範圍
第二章:『文獻回顧』
第三章:『可加註語言樹轉 換法的分析』
第四章:『可加註語言樹轉 換法程式的實作』
第五章:『案例分析』
第六章:『結論』
第一章:『緒論』
圖 1.5 本論文研究方法與論文架構對照
第二章 文獻回顧
IEC61131 標準,2.1.2 節說明階梯圖基本元件。2.1.3 節說明階梯圖基本性質。2.1.4 節說明 階梯圖之邏輯迴路。2.1.1 IEC61131 標準
IEC61131[30]為國際電工協會(International Electrotechnical Commission, IEC)為可程式 邏輯控制器(Programmable Logic Controller,PLC)[13]制定的標準,其中包含了八個部分,
訂定了關於一般資訊、設備需求與測詴等的標準。其中第三部分 IEC61131-3 為其程式規 格,制定了關於可程式邏輯控制器的編程語言標準 ,這 包含了階梯圖、時序流程圖 (Sequential Function Chart, SFC)、基本指令(Instruction List, IL)、功能區塊圖(Function Block Diagrams, FBD)、結構化文字(Structured Text, ST)五種規格[13]。
此標準統一了可程式邏輯控制器的控制語法,並提出一套可跨不同目標平台的可程式
階梯圖的組成元件有左電源線(Left Power Rail),右電源線(Right Power Rail),輸入接 點(Input Contact),輸出線圈(Output Coil)[28]。左電源軌為系統電流的輸入端,右電源軌為 系統電流的輸出端;輸出線圈代表系統的動作,也就是系統目前所處的狀態;輸入接點則 可以依照邏輯組合成不同的條件,用以控制之後的輸出線圈動作。表 2.1 為階梯圖的組成
元件圖形對照及其代表意義。
表 2.1 階梯圖組成元件圖形對照及代表意義
名稱 圖形 代表意義
左、右電源軌
(Left /Right Power Rail)
系 統 電 流 的 輸 入 與輸出端
輸入接點 (Input Contact)
常開接點
(Positive Contact)
不 同 組 合 代 表 不 同條件
常閉接點
(Negative Contact)
輸出線圈(Output Coil) ( ) 或 代表系統的狀態
一個梯級(Rung)由輸入接點及輸出線圈組成,梯級與左右電源軌共同組成階梯圖。當 系統通電後,電流由上至下、由左至由流動,便可透過梯級做出不同的動作達到控制系統 的目的。圖 2.1 為階梯圖的基本圖形,圖 2.1(a)為梯級、圖 2.1(b)為梯級與左右電源軌組合 成階梯圖。
2.1.3 階梯圖基本性質
階梯圖的基本概念來自於電路圖,由許多繼電器組成的電路圖發展成由許多接點與線 圈組成的階梯圖。與電路圖不同的是,階梯圖中的接線並非表示系統的實際接線狀況,而 是表達運作的順序,因此階梯圖強調的是功能上的邏輯運作,而非實際線路的連接。
階梯圖的常開接點與常閉接點皆可不受限制的使用於階梯圖中,但每一級階梯必頇至 少有一個輸出,否則會造成邏輯錯誤。
(a) 梯級 (b) 梯級與左右電源軌組合成階梯圖
圖 2.1 階梯圖的基本圖形
2.1.4 階梯圖之邏輯迴路
在階梯圖中,使用 OR/AND 迴路達到控制的目的,並且可利用布林邏輯式表達。
OR/AND 迴路在階梯圖中的作用就如同在電路圖中,OR 迴路指並聯電路組,當其中一個 接點成立,則此組電路為通路;AND 迴路為串聯電路組,必頇所有接點成立,此組電路才 為通路。圖 2.2(a)為 OR 迴路、圖 2.2(b)為 AND 迴路。
(a) 並聯(OR)迴路 (b) 串聯(AND)迴路 圖 2.2 OR/AND 迴路
2.2 裴氏圖
裴氏圖主要由四個元件組成,分別為轉移點(Transition)、暫存點(Place)、弧(Arc)、浮 標(Token)。而每個元件在裴氏圖代表的意義也各不同:轉移點表條件、暫存點表狀態、弧 為系統的流程先後順序、浮標則在暫存點中構成不同的當前狀態。表 2.2 為各元件之圖形 對照以及代表意義。
表 2.2 裴氏圖各元件之圖形對照及代表意義
名稱 圖形 代表意義
轉移點(Transition) 表示系統狀態改變時
依據的條件
裴氏圖之基本性質可依初始標記狀態(Initial Marking)分為兩大類:行為性質(Behavioral Properties)與結構性質(Structural Properties)[36]。行為性質與裴氏圖的初始標記狀態有關,
例如:可達性(Reachability)、活性(Liveness)等性質的探討。結構性質是指與初始標記狀態 無關的性質,用來探討裴氏圖的結構包含安全性(Safeness)、限制性(Boundedness)、浮標不 滅性(Conservativeness)、可逆性(Reversibility)與一貫性(Consistent)等[36]。
裴氏圖的分析方法有計算週期時間(Cycle Time)、繪製系統可達圖(Reachable Graph)、
鎖死路徑分析(Deadlock Analysis)、計算不變量(Invariant)等[36]。隨著裴氏圖的複雜度增 加,使用者難以自圖形觀察出裴氏圖是否鎖死,因此鎖死分析是初步設計裴氏圖相當重要
2.2.4 記號圖
記號圖為一種裴氏圖。記號圖中每個暫存點,必頇只能有一個輸入及一個輸出,意即 每個暫存點前端及後端只能連接一個轉移點。記號圖如圖 2.6(a)所示,圖 2.6(b)為非記號 圖。記號圖是裴氏圖中,條件規定最嚴格的圖形且最常被用在分析系統上。而由於其沒有 分流的特性,廣泛被應用於表達系統的資訊流。
(a)記號圖 (b)非記號圖
圖 2.5 裴氏圖之規則矩陣
圖 2.6 裴氏圖分類 1 1
1 1
2.3 裴氏圖與階梯圖之轉換
對於裴氏圖與階梯圖,學術界多為裴氏圖轉換為階梯圖的文獻。最常見的轉換法則是 以暫存點的角度[37]來考量。每個暫存點表示一個輸出線圈,找出以此暫存點為輸出暫存 點的轉移點,並將此轉移點的輸入暫存點當做此輸出線圈的輸入接點條件式。因此在階梯 圖中,所有的輸入接點與輸出線圈,標示的皆為暫存點。且對於輸入接點條件式的考量,
只針對暫存點前的轉移點,未考量暫存點後之轉移點的部分。
以圖 2.7(a)裴氏圖為例,為其相對應的階梯圖為圖 2.7(b)。中暫存點 P3 及 P4 前之轉移 點皆為 T,因此只需考慮轉移點 T 之輸入暫存點 P1 及 P2 即可。P1 及 P2 需同時有浮標才 能觸發轉移點 T,因此 P1 及 P2 為串聯之輸入接點;而轉移點 T 一但觸發,暫存點 P3 及 P4 皆會有浮標進入,故為並聯之輸出線圈。利用以上法則,可將裴氏圖與階梯圖的邏輯式 大致分類為表 2.3 所示。
表 2.3 裴氏圖與階梯圖的邏輯式架構分類 T
P1
P2 P4
P3
(a) 裴氏圖 (b) 圖(a)對應之階梯圖 圖 2.7 裴氏圖與對應之階梯圖
2.4 可加註語言
可加註語言(eXtensible Markup Language, XML)[30, 34]由全球資訊網聯盟(World Wide Web Consortium, W3C)發展而成,並在 1998 年二月發布為正式的標準規範。它是一種標籤 語言,用於標示具有結構性資料訊的電子文件,主要用於跨平台傳遞資料、特別是能藉網 路連結的平台。2.4.1 節介紹可加註語言的發展及技術。2.4.2 節介紹階梯圖的加註語 言—PLCopen 加註語言。2.4.3 節介紹與裴氏圖有關的加註語言—裴氏圖加註語言。
2.4.1 可加註語言技術及發展
XML 由標準廣義加註語言(The Standard Generalized Markup Language, SGML)發展而 來,可將文件中的標記與內容做明確的分隔為其特色,且所有文件的標示及使用方式均一 致。XML 簡化 SGML 中較複雜與少用的特性,讓使用者可以輕鬆的定義需要的文件型態,
也讓程式設計者更容易用程式做處理,如此的簡化使得 XML 更容易撰寫應用程式、更容 易理解且更適合在網路上傳輸與整合。
圖 2.8 XML 與網路之互動[6]
每份 XML 檔案必頇有根元素,這可以代表最上層整體檔案的涵意。由於 XML 檔案採 用結構式思考,所以在表達方式上就如同一棵樹,除了根元素外其他元素都必頇有一父元 素。在 XML 檔案中以<元素名稱>來表示起始標籤(Start Tag),若元素沒有向下延伸的子元 素或沒有元素本文,以</元素名稱>表示結束標籤(End Tag)。XML 檔案的元素結構上最大 的禁忌為元素的重合,元素和元素之間必頇要獨立,正確的 XML 樹狀結構(XML Tree)如 圖 2.9(a)所示,元素重合的情況如圖 2.9(b)所示。
2.4.2 PLCopen 加註語言
PLCopen 加註語言為階梯圖之標準 XML 文件格式,2.4.2.1 節介紹 AutomationML、
PLCopen 標準規範及本論文選用 PLCopenXML 之原因,2.4.2.2 節說明利用 PLCopen 加註 語言表達階梯圖的架構。
2.4.2.1 AutomationML 及 PLCopen 標準規範
AutomationML(Automation Markup Language)[22]為一種以 XML 為基礎的文件標準格 式,可用以儲存及交換工廠機械設備的資訊。AutomationML 主要目的在整合不同的近代 工程設備工具,如可邏輯程式控制器、機械手臂控制(Robot Control)[14]等。其格式包含四 大部分,分別為佈局(Topology)、幾何(Geometry)、運動學(Kinematics)及邏輯(Logic)[22]。
AutomationML 之邏輯部分使用的標準為 PLCopen 加註語言,此為 PLCopen[27]訂定 的標準。PLCopen 為一個解決與工業控制程式設計相關主題的國際性組織,成立於 1992 年。其下分為兩個委員會,分別為科技委員會(Technical Committees, TC)及推廣委員會 (Promotional Committees, PC)[27]。其中科技委員會的第六組(TC6)利用 IEC61131-3[30]中統 一的標準程式規範,制定了 PLCopen 加註語言。PLCopen 加註語言為 XML 文件模式,提 圖,只要是 IEC61131-3 標準中的規範編程語言,皆可以 PLCopen 加註語言為其標準規範
根元素
語言文件。圖 2.10 為一個簡單的階梯圖,只包含了左右兩條電路、一個常開開關與線圈。
<rightPowerRail >、<contact>和<coil>定義左右兩條電路、開關及線圈。其附加屬性 localId 則給予這些元素一個容易辨識的代號,height 及 width 則決定了元素的圖形大小。標籤
<position>代表元素的 x、y 座標位置,標籤<connectionPointOut>及<connectionPointIn>下層 的<connection refLocalId>為元素之輸入輸出對應到之元素代號。<relPosition>為元素的相對 位置,<variavble>則為使用者給予元素的代號。
表 2.4 PLCopen 加註語言文件
<LD>
<leftPowerRail localId="1" height="40" width="2">
<position x="39" y="100"/>
<connectionPointOut formalParameter="">
</connectionPointOut>
</leftPowerRail>
<contact localId="2" height="15" width="21">
<position x="78" y="112"/>
<coil localId="3" height="15" width="21">
<position x="144" y="112"/>
<rightPowerRail localId="4" height="40"width="2">
<position x="203" y="100"/>
</rightPowerRail>
</LD>
PLCopenXML 文件也可表達成樹狀結構,其中類別標籤為方型格子,屬性標籤及文字 區域標籤為子彈形格子,圖 2.11 為 PLCopenXML 文件的 XML Tree。
圖 2.11 PLCopenXML 的 XML Tree
2.4.3 裴氏圖加註語言架構
裴氏圖加註語言(Petri Net Markup Language, PNML)[4, 31]為裴氏圖的標準規範語言文 件,國際標準組織(International Organization for Standardization, ISO)[10]及國際電工協會依 據 ISO/IEC 15909[12]標準制訂,並在 2004 年 12 月首次成為規範[12]。每份 PNML 文件即 代表一個裴氏圖。本論文第 2.1.3 節討論過裴氏圖的數學性質,若未給予裴氏圖初始標記 狀態為 N = ( P, T, F, W ),若加入初始狀態(N, M0),裴氏圖定義為 PN = ( P, T, F, W, M0 ),其 中 W 權重在一般的裴氏圖中皆設定為 1。因此一個裴氏圖模型在 PNML 文件中可以用暫存 點 P、轉移點 T、箭號 F 及其初始狀態 M0描述,而圖形位置可用座標表示。而在 PNML 文件中分別用標籤(Tag)<place>、<transition>、<initialMarking>與<arc>來代表暫存點、轉 移點、初始標記狀態與箭號。例如圖 2.12 是一個簡單的裴氏圖,各只有一個暫存點、轉移 點及箭號,可用 PNML 文件來表示。
圖 2.12 簡單的裴氏圖
其中對應的標籤可由表 2.5 中的文件表示,且每一項標籤會有附屬標籤如 id,使得元 素在文件中更容易辨識。且表 2.5 可以對圖形做更詳盡的說明,例如標籤<pnml>代表這個 XML 文件為 PNML 形式寫成,且其下所有標籤為階層式排列。標籤<net>代表之下為一個 裴氏圖,附加屬性 type 說明此為一個更新裴氏圖(Updated Petri Net, UPN)[17]。接下來再定 義每個暫存點<place>、轉移點<transition>、箭號<arc>,其附加屬性 id 則給予這些元素一
其中對應的標籤可由表 2.5 中的文件表示,且每一項標籤會有附屬標籤如 id,使得元 素在文件中更容易辨識。且表 2.5 可以對圖形做更詳盡的說明,例如標籤<pnml>代表這個 XML 文件為 PNML 形式寫成,且其下所有標籤為階層式排列。標籤<net>代表之下為一個 裴氏圖,附加屬性 type 說明此為一個更新裴氏圖(Updated Petri Net, UPN)[17]。接下來再定 義每個暫存點<place>、轉移點<transition>、箭號<arc>,其附加屬性 id 則給予這些元素一