基于实时以太网的多轴运动控制网络*

2019-05-07 11:44薛凌云陈庆光
传感器与微系统 2019年5期
关键词:主从时隙线程

胡 凯, 薛凌云, 陈庆光

(杭州电子科技大学 生命信息与仪器工程学院,浙江 杭州 310018)

0 引 言

随着工业自动化的发展,多轴运动控制系统被广泛应用于数控机床、仿生机器人、印刷设备等领域[1,2],且正朝着网络化方向发展[3]。以太网由于具有低成本、开放性好等特点被广泛研究,而传统以太网是一种非确定性的通信调度方式[4],无法满足多轴运动控制系统中数据传输的确定性和实时性要求。美国开发的CSMA/DCR和佩特雷大学研发的GIT-CSMA/CD等协议能够实现确定性通信,但需要修改以太网的MAC层协议[5];通过硬件改进以太网不确定性的方法会使成本大大增加[6]。由于多轴运动控制系统中各节点采用的时钟源不同,节点间时钟同步的精度对提升多轴协同性能具有重要作用[7],在时钟同步算法中,IEEE 1588中的PTP(precision timing protocol)[8]具有易于实现、占用资源少等优点,被广泛应用,但当采用纯软件方法实现时,数据传输时的网卡缓存效应(数据在网络中传输时,首先存在源节点网卡的缓存中,并在网络空闲时发送至目的节点网卡的缓冲区)会影响报文接收时间测量的精确性,导致主从节点时钟同步失败[9]。

本文采取的方法是在以太网MAC层上通过软件调度来达到实时以太网的确定性和实时性通信。采用改进的IEEE 1588中的PTP实现主从节点间的时钟同步,将通信宏周期划分为周期性报文传输时间片和非周期性报文传输时间片,按照时隙划分策略完成分时发送的确定性网络通信,避免了报文冲突造成的不确定延时。

1 多轴运动控制系统网络通信结构

运动控制系统是采用一个主节点个人电脑(PC)协调控制多个从节点(运动控制器),主节点与从节点通过自定义总线连接成分布式网络,网络拓扑图如图1所示。规划控制层中的PC负责网络数据管理以及主从节点间确定性的任务调度,其为系统中任务创建相应的线程,通过管理它们的触发条件,状态转换过程来实现系统任务的有序执行,并对产生的数据进行存储;网络传输层中的数据传输通道,负责数据的发送与接收;运动控制层中的运动控制器通过以太网与主节点连接,其与驱动执行层中的执行机构共同组成了运动控制系统中的一个轴。

图1 系统网络拓扑结构

根据系统任务的时间特性,将其分为周期性任务和非周期性任务,周期性任务指执行时间和触发时刻都被严格约束的任务类型,如主节点发送运动控制指令和从节点反馈运动信息;非周期性任务指没有固定的触发时刻,随机发生的任务类型,如告警事件等。采用传输速度较快、可靠性较低的用户数据报协议(user datagram protocol,UDP)进行周期性报文的传输,必须避免数据传输冲突,文中采用时隙划分的策略避免了冲突。

2 改进的时钟同步技术

为了进行有效的时隙划分,主从节点的高精度时钟同步是必要前提。本文采用的时钟同步算法是在IEEE 1588中的PTP基础上进行改进的。应用PTP实现主从时钟同步主要是通过主节点与从节点进行报文传输,并在发送时刻和接收时刻打上时间戳,由接收方根据时间戳信息计算出主从时钟偏差Offset和网络传输时延Delay并据此完成时钟校正。PTP定义了4种类型报文:Sync(同步报文)、Follow-Up(跟随报文)、Delay-Req(延时测量报文)、Delay-Resp(延时测量响应报文),具体的报文传输流程如图2(a)所示,从节点根据时间戳ti(i=1,2,3,4)并通过式(1)、式(2)计算求得Offset和Delay的值,从节点通过对从时钟加上Offset值以实现主从时钟的一致性

Delay=((t2-t1)+(t4-t3))/2

(1)

Offset=((t2-t1)-(t4-t3))/2

(2)

为了解决网卡缓存效应带来的问题,本文采用握手机制和阻塞的SOCKET套接字进行时钟同步算法中的报文传输,即在连续发送的两条报文之间增加一条接收确认报文,如图2(b)所示,主节点向从节点发送Sync报文并且收到接收确认报文Sync-Ack之后,才会向从节点发送Follow-Up报文,避免了从节点同时接收到两条报文。经过以上过程即完成了一次主从时钟同步,使主时钟和从时钟近似相等,其偏差的大小取决于获取时间戳的精度和网络的稳定性等因素。随着时间的推移,主从时钟偏差会不断增大,可通过周期性地进行上述过程,保持主从时钟同步,周期时间的取值由系统对时钟同步精度的需求决定,本文的研究中以1s为周期。对于高精度时间戳的获取,通过Windows平台下的API接口函数QueryPerformancePrequency()和QueryPerformanceCounter()完成,可以达到1 μs的精度。

图2 改进前后时钟同步原理

3 确定性的任务调度

在多轴运动控制系统中,为了保证数据传输的确定性,本文通过时隙划分使得各轴的数据传输分别位于不同的时隙中,确保每个时刻只有一个从节点与主节点进行网络通信,按照时隙划分的策略实现系统确定性的任务调度。

3.1 时隙划分策略

