




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0PLC软件发展的改进方案心得体会报告FlavioBonfattiGianniGaddaPaolaDanielaMonariDeptofEngineeringSciencesDemocenterscrlDeptofEngineeringSciencesUniversityofModenavialeVirgilio,55UniversityofModenaviaCampi,213/B41100Modena(Italy)viaCampi,213/B41100Modena(Italy)+395984881041100Modena(Italy)+3959378514g.gaddademocenter.it+3959378514bonfattiunimo.itbonfattiunimo.it摘要可编程逻辑控制器(PLC)软件是众多各种各样的自动化机器和设备的重要组成部分。不管它的工业相关方面,其目前的开发实践存在着严重的缺点,导致了质量差,可再利用率低和其他问题。本文旨在提出一个已专门研究改进其过程的设计开发方法和底层模型。这种方法辅助初始设计阶段和改进设计阶段,形成一个完整的,均一表示结构和动作的样子,有利于早期的正确性和一致性验证,引导有条不紊的软件编码和测试,并保持独立的编程语言。虽然采用了面向对象架构的基本原则,但是模型引入了特有的基元去捕获PLC软件的特性和实现更高的程度的模块化。此外,它用不变量和转换条件代替方法在声明形式上去表达更多知识。关键词:工艺改进,工程需要,设计,重复利用,PLC1简介基于PLC的系统范围从简单的数控机床到非常复杂的仓储,运输和包装设备,包括直角坐标机器人,绕线机,堆垛机以及许多其他不同类型的自动化系统.个人或者课堂上允许免费使用数字或硬拷贝全部或者部分这些资料,但不可用于商业利益中。版权须知,标题出版物和显示日期,版权是通过ACM股份有限公司许可的。要以其他方式复制,重新发布,在服务器上发布或者重新分配列表,需要特定的权限和/或费用。ICSE97BostonMAUSACopyright1997ACM0-89791-914-9/97/05.$3.50其中之一的全球成本下降0.1和500万欧元之间,软件成本平均在5%至10%,这些取决于系统的性质和复用率。考虑到每年大批基于PLC的系统的产出,PLC软件的绝对价值确实相当大。此外,PLC软件就是模拟系统,并控制着它们的动作,因此,它起到了非常关键的作用就整个系统的操作性和安全性:机械和电气器械是固定不动的直到软件开始运行以及它出现故障时。自动化市场的稳步增长和PLC的灵活性,保证了较低硬件成本和软件为基础的运动控制,向着更高水平的产品定制服务迈步。大多数开发人员属于中小规模企业之类的(中小企业)。传统的专业化的中小型企业青睐实行分包的工作组织。这要求支持当前PLC软件工程实践不提供的合作社发展。系统的开发通常分为两个主要阶段,即结构的发展(机械和电气元件)和控制的发展(电子和软件组件)。后者是从前者的要求派生的,机械-电气项目团队对客户的要求的理解决定了系统的运动方式。两个项目团队的文化一般是不同的,共同的语言是很难定义的,信息的缺乏和误解这些结果在开发过程中引发了一些修正和迭代。目前的PLC软件工程实践受制于硬件供应商的所提供的编程环境,因为具体的设计方法和工具仍然缺乏。硬件供应商提供的专有低级编程语言或者通过IEC1131-3的标准版本【7,13】。因此,在没有进行有意义的设计活动下,要求规范被非正式的进行,软件编码立即执行。编程组织是既没有技术也没有资源来重新塑造自己的内部实践的精简的结构,必需依赖于程序员的经验。引进IEC1131-3标准(过去的几年主要精力花在PLC软件的发展)解决了可移植性和互操作性问题,但它没有显著提高初始阶段的软件生命周期。本论文的目的是提出设计和开发方法,底层模型,命名为“更容易”,这是已专门研究的改进过程。该方法支持初步的改进设计阶段,产生了完整的,均匀的表示系统的动作,有利于早期的正确性和一致性验证,引导有条不紊的软件编码和测试,并保持独立的编程语言。虽然采用了面向对象架构的基本原则,但是模型引入了特有的基2元去捕获PLC软件的特性和实现更高的程度的模块化。此外,它用不变量和转换条件代替方法在声明形式上去表达更多知识。从PLC软件的性质研究具体的解决方案的原因是,基于PLC的系统是最常见的时钟驱动实时系统,及其它提出了一种有较差的时间约束(20到50赫兹)【13】的典型循环执行。在每个周期期间,它检测输入的值和工作变量,并计算这些工作和输出变量。执行时间越长,系统状态检测频率越低。像状态图工具管理分层状态图的能力是有趣的,但是它们也不能捕获所有所需的知识,以实现一个完整的系统控制(见章节改进方案)。此外,时钟驱动PLC软件的本质可以防止从应用方法设置为顺序的软件,作为这些建议在【8,14,16】,这是表示动态的可怜方法。甚至最近的OMT模型【16】的不正规约束以及状态转换的细节(触发事件,不良反应),因此不能支持正确性控制。最后,正式的模型【6,12,17】并不适用复杂系统表示,并难以使用和转换为PLC语言。这里提出的改进过程已经被ESPRIT-ESSI项目10542-EASIER(对于可编程逻辑控制器增强了应用软件的实现)。本文定量的信息报告来自该项目进行的实验。一个全面发展的方法,作为ESPRIT项目22273-AUTOMAT(对于提高机床自动化的方法和组工具)在计算机数控(CNC)机床该领域正在进行。欧洲共同体委员会【CEC】部分支持这两个项目。本文分为六个主要部分。下一节介绍“更容易”模型的基本概念,下面两节提出了应用方法的两个步骤,即计划建设和计划改善。然后,一节考察一致性验证问题以及下一节介绍来自模型应用的代码生成实践规则。最后一节讨论所提出的方法对PLC软件开发周期的影响。3“更容易”模型该模型是基于面向对象的范例,最初的灵感是来自一根棒的作品【18】。它为对象组合建立严格的指导方针,因此,通过组合它的部件单元可以获得一个复合系统的控制代码。它使用法则和操作原语,代替传统的,原始的【2,5】方法【常规】,以保持系统的合法性和稳定性。报道的例子在这和下面的部分仅就它们的重要方面做出评论。对象系统单元模型为对象类型,对象的概念,用异常的方法,我们采用的是类似经典的面向对象的范例。从静态的角度来看,一个对象类型的特征在于是有一个名称,一个属性和组件列表。简单单元不存在复合结构,因此,它们只描述属性表示输入或输出,设置,状态和工作变量。一个属性由它可以给出的值的一对【属性:域】表示。复杂单元的定义包括参与组合的表达对象的组件。一个组件被声明为一对【角色:对象】定义类型的扮演特定作用的对象。根据面向对象的范例,一个对象类型可以通过专门定义。专门类型继承了起源于对象的属性和组件,除了添加和重新定义。重新定义组件仅限于映射到一个子型,重新定义属性意味着限制其定义域。合法法则常量,关系到每个对象类型的约束空间的合法状态和合法状态的变化。它们被编写为谓词演算【1】的表达式【法则】,应用到当前和前一个状态的对象,如果有的话,作为它的成分。关键字“过去”前的属性名称是指属性值之前的最后一个状态对象的变化,因为它发生在埃菲尔【14】.更准确地说,如果Si-1和Si代表先前的和当前的对象状态,Si-1所有的值是记为“过去”独立于它们是否改变或者在Si中。然后,合法性法则可以看作是后置条件。当一个合法性冲突被检测到,控制器必需采取行动,或者拒绝非法状态的变化或者通过适当修改错误状态实现合法状态。出于这个原因,我们联想到每一个合法性法则相应的恢复操作。转换法则除了确保对象状态和状态变化的合法性,PLC代码的主要任务是通过计算出新的稳定状态解决不稳定状况。换句话说,自动化系统作为一个同步状态机【10,16】,在控制系统中,状态转换法通过比较对象状态和事件发生检测不稳定状态,计算出新状态并进行所需的操作。虽然合法性和稳定性问题在性质上是不同的,它们的管理都可以基于相同的建模解决方案,因为两者都需要定义的条件与相关的操作进行。虚拟对象相互影响的两个或两个以上的对象类型,在复合对象中,它们扮演着组件这个角色,经常呈现规律。这意味着某些法则存在所有它们参与的复合对象中,它们表达的约束,在上下文中这些组件必需要满足,即其上下文自由交互规则。这些法则可以从单一复合对象和关联到一个虚拟对象中删除,引入到这里的目的。这个对象类型被称为虚拟的,因为它没有对应的物理系统单元。在代码方面,一个虚拟对象4对应的控制程序执行时,这些组件对象协同工作。构造方案通过简单的例子,在这里我们展示了软件设计师所做的工作。其结果是系统控制的一个初步方案。这个例子引用输送机和挑选湾控制,因为它们是大多数自动化运输和仓储系统的典型元素(在不同的复杂程度)。由于一个单元的完整建模取决于其组件,系统表示通常遵循一个自低向上的方法。简单单元结构一个输送机移动对象通过一个引擎从入口点到出口点。在这个例子中,输送机被认为是一个简单的单元【没有组件】。改对象代表它具有许多属性作为单元参数和变量影响控制。下面定义报告参与单元控制的典型属性的一个示例:对象输送机长度:2000.2003物理参数输入光电管:布尔输入变量退出光电管:布尔输入变量输入信号量:(绿,红)输出变量退出信号量:(绿,红)输出变量发动机转速:(停止,低,高)输出变量状态:(就绪,等待下载,下载,等待传输,传输,忙,卸载,错误)过度变量模式:(手动,自动)设置变量注意:布尔工作变量定时器:(预置,复位,失效)工作变量物理参数描述具体单元的特性,影响其动作,输入变量给传感器值,输出变量设置操作执行器,过度变量是用来表示对象动态,引入设置变量约束系统的动作以符合用户的调节选择,工作变量允许记录中间值,包括典型的原语,比如定时器和计数器。简单单元合法性合法性法则定义了对象空间的合法状态和合法状态变化,包括违反情况下采取的行动。为了可读性,法则都做了标记,参照输送机的例子,下面的法则:Cvyr3:长度ge2008电机转速ne高5反应提示信息“错误速度”,电机转速:=低为防止长距离输送,电机转速是不允许达到高值的。如果出现这种情况,就会发出警告信息并降低转速。同样,状态变化可以约束在一下法则:Cvyr5:过去电机转速ne电机转速和过去电机转速eq停止电机转速eq低反应提示信息“错误加速”,电机转速:=低说明它是不允许突然从静止到高速运行的。需要注意的是恢复操作算法写在任何程序语言中(这里,类似于帕斯卡语言)。简单单元转换状态转换关系到系统动作对象状态变量的变化(就输送状态下来说)。在当前状态变量值和其他值表示一个事件的发生,左边的表达式采取的是一个布尔谓词的形式。右边的表达式描述计算执行确定新的状态和其他可能的副作用。例如:Cvyr7:状态(就绪,等待下载)和输入光电管以及输入信号量eq绿色状态:=下载,定时器:=设定描述了从就绪或等待状态到下载状态的过渡,以及附加启动下载定时器。复杂单元结构一个挑选湾基本上使用台输送机和两台调车机车。出口输送机出口托盘在仓库里。接着由第一调车脱离正交的输送托盘。然后拾取模块输送使托盘可用人工操作。第二次调车再次改变朝向仓库。最后,入口输送机把托盘送回到仓库。因此,挑选湾是复杂对象很显著的一个例子:对象挑选湾出口输送机:传送带组件拾取模块:传送带组件入口输送机:传送带组件第一次调车:调车机车组件第二次调车:调车机车组件形状校验器:布尔输入变量状态:(就绪,等待,忙,)过渡变量模式:(手动,自动)设置变量错误:整数工作变量运行命令:布尔工作变量复杂对象显示在一般情况下,同一类型的变量和参数出现在一个简单的对象里。上面的示例报告只是它们的一个样品。挑选弯应该在一定时间传送托盘,就绪意味着没有托盘在传送,等待意味着有操作人员在拾取模块上管理托盘,忙碌意味着在传送过程中托盘退出或进入设备。除了从合法性和过渡性法则,从这个定义上,组成结构和相对静止以及行为约束没有结果。复杂单元变量和转换作为单元本事,复杂系统的非法状态或非法状态的变化,6必须识别和管理。如下法则给出了一个示例:Pbay9:没有形状检验器或者错误ne0模式eq手动反应提示信息“操作员要求”,模式:=手动同样的,复杂系统显示自身的状态转换,参照所识别的状态变量(状态也在这种情况下)来表示。例如:Pbay11:状态eq就绪和过去模式eq自动以及模式eq手动状态:=等待然而,复杂单元的大部分知识都关注到它与组件单元的交互,以及本文中组件单元的交互。复合单元和组件单元的交互这种相互依存的关系既包括合法性和过渡约束。复合和组件单元的状态和特性的一致性都是通过法则表示的,像下面的小例子,迫使每个组件共享整个系统的运行模式(点符号表示组件属性):Pbay13:模式eq退出传送模式和模式eq第一次调机模式和反应退出传送模式:=模式;第一次调机模式:=模式过渡约束是非常重要的,因为它们同步了组件和复合状态图。状态图层次结构的想法不是新的【10,16】;我们提出的是一个分区强制执行模块化程度的标准。记住,过渡法则的特点是一个授权的条件和操作产生新的合法状态。这个条件是应用于复合单元和它的组件,以及把所有的组件属性考虑进去。这意味着复合单元的状态转变是可以确定的,还有其他原因,由发生的一个状态转换到它的一个组件中。法则:Pbay15:状态eq忙和过去传送状态eq卸载以及输入状态eq等待状态:=等待;建立挑选湾是准备接收一个新项目,只有当它处于完全空置时,那就是之前的项目已经返回到仓库时。反过来,运动可以改变复合单元属性和其组件。这意味着复合单元状态图的过渡可以确定,以及其它影响,组件状态图过渡触发。这个例子:Pbay17:状态eq等待和“进行”命令状态:=忙;拾取模块通告:=真意味着只要操作人员按压进行挑选湾按钮再次启动它,总体状况忙碌和确认这是通过通知变量给拾取模块的。这将影响拾取模块的过渡(记着它是一个传送机),例如:Cvyr19:状态eq等待运送和通知状态:=运送;注意,为了使组件描述和复合行为保持独立,后者是不允许直接修改前者的状态变量,但工作变量是用于此目的。在一个复合单元组件之间的交互在先前的例子当中,相互依存延伸到了合法7性和过渡法则。我们已经看到了Pbay13法则约束所有挑选湾组件遵守整体工作模式。同样的,挑选湾法则可以把组件的两个状态联系起来,像下面的例子:Pbay1:退出传送状态eq传送第一次调机通知反应第一次调机通知:=真意思是说,当出口输送机移动托盘时,为了准备后续装载作业,下面的拾取模块会被告知。关于对第一次调机状态的影响由下面的过渡法则表示:Shtr23:状态eq准备和通知状态:=等待运送;方案改进工厂控制通常是非常复杂的。虽然“更容易”表示法是简洁的最终数量的PLC代码语句,但是它通常包括了几百条法则。它重现了该方案在建模活动时造成现存的可以和应该改进的方面。在本节中,我们研究三个改进方案,意味着,如果适用,增加模块化以及因此而重新使用的潜在。专业化第一个改进的建议是通过采用已被定义的其他对象描述一个新的对象的可能性。一种常见的情况是一个新对象作为一个基本对象的变形出现,这种情况可以很方便通过专门模仿,使后者变为前者。这个专业对象继承了父型的结构(组件),属性(属性)和行为(合法性和过渡法则)。专业对象的特性通过添加新组件或约束那些继承,添加新属性或约束那些继承,添加新法则以防它们与那些继承有冲突。作为一个例子,假设我们有与挑选湾相关的形状检测器传感器,而不是在一些输送机上:检测传送对象是一台传送机形状检测器:布尔输入变量下面的法则可以添加用于区分正常传送机和检测传送机的行为:Chcv25:不是形状检测器模式eq手动和电机转速eq停止反应模式:=手动;电机转速:=停止对象定义专业化防止在一个基本单元类型控制代码引入不一致。行为参数化法一个进一步的改进方案在于组织对象法则转为模块,它的执行是由对象属性的特定组合来决定的,尤其是物理参数和设置变量。参照传送机,我们可以设想下,除了普通法则,一些法则在手动模式下执行以及其他法则在自动模式下执行。模式条件不是包括在每个法则里,在适当选择参数下,我们可以组织法则。以下标题:传送机法则普通法则8传送机法则模式=自动Cvyr27:处在状态(下载,卸载)电机转速eq低反应电机转速:=低传送机法则模式=手动引入传送机法则模块行为参数化法的好处基本上有两种:第一,对象方案变得更具可读性,因此更容易理解和确认;第二,更高的模块化程度使“更容易”法则翻译成可重复使用的PLC代码。虚拟对象假设M对象类型在不同系统可能与其他对象类型一起参与。它们在这种场景下的行为是通过有法则关联的相对应的复杂系统表示的。它可能会发生一些法则出现在所有场景下,这意味着M对象的交互与上下文无关的规律。为了避免冗余的定义和提高模块化设计,从不同复杂对象删除这些法则,并将它们关联到一个新对象是非常有用的,形成这种M组件。这个解决方案提出了一些缺点。每个原始复杂对象在其结构上被修改:用一个中间组件取代M单元降低与原始值关联程度,说N,N-M+1,从而在组件间引入一种层级,它不对应所感知的现实。此为,建模在这样出现问题,即M对象之一出现进一步在和其他对象相关联与上下文无关的行为。这将需要第二个中间对象,与前一个分享一个组件。我们想说的是M组件表现像一个中间组件而不是说它们构成一个中间对象。换句话说,我们不需要一个新的对象,而是一个与上下文无关的法则的座位,我们称为虚拟对象。并给出一个例子“双输送机”,因为这种组合经常在挑选湾和运输线遇到:一对输送机虚拟为C1,C2:传送带长度:实双输送机法则Pcvs29:C1模式eqC2模式反应如果过去C1模式C1模式然后C2模式:=C1模式否则C1模式:=C2模式Pcvs31:C1状态处于(忙,卸载)C2状态处于(等待下载,下载)反应如果过去C1模式C1模式然后C2模式:=值(ord值(C1状态)否则C1模式:=值(ord值(C2状态)Pcvs33:长度eqC1长度+C2长度+0.59反应长度:=C1长度+C2长度+0.5一旦引入,这个虚拟对象及其属性在每一个复杂对象包括一个或多个双输送机的法则可以召回。考虑运输线,包括其他单元,两台输送机:对象运输线A,B:传送带长度:整数关于双输送机运输线的法则如下:Trln35:一对输送机(C1=A,C2=B)Trln37:长度eq一对输送机(C1=A,C2=B)长度+前者指出A和B的行为根据一对连接的输送机的典型规则,后者指出运输线路长度包括这对输送机。这是值得观察的方式,“更容易”模型让上下文无关和上下文相关的行为不同。上下文无关的行为由单一对象和虚拟对象相关法则表示。上下文相关的行为由复杂对象关于其组件和召回虚拟对象的法则表示。一致性验证PLC制动器,例如输送机引擎,在每个执行周期结束时动作根据控制软件逻辑。根据不同的控制代码,正确的行为或输入信号的错误(也可能是危险的)反应和可能发生的用户命令。对象和法则提供了一个完整的单元和系统动态的表示法。每条法则可以很容易的转换成遵循一定规律(请参阅下部分)的PLC指令以及生成的代码构成完整的系统控制软件。应确认的是,法则效果是一致的并导致了预期的系统行为。此外,法则可串行性【9】应确保,也就是说,控制应该独立的发行法则命令,或者至少合理排序标准应该基于法则分析。为了满足这些要求,根据它们的相互依存关系,我们把法则进行分类,以及通过特定串行条件下展示不同分类的特点。给定一个合法或过渡法则Lx,它属于整个系统法则的集合L,我们用Cx表示违反它的所有状态(属于所有可能状态的S空间)的集合。此外,我们把与法则Lx相关的反应视为一个函数Tx(转换)映射输入状态,用来评估法则,进入一个新状态。假设每个法则本身是正确的,输出状态始终是合法的并与产生它的法则相对应。每一个执行周期,对象的两个或者更多的法则可能检测到需要执行相对操作的情况。在处理这种情况时,我们可以遵循不同的法则扫描模式:串行和并行。前者由下面的算法表示:10所有对象法则的n值和Si的状态经过Li-th法(并可能执行相应动作)评估后获得。相反,下面的算法表示后者的扫描模式:S0的初始状态,也就是说在法则扫描开始时,其处于空闲。考虑到这种区别,现在我们可以根据互相依赖关系分类法则:排他性,限制顺序独立性,扩展顺序独立性,平行的独立性。不属于这些类型的法则可能会引入串行问题,因此必须重写。排他性第一种情况的发生,在任何情况下,仅有一个对象法则可能受到违背,执行相关的操作不违反其他法则。考虑成对法则,下面的条件(不被扫描方式影响)必须满足可能输送机法则满足排他性是:Lx:状态eq准备托盘代码eq0反应托盘代码:=0Ly:状态eq错误电机转速eq停止反应电机转速:=停止托盘代码是一个整数属性,其报告在输送机上移动的托盘类型,以及错误是其中一个可以取的状态值。这些法则不能同时违反,以及任一反应不能确定其他法则的非法状态。事实上,在不违反Ly下,Lx反应零值分配到托盘代码,同样Lx满足来自Ly反应执行的引起的状态。限制顺序独立性发生这种情况,如果最后对象状态,根据顺序扫描模式的一个完整法则扫描获得的总是独立于扫描命令和所有法则的合法性。此外,反法则已经符合相应的反应。从形式上看,下面条件必须满足:11注意,第二条件是相同的排他性,因为在这两种情况执行一个操作不能违反其他已满足条件的法则。第一个条件,1部分)说到一个反法则不能由其他法则操作满足,1部分提到最后状态必须独立于扫描命令。挑选湾可能满足限制顺序,但不是唯一独立的法则有以下几种:Lr:退出输送机模式eq第一次调机模式反应第一次调机模式:=退出输送机模式Ls:退出输送机电机转速eq第一次调机电机转速反应第一次调机电机转速:=退出输送机电机转速这两条法则可以同时违反,并且它们各自的反应不影响其他法则的合法状态。这意味着这两条法则的不合法状态对于在Lr操作执行后的Ls一直是不合法的,以及对于Ls操作执行后的Lr也是一样的。因此,扫描命令并不影响最后结果。扩展顺序独立性发生这种情况,如果最后对象状态,根据顺序扫描模式的一个完整法则扫描获得的总是独立于扫描命令和所有法则的合法性。然而,这里的法则可以由其他法则的操作满足,并使得顺序独立扩展。下面的条件必须满足:并且它可以证明它们与此等效:作为一个例子,考虑下面的输送机法则:Lz:突发事件状态eq错误以及输入信号eq红反应状态:=错误;输入信号:=红;电机转速:=停止其中突发事件是布尔属性,其值取决于操作人员可能按的按钮。如果与上面定义的Ly法则一起考虑,Lz属于扩展顺序独立类型而不是限制类型。事实上,条件“状态eq错误和引擎转速ne停止以及突发事件和输入信号eq绿”对于这两条法则是不合法的,除了首先扫描Lz,它的操作执行决定了一个新的状态,其结果对于这两条法则是合法的。并行独立发生这种情况,如果最后对象状态,根据并行扫描模式的一个完整法则扫描获得的总是独立于扫描命令和所有法则的合法性。因此,它可能发生,相应于违反了当前状态(最后动作执行产生的)的法则的动作不执行,反过来,因为对于检测法则它的初始状态(在其基础上对所有法则进行评估)是合法的。出于此原因,条件必须满足,它们与上述不同:12当扫描模式是并行的时候我们考虑对Ti进行转换。让我们详细的检验输送机法则Lx和Lz,如果我们分析设置的状态违反两条法则:Cx=状态eq准备和托盘代码ne0Cz=突发事件(状态ne错误或者输入信号eq绿)CxCz=状态eq准备和托盘代码ne0以及突发事件CxCz=状态eq准备和托盘代码ne0以及不是突发事件CzCx=突发事件和(状态ne错误或者输入信号eq绿)以及(状态ne准备和托盘代码eq0)我们观察到并行独立的条件1满足,因为s0CxCz产生的状态“状态eq准和托盘代码eq0以及输入信号eq红和电机转速eq停止”不是取决于扫描命令,并且对于两条法则它是合法的。此外,法则Lx和Lz验证了条件2。因为它们的反应没有违反其他法则。因此,Lx和Lz属于并行独立类型。相反,它可以很容易的看到它们不满足顺序独立(提示:考虑到s0=状态eq准备和托盘代码ne0和突发事件)。在本节结束,图1显示了上面定义的法则分类间的关系。一条法则归为其中所提出的分类中的一类,如果它的相对独立性遵循所有的其他对象法则。因此,属于扩展顺序独立性的法则包括那些呈现限制顺序独立性还包括排他性法则。只有一个顺序独立的子集也独立并行扫描。同样,只有呈现并行独立的一个法则子集也是顺序独立的。所有这些都可以翻译成序列化的控制代码,我们将在下一节中看到。相反,既不是顺序和并行独立的法则必须重写,因为相应的控制代码和其他法则可能导致不一致。13代码生成根据“更容易”模型的对象定义提供了必要的信息生成模拟单元和系统的控制代码。PLC变量将反映对象的属性以及PLC软件将对象法则转换成条件操作的形式。一旦对象法则分成上面的独立性分类(和不可归类的法则已经重写),在它们自己的分类标准上,代码生成可以进行。在这节我们首先展示和证明PLC代码结构转换为不同的法则类型。然后我们讨论对象内的代码排序,以便获得满足可串行性原则的控制代码。最后,为了建立整个系统的控制,我们提出了一个不同组件单元装配PLC代码的一般标准。法则转换排他性我们已经观察到执行方案是独立于扫描模式的,因为每次只有一条法则可以违反(若有的话)。然后,对于恢复执行法则操作的最简单的执行方案如下:如果不是L1然后执行A114否则如果不是L2然后执行A2否则如果不是Ln然后执行An;Li是一个布尔变量(或者一个映射当前状态为一个布尔值的函数),如果i-th法则得到满足它具有真值,如果违反了它有假值。此外,执行Ai意味着与i-th法则相关的操作被执行;用正式术语,Ai对应转换Ti:CiSCi。顺序的独立性对于限制和扩展顺序独立法则,可以提出一个独特的执行方案。它不同于排他性法则,需要考虑在同样扫描周期间,两条或更多法同时违反:如果不是L1然后执行A1;如果不是L2然后执行A2;如果不是Ln然后执行An;并行独立动作执行被施加到当前状态,但它是由初始决定的。为了避免动作执行影响法则合法性,很有必要首先执行属于这种分类的所有法则,然后应用相对于反法则的动作。并行法则的整体影响是有执行最后一次动作的状态产生的。下面是我们每次并行独立出现的执行方案:如果不是L1然后标志1:=真;如果不是L2然后标志2:=真;如果不是Ln然后标志n:=真;如果标志1然后执行A1;如果标志2然后执行A2;如果标志n然后执行An;标志i是一个布尔变量记录着由Li根据初始状态s0假设的值。另一种方案,即分开执行两个阶段,但需要存储初始状态s0,就是:如果不是L1(s0)然后执行A1;如果不是L2(s0)然后执行A2;如果不是Ln(s0)然后执行An;Li:S真假的真值函数把状态S映射到真值,当且仅当i-th法则由状态S满足。在这两种方案中,操作Ai的执行相当于Ti:SSCi转换。注意,这里的变换域是S的整个状态空间,而不是Ci在排他性的情况,因为操作可能也适用于当前合法15状态:仅基于初始状态的操作激活。对象控制代码源于单一对象法则译成的代码必须结合起来建立相关单元或系统的控制软件。法则分类标准驱动法则转换。这里我们看到在对象控制软件里它们也驱动代码命令。假设对象行为是由n法则描述的,mn中的m满足并行独立,而其他n-m满足扩展顺序独立。然后,每条法则属于第一组,它满足两个并行独立条件和遵循所有其他法则。同样的,每条法则属于第二组,它满足扩展顺序独立条件并遵循所有其他法则(两个独立类型的法则可以属于任一组)。一个对象执行方案以确保在排序法中的可串行性,因此要先扫描那些前一组和在这些后面的一组。L1,L2,Lm并行扫描模式Lm+1,Lm+2,Ln顺序扫描模式生成的代码结构如下:如果不是L1(s0)然后执行A1;如果不是L2(s0)然后执行A2;如果不是Lm(s0)然后执行Am;如果不是Lm+1然后执行Am+1;如果不是Lm+2然后执行Am+2;()如果不是Ln然后执行An;其中每个Lm+1映射到Ln的函数适用于引起前面动作的当前状态。最后一条n-m法则满足顺序独立性,因此它们的扫描没有违反前面的m法则。事实上,对于第一条m法则,Sm的状态是合法的,因此,如果Lm+1违反了它,这意味着SmCm+1Ci,其中i=1,2,m。由于顺序独立的第二个条件适用于(Li,Lm+1)对,明显的,对于第一条m法则Tm+1(Sm)是合法的。这也适用于(m+1)-th下的其他法则以及对于所有对象法则是合法的最后状态。一个更有效的对象执行方案的结果是把顺序独立性法则分为三个不相交的子组:一个(A组)收藏排他性法则,另一个(B组)收藏剩余的限制顺序独立性法则,第三个(C组)收藏剩余的扩展顺序独立性法则。命名为D组的法则满足并行独立性,根据A,B,C,D组的命令转换法则可以获得对象控制代码。这将产生以下控制软件结构:如果不是L1然后执行A1否则如果不是L2然后执行A216否则如果不是Lh然后执行Ah否则开始如果不是Lh+1然后执行Ah+1;如果不是Lh+2然后执行Ah+2;如果不是Lh+k然后执行Ah+k;如果不是Lm+1(s0)然后执行Am+1;如果不是Lm+2(s0)然后执行Am+2;如果不是Ln(s0)然后执行An;如果不是Lh+k+1然后执行Ah+k+1;如果不是Lh+k+2然后执行Ah+k+2;如果不是Lm然后执行Am;结束;因为A组首先被扫描,法则扫描可以中断一旦满足排他性的法则违反了。只有它们没有违反,剩余法则可以考虑。其中,B型法则首先编码强调它们不受下面并行独立法则的影响。系统控制编码软件控制整个复杂系统终于建立起来了,其是通过由上面阶段所形成的对象控制代码组成。在开始最后一步之前,有必要从延伸的角度考虑系统的表示法。这意味着,参与复杂系统的每个单元必须有与本身相关的控制代码,以及系统控制软件必须包含尽可能多的每个对象控制的副本作为相应单元类型的一定数量的实例。创建一个对象代码副本意味着复制两个指令和数据存储器用于存储对象属性。之后,最终代码结构是直接从方案组成和专业化层次结构派生的,根据下面的基本规则:从简单到复杂单元单元的有序控制是通过增加复杂性。一个单元需要考虑,在复合单元包含它之前,以便影响其的行为。例如,输送机控制的三个副本和调车机车的两个副本优先于挑选湾控制软件。专门单元如果一个对象被专业化的另一个定义,相对代码通过添加特殊属性和法则给那些超类型获得。之后,一致性验证适用于所有法则,生成的代码遵循上面显示的。虚拟对象最后,产生虚拟对象的代码要么到处复制的虚拟对象属性被召回要么成为例行程序,如果这是目标PLC语言所允许的。然后,如在前一种情况,进行一致性17验证和代码生成。根据这些规则,在每个执行周期的最后,每个对象使用从组件和操作的信息获得了一个全局合法状态。然而,每个对象也可以修改组件的状态(如果有的话):因为组件的代码已经被执行了,一这种方式引入可能非法的决议被延迟到下一个执行周期。为了避免承受不了外部事件的反应次数,适当的优化技术正在研究当中。软件生命周期的影响用本文提出的方法,影响开发生命周期的两个条件得到满足。首先,模型通过分析设备结构驱动,因此系统组成扩展到控制软件。这意味着整个系统,可实现通过组合模块设计以供重复使用【5,15】,即,在不同上下文中使用不需要做任何修改。其次,一个可重复使用的设计获得的结果比软件代码更有用和稳定,因为它不受实现方面和约束的影响。对于PLC软件设计和开发【11】的一种X-模型的采用,这些都是必要的条件。X-模型是众所周之的V-模型的扩展,识别行动的两个并行循环:正向行动旨在获得新的或修给的软件系统,可能有库组件的重用和改写,以及反向行动旨在确认软件系统可能的组成部分和分类到一个有用的库以便重用。我们目前的工作主要是涉及图2中表示的黑盒子的步骤,而持续的研究工作是考虑表示白盒子的步骤。下面我们简单的通过黑盒子。组件设计我们考虑两个基本系统组件单元及其可能的组合构成组合结构。每个18模块的特征在于I/O变量,设置和状态变量,它的行为和约束的正确表示。组件要么是与现有系统自顶向下分析确定,或者定义的自低向上的复合结构从基本物理单元开始。图2:X-模型的相关步骤组件细化根据“更容易”的方法,通过识别专门的结构,行为参数化法,组件间的上下文交互,模块方案得到了改善。这提高了软件的模块化和重用潜力。组件开发为了准备它们的代码生成,该模块方案服从一致性和可串行性验证。之后,不变函数的编码可以很方便的预期它们在系统控制开发中的使用。系统设计系统设计很大程度受一个组件库的可用性影响。此行动是根据相同的模型和组件设计使用的方法来进行的,因为系统只不过是一个复合单元。系统改进对于组件,通过识别专门的结构,行为参数化法,组件间的上下文交互,模块方案得到了改善。系统开发对于一致性和可串行性的系统方案验证。之后,不变函数的编码进行要么当前-初始或通过组装所涉及的组件的软件代码。同时,系统方案和相对不变量代码可以归类为组件库成员。19结论“更容易”模型的提出,连着通过简单的例子,描述了它的应用和方案实施以及改善过程。一致性标准已经讨论和一个独有的串行和并行独立分类法则已经获得。然后,通过这些分类,我们展示了从单一对象编码到最后系统控制软件的构造,代码生成是如何驱动的。在许多正向和反向工程实验中,“更容易”方法已经被验证,其中一些在“更容易”项目里面进行。大部分的考虑的基于PLC的系统,通常是通过定制化的基本类型之一的一种设备或变形,经常采用同类的机械和电气组件,以及由不同的硬件平台控制。更重要的成就是:()定义对象的50%到70%,现在可重复使用,代替了传统PLC代码的20%。从上20下文无关的合法性和转换法则看,它们的模块可以清楚的识别和完全特征化;()虽然手动进行,有序的代码生成显示了在设计阶段的知识捕获就足以完全驱动编码活动;()生成的代码显示更高软件质量,因为它的结果不影响程序员的个人风格,以及它的结构呈现特别适合于支持修改和扩展;()通过手动一致性验证,模型错误很早和很容易地被识别和删除,然而当前的习惯,错误检测只由最终的代码在模拟器上运行,或者更糟糕,在客户现场测试系统;()最后,方案可读性确保了设备控制的一个完整和均衡的文档,因此,在涉及设计和开发团队上允许更好的交流。目前的研究主要集中于把“更容易”方法扩展到其他系统生命周期阶段。此外,为了帮助软件设计者实现丰富和可靠的应用方案,一个基于“更容易”模型电脑辅助支持正在开发。该包将提供许多正确性和一致性控制,特别是沿分类层次的一致性和沿组合图,一确保上下文无关和上下文的每个对象的相关的法则的兼容。参考文献1.Bertino,E.,etal.Object-orientedquerylanguages:thenotionandtheissues.IEEETrans.onKnowledgeandDataEngineering4,3,1992.2.Bonfatti,F.,andMonari,P.D.Towardsageneralpurposeapproachtoobject-orientedanalysis.InObject-OrientedMethodologiesandSys
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电梯收购合同与收购协议
- 湿地鱼池承包协议书模板
- 股东实物作价入股协议书
- 股东利润分成协议书模板
- 灯箱合作合同协议书模板
- 私人暖气模板合同协议书
- 村集体大楼租赁合同范本
- 项目签合同前的居间协议
- 长沙离婚协议补充协议书
- 碧桂园转让酒店合同范本
- 《医疗机构药学服务课件》
- 生态修复中的环境保护监理措施
- 宁夏固原公开招聘农村党务(村务)工作者笔试题含答案2024年
- 2025年广州市劳动合同样本(标准版)
- 企业财务人员防诈课件
- 抗凝剂皮下注射技术临床实践指南(2024版)解读 2
- 开封市事业单位联考招聘笔试真题2024
- TCECS24-2020钢结构防火涂料应用技术规程
- 危大工程安全监理实施细则
- 球节点钢网架施工方案
- 苏教牛津译林版小学英语六年级上册单词背诵默写本
评论
0/150
提交评论