EtherCAT 逐帧解析状态机切换过程(初始清零阶段)

第一阶段总结:主站通过一系列广播写(BWR) 和广播读(BRD) 操作,完成从站通信基础配置与状态校准。

下面逐帧解析初始化报文:

1、BWR 报文向地址101(对应 DL control 寄存器)发送设置端口 AUTO LOOP模式,随后通过 BRD 报文读取从站状态:

BWR发:

回:

BRD发:

回:

101地址对应DL control寄存器:

2、BWR 报文发送指令,要求所有从站状态统一设置为 Init:

BWR 发:

回:

120是AL状态控制寄存器地址:

3、BWR 报文写 0x500 寄存器,全部置位为 0,配置 ECAT 帧访问 EEPROM 权限:

BWR 发:

回:

对应寄存器:地址 0x500(功能:开放 EtherCAT 帧对 EEPROM 的访问权限)

4、BWR 报文写 0x200 系列寄存器,0x201(ECAT 中断屏蔽寄存器)写入数据 0004,开放 DL 状态中断:

BWR 发:

回:

对应寄存器:地址 0x201 → ECAT 中断屏蔽寄存器(功能:仅启用 DL 状态中断)

5、BWR 报文写 0x10 寄存器,配置从站节点地址:

BWR 发:

回:

对应寄存器:地址 0x10(功能:分配从站唯一通信节点地址)

6、BWR 报文写 0x300 寄存器,清零 RX ERR(接收错误)寄存器:

BWR 发:

回:

对应寄存器:地址 0x300 → RX ERR 寄存器(功能:清除接收错误计数)

7、BWR 报文写 0x600 寄存器(FMMU 配置)、0x800 寄存器(SM 配置):

BWR 发:

回:

对应寄存器:地址 0x600 → FMMU 配置寄存器;地址 0x800 → SM 配置寄存器(功能:初始化 FMMU 内存映射、SM 同步管理器参数)

8、BWR 报文写 0x910 寄存器,清零 DC(分布式时钟)同步寄存器:

BWR 发:

回:

对应寄存器:地址 0x910 → DC 同步寄存器(功能:清除 DC 同步相关初始偏差)

9、BWR 报文写 0x990 寄存器(sync0、sync1 时间同步控制器清零)、0x981 寄存器(时间同步辅助配置):

BWR 发:

回:

对应寄存器:地址 0x990 → sync0/sync1 时间同步控制器;地址 0x981 → 时间同步辅助寄存器(功能:初始化时间同步控制参数)

10、BWR 报文写 0x930 寄存器,调节通信带宽:

BWR 发:

回:

对应寄存器:地址 0x930(功能:配置 EtherCAT 通信带宽参数)

11、BWR 报文写 934 寄存器,调节时钟偏差平均寄存器:

BWR 发:

回:

对应寄存器:地址 934 → 时钟偏差平均寄存器(功能:优化时钟同步精度)

12、BWR 报文写 103 寄存器,设置忽略站点别名:

BWR 发:

回:

===================BWR广播写(初始阶段)到此结束============================

相关推荐
江安下小雨12 小时前
muduo网络库(十六):新增连接池模块
网络·c++
aiot1891893521813 小时前
机场候机大厅高空场景技术红线!蓝牙AOA不能做手机导航??!!
大数据·网络·人工智能·蓝牙aoa
从入门到退休13 小时前
企业远程控制选型:向日葵SDK vs RustDesk自建,谁是更务实的选择?
运维·服务器·网络·远程工作·远程控制
fb_1234514 小时前
网络技术基础
网络
黑臂麒麟15 小时前
HarmonyOS 网络连接诊断实战:检测网络状态、WiFi 切换、弱网监测一网打尽
网络·华为·arkts·鸿蒙
CPETW15 小时前
USB TO I2C_(Excel)_Scan ---- 1000KHz总线速率测试_A
c语言·开发语言·网络·科技·单片机
杨云龙UP16 小时前
Oracle 19c RMAN历史备份清理失败:CONTROL_FILE_RECORD_KEEP_TIME 问题排查与整改实战
linux·运维·网络·数据库·oracle·rac
pt104316 小时前
网络自动化Python课程:Netconf与Restconf及Cisco自动化配置实验
网络·python·自动化
神仙别闹16 小时前
基于C++ WinPcap 的网络抓包软件
网络·c++·php
LabVIEW开发17 小时前
使用 LabVIEW 获取文件的创建日期:从内置函数到 Windows API 封装
网络·windows·labview·labview知识·labview功能·labview程序