在运动控制网络中,针对周期性任务和非周期性任务并存的特点,将每个通信宏周期划分为周期性数据通信时间片和非周期性数据通信时间片,其中周期性数据通信时间片用于主节点向从节点发送运动控制指令和从节点向主节点反馈运动信息;通信宏周期的其余部分为非周期性数据通信时间片,用于非周期性任务发生时的数据传输。下一周期发送的指令需要根据上一周期反馈的数据生成,把从节点向主节点反馈数据时间片配置在宏周期的末段,距离下一周期的主节点向从节点发送指令时间片最近,如图3所示,使得新指令的生成能充分利用实时的运动反馈信息,达到更精确的控制效果。在一个主节点与多个从节点通信时,将周期性数据通信时间片按从节点次序划分,只有在每个从节点所属的时间片内,主节点才会与之进行网络通信,避免数据传输冲突。

图3 系统通信网络的时隙划分示意

由于主从节点的时钟同步是包含一定误差的,导致其时标存在偏差,为了保证在每个时隙中主节点和各从节点数据传输不发生冲突,在时隙划分时,必须对时隙留以保护时间,即从时隙起始到数据开始发送之间的发送起始保护时间,以及从数据发送完成到时隙结束之间的发送完成保护时间,各保护时间确保了每个时隙中只有一个从节点和主节点进行网络通信。即

Ts+Te+Td=Td·α

(3)

式中Ts为发送起始保护时间;Te为发送完成保护时间;Td为网络传输时间;α为裕度系数,取大于1的值,反映了时隙的大小,根据经验和大量实验得出。时隙两端的时标影响因素近似相同,有

(4)

3.2 任务调度过程

任务调度就是按照上述时隙划分策略,由时间触发和事件触发任务有序高效执行的过程。主节点向从节点发送运动控制指令以及从节点向主节点反馈数据由定时线程触发,报文处理任务由事件触发,其事件为成功接收到从节点反馈的运动信息,时钟再同步任务由时间和事件共同触发,当到达再同步的时间且无更高优先级的事件发生时,进行时钟再同步,否则在下一个通信宏周期中满足触发条件时进行。系统启动后,对各节点进行配置并完成系统初始化,完成主从时钟同步后,启动定时线程,当各从节点的发送指令时间片到来时,主节点向相应从节点发送运动控制指令;在非周期性数据通信时间片内,对非周期性任务按照优先级进行响应处理;当各从节点的反馈数据时间片到来时,主节点被触发接收相应从节点的反馈数据;经过报文解析及处理后,生成新的运动控制指令,并在下一个通信宏周期中发送至各从节点。按照通信宏周期周期性地执行任务。任务调度机制如图4所示,Periodic Task指被安排在周期性数据通信时间片中执行的周期性任务,Aperiodic Task指被安排在非周期性数据通信时间片中执行的非周期性任务,系统按照任务的类型及优先级进行调度。

图4 任务调度机制

本文针对不同类型的任务,系统创建不同的工作线程,使线程间具有较高的独立性并且减少线程的任务量。系统中主要包含时钟同步类线程、数据通信类线程、数据处理类线程、定时类线程。时钟同步类线程执行的任务是通过采用改进的IEEE 1588中的PTP进行主从时钟同步,在系统初次进行主从时钟同步和满足时钟再同步条件时,触发该类线程的执行;数据通信类线程的任务是实现各节点间数据的交互,当发送指令时间片或反馈数据时间片到达时,触发线程的执行;数据处理类线程的任务是根据反馈的运动信息生成新的运动控制指令;定时类线程的任务是按照系统配置,当到达预设的时刻时,触发相应任务的执行,其控制着整个系统的执行顺序。

4 实验结果

为验证运动控制网络性能,搭建了如图5所示的两轴跟随平台。实验系统为1个主节点和2个从节点组成的多轴运动控制系统。其中,主节点为PC,Windows 7操作系统,处理器为Intel Core i3,CPU主频为2.40 GHz,从节点为运动控制器,通过驱动器控制电机运动。分别进行以下实验,本文开发平台为Visual Studio 2013。

图5 实验装置

1)时钟同步性能实验

采用改进的IEEE 1588中的PTP进行主从时钟同步,主节点以1 s为周期与从节点进行周期性时钟同步,共进行500次实验,时钟同步后主从时钟偏差(Offset)的波动和频率分布如图6所示,Offset在一定范围内波动,平均值为5.79 μs,标准差为7.43 μs,同步性能可靠,可有效应用于多轴运动控制系统中。

图6 时钟同步性能实验结果

2)传输时延测量实验

在主节点和从节点分别记录数据发送和接收时刻的时间戳,其差值作为传输时延的测量值,分别进行500次实验,时延结果波动如图7所示,其均值为255.8 μs,标准差为5.24 μs,满足系统实时性要求。

图7 传输时延波动

3)两轴同步跟随性能实验

实验选定正弦曲线作为运动轨迹,由从节点2对从节点1进行运动跟随,效果如图8所示,图中右上角部分为跟随起始阶段的局部放大图。用节点1与节点2的各点运动位置做差值运算,计算得出平均跟随误差为0.63 rad,具有良好的跟随性能。

图8 2个从节点的跟随曲线

5 结束语

为了解决多轴运动控制网络中数据传输的不确定性和非实时性,本文提出了一种基于时隙划分的确定性任务调度方案,并对IEEE 1588中的PTP进行了改进,实现主从节点时钟同步。通过时钟同步性能实验和两个从节点的跟随实验等验证了文中调度方案的有效性。

猜你喜欢
主从时隙线程
基于C#线程实验探究
基于时分多址的网络时隙资源分配研究
基于国产化环境的线程池模型研究与实现
复用段单节点失效造成业务时隙错连处理
FANUC系统PROFIBUS主从功能应用
浅谈linux多线程协作
一种高速通信系统动态时隙分配设计
时隙宽度约束下网络零售配送时隙定价研究
基于主从控制的微电网平滑切换控制策略研究
基于飞行试验数据的仿真模型主从一体化检验