[EtherCAT]从站地址、从站地址别名与从站Explicit Device ID

在EtherCAT网络中, 从站设备有从站地址,从站地址别名以及从站Explicit Device ID三个属性,这三个属性可以用于标识从站(从站另具有Vendor ID和Product Code属性用于标识厂家和产品类型等)。

本文将解释从站地址,从站地址别名以及从站Explicit Device ID三个属性的设置方式和使用场景。

一、原理说明

1.1 从站地址

从站地址(ESC寄存器0x10),其复位值为0,主站可写,从站只读,可用于EtherCAT数据帧的寻址功能(固定地址寻址方式)。从站地址在主站对从站网络配置过程中被赋值,从站掉电后数值不保存。调整从站设备在网络中的顺序,其由主站分配的从站地址数值会发生改变。

EtherCAT数据帧寻址方式可参考:https://blog.csdn.net/gufuguang/article/details/119889835

1.2 从站地址别名

从站地址别名(ESC寄存器0x12),其复位值来自于EEPROM中所存储的数据,主站只读,从站可写。由于主站对该寄存器是只读权限,主站不可直接修改从站别名,但是主站可以更新从站EEPROM中用于从站地址别名的数据,之后重启从站,新的从站地址别名就会从EEPROM中加载到ESC寄存器0x12, 实现主站更新从站地址别名。通过EEPROM保存的从站地址别名,从站掉电也能保存,从站地址别名不随从站在网络中的位置变化而变化。从站地址别名同样可以用于EtherCAT数据帧的寻址功能(固定地址寻址方式, 须由主站设置ESC寄存器0x100[24]后启用)。

1.3 从站Explicit Device ID

从站Explicit Device ID,是一个由应用层软件提供的设备标识符,为主站提供一种更为灵活的从站设备识别方式。从站Explicit Device ID不作用于EtherCAT的数据帧寻址。用户在开发从站软件协议栈时,使用SSC Tool时有参数选项控制是否支持从站Explicit Device ID。当支持Explicit Device ID时,用户需要实现APPL_GetDeviceID()函数,该函数返回值即是从站Explicit Device ID。由SSC Tool生成的APPL_GetDeviceID()函数返回值默认是5,通常是将其重新实现为根据拨码开关获取Explicit Device ID,这样通过拨码开关即可设置Explicit Device ID。

  1. SSC Tool中使能Explicit Device ID,生成的ESI文件中会添加IdentificationReg134为真的属性

  2. 协议栈代码会生成APPL_GetDeviceID(),用户需要根据实际条件和需求重新实现该函数。
    注意: 在支持Explicit Device ID属性时, EtherCAT一致性测试会测试该属性,预期返回值是5才能通过测试。

  3. 主站获取从站Explicit Device ID的方式
    不同于从站地址和从站地址别名直接存在在ESC的寄存器中,主站可直接读取寄存器设置或获取属性值,读取Explicit Device ID需要主站写寄存器0x120请求从站反馈Explicit Device ID,之后从站软件相应请求将APPL_GetDeviceID()获取的返回值写入寄存器0x134, 最后主站读取寄存器0x134获取从站Explicit Device ID。

二、在主站中的配置举例

  1. 在TwinCAT中设置EtherCAT从站地址别名

  2. 在Codesys PLC中设置EtherCAT从站地址别名

  3. 在基恩士PLC中检查从站Explicit Device ID

0
0

订阅

发表回复 0

Your email address will not be published. Required fields are marked *

captcha
Enter the characters shown in the image:
Reload

This CAPTCHA helps ensure that you are human. Please enter the requested characters.