基于二叉树的plc串并联识别_第1页
基于二叉树的plc串并联识别_第2页
基于二叉树的plc串并联识别_第3页
基于二叉树的plc串并联识别_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于二叉树的plc串并联识别

1可视化梯形图编辑界面的实现梯子地图是一种灵活、直观的组合,该模型的特点是精通算术技术的工程师描述特定的逻辑。目前,梯形图已被定义在PLC语言标准IEC61131-3之中,通过梯形图转换成指令表并由PLC执行,便能实现各种各样的特定应用。如何方便有效地可视化构建与编辑梯形图,并便于向指令表或执行代码转换无疑是PLC快速开发应用的关键之处。本文在分析了已有这方面工作的基础上,给出了以面向对象技术为基础的可视化梯形图编辑界面的设计与实现。具体实现中引入了元件连通性的邻域汇聚与扩散算法实现电路构造,采用输入输出的逆向拓扑识别元件之间的串并联关系,并用二叉树来表达元件的这种关系。通过二叉树的先序遍历,完成梯形图到逻辑表达式文本的转换。最后采用字符处理实现逻辑表达式文本的化简,并通过翻译例程将逻辑文本转化为执行代码。2对象模型的建立与细化梯形图通常是以图符的形式直观表达各相关开关量元件串、并联拓扑关系的一种组织结构图。文献[1,2,3,4]从图的角度对梯形图进行表示、转换及处理。其特点是图的表示及处理较为复杂,容易出现串并联关系误判、查找虚结点困难、无法查找被短路的结点等缺陷,使得由梯形图转为拓扑结构比较困难。文献引入了面向对象方法,但整个梯形图的处理仍是从图的角度进行的,处理逻辑仍比较复杂,且对电路的构造还有特定的限制,仍不能很好地满足应用需要。文献也引入了面向对象方法,整个系统设计有梯形图类LadLadder、梯级类LadRung、梯级行类LadLine及图元类LadComponent。其中梯级类LadRung、梯级行类LadLine的设计不是很直观简洁,给梯形图的处理增加了复杂性。文献将触点元件、线圈元件等作为不同类进行设计也不尽合理,这在元件处理上增加了困难。文献虽提出基于面向对象思想,但并没有给出完整的面向对象分析与设计描述。面向对象方法在分析问题与设计解决方案方面具有直观性,特别适合处理复杂性问题。因此,本文从面向对象方法出发,对梯形图可视化编辑环境进行了对象模型的分析与设计,给出了以电路对象与元件对象为核心的梯形图对象模型。其UML表达如图1所示。常用的元件类型有:母线元件、触点元件、线圈元件及连接元件。触点元件又分常开、常闭等元件。线圈元件是梯形图的输出元件。连接元件用于连接母线、触点元件及线圈元件,分为水平连线元件和垂直连线元件。由于垂直连线元件与其它元件在梯形图中放置的位置存在坐标重合情况,因此将垂直连线元件作为一种特殊元件单独处理。二叉树是一种不可视逻辑组件对象,用于表达每个线圈输出元件所对应的一个输出子电路拓扑结构。在一个PLC梯形图中,可以有任意个输出元件,因此一个梯形图最终映射到一个由输出结点列表对应的一个二叉树对象数组。3梯子图的结构3.1u3000cp、cs的关系面向对象系统的特点是系统的总体行为受制于系统的组成对象。为此我们从局部个体对象出发,分析其在梯形图构造中所应具备的特性及行为。进而通过构造个体对象的简单基本行为来化解系统总体目标的求解难度。为此,给出如下定义:定义1直接连接定义为一个关系Rd(Cp,Cs),Cp、Cs均为一元件,Cp称为前趋,Cs称为后继。令XCp,YCp为Cp的位置坐标,XCs,YCs为Cs的位置坐标(电路左上角位置坐标为0,0)。有XCp-XCs=-1,YCp-YCs=0,此时Cp,Cs均为非垂直连线元件;或XCp-XCs=-1,YCp-YCs=-1,此时Cp为垂直连线元件,Cs为非垂直连线元件;或XCp-XCs=-1,YCp-YCs=0,此时Cp为垂直连线元件,Cs为非垂直连线元件;或XCp-XCs=0,YCp-YCs=0,此时Cp为非垂直连线元件,Cs为垂直连线元件;或XCp-XCs=0,YCp-YCs=1,此时Cs为垂直连线元件;或XCp-XCs=0,YCp-YCs=-1,此时Cp为垂直连线元件,Cs为垂直连线元件。定义2间接连接定义为Ri(Cp,Rd1,Rd2,……Rdi,Cs)关系,i=1,2,……n,Cp、Cs均为一元件,Cp称为前趋,Cs称为后继。有Rd(Cp,domRd1),Rd(ranRdn,Cs),Rd1、Rd2、……Rdn中的成员均为连接元件。3.2时对当前元件的扩散所谓梯形图电路识别,是指每一个元件都要标记其所有前趋元件与后继元件。为此,我们引入邻域汇聚与扩散算法来搜索及维护元件间直接连接与间接连接的前趋与后继。其算法如下:(1)判断加入电路的元件类别,若为垂直连线则转(4),否则进入(2)。(2)此步完成汇聚。通过右邻域(右上、右及右下元件)求其所有后继元件,并将所有后继元件加入到当前元件的链出列表。通过左邻域(左上、左及左下元件)求当前元件的所有前趋元件,并将所有前趋元件加入当前元件的链入列表。(3)若当前元件为水平连线元件,则通过左邻域扩散当前元件新增的后继元件到其所有前趋元件的链出列表,通过右邻域扩散当前元件新增的前趋元件到其所有后继元件的链入列表。若当前元件为非水平连线元件,则将自身扩散到其所有前趋元件的链出列表及所有后继元件的链入列表。转(6)。(4)此步为完成汇聚。通过右邻域(上、右上、右下及下元件)求其所有后继元件,并将所有后继元件加入到当前元件的链出列表。通过左邻域(上、左上、左下及左下元件)求当前元件的所有前趋元件,并将所有前趋元件加入当前元件的链入列表。(5)通过左邻域扩散当前元件新增的后继元件到其所有前趋元件的链出列表,通过右邻域扩散当前元件新增的前趋元件到其所有后继元件的链入列表;(6)结束。如对于图2,元件I05的左邻域元件为左上垂直连线元件、左侧N01元件及左下垂直连线元件。其所有前趋元件为:I06、N01、I04。I02的右邻域元件为右上垂直连线元件、右侧水平连线元件及右下垂直连线元件。其所有后继元件为:N00、N01、I04。垂直连线①的左邻域为其上垂直连线元件、左上I02元件、左下I03元件及其下面的垂直连线元件。其前趋元件为:I01、I02、I03。垂直连线①的右邻域为其上垂直连线元件、右上水平连线元件及下面的垂直连线元件,其所有后继元件为:N00、N01、I04。3.3叉树扩展算法梯形图拓扑结构是指各元件之间所形成的串并联关系结构。对于每个元件来说,若其前趋元件只有一个,则其与前趋元件的关系一定是串联。否则,其前趋元件之间一定是并联后与此元件串联。据此,从线圈元件逆向拓扑(之所以采用逆向拓扑是因为正向拓扑无法确定后继元件在哪一个输出电路中),引入二叉树,根表示线圈元件,左子树表示元件间的串联关系,右子树表示元件间的并联关系。一个并联块用一个虚拟元件表示。梯形图一个输出电路的二叉树构建算法如下:(1)以线圈元件为根结点内容,左子树及右子树均为空创建二叉树;(2)以1创建的二叉树为参数,调用扩展算法展开整个二叉树。扩展算法为:(1)二叉树根结点的链入列表若为空,则调用返回,否则进下一步。(2)若根结点的链入列表元素个数大于1,则创建虚拟元件,并由此虚拟元件构造单结点二叉树,将创建的二叉树作为当前二叉树的左子树。针对根结点元件的链入列表的每一个元件构建一个单结点二叉树,将它们以右子树的关系形成一个较大的子树作为当前二叉树的左子树的右子树,并递归扩展每个右子树结点。若根结点的链入列表元素个数为1,则由链入列表元素构造单结点二叉树,并将其作为当前二叉树的左子树,并递归扩展该结点。(3)返回。梯形图3线圈元件Q00构造的二叉树如图3所示。构造线圈元件逻辑表达式可采取二叉树先序遍历来实现。最终梯形图3获得的逻辑表达式为:Q00=I05&(N01&(I01&I00&InRoot|I02&I00&InRoot|I03&I00&InRoot)|I04&(I01&I00&InRoot|I02&I00&InRoot|I03&I00&InRoot)|I06&N00&(I01&I00&InRoot|I02&I00&InRoot|I03&I00&InRoot))Q01=(N01&(I01&I00&InRoot|I02&I00&InRoot|I03&I00&InRoot)|I04&(I01&I00&InRoot|I02&I00&InRoot|I03&I00&InRoot)|I06&N00&(I01&I00&InRoot|I02&I00&InRoot|I03&I00&InRoot))经逆序和化简(此部分为字符处理,阐述略),得到:Q00=InRoot&I00&(I01|I02|I03)&(N00&I06|N01|I04)&I05Q01=InRoot&I00&(I01|I02|I03)&(N00&I06|N01|I04)4向合取范式转换梯形图输出电路逻辑表达式转换成相应的汇编代码的基本算法:(1)搜索梯形图输出电路逻辑表达式中所有具有独立值的析取范式,并用一唯一的构造标识符进行替换,使最终的逻辑表达式转换为合取范式;(2)将所有析取范式转化为子例程汇编代码,而逻辑表达式的最终合取范式转换为主程序。Q00逻辑表达式的析取范式如表1所示(其中的母线元件InRoot在生成汇编时可被忽略):得到:Q00=I00&$1000#&$1001#&I05各类元件开关量值存储地址范围如表2所示。元件标号XYZ取值范围:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论