刘冰1王素娟2
(1.中国电子系统工程第四建设有限公司,北京100070;2.中国建筑设计研究院有限公司,北京100044)
摘要:首先讲述了一种基于文档控制的PLC程序的设计方法;然后以某型成型机程序为例,依次介绍了这种设计方法流程的各个环节,展示了其实际应用方式;之后分析了多人开发情况下的应用方式;最后总结了这种设计方法的特点。这种设计方法对大型PLC程序的协作开发和保障设备安全都有积极意义。
教育期刊网 http://www.jyqkw.com
关键词 :PLC;文档;程序设计;流程
1开发方法概述
目前随着我国经济的不断发展,国内机械的自动化水平也在不断提高。本文以三菱Q25HCPU控制的成型机为例,讲述了开发大型PLC程序的一种方法。
机械生产设备的任何意外动作都有可能造成人身伤害或生产事故,因此必须将PLC程序可靠性放在首位。同时,一般机械设备服役周期往往在10年以上,在服役年限中,根据工艺变化,调整PLC程序逻辑不可避免。在实际生产中,往往会在设备投入运行后增加多个功能模块。
大型PLC程序功能众多,结构复杂,而PLC与计算机不同,各种资源(寄存器、定时器等)非常有限,各个功能模块之间信息交互同时非常频繁,如何建立一个统一架构,使得资源调配有序、合理,信息传递通畅,并降低编写大型程序的难度,同时尽可能减小程序变更时对已经存在的模块可能会互相产生的意外影响,这是需要解决的问题。
通过严格的设计文件,界定PLC资源的分配和每个子程序用途,预先规定可预期的程序变更的语句写法,同时对非预期的程序加以界定,确保新编写模块对设备动作影响在可控范围之内,这样就能使程序变更更为安全高效,不需进行繁琐测试甚至测试性生产来确定程序运行是否没有误动作。
此种方法通常称之为文档式开发方法,适用于渐进式设计,可以功能不断增加而框架不变。程序员编写程序时,遵循已有架构,专心编写要完成的功能即可,这就大大降低了大型程序的编写难度。
2确定功能需求和硬件框架
轮胎成型机(简称TBM)是轮胎制造生产过程中,将半成品部件(如胎面、胎侧、胎冠、型胶、胎体等)按工艺要求组合成成型轮胎胎胚的一种轮胎生产专用设备。
成型机电气硬件系统由两个Q25HPLC组成,两个PLC分别负责成型机一段和二段。
以控制一段的电气硬件为对象,则PLC系统包含CC?link总线远程I/O、Q173运动CPU、Q173所控制的运动总线SSCNET,总线连接至各个伺服模块。
以控制二段的电气硬件为对象,则PLC系统包含CC?link总线远程I/O、Q173运动CPU、Q173所控制的运动总线SSCNET,总线连接至各个伺服模块。
为了完成成型机的控制,现在确定共有以下功能模块:(1)网络连接;(2)触摸屏显示及控制;(3)成型轮胎尺寸改变;(4)输出控制;(5)可选设备控制;(6)成型轮胎。
根据已经确定的硬件架构和功能划分,就可以开始着手进行程序编写工作。
3确定架构及资源划分
首先,需要画出大架构图。
在整个架构中,公共区PLC寄存器、定时器和锁存器是对所有模块开放读取权限的,数据交换通过写入和读取寄存器、定时器和锁存器的状态来进行。
例如:定义M0为PLC状态,M0为ON则表示PLC状态良好,OFF则表示PLC状态异常。此M0为LAD01可写,其余模块可读。则新编写或者任意模块在需要加入PLC状态条件时,就可以直接在梯形图中加入此条件。这样,对于一些常用的公共状态(是否急停、PLC状态、网络状态),在模块调用时就无须专门定义。
在进行新模块的编写时,大量的、正确的公共状态可以随时调用,极大地节省了编写和测试接口的时间。
3.1PLC资源划分及文档编写
首先,我们需要对PLC资源进行总体的划分。PLC资源包括寄存器(M点)、定时器(T点)、锁存器(L点)等。以最常用的M点为例,划分为梯形图用、设备位置状态、触摸屏用……
最后分别编写各个程序块的资源清单如表1所示。
同样,如果PLC还有其他资源的话,也进行同样的划分。之后,就根据此次划分结果进行下一步划分,如表2所示。
这样,就完成了对资源到每一模块的划分。
注意:这些划分的资源为各个程序模块的私有资源,别的模块不可读取、使用,这样就杜绝了新旧程序块之间的干扰。
3.2公用数据区权限划分及文档编写
公有数据区权限划分应当遵循一个原则,一个中间继电器点应当只有一个模块有写入权限。违背此原则会导致严重后果,千万注意!
公用数据区通常使用非锁存寄存器,以确保在任何状态异常后,通过关闭PLC电源然后重启,公用数据区数据即可恢复正常。这对于程序可靠性来说意义重大。
权限划分方法如下:
首先,确认公用数据区。在此例中,公用数据区为M0~M300。
然后,确认每个数据点意义及权限所属,以M0为例,如表3所示。
然后做出相应的程序模块对应表,如表4所示。
这样就完成了公有数据区权限的划分。
在多人同时编写程序时,每个人手中应当有同一版本的此公用数据表。
3.3输出及驱动权限划分
输出和驱动作为程序输出的底层,可能接收多个程序模块的指令。最常见的情况为,电机会接收手动模块发来的指令和自动模块发来的指令。这在程序复杂时就会导致混乱。为了解决此问题,引入了输出模块专门进行处理。输出模块对各个模块的指令进行判别,然后进行输出。在引入输出模块的同时,对于向输出模块输出指令的程序模块也应当是指定的。
举例:规定输出Y12环移动(右)由LAD10输入模块控制,由LAD04、LAD13程序给LAD10发出指令,指令位为M505、M613,其他模块没有权限,则如表5所示。
将所有输出列入后形成文档,输出模块按照此文档编写。伺服和电机控制权限与以上所说类似,可以编写成对应的驱动权限文件。
在多人同时编写程序时,每个人手中应当有同一版本的此文档。
3.4预留数据区划分
预留数据区划分为一块,在文件中注明资源起止地址即可。
4功能模块及文档编写
资源的划分进行完毕后,就可以进行各个功能模块的编写了。
4.1已规划模块添加
对于在第2大点中已经完成规划的程序模块,在编写完毕后进行如下审查,审查完毕即可直接加入:(1)对应PLC资源划分文件检查模块内使用资源;(2)对应输出及权限划分文件检查模块内输出;(3)检查模块逻辑。
4.2已规划模块修改
当设备投入使用后,对已有的模块进行修改时,有两种情况:
(1)可预期的更改:
可预期的更改是指在原来程序设计时就已经考虑到的、可能会发生变更的更改。这些更改在程序中往往已有同样功能语句,只需要按照同样语句进行添加或者修改即可。
(2)不可预期的更改:
不可预期的更改通常会编写新的逻辑。这时应当注意按照资源表,使用编写逻辑所需资源。
编写中如果发现需要使用额外的资源,如输出和驱动指令权等,就需要修改相应的资源表格,经批准,而后才能使用此资源。
编写完毕后,此模块按照新模块标准进行独立模拟运行,无误后,进行更改。
4.3新模块添加
编写新模块时,有两种方法:
(1)先用伪代码写出逻辑,预估所需资源,然后改写相关资源表,将空余中资源划出自己所需部分,进行程序模块编写。
(2)大致预估所需资源,然后改写相关资源表,将空余中资源划出自己所需部分,进行程序模块编写。
两种方法在实际中都可以采用。
模块编写完毕独立测试没有问题,检查没有使用不属于此模块的资源后,就可以在程序中加入此模块了。
至此,一套PLC程序的开发流程就介绍完毕了。
5多人协作编写的应用方法
大型PLC程序通常会由多人编写。在多人编写时,此方式优点可以充分发挥。每个人编写时,有大量的公用状态资源可以直接调用,同时有明确的私有资源和输出资源可以调用。整个项目管理简单,只需要明确写明每个模块的目的和相应分配的资源表,就完成了任务书下达。同时简化了质量控制,只要确保没有使用不应使用的资源,则此模块的代码就不会对设备其他模块的运行和安全产生损害,通过检查输出资源,就可以控制此模块误动作时可能产生的后果。
5.1任务划分
首先应当进行第二大点所述的资源划分,之后就可以将各个程序模块分给个人了,管理流程相当简单。
5.2任务权限划分
虽然理论上任何工程师都可以进行任何程序模块的编写,但在实践当中,通常由经验比较丰富的工程师处理报警、驱动这类程序的编写。
根据任务可能对设备造成危险的等级,可以划分任务权限,由权限较高的工程师承担驱动、输出等模块的编写。
6结语
通过严格的设计文件,定PLC资源的分配和每个子程序的用途,预先规定可预期的程序变更的语句写法,同时对非预期的程序加以界定,这样的程序设计方法在实践中被证明是简单有效的。
使用此方法,成功开发了多个十万行以上的复杂PLC程序,在包括成型机、钢丝圈等设备上获得了应用。应用中,编写开发时间较短,同时由于文档简单、管理方便,还可以以跨国工程师协作的方式编写程序。
尤为重要的是,该方法控制了新加入的任何程序可能产生的风险。每次更改程序后,都可以初步预估可能有误动作的部件,使得设备的使用安全风险降至最小。
总的来说,此种方法是一种实用的大型PLC程序设计方法。
收稿日期:2015?07?16
作者简介:刘冰(1981—),男,河北人,工程师,从事自动化生产厂房类建筑电气方向的研究、设计及实施工作。
王素娟(1984—),女,河北人,工程师,从事建筑电气方向的研究、设计工作。