零基础轻松学会松下PLC
上QQ阅读APP看书,第一时间看更新

2.5 程序设计的基本方法

程序设计就是根据控制要求实现将工艺流程图转换成梯形图的过程。这一过程是PLC应用中的关键所在,也是软件设计的具体体现。

2.5.1 编程内容

编程是一个系统工作,它包含了对控制对象分析理解和对程序调试的全过程。编写程序的主要内容有:

1)明确控制系统要求。

确定控制任务是设计PLC控制系统十分重要的部分。在设计中首先必须确定控制系统的I/O点数,因为它决定了PLC的系统配置;然后确定控制系统动作发生的顺序和相应的动作条件。

2)I/O分配。

根据控制系统的功能确定哪些是发送(输入)给PLC的信号,哪些是来自PLC的信号(输出),并分别给出对应的地址。同时根据程序的需要合理使用定义过的内部辅助继电器、定时器和计数器等资源。

3)绘制梯形图。

明确输入、输出以及它们之间的关系之后,按照控制的要求编写梯形图。

4)将梯形图转换成助记符,编写指令表(如果借助于计算机和编程软件,可省去这一步)。

5)利用编程器或编程软件将程序输入到PLC中。

6)检查程序并纠正错误。

7)模拟调试。

8)现场调试,并将调试好的程序备份到EEPROM中。

在前面的每一步骤进行时,可以一步步来实现,或者多人协助,同时完成控制需要的任务。

2.5.2 程序设计的编程方法

在编写PLC程序时,可以根据自己的实际情况采用不同的方法,在本章中简单介绍编程方法,详细的方法与实例请参看本书第6章。

1.解析法

PLC的逻辑控制实际上就是逻辑问题的综合,可以根据组合逻辑或者时序逻辑的理论,运用相应的解析方法,对其进行逻辑关系的求解。然后根据求解的结果画出梯形图或直接编写指令。

2.经验法

经验法是运用自己的经验或者借鉴别人已经成熟的实例进行设计,可以将已有相近或类似的实例按照控制系统的要求进行修改,直至满足控制系统的要求。在工作中要尽可能地积累经验和收集资料,不断丰富设计经验。

3.图解法

图解法是采用画图的方法进行PLC程序设计,常见的方法有梯形图法、时序图(波形图)法和流程图法。

梯形图法是最基本的方法,无论经验法还是解析法,都要把PLC程序等价为梯形图。

时序图(波形图)法适合于时间控制系统。先把对应信号的波形画出来,再根据时序逻辑关系去组合,把程序设计出来。

流程图法是用框图表示PLC程序的执行过程及输入与输出之间的关系,在使用步进指令编程时,使用该方法进行设计是很方便的。

4.技巧法

技巧法是在经验法和解析法的基础上运用一定的技巧进行编程,以提高编程质量。还可以采用流程图作为工具,巧妙地将设计形式化,进而编写需要的程序。

5.计算机辅助设计

计算机辅助设计是利用PLC通过上位链接单元与计算机实现链接,运用计算机进行编程。该方法需要有相应的编程软件,现有的软件主要是将梯形图转换成指令。

2.5.3 编程原则及技巧

1.编程技巧

采用一些编程技巧可使程序简洁、直观和易于理解,节省程序的存储空间,减少不易发现的错误。以下是一些常用的编程技巧:

1)输入继电器、输出继电器、辅助继电器、定时器/计数器的触点数量在程序中没有限制,多次使用可以简化程序和节省存储单元。

2)在不使程序复杂难懂的情况下应尽可能少占用存储空间。

3)定时器和计数器的编号范围是0~143,不能重复使用。编程时定时器可以从0开始递增使用,而计数器从143开始递减使用,这样就可以避免定时器、计数器使用相同的编号。

4)在对复杂的梯形图进行调试时可以在任何地方插入ED指令,分段进行调试,从而提高调试的效率。

5)PLC在工作时按照从左到右,由上而下的顺序进行扫描,上一梯级的执行结果会影响下一级的输入,所以在编程时必须考虑控制系统逻辑上的先后关系。

2.编程原则

1)任一编号的输出继电器、辅助继电器和定时器/计数器的线圈在程序中只能使用一次,但触点可以无限次使用。

2)并联触点和串联触点的个数没有限制。

3)线圈不能从母线直接输出。如需要始终保持通电,可以使用特殊继电器。

4)输出线圈可以并联,不能串联,但定时器的线圈可以串联。

5)一般以线圈、功能指令或高级指令与右母线相连,线圈、功能指令或高级指令后面不允许有触点。

6)不准使用没有定义过的触点和线圈。

