EtherCAT热插拔HC技术:无需软件授权

[复制链接]
查看28717 | 回复0 | 2024-9-10 10:55:31 | 显示全部楼层 |阅读模式
EtherCAT热插拔(Hot Connect)技术概述

       EtherCAT的Hot Connect,即热连接技术,旨在为动态拓扑提供一个灵活的解决方案,该技术服务于EtherCAT现场总线,在系统运行期间可以实现Hot Connect模组热插拔以及拓扑变更,谓之“可变拓扑(灵活拓扑)”,利用Hot Connect技术可以实现“即使部分从站掉线仍旧保证其他从站的正常工作”,也可实现“即使从站位置变动也可保证其正常工作”这两个目标。

01

软件授权

       不需要购买额外的软件授权,也不需要安装软件模块,属于系统自带的功能,进行简单设置即可使用。

02

热切换时间

       普通的EK耦合器+EL模块组合设置成一个整体热连接组的时候,整组模块在掉线和上线的间隔上,不建议小于1秒时间,官方说明切换时间会持续数秒钟,该时间与模块在网络中的位置顺序有关;但是为了满足快速切换的使用场景,例如需要对设备的工具头进行快切更换,这种情况下若是切换时间要求小于1s,则需要使用支持Fast Hot Connect的耦合器,例如EK1101-0080。普通的耦合器例如EK1100或者EK1101是不支持Fast Hot Connect的,而且Fast Hot Connect的模块EK1101-0080也不可以直接连入EtherCAT网络,需要通过支持Fast Hot Connect的模块,例如EK1122-0080来连入EtherCAT网络,不可以直接连入EK1122或者EK1100或者EK1101或者CU1128等普通的RJ45网口上。

03
同步单元设置(SyncUnit)

       设置成热连接组的一组模块,会在EtherCAT网络中自动生成对应此组模块的同步单元(Sync Unit),一个同步单元内的模块们共享一个datagram,同一个Working Counter,一个EtherCAT Frame可以携带一个或多个datagram,每个datagram都由帧头,数据区和WKC值组成,Frame都只能由EtherCAT主站发出,Frame经过从站的时候,从站从Frame上读写数据,设置成热连接组的一组模块享有一个单独的Sync Unit,因此这组模块和主站的数据交互是不受其他datagram的影响,不受其他从站模块影响的,基于此原因,设为热连接组的模块们可以随便换到EtherCAT网络的任何空闲网口位置上,而不再受限于从站模块物理连接顺序的制约。



       需要注意上述“空闲网口”的含义,这里空闲的内涵就是说正常运行时这个网口没有接其他任何从站,什么都不接。在一个EtherCAT网络中,从站的物理连接顺序是不可以随意变动的,这是因为EtherCAT网络中主站对从站的编址默认是自动按从站的物理连接顺序进行的,上电后主站扫描并识别从站后,这个硬件配置对于主站而言就固定了(从站的位置,数量,类型都固定了),这种情况下,假定用户断开一个EK1100及其后面的IO模块,从而使它之前的EK1100空余出一个OUT口,那么这个OUT口不是空闲网口,因为此口在网络正常运行时是占用的,而且配置有耦合器和IO模块,那什么是空闲网口呢?例如用户使用了CU1128做了星型拓扑的结构,但是CU1128的8个网口并没有全部使用,只使用了X1,X2,X4,那么主站在扫描硬件并激活配置后,CU1128的X3,X5,X6,X7就是空闲网口,如果用户把X1网口下的某一个EK1101及其所挂载的IO模块设为了热连接组,那么此热连接组就可以插到X3或者X5,X6,X7任何一个网口上使用,这就是空闲网口的含义。

04

操作规范

       如上所述,Hot Connect Group(热连接组)上线后,需要持续数秒钟时间才可以切换到OP状态(Operational State),只有切到了OP状态,PDO数据才允许传输,可以对热连接组的模块进行实际意义上的操作,设为热连接组的模块们在切到OP状态之前,会保持为SafeOP状态,此状态只允许传输SDO数据,不允许传输PDO数据。因此为了确保程序上可以准确及时地对模块做出上线识别并进行响应,倍福官方强烈推荐在程序中对关注的模块持续监测其WcState值和Status值,只有WcState=0且Status=8的时候,表明模块已经能够进行正常的过程数据交换,模块本身已经可以进行正常操作,此时可以在程序中使用模块的数据。

       这里还有一个很重要的地方需要注意,Hot Connect Group必须在主站事先进行过配置,只有配置过的Hot Connect Group更换到其他空闲网口上才会被识别到:

       a)如果没有事先进行过配置,只是想新加一组模块进网络中是不行的,因为主站的配置文件中根本没有该组模块的地址信息。

       b)已经配置过热连接的一组模块,如果是因为模块损坏需要更换新的模块,那么必须保证模块类型,数量,位置和损坏前的拓扑是一样的,如果损坏的是耦合器,例如EK1101,那么必须把EK1101的拨码和损坏的EK1101保持一样,如果是EK1100,那么必须把新更换的EK1100的地址识别方式改为SSA方式,并且写入损坏的EK1100的原地址信息到0x0012寄存器中才可以。

05

寻址模式

       前面简单叙述了EtherCAT对从站的寻址方式,默认的寻址方式是自动按从站位置顺序进行编址,通常在一个EtherCAT网络中从第一个模块开始地址为1001,之后按顺序进行递增第二个模块的地址为1002,第三个为1003…在EtherCAT网络中设置热连接从站时,也可使用其他三种寻址模式,分别为SSA(Second Slave Address),Data Word,Explicit Device Identification.



