基于Windows 套接字的Ethercat 主站协议栈设计与实现

2021-10-26 07:19:46柳青
机电产品开发与创新 2021年5期

柳 青

(北京电子科技职业学院, 北京 100176)

0 引言

Ethercat 作为一种开放式高速实时以太网广泛应用于运动控制、自动化等领域。在当前Ethercat 主站的研究中为了追求实时性能和高精度时钟同步, 对系统的软件或硬件都提出了特殊要求。 蒋杰等通过改造Linux 内核在X86 平台上实现了Ethercat 主站[1],孙跃祥等在Xilinx Zynq-7000 处理器构建了嵌入式Ethercat 主站[2]。

然而在物料传输、 工件检测等对实时性要求不高的系统中,如果采用上述方案则存在系统复杂,成本高,开发周期长等问题。 因此提出了这一种在Windows 平台上采用网络套接字来实现Ethercat 主站协议栈的方法。 该方法基于Ethercat 规范中Ethercat UDP/IP 报文格式,将Ethercat 报文嵌入udp 数据包的方式,不需要专用硬件或者特殊网卡驱动,协议栈配置灵活,可移植性好。

1 整体架构设计

Ethercat 主站的主要功能是对从站的配置、 数据交换、为应用程序提供编程接口,因此该将协议栈设计为三个线程模块和一个数据模块。 三个工作线程分别负责应用程序接口、Ethercat 报文生成、解析与收发、配置服务通信。 每个线程都可以访问数据模块中的数据,线程之间通过数据模块交互信息,协议栈架构见图1。

图1 Ethercat 主站协议栈框架

数据模块包含了每个从站的信息,包括:基本信息,如从站位置、生产厂商、版本号等;配置信息,主站对从站初始化时,需要对其SM 和FMMU 进 行 配置,否则在从站状态转换时会出错,另外在使用PDO 通信时,也必须对从站1C12、1C13 等对象进行配置[3],以映射报文中的数据到从站的字典对象中。 从站结构体代码……

登录APP查看全文