基于事件图的网络化PLC控制程序编译方法

2014-02-28 10:27陈晨仲崇权
计算机工程与应用 2014年13期
关键词:控制程序结点指令

陈晨,仲崇权

大连理工大学电子信息与电气工程学部,辽宁大连116023

1 引言

大规模网络化PLC控制系统的程序逻辑远比单个PLC结点复杂,设计针对多PLC控制系统的程序建模与编译方法具有重要意义。目前分布式网络化PLC系统编程需要开发人员了解设备拓扑结构,并针对每一个PLC控制器进行单独开发。K.Thramboulidis提出了以分布式功能块为基础的网络化监控以及批处理流程控制系统的实现方法,通过在控制节点的网络层之上扩展各种总线的适配层,实现同种或异种总线设备间功能块的互操作,从而进行分布式应用[1-2]。M ohamed Khalgui等通过UM L语言对控制逻辑进行建模,并自动生成分布式控制程序框架,辅助开发人员进行程序开发[3]。在现有控制程序编译方法中,Liu提出状态空间编译法对控制程序进行化简[4],Xu通过线性矩阵不等式对程序中的混杂变量进行分离[5],尚无一种面向网络的控制程序编辑与编译方法。对于大规模网络化PLC控制系统,应以网络中的设备为整体进行编程编辑,通过程序建模与编译方法对控制逻辑的依赖关系进行分析,将指令与变量分散下载到各控制器中,并自动协调设备间的数据同步,实现控制任务的并行处理。

离散事件系统是分析事件依赖关系的常用工具,广泛应用于各类工程领域之中[6]。M a X和Xie J使用离散事件系统分析网络化控制系统中控制器与执行器的动作特点,并推导网络延时对控制精度的影响[7]。Kwong和Yonge-M allo通过离散事件系统建模进行故障分析与诊断[8]。Tord A lenljung介绍了一种适用于含有如RFID等二进制识别传感器的控制系统的离散事件建模语言[9]。Li等提出了模糊离散事件系统控制方法,并将其在大规模分布式空调控制中进行应用[10]。通过将控制程序映射为离散事件系统,能够有效分析变量、指令的依赖关系,进而将串行控制程序转换为并行离散事件,分配给不同设备执行。目前离散事件系统的主要分析工具主要包括自动机(Automata)、定时Petri网(Timed Petri-Net)、事件图(Event Graph)等[6]。自动机、定时Petri网的分析难度会随着系统复杂度升高,难以应用于复杂控制系统。事件图是一种图形化的分析工具,具有精简的表达方式与强大的建模能力,近年来在离散事件系统领域逐渐成为研究热点[11]。Luisella Balbis给出了离散事件系统以及混杂系统的建模与控制方法概述[12],Siamak Nazari提出了事件图中网络阻塞与结点阻塞的判定依据[13],Philippe Declerck进行了事件图极值曲线与令牌终止条件分析方法[14],Abir Benabid-Najjar给出了定时加权事件图的最大处理能力计算方法[15]等。

本文提出了一种针对网络化PLC控制系统的程序建模与编译方法。将控制系统描述为离散事件系统,为统一编写的控制程序建立了事件图模型。应用改进的深度优先算法识别模型中可并行执行的事件序列。通过优化分组,将其对应的控制程序与变量分散下载至不同的PLC控制器中。在程序中自动插入网络通信指令,以实现控制器间的变量同步。最后,通过智能楼宇控制系统对建模与编译方法的有效性进行评估。

2 基本概念

2.1 离散事件系统

离散事件系统是指受事件驱动、系统状态跳跃式变化的动态系统。离散事件系统的系统状态仅在离散的时间点上发生变化。这类系统中引起状态变化的原因是事件,通常状态变化与事件的发生是一一对应的,事件的发生没有持续性,在一个时间点瞬间完成[16]。下面给出离散事件系统有关概念。

