lijx@fjut.edu.cn
第 5 部分
PLC程序的设计
授课教师:李 建 兴 ( E-mail,lijx@fjut.edu.cn)
(福建工程学院电子信息与电气工程系)
可编程序控制器( PLC) 应用技术
lijx@fjut.edu.cn
5.3 PLC程序的经验设计法
5.3.1 概述
? 基本思路,在已有的些典型梯形图的基础上,根据被控对
象对控制的要求,通过多次反复地调试和修改梯形图,增
加中间编程元件和触点,以得到一个较为满意的程序。
? 基本特点,没有普遍的规律可以遵循,设计所用的时间、
设计的质量与编程者的经验有很大的关系。
? 适用场合,可用于逻辑关系较简单的梯形图程序设计。
? 基本步骤,分析控制要求、选择控制原则;
设计主令和检测元件,确定输入输出设备;
设计执行元件的控制程序;
检查修改和完善程序。
lijx@fjut.edu.cn
5.3 PLC程序的经验设计法
5.3.2 例 1---送料小车自动控制的梯形图程序设计
? 控制要求:
说明,X4处装料,20s后装料结束,开始右行,碰到 X3后
停下卸料,25s后左行,碰到 X4后又停下装料,这样不停
地循环工作 。 按钮 X0和 X1分别用来起动小车右行和左行。
lijx@fjut.edu.cn
5.3 PLC程序的经验设计法
5.3.2 例 1---送料小车自动控制的梯形图程序设计
? 设计思路,
以众所周知的电动机正反转控制的梯形图为基础,设
计出的小车控制梯形图。为使小车自动停止,将 X3和 X4的
常闭触点分别与 Y0和 Y1的线圈串联。为使小车自动起动,
将控制装、卸料延时的定时器 T0和 T1的常开触点,分别与
手动起动右行和左行的 X0,X1的常开触点并联,并用两个
限位开关对应的 X4和 X3的常开触点分别接通装料、卸料电
磁阀和相应的定时器。
lijx@fjut.edu.cn
5.3 PLC程序的经验设计法
5.3.2 例 1---送料小车自动控制的梯形图程序设计
? 程序说明
lijx@fjut.edu.cn
5.3 PLC程序的经验设计法
5.3.3 例 2---两处卸料小车自动控制的梯形图程序设计
? 控制要求
说明:小车仍然在限位开关 X4处装料,但在 X5和 X3两处
轮流卸料。
lijx@fjut.edu.cn
5.3 PLC程序的经验设计法
5.3.3 例 2---两处卸料小车自动控制的梯形图程序设计
? 程序设计
lijx@fjut.edu.cn
5.3 PLC程序的经验设计法
5.3.4 总结
? 经验设计法对于一些比较简单程序设计是比较奏效的,可以
收到快速、简单的效果。
? 经验设计法没有规律可遵循,具有很大的试探性和随意性,
往往需经多次反复修改和完善才能符合设计要求,设计的结
果往往不很规范,因人而异。
? 特点:考虑不周、设计麻烦、设计周期长;梯形图的可读性
差、系统维护困难。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.1 概述
? 顺序控制系统:
如果一个控制系统可以分解成几个独立的控制动作, 且这些动作
必须严格按照一定的先后次序执行才能保证生产过程的正常运行,
也称为步进控制系统 。
? 顺序控制设计法
就是针对顺序控制系统的一种专门的设计方法 。 这种设计方法很
容易被初学者接受, 对于有经验的工程师, 也会提高设计的效率,
程序的调试, 修改和阅读也很方便 。
PLC的设计者们为顺序控制系统的程序编制提供了大量通用和专
用的编程元件, 开发了专门供编制顺序控制程序用的功能表图, 使
这种先进的设计方法成为当前 PLC程序设计的主要方法 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.2 顺控设计法的设计步骤
? 步的划分
? 转换条件的确定
? 功能表图的绘制
? 梯形图的编制
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.2 顺控设计法的设计步骤
? 步的划分
? 将系统的一个工作周期划分为若干个顺序相连的阶段,这
些阶段称为步,并且用编程元件来代表各步。
? 步是根据 PLC输出状态的变化来划分的,在任何一步内,
各输出状态不变,但是相邻步之间输出状态是不同的。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.2 顺控设计法的设计步骤
? 步的划分
? 步也可根据被控对象工作状态的变化来划分,但被控对象
工作状态的变化应该是由 PLC输出状态变化引起的。否则
就不能这样划分,例如从快进到工进与 PLC输出无关,那
么快进和工进只能算一步。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.2 顺控设计法的设计步骤
? 转换条件的确定
? 使系统由当前步转入下一步的信号称为转换条件 。
? 转换条件可能是外部输入信号, 如按钮, 指令开关, 限位
开关的接通 /断开等, 也可能是 PLC内部产生的信号, 如定
时器, 计数器触点的接通 /断开等,
? 转换条件也可能是若干个信号的与, 或, 非逻辑组合 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.2 顺控设计法的设计步骤
? 功能表图的绘制
根据以上分析和被控对象工作内容、步骤、顺序和控
制要求画出功能表图。绘制功能表图是顺序控制设计法中
最为关键的一步。
功能表图又称做状态转移图, 它是描述控制系统的控制
过程, 功能和特性的一种图形 。
功能表图不涉及所描述控制功能的具体技术, 是一种通
用的技术语言, 可用于进一步设计和不同专业的人员之间
进行技术交流 。
各个 PLC厂家都开发了相应的功能表图, 各国家也都制
定了国家标准 。 我国 1986年颁布了功能表图国家标准 (
GB6988.6-86) 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.2 顺控设计法的设计步骤
? 梯形图的编制
根据功能表图, 按某种编程方式写出梯形图程序 。
如果 PLC支持功能表图语言, 则可直接使用该功能表图
作为最终程序 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 功能表图的组成
? 主要由步、有向连线、转换、转换条件和动作(命令)组
成。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 步与动作
? 步, 矩形框表示步, 方框内是该步的编号 。 编程时一般用
PLC内部编程元件来代表各步
? 初始步, 与系统的初始状态相对应的步称为初始步 。 初始
步用双线方框表示, 每一个功能表图至少应该有一个初始
步 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 步与动作
? 动作, 一个控制系统可以划分为被控系统和施控系统 。 对
于被控系统, 在某一步中要完成某些, 动作, ;对于施控
系统, 在某一步中则要向被控系统发出某些, 命令,, 将
动作或命令简称为动作
? 动作的表示, 矩形框中的文字或符号表示, 该矩形框应与
相应的步的符号相连 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 步与动作
? 活动步, 当系统正处于某一步时, 该步处于活动状态, 称
该步为, 活动步, 。 步处于活动时, 相应的动作被执行 。
? 保持型动作, 若为保持型动作, 则该步不活动时继续执行
该动作 。
? 非保持型动作, 若为非保持型动作则指该步不活动时, 动
作也停止执行 。
? 说明:一般在功能表图中保持型的动作应该用文字或助记
符标注, 而非保持型动作不要标注 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 有向连线、转换与转换条件
? 有向连线,功能表图中步的活动状态的顺序进展按有向连
线规定的路线和方向进行 。 活动状态的进展方向习惯上是
从上到下或从左至右, 在这两个方向有向连线上的箭头可
以省略 。 如果不是上述的方向, 应在有向连线上用箭头注
明进展方向 。
? 转换, 转换是用有向连线上与有向连线垂直的短划线来表
示, 转换将相邻两步分隔开 。 步的活动状态的进展是由转
换的实现来完成的, 并与控制过程的发展相对应 。
? 转换条件,转换条件可以用文字语言, 布尔代数表达式或
图形符号标注在表示转换的短线的旁边 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 转换实现的基本规则
? 转换实现的条件,在功能表图中步的活动状态的进展是由
转换的实现来完成 。 转换实现必须同时满足两个条件:
1) 该转换所有的前级步都是活动步;
2) 相应的转换条件得到满足 。
? 转换实现应完成的操作,转换的实现应完成两个操作:
1) 使所有的后续步都变为活动步;
2)使所有的前级步都变为不活动步。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 例 (液压滑台)
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 例 (液压滑台)
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 功能表图的基本结构
? 单序列,单序列由一系列相继激活的步组成, 每一步的后
面仅接有一个转换, 每一个转换的后面只有一个步 。
? 选择序列,
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 功能表图的基本结构
? 并行序列, 并行序列的开始称为分支, 当转换条件的实现
导致几个序列同时激活时, 这些序列称为并行序列 。 为了
强调转换的同步实现, 水平连线用双线表示 。 并行序列的
结束称为合并, 在表示同步的水平双线之下, 只允许有一
个转换符号 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 功能表图的基本结构
? 子步,某一步可以包含一系列子步和转
换,通常这些序列表示整个系统的一个
完整的子功能。
? 子步的使用使系统的设计者在总体设计时容易
抓住系统的主要矛盾,用更加简洁的方式表示
系统的整体功能和概貌,而不是一开始就陷入
某些细节之中。
? 子步中还可以包含更详细的子步,这使设计方
法的逻辑性很强,可以减少设计中的错误,缩
短总体设计和查错所需要的时间。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.3 顺控设计法中功能表图的绘制
? 绘制功能表图应注意的问题
? 两个步绝对不能直接相连, 必须用一个转换将它们隔开 。
? 两个转换也不能直接相连, 必须用一个步将它们隔开 。
? 功能表图中初始步是必不可少的 。
? 只有当某一步所有的前级步都是活动步时, 该步才有可能
变成活动步 。 PLC开始进入 RUN方式时各步均处于, 0” 状
态, 因此必须要有 初始化信号, 将初始步预置为活动步,
否则功能表图中永远不会出现活动步, 系统将无法工作 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 概述
? 梯形图的编程方式是指根据功能表图设计出梯形图的方法
? 为了适应各 PLC在编程元件, 指令功能和表示方法上的差异, 本节主
要介绍:
1) 使用通用指令的编程方式
2) 以转换为中心的编程方式
3) 使用 STL指令的编程方式
4) 仿 STL指令的编程方式 。
为了便于分析, 我们假设刚开始执行用户程序时, 系统已处于初始
步 ( 用初始化脉冲 M8002将初始步置位 ), 代表其余各步的编程元件
均为 OFF,为转换的实现做好了准备 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用通用指令的编程方式
? 编程时用辅助继电器来代表步 。 由于转换条件大都是短信
号, 因此应使用有记忆 ( 保持 ) 功能的电路 。
? 编程的关键是找出起动条件和停止条件 。 编程方式仅仅使
用与触点和线圈有关的指令, 可适用于任意型号的 PLC。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用通用指令的编程方式
例1





lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用通用指令的编程方式
例2







lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用通用指令的编程方式 (编程时应该注意的问题)
1) 不允许出现双线圈现象 。
2) 仅有由两步组成的小闭环的的处理 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用通用指令的编程方式 (编程时应该注意的问题)
3)特殊情况的处理
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 以转换为中心的编程方式
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 以转换为中心的编程方式







编程方式时,不能将输
出继电器的线圈与 SET,RST
指令并联。
因为前级步和转换条件
对应的串联电路接通的时间
是相当短的,转换条件满足
后前级步马上被复位,该串
联电路被断开,而输出继电
器线圈至少应该在某一步活
动的全部时间内接通。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用步进指令的编程方式
? 许多 PLC厂家有专门用于编制顺控程序的指令和编程元件
? STL触点驱动的电路块具有三个功能:对负载的驱动处理
,指定转换条件和指定转换目标 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用步进指令的编程方式
? 除了后面要介绍的并行序列的合并对应的梯形图外, STL
触点是与左侧母线相连的常开触点, 当某一步为活动步时
,对应的 STL触点接通, 该步的负载被驱动 。 当该步后面
的转换条件满足时, 转换实现, 即后续步对应的状态器被
SET指令置位, 后续步变为活动步, 同时与前级步对应的
状态器被系统程序自动复位, 前级步对应的 STL触点断开
。 5) STL指令只能用于状态寄存器, 在没有并行序列时,
一个状态寄存器的 STL触点在梯形图中只能出现一次 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用步进指令的编程方式
使用 STL指令时应该注意以下一些问题:
? 与 STL触点相连的触点应使用 LD或 LDI指令 。 各个 STL触点驱动的电
路一般放在一起, 最后一个电路结束时一定要使用 RET指令 。
? STL触点断开时, CPU不执行它驱动的电路块 。
? CPU只执行活动步对应的电路块, 因此允许双线圈输出 。
? STL触点驱动的电路块中不能使用 MC和 MCR指令, 但可用 CJP和 EJP
指令 。
? 使状态器置位的指令如果不在 STL触点驱动的电路块内, 执行置位
指令时系统程序不会自动将前级步对应的状态器复位 。
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用步进指令的编程方式






lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用步进指令的编程方式






lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用步进指令的编程方式








lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 使用步进指令的编程方式








lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 仿步进指令的编程方式
lijx@fjut.edu.cn
5.4 PLC程序的顺控设计法
5.4.4 顺控设计法中梯形图的编程方式
? 仿步进指令的编程方式(注意)
? 与代替 STL触点的常开触点 ( 如图 5-33中 M300~ M304的常
开触点 ) 相连的触点, 应使用 AND或 ANI指令, 而不是 LD
或 LDI指令 。
? 在梯形图中用 RST指令来完成代表前级步的辅助继电器的
复位, 而不是由系统程序自动完成 。
? 不允许出现双线圈现象, 当某一输出继电器在几步中均为
,1” 状态时, 应将代表这几步的辅助继电器常开触点并
联来控制该输出继电器的线圈 。
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.1 复杂程序的设计方法
? 概述
实际的 PLC应用系统往往比较复杂, 复杂系统不仅需要
的 PLC输入/输出点数多, 而且为了满足生产的需要, 很
多工业设备都需要设置多种不同的工作方式, 常见的有手
动和自动 ( 连续, 单周期, 单步 ) 等工作方式 。
? 设计思路与步骤
? 确定程序的总体结构:
? 分别设计局部程序
? 程序的综合与调试
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.1 复杂程序的设计方法
? 设计思路与步骤
? 确定程序的总体结构, 将系统的程序按工作
方式和功能分成若干部份, 如:公共程序, 手
动程序, 自动程序等部份 。 手动程序和自动程
序是不同时执行的, 所以用跳转指令将它们分
开, 用工作方式的选择信号作为跳转的条件
? 分别设计局部程序, 公共程序和手动程序相
对较为简单, 一般采用经验设计法进行设计;
自动程序相对比较复杂, 对于顺序控制系统一
般采用顺序控制设计法 。
? 程序的综合与调试, 进一步理顺各部分程序
之间的相互关系, 并进行程序的调试
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.2 程序的内容和质量
? PLC程序的内容
? 最大限度地满足控制要求, 完成所要求的控制功能 。
? 除控制功能外, 通常还应包括以下几个方面的内容:
1) 初始化程序, 在 PLC上电后, 一般都要做一些初始化的操作 。 其作
用是为启动作必要的准备, 并避免系统发生误动作 。
2) 检测, 故障诊断, 显示程序, 应用程序一般都设有检测, 故障诊断
和显示程序等内容 。
3) 保护, 连锁程序, 各种应用程序中, 保护和连锁是不可缺少的部分
。 它可以杜绝由于非法操作而引起的控制逻辑混乱, 保证系统的运
行更安全, 可靠 。
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.2 程序的内容和质量
? PLC程序的质量
程序的质量可以由以下几个方面来衡量:
? 程序的正确性, 所谓正确的程序必须能经得起系统运行实
践的考验, 离开这一条对程序所做的评价都是没有意义的

