一种可处理函数顶点的梯形图转换成指令序列的方法技术

技术编号:19056339 阅读:148 留言:0更新日期:2018-09-29 12:05
本发明专利技术公开了一种可处理函数顶点的梯形图转换成指令序列的方法,该方法中:图G=

【技术实现步骤摘要】
一种可处理函数顶点的梯形图转换成指令序列的方法
本专利技术涉及梯形图转换成指令序列的方法,尤其涉及一种可处理函数顶点的梯形图转换成指令序列的方法,属于工业控制

技术介绍
梯形图(LadderDiagrame简称LD)广泛应用于工业控制领域中,对梯形图的处理主要集中在如何将其翻译成指令列表,以便可编程控制器(PLC)可以执行这些指令来完成由梯形图表达的控制任务。梯形图本质上是一种通过运算单元之间的连接结构来描述的运算表达式,表达式只包含两种运算,分别与串联结构和并联结构相对应。将梯形图转换成指令表的方法已经不少,但都或多或少地存在问题。给出了将梯形图翻译成IEC61131-3指令表的方法,在所转换的梯形图中可以有function顶点,以便完成特定的功能调用。但该方法对function顶点功能的处理并不完善,没有考虑function顶点必须提前计算其输入的问题。同时算法没有给出算法执行的时间。梯形图到指令表的转换本质上都是图到二叉表达式树的转换。二叉表达式树,简称BET,是二叉树的一种,经过对树的中序遍历之后所得的遍历序列是一个表达式。树的任何一颗子树称成为二叉表达式子树,记作SUB-BET。
技术实现思路
本专利技术提出了一种把梯形图转换成二叉表达式树的方法:LD-BET方法,该方法不仅克服了以往方法的不足,更主要的是不以转换成指令表为目标,而是以二叉表达式树数据结构为目标。对树的中序遍历的打印输出稍作改变就可以得到不同规范的指令序列,即可以把梯形图翻译成各种指令序列。同时,还可以在内存中直接保存二叉表达式树,省去表达式的翻译过程,在得到二叉树的后续遍历的序列之后,可以进行基于栈的表达式计算,从而直接获得计算结果。该算法的另外一个特点是可以对后面二次用到的计算结果进行自动缓存,而不必对所有的并联合并的结果都进行缓存,从而节省了存储空间。本专利技术公开了一种可处理函数顶点的梯形图转换成指令序列的方法,该方法中:图G=<V,E>由一组有限的顶点V和边E的集合组成。如果G是一个图,则V=G.V表示图中的顶点集,E=G.E表示图中的边集;任何一个梯形图都表示成一个有向无环图即DAG。此外还必须满足一些约束条件,把能够满足这些约束条件的DAG图称为LDGraph。LD-BET方法中用到2个对象,一个为用于描述BET树的结点,另外一个为用于描述LDGraph的顶点。结点对象包含vertex,left,right,π属性,结点集合记为N。构成BET树的所有结点组成了一个结点集合NBET,而且vertex属性表示结点所包含的顶点,即表示该结点与图中哪个顶点相对应。left表示左指针,right表示右指针,π表示父指针,所有指针指向BET树中的其他结点。结点对象没有专门的名字属性,结点名字用包含其中的vertex对象的名字属性表示。结点对象通过NODE(vertex)方法创建,通过ADD-NODE方法使三个结点都变成属于NBET的结点。顶点对象包含name,Adj,Adj',buffer,buffer',root,π,d,color,conntionType,functionType属性。顶点名称由name属性表示,Adj表示顶点的邻接表;图用邻接表的形式描述,对于顶点v其邻接表v.Adj代表一个集合{Adj1,Adj2,……,Adjn},其中Adji∈V,i=1,2,……,n。该集合表示从v到集合v.Adj的每一个元素之间都有一条有向边;顶点1的邻接表vertex1.Adj中的各元素为{vertex2,vertex3,vertex6,vertex7,vertex10,vertex20,vertex21}。Adj'是一个链表,用于收集射入并联型顶点的串联分支,串联分支的并联合并要使用它。对于顶点v其链表v.Adj'代表一个有序序列<Adj'1,Adj'2,……,Adj'n>,其中Adj'i∈NBET,i=1,2,……,n。有序序列表示从v到序列的每一个元素之间都有一条射入v的串联分支,其排列次序代表了射入的先后顺序。buffer,buffer'用于缓存生成BET子树时的中间结果。root表示与该顶点相关的BET子树的根。π表示顶点的父顶点。d用于表示顶点到初始顶点的距离。color用来标识顶点的访问状态,以便判断顶点在遍历过程中是否已经被访问过。顶点对象通过vertex(name)方法创建,参数表示顶点的name属性。按照连接关系分类把顶点分成串联型顶点和并联型顶点。串联型顶点:图中入度和出度都不大于1的顶点,用VS表示。并联型顶点:图中入度大于1或出度大于1的顶点,用VP表示;VS∪VP=G.V。连接关系分类由顶点属性connectionType表示,对应的取值分别为SERIAL,PARALLEL,分别表示串联型顶点和并联型顶点。按照功能分类把顶点分成初始顶点、终止顶点、relay顶点、coil顶点、function顶点、辅助function顶点、辅助relay顶点和辅助coil顶点;该分类由顶点属性functionType表示,对应的取值分别为GS,GT,RELAY,COIL,FUNCTION,VSF,RELAY,VCOIL,对应的连接关系分别为:并联,并联,串联,串联,串联,串联,串联,并联。附图说明图1为一个由LadderDiagram转化而成的有向图。图2为串联型分支的结构示意图。图3为添加顶点的结构示意图。图4为一个串联BET树形成过程的例子示意图。。图5为顶点25的Adj′属性在经过1-13行处理后的结果图。图6为图5的合并结果图。图7为图6的处理过程和结果图。图8为顶点11成为顶点x1和顶点14的共同尾顶点。图9为成为左子树计算结果的输出缓存过程图。图10为所对应的BET树形成的过程示意图。图11为顶点25的Adj'属性中的数据结构图图12为图3所对应的BET树形成过程图。图13为指令表示意图。具体实施方式下面结合附图和实施例对本专利技术进行详细的描述。初始顶点:图中唯一的一个与任何顶点都连通且入度为0的顶点,用Gs表示,一般画在图的最左端。图1中的白色顶点是串联型顶点,灰色顶点为并联型顶点。Y0和Y1是coil类型串联型顶点。终止顶点:图中唯一的一个从任何顶点出发都可以到达且出度为0的顶点,用Gt表示,一般画在图的最右端。在LDGraph中为便于对coil顶点统一处理引入辅助顶点Gt,所有coil类型的顶点都射入其中,具体示例如图3(1)所示。终止顶点和辅助function顶点都是人为后加入到图G中的。初始顶点和终止顶点强制规定为并联型顶点,vcoil类型的顶点用于辅助function顶点的处理,而其他并联型顶点一般不用设置functionType属性,其用途将随具体应用而定。除辅助顶点外,functionType属性为已知属性,即随图G的给定而确定。串联型分支:图中2个并联型顶点之间的一条path,该path所经过的顶点均为串联型顶点,串联分支的两端是并联型顶点,这两个顶点是串联分支中仅有的两个并联型顶点。如果忽略串联型顶点,每条串联分支为一条边,实际上由串联分支和并联型顶点组成了一幅图,可用G'=<VP,EP>表本文档来自技高网...

