plc编程软件

初学的时候,学校还没有plc。我和企业的技术人员一起,做了一些plc控制的项目,还为企业翻译过西门子的s5-135u的技术资料,对plc有了比较深入的了解。

对plc基本上心里有数后,我准备在学校开设plc课程。当时国内还没有一本plc教材,只有自己编写。刚开始编写的时候心里完全没数,连教材大致应该有什么样的结构都不知道。

我在工厂工作的时候,曾经阅读过一些非常复杂的控制电路,里面的逻辑关系七拐八绕,就像一团乱麻,如果没有说明书,休想把它看懂。显然,复杂的继电器控制电路的设计更为困难。

plc当时主要用来替代继电器控制,plc的梯形图与继电器非常接近。如果还是沿用继电器电路的设计方法来设计梯形图,程序设计将会成为plc推广应用的最大障碍。因此我在写教材的时候,重点放在plc的程序设计方法上。

我希望能找到继电器控制电路的设计方法,供plc的程序设计参考。当时有关的书籍极少,我在学校图书馆只找到一本文革前出版的工厂控制的书籍,里面讲了一种继电器电路的“经验设计法”。

经验设计法是在一些典型电路的基础上,根据被控对象对控制系统的具体要求,不断地修改和完善电路。有时需要多次反复地调试和修改电路,增加一些触点或,最后才能得到一个较为满意的结果。这种设计方法没有普遍的规律可以遵循,具有很大的试探性和随意性,最后的结果不是惟一的,设计所用的时间、设计的质量与设计者的经验有很大的关系。这个所谓的设计方法只能意会、不能言传,没法推广普及。

后来我阅读了多个厂家的plc用户手册和大量的外文资料,一种先进的设计方法浮现在我的眼前,这就是顺序控制设计法。在美国的《control engineering》杂志上,找到一篇法国te公司一个工程师写的介绍顺序控制的论文。一些plc用户手册也介绍了使用专用指令或专用编程元件的顺序控制设计法。使用顺序控制设计法时,首先根据系统的工艺过程,画出顺序功能图,然后根据顺序功能图画出梯形图。

我在图书馆找到了1986年颁布的顺序功能图的国家标准(gb 6988.6-86),顺序功能图当时被翻译为功能表图(function chart)。

在iec的语言标准(iec 61131-3)中,顺序功能图(sequential function chart)被确定为plc位居首位的编程语言。有的plc有顺序功能图语言,例如s7-300/400的s7-graph。但是有相当多的plc(包括s7-200)没有配备顺序功能图语言,为此我开发了多种根据顺序功能图设计梯形图的编程方法,包括使用起保停电路的编程方法、使用置位/复位指令的编程方法、仿stl指令的编程方法、使用锁存继电器的编程方式和使用移位寄存器的编程方法,我的教材还介绍了使用s7-200的顺序控制继电器指令和使用三菱的stl指令的编程方法。前3种方法可用于任意型号的plc。

实际上只要掌握了一种通用的编程方法就可以了。我比较喜欢使用置位/复位指令的编程方法,这种编程方法的规则简单,形象直观,容易掌握。我在德国发现德国的教授编写的教材也使用这种编程方法。

具有多种工作方式的顺序控制程序是设计中的难点,在我编写的教材里用实例介绍了这种系统的编程方法。此外我还用组态软件和西门子的simit软件开发了plc的被控对象的仿真画面和程序,可用于调试plc的顺序控制程序。

顺序控制设计法是一种先进的设计方法,很容易被初学者接受,对于有经验的工程师,也会提高设计的效率,程序的调试、修改和阅读也很方便。某企业有经验的电气工程师用经验设计法设计某控制系统的梯形图,花了两周的时间。我改用顺序控制设计法,只用了不到半天的时间,就完成了梯形图的设计和模拟调试,现场试车一次成功。

有个技校的老师告诉我,他用我的教材中的顺序控制设计法来指导参数市里的技能竞赛的学生的培训,学生经培训后基本上能保证拿到冠军。

实际上在plc出现之前,就有顺序控制器产品。我在一个轮胎厂看到过一种用来实现顺序控制的脉冲继电器。它有点像的换挡开关,其线圈每接收到一个脉冲电流,继电器的活动触点移动一个档的位置。每一档就是顺序控制中的一步,一共有25档。圆周上的固定触点上下有4层,每一步可以控制4个不同的负载。用顺序控制中的转换条件的并联电路来产生脉冲,实现步的活动状态的转换。这种产品有两个问题:

1)容易出现触点接触不良的故障。

2)采用焊接的接线方式,更换脉冲继电器非常麻烦。

在上世纪70年代,我看到过重庆某仪表厂生产的顺序控制器,它由小规模数字和分立元件组成,可以用锥形孔和锥形插头实现简单的“编程”。80年代初我在一个汽车厂看到在他们在机床上使用这类控制器。plc出现后,上述两种顺序控制器自然成了文物。