S7200PLC基本指令改.ppt_第1页
S7200PLC基本指令改.ppt_第2页
S7200PLC基本指令改.ppt_第3页
S7200PLC基本指令改.ppt_第4页
S7200PLC基本指令改.ppt_第5页
免费预览已结束,剩余61页可下载查看

下载本文档

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

文档简介

第7章S7 200系列PLC的基本指令 7 1逻辑指令7 2程序控制指令7 3基本指令应用举例 本章重点1 掌握各类功能指令及运用功能指令编程的方法 2 要求能够针对具体的控制对象运用功能指令编程 本章难点1 移位循环类指令的应用 2 数据处理类指令的应用 3 高速处理类指令的理解及应用 4 外部设备通信处理类指令的理解 7 1逻辑指令 SIMATICS7 200系列PLC共有27条逻辑指令 7 1 1逻辑取及线圈驱动指令 LD Load LDN LoadNot Out 取指令 由常开触点逻辑运算开始 取反指令 由常闭触点逻辑运算开始 线圈驱动指令 LD LDN应用 LDNI0 1 M0 0 M0 1 LDI0 0 Q0 0 LD LDN 指令使用说明 LD LDN指令用于与输入公共线 输入母线 相连的触点 在分支电路块的开始处也要使用LD LDN指令 与后面的OLD ALD指令配合完成块电路的编程 指令用于输出继电器 辅助继电器 定时器及计数器等 但不能用于输入继电器 并联的 指令可以连续使用任意次 在同一程序中不要使用双线圈输出 即同一个元器件在同一程序中只使用一次 指令 LD LDN的操作数 I Q M SM T C V和S 指令的操作数为 Q M SM V S T和C也作为输出线圈 但在S7 200PLC中输出时不以使用 指令形式出现 见定时器和计数器指令 操作数 Q M SM T C V和S 7 1逻辑指令 7 1 2触点串联指令 A And AN AndNot 与指令 用于单个常开触点串联连接 与反指令 用于单个常闭触点串联连接 A AN指令的使用 LDI0 0 Q0 0LDQ0 0 M0 2AT5 Q0 1 AM0 0 ANI0 1 A AN是单个触点串联连接指令 可连续使用 但在用梯形图编程时会受到打印宽度和屏幕显示的限制 S7 200PLC的编程软件中规定的串联触点使用上限为11个 若要串联多个触点组合回路时 须采用后面说明的ALD指令 若按正确次序编程 可以反复使用 指令 A AN的操作数 I Q M SM T C V和S A AN指令使用说明 7 1 2触点串联指令 7 1 3触点并联指令 O Or ON OrNot 或指令 用于单个常开触点并联连接 或反指令 用于单个常闭触点并联连接 O ON指令的使用 LDM0 0OM0 1OM0 2AI0 0OI0 1 Q0 0 O ON指令使用说明 O ON指令可作为一个接点的并联连接指令 紧接在LD LDN指令之后用 即对其前面LD LDN指令所规定的触点再并联一个触点 可以连续使用 若要将两个以上触点的串联回路和其他回路并联时 须采用后面说明的OLD指令 O ON的操作数 I Q M SM T C V和S 7 1 3触点并联指令 7 1 4串联电路块的并联指令 用于串联电路块的并联连接 OLD OrLoad OLD指令的使用 LDI0 0AM0 0LDI0 1ANM0 1OLDLDNI0 2ANM0 2OLD Q0 0 OLD指令使用说明 几个串联支路并联连接时 其支路的起点以LD LDN开始 支路终点用OLD指令 如需将多个支路并联 从第二条支路开始 在每一支路后面加OLD指令 用这种方法编程 对并联支路的个数没有限制 OLD指令无操作数 7 1 4串联电路块的并联指令 7 1 5并联电路块的串联指令 ALD AndLoad 用于并联电路块的串联连接 ALD指令的使用 LDI0 0OI0 1LDM0 0AM0 1LDNM0 2AM0 3OLDALD Q0 0 ALD指令使用说明 分支电路 并联电路块 与前面电路串联连接时 使用ALD指令 分支的起始点用LD LDN指令 并联电路块结束后 使用ALD指令与前面电路串联 如果有多个并联电路块串联 顺次以ALD指令与前面支路连接 支路数量没有限制 ALD指令无操作数 7 1 5并联电路块的串联指令 7 1 6置位与复位指令 S R指令使用 LDI0 0 SQ0 0 1 LDI0 1 RQ0 0 1 I0 0为1 执行下条语句 I0 1为1 执行下条语句 7 1 6置位与复位指令 S R指令使用说明 对同一元件可以多次使用S R指令 与 指令不同 对计数器和定时器复位 计数器和定时器的当前值将被清零 N的取值范围为1 255 N可为 VB IB QB MB SMB SB LB AC 常数 VD AC LD 一般情况下使用常数 S R指令的操作数为 I Q M SM T C V S和L 7 1 6置位与复位指令 立即指令 对输入 输出点进行快速直接存取 作用 提高PLC对输入 输出过程的响应速度 不受PLC循环扫描工作方式的影响 特点 当用立即指令读取输入点的状态时 对I进行操作 相应的输入映像寄存器中的值并未更新 当用立即指令访问输出点时 对Q进行操作 新值同时写到PLC的物理输出点和相应的输出映像寄存器 7 1 7立即指令 立即指令使用说明 7 1 7立即指令 立即指令使用 LDI0 0 Q0 0 IQ0 1SIQ0 2 1LDII0 1 Q0 3 7 1 7立即指令 7 1 8边沿脉冲指令 LDI0 0EU M0 0LDM0 0SQ0 0 1 LDI0 1ED M0 1LDM0 1R 以下依次类推 EU ED指令的使用 7 1 8边沿脉冲指令 7 1 9逻辑堆栈操作指令 S7 200系列PLC中有一个9层堆栈 用于处理所有逻辑操作 称为逻辑堆栈 特点 先进后出 ALD AndLoad 指令 ALD指令把逻辑堆栈第一 第二级的值作 与 操作 结果置于栈顶 ALD执行后堆栈减少一级 与块指令 OLD指令把逻辑堆栈第一 第二级的值作 或 操作 结果置于栈顶 OLD执行后堆栈减少一级 或块指令 OLD OrLoad 指令 在梯形图的分支结构中 LPS指令用于生成一条新的母线 其左侧为原来的主逻辑块 右侧为新的从逻辑块 可直接编程 LPS指令的作用是把栈顶值复制后压入堆栈 栈底值压出丢失 LPS指令 LogicPush 逻辑入栈指令 分支电路开始指令 进栈数据 栈底丢失 7 1 9逻辑堆栈操作指令 LRD指令的作用是把逻辑堆栈第二级的值复制到栈顶 堆栈没有压入和弹出 LRD LogicRead 指令 逻辑读栈指令 LPP LogicPop 指令 逻辑出栈指令 分支电路结束指令 LPP指令的作用是把堆栈弹出一级 原第二级的值变为新的栈顶值 7 1 9逻辑堆栈操作指令 LDS LoadStack 指令 LDS指令的作用是复制堆栈中的第n个值到栈顶 而栈底丢失 其指令格式为 LDSnn为0 8中的整数 装入堆栈指令 例如 LDS3 3 数据丢失 7 1 9逻辑堆栈操作指令 使用注意事项 由于受9层堆栈空间的限制 LPS LPP指令连续使用时应少于9次 LPS LPP指令必须成对使用 它们之间可以使用LRD指令 指令无操作数 LPS LRD和LPP指令应用 LPPAM1 0 Q0 2LDM1 1ONM1 2ALD Q0 3 LDI0 0LPSLDM0 0OM0 1ALD Q0 0LRD LDM0 2AM0 3LDNM0 4AM0 5OLDALD Q0 1 7 1 9逻辑堆栈操作指令 7 1 10定时器指令 S7 200系列PLC为用户提供了三种类型的定时器 通电延时定时器TON OnDelayTimer 断电延时定时器TOF OffDelayTimer 保持型通电延时定时器TONR RetentiveOnDelayTimer 定时器的当前值 设定值均用16位有符号整数来表示 最大计数值为32767 1 定时器编号 定时器编号用定时器的名称和常数 0 255 编号 2 分辨率与定时时间的计算 S7 200PLC定时器有三种分辨率 定时器定时时间T的计算 T PT S式中 T为实际定时时间 例 TON指令使用T33 10ms定时器 设定值为100 则实际定时时间为 T 100 10 1000ms定时器 计数器设定值的数据类型均为整型 INT 除了常数外 还可以用VW IW等作它们的设定值 1ms 10ms 100ms PT为定时设定值 S为分辨率 7 1 10定时器指令 3 定时器指令使用说明 7 1 10定时器指令 上电或首次扫描时 定时器位为OFF 当前值为0 输入端 IN 接通时 定时器位为OFF 当前值从0开始计时 当前值达到PT PresetTime 预置时间 端的设定值时 定时器位变为ON 梯形图中对应定时器的常开触点闭合 常闭触点断开 当前值仍连续计数到32767 输入端断开 定时器自动复位 当前值被清零 定时器位为OFF 4 通电延时定时器 通电后单一时间E间隔的定时 7 1 10定时器指令 5 断电延时定时器 上电或首次扫描时 定时器位为OFF 当前值为0 输入端 IN 接通时 定时器位变为ON 当前值为0 当输入端由接通到断开时 定时器开始定时 当前值达到PT PresetTime 预置时间 端的设定值时 定时器位变为OFF 当前值等于设定值 停止计时 直到输入电路接通 梯形图中对应定时器的常开触点闭合 常闭触点断开 当前值仍连续计数到32767 输入端断开 定时器自动复位 当前值被清零 常开触点断开 断电后单一时间间隔的定时 7 1 10定时器指令 6 保持型通电延时定时器 上电或首次扫描时 定时器位为OFF 当前值保持在掉电前的值 输入端 IN 接通时 当前值从上次的保持值开始继续计时 当累计当前值达到设定值时 定时器位变为ON 当前值可继续计数到32767 TONR指令只能用复位指令R对其进行复位 多个时间间隔的累计定时 7 1 10定时器指令 7 定时器的刷新方法 S7 200系列PLC的定时器三种定时器的刷新方式是不同的 1 1ms定时器由系统每隔1ms刷新一次 与扫描周期及程序处理无关 即采用中断刷新方式 因而 当扫描周期较长时 在一个周期内可能被多次刷新 其当前值在一个扫描周期内不一定保持一致 2 10ms由系统在每个扫描周期开始时自动刷新 由于是每个扫描周期只刷新一次 故在每次程序处理期间 其当前值为常数 7 1 10定时器指令 3 100ms在该定时器指令执行时被刷新 如果该定时器线圈被激励 该定时器指令并不是每个扫描周期都执行 或在一个扫描周期中多次被执行 都会造成计时失准 100ms定时器仅用在定时器指令在每个扫描周期执行一次的程序中 7 1 10定时器指令 TON TOF和TONR指令应用举例其中T33为TON T34为TOF T1为TONR LDI0 0TONT33 4TOFT34 3TONRT1 10 7 1 10定时器指令 7 1 11计数器 S7 200系列PLC为用户提供了三种类型的计数器 增计数器CTU CountUp 减计数器CTD CountDown 增 减计数器CTUD CountUp Down 计数器的当前值 设定值均用16位有符号整数来表示 最大计数值为32767 1 计数器编号计数器编号用计数器的名称和常数 0 255 编号 即C 如 C20 2 计数器指令使用说明 7 1 11计数器 1 增计数器增计数器指令 CTU 在每一个CU输入的上升沿 从OFF到ON 从当前计数值开始递增计数 当复位输入 R 置位或者执行复位指令时 计数器复位 计数器在达到最大计数值 32767 时 停止计数 2 减计数器减计数器指令 CTD 输入端有上升沿时 减计数器每次从计数器的当前值减计数 当装载输入端接通时 计数器复位并把预设值装入当前值 当计数器达到0时 计数器位接通 7 1 11计数器 3 增 减计数器 CTUD 在每个CU输入的上升沿 从当前计数值开始递增计数 在每个CD输入的上升沿递减计数 当复位输入 R 置位或执行复位指令时 计数器复位 在达到计数器最大值32767后 下一个CU输入上升沿将使计数值变为最小值 32768 同样在达到最小计数值 32768 后 下一个CD输入上升沿将使计数值变为最大值 32767 前值大于等于预置值时 该计数器位被置位 ON 否则 计数器位被复位 OFF 7 1 11计数器 指令说明 当用复位指令复位计数器时 计数器位被复位 并且当前值清零 参照计数器的当前值和计数器位使用计数器号 值得注意的是 由于每个计数器只有一个当前值 请不要把一个计数器号分配给几个类型的计数器 增计数器 减计数器和增 减计数器都使用同一个当前值 CTU CTUD指令使用要点 在STL形式中 CU CD和R的顺序不能错 CU CD和R信号可为复杂逻辑关系 7 1 11计数器 减计数器应用 LDI3 0LDI1 0CTDC50 3 7 1 11计数器 增 减计数器应用 LDI4 0LDI3 0LDI2 0CTUDC48 4 7 1 11计数器 7 1 12比较指令 比较指令是将两个操作数按指定的条件作比较 条件成立时 触点就闭合 表示操作数n1 n2所需满足的条件 等于比较 如LD n1 n2 即n1 n2时触点闭合 大于等于比较 如 即n1 n2时触点闭合 小于等于比较 如 即n1 n2时触点闭合 表示操作数n1 n2的数据类型及范围 BByte 字节比较 如LDB IB2 MB2 WWord 字节的比较 如AW MW2 VW12 DDoubleWord 双字的比较 如OD VD24 MD RReal 实数的比较 实数应存放在双字中 仅限于CPU214以上 7 1 13NOT及NOP指令 取反指令NOT 空操作指令NOP 7 2程序控制指令 7 2 1跳转及标号指令 跳转指令 当输入端有效时 使程序的执行跳转到指定的标号 执行跳转后 逻辑堆栈顶总为1 指定跳转的目标标号 操作数n 0 255 跳转指令及标号的例子 LDNSM0 2JMP4 LBL4 必须强调 跳转指令及标号必须同在主程序内 或在同一子程序 同一中断服务程内 不可由主程序跳转到中断服务程序或子程序中 也不可由中断服务程序或子程序跳转到主程序中 7 2 2结束及暂停指令 1 结束指令 END和MEND END 条件结束指令MEND 无条件结束指令 执行条件成立 左侧逻辑值为1 时结束主程序 返回主程序起点 结束主程序 返回主程序起点 指令说明 1 用户程序必须以无条件结束指令结束主程序 2 条件结束指令用在无条件结束指令前结束主程序 在调试程序时 在程序的适当位置插入MEND指令可以实现程序的分段调试 3 STEP7 Micro WIN32没有无条件结束指令 但它会自动加一无条件结束指令到每一个主程序的结尾 LDI0 0END 7 2 2结束及暂停指令 2 停止指令 STOP 1 停止指令 STOP 有效时 可以使主机CPU的工作方式由RUN切换到STOP 从而立即中止用户程序的执行 STOP指令在梯形图中以线圈形式编程 2 STOP指令可以用在主程序 子程序和中断服务程序中 如果在中断程序中执行STOP指令 则中断处理立即中止 并忽略所有挂起的中断 继续扫描程序的剩余部分 在本次扫描周期结束后 完成将主机从RUN到STOP的切换 3 STOP 停止指令 执行条件成立 左侧逻辑值为1 时停止执行用户程序 令CPU状态由RUN转到STOP 操作数 无 4 STOP指令和END指令通常在程序中用来对突发紧急事件进行处理 以避免实际生产中的重大损失 指令说明 7 2 2结束及暂停指令 7 2 3看门狗指令 WDR称为看门狗复位指令 也称为警戒时钟刷新指令 它可以把警戒时钟刷新 即延长扫描周期 WDR指令在梯形图中以线圈形式编程 无操作数 LDM5 6WDR 看门狗复位指令 WDR 说明 若在FOR NEXT循环中写入WDR指令 则可能使一次扫描的时间拖得很长而在一次扫描结束之前 下面的处理是被禁止的 通信 自由口通信除外 I O刷新 直接I O除外 强制刷新 特殊标志位刷新 SM0 SM5 SM29均不可刷新 运行时间诊断 扫描时间超过25s时 使10ms 100ms定时器不能正确计时 不处理中断程序中的STOP指令 注意 如果希望扫描周期超过300ms 或希望中断时间超过300ms 则最好用WDR指令来重新触发看门狗定时器 7 2 3看门狗指令 7 2 4FOR NEXT循环指令 FOR指令和NEXT指令必须成对使用 FOR标记循环的开始 NEXT标记循环的结束 FOR标记在FOR和NEXT标记之间执行指令 必须给FOR指令指定当前循环计数 INDX 初值 INIT 和终值 FINAL NEXT指令标记循环的结束 并且置栈顶值为1 例如 给定初值 INIT 为1 终值 FINAL 为10 那么随着当前计数值 INDX 从1增加到10 FOR与NEXT之间的指令被执行10次 7 2 4FOR NEXT循环指令 7 2 5子程序 1 子程序建立指令 SBR 2 子程序调用和条件返回指令 1 子程序调用指令 CALL 子程序的调用可以带参数 它在梯形图中以指令盒的形式编程 2 子程序条件返回指令 CRET 梯形图中以线圈的形式编程 指令不带参数 子程序调用 返回指令的应用 LDSM0 1CALL10 LDM14 3CRET 7 2 5子程序 子程序调用 返回指令说明 1 STEP7 Micro WIN32没有子程序无条件返回指令 但它会自动加一无条件返回指令到每一个子程序的结尾 2 子程序可以嵌套 嵌套层数可达8层 不禁止自调用 3 当一个子程序被调用时 整个逻辑堆栈另存别处 然后栈顶置1 其余栈位置0 程序执行转到被调用的子程序 子程序执行完毕 逻辑堆栈恢复原调用点的值 程序执行返回到主调用程序 因为调用子程序后 栈顶总为1 所以跟随SBR指令后的输出线圈或功能框可直接接到梯形图左边母线上 在指令表中 跟在SBR后的Load指令可省略 4 累加器值可在主 子程序间自由传递 调用子程序时无需对累加器作存储及重装操作 7 2 5子程序 7 2 6与ENO指令 1 ENO是LAD中指令盒的布尔量输出如果指令盒的输入有能流 而且执行没有错误 ENO输出就把能流传到下一个指令盒 ENO可以作为允许位表示指令成功执行 借助堆栈 ENO位用来影响其后指令执行的能流 STL指令没有EN输入 对于要执行的指令栈顶必须是1 在STL中没有ENO输出 但是 带有ENO的LAD指令对应的STL指令置一个特殊的ENO位 该位用 与 ENO AENO 指令访问 AENO可以用来产生和指令盒的ENO位同样的效果 2 指令格式 AENOAENO指令无操作数 且只在STL中使用 它将栈顶值和ENO位的逻辑与运算 运算结果保存到栈顶 AENO指令的应用 LDI0 0 IVW200 VW204AENOATCHINT 0 10 7 2 6 与 ENO指令 7 3基本指令应用举例 7 3 1延时电路 1 延时脉冲产生电路控制要求 输入信号I0 0满足 ON 后 停一段时间后产生一个脉冲 该电路常用于获取启动或开关信号 过程工作 利用脉冲指令在I0 0的上升沿产生一个计时启动脉冲 接下来就是自锁回路 因为定时器没有瞬动触点 所以必须用一个中间继电器M0 1组成延时逻辑 T34定时到 产生一个宽度为一个周期的脉冲Q0 0 然后使T34复位 ANQ0 0 M0 1TONT34 400LDT34 Q0 0 LDI0 0EU M0 0LDM0 0OM0 1 2 瞬时接通 延时断开电路 当输入信号有效时 Q0 0 立即有输出 而输入信号OFF后 输出信号延时一段时间才OFF LDI0 0OQ0 0ANT37 Q0 0 梯形图 时序图 LDNI0 0AQ0 0TONT37 30 3 延时接通 延时断开电路 当有输入信号后 停一段时间输出信号才为ON 而输入信号OFF后 输出信号延时一段时间才OFF AQ0 0TONT41 60LDT40 LDI0 0TONT40 40LDNI0 0 OQ0 0ANT41 Q0 0 4 脉冲宽度可控电路 作用 输入信号宽度不规范的情况下 该指令可调节脉冲宽度 注意 如果输入信号的两个上升沿之间的距离小于该脉冲宽度 则忽略输入信号的第二个上升沿 应用举例 LDI0 0OM0 0ANT42 M0 0LDM0 0TONT42 20LDM0 0ANT42 Q0 0 5 长延时电路 S7 200PLC中定时器的最长定时时间不到1小时 3276 7S 实际应用中往往需要几小时甚至几天或更长时间的定时控制 这就需要通过编制程序 应用定时器和计数器 来实现 实例 输出Q0 1在输入I0 0接通4小时20分钟后才接通 LDI0 0ANT42TONT42 600LDT42LDNI0 0OC47CTUC47 60LDC50AT42LDNI0 0CTUC51 20LDC47LDNI0 0C

温馨提示

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

评论

0/150

提交评论