首页 理论教育 PAC编程教程:培养标准化编程习惯

PAC编程教程:培养标准化编程习惯

时间:2023-10-26 理论教育 版权反馈
【摘要】:尤其PAC更是提供了标准化编程的平台,即使是新手也能编写出规范的程序。在PAC系统中提供各种编程方式,更是多方地提供了标准化的编程平台,这对当今项目开发所追求的短工期、高效率、低成本的目标,具有十分重大的意义,并在实践中得到认可。编程人员要了解的只是如何使用这条指令,ONS指令与前面梯级条件的关

PAC编程教程:培养标准化编程习惯

下面我们将要讨论如何运用指令编出令人满意的程序。毫无疑问,每一个编程的项目开发人员,都希望自己能编出好的程序,什么是好的程序?尽情地施展聪明才智,别出心裁,标新立异、奇思妙想、独树一帜、与众不同就是好的程序吗?我恐怕不能苟同。我认为好的程序应该具备如下几点:

●严密性 逻辑严谨,执行准确,绝无疏漏,这点应该是共识,这个严密不仅有控制进程的严密,还有例程调用的严密,指令执行的严密。严密性跟编程之前的规划也是有关的,紧扣生产过程进程,分析控制对象的动作,仔细地规划项目的程序结构,安排执行的顺序,这都是保证严密的基础。

●正确性 毋庸置疑的是控制逻辑处理的正确,针对控制对象的逻辑关系选对指令。正确地使用指令是非常重要的,什么情况该用什么指令,正确地理解指令执行的过程和正确设置参数,给予输出指令的梯级条件是否正确,预扫描和后扫描的影响如何,这些都是需要考虑的,尽量地避免指令或例程的陷阱。

●对称性 现场很多控制对象的活动具有对称性,尤其是一些具有互锁关系的动作,对应编写的逻辑处理也应具有对称性,例如几个互锁关系的同类控制动作,除了梯级条件和数据状态不同,梯级的逻辑结构应该是一样的,尤其是规律性的交替执行。对称动作采用不对称的逻辑执行,本身的严密性就值得怀疑,对称也是判断编程严密性的一个准则

●规律性 控制过程的动作大都具有规律,基于分析控制过程的功能框图,在编写的例程中要表现出这种规律,哪些是常规的主流执行动作,哪些是重复执行动作,哪些是条件式的调用动作,哪些是设备之间的约束关系以及生产进程的显示,都要有脉络清晰、明了的体现。

●可读性 程序是写给别人看的,别人很容易读明白,搁置很久自己也能很快读明白,当时的得意之作,不要过一阵连自己也读不懂了。思路要清晰,表达要清楚,这点可以参照写文章的心得,有中心、有层次、有重点、有排比、有修饰,规律和对称的编程自然是可读性强的。当然,每个梯级逻辑或操作数的文字说明是必不可少的,这将帮助我们理解过程处理和编程思想,说明有时比梯级逻辑本身更重要。

●标准化 对待同一个需求控制的处理,可以用指令功能解决的,不要用技巧编程去解决,因为指令功能是共性的,如何设置参数,如何运行指令,都有固定的模式,大家具有共识;编程技巧有时是很个性化的,即便构思非常精巧,但别人很难把握思路,特别是后期的维护人员不容易读懂程序。尤其PAC更是提供了标准化编程的平台,即使是新手也能编写出规范的程序。

以上几点最能体现好程序的是标准化,只有标准化的编程最容易达到严密、正确、对称、规律、可读,标准化往往是长期经验积累的最终形式,PLC的发展历史就是一个沿标准化方向发展的过程,直接用于编程的指令系统表现则尤为明显。在PAC系统中提供各种编程方式,更是多方地提供了标准化的编程平台,这对当今项目开发所追求的短工期、高效率、低成本的目标,具有十分重大的意义,并在实践中得到认可。此外,标准化的编程还在项目开发者和现场维护人员之间达成了某些共识,使后者更容易解读程序和查找故障,这在生产实际中十分有效,尤其是某些行业,本来就有一些共同遵守的规则,更是要通过标准的程序来体现。

