外文翻译-plc静态切片阶梯变换

上传人:第*** 文档编号:38803318 上传时间:2018-05-08 格式:DOC 页数:13 大小:306.50KB
返回 下载 相关 举报
外文翻译-plc静态切片阶梯变换_第1页
第1页 / 共13页
外文翻译-plc静态切片阶梯变换_第2页
第2页 / 共13页
外文翻译-plc静态切片阶梯变换_第3页
第3页 / 共13页
外文翻译-plc静态切片阶梯变换_第4页
第4页 / 共13页
外文翻译-plc静态切片阶梯变换_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《外文翻译-plc静态切片阶梯变换》由会员分享,可在线阅读,更多相关《外文翻译-plc静态切片阶梯变换(13页珍藏版)》请在金锄头文库上搜索。

1、29 届中国控制会议公报7 月 29-31 日,2010 年,中国北京PLC 程序静态切片的阶梯转换程序静态切片的阶梯转换王达1、赵千川21.智能和网络中心系统部门,自动化和 TNLIST,清华大学北京 100084,中国电子邮件:2.智能和网络中心系统部门,自动化和 TNLIST,清华大学北京 100084,中国电子邮件:摘要:摘要:可编程控制器(可编程逻辑控制器)是一种通用工业控制平台,可靠性高,它已被广泛使用在许多实时控制系统,如传输线和连铸机。随着越来越多的大小和复杂程序,传统的手工测试由于低效和容易出错的领域特征已经不能满足现代工业的需求。程序切片是一种程序设计方法的分析和理解。根据

2、部分切片准则,它消除了无关紧要的语句从源代码中获得一组感兴趣程序段。通过这种方式,程序的范围在研究是缩小了。在本文中,PLC 程序切片项目将被研究。PLC 程序的切片需要特殊处理,通常不必要用其他软件编写高级语言和汇编语言。例如,PLC 程序运行在循环操作模式,他们通常允许每个阶梯来包含多个输出端口,使输出端口在一个语句里的数量比在其他软件要大得多。我们首先介绍一个阶梯转换为准备程序切片,接着是静态切片算法控制方案的提出。最后用一个演示表明这种方法可以有效减少程序的规模。关键词:PLC;阶梯转换、静态切片,循环片1 简介简介可编程序逻辑控制器,简称 PLC,是一个中通用工业控制平台,可靠性高,

3、广泛应用于许多实时控制系统,比如传输线路和连续铸造机器。它的可编程特性提供了灵活性,可为工程师设计、调试和修改 PLC 程序。然而,这也同样增加引进错误的机会。因此,PLC 程序通常需要很多重复测试和修改才可用于目标系统。随着技术的发展,指导系统和存储容量不断扩大以满足逐渐复杂的控制和通信任务的需求。所以 PLC 程序不再只包含简单的逻辑指令。一些新的指令涉及数据操作,通信和过程控制也会被使用。同时,PLC 程序随着大小的增加变得更加复杂。所有这些原因使测试大 PLC 程序成为一项冗长且艰难的工作。传统的手工测试由于其效率低下和容易出错的特性通常无法满足工业领域的需求。然而,如果我们能有效减少

4、搜索范围,测试效率会大大提高。对于大型 PLC 程序,工程师们通常把它们分成几个模块做模块化测试。因为语句的数量在每个模块远远低于整个程序,它的可能性的实现让工程师能比较充分的测试程序的一部分。每个模块通过测试后,整个系统将运行的实验方法来检查整个项目是否满足要求。然而,这种方法可能隐藏一些问题之间的相互作用引起的不同的模块。例如,如果一些模块控制一个工业机器人在传输线路并通过测试。如果机器人单独运作,我们只能保证这个机器人会执行正确的行动。至于整个系统,它可能不会表现好因为不同的机器人可能会干扰甚至相互碰撞。最初提出程序切片的是 Weiser,他提供了另一种单独的程序。它是一个静态程序分析技

5、术提取的适当部分项目有关的一个应用程序1。它可以根据程序的是否必需输入分为静态切片和动态切片两种。这种技术已经被广泛的研究和应用多种用途:编译器优化、调试、模型检测和协议的理解等2。然而,大多数程序切片算法开发的高级语言或者汇编语言并不能直接应用到 PLC 程序,这是执行的循环操作模式。这意味着有一个外环为一体的程序,这使得现有的算法不适合 PLC 程序。此外,PLC 程序比其他程序包含更丰富的指令集,如定时器和计数器。在本文中,我们提出的算法来计算静态片 PLC 程序。首先,我们提出一些限制的 PLC 程序,以便它可以推断出一个给定的语法。通过这种方式,我们可以正式定义范围的 PLC 程序,

