APP下载

基于ET1100 的EtherCAT 测控从站设计与实现

2023-03-10孔伟陈为

电子设计工程 2023年5期
关键词:主站模拟量树莓

孔伟,陈为

(青岛科技大学自动化与电子工程学院,山东青岛 266000)

在工业控制现场,如何将节点控制及测量信号准确并迅速传达是现场总线在自动化领域的发展热点之一。把以太网技术应用在工业控制领域,用于满足工业控制中高数据量、长传输距离及高实时性的性能指标要求,成为了实时工业以太网的研究热点[1]。

在基于EtherCAT 技术中,应用IgH 作为主站和修改Linux 内核达到主站的需求成为不同的研究方向[2-4]。有学者采用LAN9252 作为从站控制器来进行远端数据采集与测量[5-6]。在主站的控制方案中,学者采用倍福TwinCAT 作为主站实现从站的控制[7-8]。同时也对网络实时性和安全性进行了分析与研究[9-13]。

文中基于EtherCAT 技术设计远程节点,使用CODESYS 软PLC 对节点进行控制,并设计以网页的模式显示控制状态与测量数据。同时通过抓包工具对网络的实时性与可靠性进行分析。

1 系统原理与结构

1.1 系统结构

系统设计远程节点从站,根据EtherCAT 运行原理及拓扑结构,系统在从站RJ45 网口悬空后,ESC(从站控制器)自动闭合,产生数据回传。EtherCAT系统运行如图1 所示。系统主站采用CODESYS 软件,将CODESYS 中的Runtime 移植到树莓派中,使得树莓派上的外设资源也可以进行使用,同时获取与使用从站中的数据。系统从站使用倍福公司推出的EtherCAT 专用芯片ET1100 实现EtherCAT 数据的处理,采用STM32F405 微处理器完成主站对从站信号的通信与控制。微处理器STM32F405 上的外设资源丰富,该文设计有8 路数字量输入/输出,1 路模拟量输入/输出,RS485 通信接口的节点。通过这几部分外设资源完成对从站节点的测量及控制。在标准浏览器中显示可视化界面,完成监控与显示。

图1 EtherCAT系统运行

1.2 系统工作原理

EtherCAT 网络是主从结构网络,主站是网络中的核心,是通信的发起者。在网络中,EtherCAT 主站首先通过标准以太网数据帧头中的MAC 地址寻址到设备网段,然后通过设备寻址或者逻辑寻址的方式寻址到从站设备,最后通过周期性过程数据通信或者非周期性数据通信完成数据的交互[1]。

在EtherCAT 网络中利用以太网全双工工作方式,并利用“On Fly”方式进行报文处理。主站将数据报文发出,每个从站根据自身ID 地址分辨数据报文中含有自身地址的报文,将数据报文进行读取或者插入数据,然后WKC(工作计数器)增1,表示完成了对这个地址报文的处理。将报文传送至下一从站,再次进行读写操作。当最后一个从站RJ45 网口存在悬空状态,这个从站就会将自身处理完成的报文发送至主站,这样就完成一次主站与从站之间的通信。在这个通信过程中,主站将控制数据报文下发到每一个从站中,完成对从站的控制[14-15]。

在从站对数据读取或者插入过程中,从站将各自的信息已经写入到报文中,将从站外设资源的状态返回到主站,主站通过读取其中的数据实现节点的测量。经过报文的内容,主站将从站的控制状态和测量数据在网页上进行显示。

2 系统硬件电路设计

2.1 EtherCAT从站控制器(ESC)电路设计

在EtherCAT 从站控制器(ESC)解决方案对比后,选择倍福公司的ET1100 进行从站实现。ESC 是从站实现EtherCAT 应用层通信协议处理,是从站实现的关键。ESC 在石英晶体电路上选择25 MHz 时钟源产生时钟信号;与微处理器STM32 通信方式选择SPI(串行外设接口)方式进行数据交换。EEPROM 用于存储从站信息(ESI),以保证从站信息在从站上电时能够装入到对应寄存器中,与ESC通信是通过I2C(Inter-Integrated Circuit)的方式进行数据交互。对比MII(Media Independent Interface)接口与EBUS 接口可知,EBUS(倍福公司使用LVDS 标准定义的数据传输标准)在降低时延的同时缩短了通信距离,在与以太网物理层器件PHY 相连时选择了MII接口。由于在对ESC使用时必须要配置工作模式,且工作模式是由硬件接口电路进行拉高或者拉低实现,这就要求在对ESC 芯片外围电路设计时配置相应的上拉或下拉电阻。ESC 硬件结构图如图2所示。

图2 ESC硬件结构图

2.2 EtherCAT从站微处理器电路设计

在对比ARM、FPGA、DSP 等处理器后,该文旨在实现节点的简单控制与测量,涉及到信号处理加工较少,因此选择基于ARM 内核的STM32 可以完成系统所需。在这一部分中,该文需要设计的有1 路模拟量输入/输出,8 路数字量输入/输出,RS485 通信接口。

在模拟量输入/输出接口电路中,使用STM32F4中自带的12 位ADC/DAC 转化器。由于设计中将参考电压钳制为3.3 V,这就需要在保证模拟量输入输出在0~3.3 V 范围内,同时在模拟量输入中,设计了滑动变阻器,直接将变阻器经过分压后的电压接入到引脚中,如图3 所示。

图3 模拟量输入电路

在数字量输入输出电路中,选择拨码开关作为数字量输入,在STM32 引脚输出时设计上拉电阻将LED 点亮,完成数字量输出电路。在RS485 通信接口电路设计时,选择SP3485 芯片完成对接口电路的实现。该文设计的EtherCAT 从站微处理器电路能够实现在工业现场多种信号的处理与控制,并且可以与RS485 接口设备进行通信,实现较复杂的控制。

