PLC程序的质量如何?最好的评价标准是实践。看程序能否达到预期的目的。但这还不够。因为能达到目的程序还有好与不好之分。到底什么样的程序算是好程序?定性地讲,大体有这么几个方面:
1.正确
PLC的程序一定要正确,并要经实际工作验证,证明其能够正确工作。这是对PLC程序的最根本的要求,若这一点做不到,其他的再好也没有用。
要使程序正确,一定要准确地使用指令,正确地使用内部器件。程序出现差错,或不正确,往往与这两点有关。
准确使用指令是与准确理解指令相联系的。为此,对指令含义、使用条件一定要弄清。必要时,可编些小程序对一些不清楚的指令做些测试,力求弄明白。
值得注意的是,同一指令,由于PLC的出厂批次不同,在个别情况下,一些细节有可能不完全一样,应努力弄清。
再就是,有的指令执行一次就可以了,多了反而不行。有的则要一直执行。有的指令在子程序中执行与在主程序中执行情况可能不一样等。这些细节也要弄清,不弄清也很容易出错。
内部器件正确使用也是重要的。如有的有掉电保护,有的没有。一定要做到该掉电保护的一定要用掉电保护的器件,反之则不能用等。
总之,要准确使用指令,正确使用内部器件,使所编的程序能正确工作,这是对PLC程序最根本的要求。
2.可靠
程序不仅要正确,而且要可靠。
可靠反映着PLC程序的稳定性,这也是对PLC程序的基本要求。
有的PLC程序,在正常的工作条件下或合法操作时能正确工作,而出现非正常工作条件(如临时停电,又很快再通电),或进行非法操作(如一些按钮不按顺序按,或同时按若干按钮)后,程序就不能正常工作了。这种程序,就不大可靠,或说稳定性不好,就不是好的PLC程序。
好的PLC程序对非正常工作条件出现,能予以识别,并能使其与正常条件衔接,可使程序适应于多种情况。
好的PLC程序对非法操作能予以拒绝,且不留下“痕迹”。只接受合法操作。
实现程序可靠的方法靠记忆与连锁。PLC一些内部器件,可掉电保持,有记忆功能。所以靠它可使程序在临时断电再复电后执行仍可衔接。
连锁是拒绝非法操作常用的手段,继电电路常用这个方法,PLC也可继承这个方法。如控制某电动机正反转的两个按钮,同时按下,显然是非法操作。拒绝接受这个非法操作的办法是,把这两个按钮的非信号加入到对方的工作条件中,以实现连锁等。本书第8章讨论的PLC程序的可靠性,讲的都是这些问题。
总之,使PLC程序能可靠工作,是很重要的。
3.简短
使PLC的程序尽可能简短,也是应追求的目标。
程序简短可节省用户存储区;多数情况下也可节省执行指令时间,提高对输入的响应速度;还可提高程序的可读性。
程序是否简短,一般可用程序所用的指令条数衡量。用的条数少,程序自然就简短。
要想程序简短,从大的方面讲,要优化程序结构,用流程控制指令简化程序,从小的方面讲还要用功能强的指令取代功能单一的指令,以及注意指令的安排顺序等。这些在以前的章节中都已作了相应介绍。
4.省时
程序简短可以节省程序运行时间,但简短与省时并不完全是一回事。因为运行程序时间虽与程序所拥有指令条数有关,而且还与所使用的是什么指令有关。PLC指令不同,执行的时间也不同。而且有的指令,在逻辑条件ON时执行与在OFF时执行其时间也不同。另外,由于使用了流程控制指令,在程序中,不是所有指令都要执行等。所以运行程序的时间计算是较复杂的。但要求其平均时间少、最大时间也不太长是必要的。这样可提高PLC的响应速度。
省时的关键是用好流程控制指令。按情况确定一些必须执行的指令,做必备部分,其余的可依程序进行,有选择地执行,或做些分时工作的设计,避免最大时间太长等。
程序执行时间可做计算,也可实时测试。如C200H机,其中辅助继电器AR26通道,就存储着当前周期的运行时间,AR27存储着周期最长的时间。查这个存储单元的内容,即可知道所需的运行时间。
5.可读
还要求所设计的程序可读性要好。这不仅便于程序设计者加深对程序的理解,便于调试,而且还便于别人读懂程序,便于使用者维护。必要时,也可使程序得以推广。(www.daowen.com)
要使程序可读性好,所设计的程序就要尽可能清晰;要注意层次,实现模块化,甚至用面向对象的方法进行设计;要多用一些标准的设计。
再就是I/O分配要有规律性,便于记忆与理解。必要时,还要做一些注释工作。内部器件的使用也要讲规律性,不要随便地拿来就用。
可读性在程序设计开始时就要注意。这不易完全做到。因为在程序调试的过程中,指令的增减,内部器件使用的变化,可能使原较清晰的程序变得有些乱。所以经调试的程序,最好再做些整理,在可读性上做些文章,以保证所设计的程序,具有更高的质量。
6.易改
还要使程序易改,也就是要便于修改。易改也体现了程序具有良好的可重用性与可扩充性。
PLC的特点之一是方便,可灵活地适用于各种情况。其办法就是靠修改或重新设计程序。
重新设计程序用于改变PLC用途的情况,不仅程序重编,而且I/O也重新分配。多数情况不须重编程序,做一些修改就可以了。这就要求程序具有易改性,便于修改。
易改也就是柔性,要求只要做很少的改动,即可达到改变参数或更改动作的目的。
为此,要使程序尽可能循序推进,采用步进控制的方法。一个动作到另一个动作转换靠转换控制步实现。更改时,只要更改步的内容,而不必更改整个逻辑。参数的设定尽可能用间接的方法。如时间继电器的定时值,其参数不直接设定,用指定某内存单元的内容设定。而这个内存单元的单元或靠程序初始化时(于起动时,第一个扫描周期)赋值,或由编程器(或操作器)临时设定。这样,要做更改,只须改有关内存单元的内容也就可以了,较灵活。怎么使所设计的程序富有弹性,便于修改,办法多得很。但最主要的是在选用指令时,注意留有余地,要考虑到如果有了变化,能不能改,以及怎么改,只要注意了这个问题,设计出较有弹性的程序是完全可能的。
……
本章8.4节讲的程序柔性化,就是为了这个“易改”。
这6条笼统了一些,没量化指标。其实对计算机编程,软件的质量有量化指标。转录如下,不妨可作为评价PLC程序的参考。
常见到的软件质量指标有10项:
(1)平均不工作间隔时间MTBD(Mean Time Between System Downs)。设Tv为软件正常工作总时间,d为系统由于软件错误而停止工作的次数,则有MTBD=Tv/(d+1)。
(2)系统不工作次数(在一定时间内)。由于软件错误停止工作,必须由操作者去介入再启动才能继续工作的次数。
(3)平均修复时间MTTR。它反映了出现软件缺陷后采取对策的效率。
(4)平均停机时间MDT(Mean Down Time)。由于软件错误,系统停止工作时间的均值。
(5)可用性A。设Tv为软件正常工作时间,TD为软件错误使系统不工作的时间,则定义:
A=Tv/(Tv+TD)
上式也可以表示为
A=MTBD/(MTBD+MDT)
(6)初期错误率。一般以软件交付使用方的三个月为初期错误率期。初期错误率以每100h的错误数为单位。它用来评价软件交付使用时的质量,并且预测何时软件可靠性基本稳定。
(7)偶然错误率。一般以软件交付给使用方后的四个月,为偶然错误期,偶然错误率一般以每1000h的错误数为单位,它反映了软件处于稳定状态下的质量。一般要求偶然错误率不超过1,即每1000h不到一个错误,亦即MTBF超过1000h。
(8)使用方误用率。使用方不按照软件说明书等文件进行使用所造成的错误叫使用方误用。在总使用次数中,使用方误用次数所占的百分率叫做使用方误用率。
(9)用户提出补充要求数。如果用户对软件提出了补充要求,则反映了软件的功能尚不能充分满足用户的需要。如果这种情况在软件应用了一段时间以后频繁出现,则说明软件已经进入老化期,应该开发新的软件来取代它。一般在偶然错误期,用户每月提出的要求数不应超过1。如果平均数己超过1,则认为软件己进入老化期。
(10)处理能力。处理能力有各种指标。例如可以用每秒钟处理多少过程输入变量、更换每一幅CRT画面需要几秒钟等来表示。
只是对PLC而言,程序的用户总是一个或有限的几个。不像计算机软件,要面对很多人,很多情况。评价指标便于比较、统计。而且PLC任何软件出错效果都可能是严重的,也都是不允许的。所以,以上10条仅供参考。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。