定义1 (实体)构成系统的各种物理对象称为实体。控制系统中,PLC为构成系统的基本物理对象,因而PLC为实体。

定义2 (属性)反映实体某些性质的参数称为属性,如PLC中的变量值、配置参数等。

定义3 (状态)在某一确定时刻,实体的状态是实体所有属性的集合,而系统状态是实体状态的集合。PLC是实体,PLC的状态是参数、指令的集合,控制系统的状态是所有PLC状态的集合。

定义4 (事件)事件是引起系统状态发生变化的行为,它是在某一时间点上的瞬时行为。PLC中变量值的改变造成控制系统状态的改变,因而变量值的改变是事件。

PLC的系统状态仅在指令执行时发生变化,且在一个时间点立即完成,因而一段完整的PLC程序即为一个离散事件系统[17]。

2.2 事件图模型

事件图是Schruben于1983年首先提出的一种图形化的离散事件建模方法[18],它通过事件以及事件之间的逻辑、时序关系来刻画离散事件系统的动态特性。图1是事件图示例,其中结点代表事件对象,弧代表调度活动,i为事件调度条件,t为事件调度延时,j为事件调度标识。图1中模型行为解释如下:对于任意调度活动,当事件A发生,系统状态改变为SA,如果条件i为真,则事件B将在t时间延迟后发生,系统状态改变为SB;当B发生时,参数k将被设置为表达式j的值。事件图的优势在于能够直观地表达事件间的调度关系,并能支持基于图理论的事件调度分析和优化[16]。

图1 事件图示例

可以将事件图表示为一个二元组G=(V,E),这里V={v1,v2,…,vi,…}表示图中结点v的集合,结点v在事件图中代表单个事件对象,vi表示第i个事件。E={e1,e2,…,ei,…}表示图中有向弧e的集合,ei表示第i条弧,e=(vn,vm)在事件图中表示vn对vm的调度关系,f(vn,vm)=(t,j,i)是定义在事件图中vn与vm间弧上的一个三元组,t表示事件调度延时,i为事件调度条件,j为事件调度标识,表示一轮任务执行过程中,在第j个时刻vn对vm产生影响[19]。

2.3 控制程序依赖关系

控制程序是描述PLC资源分配与执行逻辑的控制语句,由存储信息的变量与处理信息的指令组成。设PV={pv1,pv2,…,pvi,…}为变量集,pvi代表PLC程序中的唯一变量,PV中包含输入变量与输出变量,输入变量的值由设备物理IO读取,输出变量的值写入设备物理IO。记输入变量集合为PVI⊂PV;输出变量集合为PVO⊂PV;状态变量为PVM⊂PV。设EV={ev1,ev2,…,evi,…}为指令集,evi=(T,k,m)是代表PLC程序中唯一指令的三元组,T代表指令执行时间,k代表指令执行顺序,m代表指令EN引脚参数。称P=(PV,EV)为一个PLC程序,它是变量与指令组成的集合。

在一段PLC程序中,若确定变量α的值之前,变量β的值必须确定,则称α依赖于β,称这种关系为依赖关系,依赖关系是分析控制程序逻辑的基础。设控制系统包含A、B、C三个设备,控制程序如图2所示,PV={pv1,pv2,…,pv10},EV={ev1,ev2,…,ev5},其中,pv1、pv6为A的输入变量,pv5为A输出变量;pv2为B的输入变量,pv7为B输出变量;pv10、pv11为C输出变量。ev1={t1,1,1}为指令“==W”在集合中对应的元素,执行时间为t1,在程序中第1个执行,不存在“EN”引脚,输入为pv1和pv2,输出为pv3,依赖关系记为pv1→pv3,pv2→pv3。其他指令对应依赖关系同理,记为:pv3→pv5,pv4→pv5;pv2→pv7,pv6→pv7;pv8→pv10,pv7→pv10;pv2→pv11,pv9→pv11。

