[Device] 設備段。 在這個段包含的ID(Identification:身份)信息用來匹配在網絡上已經發現設備帶有的EDS文件。
這個段含有的是EDS文件中最重要的元素。身份識別是通過讀取ID對象的前5個屬性,并且與EDS文件中相對應的信息進行比較。他們是:供應商編碼、供應商名稱、產品類型、產品類型名稱和產品編碼。
通過他們運行時選項區分的任何設備必須用不同的EDS文件來隱藏,作為結果,他們必須有不同的ID對象屬性。
在按裝EDS時,設備段會指定一個圖標文件為該設備自動分配一個圖標。 強烈反對不使用圖標的做法,因為圖標是在網絡中,區分設備類型/家族的最好的圖形表示方法。對于用戶而言,這也是最容易區別身份的辦法。
舉例:下面是萬可公司的一款產品的[Device]段:
[Device]
$+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
VendCode = 40; $ Vendor Code
VendName = "Wago Corporation"; $ Vendor Name
ProdType = 12; $ Product Type - Communication Adapter
ProdTypeStr = "Communications Adapter"; $ Product Type String
ProdCode = 341; $ Product Code
MajRev = 1; $ Major Rev
MinRev = 1; $ Minor Rev
ProdName = "WAGO Ethernet(10/100MBit)- STD";
Catalog = "750-341";
$ Icon = "750341_1.ico";
[Device Classification] 設備分類段。這個段對用于EtherNet/IP的EDS/設備進行了分類。
這是對用于EtherNet/IP 所有設備的提出要求。他必須包含至少一個連接 EtherNet/IP 的網絡入口。
舉例:下面是萬可公司的一款產品的[Device Classification]段
[Device Classification]
$++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Class1 = EtherNetIP;
[Connection Manager] 連接管理段。這個段指定了設備的CIP 連接。
在 [File]文件段后,[Device]設備段和[Device Classification]設備分類段,這是一個EtherNet/IP 設備最重要的段,有了它才能成為CIP連接的目標。只有在這個段指定的連接才能被基于EDS的配置工具所使用。而所有的觸發和傳送類型要通過連接N入口來實現。比如:連接1為類別1,僅用于輸入;連接2為類別1,僅用于偵聽。在EDS文件中(類別0用于安全連接,類別1用于其他連接)指定連接類別0和1是通常做法。今天還沒有使用其他的傳送類別,也沒有任何基于EDS的工具能夠翻譯其他類別。
如果有多個連接,不同的選項能夠為設備建立不同功能的連接,每個連接需要分別標記一個連接N入口。只有在少數情況下,多個連接的連接N入口能夠被“復用”,比如,使用一個參數用于連接點的信息。
使用傳送類型和選擇連接參數必須生成一個有意義的結合,以配合目標設備的功能。如果某些選擇是相互排斥但設備又能夠支持,那么要選擇一系列獨自的連接N入口去涵蓋他們。象 EZ-EDS這樣的工具能夠幫助用戶防止一些非法的組合,但不是全部。這種工具還能幫助用戶對32-位加密的觸發/傳送值和連接參數進行解碼。為每個獨自連接N入口選擇一個有意義的名字能幫助用戶在使用中少犯錯誤。
所有的連接N入口都需要一個路徑;否則,目標設備就不會連接到任何數據。我們強烈推薦支持所有的三種應用路徑(配置,消費,生產),因為這也是ODVA組織的推薦之一,即:用于EtherNet/IP設備的推薦功能。在配置路徑時,通常不需要對連接使用符號(標簽)。
從源到目的(O->T)和從目的到源(T->O)屬性(請求數據間隔,尺寸和格式)可以使用一些非常有意義的信息。當沒有指定RPI(Request Packet Interval:請求數據間隔)值時,配置工具可能按給定的總線(網絡)選擇能夠支持的任何值,而這個值可能超出了設備的能力。
使用一個固定的RPI值,也不需要太多的考慮,因為這是一個只能選擇的值。在大多數情況下,在EDS文件中最好使用參數N入口,為RPI定義最小/最大/缺省值。對于尺寸(size)和格式(format),兩個區域至少填入一個值。如果兩個區域都填寫了,尺寸區域將優先;當僅使用格式區域時,就用數字定義它,空著尺寸區域;如果不使用格式時,就可以空著。強烈推薦定義格式。
在配置屬性部分,允許輸入兩個配置格式和兩個配置尺寸。這個特性能夠很好地處理模塊化的設備。在Forward_Open請求中產生的第一部分數據,用于適配器的消費;數據的第二部分轉發到各自的模塊,滿足模塊的要求。對于非模塊化設備,一個部分就足夠了。
舉例:下面是萬可公司的一款產品的[Connection Manager]段
[Connection Manager]
$++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Connection1 = 0x84070002, $ trigger & transport
$ class1,
$ cyclic, change of state, application,
$ exclusive owner,
$ server
0x33750405, $ connection parameter
$ O->T, T->O fixed size supported
$ O->T 32-bit run/idle header
$ O->T Null,PtP, T->O Null,PtP,Multicast
$ O->T,T->O Low,High Priority
, 5, , $ O->T RPI,size,format
, 6, , $ T->O RPI,size,format
, , $ config part 1 (not used)
, , $ config part 2 (not used)
"class1 - exclusive owner", $ connection name
"", $ help string
"20 04 2C 01 2C 04"; $ referencing the target object
Connection2 = 0x82070002, $ trigger & transport
$ class1,
$ cyclic, change of state, application,
$ input only,
$ server
0x33750405, $ connection parameter
$ O->T, T->O fixed size supported
$ O->T 32-bit run/idle header
$ O->T Null,PtP, T->O Null,PtP,Multicast
$ O->T,T->O Low,High Priority
, 0, , $ O->T RPI,size,format
, 6, , $ T->O RPI,size,format
, , $ config part 1 (not used)
, , $ config part 2 (not used)
"class1 - input only", $ connection name
"", $ help string
"20 04 2C FE 2C 04"; $ referencing the target object
Connection3 = 0x81070002, $ trigger & transport
$ class1,
$ cyclic, change of state, application,
$ listen only,
$ server
0x33750405, $ connection parameter
$ O->T, T->O fixed size supported
$ O->T 32-bit run/idle header
$ O->T Null,PtP, T->O Null,PtP,Multicast
$ O->T,T->O Low,High Priority
, 0, , $ O->T RPI,size,format
, 6, , $ T->O RPI,size,format
, , $ config part 1 (not used)
, , $ config part 2 (not used)
"class1 - listen only", $ connection name
"", $ help string
"20 04 2C FF 2C 04"; $ referencing the target object
[Assembly]裝配,[Params]參數和[ParamClass]參數類別段。
這些段應該在EDS文件中按其他部分的要求適當地進行填寫,比如,連接N入口。
如果參數值沒有限制在一個子區域的范圍之內,如在參數N入口的區域定義一個在最小/最大值,那么列舉時會有一個好的數據。為EtherNet/IP 的設備配置參數時,希望能把它打入配置裝配。各自參數可以在EDS內部定義,但有些市售工具不允許訪問設備內部的個別參數,只能使用顯式信息 (Get/Set_Attribute_Single或者Get/Set_Attribute_All)才能工作。
舉例:下面是萬可公司的一款產品的[ParamClass]段
[ParamClass]
$++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MaxInst =10; $ total number of configuration parameters
Descriptor =0x0A; $ all full attributes are supported and stored in non-volatile storage
CfgAssembly =0;
[Capacity] 容量段。
這個段描述設備本身具有的通信能力(因此對公司非常有用)。應該描述連接的數量和連接的速度(每秒多少幀)。
[Port] 端口段。
這個段提供端口信息,這僅對需要執行CIP路由設備才有用。雖然允許,這個段對于支持單一CIP端口的設備來說是不必要的。當設備中內置交換機時,如設備帶有多個以太網端口,這個段仍然不需要(或者僅限于一個入口)除非設備執行一個端口到另一個端口的CIP路由。
舉例:下面是萬可公司的一款產品的[Port]段
[Port]
$++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Port1 = TCP, "EtherNet/IP port", "20 F5 24 01", 1;
$+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++