想要学习PLC,我们该从何入手?
2018-05-20
PLC编程语言符合IEC 61131标准。其中比较主流的语言是模块化的编程语言,也即IEC 61131-3语言。由于所有的PLC生产厂家都必须遵循IEC 61131标准,因此深入学习某一款PLC后,其它的PLC大体上是类似的。
学校PLC课本上讲解时一般都用T形图。这是很落后的一种编程方式。走上工作岗位后,务必改用模块化编程方式。
之所以要摒弃T形图的编程方法,是因为T形图有很多局限。举一个最简单的例子:当三个开关量在T形图上构成三角形时,这个T形图是无法执行的,必须用三角-星转换为星形结构才行。这种问题在模块化编程语言中根本就不会出现。由于T形图的局限性,纯T形图程序中也开始配套模块图了。
下图是我为北京地铁某车站的环控配电室双路电源自动投退系统编写的程序局部:
此程序用模块化的编程语言IEC 61131-3写成。可见模块化的PLC程序有点类似集成电路的形式,甚至连PID测控都有相应的模块。
我们再来看看同一个程序的通信管理部分:
这里有通信接口初始化程序,有MODBUS-RTU的主站定义程序,有MODBUS-RTU的从站数据采集和交换的循环程序。
可见,模块化的PLC编程语言与学校里学到了T形图编程语言有天壤之别。
由于PLC编程语言都支持软件层面的程序调试,所以仿真没有太大的问题。
怎么学习PLC呢?除了要有编程环境外,就需要有工程范例。其实工程范例很容易获得,我们可以找任意一本描述电动机控制的书籍,把其中所有的各种控制电动机的方式,当然是用继电器和接触器构成的,我们把这些机电控制方式全部编写成PLC控制方式。几个范例编完,基本上就明白了。
范例编完后,给自己增加难度。例如我们设想有四台电机,分别作为中央空调的冷水机组、热水机组、冷却塔电机,再配上末端空调装置的风机,就构成了完整的中央空调系统。中央空调采用热焓控制方式,并采用PID调节。试着用PLC作为中央控制系统,来编写一个程序。
这个范例完成后,最后再学习PLC的通信技术。特别关注PLC模块化编程语言中的MODBUS-RTU模块,理解它的内容和要领。然后编写一个数据采集和转发系统。数据来源为上一个例子中所有电动机的外围开关量、温度量、焓值、电流电压参量、电机运行状态等等。把这些参量编写成通信协议,也即数据点表,然后发送给计算机上的ACCESS数据库。
利用ACCESS的VBA,编写若干控制界面,然后实现软件上的信息交换和控制。
这些都完成后,就可以毕业了。我们从此可以胜任任何PLC的编程工作。
PLC的应用十分广泛。在工业环境下,PLC几乎无所不能。知道为什么?
第一是PLC的高可靠性:因为它的程序是顺序执行的,因此不会进入死循环,几乎不会死机。
PLC不会死机,这一点十分重要。
我们原先采用工控机来作为测控和配电系统的通信管理机。结果发现,工控机的硬盘在高温下会出现故障、工控机的电源一旦风机停转,电源很快就因为过热而停机(死机),造成通信阻断。工控机通过各种卡件来实现数据采集和控制功能,这些卡件故障率很高。工控机实现硬件冗余很困难,而PLC的CPU硬件冗余十分便利。我们在测控工程中将通信管理机换成PLC后,上述这些问题彻底地一劳永逸地完美解决。
第二是PLC具有很高的EMC(电磁骚扰)水平,也即抗干扰能力。所谓EMC指的是电器元件在运行时抵御环境电磁干扰的能力,以及自身对环境产生电磁干扰的程度。IEC和国家标准对电器元件和控制柜都提出了强制性EMC试验要求。高档PLC一般需要通过2级到3级EMC群脉冲试验,以及接地电流冲击试验。
我测试过,一块多功能电力仪表的电路板,只因为电源滤波电容焊的略微高一些,整块电路板就在接地电流冲击试验中被击毁。可见EMC测试对于电子仪表来说十分残酷,通过试验十分不易。
一句话:凡单片机能做的事,PLC一定能做;反过来,PLC能做的事,单片机不一定能做,甚至连边都沾不上。
对比:一般的家用电器要通过一级EMC试验都有点困难。
由于PLC应用是如此之广,因此一位PLC的资深优秀编程者,也一定是一位工业系统的多面手。他熟悉各种工业条件下的元器件和传感器性能参数,熟悉各种工业条件下的测控原理和自动控制原理,明确机械原理和各种工业工艺过程,明确强电磁环境下的如何选配元器件及开关电器。当然,此人对于PLC的模块也应当十分熟悉。
总之,优秀的PLC编程者,一定同时也是技术上的佼佼者。
学习伊始,不要总想着赚钱,要沉下心来学会真本事。天下之大,何处无芳草?何愁无处供职?
PLC推销商挣的钱,远远少于PLC的编程者挣的钱;施工结束后,用户惦记的是编程者,不是PLC的供应商;在后续工程中,还会请编程者继续参与,而PLC推销商呢?最多也只是供几个PLC而已。