Ethercat解析(十)之從站配置
配置檔案根據設定的從站在總線上面的位置、廠商ID和產品碼與具體的從站進行繫結。對於從站在總線上的位置,驅動提供了別名和位置編碼相結合的方式尋找對應的從站。別名和位置編碼都是16位的數字,其存放在從站的EEPROM中,具體的含義是:
別名 | 位置 | 描述 |
---|---|---|
0 | 0-65535 | 由於別名為0,因此其位置編碼就是從站在總線上的絕對位置 |
1-65535 | 0-65535 | 別名為非0值,此時,位置編碼就是從站在總線上的相對別名的偏移量,從站的位置是別名的值+位置的值 |
舉個例子,比如總線上如下幾個從站,其資訊為:
編號引數 | Slave0 | Slave1 | slave2 | slave3 |
---|---|---|---|---|
Vendor | 0x00000001 | 0x00000002 | 0x00000001 | 0x00000001 |
Product | 0x00000001 | 0x00000004 | 0x00000002 | 0x00000002 |
Alias | 0 | 0x1000 | 0x2000 | 0 |
其中假設連線順序是Slave0 —— Slave1 —— Slave2 —— Slave3
現假設有如下幾個從站的配置:
編號引數 | A | B | C | D | E |
---|---|---|---|---|---|
Alias | 0 | 0 | 0x2000 | 0x3000 | 0x2000 |
Position | 1 | 0 | 0 | 0 | 1 |
Vendor | 0x00000002 | 0x00000001 | 0x00000001 | 0x00000001 | 0x00000001 |
Product | 0x00000004 | 0x00000002 | 0x00000002 | 0x00000002 | 0x00000002 |
如何分析編號與從機的繫結情況。
⑴ 先看別名(Alias)
① 為0:位置編碼是從站在總線上的絕對位置
② 非0:位置編碼就是從站在總線上的相對別名的偏移量,從站的位置是別名的值+位置的值
⑵ 再看VID和PID
看從機配置資訊與從機資訊的Product和Vendor是否匹配。
例如:
⑴ 編號為A的別名為0,表示其配置位置資訊就是從站在總線上的絕對位置資訊也就是對應Slave1(因為Position為1),其次,編號為A的配置的Vendor與Product也與Slave1一致,因此,編號為A的配置將會跟Slave1繫結起來。
⑵ 編號為B的別名為0,表示其配置位置資訊就是從站在總線上的絕對位置資訊也就是對應Slave0(因為Position為0),其次,編號為A的配置的Vendor與Product與Slave1不一致,因此,無與之對應的從站。
⑶ 編號為C的別名為0x2000,表示其配置位置資訊(Alias + Position)就是從站的別名地址加相對偏移量也就是對應Slave2,其次,編號為C的配置的Vendou與Product與Slave2一致,因此,編號為C的配置將會跟Slave2繫結起來。
⑷ 編號為D的別名為0x3000,其配置位置資訊(Alias + Position)無與之對應的從站。
⑸ 編號為E的別名為0x2000,表示其配置位置資訊(Alias + Position)就是從站的別名地址加相對偏移量也就是對應Slave3,其次,編號為E的配置的Vendor與Product與Slave3一致,因此,編號為E的配置將會跟Slave3繫結起來。