自从计算机处理模式的PLC进入工业自动化控制系统,将硬件的信号处理转为数字处理以来,针对工业控制自动化的需求,PLC处理的计算机系统的控制性能也在不断地提高,就信息处理能力的提高而言,主要表现在指令系统的增加和丰富,指令的增多和指令功能的增强。在早期初级阶段的PLC,由于指令功能较弱,在面对一些常见的需求处理时,需要更多的编程技巧去解决,当满足需求的这种技巧性处理的编程成为工程技术人员的一种共识,就有了变成指令功能的需求,如果将这些技巧处理组合为一个宏,不就是新的指令诞生了吗。当指令系统提升推出一些新功能的指令,从来没有突兀地诞生一条指令,一般都是跟需求和发展有关的进化。

这里我们用一条大家熟知的ONS指令为例来了解这个发展过程。

梯形图的逻辑处理中,往往有这样的需求,对某些指令的执行,需要严格地确保只能执行一次;或者某些指令只需或只能在前沿触发,而此时梯级条件能给出的却是一个持续一段时间的宽脉冲,在这段时间这条梯级可能经历了几百次的扫描,而我们想控制的是这个梯级的输出指令只能执行一次。显然,这时的需求是令这个宽脉冲变为一次扫描有效的窄脉冲。这就是硬件中经常被称为微分电路的一种需求转化而来的,在硬件中是靠电容元件的充放电来实现的,在软件中实现却颇费一番周折。

初期的PLC2没有ONS指令和OSR/OSF指令,每当遇到这样的需求,不得不编写一段梯级,让这段宽脉冲经过特殊处理后输出,成为一个保持一个扫描周期的窄脉冲,并应用于被需求的梯级条件。其编写的梯级如图3-4所示,这是一个梯级条件前沿触发产生窄脉冲的范例。

978-7-111-36030-8-Chapter03-4.jpg

图3-4 产生窄脉冲梯级的编写(www.xing528.com)

显然,在今天看来,这是一段晦涩难懂的梯级逻辑编程。这段梯级逻辑编写的技巧,曾被作为典范拿来训练新的编程人员,让他们一读到这段逻辑处理,就认定前面112/04的位地址所产生的宽脉冲经过这段逻辑的处理,后面输出位010/00的结果是他们想要的前沿触发窄脉冲,这个位的置位状态能够维持一个扫描周期,可以使用这个位地址,获得一个周期扫描有效的脉冲作为所需梯级条件。还有一段相似的梯级逻辑得到的则是后沿触发窄脉冲,这里就不再列举了。

这种处理方式的不便是显而易见的,解读程序的人要善于将这一段插曲从动作进程主流梯级逻辑中择出,火眼金睛地将它译读为一个宽脉冲处理成的一个窄脉冲,只会保持一个扫描周期,并对这个窄脉冲的条件动作予以理会。要知道,这样的插曲在梯级逻辑处理中是不断地出现,甚至多到干扰人的视线。但是在没有一个特定的指令提供给我们使用于这种需求时,这实属无奈之举。

PLC5/SLC500系列的处理器问世的时候,ONS作为一条常用的指令,赫然出现在指令系统中,后来在PLC5增强型又推出了更详细的OSR/OSF指令。在宽脉冲的梯级条件,ONS指令紧随其后,从而限制梯级条件改为了窄脉冲,直观而明了。编程人员要了解的只是如何使用这条指令,ONS指令与前面梯级条件的关系如何,它的存储位是怎样作用的,什么情况下存储位被复位等。现在的工程技术人员大约难以体会到,当时的编程人员是如何大大地松了一口气,总算可以直接使用而无须拐弯抹角地去得到一个触发脉冲了。我们不难想象,ONS指令不过就是刚才那段晦涩难懂的梯级逻辑的一个宏的集合罢了。

功能强大的指令系统的确是可以让人们免去冥思苦想地去寻求解决方案,也就是所谓的技巧性处理,而直接运用了指令的功能,这些指令的功能往往源自于技巧性处理,由长期积累而成为共识的技巧性处理。特别是由经验积累而进化的指令功能,无疑最让新手受益,也是避免陷阱和出错的有力措施,这几乎成了指令系统性能提升的追求目标。所谓指令功能,也就是为解决需求的集众人智慧和长期经验的结晶。