【技术保护点】
1.一种可处理函数顶点的梯形图转换成指令序列的方法,其特征在于:该方法中:图G=

【技术特征摘要】
1.一种可处理函数顶点的梯形图转换成指令序列的方法,其特征在于:该方法中:图G=<V,E>由一组有限的顶点V和边E的集合组成;如果G是一个图,则V=G.V表示图中的顶点集,E=G.E表示图中的边集;任何一个梯形图都表示成一个有向无环图即DAG;此外还必须满足一些约束条件,把能够满足这些约束条件的DAG图称为LDGraph;LD-BET方法中用到2个对象,一个为用于描述BET树的结点,另外一个为用于描述LDGraph的顶点;结点对象包含vertex,left,right,π属性,结点集合记为N;构成BET树的所有结点组成了一个结点集合NBET,而且vertex属性表示结点所包含的顶点,即表示该结点与图中哪个顶点相对应;left表示左指针,right表示右指针,π表示父指针,所有指针指向BET树中的其他结点;结点对象没有专门的名字属性,结点名字用包含其中的vertex对象的名字属性表示;结点对象通过NODE(vertex)方法创建,通过ADD-NODE方法使三个结点都变成属于NBET的结点;顶点对象包含name,Adj,Adj',buffer,buffer',root,π,d,color,conntionType,functionType属性;顶点名称由name属性表示,Adj表示顶点的邻接表;图用邻接表的形式描述,对于顶点v其邻接表v.Adj代表一个集合{Adj1,Adj2,……,Adjn},其中Adji∈V,i=1,2,……,n;该集合表示从v到集合v.Adj的每一个元素之间都有一条有向边;顶点1的邻接表vertex1.Adj中的各元素为{vertex2,vertex3,vertex6,vertex7,vertex10,vertex20,vertex21};A...

【专利技术属性】
技术研发人员:王郁昕何宁王金华徐光美张睿哲张敬尊
申请(专利权)人:北京联合大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1