6、可以分析和排除一些指令,它很少用于实践。通过引入的定义逻辑周期和循环片,我们扩展为概念的静态切片和数据依赖。基于静态切片的属性,我们提出两个自动算法来分别计算静态向前和向后切片。此外,我们注意到,阶梯转换之前会通过计算使片变小。所以我们先研究逻辑等价的阶梯子,然后给这种转变一个算法。本文组织如下。第 2 节介绍 PLC 程序的特性。第 3 节描述阶梯转换算法。第 4 节提出算法计算静态向前和向后切片。第 5 节是个研究案例。最后,第 6节是结论和未来的研究主题。2 PLC 程序程序可编程序逻辑控制器,作为一个种工业控制平台,通过调整硬件和软件来适应工业现场环境。虽然它仍是基于理论的一般的电脑,

7、但比起一般的电脑,它已经添加各种接口设备,细节监控软件,以及专门的编程套件3。正是这些调整,使 PLC 程序不同于其他的计算机程序。事实上,PLC 程序的编程列表不同所以类型不同,不同厂家之间的 PLC 也有一定差异,为了方便我们的研究,统一根据巴科斯范式语法的特点来描述 PLC 程序。2.1 特性特性对比与其他计算机程序、PLC 程序有四个主要特性,列举如下。 汇编语言汇编语言PLC 编程语言分为两种基本类型,图形化语言和文字语言。前者包含阶梯形图(LD)、功能块(FB)和顺序功能图(SFC)。后者包含指令列表(IL)和结构化文本(ST)4。通过这种方式,相同的函数可以在不同的编程语言编写的

8、。然而,并不是所有的五种编程语言都是如此广泛地使用。其中,LD 是运用最普遍的一个,也是我们研究的重点。 操作模式操作模式主要反映在两个方面,循环操作和批处理操作3。PLC 程序中的执行工程如图 1 所示。图 1.的 PLC 程序的执行过程上述过程中、PLC 程序收集所有的输入信号,并将其写入到输入寄存器。然后,CPU 扫描程序从上到下,从左到右。当遇到一个输入指令时,CPU 从相应输入或输出寄存器的读取数据位用于计算。当遇到一个输出指令时,结果会写进输出寄存器。最后一条语句之后执行后,数据会同一时间在输出寄存器中输出。这种过程保证了当程序扫描没有外部的信号将进入 PLC 的输入寄存器,就没有

9、结果将被导出到外部端口在输出寄存器(直接输入和输出指令的高性能 PLC 是我们无法想象的)。 指令系统指令系统指令系统的 PLC 不仅大,也相当复杂。例如,在罗克韦尔 PLC 的RSLogix5000 编程套件的指令数多达 29 类 175 条5。此外,用户还可以根据需求定义新的指令。相比之下,C 编程语言指令数量只有 4 类 32 条,也没有计数器和定时器等。 语句语句由于小型 PLC 受了内存约束,所以程序的规模一般相对较小,并且这些语句是按次序排列。然而,对与大、中型的 PLC 程序,规模始终很大,通常有一些层次结构。在这里,我们只考虑最小逻辑单元,这种调用称为罗克韦尔 PLC程序。此外

10、在 PLC 程序的多数逻辑变量的数目通常是超过素质变量的,起源于机电继电器。在每个语句中,通常有多个输入变量。至于输出变量,根据不同PLC 的型号,他们的数量可以是一个到几个。2.2 正式语法正式语法正如我们在介绍中提到的,阶梯转换将介绍了 PLC 程序。为此,我们研究的PLC 程序前需要定义 PLC 程序的正式语法, 。下面是一个扩展语法,在参考文献中6。语法 1.:= | := | := | | | | | | “” “”:= | | “” “”:= “, ” | “ , ” | “, ”| “, ” := “, ” | “, ” := XIC | XIO|:= OTE | TON|从这个

11、语法,我们可以看到没有指令的空阶梯是无效的。这意味着在阶梯上必须有至少一个输出指令。注意,在这里我们没有限制输入指令的数量。2.3 示例示例图 2 所示的 PLC 程序从文献7中获取的并有细微的修改,可以推导出语法1。这个程序的功能是将用于本文中演示顺序控制的三个电机。本程序的功能如下。(1)当按下启动按钮,三个电机启动一个接一个,每个间隔 5 秒。(2)当按下停止按钮,三个电机停止一个接一个,每个间隔 3 秒。图 2. PLC 程序顺序控制3 阶梯转换阶梯转换PLC 程序将被转换为一个逻辑等价形式,那里一个阶梯对应一个输出指令。拥有它之后,接下来的过程中,我们可以得到更小的片段。3.1 定义