7)主程序必须以ED指令结束。

8)定时器/计数器不能直接产生外部输出信号,需用其触点编程到一个输出继电器。

9)梯形图的竖线上不能安排任何元器件。

2.5.4 编程应用实例

在编制不同程序时,有着不同的技巧及原则,接下来就常见的实例,看看应用技巧的优越性。

1.结构简单的编程

【例2-26】 并联-串联结构

要编写并联-串联结构(指令及梯形图如图2-46所示)的编程,先编写并联逻辑块(如图2-46a中a块),然后再编写串联逻辑块(如图2-46a中b块)。

978-7-111-46505-8-Chapter02-56.jpg

图2-46 并联-串联结构

a)梯形图 b)指令表

【例2-27】 串联-并联结构

对于图2-47中串联-并联结构的编程,就必须将其分为逻辑块a和逻辑块b。先对每块进行编程,然后利用ANS指令把这些逻辑块组合在一起。图2-47中,如将a块和b块换位,则可以减少指令数量,节约存储空间。

978-7-111-46505-8-Chapter02-57.jpg

图2-47 串联-并联结构

a)梯形图 b)指令表

【例2-28】 多个并、串联结构

当梯形图中有多个串联和并联逻辑块时(如图2-48所示)。

978-7-111-46505-8-Chapter02-58.jpg

图2-48 在串联中连接并联结构

a)梯形图之一 b)指令表 c)梯形图之二

首先要把整个输出支路分成若干个串联或并联逻辑块,再把每个串联或并联逻辑块分为几个独立的逻辑块,然后对每个独立的逻辑块进行编程,最后根据它们之间的相互关系将所有的逻辑块利用ORS和ANS指令进行组合,完成整个输出支路的编程。

2.复杂结构编程

【例2-29】 并联结构,并有多种继电器输出

如图2-49中涉及并联和多种继电器输出,编程时只需按照先后顺序进行即可。但是如果将该程序中的输出线圈Y0放在最上一行,就必须采用PSHS、RDS和POPS指令进行编程,程序就会更复杂。

【例2-30】 程序块的简单化,节省存储空间

从图2-50可以看出,对梯形图做一些局部变换后,程序看起来就变得简单了,不需要使用逻辑块指令即可完成,并且节约了存储空间。

【例2-31】 程序块的简单化,却增加了存储空间

978-7-111-46505-8-Chapter02-59.jpg

图2-49 并联结构并有多种继电器输出

a)梯形图 b)指令表

978-7-111-46505-8-Chapter02-60.jpg

图2-50 程序块的简单化(一)

a)梯形图 b)梯形图局部变换 c)指令表(变换前) d)指令表(变换后)

在图2-51中,对难以理解的复杂梯形图做出两种不同的变换。

978-7-111-46505-8-Chapter02-61.jpg

图2-51 程序块的简单化(二)

a)梯形图之一 b)梯形图之二 c)梯形图之三 d)指令表(一) e)指令表(二) f)指令表(三)

从梯形图之一变为梯形图之二时,尽管程序看起来顺畅,但是却增加了所占用的存储空间。当变为梯形图之三时,为最优。由此可以看出,复杂的结构可以通过程序变换而变得简单明了,而不同的变换方式得到的结果是完全不一样的,应从中找出最理想的方案。

3.结构变换

【例2-32】 下面是几个结构变换的例子。

从图2-52~图2-55可以看出,对梯形图进行适当的变换后,不仅增强了程序可读性和直观性,而且还节约了存储空间。这是在程序设计中必须要考虑的。

松下PLC有着自身的工作方式,有时候硬件很容易实现的事情而软件却不能实现,同样有些软件很好实现的而硬件却无能为力。在图2-56中,左边梯形图的桥式结构,硬件很容易实现但软件无法实现,所以必须变换为右边的形式才可以通过PLC来实现。

978-7-111-46505-8-Chapter02-62.jpg

图2-52 结构变换(一)

a)梯形图一 b)梯形图二 c)指令表一 d)指令表二

978-7-111-46505-8-Chapter02-63.jpg

图2-53 结构变换(二)

a)梯形图一 b)梯形图二 c)指令表一 d)指令表二

978-7-111-46505-8-Chapter02-64.jpg

图2-54 结构变换(三)

a)梯形图一 b)梯形图二 c)指令表一 d)指令表二

978-7-111-46505-8-Chapter02-65.jpg

图2-55结构变换(四)

a)梯形图一 b)梯形图二 c)指令表一 d)指令表二

978-7-111-46505-8-Chapter02-66.jpg

图2-56 结构变换(五)