一种以太网系统功能块的实时执行调度方法与流程

文档序号:17923591发布日期:2019-06-15 00:16阅读:359来源:国知局
一种以太网系统功能块的实时执行调度方法与流程

本发明涉及执行调度技术,特别是涉及一种以太网系统功能块的实时执行调度方法。



背景技术:

EPA(Ethernet for Plant Automation)工厂自动化以太网是一种由中国自主研发的面向控制系统的实时以太网技术,已经被现场总线国际标准IEC61158和实时以太网国际标准IEC61784收录。目前,EPA已经广泛应用于电力、化工、机械、采矿、石油等多个领域。

作为一种网络控制系统,EPA通过将控制功能下放到现场设备的功能块中来实现网络环境下的分布式测量与控制。EPA系统中分布在不同EPA设备中的多个功能块组成一个控制回路,各功能块通过EPA通信相互连接以完成控制功能。各功能块的执行次序存在逻辑关系,前序功能块的输出通过EPA报文传输给后序功能块作为输入,后序功能块接收EPA报文后,对报文承载的数据进行处理。由于EPA网络中周期报文和非周期报文都必须在通信宏周期中各自的时间片内传输,故通信周期为EPA网络的通信宏周期;但各实际应用中功能块的执行周期则为程序循环周期。通常情况下,通信宏周期比程序循环周期大许多倍,这使功能块在通信宏周期中会执行多次,导致多个携带其输出数据且发往同一目的功能块的报文产生。当通信时间片未到时,这些报文在发送队列中不能传输;而通信时间片到达时,这些报文又被依次传输至同一目的功能块,致使旧数据被新数据覆盖而得不到处理。

由此可见,现有技术中,功能块执行调度问题导致了功能块的无效执行和数据的无效传输,增加了系统的计算负荷和通信负荷,严重降低了系统性能。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种提高传输效率、增强系统性能、降低系统计算负荷与通信负荷的以太网系统功能块的实时执行调度方法。

为了达到上述目的,本发明提出的技术方案为:

一种以太网系统功能块的实时执行调度方法,包括如下步骤:

步骤1、在每个EPA设备中设置一个定时器;将每个EPA设备的通信宏周期T均被划分成两部分:通信时间片和功能时间片;其中,通信时间片为周期报文与非周期报文的传输时间片,功能时间片包括用于接收并处理非周期报文的非周期报文时间子片、用于执行功能任务的功能任务执行时间子片;获取通信时间片开始时间。

步骤2、更新定时器实时设定值。

步骤3、判定是否接收到结束指令:如果是,则结束所有任务;如果不是,则在定时器根据定时器实时设定值被触发时,获取本地的当前时间G。

步骤4、判断i=n是否成立:如果是,则执行步骤5;如果不是,则执行6;其中,n为EPA网络中的EPA设备总数,i为EPA设备序号。

步骤5、判断Di≤MOD(G,T)<B是否成立:如果是,则所述当前时间位于通信时间片内,获取功能时间片开始时间、执行通信任务,同时设置逻辑标识U=1、V=1后返回步骤2;如果不是,则所述当前时间位于功能时间片内,之后,执行步骤7;其中,MOD(G,T)=MOD(G/T),MOD(·)为求余函数;Di为第i个EPA设备的周期报文传输时间偏离量,B为EPA网络非周期报文传输时间偏离量。

步骤6、判断Di≤MOD(G,T)<Di+1是否成立:如果是,则所述当前时间位于通信时间片内,获取功能时间片开始时间、执行通信任务,同时设置逻辑标识U=1、V=1后返回步骤2;如果不是,则所述当前时间位于功能时间片内,之后,执行步骤7;其中,Di+1为第i+1个EPA设备的周期报文传输时间偏离量。

步骤7、判断B≤MOD(G,T)<T是否成立:如果是,则设置标识U=0,获取非周期报文传输结束时间、接收并处理非周期报文,之后返回步骤2;如果不是,则判定标识U=1是否成立:如果是,则表示非周期报文在当前通信宏周期中尚未传输,获取非周期报文传输开始时间,之后执行步骤8;如果不是,则表示非周期报文在当前通信宏周期中已传输,获取通信时间片开始时间,之后执行步骤8。

步骤8、判断V=1是否成立:如果是,则表示功能任务在当前通信宏周期中尚未被执行,检查周期报文接收队列,根据从周期报文接收队列中提取的信息更新功能块参数,之后执行功能任务、设置逻辑标识V=0,返回步骤2;如果不是,则表示功能任务在当前通信宏周期中已执行,返回步骤2。

