第二章 PLC的编程语言
PLC的编程语言 逻辑功能图 梯 形 图 逻辑方程式 语 句 表
一、 梯形图编程语言 1. 梯形图编程语言 梯形图编程语言是一种图形语言 两种梯形图的继电器符号图对照 物理继电器 PLC继电器 线 圈 常开 常闭 触 点 线 圈
2. 两种控制的梯形图比较 SB2 SB1 线圈 KM 继电器 控 制 常开触点 常闭触点 00000 00001 线圈 PLC控制 控 制 SB1 线圈 常开触点 常闭触点 00000 01000 PLC控制 00001 线圈
3. 两种控制中继电器的区别 物理继电器 PLC继电器 继电器需硬接线连接 触点个数有限 继电器的接线改变——控制功能改变 继电器用程序软连接 触点个数无限 PLC的用户程序改变—— 控制功能改变
例如 继电器控制接线 PLC控制外部接线 ~ 欲改变控制功能: 用继电器控制——要改变控制电路的实际接线。 KM Q FU KH M 3 ~ 例如 SB1 SB2 KM KH 主电路 相同 PLC控制外部接线 PLC ~ SB1 SB2 KH KM 输入设备 输出设备 欲改变控制功能: 用继电器控制——要改变控制电路的实际接线。 用PLC控制——外部接线不变,改变用户程序。
二、 语句表编程语言 用助记符表示指令的功能 指令语句是PLC用户程序的基础元素 多条指令语句的组合构成了语句表 程序 00000 01000 00001 LD 00000 OR 01000 AND NOT 00001 OUT 01000 梯形图程序 语句表程序
PLC的扫描工作方式
一、 PLC 采用循环扫描工作方式 扫描工作分为 5 个阶段 公 共 处 理 阶 段 程 序 执 行 阶 段 扫描周期计算阶段 公 共 处 理 阶 段 程 序 执 行 阶 段 扫描周期计算阶段 I/O 刷 新 阶 段 外设端口处理 阶段
PLC 循环扫描工作流程 异常报警 初始化 公共处理 接通电源 硬件检查 异常 正常? 扫描周期监视 执行用户程序 执行用 户程序 异常处理 设置各异常继电器 异常: (ERR/ALM)LED 灯亮 警告: 闪烁 异常或警告? 无 有 异常 检查结果正常? 扫描周期监视 时间预置 执行用户程序 程序结束?(END命令?) No Yes 扫描周期固定值 设定检查 有固定值设置? 等待设定扫描周期到 计算扫描周期 I/O 刷 新 正常 警告 接通电源 初始化 I/O 外设端口 服务 、内部辅助、特殊辅助、 辅助记忆继电器区域清零 定时器预置 识别扩展单元 公 共 处 理 执行用户 程序 扫 描 周 期 计 算 处 理 刷新 硬件、用户程序内存 检 查 外设端口服务 PLC 初始化 硬件检查 公共处理 异常 正常? 异常报警 扫描周期监视 执行用户程序 执行用 户程序 异常处理 程序结束? 循环扫描工作流程 扫描周期检查 扫描周期计算 有固定设置? 等待 扫描周期计算 刷 新 I/O刷新 端口服务 外设端口服务
1. PLC扫描工作各环节的功能 ① PLC上电后,首先检查硬件是否正常。 ② 按自上而下的顺序,逐条读用户程序并执行。 ③ 计算扫描周期。 若正常,则进行下一步;若不正常,则报警并作处理。 ② 按自上而下的顺序,逐条读用户程序并执行。 对输入的数据进行处理, 将结果存入元件映象寄存器。 00002 01000 00001 ③ 计算扫描周期。 ④ I/O刷新阶段。 母线 读输入点的状态并写入输入映像寄存器。 将元件映像寄存器的状态经输出锁存器、输出电路送到输出点。 ⑤ 外设端口服务。 访问外设端口连接的外部设备。
2. PLC执行用户程序的过程 执行用户程序 输入端子 输入电路 用户输入设备 输入映像寄存器 输出电路 输 出 端 子 元件映像寄存器 01001 01000 00000 00001 输入端子 输入电路 用户输入设备 输入映像寄存器 输出电路 输 出 端 子 元件映像寄存器 输出锁存器 用户输出设备 读 写 读 读 I/O刷新 I/O刷新 写 执行用户程序
3. PLC控制的原理 等效电路图 PLC ~ ≈ 输入部分 用户程序 输出部分 PLC KM FU KH 主电路 输出端子 输入端子 ~ SB1 SB2 KM ST 00000 00001 00002 01000 COM 3. PLC控制的原理 KM FU KH M 3 ~ Q 等效电路图 主电路 输出端子 输入端子 01000 PLC COM 00000 00001 00002 ≈ SB1 ~ KM SB2 ST 公共端 公共端 输入部分 用户程序 输出部分
PLC 触点闭合 电动机转 ~ KM通电 00000 闭合 线圈通电 接点闭合 SB1闭合 触点闭合 ~ ≈ FU PLC KM KH ST 00000 00001 00002 01000 COM 触点闭合 KM FU KH M 3 ~ Q 电动机转 KM通电 00000 闭合 线圈通电 接点闭合 SB1闭合 PLC COM 00000 00001 00002 ≈ 01000 ~ KM SB2 ST 触点闭合
PLC ~ 触点断开 电动停转 KM通电 KM断电 00001 断开 线圈断电 接点断开 SB2闭合 ≈ ~ 触点断开 FU PLC KM ST 00000 00001 00002 01000 COM 触点断开 KM FU KH M 3 ~ Q 电动停转 KM通电 KM断电 00001 断开 线圈断电 接点断开 SB2闭合 PLC COM 00000 00001 00002 ≈ 01000 ~ KM SB2 ST 触点断开
4. PLC执行用户程序的特点 ① 按梯形图自左向右、自上而下逐次执行程序 ② 执行程序时所需数据取自于: 输入映像寄存器 元件映像寄存器 ③ 输入映像寄存器和元件映像寄存器中的数据 输入映像寄存器:在一个扫描周期中保持不变 元件映像寄存器:在一个扫描周期中可读可写 ④ 每个扫描周期I/O刷新阶段集中读入/读出数据
二、 PLC的I/O滞后现象 1. 产生I/O滞后现象的原因 (1) 由于PLC采用循环扫描的工作方式。 (2) 输入滤波器对信号的延迟作用。 滤波器时间常数越大,对输入信号的延迟作用越强。 有的PLC其输入电路滤波器的时间常数可以调整。
(3) 输出继电器的动作延迟(继电器输出型PLC)。 从输出锁存器ON、到输出触点ON经历一定时间 ——输出ON延时。 要求有较快响应的场合 最好不要使用继电器输出型PLC。 (4) 用户程序的长短及语句编排。 I/O滞后现象,对慢速控制系统影响不大。 要求快速响应的场合,需要解决I/O速度问题。
2. I/O响应时间的估算 以20点的继电器输出型CPM1A为例。 设输入ON延时为8毫秒 公共处理和I/O刷新时间为2毫秒 执行用户程序时间为14毫秒 输出ON延时为15毫秒 输入状态经过一个扫描周期后在输出得到响应 ——最小I/O响应时间 输入状态经过两个扫描周期后在输出得到响应 ——最大I/O响应时间
最小I/O响应时间的计算 最小I/O响应时间 = 输入ON延时 + (公共处理 + I/O刷新时间) 执行程序 其他 扫描周期(Ts) 输入ON延时 输入触点 输入滤波 输出锁存 输出ON延时 输出触点 I/O响应时间 最小I/O响应时间 = 输入ON延时 + (公共处理 + I/O刷新时间) + 执行程序时间 + 输出ON延时 = 8 + 2 + 14 + 15 = 39 ms
最大I/O响应时间的计算 最大I/O响应时间 = 输入ON延时+ (公共处理+ I/O刷新+执行程序)×2 其他 扫描周期(Ts) 输入ON延时 输入触点 输入滤波 输出锁存 输出ON延时 输出触点 I/O响应时间 最大I/O响应时间 = 输入ON延时+ (公共处理+ I/O刷新+执行程序)×2 + 输出ON延时 = 8 +(2 +14)× 2 + 15 = 55 ms。
程序语句安排对I/O响应时间的影响举例 当SB闭合,经过输入滤波,设第一个扫描周期I/O刷新时 00000的映像寄存器 ON。 20000 00000 01000 01001 PLC ~ SB KM1 COM KM2 当SB闭合,经过输入滤波,设第一个扫描周期I/O刷新时 00000的映像寄存器 ON。 第一个扫描周期 结束时,01000为OFF。 01000只能在第二个扫描周期结束后才能ON。
如果将梯形图的第一与第二梯级交换,如下图: 续 如果将梯形图的第一与第二梯级交换,如下图: 00000 20000 01000 01001 PLC ~ SB KM1 COM KM2 当SB闭合,经过输入滤波,设第一个扫描周期 00000的映像寄存器 ON。 01000 在第一个扫描周期结束后就能ON 。 显然,程序语句的安排对I/O响应的影响很大 。
1. 用户程序存储的容量大小; 2. 输入/输出点数的多少; 3. 循环扫描速度的快慢; 4. 编程指令的种类和条数的多少; 5. 内部器件的种类和数量的多少; 6. 功能及功能扩展的能力; 7. 智能单元数量的多少; 8. 连网通信能力等。