图2 控制程序示例

3 事件图模型的建立与分析

事件图模型是对PLC程序进行分析优化的基础,它描述了程序中变量间的依赖关系,通过遍历事件图可以有效提取相互独立的事件序列。对PLC程序中的变量、指令进行分析,逐步完成事件图建模过程,进而通过改进的深度优先搜索算法分析建立好的模型,提取并行离散事件序列。

3.1 建立事件图模型

指令对变量的每次改变均为事件,将程序中每个变量映射为一个事件结点,每遍历一次该结点,即发生一次变量改变事件。变量集合映射关系如式(1)所示,输入输出映射关系如式(2)所示:

其中VI为输入事件,VO为输出事件,VM为状态事件。PLC指令包含多个输入、输出变量,若指令存在N个输入变量,M个输出变量,则存在N×M组依赖关系,每组依赖关系将对应事件图中一个调度活动,即一条连接两个事件结点的有向弧,弧起始结点为前一时刻发生事件,弧终止结点为后一时刻发生事件。

PLC指令包含多个输入、输出变量,存在多组依赖关系,因此一条PLC指令对应事件图中多个调度弧,弧起始结点为前一时刻发生事件,弧终止结点为后一时刻发生事件。指令执行时间T对应调度时间t,执行顺序k对应调度标识j,EN引脚参数对应调度条件i。映射关系如式(3)所示:

设eva指令输入变量个数为N,输出变量个数为M,则ea1~eak为指令eva对应调度弧,且k=N×M。每条指令对应的调度弧个数不同,因此式(3)中每行包含的元素个数存在差别,即a、b及k的值彼此独立,仅与各自对应的指令有关。

f(vn,vm)=(t,j,i)为调度弧eai=(vn,vm)的属性,t为指令eva执行时间,j为eva执行顺序,i为eva的“EN”引脚对应变量,若eva指令不存在“EN”引脚,则恒有i=1。生成事件图具体流程如图3所示。

式(4)为图2所示程序的指令映射,5条原始指令均映射为事件图中的调度弧。由于每个指令均包含2个输入变量,1个输出变量,存在两组依赖关系,因而1条指令映射为2条调度弧。

图3 事件图构造流程图

图4显示了构造事件图模型的过程,原始PLC程序如图2所示。首先遍历“==W”指令,添加结点v1、v2、v3,添加v1指向v3的弧,f(v1,v3)=(t1,1,1),再添加v2指向v3的弧,f()v1,v3=(t1,1,1)。然后遍历“AND”指令,添加结点v4、v5,添加v3指向v5的弧,f(v3,v5)=(t2,2,1),再添加v4指向v5的弧,f(v4,v5)=(t2,2,1)。同理,遍历剩余指令,逐步构造事件图模型。

图4 事件图构造示例

3.2 事件图遍历算法

事件图模型描述了PLC程序中变量的依赖关系,为进一步分析这种关系,需要对事件图进行遍历。以改进的深度优先搜索算法(Depth First Search,DFS)[19]为基础,将f(vn,vm)=(t,j,i)中的j项作为弧的权值,通过分析模型中结点的依赖关系,将事件图分解为相互间无依赖关系的若干事件序列,从而将PLC程序解耦,称这些事件序列为事件树。

定义5 (事件树)用结点表示事件,用结点间的路径表示调度活动,用路径的权值表示调度顺序的树型数据结构。一颗完整的事件树是通过改进的DFS算法遍历得到的一条路径,根结点为调度活动开始的源事件。

调度活动描述了事件跃迁条件,影响遍历方向,因而需要对传统DFS算法进行一定改进。通过改进的DFS算法得出一条最短路径,该路径即为一棵事件树,它包含经过的所有结点与弧的信息——事件与调度活动的信息,描述了起始变量经过若干指令处理后会对哪些变量产生影响,生成事件树是将PLC程序分解为并行离散事件的中间过程。事件树生成流程如图5所示。

