本文主要是介绍EtherCAT笔记(二) —— EtherCAT状态机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
EtherCAT 状态机
EtherCAT的状态是由一个称为EtherCAT状态机(ESM: EtherCAT State Machine)来控制的。根据EtherCAT的状态,EtherCAT从站可以访问和执行不同的功能。EtherCAT 主站必须向每个状态下的设备发送特定命令,特别是在从站启动期间。
1 EtherCAT状态机:
- Init
- Pre-Operational: PreOp
- Safe-Operational: SafeOp
- Operational: OP
- Boot
1)Init:
初始化状态定义了主站与从站在应用层的初始通信关系。此时主站和从站应用层无法直接通信,主站使用初始化状态来初始化从站控制器的配置寄存器。如果从站支持邮箱通信,则主站使用初始化状态来配置邮箱通信。
2)Pre-Operational
PreOp状态下,可以使用邮箱通信,但还无法使用过程数据通信。EtherCAT 主站初始化用于过程数据的同步管理器通道(来自同步管理器通道 2)、FMMU 通道,以及(如果从站支持可配置映射)PDO 映射或同步管理器 PDO 分配。在此状态下,过程数据传输的设置以及可能与默认设置不同的终端特定参数也会被传输。
3) Safe-Operational
在 Pre-Op 和Safe-Op之间的转换期间,EtherCAT 从站会检查用于过程数据通信的同步管理器通道是否正确,如果需要,还会检查分布式时钟设置是否正确。在确认状态更改之前,EtherCAT 从站会将当前输入数据复制到 EtherCAT 从站控制器 (ESC) 的相关 DPRAM 区域中。
4) Operational
运行状态,从站程序读取输入数据,主站应用程序发出输出数据,从站设备产生输出信号。此时仍可以使用邮箱通信。
5)Boot
引导状态,在 Boot 状态下,可以更新从站的固件。Boot状态仅可以切换到 Init 状态。邮箱通信通过 File Access Over EtherCAT(FoE) 实现。
2 EtherCAT状态机初始化流程
状态及状态转换 | 主要操作 |
---|---|
Init | 初始状态,应用层无通信,主站只能读写ESC寄存器 |
Init > Pre-Op | 主站配置从站地址寄存器: - 如果支持邮箱通信,则配置邮箱通道参数 - 如果支持分布时钟,则配置分布时钟参数 主站写状态控制寄存器,请求Pre-Op状态切换 |
Pre-Op | 此时使用应用层的邮箱通信,如前述 |
Pre-Op > Safe-Op | 主站使用邮箱初始化过程数据映射 主站配置过程数据通信使用的SM通道 配置FMMU 主站写状态控制寄存器,请求Safe-Op状态切换 |
Safe-Op | 应用层支持邮箱数据通信 有过程数据通信,但只允许读输入数据,不产生输出信号 |
Safe-Op > Op | 主站发送有效的输出数据 主站写状态寄存器,请求Op状态切换 |
Op | 输入输出有效 仍可以使用邮箱通信 |
这篇关于EtherCAT笔记(二) —— EtherCAT状态机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!