1
PLC编程实用指南
1.6.1.2 2.1.2  顺序控制编程方法
2.1.2 顺序控制编程方法

逻辑量控制的编程方法很多,较实用的有:基本逻辑设计法、图解设计方法、高级逻辑设计法、工程设计法及数据结构设计法。这些设计方法,也多都是先设计算法,然后再考虑算法实现。

此外,还有什么方法也不讲,只凭经验设计。有的继电电路设计的工程师,也可先设计继电控制电路,然后再翻译成PLC程序。

1.基本逻辑设计法

基本逻辑设计法是基于逻辑量间的与、或、非的关系,用逻辑综合方法,处理逻辑量的输入与输出间的关系。

顺序控制程序逻辑设计就是,根据要求的逻辑量的输入(历史值与当前值)与输出间的对应关系,运用逻辑综合方法,运用PLC的基本逻辑处理指令去设计程序。

逻辑综合涉及算法设计、PLC的指令选择及资源利用。具体的答案往往不止一个,而是多个。但由于逻辑设计的理论比较成熟,所以,实现算法设计及编程优化是不难做到的。

从本质上讲,基本逻辑设计法用于触点电路、继电器电路及PLC顺序控制程序设计与用于数字电路的综合是一致的。作者在1989年出版的《机床控制电器及电控制器》及1993年出版的《可编程序控制器》两书中就分别这么处理过。本书还将沿用此方法。

基本逻辑设计法编程比较严谨,所设计的程序比较精炼。但若处理的变量多时,不大好把握。同时,基本逻辑设计法主要是基于与、或、非等逻辑关系的指令,而实际上,PLC还有很多其他可供逻辑量处理的指令,所以,如果处理的问题较复杂,还应寻找较易掌握及较高效率的方法。

本章介绍的基本逻辑设计方法有3个:组合逻辑设计法、异步时序逻辑设计法及同步时序逻辑设计法。

2.高级逻辑设计法

高级逻辑设计法也是用逻辑综合方法处理逻辑量的输入与输出之间的关系。与基本逻辑设计法不同的是,在逻辑分析时,它不单纯基于逻辑量间的与、或、非的逻辑关系,还要用到其他的逻辑量间的关系。在逻辑综合时,所用也不仅仅是PLC的基本逻辑处理指令,还要使用到PLC的高级处理指令。

使用这些方法,既可把一些复杂的问题变得简单,而且还可充分利用PLC的资源,设计出效率较高的PLC程序。

本章将介绍的高级逻辑设计法有:逻辑标志值法编程及高级指令编程。

3.图解设计法

它是运用图形进行设计。用梯形图语言编程实质也就是图形法,无论什么方法,若把PLC程序等价成梯形图后,就要用到梯形图法。

此外,还有时序图法、流程图法等。

时序图法是根据信号的时序关系,画时序图,再根据这个时序图,去分析信号间的关系,进而去设计程序。时序图法很适合于时间顺序关系清晰的顺序控制程序设计。

流程图是用框图按顺序表达PLC输出与输入之间的关系,在使用步进指令或使用顺序功能图编程的情况下,用它是很方便的。

也还有用Petri网建模,进而用以编程。Petri网功能强大,应用很广,PLC的顺序流程图语言就是来源于它……

图解法比较直观,设计过程不易出错,也是人们较爱用的方法之一。本章将介绍时序图法、流程图法及Petri网法编程。

4.工程设计法

工程设计法就是运用自动控制理论与方法,分析与设计逻辑量输入与输出间的顺序控制关系。其目的是弄清所控制的对象,是怎样按要求的顺序工作的。

在PLC出现之前,工程上已用了很多顺序控制的方法,也有很多好的机理与做法。如普通金属切削机床的分散控制,就是靠每一动作完成的反馈信号,去结束本动作,并起动下一动作。到所有动作都执行完了,如半自动机床则停车;如自动机床则靠最后一个动作的完成信号,去重新起动第一个动作。

