第三章 浮標守恆裴氏圖到階梯圖的轉換設計
3.3 歐氏記號圖與階梯圖的物件關係
在 2.4.3 節物件層分析中,有介紹如何使用 JAXB 裡提供的 XJC 編譯器來解析綱要,
將 PNML 與 PLCopenXML 綱要解析,產生有效物件。本節將利用 XJC 編譯器來解析 PNML 與 PLCopenXML 綱要,說明歐氏記號圖與階梯圖所組成的物件,並且說明其物件對應的 關係。3.2.1 節說明歐氏記號圖的物件組成分析,3.2.2 節說明階梯圖的物件組成分析,3.2.3 節說明歐氏記號圖與階梯圖物件對應關係。
3.3.1 歐氏記號圖的物件組成分析
本節將介紹歐氏記號圖會產生那些物件,以及這些的物件功能為何。因本論文使用歐 氏記號圖作為轉換的基礎,故本論文會以歐氏記號圖物件表示為 PNML 轉換後的物件。由 2.4.3.3 節的說明可知,轉換後的歐氏記號圖物件須依 PNML 綱要產生的類別定義。故首先 使用 XJC 編譯器將 PNML 綱要[13]產生 17 項類別。圖 3.5 是利用 XJC 編譯器將 PNML 綱 要進行解析,XJC 使用方法可參考[11]。
圖 3.5 PNML 綱要經由編譯之物件
本論文在此直接整理產生類別與其功能說明,如表 3.1 所示。PNML 文件產生的歐氏 記號圖物件便會依這些類別定義。而這 17 項物件有些物件本論文並不會用到,於 3.2.3 節 會詳細的說明所使用到的歐氏記號圖物件與階梯圖物件的關係。
表 3.1 PNML 產生的 17 項物件
物件名稱 功能 物件分類說明
Pnml 定義 Pnml 文件 主要構成裴氏圖的物件的類別,包含
暫存點、轉移點與方向弧
NetType 定義裴氏圖包含的暫存點、轉移點、方向弧物件
PlaceType 定義暫存點物件與屬性
TransitionType 定義轉移點物件與屬性
ArcType 定義方向弧物件與屬性
GraphicsType 定義圖形資訊 多個物件會使用到這些類別的內容。
如電腦顯示的名稱、物件顯示的座標
NameType 定義名稱
OffsetType 定義相對座標
Position 定義物件座標
HiddenType 定義隱藏資訊 個別物件會使用到這些類別的內容。
如暫存點物件的初始浮標數或方向弧 物件的權重
InitailMarkingType 定義暫存點初始浮標數
InscriptionType 定義方向弧權重
ToolspecificType 定義自訂工具
PageType 定義頁面 用來定義裴氏圖物件包含的子裴氏圖
ReferencePlaceType 定義暫存點內部子裴氏圖
ReferenceTransitionType 定義轉移點內部子裴氏圖
ObjectFactory 物件工廠 XJC 編譯後自動產生的物件
3.3.2 階梯圖的物件組成分析
本節介紹 階梯圖 有那 些物件, 以及這 些物 件的功能 。 首先 使 用 XJC 編譯器將 PLCopenXML 綱要[35]產生類別,圖 3.6 是利用 XJC 編譯器將 PLCopenXML 綱要解析。
圖 3.6 PLCopenXML 綱要經由編譯之物件
本論文在此直接整理產生類別與其功能,整理如表 3.2。在歐氏記號圖物件對應轉換 FormattedText 定義規格化文件 Package-Info 套件資訊
ConnectionPointIn 定義輸入接點物件 ConnectionPointOut 定義輸出接點物件 EdgeModifierType 定義元素的邊資訊 StorageModifierType 定義線圈儲存指令型別 Position 定義物件座標
Value 定義物件的值
RangeSigned 定義有號數範圍 定義物件的變數 RangeUnsigned 定義無號數範圍
VarList 宣告變數清單 VarListAccess 宣告存取變數清單 VarListConfig 宣告環境相關變數 VarListPlain 宣告無屬性的變數
ObjectFactory 物件工廠 XJC 編譯後自動產生的類 別
3.3.3 歐氏記號圖與階梯圖的物件對應關係
根據表 3.1 PNML 物件中,歐氏記號圖的基本物件可以分為三大類,分別為 Place、
Transition 與 Arc。在這三大類物件中也包含其子物件與屬性,在設計自動轉換程式時,編 譯 PNML 文件會將所需的各物件與其屬性擷取出來。而在表 3.2 PLCopenXML 物件中,階 梯圖的基本元件主要分為四類,其中包含 Coil、Contact、RightPowerRail 與 LeftPowerRail。
在設計自動轉換程式輸出階梯圖文件時,主要針對階梯圖這四大屬性做資訊的轉換,變可 完成歐氏記號圖到階梯圖的轉換。
在自動程式轉換設計中歐氏記號圖用到 9 種物件與 10 項屬性,整理如表 3.4,並且說 明其屬性之功能。而階梯圖用到 9 種物件與 15 項屬性,整理如表 3.3,並且說明其屬性之 功能。
表 3.3 轉換所使用歐氏記號圖之物件
階梯圖物件名稱 屬性 說明
1 Body Body/Coil id 線圈名稱
position 線圈位置 Body/Contact id 接點名稱 position 接點位置 Body/LeftPowerRail id 左電軌名稱
position 左電軌位置 Body/RightPowerRail id 右電軌名稱 position 右電軌位置
2 DataType 定義資料型別
3 Connection refLocalId 連接名稱 Position 連接座標 4 ConnectionPointIn relPosition 連接輸入座標
localId 連接輸入名稱 5 ConnectionPointOut relPosition 連接輸出座標
6 Position position 定義座標
7 Variable Value 定義值
8 PouType 定義程式結構單元
9 Project 定義專案
表 3.4 轉換所使用階梯圖之物件
歐氏記號圖物件名稱 屬性 說明
1 Pnml 歐氏記號圖架構
2 PlaceType id 暫存點名稱
3 TransitionType id 轉移點名稱
4 ArcType source 來源
target 目標 5 InitialMarkingType value 浮標值
6 NetType id 歐氏記號圖名稱
type 歐氏記號圖類型
7 NameType id 名稱
8 GraphicsType position 座標 9 Position position 座標
整理好所需用到的歐氏記號圖與階梯圖物件後,接著說明歐氏記號圖物件與階梯圖物 件的對應關係。在 2.3.3 節提到使用法則轉換法將歐氏記號圖轉換成階梯圖,故歐氏記號 圖與階梯圖的物件可以經由法則矩陣找出其對應的關係。歐氏記號圖與階梯圖的物件對應 關係如圖 3.7。首先是法則RI的物件對應,利用 InitialMarkingType 物件找出初始浮標,建 立初始的接點與線圈物件,接著利用 source 與 target 這兩物件建立法則矩陣,最後用法則RE 與RF產生接點與線圈的物件。如此便完成了歐氏記號圖與階梯圖的物件對應關係。
圖 3.7 歐氏記號圖與階梯圖物件對應關係