




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第五章PLC的基本指令及程序设计 5 1PLC的基本逻辑指令及举例5 2程序控制指令5 3PLC编程指导5 4典型的简单电路编程5 5PLC程序简单设计法及应用举例 2 5 1PLC的基本逻辑指令及举例 PLC的编程语言有梯形图语言 助记符语言 逻辑功能图语言和某些高级语言 其中前两种语言用的最多 要求掌握 本章以S7 200CPU22 系列PLC的指令系统为对象 用举例的形式来说明PLC的基本指令系统 然后介绍常用典型电路及环节的编程 最后讲解PLC程序的简单设计法 S7 200PLC用LAD编程时以每个独立的网络块 Network 为单位 所有的网络块组合在一起就是梯形图 这也是S7 200PLC的特点 3 梯形图语言编程主要特点及格式有以下几点 1 梯形图按行从上至下编写 每一行从左至右顺序编写 即PLC程序执行顺序与梯形图的编写顺序一致 2 梯形图左 右边垂直线分别称为起始母线和终止母线 每一逻辑行必须从起始母线开始画起 终止母线常可以省略 3 梯形图中的触点有两种 即常开触点和常闭触点 这些触点可以是PLC的输入触点或输出继电器触点 也可以是内部继电器 定时器 计数器的状态 与传统的继电器控制图一样 每一触点都有自己的特殊标记 编号 以示区别 同一标记的触点可以反复使用 次数不限 这是因为每一触点的状态存入PLC内的存储单元中 可以反复读写 传统继电器控制中的每个开关均对应一个物理实体 故使用次数有限 这是PLC优于传统控制其中的一点 4 4 梯形图最右侧必须接输出元素 PLC的输出元素用括号表示 并标出输出变量的代号 同一标号输出变量只能使用一次 5 梯形图中的触点可以任意串 并联 而输出线圈只能并联 不能串联 每行最多触点数由PLC型号不同而不同 6 内部继电器 计数器 移位寄存器等均不能直接控制外部负载 只能作中间结果供PLC内部使用 总之 梯形图结构沿用继电器控制原理图的形式 采用了常开触点 常闭触点 线圈等图形语言 对于同一控制电路 继电控制原理与梯形图输入 输出信号基本相同 控制过程等效 5 例 6 5 1 1逻辑取及线圈驱动指令 逻辑取及线圈驱动指令为LD LDN和 LD Load 取指令 用于网络块逻辑运算开始的常开触点与母线的连接 LDN LoadNot 取反指令 用于网络块逻辑运算开始的常闭触点与母线的连接 Out 线圈驱动指令 图5 1LD LDN 指令用法 b 语句表 a 梯形图 7 使用说明 1 LD LDN指令不仅用于网络块逻辑计算开始时与母线相连的常开和常闭触点 在分支电路块的开始也要使用LD LDN指令 2 并联的 指令可连续使用任意次 3 在同一程序中不能使用双线圈输出 即同一元器件在同一程序中只使用一次 指令 4 LD LDN 指令的操作数为 I Q M SM T C V S和L T C也作为输出线圈 但在S7 200PLC中输出时不是以使用 指令形式出现 8 5 1 2触点串联指令 触点串联指令为A AN A And 与指令 用于单个常开触点的串联连接 AN AndNot 与反指令 用于单个常闭触点的串联连接 图5 2A AN指令的用法 9 使用说明 1 A AN是单个触点串联连接指令 可连续使用 但在用梯形图编程时会受到打印宽度和屏幕显示的限制 S7 200的编程软件中规定的串联触点数最多为11个 2 图5 2中所示连续输出电路 可以反复使用 指令 但次序必须正确 不然就不能连续使用 指令编程了 见5 3图 3 A AN指令的操作数为 I Q M SM T C V S和L 图5 3不可连续使用 指令的电路 10 5 1 3触点并联指令 触点并联指令为 O ON O Or 或指令 用于单个常开触点的并联连接 ON OrNot 或反指令 用于单个常闭触点的并联连接 图5 4O ON指令的用法 使用说明 1 单个触点的O ON指令可连续使用 2 O ON指令的操作数同前 11 5 1 4串联电路块的并联连接指令 两个以上触点串联形成的支路叫串联电路块 OLD OrLoad 或块指令 用于串联电路块的并联连接 图5 5OLD指令的用法 使用说明 1 在块电路的开始也要使用LD LDN指令 2 每完成一次块电路的并联时要写上OLD指令 3 OLD指令无操作数 12 5 1 5并联电路块的串联连接指令 两条以上支路并联形成的电路叫并联电路块 ALD AndLoad 与块指令 用于并联电路块的串联连接 图5 6ALD指令的用法 使用说明 1 在块电路开始时要使用LD LDN指令 2 在每完成一次块电路的串联连接后要写上ALD指令 3 ALD指令无操作数 13 S Set 置位指令 R Reset 复位指令置位即置1 复位即置0 置位和复位指令可以将位存储区的某一位开始的一个或多个 最多可达255个 同类存储器位置1或置0 这两条指令在使用时需指明三点 操作性质 开始位和位的数量 5 1 6置位和复位指令 1 S 置位指令将位存储区的指定位 位bit 开始的N个同类存储器位置位 用法 Sbit N例 SQ0 0 1 2 R 复位指令将位存储区的指定位 位bit 开始的N个同类存储器位复位 当用复位指令时 如果是对定时器T位或计数器C位进行复位 则定时器位或计数器位被复位 同时 定时器或计数器的当前值被清零 用法 Rbit N例 RQ0 2 3 14 图5 7置位复位指令的用法 15 本程序对应的时序图如图5 8所示 图5 8时序图 16 例 写出如下梯形图的语句表 17 5 1 7立即指令 立即指令是为了提高PLC对输入 输出的响应速度而设置的 它不受PLC循环扫描工作方式的影响 允许对输入输出点进行快速直接存取 立即指令的名称和类型如下 1 立即触点指令 立即取 取反 或 或反 与 与反 2 I 立即输出指令 3 SI 立即置位指令 4 RI 立即复位指令 18 1 立即触点指令在每个标准触点指令的后面加 I 指令执行时 立即读取物理输入点的值 但是不刷新对应映像寄存器的值 这类指令包括 LDI LDNI AI ANI OI和ONI 用法 LDIbit例 LDII0 2注意 bit只能是I类型 2 I 立即输出指令用立即指令访问输出点时 把栈顶值立即复制到指令所指出的物理输出点 同时 相应的输出映像寄存器的内容也被刷新 用法 Ibit例 IQ0 2注意 bit只能是Q类型 19 3 SI 立即置位指令用立即置位指令访问输出点时 从指令所指出的位 bit 开始的N个 最多为128个 物理输出点被立即置位 同时 相应的输出映像寄存器的内容也被刷新 用法 SIbit N例 SIQ0 0 2注意 bit只能是Q类型 4 RI 立即复位指令用立即复位指令访问输出点时 从指令所指出的位 bit 开始的N个 最多为128个 物理输出点被立即复位 同时 相应的输出映像寄存器的内容也被刷新 用法 RIbit N例 RIQ0 0 1 20 图5 9立即指令的用法 21 图5 10时序图 22 上图5 10中 t为执行到输出点处程序所用的时间 Q0 0 Q0 1 Q0 2的输入逻辑是I0 0的普通常开触点 Q0 0为普通输出 在程序执行到它时 它的映像寄存器的状态会随着本扫描周期采集到的I0 0状态的改变而改变 而它的物理触点要等到本扫描周期的输出刷新阶段才改变 Q0 1 Q0 2为立即输出 在程序执行到它们时 它们的物理触点和输出映像寄存器同时改变 而对Q0 3来说 它的输入逻辑是I0 0的立即触点 所以在程序执行到它时 Q0 3的映像寄存器的状态会随着I0 0即时状态的改变而立即改变 而它的物理触点要等到本扫描周期的输出刷新阶段才改变 23 脉冲生成指令为EU EdgeUp ED EdgeDown 下表为脉冲生成指令使用说明 5 1 8脉冲生成指令 24 图5 11时序图 EU指令对其之前的逻辑运算结果的上升沿产生一个宽度为一个扫描周期的脉冲 如图中的M0 0 ED指令对其逻辑运算结果的下降沿产生一个宽度为一个扫描周期的脉冲 如图中的M0 1 脉冲指令常用于启动及关断条件的判定以及配合功能指令完成一些逻辑控制任务 25 图5 12跳变应用 26 5 1 9逻辑堆栈操作指令 S7 200系列PLC使用一个9层堆栈来处理所有逻辑操作 堆栈是一组能够存储和取出数据的暂存单元 其特点是 先进后出 每一次进行入栈操作 新值放入栈顶 栈底值丢失 每一次进行出栈操作 栈顶值弹出 栈底值补进随机数 逻辑堆栈指令主要用来完成对触点进行的复杂连接 S7 200中把ALD OLD LPS LRD LPP指令都归纳为栈操作指令 27 1 栈装载与指令 ALD 栈装载与指令 与块 在梯形图中用于将并联电路块进行串联连接 在语句表中指令ALD执行情况如表所示 28 OLD 栈装载或指令 或块 在梯形图中用于将串联电路块进行并联连接 在语句表中指令OLD执行情况如下表所示 2 栈装载或指令 29 LPS 逻辑推入栈指令 分支或主控指令 在梯形图中的分支结构中 用于生成一条新的母线 左侧为主控逻辑块 完整的从逻辑行从此处开始 注意 使用LPS指令时 本指令为分支的开始 以后必须有分支结束指令LPP 即LPS与LPP指令必须成对出现 3 逻辑入栈指令 30 4 逻辑出栈指令 LPP 逻辑弹出栈指令 分支结束或主控复位指令 在梯形图中的分支结构中 用于将LPS指令生成一条新的母线进行恢复 注意 使用LPP指令时 必须出现在LPS的后面 与LPS成对出现 在语句表中指令LPP执行情况如下表所示 31 5 逻辑读栈指令 LRD 逻辑读栈指令 在梯形图中的分支结构中 当左侧为主控逻辑块时 开始第二个后边更多的从逻辑块的编程 在语句表中指令LRD执行情况如下表所示 32 5 13LPS LRD LPP指令使用举例1 LPS LRD LPP指令使用举例1 33 5 14LPS LRD LPP指令使用举例2 34 5 15LPS LRD LPP指令使用举例3 使用说明 1 由于受堆栈空间的限制 9层 LPS LPP指令连续使用时应少于9次 2 LPS和LPP指令必须成对使用 它们之间可以使用LRD命令 3 LPS LRD LPP指令无操作数 35 LPS LRD LPP指令使用举例4 36 图5 16复杂逻辑控制指令应用示例5 LDI0 0 装入常开触点OI2 2 或常开触点LDI0 1 被串的块开始LDI2 0 被并路开始AI2 1 OLD 栈装载或 并路结束ALD 栈装载与 串路结束 Q5 0LDI0 0 LPS 逻辑推入栈 主控AI0 5 Q7 0 LRD 逻辑读栈 新母线LDI2 1 OI1 3 ALD 栈装载与 Q6 0 LPP 逻辑弹出栈 母线复原LDI3 1 OI2 0 ALD Q1 3 37 5 1 10定时器指令 1 几个基本概念 1 种类 系统提供3种类型定时器 TON TONR和TOF 2 分辨率与定时时间的计算精度等级 单位时间的时间增量称为分辨率S 有3个等级 1ms 10ms和100ms 定时器定时时间T的计算 T PT S 3 定时器的编号 用名称和常数编号 最大255 38 2 定时器指令使用说明 1 接通延时定时器TON接通延时定时器指令用于单一间隔的定时 上电周期或首次扫描 定时器位OFF 当前值为0 使能输入接通时 定时器位为OFF 当前值从0开始计数时间 当前值达到预设值时 定时器位ON 当前值连续计数到32767 使能输入断开 定时器自动复位 即定时器位OFF 当前值为0 指令格式 TONTxxx PT例 TONT120 8 39 2 有记忆接通延时定时器TONR TONR 有记忆接通延时定时器指令 用于对许多间隔的累计定时 上电周期或首次扫描 定时器位OFF 当前值保持 使能输入接通时 定时器位为OFF 当前值从0开始计数时间 使能输入断开 定时器位和当前值保持最后状态 使能输入再次接通时 当前值从上次的保持值继续计数 当累计当前值达到预设值时 定时器位ON 当前值连续计数到32767 TONR定时器只能用复位指令进行复位操作 指令格式 TONRTxxx PT例 TONRT20 63 40 3 断开延时定时器TOF TOF 断开延时定时器指令 用于断开后的单一间隔定时 上电周期或首次扫描 定时器位OFF 当前值为0 使能输入接通时 定时器位为ON 当前值为0 当使能输入由接通到断开时 定时器开始计数 当前值达到预设值时 定时器位OFF 当前值等于预设值 停止计数 TOF复位后 如果使能输入再有从ON到OFF的负跳变 则可实现再次启动 指令格式 TOFTxxx PT例 TOFT35 6 41 图5 17定时器特性 3 应用举例例1 42 本梯形图程序中输入输出执行时序关系如图5 18所示 图5 18定时器时序 43 例2 图5 19是用TON构造TOF作用的触点 其时序图与TOF完全相同 图5 19定时器应用 44 例3 图5 20是利用常开触点实现通电和断电都延时的触点作用 本程序实现的功能是 用输入端I0 0控制输出端Q0 0 当I0 0接通后 过3个时间单位Q0 0端输出接通 当I0 0断开后 过6个时间单位Q0 0断开 图5 20定时器应用 45 图5 21电机顺序起动 例4 电机顺序起动梯形图 46 4 定时器的刷新方式和正确使用 1 定时器的刷新方式 1ms定时器 由系统每隔1ms刷新一次 与扫描周期及程序处理无关 它采用中断刷新方式 10ms定时器 由系统在每个扫描周期开始时自动刷新 在一个扫描周期内定时器位和定时器的当前值保持不变 100ms定时器 在定时器指令执行时被刷新 它仅用在定时器指令在每个扫描周期执行一次的程序中 2 定时器的正确使用图5 22为正确使用定时器的一个例子 它用来在定时器计时时间到时产生一个宽度为一个扫描周期的脉冲 47 图5 22定时器的正确使用举例 错误使用方法 正确使用方法 48 5 1 11计数器指令 计数器用来累计输入脉冲的次数 在实际应用中用来对产品进行计数或完成复杂的逻辑控制任务 1 几个基本概念 1 种类 计数器指令有3种 增计数CTU 增减计数CTUD和减计数CTD 2 编号 计数器的编号用计数器名称和数字 最大255 组成 计数器的编号包含两方面信息 计数器的位和计数器当前值 计数器位 计数器位和继电器一样是个开关量 表示计数器是否发生动作的状态 当计数器的当前值达到设定值时 该位被置位为ON 计数器当前值 其值是个存储单元 用来存储计数器当前所累计的脉冲个数 用16位符号整数表示 最大数值为32767 49 2 计数器指令使用说明 1 增计数器CTU 首次扫描 计数器位OFF 当前值为0 脉冲输入CU的每个上升沿 计数器计数1次 当前值增加1个单位 当前值达到预设值时 计数器位ON 当前值继续计数到32767停止计数 复位输入有效或执行复位指令 计数器自动复位 即计数器位OFF 当前值为0 指令格式 CTUCxxx PV例 CTUC20 3程序实例 图5 23为增计数器的程序片断和时序图 50 图5 23增计数器用法举例 51 图5 24增计数时序 52 2 增减计数器 CTUD 增减计数器指令 有两个脉冲输入端 CU输入端用于递增计数 CD输入端用于递减计数 指令格式 CTUDCxxx PV例 CTUDC30 5程序实例 如图5 25所示为增减计数器的程序片断和时序图 53 图5 25增减计数程序及时序 54 3 减计数器CTD 脉冲输入端CD用于递减计数 首次扫描 计数器位OFF 当前值为等于预设值PV 计数器检测到CD输入的每个上升沿时 计数器当前值减小1个单位 当前值减到0时 计数器位ON 复位输入有效或执行复位指令 计数器自动复位 即计数器位OFF 当前值复位为预设值 而不是0 指令格式 CTDCxxx PV例 CTDC40 4程序实例 图5 26为减计数器的程序片断和时序图 55 56 图5 26减计数程序及时序 57 3 应用举例 1 循环计数以上三种类型的计数器如果在使用时 将计数器位的常开触点作为复位输入信号 则可以实现循环计数 2 用计数器和定时器配合增加延时时间 如图5 27所示 试分析以下程序中实际延时为多长时间 58 59 图5 27计数器应用举例 5 1 2NOT及NOP指令 1 取反指令NOT将复杂逻辑结果取反 为用户使用反逻辑提供方便 该指令无操作数 指令形式 NOT2 空操作指令NOP NoOperation 该指令很少使用 易出错 指令形式 NOPNN的范围 0 255 60 5 2程序控制指令 程序控制类指令使程序结构灵活 合理使用该类指令可以优化程序结构 增强程序功能 这类指令主要包括 结束 暂停 看门狗 跳转 子程序 循环和顺序控制等指令 5 2 1结束指令结束指令分为有条件结束指令END和无条件结束指令MEND 两条指令在梯形图中以线圈形式编程 指令不含操作数 执行完结束指令后 系统结束主程序 返回到主程序起点 使用说明 1 结束指令只能用在主程序中 不能在子程序和中断程序中使用 2 在调试程序时 在程序的适当位置插入无条件结束指令可实现程序的分段调试 3 可以利用程序执行的结果状态 系统状态或外部设置切换条件来调用有条件结束指令 使程序结束 4 使用Micro Win32编程时 不需手工输入无条件结束指令 该软件自动在内部加上一条无条件结束指令到主程序的结尾 61 5 2 2停止指令STOPSTOP指令有效时 可以使主机CPU的工作方式由RUN切换到STOP 从而立即中止用户程序的执行 STOP指令在梯形图中以线圈形式编程 指令不含操作数 STOP指令可以用在主程序 子程序和中断程序中 STOP和END指令通常在程序中用来对突发紧急事件进行处理 以避免实际生产中的重大损失 用法见图5 28所示 图5 28结束 停止指令的用法 62 建立子程序 可用编程软件Edit菜单中的Insert选项 选择Subroutine 以建立或插入一个新的子程序 同时在指令树窗口可以看到新建的子程序图标 默认的程序名是SBR n 编号n从0开始按递增顺序生成 可以在图标上直接更改子程序的程序名 在指令树窗口双击子程序的图标就可对它进行编辑 子程序调用 图示的程序实现用外部控制条件分别调用两个子程序 图子程序调用举例 63 5 3PLC初步编程指导 5 3 1梯形图编程的基本规则 1 PLC内部元器件触点的使用次数是无限制的 2 梯形图的每一行都是从左边母线开始 然后是各种触点的逻辑连接 最后以线圈或指令盒结束 触点不能放在线圈的右边 如图所示 3 线圈和指令盒一般不能直接连接在左边的母线上 64 4 在同一程序中 同一编号的线圈使用两次及两次以上称为双线圈输出 双线圈输出非常容易引起误动作 应避免使用 S7 200PLC中不允许双线圈输出 5 在手工编写梯形图时 触点应画在水平线上 不要画在垂直线上 6 应把串联多的电路块尽量放在最上边 把并联多的电路块尽量放在最左边 可节省指令 65 7 不包含触点的分支线条应放在垂直方向 不要放在水平方向 便于读图直观 8 梯形图的推荐画法如图所示 66 5 3 2LAD和STL编程形式的关系 利用梯形图编程时 可以把整个梯形图程序看成由许多网络块组成 每个网络块均起始于母线 所有的网络块组合在一起就是梯形图程序 LAD程序可以通过编程软件直接转换为STL形式 S7 200PLC用STL编程时 如果也以每个独立的网络块为单位 则STL程序和LAD程序基本上是一一对应的 且两者可通过编程软件相互转换 如果不以每个独立的网络块为单位编程 而是连续编写 则STL程序和LAD程序不能通过编程软件相互转换 67 5 4典型的简单电路编程 5 4 1分频电路 以二分频为例说明PLC分频电路的实现 要求见时序图 图5 29二分频电路 68 当输入I0 1第一次接通时 在M0 0上产生单脉冲 因输出线圈Q0 0并未得电 其对应的常开触点处于断开状态 所以扫描到第三行时 尽管M0 0得电 M0 2也不可能得电 扫描至第4行时 Q0 0得电并自锁 Q0 0对应的常开触点闭合 为M0 2的得电做好准备 等到I0 1输入第二个脉冲到来时 M0 0上再次产生单脉冲 因此 在扫描第三行时 M0 2条件满足得电 M0 2对应的常闭触点断开 执行第4行程序时 输出线圈Q0 0失电 以后虽然I0 1继续存在 由于M0 0是单脉冲信号 虽多次扫描第4行 输出线圈Q0 0也不可能得电 工作过程 69 5 4 2闪烁电路 振荡电路 图5 30闪烁电路 70 5 4 3报警电路 要求 当故障发生时 报警指示灯闪烁 报警电铃或蜂鸣器响 操作人员知道故障发生后 按消铃按钮 把电铃关掉 报警指示灯从闪烁变为常亮 故障消失后 报警灯熄灭 另外还应设置试灯 试铃按钮 用于平时检测报警指示灯和电铃的好坏 设计 该系统输入 输出信号的地址分配如下 输入信号 I0 0为故障信号 I0 1为消铃按钮 I0 2为试灯 试铃按钮 输出信号 Q0 0为报警灯 Q0 1为报警电铃 蜂鸣器 71 72 图5 31报警电路梯形图 语句表和时序图 73 5 4 4长延时电路 图5 32长延时电路 74 上图中 T37每一分钟产生一个脉冲 所以是分钟计时器 C21每一小时产生一个脉冲 故C21为小时计时器 当10小时计时到时 C22为ON 这时 C23再计时30分钟 则总的定时时间为10小时30分 Q0 0置位成ON 在该例的计数器复位逻辑中 有初始化脉冲SM0 1和外部复位按钮I0 1 初始化脉冲完成在PLC上电时对计数器的复位操作 另外 图中的C21有自复位功能 75 5 4 5计数器的扩展 图5 33计数器扩展电路 1 扩展 76 5 5PLC程序的简单设计法及应用举例 5 5 1PLC程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 焊接设备销售与用户培训与技术支持合同
- 保险理赔专业服务合作协议
- 群众演员参演互动影视项目合同
- 政府保密机构文件处理与安全传输协议
- 跨区域外卖店铺品牌推广与运营合作协议
- 遵义市桐梓县文职辅警招聘考试真题
- 有机茶叶种植基地与休闲农业融合发展合同
- 高端婚前财产公证及资产评估合作协议
- 心理学招聘面试题及答案
- 社区卫生服务中心社区卫生服务综合改革试点项目合同
- 2025年统计学专业期末考试题库-抽样调查方法应用案例分析试题
- 2025陕西中考:历史必背知识点
- 2025年下半年贵州乌江水电开发限责任公司大学毕业生招聘若干人易考易错模拟试题(共500题)试卷后附参考答案
- 《车载充电器》课件
- 2025年浙江东阳市九年级中考语文3月模拟试卷(附答案解析)
- 2024年沈阳市三支一扶考试真题
- 《绝经后出血》课件
- 食品合作商合同协议
- 中药人员考试试题及答案
- 2025年吉林省四平市梨树县中考二模历史试题(含答案)
- 脑梗死的介入治疗
评论
0/150
提交评论