面对同一个需求处理,我们可以看到两种编程处理情况:

技巧处理,可能是非常精妙的技巧,让人拍案叫绝;也可能让人百思不得其解,经过解释才让人明白;或者广泛流传的一种技巧,让人们达到了共识,如自保持位逻辑的编程方法。不管是什么情况,技巧是个性化的处理,难以作为标准。

功能处理,根据指令的功能和固有的指令编程模式,让解读程序的人很快地理解处理的目的和结果。这是通用的,所有的人都容易明白,指令功能是共性化的处理,标准的做法,但是需要学习指令的运用方法。

编程的一般原则是,能用指令功能处理的,尽可能不用技巧处理。道理是显而易见的,只有共性的东西才是可以共识的,容易共用的。毕竟一个程序项目是大家共有的,具有从开发人员移交到维护人员的延续性,要让更多的人更容易参与项目。

我们在学习编程中,一定要研究指令的功能和相应的运用方法,用以编写标准的,易读的程序,这就是编程训练的目的之一。所以,对控制器指令系统中的每一条指令给予充分的了解(参数的含义,指令的动作,执行的条件),才能准确无误地使用指令。尽可能地使用指令功能处理问题,尽量避免使用技巧编程处理。在后续的章节中,每类指令的编程训练,我们将进行对比,明了标准编程的重要性。

此外,养成良好的编程习惯也是至关重要的,记住某些指令的使用惯例和典型处理,这是前辈经验的流传,良好的编程习惯可以帮助你避免落入一些程序运行的陷阱,以免在调试系统时为某些逻辑处理结果感到困惑。良好的编程习惯可以让你对自己编写的程序具有自信,准确坚定地排除不可能情况,不会盲目置疑而耽误调试的时间。良好的编程习惯是经历了考验的工作方式,保持它可以减少错误的产生,加快编程速度,提高工作效率。

编程序就跟写文章一样,你既可以写成一篇随心所欲的散文,也可以写成一篇思维严密的论文。读散文每个人都可以有不同的理解和感受,甚至得出不同的结论;论文却可以让人准确地理解作者所要表达的内容,其论点明确、逻辑清晰、层次分明、结构严谨、论述清楚。把程序编得像一篇论文,应该就是编写好的程序的基本要求吧。

编程序跟写文章有许多相似之处。写文章,有中心思想,段落大意,在阐明一件事情时,你会围绕这件事情在一个文章段落里进行描述;编程序,有核心控制,运行进程,面对一个控制对象,在一段梯级逻辑中,编辑相关的逻辑关系和工作状态处理。写文章,你掌握的词汇越多,遣词造句的能力就越强,表述事情就越清晰准确;编程序,你对指令的功能理解得越清楚正确,运用指令的能力就越强,在不同情况下能准确地选择合适的指令。写文章,描述相似事物类比的排比句,让人易读且更容易看清事物之间的联系,并有阅读美感;编程序,工控对象很多情况下也具有对称性,如果你编写的程序在逻辑关系上是对称性的,同样有阅读美感,并让人感到逻辑上值得信赖。写文章,有开头和结尾,概述式的开头和总结式的结尾前后呼应;编程序,有初始化的处理和结束的处理,数据的进入和数据的送出信息流向清楚。写文章,时不时地引用成语熟句,言简意赅,耐人寻味;编程序,按需求引用专门的指令,调用特殊宏汇集,梯级简单,处理隐藏。

在学习编程时,你不妨想像你在学习写文章,就像中小学时你的语文老师教给你的那样,先从造句开始,然后学习写段落,最后完成一篇文章,并在写作过程中积累词汇和学习表述,提高写作能力。我们的编程训练将循序渐进,从基本的指令开始,编写简单的梯级逻辑,然后学习围绕一个控制对象编写一段梯级逻辑的处理,最后完成一个小的项目,并在编程过程中,熟悉指令和训练思维,提高编程能力。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