浅谈PLC的编程思想及其未来发展(2)
原创 2017-10-08 HwLib(慧兰博) HwLib慧兰博
4、如何看待PLC编程
目前市场上的PLC品牌众多,除了主流的SIEMENS、AB、施耐德、三菱、欧姆龙等之外,还有众多的二线品牌及国产品牌。在编程语言上,除了IEC 61131-3规定的5种之外还有各个品牌自家的语言,比如CFC、Graph等,甚至有的PLC还支持Basic、C/C++编程。面对这么多品牌和语言,我们究竟该如何学习?下面我们首先看一段《天龙八部》中的描写。
本来是数十人围攻乔峰的局面,玄难这一出手,余人自觉在旁夹攻反而碍手碍脚,自然而然的逐一退下,各人团团围住,以防乔峰逃脱,凝神观看玄难和他决战。乔峰眼见旁人退开,蓦地心念一动,呼的一拳打出,一招“冲阵斩将”,也正是“太祖长拳”中的招数。这一招姿式既潇洒大方已极,劲力更是刚中有柔,柔中有刚,武林高手毕生所盼望达到的拳术完美之境,竟在这一招中表露无遗。来到这英雄宴中的人物,就算本身武功不是甚高,见识也必广博,“太祖拳法”的精要所在,可说无人不知。乔峰一招打出,人人都是情不自禁的喝了一声采!这满堂大采之后,随即有许多人觉得不妥,这声喝采,是赞誉各人欲杀之而甘心的胡虏大敌,如何可以长敌人志气,灭自己威风?但采声已然出口,再也缩不回来,眼见乔峰第二招“河朔立威”一般的精极妙极,比之他第一招,实难分辨到底那一招更为佳妙,大厅上仍有不少人大声喝采。只是有些人憬然惊觉,自知收敛,采声便不及第一招时那么响亮,但许多“哦,哦!”“呵,呵!”的低声赞叹,钦服之忱,未必不及那大声叫好。
为什么同样的普普通通的太祖长拳在乔峰手里使出来和玄难使出来就有完全不同的效果呢?这当然取决与乔峰的深厚内功。那对于我们PLC工程师来说什么是内功?编程思想!不同的PLC品牌、不同的编程语言、不同的功能模块、不同的通信协议,这些如同武术中的各门各派、刀枪剑戟等武器一样都只能算是工具。限于时间和精力,我们不可能去熟悉每一个工具。通常我们只需熟悉其中的数样并注重提升自身的内力修为,这样的话,当工作中需要使用新的工具也可以很快的上手!反之如果我们将精力都放在去熟悉不同的工具上,那么就算你把普天下的PLC都玩遍了,也只是不入流的水平。
5、什么是编程思想
首先解释一下“思想”。什么是思想?思想是指客观存在的,反映在人的意识中的,是经过思维活动而产生的结果,是一切行为的基础。什么是编程思想?编程是有目的性的,它的目标是完成一个或多个具体的功能或解决一个或多个具体的问题,那我们在编程活动中的行为指导原则可以称之为编程思想。
通常我们在编写PLC程序时,步(日系说法)或Network(西门子说法)是PLC程序的最小单元。比如对于一个模拟量处理程序,我们通常会先把AI的值读出来然后自行编写数字量到工程量的转换程序,或者调用PLC提供的指令来实现转换。如果需要实现超限报警的话,再调用比较指令来实现。完成这些工作,通常需要若干步(Network)。这些程序(转换和比较)可以放在一起,比如一个FC中,也可以将所有的模拟量处理按照转换和比较分别放在不同的FC中,当然也可以分散在整个项目中,甚至您可以将所有程序都塞在OB1中。总之,我们在编程时并没有考虑到程序逻辑和数据的整体性,而更多考虑的是程序的结构,这种思想我们称之为面向过程编程。
换一个思路,如果我们把变送器看作为一个对象,这个对象不仅有过程值、超限报警值、故障状态(包含溢出及断线)等,另外还有报警事件。这样我们不再着眼于模拟量转换及程序结构(当然也要考虑,不过不再是重点),而是从对象层面来看待它,变送器、阀门、泵等等,这些都是一个个的对象。以变送器为例,通过合理设计,这个对象可以适用于任何类型的变送器,无论是流量、压力或是PH计,这种思想我们称之为面向对象编程。
随着PLC功能的越来越强劲,它可以调用Simulink或是C/C++编写的模块,这些模块通常可以是一个模型或者某些功能的具体实现,它们通过接口和外部程序交互。相比于面向对象,它们的粒度可以更大。这种思想我们称之为面向组件编程。
图二 项目架构
未完待续
HwLib(慧兰博)公众号
专注于SIMATIC TIA高端编程应用
HwLib(慧兰博)微信号