3 系统软件设计

3.1 从站栈代码设计

EtherCAT 从站栈代码由用户应用层、通用EtherCAT 栈和硬件抽象与PDI(过程数据接口)三部分组成。在该文中用户应用层实现节点控制与数据的采集任务;通用EtherCAT 栈是完成EtherCAT 协议的邮箱等通信任务;硬件抽象与PDI 实现将硬件与软件相对应硬件抽象接口任务。这样一种高内聚低耦合的编程结构使得程序健壮性得以更好体现[16]。

3.2 节点控制与采集程序设计

节点控制与测量程序包含1 路模拟量输入输出、8 路数字量输入输出和RS485 接口这三部分[17-18]。使用STM32F405 的ADC 转换器时,采用STM32 自带的12 位的模数转化器,使用单次转换模式。在DAC转换器中,同样设置为12 位模式进行程序编写。在8 路数字量输入输出中,分别对不同的I/O 口进行设为高电平或者低电平的操作即可。在RS485 接口中,仅将接口打开使能,未将主流协议进行编写,例如MODBUS 协议等。

3.3 从站通信程序设计

EtherCAT 从站通信程序是完成从站与主站通信的整个协议,实现数据链路层的核心,包括邮箱通信,支持的CoE(CANopen over EtherCAT)与SoE(Servo Drive over EtherCAT)等行规,以及过程数据通信和状态机等任务。

在通信过程中,主函数的执行过程如图4 所示。从站运行包含自由运行模式、同步模式和DC(分布式时钟)模式这三种运行模式,该文设计采用自由运行模式。自由运行模式处理周期性数据是以查询的方式进行工作。在执行状态机管理机制时,表明查询状态机改变事件请求位发生了改变,同时主站需要检查必须的SM(同步管理器)配置是否正确,正确后再开始相应的通信数据处理。

图4 主函数执行过程

在配置完成SM 通道后,还需要配置PDO(过程数据对象)映射关系。这样从站的物理逻辑地址、PDO 映射关系与报文中的逻辑地址三者产生了联系,才能够完成与主站的通信任务。

3.4 主站程序与网页显示设计

EtherCAT 网络由主站与从站组成。在主站方案中,选择支持EtherCAT 协议的CODESYS 软件来进行开发。由于从站的信息是由xml文件描述,因此在首次使用从站时,需要将xml 文件拷贝至CODESYS的系统文件夹中。在主站方面,该文将CODESYS Runtime System 移植到树莓派中,将树莓派作为控制器对该文设计的从站进行测试。为了直观显示各个数字量的状态与模拟量输入输出的值,该文设计了用于显示在标准浏览器上的可视化界面,利用树莓派系统中自带的浏览器就可以登录到网页进行显示与控制。

4 从站实验与分析

使用树莓派浏览器登录到该文设计网页,在数字量输入/输出测试中,将屏幕上的LED 开关接通或关闭,对应的LED 点亮与熄灭。将拨码开关的第1位、第2 位、第5 位和第6 位拨至ON 的状态,对应的状态变为1,与实际效果相符。

在模拟量通道输入/输出实验中,该文设计了一个模拟量输入/输出通道,实验中采用万用表与从站模块同时进行测量,观察两者误差。以模拟量输入通道为例,分别将万用表测量与从站测量进行对比,测量结果如表1 所示。

表1 模拟量输入值对比表

为了分析EtherCAT 数据帧的回环时间以及报文中的具体含义,该文采用Wireshark 软件在树莓派上对EtherCAT 数据报文监控,截取报文中的4 帧数据,如表2 所示。由表2 可知,传送数据量为117 字节的状态下,产生一次数据回环的时间约为30 μs,两条发送数据帧之间时间间隔约为4 ms。

表2 EtherCAT部分数据帧

在表2中,以数据帧14828中的EtherCAT datagram的LWR 命令下的数据为例进行解释说明,数据为330000001f0b,根据对象字典中的数据设计规则,其中3300 为0x0033(00110011),表示LED 的第0、1、4、5 位为高电平,对应的LED 灯点亮;0000 为设计的空位,无任何含义,方便观察数据所设置的间隔;1f0b为0x0b1f,十进制为2 847,是模拟量输出电压值为2 847 mV。以数据帧14829 中的EtherCAT datagram的LRD 命令的数据为例进行解释说明,数据为66000000750e,根据对象字典中的数据设计规则,其中6600 为0x0066(01100110),表示拨码开关的第1、2、5、6 位为高电平,即拨码为ON 的状态;0000 为设计的空位,无任何含义,方便观察数据所设置的间隔;750e 为0x0e75,十进制为3701,根据3 300/4 096×3 701=2 981.76,即模拟量输入电压值为2 981.76 mV。与实际状态和测量相符,EtherCAT 网络中报文数据具有可靠性。

5 结论

在该文中,设计了基于EtherCAT 协议的从站设备,从站设备实现控制与测量,并具有易操作、高可靠性、高实时性与精准性等特性。同时将软PLC 的控制方案引入到嵌入式设备中,在未来的PLC 控制方案中提供了一种解决思路。在多个从站进行连接至EtherCAT 网络中时,只需用网线进行连接即可,方便设备组网,能够广泛应用于工业、农业等。

猜你喜欢

主站模拟量树莓
基于树莓派的骑行智能头盔设计
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
基于树莓派的远程家居控制系统的设计
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
关于600MW火电机组模拟量控制系统设计和研究
响应面法优化红树莓酒发酵工艺
模拟量输入式合并单元测试仪的研制
基于改进经济压差算法的主站AVC的研究
关口电能计量故障监测报警装置及主站研究