靖 娟 金卫凤
(①江西制造职业技术学院,江西 南昌 330095;②江苏大学机械工程学院,江苏 镇江 212013)
随着工业自动化技术的不断发展,制造设备应用网络化、智能化、实时性的工业系统方案成为趋势,工艺现场对数据传输的完整性、强实时性和低抖动性的要求越来越高。工业以太网现场总线EtherCAT 作为新兴的现场总线技术被越来越多的应用到制造业设备运动系统的控制[1],发挥其通信实时[2]、传输速率快、拓扑结构灵活[3-4]和数据容量大等显著优点[5-6],在全双工下数据传输下每个从站设备都会以小于100 μs 的周期实时处理数据,多应用在高端运动控制或电力电子应用中的快速控制回路[7],研究补偿算法优化主从站时钟偏差,实现分布式现场从站设备间的实时精确同步控制应用[8],如机器人和数控机床在内的多轴运动控制系统及数字量模块对信号的响应。
本文以数控机床加工过程中对数字量信号的检测处理为研究对象,将EtherCAT 实时以太网技术引入到分布式数字量模块中,提出1 种基于嵌入式通信芯片ET1100 的EtherCAT 从站数字量模块设计实现方法,并结合机床加工过程中的量刀功能测试,验证设计的数字量模块对信号的检测实现数据交互满足机床量刀功能需求。
对于EtherCAT 通信协议的实现目前存在使用FPGA 芯片编程实现通信协议中ESC 功能[9],即根据从站在通信链路的位置进行传输EtherCAT 数据帧的解析读写工作。但单独在FPGA 上按照ESC 功能自主编程实现EtherCAT 通信协议栈逻辑,配置专用网络适配器及安全功能单元[10],难度大,开发周期长,用于数字量模块开发上性价比不高。
因此设计EtherCAT 总线数字量从站模块,需保证能将主站端下发的配置数据与控制数据正确接收后完成配置并进行数据交互,选择微控制器内部封装集成ESC 芯片,将专门处理EtherCAT 通信数据帧的协议芯片与逻辑处理的控制器集成在同一片芯片内部实现数据的传输,硬件设计上只需要关注在物理层数据传输接口和用户功能电路的设计,可降低硬件设计难度。
根据所选从站控制器方案,设计模块硬件整体结构如图1 所示。
图1 硬件系统方案框架图
数字量模块硬件设计以太网通信口RJ45 经网络变压器后与数据物理层PHY 芯片通信,支持数字量模块在现场设备组网中线性连接,完成EtherCAT数据帧在通信物理层进行传输。网络变压器的作用是把PHY 芯片转发出来的差分信号用差模耦合的线圈滤除差模信号以增强信号传输,还可以隔离不同电压网络设备之间的影响。
控制芯片硬件具备以下特点:双端口内存DPRAM、数据传输通道的同步管理器SM(sync manager)、存储器管理单元FMMU、支持周期过程数据的配置和逻辑数据区域映射关系的建立。通信物理层数据传输PHY 芯片选用KSZ8081 型号,支持标准MII 串行接口,与控制芯片实现EtherCAT协议数据帧的数据交互。在用户应用层进行数据逻辑处理,通过控制GPIO 外设将控制数据传输至数字量信号输出通道,同时检测数字量输入通道状态,完成数据交互,实现模块功能。
EtherCAT 数字量模块设计选择内部集成协议处理芯片的单颗控制器方案,因此硬件电路设计中只需关注与物理层数据收发芯片PHY 和用户应用功能的电路设计即可。
1.2.1 控制芯片和PHY 通信设计
控制器和物理层数据收发芯片PHY 之间的硬件线路如图2 所示,模块内实现与PHY 通信驱动后,当数据帧经MII 总线到达PHY 芯片后会自动收发至对应数据区域。
图2 控制芯片与PHY 通信
1.2.2 数字量模块输入输出电路设计
作为EtherCAT 总线通信的数字量模块,在机床实际加工过程中主要是对外部信号的输入通道检测,和外部执行机构的输出信号的控制。输入输出通道在模块上以端子板的形式提供给用户接线使用,设计输出控制电路和输入检测电路如图3 和图4 所示,对信号存在滤波和隔离,保证信号稳定,防止信号失真。
图3 输入信号检测电路
图4 输出信号控制电路
1.2.3 读写EEPROM 电路
数字量模块内部存在如版本号、校验信息、通信配置信息等,以支持标准EtherCAT 主站的自动扫描与重启等功能,因此该模块需支持掉电保持存储区域EEPROM 的读写操作,具有掉电存储属性的数据对象由EEPROM 保存,设计操作EEPROM电路如图5 所示。
图5 EEPROM 操作电路
1.2.4 电压转换电路
数字量模块电源设计是24 V 直流电进入后会给硬件设计中的元器件进行供电,内部控制器和EEPROM 工作电压均是3.3 V,输入输出通道的电压则是24 V,为了提高电压转换效率,设计电压转换电路,如图6 和图7 所示,将24 V 电压经过两次电压转换至3.3 V,转换成各元器件工作所需的低电压。
图6 带隔离24 V 转5 V 电路
图7 5 V 转3.3 V 电路
模块内部软件逻辑主要实现两部分功能,一是基于片上资源及外设实现功能逻辑;二是实现EtherCAT应用层协议栈和从站状态机切换。因此在软件设计架构上采用分层和模块化的设计思路将软件分为两层:驱动层和应用层,软件程序分为主循环程序和中断服务函数程序[11],根据实现功能应用又将应用层划分为用户逻辑处理和协议数据处理,实现整个数字量模块的控制,如图8 所示。
图8 软件架构设计
驱动层中串口驱动用作调试与固件升级;中断驱动中进行数据帧的读写和逻辑处理;定时器驱动中计数,作为模块状态显示指示灯闪烁频率的控制;以太网驱动即控制芯片通过标准RJ45 网口进行数据收发。
用户逻辑处理具有协议栈处理模块、数字量通道控制模块、外设初始化模块。通道控制模块包含通道信号状态、通道输出控制和输入反馈处理模块[12]。协议数据处理中只有 EtherCAT 从站状态机和对输入输出信号量进行周期处理;微处理器从数据存储区读取主站发送给从站的数据,从站也会将现场检测反馈数据与状态写入到ESC 中的数据存储区中,如图9 实现主从通信的数据传输。
图9 协议数据交互流向
数字量模块上电后进行外设初始化、驱动使能、参数配置通信建立等操作后与主站端建立通信,进入通信状态机处理非周期任务的主循环和周期数据刷新的中断任务,模块软件主程序执行流程如图10 所示。
图10 主程序执行流程图
数字量模块与主站建立通信后,应用程序会在主站数据帧到达并接收完进入缓存区后触发中断,进入中断服务函数调用过程数据处理函数,将主站端控制数据从缓存区取出,进行数字量输出逻辑处理后,将数字量输入反馈数据和相应逻辑处理结果写入输出对象数据区域中,完成模块控制对象的数据交互。当主从站通信建立后,便会按照设置的同步周期数值大小周期性进行上述流程实现数据对象的周期传输。数据帧交互和过程数据处理流程如图11、12 所示。
图11 周期数据对象处理流程图
图12 过程数据周期传输示意图
将数字量输入输出模块与EtherCAT 主站Twin CAT 连接[13],上电后使用TwinCAT 软件进行组态扫描,扫描到设备后能与从站设备建立通信,使得从站模块进入运行状态。
为试验验证此时通信建立与数据刷新的正确性,提前在模块软件逻辑中对初始输入反馈进行直接赋值操作,如图13 所示。
图13 模块过程数据对象赋值
在建立通信后在TwinCAT 软件界面可以看到此时主站端实时接收到从站模块反馈的输入值,即是从站代码中预置反馈值。
使用TwinCAT 主站对输出控制值写入数值,如图14 所示,数据交互过程可知当数据传输到从站后经中断函数处理,在同一周期内将反馈数值回复到主站端;如图15 所示,主站接收到的反馈数值满足从站内软件执行流程,可知当前设计开发的从站数字量模块的数据对象定义,数据读写传输功能均正常。
图14 模块建立通信与数据反馈
图15 数据读写正常
数字量模块数据处理的同步性,会使得当前控制数据和反馈数据能在同一个通信周期内与主站进行交互,满足指令响应一致性、状态反馈及时性[14]。应用在机床加工过程中对测量刀径的数字量信号检测和反馈的实时性对量刀功能的准确性具有重要作用,因此需要对数字量模块响应主站数据帧的同步性进行试验分析。
当主站与数字量模块建立通信后,主站在每个通信周期内依次对数字量模块对象字典变量交替写入数值1 和0,即控制模块输出通道产生交替高低电平,使用示波器测量模块当前输出通道口电平信号的翻转变化频率是否支持和主站在相同同步周期实时刷新。结果图16、图17 所示。
图16 主站设置通信周期500 μs
图17 主站设置通信周期1 000 μs
试验结果表明,从站端在中断代码逻辑中能实时响应控制数据,同时控制对应的输出通道进行对应电平的转换,输出通道电平刷新时间与主站端设置同步周期刷新数据时间一致,则可知设计开发的从站模块数据实时性精度满足同步控制要求[15],对信号量刷新频率满足机床加工现场应用需求[16]。
在数控机床加工中,各运动轴上刀具随着加工过程的进行均会存在一定程度的磨损。当机床刀具磨损加剧后会严重影响加工效率和表面精度,因此在机床加工控制系统中结合开发的数字量模块,设计出测量刀具磨损量的方法,支持用户对刀径进行测量,得到当前刀具磨损量以判断是否需要换刀。
3.3.1 机床量刀试验方案
将EtherCAT 总线数字量模块接到机床控制系统组网中,经刀具表面遮挡后变化的传感器信号量作为模块输入检测信号。使用示波器对机床运动过程中刀具运行至量刀信号有效区域范围内的数字量检测输入信号变化的波形,如图18 所示。
图18 量刀信号变化图
机床控制轴运动至量刀信号检测区域时,刀具自身在旋转,刀齿进入信号测量区域时信号会实时变化,等到刀身完全进入到信号测量区域遮挡住信号时检测信号状态处于稳定,当刀具运动逐渐离开信号测量区域时量刀信号再次出现跳变,因此测量刀具进入信号检测区域到离开信号检测区域移动的距离,即此时刀具的直径大小。
3.3.2 机床量刀计算方法
根据量刀区域信号量变化的波形可知,当检测到数字量信号变化的第1 个上升沿,即刀具进入量刀区域,和信号量变化的最后1 个下降沿,即刀具离开量刀区域,检测状态随数据帧反馈至主站作为触发信号,让主站在同一通信周期内锁存机床控制轴运动方向的驱动器实时位置值。
如图19 所示,测量轴在T1时刻进入测量区域,轴反馈位置是S1(脉冲计数);轴在T2时刻离开测量区域,轴反馈位置是S2(脉冲计数)。
图19 机床加工试验
此时数控机床上轴运动采用的是外部光栅尺作为位置反馈信号,光栅尺参数是脉冲计数N为25 000时,机床加工平面轴运行导轨的行程P是10 mm,由轴运动位移计算刀具直径D公式如下:
根据此时测量刀径值计算与刀具原直径值的差值,即此时加工刀具的磨损量。
3.3.3 机床量刀测试结果
使用上述机床量刀测试方案在轴速1.5 mm/s 下进行量刀功能试验,结果见表1。
表1 机床量刀测试结果
已知当前机床主轴刀径为3.175 mm,根据表1刀径测试结果计算磨损量可知此时机床加工刀具的磨损量平均值是0.034 7 mm。因为刀齿在各方向的磨损不定,因此不能简单使用测量工具对刀径某方向进行测量,选择将刀具放入德国数控系统SIEB &MEYER 中进行量刀功能测试,得到刀径测量值范围是3.142~3.155 mm,计算刀具磨损量0.020~0.033 mm,与采用数字量模块反馈信号触发锁存轴位置值的测量方案计算得到的磨损量之间误差最大值为14.7 μm,满足机床量刀功能需求。
本文基于EtherCAT 总线开发设计数字量从站模块,从模块整体方案,硬件设计和软件程序执行流程对模块的开发过程进行研究,并通过与TwinCAT主站配合验证建立通信与数据传输的正确性,确认研发设计的EtherCAT 通信数字量模块在通信建立,数据传输、逻辑处理等功能均使用正常,且将开发的数字量模块通信实时性应用在机床加工过程中测量刀具的磨损量,测量结果误差14.7 μm,满足工艺需求。
后期可扩大数字量模块在机床加工中的应用场景,如硬件限位信号检测、水阀气阀控制等操作上,同时也可将该模块开发设计思路应用在其他信号类型模块开发上,如总线式模拟量模块、温度检测模块等,以适用机床不同工艺加工场景下的应用需求。