对于生产率很高的自动机床,其自动化用的则是集中控制。手段是用分配轴和用其他机械办法。机床工作时,分配轴不停地转动,并靠轴上的各种不同形状的凸轮,去控制机床的各部件运动。分配轴转动一周,各部件的运动也完成一个周期,并完成一个工件的加工。机理不复杂,但能完成很复杂的控制。只是它不是反馈控制,有点不可靠(只好用安全销做安全保护)。由于使用机械的手段实现控制,调整也较麻烦。

现代化的、功能很强、性能很高的机床多用混合控制。手段不用机械,而用电、用程序控制。机床按一个个程序(或步)依次工作。各个程序(或步)执行什么动作,可预先设计。而程序(或步)的转换则要靠动作完成的反馈信号触发。得不到反馈信号,程序(或步)将不会往下推进。所以,它既能完成复杂的控制,又能保证安全工作。

如果抛开上述控制的具体过程,把这些机理上升为控制算法,并选择PLC的有关指令去实现这些算法,就有了分散控制、集中控制及混合控制算法及相应的控制程序。只是以前金属切削机床自动化用的是硬件实现,而如今PLC的这个工程控制用的是软件实现。

(1)分散控制。其控制命令是由分散的动作完成反馈信号提供。图2-3所示的是基本分散控制的原理图。

从图2-3可知,当起动条件满足,给系统起动信号后,系统将产生动作1。当动作1完成,则产生动作1完成信号,并用此信号直接使动作2工作(动作1停止)。到了动作2完成,再用它的完成信号使动作3工作……依此类推,直到所有动作完成,系统工作停止,或又从动作1开始,重复这个过程。本书第1章1.6.5节就是这个算法的一个程序实现。

分散控制有反馈,工作可靠。其缺点是控制关系复杂,程序量随着动作的增加而增大。

(2)集中控制。命令是由集中控制器提供。图2-4所示为按集中原则实现控制的简图。

图2-4中,控制器顺序地发出一个个动作命令,直到全部动作完成。如果是自动工作,控制器又发出动作1命令;如果不是自动工作,控制器停止发送命令,系统工作停止。

用这一原则进行控制,其程序容易设计,效率高。有的PLC有凸轮单元或凸轮指令,更为用这种原则的设计提供了方便。

其缺点是没有反馈,如果协调不好,或采取的措施不当,系统易出现问题。本书第1章1.6.4节的用计数器实现时间控制也可理解为它的一个实现程序。

(3)混合控制。它的控制命令由集中控制器发出,而什么时候发出命令,则是由分散的反馈信号控制。图2-5所示为基本混合控制逻辑的原理图。

混合原则把分散与集中原则的优点兼而有之。程序要复杂一些,但程序量不随动作的增加而增加。多用于复杂的顺序控制。

978-7-111-39745-8-Chapter03-3.jpg

图2-3 基本分散控制原理图

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

图2-4 集中控制原理图

5.数据结构设计法

计算机数据结构中用的线性链表的数据查找,与上述混合步进控制颇为类似。数据结构设计法就是用数据查找的方法,图2-6所示为线性链表算法的框图。

978-7-111-39745-8-Chapter03-5.jpg

图2-5 混合控制逻辑原理图

978-7-111-39745-8-Chapter03-6.jpg

图2-6 线性链表算法的框图

从图2-6可知,这里有多组数据。在每组数据中,都有标号、设定输入、设定输出及指向的次一标号。当程序起动之后,先启用链表中标号0的数据。用它的指向,生成设定输出,再由设定输出产生虚拟输出,进而通过逻辑转换变为实际输出,以进行对系统第一步控制。

生成实际输出后,则等待实际控制效果的反馈。其过程是,先把实际反馈输入转换为计算输入,再进行计算输入与这里的设定输入比较。当这个比较结果一致,则转到次一个标号,停用本标号指向的数据,启用次一个标号指向的数据。进而根据次一个标号数据的输出生成输出,并等待新的控制效果的反馈。

这个过程重复进行,直到次一个为实现停止功能标号(具体可按约定设置),则过程结束,完成整个顺序控制。

可知,它与混合控制不同的只是,它不用步进机制,而用数表链接。算法更简洁些。熟悉计算机编程的人员也许更愿意使用。