3.5 EtherCAT从站控制器的应用层控制
3.5.1 EtherCAT从站控制器的状态机控制和状态
EtherCAT从站控制器的状态机控制和状态寄存器描述见表3-44。
表3-44EtherCAT从站控制器的状态机控制和状态寄存器描述
EtherCAT主站和从站按照如下规则执行状态转化。
1) 主站要改变从站状态时,将目的状态写入从站AL控制位(0x0120.0~3)。
2) 从站读取到新状态请求之后检查自身状态。
① 如果可以转化,则将新的状态写入状态机实际状态位(0x0130.0~3)。
② 如果不可以转化,则不改变实际状态位,设置错误指示位(0x0130.4),并将错误码写入0x0134~0x0135。
3)EtherCAT主站读取状态机实际状态(0x0130)。
① 如果正常转化,则执行下一步操作。
② 如果出错,主站读取错误码并写AL错误应答(0x0120.4)来清除AL错误指示。
使用微处理器PDI接口时,AL控制寄存器由握手机制操作。ECAT写AL控制寄存器后,PDI必须执行一次,否则,ECAT不能继续写操作。只有在复位后ECAT才能恢复写AL控制寄存器。
PDI接口为数字量I/O时,没有外部微处理器读AL控制寄存器,此时主站设置设备模拟位0x0140.8=1,EtherCAT从站控制器将自动复制AL控制寄存器的值到AL状态寄存器。
EtherCAT从站控制器的AL状态码描述见表3-45。表中“+E”表示设置了AL错误指示位(0x0130.4)。
表3-45EtherCAT从站控制器的AL状态码描述
(续)
(续)
3.5.2 EtherCAT从站控制器的中断控制
EtherCAT从站控制器的支持以下两种类型的中断。
① 给本地微处理器的AL事件请求中断。
② 给主站的ECAT帧中断。
分布时钟的同步信号也可以用作微处理器的中断信号。
EtherCAT从站控制器的中断控制寄存器描述见表3-46。
表3-46EtherCAT从站控制器的中断控制寄存器描述
(续)
1.PDI中断
AL事件的所有请求都映射到寄存器0x0220~0x0223,由事件屏蔽寄存器0x0204~0x0207决定哪些事件将触发给微处理器的中断信号IRQ。
微处理器响应中断后,在中断服务程序中读取AL事件请求寄存器,根据所发生的事件做出相应的处理。
2.ECAT帧中断
ECAT帧中断用来将从站所发生的AL事件通知EtherCAT主站,并使用EtherCAT子报文头中的状态位传输ECAT帧中断请求寄存器0x0210~0x0211。ECAT帧中断屏蔽寄存器0x0200~0x0201决定哪些事件会被写入状态位并发送给EtherCAT主站。
3.SYNC同步信号中断
SYNC同步信号可以映射到IRQ信号以触发中断。此时,同步引脚可以用作Latch输入引脚,IRQ信号有40ns左右的抖动,同步信号有12ns左右的抖动。因此也可以将SYNC信号直接连接到微处理器的中断输入信号,微处理器将快速响应同步信号中断。
3.5.3 EtherCAT从站控制器的WDT控制
EtherCAT从站控制器支持以下两种内部WDT。
① 监测过程数据刷新的过程数据WDT。
② 监测PDI运行的WDT。
EtherCAT从站控制器的WDT相关寄存器描述见表3-47。
1.过程数据WDT
通过设置SM控制寄存器(0x0804+Nx8)的位6来使能相应的过程数据WDT。设置过程数据WDT定时器的值(0x0420~0x0421)为零将使WDT无效。过程数据缓存区被刷新后,过程数据WDT将重新开始计数。
过程数据WDT超时后,将触发如下操作。
1)设置过程数据WDT状态寄存器0x0440.0=0。
2) 数字量I/OPDI接口收回数字量输出数据,不再驱动输出信号或拉低输出信号。
3) 过程数据WDT超时计数寄存器(0x0442) 增加。
2.PDIWDT
一次正确的PDI读写操作可以启动PDIWDT重新计数。设置PDIWDT定时器的值(0x0410~0x0411)为零将使WDT无效。
PDI WDT超时后,将触发以下操作。
1)设置EtherCAT从站控制器的DL状态寄存器0x0110.1,DL状态变化映射到ECAT帧的子报文状态位后,并将其发给EtherCAT主站。
2)PDIWDT超时计数寄存器(0x0443)值增加。
表3-47EtherCAT从站控制器的WDT相关寄存器描述