综上所述,本发明所述以太网系统功能块的实时执行调度方法中,通过对通信宏周期的时间片划分,通过定时器触发的中断模式实现了功能块的实时执行调度方法。由于功能任务和通信任务均比较耗时,为了避免处理器被中断过久,本发明在定时器的中断处理程序中只进行功能时间片开始时间、通信时间片开始时间等时间的计算以及定时器的更新等工作。本发明在没有改动EPA系统确定性通信调度策略的前提下,通过对功能块的执行调度,使EPA系统中用户层的功能块执行与链路层的数据通信达成了周期同步,避免了功能块的无效执行和数据的无效传输,有效降低了EPA系统的通信负荷和计算负荷,从而提高了系统的运行效率和通信实时性能。

附图说明

图1为本发明所述以太网系统功能块的实时执行调度方法的流程示意图。

图2为本发明中通信宏周期时间片的划分结构示意图。

图3为实施例中EPA实时以太网系统的组成结构示意图。

图4为实施例中各设备内功能块组成的控制回路的组成结构示意图。

图5为实施例分别采用本发明方法与现有技术后通信时间片及通信宏周期调整结果对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。

图1为本发明所述以太网系统功能块的实时执行调度方法的流程示意图。如图1所示,本发明所述以太网系统功能块的实时执行调度方法包括如下步骤:

步骤1、在每个EPA设备中设置一个定时器;将每个EPA设备的通信宏周期T均被划分成两部分:通信时间片和功能时间片;其中,通信时间片为周期报文与非周期报文的传输时间片,功能时间片包括用于接收并处理非周期报文的非周期报文时间子片、用于执行功能任务的功能任务执行时间子片;获取通信时间片开始时间。

图2为本发明中通信宏周期时间片的划分结构示意图。如图2所示,EPA设备D1~D5的每个通信宏周期T均被划分成通信时间片和功能时间片两部分。本发明中,所述通信宏周期其中,Si为第i个EPA设备的通信时间片;NT为非周期报文时间子片。

步骤2、更新定时器实时设定值。

步骤3、判定是否接收到结束指令:如果是,则结束所有任务;如果不是,则在定时器根据定时器实时设定值被触发时,获取本地的当前时间G。

步骤4、判断i=n是否成立:如果是,则执行步骤5;如果不是,则执行6;其中,n为EPA网络中的EPA设备总数,i为EPA设备序号。

步骤5、判断Di≤MOD(G,T)<B是否成立:如果是,则所述当前时间位于通信时间片内,获取功能时间片开始时间、执行通信任务,同时设置逻辑标识U=1、V=1后返回步骤2;如果不是,则所述当前时间位于功能时间片内,之后,执行步骤7;其中,MOD(G,T)=MOD(G/T),MOD(·)为求余函数;Di为第i个EPA设备的周期报文传输时间偏离量,B为EPA网络非周期报文传输时间偏离量。

步骤6、判断Di≤MOD(G,T)<Di+1是否成立:如果是,则所述当前时间位于通信时间片内,获取功能时间片开始时间、执行通信任务,同时设置逻辑标识U=1、V=1后返回步骤2;如果不是,则所述当前时间位于功能时间片内,之后,执行步骤7;其中,Di+1为第i+1个EPA设备的周期报文传输时间偏离量。

步骤7、判断B≤MOD(G,T)<T是否成立:如果是,则设置标识U=0,获取非周期报文传输结束时间、接收并处理非周期报文,之后返回步骤2;如果不是,则判定标识U=1是否成立:如果是,则表示非周期报文在当前通信宏周期中尚未传输,获取非周期报文传输开始时间,之后执行步骤8;如果不是,则表示非周期报文在当前通信宏周期中已传输,获取通信时间片开始时间,之后执行步骤8。

步骤8、判断V=1是否成立:如果是,则表示功能任务在当前通信宏周期中尚未被执行,检查周期报文接收队列,根据从周期报文接收队列中提取的信息更新功能块参数,之后执行功能任务、设置逻辑标识V=0,返回步骤2;如果不是,则表示功能任务在当前通信宏周期中已执行,返回步骤2。

实际应用中,周期报文中含有功能块执行所需的数据,故需要检查周期报文接收队列并从中提取功能执行所需数据,并更新功能块参数。这部分内容为现有技术,此处不再赘述。

本发明中,标识U是非周期报文是否已经在本通信宏周期中发送的逻辑变量;标识V是功能任务是否已经在本通信宏周期中执行的逻辑变量。