依据结点入度、出度,将结点划分为单入单出、单入多出、多入单出、多入多出、单入0出、多入0出,共6种类型,改进的DFS算法在处理这些结点时的遍历规则不同。

V={v1,v2,…,vk}表示事件图结点集合,k为事件图中的结点数量。OUT={outi1,outi2,…,outin}。表示以vi为弧尾的弧的集合,集合中元素为弧对应的事件调度标识,n为以vi为弧尾的弧的个数。IN(vi)={ini1,ini2,…,inim}表示以vi为弧头的弧的集合,集合中元素为弧对应的事件调度标识,m为以vi为弧头的弧的个数。innow为当前遍历路径结点输入弧对应的事件调度标识。F(inab)表示弧对应的事件调度条件,若F(inab)=1,则va对vb的调度一定生效。

记事件树中弧的权值为事件调度标识,改进的DFS算法处理结点规则如下:

(1)单入单出结点。访问下个邻接点,同时将当前结点及连接两个结点的弧加入事件树。

(2)单入多出结点。先遍历权值小的弧对应的邻接点,同时将当前结点及连接两个结点的弧加入事件树。

(3)多入单出结点。首先判断当前结点是否已经遍历过,若尚未被遍历,则依据结点输入、输出弧权值确定遍历路径,并将经过的结点与弧加入事件树。记唯一的输出弧权值为out,用inx表示任意输入弧的权值,则多入单出结点的处理流程如图6所示。

图6 多入单出结点处理流程图

(4)多入多出结点。依次随机选择某个输出弧,将当前结点视为多入单出结点,按照多入单出的判断依据进行操作,然后选择下一个输出弧,重复进行以上操作,以此类推。

(5)单/多入0出结点。添加当前结点到事件树,停止遍历该路径。

4 并行事件的优化

自动控制系统的IO点可能存在于不同设备之中,由于工业现场总线传输效率低,PLC设备无法共享内存,因而对大规模数据处理的瓶颈不在于设备性能,而在于网络带宽。通过对并行事件序列进行优化,使计算自动更加靠近IO源,将计算尽可能“本地化”,能够节约网络带宽而获得高效率的计算性能。业界对此评价为“移动计算比移动数据更经济”[20]。

4.1 事件树优化分组

事件树描述了变量通过指令相互影响的关系,但同一条指令可能存在于多个事件树之中,不同变量可能通过相同的指令对同一个变量产生影响,因而需要对包含相同指令的事件树进行优化分组,保证每组事件树中各个变量不受其他组中事件树的影响。事件树优化分组步骤如下:

(1)优化开始时,将每棵事件树划分为独立的一组。

(2)检查两组事件树中是否包含权值相同的弧。

(3)若包含权值相同的弧,且弧上箭头指向的结点相同,则将其合并为一组事件树。

(4)重复第(2)步,直到任意两组事件树均不满足步骤(3)的条件为止。

经过优化分组,各组事件树中包含的事件与活动不存在耦合,可以分配给不同处理结点执行。

4.2 归属设备优化

并行事件的优化涉及事件在不同设备间的合理分配,既要保证设备间的正常通讯,又要避免单个设备负载过大,因而为各组事件树划分设备存在两种基本模式:

(1)同步最优。减少设备间的通讯延时,将指令尽量下载给通讯开销小的设备。

(2)负载均衡。在保证IO变量能够正常传递的前提下,通过对调度延时t求和,获得各组事件树预期调度时间,从而将指令均匀地下载给不同设备,减少单个设备的执行周期[21]。

