zoukankan      html  css  js  c++  java
  • ESC应用层控制

    1、状态机控制和状态

    主站和从站按照以下规则执行状态转化:

    ①主站要改变从站的状态,将目的状态写入从站AL控制位(0x0120.0~3);

    ②从站读取到新状态请求后,检查自身状态:

      ●如果可以转化,则将新的状态写入到状态机实际控制位(0x0130.0~3);

      ●如果不能转化,则不改变实际状态位,设置错误指示位(0x0130.4),并将错误码写入0x0134~0x0135。

    ③主站读取状态机实际状态(0x0130):

      ●如果正常转化,则执行下一步操作;

      ●如果出错,主站读取错误码,并写AL错误应答(0x0120.4)来清除AL错误指示。

    下表列出了从站状态机控制和状态寄存器:

     由上表可知,地址是0x0120:0x0121的寄存器,长度是两个字节(2Bytes,16bits),0~3位是AL控制位,作用是发起从站状态机的状态切换(1:请求初始化状态;2:请求预运行状态;3:请求Bootstrap状态;4:请求安全运行状态;8:请求运行状态),4位是AL错误应答,如果转化出错,主站通过对此位写1清除AL错误指示(0x0130.4)。

    地址是0x0130:0x0131的寄存器,长度是两个字节(2Bytes,16bits),0~3位是从站状态机实际状态,如果可以正常转化,这4个位就会更新。4位是AL错误指示,当转化不成功的时候,此位会被置1。

    地址是0x0134:0x0135的寄存器,长度是两个字节(2Bytes,16bits),转化出错的时候,错误码将会写到这个寄存器。

    使用微处理器PDI接口时,AL控制寄存器由握手机制操作。ECAT帧写AL控制寄存器后,PDI必须执行一次,否则,ECAT帧不能继续写操作。只有复位后ECAT帧才能恢复写AL控制寄存器。PDI接口为数字量I/O时,从站没有通过外部微处理器读AL控制寄存器,此时,主站设置设备模拟位0x0140.8 = 1,ESC将自动复制AL控制寄存器的值到AL状态寄存器。AL状态码的定义如表所列。表中“+E”表示设置了AL错误指示码(0x0130.4)。

     

     

     2、中断控制

    ESC支持两种类型的中断:给本地微处理器的AL事件请求中断和给主站的ECAT帧中断。另外,分布时钟的同步信号也可以作为微处理器的中断信号。下表列出了ESC中断控制使用的寄存器。

     

     

     (1)PDI中断

    所有发生的AL事件请求都映射到寄存器0x0220~0x0223,由事件屏蔽寄存器0x0204~0x0207决定哪些事件将触发给微处理器的中断信号IRQ。微处理器响应中断后,在中断服务程序中读取AL事件请求寄存器,根据所发生的的事件做相应的处理。

    (2)ECAT帧中断

    ECAT帧中断用来通知EtherCAT主站从站发生的AL事件。它使用EtherCAT子报文头中的状态位传输ECAT中断请求寄存器0x0210~0x0211。ECAT帧通过中断屏蔽寄存器0x0200~0x0201来决定哪些事件会被写入状态位并发送给主站。

    (3)SYNC信号中断

    同步信号可以映射到IRQ信号以触发中断,此时同步引脚可以用作Latch输入引脚,IRQ信号有约40us的抖动,同步信号只有约12us的抖动。所以也可以将SYNC信号直接接到微处理器的中断引脚,使微处理器快速响应同步信号中断。

    3、看门狗控制

    ESC有两种看门狗,一种是监测过程数据刷新的过程数据看门狗,另一种是监测PDI运行的PDI看门狗。下表列出了看门狗控制的相关寄存器。

    (1)过程数据看门狗

    通过设置SM控制寄存器(0x0804+N*8)位6来使能相应的过程数据看门狗。设置过程数据看门狗定时器的值(0x0420~0x0421)为零将使看门狗无效。过程数据缓存区被刷新后,过程数据看门狗将重新计数。过程数据看门狗超时后,将触发以下操作:

      ●设置过程数据看门狗状态寄存器0x0440.0=0;

      ●数字量I/O PDI接口收回数字量输出数据,不再驱动输出信号或拉低输出信号;

      ●过程数据看门狗超时计数寄存器(0x0442)增加。

    (2)PDI看门狗

    一次正确的PDI读写操作可以启动PDI看门狗重新计数。设置PDI看门狗定时器的值(0x0410~0x0411)为零将使看门狗无效。PDI看门狗超时后,将触发以下操作:

      ●设置ESC DL状态寄存器0x0110.1=0,DL状态变化映射到ECAT帧中并将其发送给主站;

      ●PDI看门狗超时计数寄存器(0x0443)值增加。

     

     

    参考《工业以太网现场总线EtherCAT驱动程序设计及应用》,作者:郇极,刘艳强

  • 相关阅读:
    Python3 WebDriver操作cookie的方法
    Windows创建定时任务执行Python脚本
    Python3 自定义请求头消息headers
    为什么SQL用UPDATE语句更新时更新行数会多3行有触发器有触发器有触发器有触发器有触发器有触发器
    【C#】C#获取文件夹下的所有文件
    jQuery.ajax()调用asp.net后台方法(非常重要)
    Asp.Net+JQuery.Ajax之$.post
    c# post 接收传来的文件
    C#使用GET、POST请求获取结果,这里以一个简单的用户登陆为例。
    javascript中let和var的区别
  • 原文地址:https://www.cnblogs.com/young-dalong/p/14687967.html
Copyright © 2011-2022 走看看