基于构件的梯形图设计方法

文档序号:6319571阅读:167来源:国知局
专利名称:基于构件的梯形图设计方法
技术领域
本发明涉及构件技术,尤其涉及一种基于构件的梯形图设计方法。
背景技术
当前,嵌入式渗透到人们生活的方方面面,嵌入式软件的质量和开发效率
往往对一个嵌入式产品起着决定性作用。在工业控制领域,PLC被大量使用, 各开发商逐步以IEC61131-3为标准设计软件,以保证逻辑控制程序的一致性。 梯形图是当今使用最普遍的逻辑控制语言,它的特点就是程序中含有大量的可 重用片段。目前,国内外PLC软件所提供的梯形图设计,仅提供所有给出指令 的设计,设计者无法将常用功能封装起来进行设计,导致在设计中付出大量重 复劳动力,设计效率低下,同时也存在潜在的程序错误性。

发明内容
本发明的目的在于针对现有方法消耗大量重复劳动力及因此带来的程序正 确性难以保证的不足,提供一种基于构件的梯形图设计方法,让使用者通过组 合构件实现自定义功能,并采用基本构件与组合构件结合的方法进行梯形图设 计。
本发明的目的是通过以下技术方案来实现的 一种基于构件的梯形图设计 方法,包括以下步骤
(1) 建立梯形图算法构件库;
(2) 创建设计器,提供梯形图构件设计环境;
(3) 梯形图设计结果的保存与打开;
(4) 梯形图程序转化成IL指令;
(5) 定义组合构件结构,构造设计环境。
进一步地,,所述步骤(1)中,所述构件库包括基本构件和组合构件,其 中,所述基本构件库实现梯形图基本算法,主要包括基本指令、程序流程应用指令、传送指令、算数运算指令、逻辑运算指令、移位指令、数据处理指令、 高速处理指令、比较指令、方便指令、时钟指令、外部设备i/o指令、外部设备 SER指令、浮点数运算指令等。所述步骤(2)中,所有构件均以控件的形式提 供给设计器使用,使用者在设计器上拖放控件来设计梯形图。设计器为使用者 提供一个可以进行界面设计的工具,该工具能通过拖拉控件的方式实现梯形图 的编辑,控件的添加、删除、移动、剪切、复制、粘贴、修改属性等常用的操 作都由设计器进行管理。所述步骤(4)中,首先将梯形图转化成有向图,再将
有向图进行串并规约,最后把规约结果转化成IL指令;这些转换过程都是以梯
级为单位的。所述步骤(5)中,组合构件的设计环境包括组合构件列表和査询、 组合构件功能名、参数列表、功能说明、梯形图设计区或IL指令输入区、更改 组合构件图标、按钮操作和错误列表八个部分。
本发明的有益效果是通过一种基于构件的梯形图设计方法,复用经过验
证的构件可以保证设计结果的正确性和可靠性,同时使用者可根据需要自行设 计组合构件,提高使用者设计梯形图程序的效率。


