写在前面
EtherCAT的报文比较繁琐,且一些参考书籍错误较多,且晦涩难懂,对于初学者,很难快速的入门。本文适用于有一定基础的研究者,如对报文有一些研究服务器托管网、对canopen协议有一定了解、并且对TwinCAT有了解的研究者。当然服务器托管网,对于初学者来说,也是很好的引导,少走很多弯路。本文测试的数据,可用于对应数据帧结构一一对应来理解帧的结构。
一、EtherCAT数据帧结构
EtherCAT数据直接使用以太网数据帧传输(也可以使用UDP/IP协议格式传输,本文不做介绍),使用帧类型为0x88A4。EtherCAT数据包括2个字节的数据头和44~1498字节的数据。数据区由一个或多个EtherCAT子报文组成,子报文对应独立的设备或从站存储区域,如图所示。
1.1 EtherCAT帧结构定义
名称 | 含义 |
---|---|
目的地址 | 接收方MAC地址 |
源地址 | 发送方MAC地址 |
帧类型 | 0x88A4 |
EtherCAT头:长度 | EtherCAT数据区长度,即所有子报文长度总和 |
EtherCAT头:类型 | 1-表示与从站通信;其余保留 |
FCS(Frame Check Sequence) | 帧校验序列 |
1.2 EtherCAT子报文结构定义
名称 | 含义 |
---|---|
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
大家好,我是 frank,「Golang 语言开发栈」公众号作者。 01 介绍 在 Go 语言中,数组是一块连续的内存,数组不可以扩容,数组在作为参数传递时,属于值传递。 数组的长度和类型共同决定数组的类型,不同类型的数组之间不可以比较,否则在编译时会服务器托…