1 引言
以太网具有传输速率高、 协议标准统一、 成本低等优势,在工业网络控制系统中得到了越来越高的关注,以太网的实时性研究成为了热点[1, 2],列入IEC 61784-2(2010)国际标准中的实时以太网技术已有13种[3]. 与传统以太网相比,实时以太网主要是通过采用一定的网络调度算法或硬件设备,解决节点对网络争用而产生的时延和丢包问题,保证数据传输的实时性、 确定性和可靠性[4, 5].
采用时隙(time slot)来避免数据碰撞是比较主流的网络调度方案[6, 7]: Profinet IRT将每个传输周期分为IRT通道和开放通道,在IRT通道内传输实时性要求苛刻的周期性数据[8]; Ethernet POWERLINK的每个传输周期分为了同步通信阶段和异步通信阶段,在同步通信阶段中,主节点在特定的时隙内依次访问每个从节点,从节点依次作出响应并发送周期性的实时数据信息[9]; SERCOS III的每个传输周期分为了实时通道和非实时通道,在实时通道内用于发送周期性的数据信息,主节点和从节点的信息交互都在已分配好的时隙内进行[10]; EtherCAT通过自主研发的芯片实现逻辑环形拓扑结构,采用“数据列车”的数据传输模式,为每个节点分配一定时隙的EtherCAT报文,并通过现场总线内存管理单元FMMU(fieldbus memory management unit)实现逻辑地址与物理地址的映射关系,便于节点数据直接存入数据列车对应的时隙之中[11]; EPA将每个传输周期分为周期报文阶段和非周期报文阶段,在周期报文阶段内各节点在自己的时隙内发送周期性的数据信息,并发送非周期数据声明报文,用于确定非周期阶段数据发送的优先级[12]. 在上述实时以太网技术中均采用时间触发机制(time-triggered),将传输周期分为若干的时隙,分别用于传输周期数据和非周期数据,从而避免数据碰撞情况的发生,这种网络亦可称为时分调度以太网[13].
节点中的任务周期通常是固定不变的,而时隙的分配是随所有的任务而不断变化的,否则网络带宽利用率会很低[14],从而导致数据包生成时刻与时隙开始时刻之间产生排队时延,文[15]分析并指出改进调度算法对减小数据排队时延起着关键作用. 由于传统时分调度以太网仅从网络调度的层次去分配各数据包的时隙,但无法对任务执行过程进行控制,因而不能解决排队时延问题.
通过对时延与时隙的关系[16]、 时延与控制系统性能[17]的分析可知,理想情况下每个数据包生成后应该能够立即进行传输,并且高优先级的任务应优先传输. 所以需要控制数据包的生成时间,即对任务执行时间和数量的控制,虽然这会导致任务周期的微小波动,但只要时变周期不超过一定的上限,则系统仍然是可以保持稳定的[18, 19].
本文从任务执行的角度考虑,对周期数据的传输进行分析讨论,将数据包生成过程与数据包传输过程二者相结合进行建模与分析,提出时分任务调度算法(time division task scheduling,TDTS). 该算法通过对数据包中任务数量的优化和任务起始时刻的调度,来控制数据包的生成时间,使得每个数据包生成的时间恰好处于它本身时隙到来的时间,可以立即传输数据. 与传统时分调度以太网相比,本文方法不仅避免了数据碰撞的情况,而且消除了数据包排队时延,实时性得到了明显的改善. 而且本文方法无需对通讯协议和网络设备进行任何的改动,成本低廉、 易于实现.
2 任务数量的优化网络控制系统中的数据帧通常为短帧结构,将多个数据帧合为一个数据包以广播的方式发送至各节点. 本节通过对数据包生成过程和传输过程进行建模与分析,寻找每个数据包中最佳的任务数量,使其在满足传输时间指标J的前提下实现网络吞吐率的最大化.
2.1 数据包生成过程与传输过程建模假设各节点的任务具有相同(或相近)的执行时间,每个任务只产生一个数据帧,数据帧的格式相同,则数据包生成与传输时序图如图 1所示.
设每个数据包由h个数据帧组成,每个任务的执行时间为Tdata,数据打包时间为Tbind,则每个数据包的生成时间Tpacket为
设每个数据帧长度为σ(bit),帧头帧尾信息长度之和为ε,则每个数据包的大小Qpacket为
假设数据包生成后即可传输数据,即无排队时延,则数据包传输过程仅包括传输时延τtranse、 发送时延τsend和时钟裕量τmargin:
传输时延τtranse指信号在介质中进行传输所必要的物理时间,除了因通信距离造成的时延外,本文中该参数还包括前导码及帧间间隔时间,选取各节点间传输时延的最大值.
发送时延τsend由数据包大小Qpacket和网络传输速率ω(bits/μs)所决定:
时钟裕量τmargin是为了保证各节点之间不会因为时钟偏移和时钟抖动现象而导致数据碰撞所设置的时间段[20]. 时钟裕量相当于固定长度的时延,因此通常需要通过时钟同步协议[21]和时钟补偿措施[22]来降低节点间的时钟误差,缩短时钟裕量的设定长度.
于是数据包传输过程所占用的时隙Tslot大小为
从数据包第1个任务开始至数据包传输完毕的总时间Tsend为
数据包传输总时间应满足传输时间指标J的要求:
将式(1)~(5)代入式(6)中得到每个数据包中任务数量h的取值上界hRTmax:
注: 运算符FLOOR[-]表示省略小数求整,下同.
由于每个以太网数据帧要求在64~1 518字节之内,所以每个数据包又存在最小任务数量hslotmin和最大任务数量hslotmax的限制:
注: 运算符CEIL[-]表示小数进位求整,下同.令hmin=hslotmin,hmax=MIN[hslotmax,hRTmax](MIN[-]表示求最小值),则h的取值范围应满足条件(8):
2.2 数据包优化
本小节用于确定在具有最大网络吞吐率的情况下数据包中所包含的任务数量为多少. 假设在某次优化过程中共有nnode个节点需要传输数据,每个节点的任务数量均为hsend个,则每个节点需要发送的数据包数量npacket为
考虑到条件(8),令npacket_min=CEIL[hsend/hmax],npacket_max=CEIL[hsend/hmin],则npacket的取值范围应满足条件:
同一节点的两个相邻的时隙中间会插入nnode-1个时隙,如果当Tpacket>nnodeTslot时,则将会产生一个等待时延τwait,如图 2(a)所示,反之则不会,如图 2(b)所示. 等待时延τwait的大小为
考虑网络吞吐率η:
式中,Tσsend为所有数据的传输时间,其值不变:
Tnet为网络占用总时间:
可知Tnet越小,网络吞吐率则越大. 由于npacket进行了取整处理,所以式(13)属于分段函数. 当npacket_min≤npacket≤ 时,每个npacket分段内具有最大网络吞吐率的h取值为
当npacket_max≥npacket>时,即hmin≤h<,每个h分段内具有最大网络吞吐率的npacket取值为
根据式(14)~(15)可求得各小区间内具有最大网络吞吐率的h与npacket的组合,将这些组合分别代入式(11)~(13)中,η为最大值时的h即为本次优化的最优解. 2.3 任务数量的最优分割
在2.2节中的优化算法要求所有节点具有相同的任务数量hsend,但实际中各节点的任务数量可能各不相同,所以需要对任务数量分割后进行多次优化. 由于以太网数据帧有最大帧和最小帧的限制,如果任意的选取每次优化时的任务数量,则很可能会产生较多的空信号hnull,如图 3所示.
传输空信号会降低网络吞吐率,因此需要寻找一组最优分割组合使得所产生的空信号数量最少,本文提出的方法为:
(1) 任务数量排序: 假设某周期时刻共有nnode个节点需要发送数据,将每个节点待执行的任务数量按照由小到大的顺序进行排列,并记为hx:
(2) 将所有任务进行分段:1) 若h1x>hmax,则应将hmax单独作为一个分段.
2) 若hi+1x-hix≥2hmin,则将本分段起始位置至hix单独作为一个分段.
3) 将每个节点剩余任务数量减去前一个分段数量hix后,再继续进行划分,直至hnnodex为止分段完毕.
(3) 对每段进行分割:
1) 记每个分段中的最小的任务数量为h1x,若h1x≥hmin,则起始分割从h1x开始; 否则,从hmin开始.
2) 记每个分段中的最大任务数量为hmdx,则分割的最大值为hmdx+hmin-1.
3) 每两个相邻分割应满足hv+1send+hvsend≥hmin.
4) 统计h1x与hmdx+hmin-1之间所有符合条件3)的分割组合. 记分割位置分别为hsend,共有nsend次分割:
(4) 寻找最优分割组合: 按照式(16)统计每个分割组合中所产生的空信号数量,所产生空信号数量最少的一组作为每次优化时的任务数量hsend:
3 任务时刻的调度
第2节给出了数据包中任务数量的优化算法,解决了各节点的任务该如何去发送的问题,但这些任务该何时开始执行,这就需要进行调度安排,本节则给出该调度算法.
3.1 虚拟子网在第2节中所介绍的优化方法需要所有任务具有相同(或相近)的执行时间,而实际中各任务的执行时间可能是存在差异的,所以需要根据任务执行时间和任务优先级等因素划分出若干的虚拟子网,然后对每个虚拟子网进行优化和调度,如图 4所示.
调度并不是具体安排每个任务的执行时间,而是安排数据包的起始任务时间和任务的数量,而具体执行哪一项任务则是可以根据所有任务当前的优先级进行灵活的安排,任务优先级可以由速率单调算法RM或最短时限优先算法EDF等来确定[23]. 因为在同一个虚拟子网中,这些任务具有相同的执行时间和数据帧格式,所以任务执行次序的先后不会改变数据包的大小和生成时间,该调度算法可以实现任务的动态调度.
3.2 各时刻任务数量的统计根据任务执行周期对每个虚拟子网各节点在不同时刻下待执行的任务数量进行统计. 假设一个控制网络中共有n个节点:
任务周期共有m种(由小到大排列):
节点k在不同的任务周期的信号数量分别为
统计任务周期Sp中所有元素各种不同的组合情况,然后分别求出每种组合的最小公倍数,将所有不同的公倍数数值按照由小到大的顺序进行排列,得到公倍数任务周期Cp:
Cwp时刻是公倍数任务周期Cp的最后一个元素,然后将从Cwp+C1p时刻执行任务,这样便可以得到各节点在任何时刻待执行的任务数量.
用符号h(Nkd,Cip)表示第k个节点Nkd在公倍数任务周期Cip时所需执行的任务数量,将节点与任务周期写成矩阵的形式:
矩阵的列向量即为每个公倍数任务时刻下各节点待执行的任务数量h(Cip):
3.3 任务调度算法对3.2节中公倍数任务周期Cp内的每个周期时刻优化后便可得到一系列的数据结果,包括每轮优化的起始时刻Cip,每次优化时的节点数量nvnode,分包数量nvpacket,数据包生成时间Tvpacket,时隙大小Tvslot,等待时延τvwait.
为减少两次优化过程的等待时间,所以在每一轮优化时,将各节点按照信号数量由大到小进行排序,信号数量最多的节点首先进行发送,于是可得到每次优化过程中各节点所对应的排序序位Nv,其中v=1,2,…,nsend,如图 5所示.
设虚拟子网的起始时刻为tstart,其中第1级虚拟子网的起始时刻为0,后续每级虚拟子网的起始时刻为上一级虚拟子网最后一个时隙的结束时刻. 节点k在第i个公倍数任务周期的第1次优化后,数据包首任务起始时刻tk. i. 1packet_s(上角标的第1位表示节点编号k=1,2,…,n,第2位表示周期时刻i=1,2,…,w,第3位表示小优化次数v=1,2,…,nsend)为
数据包生成时刻tk. i. 1packet_e为
时隙起始时刻tk. i. 1slot_s为
时隙结束时刻tk. i. 1slot_e为
在该轮剩余的每次优化中,数据包首任务起始时刻分为两种情况: 当Tk. i. vpacket>nk. i. v-1nodeTk. i. v-1slot时(见图 6中第1次与第2次优化过程),本次数据包的起始时刻tk. i. vpacket_s为上一次数据包的结束时刻,即:
当Tpacketk. i. v≤nk. i. v-1nodeTk. i. v-1slot时(见图 6中第2次与第3次优化过程),起始时刻tk. i. vpacket_s则需要根据时隙进行推算:
若在某次优化中nk. i. vpacket≥2,则本次优化需进行多次发送数据,每次的任务起始时刻同样分为两种情况,当τk. i. vwait>0时(如图 2(a)所示),本次数据包的起始时刻为上一次数据包的结束时刻,即式(21). 而当τk. i. vwait≤0时(如图 2(b)所示):
根据式(17)~(23)通过不断的循环迭代运算便可得到整个公倍数任务周期Cp内的数据包首任务起始时刻tpacket_s的调度时刻表.
4 仿真与分析本节通过Matlab环境下的TrueTime[24, 25]工具箱对本文提出的时分调度任务算法进行仿真,并与传统时分调度网络进行对比.
对两种调度算法搭建如下仿真环境,网络中共有8个节点,采用总线式拓扑结构,各节点设定有时钟偏移. 共有4种任务周期(10 ms、 50 ms、 100 ms、 150 ms),每个节点包含若干个任务,其中在节点1和节点8中各包括一个直流电机的转速控制任务,传递函数为 . 任务周期为10 ms,控制器位于节点2中,采用PID控制,每0.5 s改变一次阶跃信号. 本文分别在10 Mb/s、 100 Mb/s和1 000 Mb/s的传输速率下,对各任务的时延情况及这两个电机的同步误差进行仿真对比,其中在10 Mb/s和100 Mb/s时以太网最小帧为64 Byte,在1 000 Mb/s时为640 Byte.
4.1 数据包时延对比分析首先对100 Mb/s下的网络时序图进行对比,图 6为传统时分调度网络各节点的第一个传输周期时序图,各节点时隙是依次排列的,节点8要等待前7个节点都发送完数据后才能开始传输数据,会产生很大的排队时延. 图 7为本文方法所生成的网络时序图,从中可以看出,本文在没有对网络协议和硬件设备做任何修改的情况下,仅通过改变节点任务的执行过程,实现了对网络的调度,避免了数据包在传输过程中发生碰撞的情况. 将传统方法中的时间片拆分成多个数据包进行传输,有利于对高优先级任务的调度.
对各数据包的起始时间及其对应的传输结束时间进行统计,得出在各传输速率下数据包的平均时延(图 8). 从图中可以看出,本文方法下对任务时延起到了很大的改善作用,尤其是在低速率下(10 Mb/s)效果时分明显.
4.2 电机同步误差对比分析通过对电机同步误差的对比来说明本文算法的优越性. 由于两个电机系统完全相同,控制参数和算法也完全一致,因此在10 Mb/s、 100 Mb/s和1 000 Mb/s的网络速率下仿真测试均具有与图 9相似的状态响应图,而电机的同步误差分别如图 10~12所示.
从图 10中可以看出,在10 Mb/s下,传统方法中电机的同步误差最大值为0.09左右,同步时间大概需要250 ms左右. 而在本文方法下的最大误差仅为0.01,同步时间仅需100 ms左右. 在100 Mb/s(图 11)和1 000 Mb/s(图 12)下也同样具有类似的结果. 可见本文方法与传统方法相比同步误差低,同步时间短,效果更为良好.
5 结论本文首先分析了传统时分调度网络的不足之处,然后从任务执行的角度着手,给出了时分调度任务算法TDTS. 该算法不需修改网络协议或是添加硬件设备,而是将数据包生成过程与传输过程相结合,通过对各节点的任务执行时间和数量的优化与调度,实现每个数据包生成后即可进行数据传输,不会产生排队时延,传输过程中也不会发生数据碰撞,提高了数据传输的实时性和可靠性,是一种面向网络传输的任务调度算法.
[1] | 胡毅, 于东, 刘明烈. 工业控制网络的研究现状及发展趋势[J]. 计算机科学, 2010, 37(1): 23-27. Hu Y, Yu D, Liu M L. Present research and developing trends on industrial control network[J]. Computer Science, 2010, 37(1): 23-27. |
[2] | Gupta R A, Chow M Y. Networked control system: Overview and research trends[J]. IEEE Transactions on Industrial Electronics, 2010, 57(7): 2527-2535. |
[3] | International Electrotechnical Commission. IEC 61784-2 Edition2(2010), Industrial communication networks-profiles-part 2: Additional fieldbus profiles for real-time networks based on ISO/IEC 8802-3[S]. Geneva, Switzerland: IEC. |
[4] | Decotignie J D. Ethernet-based real-time and industrial communications[J]. Proceedings of the IEEE, 2005, 93(6): 1102-1118. |
[5] | 冯冬芹, 金建祥, 褚健. 工业以太网关键技术初探[J]. 信息与控制, 2003, 32(3): 219-224. Feng D Q, Jin J X, Chu J. Study on industrial ethernet[J]. Information and Control, 2003, 32(3): 219-224. |
[6] | Felser M. Real-time Ethernet-Industry prospective[J]. Proceedings of the IEEE, 2005, 93(6): 1118-1129. |
[7] | Neumann P. Communication in industrial automation-What is going on[J]. Control Engineering Practice, 2007, 15(11): 1332-1347. |
[8] | Hanzalek Z, Burget P, Sucha P. Profinet IO IRT message scheduling with temporal constraints[J]. IEEE Transactions on Industrial Informatics, 2010, 6(3): 369-380. |
[9] | Erwinski K, Paprocki M, Grzesiak L M, et al. Application of ethernet powerlink for communication in a linux RTAI open CNC system[J]. IEEE Transactions on Industrial Electronics, 2013, 60(2): 628-636. |
[10] | Hu X, Huan J, Liu Y Q. Motion control system using SERCOS over EtherCAT[J]. Procedia Engineering, 2011, 24: 749-753. |
[11] | Vitturi S, Peretti L, Seno L, et al. Real-time Ethernet networks for motion control[J]. Computer Standards & Interfaces, 2011, 33(5): 465-476. |
[12] | Li L U, Feng D Q, Chu J. Improving the real-time performance of Ethernet for plant automation (EPA) based industrial networks[J]. Journal of Zhejiang University, 2013, 14(6): 433-448. |
[13] | 刘明哲, 徐皑冬, 毕宇航. 确定性实时以太网通信协议研究[J]. 仪器仪表学报, 2005, 26(8): 505-507. Liu M Z, Xu A D, Bi Y H. The study of deterministic real-time ethernet communication protocol[J]. Chinese Journal of Scientific Instrument, 2005, 26(8): 505-507. |
[14] | Chen X, Azim A, Liu X, et al. DTS: Dynamic TDMA scheduling for Networked Control Systems[J]. Journal of Systems Architecture, 2014, 60(2): 194-205. |
[15] | 姜秀柱, 邓德玖, 冯冬芹. EPA网络三大延迟因素的权重及变化分析[J]. 通信学报, 2012, 33(Z2): 196-200. Jiang X Z, Deng D J, Feng D Q. Analyzing the weights and its variation of the three delays in EPA network[J]. Journal on Communications, 2012, 33(Z2): 196-200. |
[16] | 秦勇, 张军, 张涛. TDMA时隙分配对业务时延性能的影响分析[J]. 电子学报, 2009, 37(10): 2277-2283. Qin Y, Zhang J, Zhang T. Effect of TDMA timeslot assignment on traffic delay[J]. Acta Electronica Sinica, 2009, 37(10): 2277-2283. |
[17] | 刘宁, 仲崇权. EPA网络控制系统时延特性分析[J]. 计算机工程与应用, 2009, 45(3): 30-34. Liu N, Zhong C Q. Analysis on network delay in NCS based on EPA[J]. Computer Engineering and Applications, 2009, 45(3): 30-34. |
[18] | Walsh G C, Hong Y, Bushnell G L. Stability analysis of networked control systems[J]. IEEE Transactions on Control Systems Technology, 2002, 10(3): 438-446. |
[19] | 魏玲, 薛定宇, 鄂大志, 等. 网络控制系统中网络时延与建模分析[J]. 仪器仪表学报, 2008, 29(6): 1323-1327. Wei L, Xue D Y, E D Z, et al. Analysis of network-induced delay and modeling in networked control systems[J]. Chinese Journal of Scientific Instrument, 2008, 29(6): 1323-1327. |
[20] | 鲁立, 冯冬芹, 褚健, 等. 传输时延和时钟同步对以太网控制系统的影响[J]. 控制理论与应用, 2010, 27(6): 793-798. Lu L, Feng D Q, Chu J, et al. Effect of transmission delay and clock synchronization on networked control systems[J]. Control Theory & Applications, 2010, 27(6): 793-798. |
[21] | Jiang W, Robert P. Synchronizing device clocks using IEEE 1588 and blackfin embedded processors[J]. Analog Dialogue, 2009, 43(11): 1-5. |
[22] | 孙韶伟, 周川, 吴慧芳. 一种基于IEEE1588 协议的从时钟自补偿算法[J]. 电子测试, 2009, 10(10): 31-35. Sun S W, Zhou C, Wu H F. Compensate algorithm in slave clock based on IEEE1588 protocol[J]. Electronic Test, 2009, 10(10): 31-35. |
[23] | 黄蜜娜, 仲崇权, 史彦军, 等. 网络控制系统中信息调度的研究进展[J]. 仪表技术与传感器, 2006, 3(1): 28-31. Huang M N, Zhong C Q, Shi Y J, et al. Study and progress of messages scheduling of networked control systems[J]. Instrument Technique and Sensor, 2006, 3(1): 28-31. |
[24] | Cervin A, Henriksson D, Lincoln B, et al. How does control timing affect performance? Analysis and simulation of timing using jitterbug and truetime[J]. IEEE Control Systems Magazine, 2003, 23(3): 16-30. |
[25] | Peng D G, Zhang H, Lin J J, et al. Simulation research for networked cascade control system based on TrueTime[C]//Proceedings of the 8th World Congress on Intelligent Control and Automation (WCICA). Piscataway, NJ, USA: IEEE, 2011: 485-488. |