SSA

       从站把地址信息存储在其本身的EEPROM芯片中,从站在上电的时候,ESC芯片会从EEPROM芯片中加载从站的配置信息,这个地址信息会被加载到ESC的DPRAM的0x0012寄存器中,主站从ESC芯片的0x0012寄存器中读取这个值作为从站的地址使用,Beckhoff的ESC芯片ET1100,ET1200本身带有EEPROM,其他第三方的ESC芯片例如英飞凌XMC4300/XMC4800,美国微芯LAN9253,还有其他基于例如Xilinx FPGA的软IP core方案等,是否带有片载EEPROM或者外部挂载EEPROM芯片的方式实现SSA特性要看生产商的实现方案。

       对于支持SSA特性的EtherCAT从站,可以通过设置Config Station Alias(ADO 0x0012)的值实现从站的地址配置,主站读取此值作为从站地址。

       SSA的目的就是给从站设定一个固定的地址,从站的硬件和这个地址绑定,若是更换从站硬件,必须在新的硬件中写入这个地址来做到无缝替换,这就和设置物理地址拨码的含义很像,私以为这是EtherCAT对已有技术的一种兼容,EtherCAT本身而言并不要求用户对从站进行地址设定,而是自动分配地址,这样的好处在于,如果需要在网络中插入若干模块,只需要重新扫描网络即可快速配置,不需要人工一个一个地去调节模块的地址拨码,这种模式对于批量生产很友好。

Data Word

       此种寻址模式是把从站的地址存储在一个名为ADO(Address Offset)寄存器的地方,这个寄存器地址最初限定必须为0x1000,后续TwinCAT软件更新后不再限制其地址,可以是ESC中DPRAM空间的任何地方(0x1000-0xFFFF之间),但是这个值必须在从站的ESI文件(通常为xml格式的文本文件,例如Beckhoff EK11xx.xml文件就是所有EK11xx模块共用的一个ESI文件)中给出,目前倍福的EK1101在进行热连接设置时使用的就是这种寻址方式,而且ADO的寄存器仍旧沿用了0x1000地址。

       在ESC的内存地址空间描述表中发现,0x0000-0x0FFF这段4KB的地址空间是ESC中专用寄存器地址空间,这部分地址空间主要用来对ESC的寄存器进行读写访问,从0x1000-0xFFFF这部分空间是EtherCAT主站和从站MCU进行过程数据交互的内存空间(DPRAM),这部分空间最大可以是60KB,但是目前的ESC芯片并没有全部实现,例如ET1100实现了8KB,ET1200只实现了1KB,AX58100实现了8KB。

Explicit Device Identification

       这种寻址模式是从站把自身地址存储在ESC芯片中地址为0x0134寄存器里,0x0134:0x0135寄存器本身是 AL Status Code寄存器(AL是Application Layer的缩写),主站读取0x0134寄存器中的值并把它作为从站的地址,一些第三方带拨码的EtherCAT设备,例如带外部地址拨码的伺服驱动器,或者IO模组可支持此种寻址方式。  

06

常用模块

       在倍福的官方文档中,理论上支持设置成热连接的最小单元就是单个的IO模块或者伺服,实际上在使用的时候一般最小的设置单元就是耦合器EK1101或EK1100+其后挂载的EL模块,或者单个伺服也允许设置成热连接组。

耦合器EK1100

       EK1100是EtherCAT的耦合器(Coupler),其后可以挂载EL模块,例如EL1008,EL2008,EL3024,EL6002等等,EK1100支持SSA特性,可以使用写入EEPROM的方式来固定其地址,即Config Station Alias(ADO 0x0012).需要注意的是写入完毕后必须对EK1100下电重启方可生效,是否写入成功可以通过读取ADO寄存器来判断。

从站的ESC芯片在从站上电的过程中,会从EEPROM中载入从站的配置信息,这个载入动作只执行一次,就是在上电过程中进行,配置信息载入成功后,从站的状态机最终会切到OP态,之后EEPROM有任何改动,ESC都不会去主动同步更新到自己的DPRAM中。所以使用此种方式更改从站的地址,需要将新的值写入EEPROM中,而且需要从站执行“先下电再上电”的一个过程,目的就是让ESC芯片重新从EEPROM中读取一边配置信息来把新设置的地址值更新到0x0012寄存器中。

耦合器EK1101

       EK1101是带有外部地址拨码的EtherCAT耦合器,相比于EK1100这种“软”方式实现从站地址设置的方式,EK1101可以认为是“硬”方式实现从站地址设置,EK1101使用 Data Word的方式,其地址存储在ADO为0x1000的寄存器中,这里的值读取自EK1101的外部地址拨码,使用EK1101可以防止意外修改EEPROM导致的从站地址变动问题。



07

注意事项

       倍福EK1100的用户手册中明确写明 EK1100是不支持热连接功能的,但是对EK1101明确写明是支持热连接功能的,二者差别目前看是EK1100提供了外部地址拨码开关(地址设置范围1-4096),实际使用EK1100来做热连接组也是可以的,只是需要使用SSA的方式,这种方式的弊端如前所述,如果需要使用热连接功能,按照倍福官方的手册,还是优先考虑EK1101.








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则