优化后的每组事件树彼此独立,可以划分给不同设备,同一组事件树可以划分给多个设备。设存在N组事件树的集合L={l1,l2,…,lN},li中包含变量集合Vi={vi1,vi2,…,vik},其中1≤i≤N,ξi为li的预期调度时间,是li中调度弧的调度时间之和,单位为ms。优化设备归属的依据是物理IO所在位置,设存在设备集合D={d1,d2,…,dM},di为具有实际物理IO的设备,di中包含变量集合VDi={vi1,vi2,…,vik},VDi中元素为该设备的物理IO,其中1≤i≤M。设Ψa为da当前的预期执行时间,通过公式(5)对Ψa的值进行求解:

其中,num为da当前包含的控制指令数量,Ti为第i条指令的执行时间。设ϕab为da与db间传递一个变量所需时间,单位为ms,ρia为Vi∩VDa包含的元素数量,Wi={wi1,wi2,…,wiM}为li分配给各个设备后产生的通讯开销,将li分配给设备da的通讯开销如式(6)所示:

将li分配给产生通讯开销最小的设备。若存在wia=wib,且Ψa<Ψb,则将li分配给da。

图7显示了为事件树划分设备的结果,以图2所示程序进行说明。存在设备集合D={dA,dB,dC},存在事件树集合L={la,lb,lc},设ϕAB=50,ϕBC=20,ϕAC=80。考察事件树a,得出waA=50,waB=100,waC=180,waA最小,因此将事件树a划分给设备A。同理,考察事件树b,得出wbA=180,wbB=70,wbC=120,wbB最小,因此将事件树b划分给设备B;考察事件树c,得出wcA=130,wcB=20,wcC=20,wcB与wcC同为最小值,又有ψb>0,ψc=0,ψc<ψb,因此将事件树c划分给设备C。

4.3 变量同步优化

不同事件树可能包含相同事件,即包含同一个变量,为事件树划分设备后,相同变量可能存在于不同设备中。为保证程序正常执行,当前设备应实时读取其他设备中的变量信息,经过处理后同步到本地对应变量[22],变量同步基本原则如下:

(1)若变量V被分配到两个及两个以上设备中,则V被复制为多个副本运行于各个设备中。

(2)为每个设备开辟一块缓存区,存储从不同设备读取的V的副本的值。

(3)插入通讯指令,从其他设备读取V值到本地输入缓存,或将V值写入其他设备输出缓存。

内部变量不用于物理输入、输出,且不受其他设备影响,因而不需要进行设备间同步,仅需要同步输入、输出变量即可。

图7 确定事件树归属设备

输入变量不会被程序的运行逻辑改变,仅受设备的物理输入影响,且仅在每轮程序执行之前读取一次。因而在程序开头插入通讯指令,读取变量值到本地输入缓存,再插入指令读取输入缓存中的数据,从而实现输入变量同步。输出变量仅在每轮程序结束后写入物理输出端口。若V为设备B输出变量,而V的值由设备A计算得出,则在A程序结尾插入通讯指令,将V的值写入设备B输出缓存。设备B在程序结尾插入指令读取输出缓存中的数据,从而实现输出变量同步。

图8显示了变量同步的方法,以图2所示程序为例进行具体说明。A中指令用到B的输入变量pv2,因而在A程序开头插入通讯指令,定时读取B中pv2的值到输入缓存,然后插入读取缓存指令,在每轮程序开始执行前刷新本地pv2,从而实现B对pv2的远程读取。C的输出变量pv10是B的运算结果,因而在B程序末尾插入通讯指令,将B中pv10的值写到C的输出缓存,在C的程序末尾插入读取输出缓存指令,刷新本地pv10,从而实现B对pv10的远程写入。其他I/O变量的远程刷新方法同理。

5 运行实例与分析

图8 同步变量示例

图9 楼宇监控系统图

图9为楼宇监控系统拓扑结构图。楼宇综合监控系统由5个主要控制模块组成,分别为云台控制模块、照明电控制模块、操作台控制模块、电梯监测模块与电力监控模块,控制模块之间通过工业以太网互联。监控工作站是一台高性能计算机,充当楼宇监控系统的服务器使用。电视墙受工作站的控制,用于显示楼宇系统各个模块的运行状态。LED显示屏直接连入楼宇监控网络,用于显示通知等信息,可以由连入控制网络的计算机直接操作。监控终端可以是任意连入控制网络的计算机,通过访问监控工作站对系统进行监视与控制。