? 程序的可靠性, 好的应用程序可以保证系统在正常和非正
常 ( 短时掉电再复电, 某些被控量超标, 某个环节有故障
等 ) 工作条件下都能安全可靠地运行, 也能保证在出现非
法操作 ( 如按动或误触动了不该动作的按钮 ) 等情况下不
至于出现系统控制失误 。
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.2 程序的内容和质量
? PLC程序的质量
? 参数的易调整性, 容易通过修改程序或参数而改变系统的
某些功能 。 例如, 有的系统在一定情况下需要变动某些控
制量的参数 ( 如定时器或计数器的设定值等 ), 在设计程
序时必须考虑怎样编写才能易于修改 。
? 程序的简洁性, 编写的程序应尽可能简练
? 程序的可读性, 程序不仅仅给设计者自己看, 系统的维护
人员也要读 。 另外, 为了有利于交流, 也要求程序有一定
的可读性 。
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.3 程序的调试
? 概述
? PLC程序的调试可以分为 模拟调试 和 现场调试
? 调试之前首先对 PLC外部接线作仔细检查无误。也可以用
事先编写好的试验程序对外部接线做扫描通电检查来查找
接线故障。
? 为了安全考虑,最好将主电路断开。当确认接线无误后再
连接主电路,将模拟调试好的程序送入用户存储器进行调
试,直到各部分的功能都正常,并能协调一致地完成整体
的控制功能为止。
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.3 程序的调试
? 模拟调试
? 将设计好的程序写入 PLC后, 首先逐条仔细检查, 并改正写入时出
现的错误 。
? 用户程序一般先在实验室模拟调试, 实际的输入信号可以用钮子开
关和按钮来模拟, 各输出量的通/断状态用 PLC上有关的发光二极
管来显示, 一般不用接 PLC实际的负载 (如接触器, 电磁阀等 )。
? 在调试时应充分考虑各种可能的情况, 各种可能的进展路线, 都应
逐一检查, 不能遗漏 。
? 发现问题后应及时修改梯形图和 PLC中的程序, 直到在各种可能的
情况下输入量与输出量之间的关系完全符合要求 。
? 如果程序中某些定时器或计数器的应该选择合适设定值 。
lijx@fjut.edu.cn
5.5 PLC程序及调试说明
5.5.3 程序的调试
?现场调试
? 将 PLC安装在控制现场进行联机总调试, 在调试过程中将
暴露出系统中图和梯形图程序设计中的问题, 应对出现的
问题及时可能存在的传感器, 执行器和硬接线等方面的问
题, 以及 PLC的外部接线加以解决 。
? 如果调试达不到指标要求, 则对相应硬件和软件部分作适
当调整, 通常只需要修改程序就可能达到调整的目的 。
? 全部调试通过后, 经过一段时间的考验, 系统就可以投入
实际的运行了