首先,PLC编程语言要符合IEC 61131标准,其中比较主流的语言是模块化的编程语言,也即IEC 61131-3语言。由于所有的PLC生产厂家都必须遵循IEC 61131标准,因此深入学习某一款PLC后,其它的PLC大体上是类似的。
学校PLC课本在讲解时一般都用梯形图。这是很落后的一种编程方式。走上工作岗位后,务必改用模块化编程方式。
之所以要摒弃梯形图的编程方法,主要是因为它有很多局限。举一个最简单的例子:当三个开关量在梯形图上构成三角形时,这个梯形图是无法执行的,必须用三角-星转换为星形结构才行。这种问题在模块化编程语言中根本就不会出现。由于梯形图的局限性,纯梯形图程序中也开始配套模块图了。
下图是我为北京地铁某车站的环控配电室双路电源自动投退系统编写的程序局部:
此程序用模块化的编程语言IEC 61131-3写成。可见模块化的PLC程序有点类似集成电路的形式,甚至连PID测控都有相应的模块。
我们再来看看同一个程序的通信管理部分:
这里有通信接口初始化程序,有MODBUS-RTU的主站定义程序,有MODBUS-RTU的从站数据采集和交换的循环程序。
可见,模块化的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而已。
结论:关键还是在于自己的编程本领和技术水平。
网友:PLC的CPU也是一块微处理器吧?
答:当然是,但PLC的结构设计和电路设计是在EMC抗骚扰状态下研发的,所以它具有极强的抗干扰能力。
在研发中心,电路板设计完成后,将所有元件包括CPU都焊接上去,元件的管脚长度和元件高度都必须符合规定。接着将电路板安装到专门设计的外壳中,接入外围电路,模仿实际工作场景。打开EMC测试仪,按规定从电源端输入相应的EMC干扰群脉冲,或者从接地点输入EMC地电流。这时,若元件有问题,则电路板立即损毁。
在测试中,能明确地看出工业级和民用级元件的区别,还有电路板设计的是否合理,元件搭配和安装高度是否符合电磁场的分布要求,以及前向通道的电磁隔离是否完善等等。
一般EMC测试会进行多次。电路板从第一次EMC测试开始,到最后通过,已经被修改得面目全非,而且电路工作原理也会随之修改和调整。
实验室EMC测试完成后,再进行功能测试和调整。全部完成后,就把完整的PLC到国家指定的测试中心去做型式试验。这个过程又需要多次反复。最后型式试验一旦通过,此产品就具有了在市场上销售的资格,随即开始进行小批量生产。
生产过程往往又伴随着元件调整。好的设计其生产工艺符合要求,结构合理,重复性良好。如果发现产品的工艺性和元件参数不满足生产要求,则要调整产品的相应部分。一旦涉及到元件更换,则又需要再次进行EMC测试和性能测试。
可见,PLC从提出设计理念开始,到制作出产品提供给市场,这里面还有许多路要走。这与学校里做一块电路板就可以进行功能展示,两者具有本质的不同。
当产品上市后,根据产品的在各种工况下的表现,需要再次做调整各项参数,形成产品的不同规格档次。
这里面的的甜酸苦辣,只有设计人员自己知道。
总之,对于应用于工业条件下的电器产品来说,EMC试验是最重要的。EMC极大地提高产品的抗干扰能力水平,提高了产品的功能性和应用范围,起到关键作用。
对于EMC,IEC有许多标准进行规范,我国国家标准也有对应的规定。具体可查阅相关标准。
网友:文中说PLC做的了的工控机,单片机不一定能做的了,这句是不是有失偏颇?本来其底层原理是完全一样的,只是EMC的问题罢了,就像LABVIEW推出了其适用于工控的一堆硬件,其实这样看来PLC就并没有太多优势了。例子的话,航空器航天器也多用工控机或者各种嵌入式系统,只是硬件要求更可靠,更皮实。本人以为PLC最大的优势在于其开发的高效可靠,任何人遵照严格的标准都可以做到尽量高可靠的系统。
答:是这样:要看工作条件。我们的通信管理机都安装在高压、中压和低压开关柜现场。特别是低压开关柜和中压开关柜,直接就安装在柜内。
柜内的温度很高,大约是40度。柜内的电磁场强度就不用说了。再加上灰尘。工控机的电源风扇、CPU的风扇以及整个电路板成为重灾区。风扇常常因为灰尘严重沾染而停转,继而全机停机,甚至烧毁CPU。
安装在开关柜内的工控机必须一直运行下去,在两次检修期间不得停机。我们配套了双机冗余技术,但由于双机都必须开机,因此上述情况一样严重。
自从换了PLC后,彻底地改变了这种被动状况。
至于安装在室内的工控机,它的工况要好得多,当然就不一定非要用PLC来取代不可。
总之,无论是用于工控现场的通信管理机,或者是是用于电力监控现场的通信管理机,在ABB,我们均采用PLC来取代工控机。
另外,PLC的冗余有两种,一种是逻辑冗余,一种是硬件冗余。所谓逻辑冗余,指的是两台独立的PLC,利用握手线相互关联相互监视,一旦主机有问题,从机立即切入,但时间会有数百毫秒;所谓硬件冗余,指的是同一台PLC上安装了2只CPU,两只CPU都按时钟同步运算。当主用CPU出问题后,从用CPU能在几个时钟周期内替换。所以硬件冗余切换更快。
但即使是逻辑冗余,切换速度也远远超过工控机。这也是我们最终选择PLC的主要原因之一。
提示1:关于检修期间
两次检修期间一般是2年。检修期间与配电设备的重要性相关。例如对某城区供电的变电站,因为检修期间需要停电,影响很大,需要配电网做出周密安排才行。再例如工厂企业,许多设备是不能停电的(类似玻璃熔窑、流量控制等等),配电设备的检修期间也很长。
无论哪种配电设备还是控制设备,都需要对开关柜或者控制柜内做严密的监控,这就是以PLC作为通信管理机,还有底层各种测量仪表、继保装置和控制装置的主要用途了。人们可以根据被采集到的信息来判断柜内设备的运行状况,由此决定是否需要检修。
提示2:关于开关柜内的工作环境
开关柜内的电磁干扰极强。我们做过实验,用普通的单片机电路板(不带外部防护盒,完全裸露)植入其中,通电后,仅仅开断一次断路器,单片机就被击毁了。随后用工控机,情况会好很多,但出现强电弧时,工控机也会出现故障。另外,工控机的插口是个大问题,用不了多久,许多卡件的接触就不行了。究其原因,是因为灰尘和高温造成的。
说到灰尘,连我们都觉得奇怪,开关柜特别会吸附灰尘。也许是电压比较高的原因吧。
为了防尘和防水,IEC规定了IP防护等级。所以现在许多配电设备的防护等级都很高,但带来的副作用是:柜内温度更高,不但开关柜本体需要降容,而各种电力仪表,也包括通信管理机都因为高温而容易损坏。
海拔高度也有一定的影响。在高原地区,空气因为紫外线强的原因,带电粒子会增加,因此一旦出现电弧后,灭弧困难。在开关柜内,哪怕只是一个继电器的切换,其触头上的电弧就比平原地区要强得多。这些也会对各种电子设备带来影响。
因此,在高原地区,例如我们在青藏铁路沿线的110kV变电站,我们绝不使用工控机作为通信管理机。
网友:梯形图是很落后的一种编程方式,表示呵呵。编程有技巧,语言无优劣。
答:错。
梯形图属于IEC 61131-1编程语言,由于它的局限性,不得不在其中插入大量的模块,也即IEC 61131-3编程模块。例如通信模块、PID模块、开关量转字模块等等。换句话说,IEC 61131-1已经不能独立地自成体系,要借助于IEC 61131-3来协助完成编程。
既然如此,为何不直接使用IEC 61131-3编程语言?
由于梯形图简单直观,因此它作为学生学习之用是很合适的,但是在实际的编程时,若还抱着梯形图不放,就显得格外不协调。
从PLC的产品来看,欧美及日本三菱所产PLC大多采用IEC 61131-3编程语言,而日本的欧姆龙PLC和国产PLC则采用IEC 61131-1及部分IEC 61131-3模块掺和着使用。ABB的用于DCS测控用的高档PLC,已经完全摒弃IEC 61131-1也即梯形图编程方法。
由此可见,模块化编程语言是PLC编程的主流方向。
举例:在IEC 61131-3里,PID已经成为模块,编程者只要将PID参数配套完整,即可得到最终控制输出量。反观梯形图,麻烦不说,还要配套许多所谓技巧。两者相比,优劣立知。
网友:梯形图也是IEC61131-3的标准语言吧?
答:是,我也注意到了IEC61131-3的最新标准,其中把梯形图和模块图合并在一起了。我也询问了IEC标准委员会的委员们。他们答复说梯形图用得太广,必须把这两种绘图方式合并到一起。
感觉是,看问题还真要全面,说不定原来不被看好的东西又变成香饽饽。
类似的现象还有:现场总线和4~20毫安信息采集系统。原先说前者一定会把后者淘汰掉,结果现在却相互融合。
还有三相四线制和三相五线制。IEC原先对三相五线制嗤之以鼻,而现在正在讨论要承认三相五线制。改的速度似乎比我们脱衣服还快(笑)。