以照明控制为例,部分控制程序如图10所示。

图10 照明控制部分程序

网络1、网络2实现物理开关控制,网络3、网络4实现定时开关灯控制。Q0.0与Q0.1分别为控制电灯的物理开关,在编写程序时已经指定所属设备,Q0.0归属于

功能块网络中包含多条逻辑连线,建模之前需要将逻辑连线转换为临时变量,建立控制程序到离散事件系统的映射,进而完成建模过程,建立好的事件图模型如图11所示。

模型中V1~V10为动态添加的临时变量,分别对应程序中的10条逻辑连线。事件图共包含23个事件结点,26个调度弧,描述了电灯控制设备的执行逻辑。通过对事件图进行分析与遍历,优化事件树分组,并确定指令的设备归属,完成分散下载工作。

对楼宇综合监控系统的控制程序进行编译优化,下载到各个控制模块中执行,如表1所示。比较统一编写的原始程序与具体下载到各个控制模块中的程序,统计功能1~3楼的电灯控制设备,Q0.1归属于4~6楼的电灯控制设备。VW 101~VW 104为用户指定的开关灯时间,SMW 55、SMW 56为控制器时钟,通过比较两者的值实现电灯的定时开关。块网络数量、指令数量、动态插入的通讯指令数量,进而对控制系统的负载、执行效率进行分析,评估分散下载的效果,验证本文提出的控制程序编译算法的有效性。

表1 控制程序分散下载效果

图11 控制程序建模

原始程序被分散下载到9台PLC控制器中,除了操作台控制模块,剩余模块中均自动添加网络通讯指令。这是由于其他设备需要从操作台读取控制信息,而操作台的输入、输出变量及相关指令均被下载给本地设备,不需要从其他设备读取输入数据或向其他设备写入输出数据。云台控制主设备与照明电控制主设备中添加的通讯指令数量较多,这是由于它们的从设备与操作台控制设备进行通讯时,需要以其对应的主设备作为中转,因而需要在主设备中额外建立通讯通道,添加通讯指令。对比各组结果,设备负载较为均衡,云台与操作台控制设备由于的运算逻辑复杂,且存在大量与I/O变量有耦合关系的指令,负载稍大。编程人员可以通过模块化的程序设计,减少控制程序耦合关系,使设备负载更为均衡。

6 结束语

提出了一种针对网络化PLC控制系统的程序建模与编译方法。通过将控制系统映射为离散事件系统,建立了控制程序的事件图模型;通过改进的深度优先搜索算法,实现了事件图解耦,提取并行事件序列;通过优化分组以及变量同步方法,实现了控制程序的分散下载与同步。实验结果表明,本文方法可以有效地将统一编写的控制程序分散下载给不同设备,并保持系统控制逻辑正确。研究成果已应用于国内某公司智能楼宇监控系统,有效平衡了系统各个部分的负载,同时降低了系统开发周期与维护成本。同时提出的以网络中的设备为整体进行程序编辑与编译的方法,也为大规模PLC控制系统的程序开发与分析提供了新的思路。

[1]Thramboulidis K.Development of distributed industrial control applications:the CORFU framework[C]//Proceedings of the 4th IEEE International Workshop on Factory Communication Systems Vasteris,Sw eden,2002:39-46.

[2]Thramboulidis K,Sierla S,Papakonstantinou N,et al.An IEC 61499 based approach for distributed batch process control[C]//Proceedings of the IEEE International Conference on Industrial Informatics,Vienna,2007:177-182.

[3]Khalgui M,H ramboulidis K.An IEC61499-based development approach for distributed industrial control applications[J].Int J Modelling,Identification and Control,2008,4(2):186-204.