12、定义定义 1(阶梯)。阶梯子 l 生成语法 1,这是一个 PLC 程序语句,表示一个 3元组,在那里是一组输入变量,I = i1,i2,iKI,KI 表示输入变量的数量,O 输出变量 O=o1,o2,oKO,KO 表示输出变量的数量。f:IO 是一个函数,表示逻辑或的算术运算的输入变量。从语法 1 中,我们可以知道,我的输入变量可以是空的,输出变量 O 不能是空的。定义 2(解释)。给定一个阶梯 l 所产生的语法 1,变量 i1,i2,iKI,是阶梯 l的输入变量,o1,o2,oKO是阶梯 l 的输出变量。IN(i1),IN(i2),IN(iKI)代表了计算结果的变量。通过 i1,i2,iKI

13、输入指令,用来解释阶梯 l 是一个函数。fIK:IN(i1),IN(i2),IN(iKI)T,FKO,k=1,2KI,在 IN(i1),IN(i2),IN(iKI)只能分配给 T 或 F。定义 3(逻辑等价)。阶梯 l1和阶梯 l2生成语法 1。如果 l1和 l2是相同的,那就是 fIK(l1)=fIK(l2),k=1,2KI然后阶梯 l1是逻辑上相当于阶梯 l2,记为 l1l2。3.2 定理定理定理 1.逻辑等价的阶梯产生语法 1。也就是说,如果我们发现 l1l2和 l2l3,然后必须 l1l3。定理 2. 语法 1 产生阶梯 l,就必须有一个转换 l这样 ll,其中 l是子阶梯产生的并行输

14、出变量。这个定理不仅指出,任何阶梯可以转化为一个指定的形式,但也为下面的算法提供一个理论基础。3.3 算法算法这是一个搜索算法在语法树,它描述了输入变量和输出变量之间连接关系。这些连接可以分为两类,并行连接和串行连接。如果当前的连接是一个并行连接,将生成分支节点。否则,将需要一个新分支。下面给出的详细算法。算法 1阶梯变换输入:阶梯 l输出:转换后的阶梯 l步骤 1.阶梯 l 生成语法树。步骤 2.确定所有的输出阶梯升的语法树并设置标签“”在每一个输出节点。步骤 3.深度优先搜索“”标记的节点搜索。如果当前节点是有“”标记的节点,然后转到步骤 4,否则,请转至步骤 5。步骤 4.重复步骤 3,

15、直到所有节点都被搜索。步骤 5.将整个树,并删除第一个标签上的“”原来的树。步骤 6.搜索的第一个标签“”的副本的节点。步骤 7.如果更换右侧标签的节点有一个兄弟节点,父节点的节点标记“”。步骤 8.更换其祖父节点的节点标记“”,如果它的父节点的一个分支节点步骤 9.对齐当前节点是否是根。如果当前标记的节点是根,则转到步骤 10,否则移动标签“”到步骤7。步骤 10.他们父节点的离开节点和储存他们在连接中的内容,然后删除离开节点。步骤 11.重复步骤 10,直到当前节点是根节点。步骤 12.存储的内容的根节点,即是其中之一子阶梯的转化阶阶梯 L,然后转到步骤 3。通常情况下,PLC 程序包含许

16、多阶梯。如果我们想要转换后的 PLC 程序,我们只需要使用算法就得到逻辑上相当于原来每个阶梯。然后,把分离的阶梯子放到一个阶梯里,哪里就只有一个阶梯输出变量。最后,这些阶梯排列形成一个新的 PLC 程序。4 静态切片静态切片在本节中,我们首先给出了定义的逻辑周期和循环片,它提供了一个基础的计算切片,然后扩展概念从文献8、9对 PLC 程序。基于属性的静态片,我们提出两个自动算法来计算静态向前和向后片。4.1 定义定义定义 4(扫描周期):一个周期称为扫描周期,如果输入采样,通过程序扫描并结束与输出更新,记为 SC。定义 5(逻辑循环):一个周期称为逻辑循环程序 P,它的值被改变(逻辑或数值)在连续的周期,由 LC 表示存在一个输出变量。在这里,我们定义的第一个周期程序 P

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号