图1是基于构件的梯形图设计方法结构框图; 图2是基于构件的梯形图设计方法流程图; 图3是梯形图构件的分类图4是组合构件的属性图5是梯形图设计平台的关系框图6是梯形图程序转化成IL指令流程图7是组合构件的组装过程图。
具体实施例方式
本发明提供一种基于构件的梯形图设计方法,结构参见图1,设计流程参见 图2,包括以下步骤-
步骤l:建立梯形图算法构件库
构件库包括基本构件和组合构件,这些构件都以控件的形式通过构件查看 器提供给设计器使用。
基本构件库实现梯形图基本算法,主要包括基本指令、程序流程应用指令、
4传送指令、算数运算指令、逻辑运算指令、移位指令、数据处理指令、高速处
理指令、比较指令、方便指令、时钟指令、外部设备I/O指令、外部设备SER
指令、浮点数运算指令等。
按类型可将所有构件分为触点、输出、功能块、其他等四个类别,见图3。每个构件都包含设计属性和调试属性两种基本属性,设计属性在设计梯形图时进行设置,包括该构件的位置、大小、参数信息、串并联信息等;调试属性包括该构件所对应的IL指令号、调试箭头指示使能、状态值等,IL指令号表示梯形图转化成IL指令后,与之对应的IL指令所在的编号,进行单步调试时,将根据IL指令号找到相关构件,并开启其调试指示箭头,同时读取与构件相关的内存信息,显示数据和连通状态。
触点构件包含类型名、参数、串并联接口,输出构件包含类型名、参数,功能块构件包含类型名、输入输出数据、串并联接口,其他类构件包括换行符、跳转标号、注释、多个梯形图页面连接符等,针对不同类型,属性信息也各不相同,主要用于梯形图设计中的辅助功能。组合构件相当于功能块构件,除了基本构件的属性之外,还包括功能说明、实现具体功能的梯形图文件信息或与之对应的IL指令等,见图4。
步骤2:创建设计器,提供梯形图构件设计环境
所有构件均以控件的形式提供给设计器使用,使用者在设计器上拖放控件来设计梯形图。设计器为使用者提供一个可以进行界面设计的工具,该工具能通过拖拉控件的方式实现梯形图的编辑,控件的添加、删除、移动、剪切、复制、粘贴、修改属性等常用的操作都由设计器进行管理,对象管理实现对控件属性实例化管理,工程管理实现对多个梯形图页面加载管理,见图5。
设计器主要包括构件对象、宿主、容器以及服务等概念。构件是设计器体系结构的核心,它被其他实体直接或间接地使用。设计器是连接其他实体之间的粘接剂,它使用设计器宿主获得对设计时构件对象的属性和接口的访问权,并提供自身的一些服务。设计器中的每个构件都具有唯一的站点名,即唯一Name属性,容器通过站点名对构件对象进行管理。宿主处于设计器的关键位置,宿主容器承担着对构件的创建以及将它们绑定到设计器、为其管理的构件和设计器提供服务,如选中构件服务等。容器是用来管理构件对象的,在设计器的上下文中,构件和它的容器之间的关系通过站点关联。 一个容器对应多个构件和站点,而构件与站点之间是一一对应的。
添加控件的工作原理是首先创建控件,主要是为控件分配内存空间,设置初始属性和状态,然后将控件加入管理链表。剪切、复制、粘贴、删除等操作就是对管理链表进行编辑。査找操作就是在管理链表中查找属性值中含有査找元件的构件,替换操作将相应值替换成新元件名,注释操作对相应构件的注释属性赋值。修改属性操作在对象管理部分完成,移动、单击、双击等其他操作均采用捕获鼠标或键盘消息事件进行处理。另外还包括撤销和重复操作,其工作原理是先在内存中存放撤销和重复两个链表,将操作类型进行分类,各个类别记录相应的信息;进行一个操作时将其添加到撤销链表,若重复链表中有内容则清空;进行一个撤销操作时将其添加到重复链表,并从撤销链表中删除;进行一个重复操作时将其添加到撤销链表,并从重复链表中删除。这两个链表都符合堆栈的后进先出原则。
步骤3:梯形图设计结果的保存与打开梯形图工程包括两类文件.xml文件和.il文件。梯形图设计结果由XML语言进行描述,下面给出基本框架<LadderDiagram>
Object type」'类型名"name^'梯形图名'^<Property name^'属性名"〉属性值〈/Property〉
</0bject>
Object type^'类型名"name二"控件名"〉<Property name-"属性名"〉属性值〈/Property〉
</0bject>
Object type-"类型名"name^'控件名"〉
<Property name^'属性名"〉属性值〈/Property〉
</0bject>
Object type-"类型名"name^'控件名"〉
<Property name二"属性名">JS14{S</Property>
</0bject></LadderDiagram>
第一个Object表示存放梯形图控件的容器,梯形图名为唯一的标识,属性包括页面大小、梯形图右母线位置、页面中构件统一基本大小等。接下来的每
一个Object对应梯形图上的一个控件,属性包括所有设计属性和调试属性。
保存描述文件时,首先保存控件的基本信息,获取每个控件的名称,根据配置文件中的描述内容,对控件的属性进行了过滤,得到描述文件中的各个属性之后,对获取的属性值进行类型的转换,添加到描述文件的节点中;然后获取其他自定义属性及其对应的值,添加到描述文件中。控件的属性值信息一般以字符串的形式保存在文件中。保存文件是一个序列化的过程。
打开文件时,先根据类型和名称生成该类型的控件,并根据XML节点信息依次对控件的属性进行赋值。对XML节点的属性值需进行类型转换,将其转换成符合属性要求的类型。打开文件是一个反序列化的过程。
.il文件以文档形式保存,并设计一个自定义控件用来显示IL指令表。该编辑器控件将所有指令名作为关键字, 一旦文档中含有关键字字符串,该字符串就高亮显示。编辑器控件还设计了自动格式化的功能,点击鼠标或按下回车符,选中行的字符串全部转化为大写字符,指令表的标号、指令名、参数、注释以一定间隔隔开,保证指令表格式统一,此外该控件还具有査找、替换、复制、粘贴等功能。
步骤4:梯形图程序转化成IL指令
梯形图程序到IL指令的转换过程见图6。首先将梯形图转化成有向图,再将有向图进行串并规约,最后把规约结果转化成IL指令的过程。这些转换过程都是以梯级为单位的。
梯形图是由许多控件组合成的,这些控件的信息是从指定的XML文件中读取的。根据每个控件的位置信息将控件的信息记录到二维数组中。此二维数组的大小是根据梯形图中控件位置来动态调整的,二维数组中的元素是梯形图元件类对象。梯形图元件类对象记录了 XML文件中每个控件节点各项存放的控件属性信息。
完成XML文件的读取后,从二维数组的第O行开始扫描,直到扫描到一个梯级的最后一行,记录下此梯级的起始行号及整个梯级所包含的行数。
首先对当前梯级结构进行预处理,包括对不规则结构的规范化,及换行符的处理。因某些合法但不规则的结构会影响后面梯形图到有向图的转换,所以要将不规则结构规范化。程序按列扫描当前梯级,根据不规则结构及换行符的特征对梯级中的每个元件进行判断,当扫描到不规则结构时,通过修改二维数组中相应位置的元件信息来实现规范化。当扫描到换行符时,将换行符所在行
7的所有元件信息存放到对应行中,并清空原来的信息。
经过预处理后,开始实现梯形图到有向图的转换。有向图中的"顶点"表示梯级中的除横线和竖线之外的控件。有向图中的"弧"表示各控件间的连接关系。首先从行从左到右扫描当前梯级,得到梯级中所有顶点,并将顶点信息存放到一维顶点数组中,顶点信息包括顶点所表示控件的所有信息、顶点连接的弧、与顶点连接弧的个数,在此处只得到了顶点所代表控件的信息。在扫描顶点信息的同时,根据各控件周围的结构特征判断是有不合法的结构存在,如当前控件与其他控件不存在连接,短路结构等。然后逐个扫描顶点数组元素,根据相邻两顶点元素的连接关系建立相邻两顶点间的弧,并将所有弧信息记录到一维弧数组中,弧信息包括弧所连接的顶点和连接有相同顶点的弧,在此处只记录了弧所连接的顶点。最后对弧数组进行逐个扫描,并结合顶点数组信息,得出与每个顶点有连接关系的弧及弧的个数,具有相同连接顶点的弧信息,完成了有向图的建立。
将梯级转化成有向图后,进行有向图中的顶点串并规约。串规约是将具有串联关系的顶点合并成一个新的顶点,并将两顶点的信息及连接关系记录到新顶点中。并规约则是将具有并联关系的两个顶点合并成一个新的顶点,并将两顶点的信息及连接关系记录到新顶点中。有向图顶点的串并规约是将串规约与并规约循环交替进行,直到将所有顶点合并成一个顶点。规约完成后,将合并
成的顶点所记录的信息转换成IL指令,最终完成梯形图到IL指令的转换。步骤5:定义组合构件结构,构造设计环境
组合构件结构体中的变量分为两部分, 一部分用来描述组合构件的各个属
性,以此来确定唯一的组合构件,包括指令名、参数、梯形图文件或IL指令的语句、使用的参数、实际的名称和参数、构件功能说明;另一部分记录操作码、操作数、标号、参数的位置等信息,在使用者实例化组合构件时,用于新参数替换旧参数的操作。
组合构件信息也用XML语言进行描述并保存下来,使用者可以对其进行添加、修改、删除等操作。以下代码是一个组合构件的实例〈Object Name="Composhion">
<PropertyName="Name">SCMPB</Property>
〈Property Name="Parameter">VLO</Property>
<Property Name="Parameter">A</Property>
<Property Name="Parameter">Kl 28</Property><Property Name="Parameter">VL 1 </Property>〈Property Name="Parameter">B</Property><Property Name="Userpa">A</Property>〈Property Name="Userpa">B</Property><Property Name="Sentence">MOVB VL0,A</Property>〈Property Name="Sentence">ADDB VL0,K128</Property><Property Name="Sentence">MOVB VLl,B</Property><Property Name="Sentence">ADDB VLl,Kl28</Property><Property Name="Sentence">CMPB VLO,VL1</Property><Property Name="Operator">MOVB</Property><Property Name="Operator">ADDB</Property><Property Name=" Operator">MO VB</Property><Property Name="Operator">ADDB</Property><Property Name="Operator">CMPB</Property><Object Name="parameterModules">
<Property Name="parameterModule">VLO</Property>〈Property Name="parameterModule">A</Property></Object>
<Object Name="parameterModules">
<Property Name="parameterModule">VLO</Property><Property Name="parameterModule">Kl 28</Property>
</Object>
<Object Name="parameterModules">
〈Property Name="parameterModule">VLl </Property>〈Property Name="parameterModule">B</Property>
</Object>
<Object Name="parameterModules">
<Property Name="parameterModule">VLl </Property><Property Name="parameterModule"〉Kl 28</Property>
</Object>
<Object Name="parameterModules">
〈Property Name="parameterModule">VLO</Property><Property Name="parameterModule">VL 1 </Property></Object>
〈Property Name="ParameterSite">0</Property><Property Name="ParameterSite"> 1 </Property〉〈Property Name="ParameterSite">0</Property>〈Property Name="ParameterSite">2</Property><Property Name="ParameterSite">3</Property><Property Name="ParameterSite">4</Property><Property Name=" Parameter S ite" >3 </Property>〈Property Name="ParameterSite">2</Property><Property Name="ParameterSite">0</Property><Property Name="ParameterSite">3</Property>〈Property Name="Information">8位有符号比较指令
若A&lt;B,贝UF卜l, F0 = 0;
若A-B,贝UFO-l, F1=0;
若A&gt;B,贝UFO二F卜l;</Property></Object>
该构件的名称为SCMPB,构件的功能为8位有符号比较指令,若A〈B,贝llFl:l, F0 = 0;若A:B,贝ijFO:l, F1=0;若A〉B,贝UF0:F1:1。参数总共有5个,其中用户定义的参数有2个,实现该功能的指令有5条,其余均为参数位置信息,用于替换新参数。
组合构件的设计环境包括组合构件列表和査询、组合构件功能名、参数列表、功能说明、梯形图设计区或IL指令输入区、更改组合构件图标、按钮操作和错误列表八个部分。
组合列表将所有组合构件名及其对应的参数个数列举出来,査询功能将根据组合构件名查找出匹配构件信息,并将该构件对应的所有信息显示出来。组合构件名、参数列表、功能说明、梯形图设计区或IL指令输入区和更改图标等区域用于输入新增或修改构件的相应信息,按钮操作包括添加、删除、修改、清除内容等操作。进行添加或修改时,首先检查组合构件名是否己经存在,其次检查参数列表是否与梯形图或IL指令中的参数匹配,然后检査梯形图或IL指令语法是否符合规范,包括逻辑关系是否正确、功能名与相应参数是否匹配、参数是否越界等,如果验证不通过,则将错误信息或警告信息列举在错误列表中,验证通过则添加到组合构件库中。组合构件的组装过程见图7。构件组合可采用两种方式梯形图方式和指令表方式。梯形图方式与原有的梯形图设计方式相同,梯形图设计完后,将对梯形图逻辑关系进行解析;若采用指令表方式,则直接输入指令集,解析指令集逻辑关系。设计过程中也可添加之前已经设计好的组合构件,即允许组合构件套组合构件的模式。
由此经验证过的组合构件便可多次使用在梯形图程序中,即能保证其正确性,又能减少设计时的操作。
以上所述仅为本发明一个实施例,当不能以此限制本发明范围,凡依据本发明所做的结构上的变化、功能模块的增删,只要不失本发明的要义所在,都应视为落入本发明保护范围之内受到制约。
权利要求
1、一种基于构件的梯形图设计方法,其特征在于,包括以下步骤(1)建立梯形图算法构件库。(2)创建设计器,提供梯形图构件设计环境。(3)梯形图设计结果的保存与打开。(4)梯形图程序转化成IL指令。(5)定义组合构件结构,构造设计环境。
2、 根据权利要求1所述基于构件的梯形图设计方法,其特征在于,所述步骤(l) 中,所述构件库包括基本构件和组合构件,其中,所述基本构件库实现梯形图 基本算法,主要包括基本指令、程序流程应用指令、传送指令、算数运算指令、 逻辑运算指令、移位指令、数据处理指令、高速处理指令、比较指令、方便指 令、时钟指令、外部设备I/0指令、外部设备SER指令、浮点数运算指令等。
3、 根据权利要求1所述基于构件的梯形图设计方法,其特征在于,所述步骤(2) 中,所有构件均以控件的形式提供给设计器使用,使用者在设计器上拖放控件 来设计梯形图。设计器为使用者提供一个可以进行界面设计的工具,该工具能 通过拖拉控件的方式实现梯形图的编辑,控件的添加、删除、移动、剪切、复 制、粘贴、修改属性等常用的操作都由设计器进行管理。
4、 根据权利要求1所述基于构件的梯形图设计方法,其特征在于,所述步骤(4) 中,首先将梯形图转化成有向图,再将有向图进行串并规约,最后把规约结果 转化成IL指令;这些转换过程都是以梯级为单位的。
5、 根据权利要求1所述基于构件的梯形图设计方法,其特征在于,所述步骤(5) 中,组合构件的设计环境包括组合构件列表和査询、组合构件功能名、参数列 表、功能说明、梯形图设计区或IL指令输入区、更改组合构件图标、按钮操作 和错误列表八个部分。
全文摘要
本发明公开了一种基于构件的梯形图设计方法,包括梯形图基本算法构件库设计、构件组装实现特定功能、构件组合设计梯形图,梯形图基本算法均以构件形式存在,使用者可通过基本构件的拖放设计梯形图,同时也可组装现有构件形成组合构件,直接拖放这些用户自定义的构件进行梯形图设计,组合构件也是可重用构件。所有组合构件需经解析,确保其语法正确后才能添加到构件库;本发明复用经过验证的构件可以保证设计结果的正确性和可靠性,同时使用者可根据需要自行设计组合构件,提高使用者设计梯形图程序的效率。
文档编号G05B19/05GK101561671SQ20091009915
公开日2009年10月21日 申请日期2009年6月1日 优先权日2009年6月1日
发明者义 严, 赵建勇, 邬惠峰 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1