1. 程式人生 > >Ethercat解析(十)之從站配置

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繫結起來。