本发明步骤1与步骤7中,所述接收并处理非周期报文,具体包括如下步骤:在非周期报文时间子片内,第i个EPA设备接收其他EPA设备发送的非周期报文以获取其他EPA设备声明的优先级,检查本EPA设备中的非周期报文传输列表,判断在所有EPA设备声明的优先级中本EPA设备所声明的优先级是否最高:如果是,则本EPA设备取得非周期报文传输权,之后传输非周期报文;如果不是,则本EPA设备不能取得非周期报文传输权。

本发明步骤1与步骤7中,所述传输非周期报文具体为:EPA设备根据取得的非周期报文传输权,在通信时间片内将本设备所声明优先级的非周期报文依次传输到网络上,同时将包含有非周期报文传输队列中待传输非周期报文的最高优先级的非周期报文传输结束声明传输到网络上。

本发明步骤1与步骤8中,所述执行功能任务具体为依次扫描和执行设备中所有需要EPA通信的功能块。

本发明中,通信宏周期是循环往复到达的,故EPA设备是在循环往复到达的通信时间片与功能时间片中分别执行通信任务和功能任务的。

本发明中,EPA设备为支持EPA协议的嵌入式控制器,其采用AT91RM9200处理器、8M的FLASH、32M的SDRAM和10/100Base-T型以太网,运行裁剪配置的ARM Linux内核操作系统,在其通信协议栈的用户层和链路层中应用本发明的技术方案实现功能执行调动方法。

总之,本发明所述以太网系统功能块的实时执行调度方法中,通过对通信宏周期的时间片划分,通过定时器触发的中断模式实现了功能块的实时执行调度方法。由于功能任务和通信任务均比较耗时,为了避免处理器被中断过久,本发明在定时器的中断处理程序中只进行功能时间片开始时间、通信时间片开始时间等时间的计算以及定时器的更新等工作。本发明在没有改动EPA系统确定性通信调度策略的前提下,通过对功能块的执行调度,使EPA系统中用户层的功能块执行与链路层的数据通信达成了周期同步,避免了功能块的无效执行和数据的无效传输,有效降低了EPA系统的通信负荷和计算负荷,从而提高了系统的运行效率和通信实时性能。

本发明中,步骤5中,所述功能时间片开始时间为T1=Si+Di-MOD(G,T);其中,Si为第i个EPA设备的通信时间片。

步骤5与步骤6中,所述执行通信任务为传输周期报文与非周期报文,即在通信时间片的时间能传输一条以上的完整的周期报文或非周期报文时,按照进队先后顺序依次传输周期报文传输队列中对应的一条以上的完整的周期报文,并将非周期报文传输队列中的非周期报文按照优先级顺序依次传输到网络上;在通信时间片的时间不够传输一条以上的完整的周期报文或非周期报文时,将非周期报文传输结束声明传输到网络上,之后停止通信任务执行;非周期报文传输结束声明包含非周期报文传输队列中待传输非周期报文的最高优先级。

步骤7中,所述非周期报文传输结束时间为T2=NT+B-MOD(G,T);其中,NT为非周期报文时间子片。步骤7中,所述非周期报文传输开始时间为T3=B-MOD(G,T)。

步骤1中,所述通信时间片开始时间具体为:在i=n的情况下,当Di≤MOD(G,T)<B时,所述通信时间片的开始时间为T0=T+Di-MOD(G,T);当MOD(G,T)<Di时,所述通信时间片的开始时间为T0=Di-MOD(G,T);当MOD(G,T)≥B时,所述通信时间片的开始时间为T0=Fi+B-MOD(G,T);其中,Fi表示功能时间片。

步骤1中,所述通信时间片开始时间具体为:在i≠n的情况下,当Di≤MOD(G,T)<Di+1,所述通信时间片的开始时间为T0=T+Di-MOD(G,T);当MOD(G,T)<Di时,所述通信时间片的开始时间为T0=Di-MOD(G,T);当MOD(G,T)≥Di+1时,所述通信时间片的开始时间为T0=Fi+Di+1-MOD(G,T)。

步骤7中,所述通信时间片的开始时间为T0=Di-MOD(G,T)。

本发明中,步骤8中,所述执行功能任务之前还包括如下步骤:

步骤a、在第i个EPA设备的所述功能任务启动时,获取功能任务开始时间Lti。

步骤b、第i个EPA设备在执行完所述功能任务时,获取功能任务结束时间Lpi。

步骤c、根据功能任务开始时间Lti和功能任务结束时间Lpi,获取第i个EPA设备的所述功能任务执行实时时间Ci=Lpi-Lti。

步骤d、判断Fi-NT≥Ci是否成立:如果不是,则表示步骤1中划分的第i个EPA设备的所述功能任务执行时间子片无法满足功能任务的执行,向第i个EPA设备所属上位机发送时间片设置报警报文,请求重新划分时间片;如果是,则表示步骤1中划分的第i个EPA设备的所述功能任务执行时间子片能满足功能任务的执行。

