4.2 S7200PLC 的基本指令及编程方法.ppt_第1页
4.2 S7200PLC 的基本指令及编程方法.ppt_第2页
4.2 S7200PLC 的基本指令及编程方法.ppt_第3页
4.2 S7200PLC 的基本指令及编程方法.ppt_第4页
4.2 S7200PLC 的基本指令及编程方法.ppt_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第四章s7 200plc的指令系统 2 4 2s7 200plc的基本指令及编程方法 1 基本逻辑指令以位逻辑操作为主 数据类型是bool 有效数据区为 i q m sm t c v s 1 标准触点指令 3 4 2s7 200plc的基本指令及编程方法 4 说明 1 触点代表cpu对存储器的读操作 常开触点和存储器的位状态一致 常闭触点和存储器的位状态相反 用户程序中同一触点可使用无数次 如 存储器i0 0的状态为1 则对应的常开触点i0 0接通 表示能流可以通过 而对应的常闭触点i0 0断开 表示能流不能通过 存储器i0 0的状态为0 则对应的常开触点i0 0断开 表示能流不能通过 而对应的常闭触点i0 0接通 表示能流可以通过 2 线圈代表cpu对存储器的写操作 若线圈左侧的逻辑运算结果为 1 表示能流能够达到线圈 cpu将该线圈所对应的存储器的位置位为 1 若线圈左侧的逻辑运算结果为 0 表示能流不能够达到线圈 cpu将该线圈所对应的存储器的位写入 0 用户程序中 同一线圈在程序中只能使用一次 若在不止一个程序段中出现 其状态以最后一次运算的结果为准 4 2s7 200plc的基本指令及编程方法 5 4 2s7 200plc的基本指令及编程方法 网络1ldi0 0 装载常开触点am0 0 与常开触点 q0 0 输出线圈网络2ldq0 0 装载常开触点ani0 1 与常闭触点 m0 0 输出线圈at37 与常开触点 q0 1 输出线圈 使用说明1 ld ldn指令用于与输入公共母线 输入母线 相联的接点 也可与old ald指令配合使用于分支回路的开头 指令用于q m sm t c v s 但不能用于输入映像寄存器i 输出端不带负载时 控制线圈应尽量使用m或其他 而不用q 可以并联使用任意次 但不能串联 同一个元器件在同一程序中只使用一次 指令 否则可能会产生不希望的结果 6 4 2s7 200plc的基本指令及编程方法 ldm0 0at37ant38 q0 0 使用说明2 a an是单个触点串联连接指令 可连续使用 如图所示 若要串联多个接点组合回路时 必须使用ald指令 如图所示 ldi0 0ldi0 1om0 0ald q0 0 a an的操作数 i q m sm t c v s 7 使用说明3 若按正确次序编程 即输入 左重右轻 上重下轻 输出 上轻下重 可以反复使用 指令 如图1所示 但若按图2所示的编程次序 就不能连续使用 指令 ldq0 0ani0 1 m0 0at37 q0 1 ldq0 0ai0 1lpsat37 q0 1lpp m0 0 图1 图2 4 2s7 200plc的基本指令及编程方法 8 4 2s7 200plc的基本指令及编程方法 o on指令格式 网络1ldi0 0oi0 1onm0 0 q0 0 网络2ldnq0 0ai0 2om0 1ani0 3om0 2 m0 1 使用说明 o on指令可作为并联一个触点指令 紧接在ld ldn指令之后用 即对其前面的ld ldn指令所规定的触点并联一个触点 可以连续使用 若要并联连接两个以上触点的串联回路时 须采用old指令 on操作数 i q m sm v s t c 9 4 2s7 200plc的基本指令及编程方法 2 输出指令 线圈 线圈表示输出结果 通过输出接口电路来控制外部的指示灯 接触器等及内部的输出条件等 线圈左侧接点组成的逻辑运算结果为1时 能流 可以达到线圈 使线圈得电动作 cpu将线圈的位地址指定的存储器的位置位为1 逻辑运算结果为0 线圈不通电 存储器的位置0 即线圈代表cpu对存储器的写操作 plc采用循环扫描的工作方式 所以在用户程序中 每个线圈只能使用一次 10 4 2s7 200plc的基本指令及编程方法 3 置位指令和复位指令 置位指令s 能流到 从起始位s bit开始的n个位置 1 并保持 置位后即使能流断 仍保持置位 复位指令r 能流到 从起始位s bit开始的n个位清 0 并保持 复位后即使能流断 仍保持复位 由于cpu的扫描工作方式 程序中写在后面的指令有优先权 置位或复位的点数n可以是1 255 图中n为3和1 11 4 2s7 200plc的基本指令及编程方法 网络1ldi0 0sq0 0 1网络4ldi0 1rq0 0 1 12 4 2s7 200plc的基本指令及编程方法 ldi0 0 q0 0sq0 1 1rq0 2 2 13 4 2s7 200plc的基本指令及编程方法 2 立即i o指令立即i o指令不受plc循环扫描工作方式的约束 程序执行过程中梯形图中各输入继电器 输出继电器的状态不取自i o映像寄存器 而采用直接处理方式即对输入 输出物理点进行直接存取 加快了输入输出响应速度 1 立即触点指令 i 表示立即之意 14 4 2s7 200plc的基本指令及编程方法 ldi 立即装载 把物理输入点的位 bit 值立即装入栈顶 ai 立即与 把物理输入点的位 bit 值 与 栈顶值 运算结果仍存入栈顶 oi 立即或 把物理输入点的位 bit 值 或 栈顶值 运算结果仍存入栈顶 ldni ani oni 把物理输入点的位 bit 值取反后 再作相应的 装载 与 或 操作 15 4 2s7 200plc的基本指令及编程方法 2 立即输出指令 执行立即输出指令时 输出结果同时立即复制到物理输出点和相应的输出映像寄存器 而不是输出刷新时才传送到物理输出点 注意 立即i o指令是直接访问物理输入输出点 比一般指令访问输入输出映像寄存器占用cpu时间要长 因而不能盲目使用立即指令 否则会加长扫描周期的时间 反而对系统造成不利的影响 16 4 2s7 200plc的基本指令及编程方法 3 立即置位 复位指令 图5 13立即置位 复位指令 ldi0 1siq2 0 2ldi0 2riq2 0 2 执行该指令时 输出结果同时立即复制到物理输出点和相应的输出映像寄存器 而不是输出刷新时才传送到物理输出点 17 4 2s7 200plc的基本指令及编程方法 3 逻辑堆栈指令s7 200系列采用模拟栈的结构 用于保存逻辑运算结果及断点的地址 称为逻辑堆栈 逻辑堆栈指令只用于语句表编程 用梯形图 功能表时 编辑器会自动插入相关的指令处理堆栈操作 s7 200有1个9位的堆栈 栈顶用来存储逻辑运算结果 下面的8位用来存储中间运算结果 堆栈中的数一般按 先进后出 的原则存储 堆栈操作指令用于处理线路的分支点 在编制控制程序时 经常遇到多个分支电路同时受一个或一组触点控制的情况 若采用前述指令不容易编写程序 用堆栈操作指令则可方便的将梯形图转换为语句表 18 4 2s7 200plc的基本指令及编程方法 ald 栈装载与 电路块串联连接old 栈装载或 电路块并联连接 ldi0 0ai0 1ld1 0ai1 1oldldi2 0ai2 1old q6 0ldi3 1oi3 3ld3 2oi3 4ald q6 1 19 4 2s7 200plc的基本指令及编程方法 20 4 2s7 200plc的基本指令及编程方法 例1 已知语句表程序 试画出梯形图 21 4 2s7 200plc的基本指令及编程方法 例2 已知梯形图 试写出语句表程序 ldi0 0oi0 1ldi0 2ai0 3ldi0 4ani0 5oldoi0 6aldoni0 7 q0 0 22 4 2s7 200plc的基本指令及编程方法 lps 入栈 指令 lps指令把栈顶值复制后压入堆栈 栈中原来数据依次下移一层 栈底值压出丢失 23 4 2s7 200plc的基本指令及编程方法 lrd 读栈 指令 lrd指令把逻辑堆栈第二层的值复制到栈顶 2 9层数据不变 堆栈没有压入和弹出 但原栈顶的值丢失 24 4 2s7 200plc的基本指令及编程方法 lpp 出栈 指令 lpp指令把堆栈弹出一级 原第二级的值变为新的栈顶值 原栈顶数据从栈内丢失 25 4 2s7 200plc的基本指令及编程方法 ldsn 装入堆栈 指令 复制堆栈中的第n级的值到栈顶 原堆栈各级栈值依次下压一级 栈底值丢失 26 4 2s7 200plc的基本指令及编程方法 ldi0 0 装载常开触点lps 压入堆栈ldi0 1 装载常开触点oi0 2 或常开触点ald 块与操作 q0 0 输出线圈lrd 读栈ldi0 3 装载常开触点oi0 4 或常开触点ald 块与操作 q0 1 输出线圈lpp 出栈ai0 5 与常开触点 q0 2 输出线圈 图5 17堆栈指令的使用 27 4 2s7 200plc的基本指令及编程方法 指令使用说明 逻辑堆栈指令可以嵌套使用 最多为9层 为保证程序地址指针不发生错误 入栈指令lps和出栈指令lpp必须成对使用 最后一次读栈操作应使用出栈指令lpp 堆栈指令没有操作数 28 4 2s7 200plc的基本指令及编程方法 4 取非触点指令和空操作指令 1 取非触点指令 取非触点指令将它左边电路的逻辑运算结果取反 运算结果若为1则变为0 若为0则变为1 not指令将堆栈顶部的值从0变为1 从1变为0 29 4 2s7 200plc的基本指令及编程方法 2 空操作指令nopn空操作指令不影响程序的执行 操作数n 0 255 例 30 4 2s7 200plc的基本指令及编程方法 5 脉冲上沿指令eu edgeup 和下降沿指令ed edgedown 正跳变触点指令p positivetransition 触点的输入信号由0变为1时 触点接通一个扫描周期 负跳变触点指令n negativetransition 触点的输入信号由1变为0时 触点接通一个扫描周期 31 4 2s7 200plc的基本指令及编程方法 eu ed指令的使用 网络1ldi0 0 装入常开触点eu 正跳变 m0 0 输出网络2ldm0 0 装入sq0 0 1 输出置位网络3ldi0 1 装入ed 负跳变 m0 1 输出网络4ldm0 1 装入rq0 0 1 输出复位 32 4 2s7 200plc的基本指令及编程方法 eu ed指令的使用 见程序 33 指令使用说明eu ed指令只在输入信号变化时有效 其输出信号的脉冲宽度为一个机器扫描周期 对开机时就为接通状态的输入条件 eu指令不执行 eu ed指令无操作数 4 2s7 200plc的基本指令及编程方法 34 4 2s7 200plc的基本指令及编程方法 6 基本位逻辑指令应用举例 1 起动 保持 停止电路 35 4 2s7 200plc的基本指令及编程方法 s r指令实现的起 保 停电路 时序分析图 a 每一个传感器或开关输入对应一个plc确定的输入点 每一个负载对应plc一个确定的输出点 b 为了使梯形图和继电器接触器控制的电路图中的触点的类型相同 外部按钮一般用常开按钮 36 4 2s7 200plc的基本指令及编程方法 2 互锁电路 ldi0 0om0 0anm0 1 m0 0ldi0 1om0 1anm0 0 m0 1ldm0 0 q0 0ldm0 1 q0 1 37 4 2s7 200plc的基本指令及编程方法 3 比较电路 ldi0 0 m0 0ldi0 1 m0 1ldm0 0am0 1 q0 0ldnm0 0anm0 1 q0 1ldnm0 0am0 1 q0 2ldm0 0anm0 1 q0 3 38 上升沿微分脉冲电路 ldi0 0anm0 1 m0 0ldi0 0 m0 1ldm0 0 q0 0 4 2s7 200plc的基本指令及编程方法 4 微分电路 仿真 39 4 2s7 200plc的基本指令及编程方法 ldni0 0anm0 1 m0 0ldni0 0 m0 1ldm0 0 q0 0 下降沿微分脉冲电路 40 分频电路 4 2s7 200plc的基本指令及编程方法 5 分频电路 ldi0 0eu m0 0ldm0 0aq0 0 m0 1ldm0 0oq0 0anm0 1 q0 0 将脉冲信号加到i0 0端 在第一个脉冲的上升沿到来时 m0 0产生一个扫描周期的单脉冲 使m0 0的常开触点闭合 由于q0 0的常开触点断开 m0 1线圈断开 其常闭触点m0 1闭合 q0 0的线圈接通并自保持 第二个脉冲上升沿到来时 m0 0又产生一个扫描周期的单脉冲 m0 0的常开触点又接通一个扫描周期 此时q0 0的常开触点闭合 m0 1线圈通电 其常闭触点m0 1断开 q0 0线圈断开 直至第三个脉冲到来时 m0 0又产生一个扫描周期的单脉冲 使m0 0的常开触点闭合 由于q0 0的常开触点断开 m0 1线圈断开 其常闭触点m0 1闭合 q0 0的线圈又接通并自保持 以后循环往复 不断重复上过程 由图可见 输出信号q0 0是输入信号i0 0的二分频 仿真 41 4 2s7 200plc的基本指令及编程方法 6 抢答器程序设计 i0 0s0 主持席上的复位按钮 常开 i0 1s1 抢答席1上的抢答按钮i0 2s2 抢答席2上的抢答按钮i0 3s3 抢答席3上的抢答按钮输出q0 1h1 抢答席1上的指示灯q0 2h2 抢答席2上的指示灯q0 0h3 抢答席3上的指示灯 要点是 如何实现抢答器指示灯的 自锁 功能 即当某一抢答席抢答成功后 即使释放其抢答按钮 其指示灯仍然亮 直至主持人进行复位才熄灭 如何实现3个抢答席之间的 互锁 功能 42 第五讲 4 2s7 200plc的基本指令及编程方法 7 编程注意事项及编程技巧 1 梯形图语言中的语法规定 程序应按自上而下 从左至右的顺序编写 同一操作数的输出线圈在一个程序中不能使用两次 不同操作数的输出线圈可以并行输出 如图所示 线圈并行输出 43 4 2s7 200plc的基本指令及编程方法 线圈不能直接与左母线相连 如果需要 可以通过特殊内部标志位存储器sm0 0 该位始终为1 来连接 如图所示 a 不正确 44 4 2s7 200plc的基本指令及编程方法 适当安排编程顺序 以减少程序的步数 1 串联多的支路应尽量放在上部 2 并联多的支路应靠近左母线 45 4 2s7 200plc的基本指令及编程方法 适当安排编程顺序 以减少程序的步数 3 触点不能放在线圈的右边 4 对复杂的电路 用ald old等指令难以编程 可重复使用一些触点画出其等效电路 然后再进行编程 如图所示 46 4 2s7 200plc的基本指令及编程方法 2 设置中间单元 在梯形图中 若多个线圈都受某一触点串并联电路的控制 为了简化电路 在梯形图中可设置该电路控制的存储器的位 如图所示 这类似于继电器电路中的中间继电器 1 此中间变量要用于其他程序段 2 此变量不需要直接输出 3 用于打断过长的程序段 以上情况使用m点可以使程序简化可读性强 47 4 2s7 200plc的基本指令及编程方法 3 尽量减少可编程控制器的输入信号和输出信号 可编程控制器的价格与i o点数有关 因此减少i o点数是降低硬件费用的主要措施 如果几个输入器件触点的串并联电路总是作为一个整体出现 可以将他们作为可编程控制器的一个输入信号 只占可编程控制器的一个输入点 如果某器件的触点只用一次并且与plc输出端的负载串联 不必将它们作为plc的输入信号 可以将它们放在plc外部的输出回路 与外部负载串联 48 4 2s7 200plc的基本指令及编程方法 4 外部联锁电路的设立为了防止控制正反转的两个接触器同时动作造成三相电源短路 应在plc外部设置硬件联锁电路 5 外部负载的额定电压plc的继电器输出模块和双向晶闸管输出模块一般只能驱动额定电压ac220v的负载 交流接触器的线圈应选用220v的 49 4 2s7 200plc的基本指令及编程方法 8 电动机控制举例 控制要求 1 实现三相异步电动机的正转 反转 停止控制 2 具有防止相间短路的措施 3 具有过载保护环节 ac220v的负载 交流接触器的线圈应选用220v的 电气控制如图所示 50 4 2s7 200plc的基本指令及编程方法 51 4 2s7 200plc的基本指令及编程方法 1 i o分配及外部接线 52 4 2s7 200plc的基本指令及编程方法 2 程序设计 3 运行并调试程序按正转按钮sb2 输出q0 0接通 电动机正转 按停止按钮sb1 输出q0 0断开 电动机停转 按反转按钮sb3 输出q0 1接通 电动机反转 模拟电动机过载 将热继电器fr的触点断开 电动机停转 将热继电器的fr触点复位 在重复正反停的操作 运行调试过程中用状态图对元件的动作进行监控并记录 53 4 2s7 200plc的基本指令及编程方法 9 定时器指令 1 定时器指令介绍 定时器是模拟继电器控制系统中的时间继电器 按定时方式可分3种 ton 延时接通 tof 延时断开 tonr 有记忆延时接通 按照定时精度可分为三种 1ms 10ms和100ms 按照停电保持型可以分为停电保持型 tonr默认停电保持 和非停电保持型 ton和tof 定时器的设定值由程序赋予 需要时也可在外部设定 定时器存储器t的地址格式为 t 定时器号 如t33s7 200定时器存储器的有效地址范围为 t0 t255一个完整的定时器包括 一个线圈 一对触点 一个预置值和一个当前值 预置值和当前值都是16位 预置值设置有3种方法 利用常数直接设置 利用寄存器 iw qw vw smw sw lw t c ac aiw 间接设置和用指针 vd ld ac 间接设置 54 4 2s7 200plc的基本指令及编程方法 定时器的指令格式 55 4 2s7 200plc的基本指令及编程方法 使能输入有效后 当前值对plc内部的时基脉冲增1计数 当计数值大于或等于定时器的预置值后 状态位置1 其触点动作 常开点闭合 常闭点断开 从定时器输入有效 到状态位输出有效 经过的时间为定时时间 定时时间 预置值 pt 分辨率 定时器有三种分辨率1ms 10ms 100ms 分辨率由定时器号决定如下表所示 56 4 2s7 200plc的基本指令及编程方法 57 4 2s7 200plc的基本指令及编程方法 a 接通延时定时器ton 程序及时序分析如图所示 当i0 0接通时即使能端 in 输入有效时 驱动t37开始计时 当前值从0开始递增 计时到设定值pt时 t37状态位置1 其常开触点t37接通 驱动q0 0输出 其后当前值仍增加 但不影响状态位 当前值的最大值为32767 当i0 0分断时 t37复位 当前值清0 状态位也清0 即回复原始状态 若i0 0接通时间未到设定值就断开 t37则立即复位 q0 0不会有输出 通电延时定时器工作原理分析 仿真 58 4 2s7 200plc的基本指令及编程方法 b 有记忆接通延时定时器tonr 程序分析如图所示 如t3 当输入in为1时 定时器计时 当in为0时 其当前值保持并不复位 下次in再为1时 t3当前值从原保持值开始往上加 将当前值与设定值pt比较 当前值大于等于设定值时 t3状态位置1 驱动q0 0有输出 以后即使in再为0 也不会使t3复位 要使t3复位 必须使用复位指令 定时器当前值清零 输出状态位置0 ldi0 0tonrt3 100ldi0 1rt3 1ldt33 q0 0 tonr记忆型通电延时型定时器工作原理分析 59 4 2s7 200plc的基本指令及编程方法 c 断电延时定时器tof tof定时器在输入in信号 i0 0 接通时 定时器状态位置1 其常开点闭合 常闭点断开 当前值置0 当输入in信号 i0 0 断开时 定时器开始计时 当前值从0递增 当前值达到预置值时 定时器状态位复位为0 常开触点断开 常闭触点闭合 并停止计时 当前值保持 当输入in信号 i0 0 接通时 定时器状态位置1 其常开点闭合 常闭点断开 当前值置0 当in信号 i0 0 断开的时间不到预置的定时时间 定时器仍保持接通 常开点闭合 常闭点断开 ldi0 0toft37 30ldt37 q0 0 tof断电延时定时器的工作原理 仿真 60 4 2s7 200plc的基本指令及编程方法 使用定时器应注意的问题 以上介绍的3种定时器具有不同的功能 接通延时定时器 ton 用于单一间隔的定时 有记忆接通延时定时器 tonr 用于累计时间间隔的定时 断开延时定时器 tof 用于故障事件发生后的时间延时 tof和ton共享同一组定时器 不能重复使用 即不能把一个定时器同时用作tof和ton 例如 不能既有tont32 又有toft32 使用复位 r 指令对定时器复位后 定时器位为 0 定时器当前值为0 有记忆接通定时器 只能通过复位指令进行复位操作 对于断电延时定时器 需要在输入端有一个负跳变 由 到 的输入信号启动计时 不同分辨率的定时器 其定时器位和当前值的刷新周期是不同的 61 4 2s7 200plc的基本指令及编程方法 1ms10ms100ms定时器的刷新方式不同 1ms定时器每隔1ms刷新一次 即采用中断刷新方式 与扫描周期和程序处理无关 定时器的当前值和触点的更新与扫描周期不同步 因此当扫描周期较长时 在一个周期内可能被多次刷新 其当前值在一个扫描周期内不一定保持一致 10ms定时器则由系统在每个扫描周期开始自动刷新 其当前值和触点在每个扫描周期的开始更新 由于每个扫描周期内只刷新一次 故而每次程序处理期间 其当前值为常数 100ms定时器则在该定时器指令执行时刷新 下一条执行的指令 即可使用刷新后的结果 非常符合正常的思路 使用方便可靠 但应当注意 如果该定时器的指令不是每个周期都执行 定时器就不能及时刷新 可能导致出错 62 4 2s7 200plc的基本指令及编程方法 2 定时器指令应用举例a 一个扫描周期的时钟脉冲发生器 自身常闭接点作使能输入 63 4 2s7 200plc的基本指令及编程方法 当定时器当前值1000在图示a处刷新 q0 0接通一个扫描周期 若在其它位置刷新 q0 0则永远不会接通 而在a点刷新的概率是很小的 若改为图b 就可保证当定时器当前值达设定值时 q0 0会接通一个扫描周期 a 错误 b 正确 1ms定时器编程 64 4 2s7 200plc的基本指令及编程方法 若将图中的定时器t32换成t33 时基变为10ms 当前值在每个扫描周期开始刷新 计时时间到时 扫描周期开始时 定时器输出状态位置位 常闭触点断开 立即将定时器当前值清零 定时器输出状态位复位 为0 这样输出线圈q0 0永远不可能通电 若改为图b 就可保证当定时器当前值达设定值时 q0 0会接通一个扫描周期 a 错误 b 正确 10ms定时器编程 65 4 2s7 200plc的基本指令及编程方法 若用时基为100ms的定时器 如t37 当前指令执行时刷新 q0 0在t37计时时间到时准确地接通一个扫描周期 可以输出一个断开为延时时间 接通为一个扫描周期的时钟脉冲 若将输出线圈的常闭接点作为定时器的使能输入 如图b 所示 则无论何种时基都能正常工作 注 仿真看不出效果 b 正确 a 正确 100ms定时器编程 66 4 2s7 200plc的基本指令及编程方法 一个扫描周期的时钟脉冲发生器波形图 67 4 2s7 200plc的基本指令及编程方法 b 延时断开电路 仿真 68 4 2s7 200plc的基本指令及编程方法 c 延时接通和延时断开 电路用i0 0控制q0 1 i0 0的常开触点接通后 t37开始定时 9s后t37的常开触点接通 使q0 1变为on i0 0为on时其常闭触点断开 使t38复位 i0 0变为off后t38开始定时 7s后t38的常闭触点断开 使q0 1变为off t38亦被复位 仿真 69 4 2s7 200plc的基本指令及编程方法 d 闪烁电路 仿真 加闪烁电路2 70 4 2s7 200plc的基本指令及编程方法 e 报警电路 用接在i0 0输入端的光电开关检测传送带上通过的产品 有产品通过时i0 0为on 如果在10s内没有产品通过 由q0 0发出报警信号 用i0 1输入端外接的开关解除报警信号 对应的梯形图如图所示 71 4 2s7 200plc的基本指令及编程方法 f 正次品分拣机编程 1 用启动和停止按钮控制电动机m运行和停止 在电动机运行时 被检测的产品 包括正次品 在皮带上运行 2 产品 包括正 次品 在皮带上运行时 s1 检测器 检测到的次品 经过5s传送 到达次品剔除位置时 起动电磁铁y驱动剔除装置 剔除次品 电磁铁通电1s 检测器s2检测到的次品 经过3s传送 起动y 剔除次品 正品继续向前输送 正次品分拣操作流程如图所示 72 4 2s7 200plc的基本指令及编程方法 g 正次品分拣机编程 正次品分拣操作流程图 73 4 2s7 200plc的基本指令及编程方法 1 i o分配输入输出sb1i0 0m启动按钮mq0 0电动机 传送带驱动 sb2i0 1m停止按钮yq0 1次品剔除s1i0 2检测站1 s2i0 3检测站2 74 4 2s7 200plc的基本指令及编程方法 75 4 2s7 200plc的基本指令及编程方法 10 计数器指令 计数器利用输入脉冲上升沿累计脉冲个数 每个计数器一个16位的预置值寄存器 一个16位的当前值寄存器和一位状态位组成 当前值寄存器用以累计脉冲个数 计数器当前值大于或等于预置值时 状态位置1 计数器的设定值由程序赋予 需要时也可在外部设定 计数器存储器c的地址格式为 c 定时器号 如c20 s7 200计数器存储器的有效地址范围为 c0 c255s7 200系列plc有三类计数器 ctu 加计数器 ctud 加 减计数器 ctd 减计数 1 计数器指令介绍 76 4 2s7 200plc的基本指令及编程方法 计数器的指令格式 77 4 2s7 200plc的基本指令及编程方法 a 增 加 计数器指令 ctu 当r 0时 计数脉冲有效 当cu端有上升沿输入时 计数器当前值加1 当计数器当前值大于或等于设定值 pv 时 该计数器的状态位c bit置1 即其常开触点闭合 计数器仍计数 但不影响计数器的状态位 直至计数达到最大值 32767 当r 1时 计数器复位 即当前值清零 状态位c bit也清零 加计数器计数范围 0 32767 仿真 78 4 2s7 200plc的基本指令及编程方法 b 增 减计数器指令 ctud 当r 0时 计数脉冲无效 当cu端 cd端 有上升沿输入时 计数器当前值加1 减1 当计数器当前值大于或等于设定值时 c bit置1 即其常开触点闭合 当r 1时 计数器复位 即当前值清零 c bit也清零 增减计数器计数范围 32768 32767 ldi1 0ldi1 1ldi1 2ctudc50 5ldc50 q0 0 79 4 2s7 200plc的基本指令及编程方法 c50当前值 增 减计数器指令 仿真 80 4 2s7 200plc的基本指令及编程方法 c 减计数器指令 ctd 当复位ld有效时 ld 1 计数器把设定值 pv 装入当前值存储器 计数器状态位复位 置0 当ld 0 即计数脉冲有效时 开始计数 cd端每来一个输入脉冲上升沿 减计数的当前值从设定值开始递减计数 当前值等于0时 计数器状态位置位 置1 停止计数 ldi0 1ldi1 0ctdc4 3ldc4 q0 0 81 4 2s7 200plc的基本指令及编程方法 仿真 82 4 2s7 200plc的基本指令及编程方法 s7 200系列plc计数器最大的计数范围是32767 若须更大的计数范围 则须进行扩展 如图所示计数器扩展电路 图中是两个计数器的组合电路 c1形成了一个设定值为100次自复位计数器 计数器c1对i0 1的接通次数进行计数 i0 1的触点每闭合100次c1自复位重新开始计数 同时 连接到计数器c2端c1常开触点闭合 使c2计数一次 当c2计数到2000次时 i0 1共接通100 2000次 200000次 c2的常开触点闭合 线圈q0 0通电 该电路的计数值为两个计数器设定值的乘积 c总 c1 c2 2 计数器指令应用举例a 计数器的扩展 83 4 2s7 200plc的基本指令及编程方法 仿真 84 4 2s7 200plc的基本指令及编程方法 b 定时器的扩展 s7 200的定时器的最长定时时间为3276 7s 如果需要更长的定时时间 可使用图示的电路 图中最上面一行电路是一个脉冲信号发生器 脉冲周期等于t37的设定值 60s i0 0为off时 100ms定时器t37和计数器c4处于复位状态 它们不能工作 i0 0为on时 其常开触点接通 t37开始定时 60s后t37定时时间到 其当前值等于设定值 它的常闭触点断开 使它自己复位 复位后t37的当前值变为0 同时它的常闭触点接通 使它自己的线圈重新 通电 又开始定时 t37将这样周而复始地工作 直到i0 0变为off t37产生的脉冲送给c4计数器 记满60个数 即1h 后 c4当前值等于设定值60 它的常开触点闭合 设t37和c4的设定值分别为kt和kc 对于100ms定时器总的定时时间为 t 0 1kt kc s 85 4 2s7 200plc的基本指令及编程方法 c 自动声光报警操作程序 例 自动声光报警操作程序用于当电动单梁起重机加载到1 1倍额定负荷并反复运行1h后 发出声光信号并停止运行 程序如图所示 当加载到1 1倍额定负荷时 i0 0触点为闭合状态 定时器t50每60s发出一个脉冲信号作为计数器c1的计数输入信号 当计数值达60 即1h后 c1常开触点闭合 q0 0 q0 7线圈同时得电 指示灯发光且电铃作响 此时c1另一常开触点接通定时器t51线圈 10s后t51常闭触点断开q0 7线圈 电铃音响消失 指示灯持续发光直至再一次重新开始运行 86 4 2s7 200plc的基本指令及编程方法 d 分频电路 思考 不用微分电路可以吗 仿真 87 4 2s7 200plc的基本指令及编程方法 11 顺序控制指令 顺序控制 就是按照生产工艺预先规定的顺序 在各个输入信号的作用下 根据内部状态和时间的顺序 在生产过程中各个执行机构自动地有秩序地进行操作 即使生产过程按工艺要求事先安排的顺序自动地进行控制 顺序功能图 sfc 是基于工艺流程的高级语言 使用顺序功能图可以描述程序的顺序执行 循环 条件分支 程序的合并等功能流程概念 是设计梯形图程序的基础 顺序控制继电器指令 scr 是基于sfc的编程方法 它依据被控对象的sfc进行编程 将控制程序进行逻辑分段 从而实现顺序控制 scr指令清晰 明了 适合初学者 88 4 2s7 200plc的基本指令及编程方法 1 顺序功能图 sfc 顺序功能流程图程序设计是近年来发展起来的一种程序设计 采用顺序功能图的描述 控制系统被分为若干个子系统 从功能入手 使系统的操作具有明确的含义 便于设计人员和操作人员设计思想的沟通 便于程序的分工设计和检查调试 顺序功能流程图的主要元素是步 转移 转移条件和动作 如下图所示 顺序功能流程图程序设计的特点是 常用于系统的规模校大 程序关系较复杂的场合 只有在活动步的命令和操作被执行后 才对活动步后的转换进行扫描 因此 整个程序的扫描时间要大大缩短 对大型的程序 可分工设计 采用较为灵活的程序结构 可节省程序设计时间和调试时间 以功能为主线 条理清楚 便于对程序操作的理解和沟通 89 4 2s7 200plc的基本指令及编程方法 步 step 将系统的一个工作周期划分为若干个顺序相连的阶段 这些阶段称为步 step 用矩形框来表示 框内的序号表示步的编号 与控制过程的初始状态相对应的步称为初始步 用双线框表示 通常用顺序控制继电器的位如s0 0 s0 1 s0 2表示三个状态步 程序执行到某步时 该步状态位置1 其余为0 步动作 每步都要完成某些动作 称为步动作 用方框中的文字或符号表示 并用线将该方框和相应的步相连 有向连线 步之间用有向连线连接 表示状态步转移的方向 有向连线上没有箭头标注时 方向为自上而下 自左而右 转换条件 使系统由当前步进入下一步的信号称为转换条件 转换条件可以是外部的输入信号 如按钮 指令开关 限位开关的接通 断开等 也可以是程序运行中产生的信号 如定时器 计数器的常开触点的接通等 转换条件还可能是若干个信号的逻辑运算的组合 有向连线上的短线表示状态步的转换条件 90 4 2s7 200plc的基本指令及编程方法 2 顺序控制继电器指令 scr 91 4 2s7 200plc的基本指令及编程方法 在使用顺序控制继电器指令 scr 时应注意 顺序控制继电器指令scr只对状态元件s有效 为了保证程序的可靠运行 驱动状态元件s的信号应采用短脉冲 当输出需要保持时 可使用s r指令 不能把同一编号的状态元件用在不同的程序中 例如 如果在主程序中使用s0 1 则不能在子程序中再使用 在scr段中不能使用jmp和lbl指令 即不允许跳入或跳出scr段 也不允许在scr段内跳转 可以使用跳转和标号指令在scr段周围跳转 不能在scr段中使用for next和end指令 92 4 2s7 200plc的基本指令及编程方法 3 scr指令的编程举例 例1使用顺序控制结构 编写出实现红 绿灯循环显示的程序 要求循环间隔时间为1s 93 4 2s7 200plc的基本指令及编程方法 当i0 0输入有效时 起动s0 0 执行程序的第一步 输出q0 0置1 点亮红灯 q0 1置0 熄灭绿灯 同时起动定时器t37 经过1s 步进转移指令使得s0 1置1 s0 0置0 程序进入第二步 输出点q0 1置1 点亮绿灯 输出点q0 0置0 熄灭红灯 同时起动定时器t38 经过1s 步进转移指令使得s0 0置1 s0 1置0 程序进入第一步执行 如此周而复始 循环工作 94 4 2s7 200plc的基本指令及编程方法 例2根据舞台灯光效果的要求 控制红 绿 黄三色灯 要求 红灯先亮 2s后绿灯亮 再过3s秒黄灯亮 待红 绿 黄灯全亮3min后 全部熄灭 试用scr指令设计其控制程序 注意 每一个scr程序段中均包含三个要素 输出对象 在这一步序中应完成的动作 转换条件 满足转换条件后 实现scr段的转换 转换目标 转换到下一个步序 s0 3 s0 4 95 4 2s7 200plc的基本指令及编程方法 ldi0 1anq0 0anq0 1anq0 2ss0 1 1lscrs0 1ldsm0 0sq0 0 1tont37 20 96 4 2s7 200plc的基本指令及编程方法 ldt37scrts0 2screlscrs0 2ldsm0 0sq0 1 1tont38 30 97 4 2s7 200plc的基本指令及编程方法 ldt38scrts0 3screlscrs0 3ldsm0 0sq0 2 1tont39 1800 98 4 2s7 200plc的基本指令及编程方法 ldt39scrts0 4screlscrs0 4ldsm0 0rs0 1 4rq0 0 3scre lscr不能仿真 99 4 2s7 200plc的基本指令及编程方法 例3完成闪烁电路 实验 100 4 2s7 200plc的基本指令及编程方法 例4送料车控制 当小车处于后端时 按下起动按钮 小车向前运行 行至前端压下前限位开关 翻斗门打开装货 7s后 关闭翻斗门 小车向后运行 行至后端 压下后限位开关 打开小车底门卸货 5s后底门关闭 完成一次动作 运行方式 1 单周期操作 按下起动按钮 小车往复运行一次后 停在后端等待下次起动 2 连续操作 按下起动按钮 小车自动连续往复运动 101 4 2s7 200plc的基本指令及编程方法 输入 输出分配表 102 4 2s7 200plc的基本指令及编程方法 103 4 2s7 200plc的基本指令及编程方法 程序一开始运行初始化脉冲sm0 1 使s0 0置位为1 进入s0 0 此时若小车在后限位开关处 i0 2常开触点闭合 且底门关闭 q0 3常闭触点闭合 按下起动按钮 i0 0触点闭合 则进入s0 1 关断s0 0 104 4 2s7 200plc的基本指令及编程方法 q0 0线圈得电 小车向前运行 小车行至前限位开关处 i0 1触点闭合 进入s0 2 关断s0 1q0 1线圈得电 翻斗门打开装料 7s后 t37触点闭合进入s0 3 关断s0 2 关闭翻斗门 105 4 2s7 200plc的基本指令及编程方法 q0 2线圈得电 小车向后行进 小车行至后限位开关处 i0 2触点闭合 进入s0 4关断s0 3 小车停止 106 4 2s7 200plc的基本指令及编程方法 q0 3线圈得电 底门打开卸料 5s后t38触点闭合 若为连续运行方式 i0 5触点接通 进入s0 1 q0 0线圈得电 小车再次向前行进 实现连续运行 若为单周期运行方式 i0 4触点接通 再次进入s0 0 此时如果按下起动按钮 i0 0触点闭合 则开始下一周期的运行 107 4 2s7 200plc的基本指令及编程方法 12 移位寄存器指令 shrb en为使能输入端 当en端有效时 移位寄存器各位每个扫描周期都移动1位 data为数据输入端 在en的每个上升沿时刻对data端采样一次 将data端的数值移入移位寄存器 s bit指定移位寄存器的最低位 n指定移位寄存器的长度和移位方向 移位寄存器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论