[4]刘洁.FBD程序建模优化技术研究及实现[D].辽宁大连:大连理工大学,2009.

[5]许文靓.基于LM I的PLC功能块图和顺序功能图的相互转换技术[D].辽宁大连:大连理工大学,2010.

[6]罗继亮,吴维敏,苏宏业,等.事件图的混合控制器设计[J].自动化学报,2007,33(2):218-221.

[7]M a X H,Xie J Y.An observer-based compensator for networked control systems[J].Int J Modelling,Identification and Control,2007,2(2):169-175.

[8]Kwong R H,Yonge-Mallo.Fault diagnosis in discrete-event system s:incomplete models and learning[J].IEEE Transactions on System s,M an,and Cybernetics:Part B Cybernetics,2011,41(1):118-130.

[9]A lenljung T,Lennartson B,Hosseini M N.Sensor graphs for discrete event modeling applied to formal verification of PLCs[J].IEEE Transactions on Control Systems Technology,2012,20(6):1506-1521.

[10]Li D,Lan W,Zhou H,et al.Control of fuzzy discrete event systems and its application to air conditioning system[J].Int J Modelling,Identification and Control,2009,8(2):122-129.

[11]夏薇,姚益平,慕晓冬,等.基于事件图的离散事件仿真模型并行检验方法[J].软件学报,2012,23(6):1429-1443.

[12]Balbis L,Ordys A W,Grimble M J,et al.Tutorial introduction to the modelling and control of hybrid systems[J].Int J modelling,Identification and Control,2007,2(4):259-272.

[13]Nazari S,John G.Blocking in fully connected networks of arbitrary size[J].IEEE Transactions on Automatic control,2012,57(5):1233-1242.

[14]Declerck P.From extremal trajectories to token deaths in P-time event graphs[J].IEEE Transactions on Automatic Control,2011,56(2):463-467.

[15]Benabid-Najjar A,Hanen C,Marchetti O,et al.Periodic schedules for bounded timed weighted event graphs[J].IEEE Transactions on Automatic Control,2012,57(5):1222-1232.

[16]刘刚.并行离散事件仿真可视化组件建模技术研究[D].长沙:国防科学技术大学,2009.

[17]陈宜滨,席宁,李洪谊.基于事件的控制理论研究及其应用[J].机械工程学报,2012,48(17):152-158.

[18]Savage E L,Schruben L W,Yücesan E.On the generality of event-graph models[J].INFORMS Journal on Computing,2005,17(1):3-9.

[19]Cordes D,Marwedel P,Mallik A.Automatic parallelization of embedded software using hierarchical task graphs and integer linear programming[C]//Proceedings of the Conference on Parallel Architectures and Compilation Techniques,Scottsdale,2010:267-276.

[20]胡彧,封俊.Hadoop下的分布式搜索引擎[J].计算机系统应用,2010,19(7):224-228.

[21]Yao Yong,Wang Yingfeng,Liu Zhijing.An algorithm used to improve task parallelization for directed acyclic graphs[C]//In Advances in the Dempster-Shafer Theory of Evidence,Hong Kong,China,2010:238-240.

[22]廖育武,胡家勤.多PLC的分布式控制系统的通讯方法[J].矿山机械,2009,37(14):38-41.

猜你喜欢
控制程序结点指令
基于PLC的变电站备用电源自动投入装置控制程序的研究
ARINC661显控指令快速验证方法
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
杀毒软件中指令虚拟机的脆弱性分析
基于PLC数值处理模块的PID控制程序研究
一种基于滑窗的余度指令判别算法
纸机传动控制程序的复用性研究
基于Raspberry PI为结点的天气云测量网络实现
建筑工程新工艺、新技术现浇砼空心板的控制程序
基于DHT全分布式P2P-SIP网络电话稳定性研究与设计