在功能时间片中,功能任务的执行与非周期报文的传输是并行进行的。为了保证非周期报文的顺利传输,非周期报文传输的优先级要高于功能任务执行的优先级。实际应用中,非周期报文的传输量随机性较大,当EPA网络中非周期报文的传输量比较大的时候,功能任务在执行过程中会被非周期报文的传输经常打断,无法保证有效的、确定的功能任务执行时间。由此,步骤a~步骤d对各EPA设备对时间片的划分必须满足Fi-NT≥Ci。

本发明中,所述功能时间片Fi满足:Fi=T-Si。

本发明中,各EPA设备的网卡接收到非周期报文后,网卡执行如下步骤:

步骤A、判断接收的非周期报文是否为非周期报文传输结束声明:如果是,则从非周期报文传输结束声明中提取优先级信息,更新本EPA设备的非周期报文传输列表,之后执行步骤B;如果不是,则执行步骤E。

步骤B、判断B≤MOD(G,T)<T是否成立:如果是,说明当前时间在非周期报文时间子片内,则执行步骤C;如果不是,说明当前时间不在非周期报文时间子片内,则网卡结束本次接收报文任务。

步骤C、检查非周期报文传输列表,判断在所有EPA设备声明的优先级中本EPA设备所声明的优先级是否最高:如果是,则由本EPA设备取得非周期报文传输权;如果不是,则本设备不能取得非周期报文传输权,网卡结束本次接收报文任务。

步骤D、根据本EPA设备取得非周期报文传输权,将本EPA设备所声明优先级的非周期报文依次传输到网络上,同时将包含有非周期报文传输列表中待传输非周期报文的最高优先级的非周期报文传输结束声明传输到网络上,之后网卡结束本次接收报文任务。

步骤E、按照EPA协议将非周期报文放入非周期报文接收队列,之后网卡结束本次接收报文任务。

本发明中,第i个EPA设备的周期报文偏离量Di、EPA网络的非周期报文偏离量B与通信宏周期T都是在系统组态时设置的实时调度参数。

本发明中,非周期报文传输结束声明是EPA系统中的广播报文,设备将其非周期报文传输队列中待传非周期报文的最高优先级放入该报文中向全网广播,以此作为设备在非周期报文时间子片内争夺传输权的依据。

实施例

图3为实施例中EPA实时以太网系统的组成结构示意图。如图3所示,该实施例所述EPA实时以太网系统包括1台PC、1个EPA网桥、1个以太网交换机与4台实现了本发明所述方法的EPA设备;这4台EPA设备简称设备1、设备2、设备3、设备4。

图4为实施例中各设备内功能块组成的控制回路的组成结构示意图。如图4所示,设备1~4中均有6个功能块FB1~FB6,共计24个功能块。这24个功能块分别属于3个控制回路,各控制回路之间由虚线框分隔;其中,实线框用于分隔4个EPA设备。

本实施例中,各个设备发送的报文为:设备1发送2个,设备2发送1个,设备3发送3个,设备4发送1个;这些报文都是发送浮点数的信息分发服务报文,长度均为70字节。

实际应用中,EPA网络中的调度参数与其调整范围如表1所示。

表1调度参数与调整范围

表1中,S、B、T分别为各设备的周期报文传输时间偏离量、EPA网络的非周期报文传输时间偏离量和通信宏周期的初始值;PA与PB分别为通信时间片的调整最小值和最大值;NA与NB分别为非周期报文时间子片的调整最小值和最大值。

图5为实施例分别采用本发明方法与现有技术后通信时间片及通信宏周期调整结果对比图。

本实施例中,取系统稳定运行时200个通信宏周期的数据取平均值得到通信时间片自适应调整的结果,系统采用传统方法与本发明方法运行后,通信时间片、宏周期T等参数的变化如图5所示。

根据图5中可知,当采用本发明方法时,4个设备的通信时间片平均下降了大约75%,通信宏周期T的下降幅度约为55%。这说明本方法能够有效降低系统运行时的通信时间片,而通信时间片的降低又反映通信负荷的降低,表明设备中功能块执行次数降低、生成报文数目减少。这是由于传统方法中各设备在宏周期中的报文实际传输数目取决于其程序的循环执行次数,实际传输数目是逻辑传输数目的倍数;而本方法中,各设备报文的实际传输数目则与逻辑传输数目一致。该实施例说明本发明方法有效避免了功能块的无效执行和数据的无效传输,降低了系统的计算负荷和通信负荷,通信负荷的降低可以有效降低系统的网络诱导时延,提高控制性能。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1