s7-200PLC基本指令系统及编程.ppt_第1页
s7-200PLC基本指令系统及编程.ppt_第2页
s7-200PLC基本指令系统及编程.ppt_第3页
s7-200PLC基本指令系统及编程.ppt_第4页
s7-200PLC基本指令系统及编程.ppt_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

第3章S7 200PLC基本指令系统及编程 3 1PLC的编程语言与程序结构3 2S7系列的编程元件与寻址方式3 3位逻辑指令3 4定时器指令3 5计数器指令3 6梯形图基本规则3 7基本电路的编程3 8梯形图程序设计的技巧 3 1 1PLC编程语言的国际标准 IEC61131 3标准规定的编程语言 顺序功能图 SFC 梯形图 LAD 功能块图 FBD 语句表 STL 结构文本 ST 常开触点 输出线圈 常闭触点 动作块 网络1 网络2 注释 初始步 进液体A 网络编号 适合熟悉PLC和逻辑程序设计经验丰富的程序员使用 3 1 2程序结构 1 用户程序 1 主程序 必选 以MEND指令结束 是程序的主体 每一个项目都必须并且只能有一个主程序 2 子程序 可选 SBRn RET 3 中断处理程序 可选 INTn RETI 2 数据块 可选 DB1存放控制程序运行所需数据 3 参数块 可选 存放CPU组态数据 3 2S7系列的编程元件与寻址方式3 2 1存储器的数据类型 3 2 2 3 2 3编程元件可编程序控制器在其系统软件的管理下 将用户程序存储器划分出若干个区 并将这些区赋予不同的功能 由此组成了各种内部部件 这些内部部件就是PLC的编程元件 PLC的编程元件的种类和数量因不同厂家 不同系列 不同规格而异 总体说来元件种类及数量越多 其功能就越强 同时 这些编程元件沿用了传统继电器控制线路中继电器的名称 根据其功能分别称为输入继电器 输出继电器 辅助继电器 定时器 计数器等 但是 需要说明的是 在PLC内部并不是真正存在这些实际的物理器件 与其对应的只是存储器的某些存储单元 因此 PLC的编程元件也可理解为CPU的存储器区域 3 2 3编程元件1 输入继电器 I 输入映像寄存器 是PLC接收外部输入的数字量信号的窗口输入端可以是外接常开触点或常闭触点或多个触点组成的串并联电路地址范围 I0 0 I15 7可按位 字节 字 双字寻址 I0 6 IB2 IW2 ID2 2 输出继电器 Q 输出映像寄存器 在扫描周期末 CPU将输出映像寄存器数据传送给输出模块 再由输出模块驱动外部负载 地址范围 Q0 0 Q15 7 Q0 6 QB2 QW2 QD2 3 通用辅助继电器 M 位存储区 作为控制继电器来存储中间操作状态或其他控制信息一般以位为单位使用 但也可按字节 字 双字存取地址范围 M0 0 M31 74 特殊标志继电器 SM 特殊存储器 用于CPU与用户之间交换信息 存储系统的状态变量和相关控制参数及信息 按存取方式分 只读型SM 可写型SM 5 变量存储器 V 在程序执行过程中存放中间结果 全局变量 地址范围 V0 0 V5119 76 局部变量存储器 L 作为暂时存储器 存储局部变量或给子程序传递参数 64个字节 使用前60个 地址范围 L0 0 L63 77 顺序控制继电器 S 用于组织设备的顺序操作与其他指令配合实现复杂的顺序控制程序 8 定时器 T 工作原理同时间继电器精度等级 1ms 10ms 100ms使用方法 编址 0 255 定时器位 当前值9 计数器 C 工作原理 对外部输入脉冲计数计数方式 累加计数 累减计数使用方法 编址 C0 C255 计数器位 当前值 10 模拟量输入映像寄存器 AI 模拟量输出映像寄存器 AQ 作用 A D D A编址 元件名称 数据长度 起始字节地址 从偶数号字节开始编址 地址范围 AIW0 AIW62 AQW0 AQW6211 高速计数器 HC 用来累计比主机的扫描速率更快的高速脉冲 其当前值为32位的符号整数 只读 地址范围 HC0 HC512 累加器 AC 作用 暂存数据与参数传递 可读写数据长度 字节 字 双字地址范围 AC0 AC3 3 2 4寻址方式 指令中提供操作数或操作数地址的方式 称为寻址方式 S7 200的寻址方式有 立即寻址 直接寻址 间接寻址 1 立即寻址指令中直接给出操作数 操作数紧跟着操作码 在取出指令的同时也就取出了操作数的方法称为立即寻址 直接给出的操作数通常被称为立即数 一般是常数 常数可为字节 字 双字型数据 虽然CPU是以二进制方式存储所有常数 但在指令中可用十进制 十六进制 ASCII码或浮点数形式来表示 如 二进制常数 2 01011110十进制常数 2008十六进制常数 16 40FASCII码常数 OUTPUT 实数或浮点常数 1 223344E 10 正数 1 223344E 10 负数 2 直接寻址指令中直接给出了操作数的地址的寻址方式称为直接寻址 操作数的地址应按规定的格式表示 指令中的数据类型与指令标识符应相匹配 3 间接寻址指令中给出的既不是操作数本身也不是操作数的地址 而是存放操作数地址的存储单元的地址 这种寻址方式称为间接寻址 S7 200可间接寻址的存储器区域有 I Q V M S T 仅当前值 C 仅当前值 不能对独立的位值 HC L或模拟量进行间接寻址 实现间接寻址的步骤如下 例 VB200的地址 建立指针 修改指针 数据存取 3 3位逻辑指令 位逻辑指令在语句表语言中是指对位存储单元的简单逻辑运算 在梯形图中是指对触点的简单连接和对标准线圈的输出 在位逻辑指令中 除另有说明外 操作数的有效区域为 I Q M SM T C V S L 且数据类型是BOOL 如I0 0或Q0 0 3 3 1标准触点指令 梯形图 LAD 中常开和常闭触点指令用触点表示 常闭触点中带有 符号 如图所示 当存储器某地址的位 bit 值为1时 则与之对应的常开触点闭合 而与之对应常闭触点断开 装载指令及驱动线圈指令LD LDN OUT装载指令及驱动线圈指令如表3 4所示 表3 4装载指令及线圈输出指令 注 梯形图中 表示线圈 当执行输出指令时 能流 到 则线圈被激励 输出映象寄存器或其他存储器的相应位为 1 反之为 0 例3 2 装载及驱动线圈指令用法示例 LDI0 0 M0 0LDNI0 1 Q0 0 Q0 1 说明 1 LD LDN指令总是与母线相连 包括在分支点引出的母线 2 指令不能用于输入继电器 3 具有图3 5中的最后2条指令结构的输出形式 称为并联输出 并联的 指令可以连续使用 4 指令的操作数不可重复使用 指令练习 1 请设计当常开触点I0 0接通时 Q0 0断开2 请设计当I0 0接通时 先接通Q0 0 再接通Q0 1 触点串并联指令如表3 5所示 表3 5触点串并联指令表 2 触点串并联指令A AN O ON LDI0 0OI0 2ANI0 1ONC1 M0 1 Q0 1ANI2 0 Q0 2 例3 3 触点串并联指令示例一 Network1LDI0 0OI0 1ONI0 2 Q0 0Network2LDI1 0AI1 1OT2ANI2 0OC5 M0 0 例3 4 触点串并联指令示例二 I0 1 Q1 0 例3 5 已知图3 8中I0 1的波形 画出Q1 0的波形 图3 8上升沿检测 分析 1 在I0 1上升沿之前 I0 1的常开触点断开 Q1 0和Q1 1均为0 2 在I0 1上升沿 I0 1变为1 CPU先执行第一行电路 因为前一个周期Q1 1为0 Q1 1的常闭触点闭合 所以Q1 0变为1 3 执行第二行电路后 Q1 1变为1 4 进入第二个扫描周期后 Q1 1为1 使Q1 1常闭触点断开 使Q1 0为0 5 到I0 1变为0 Q1 0仍为0 因此 Q1 0只是在I0 1的上升沿到来后接通一个周期 指令练习 3 根据下面设计要求写出对应的梯形图和语句表设计要求 当I0 0接通 且I0 1断开时 接通Q0 0当接通Q0 0时 且T10接通时 则M0 1通电 3 3 2置位和复位指令 表3 6置位 复位指令 说明 1 N的取值范围 1 255 2 R S指令与 指令不同 可以多次使用同一操作数 3 操作数被置为 1 后 即使 能流 断 仍保持置位 必须通过R指令方可复位为 0 操作数被复位后 即使 能流 断 仍保持复位 必须通过S指令方可复位为 1 4 如果复位指令指定的是一个定时器位 T 或计数器位 C 指令不但复位定时器或计数器位 而且清除定时器或计数器的当前值 编程举例 请分析Q0 1的波形 I0 0 I0 1 置位复位 3 3 3立即指令 立即指令允许对输入和输出点进行快速和直接存取 当用立即指令读取输入点的状态时 相应的输入映象寄存器中的值并未发生更新 用立即指令访问输出点时 访问的同时相应的输出寄存器的内容也被刷新 注意 只有输入继电器I和输出继电器Q可以使用立即指令 1 立即置位 复位指令 立即输出指令表3 7立即置位 复位指令 立即输出指令 说明 I 表示立即 当指令执行时 新值会同时被写到物理输出点和对应的输出过程映象寄存器 这一点不同于非立即指令 只把新值写入过程映像寄存器 2 立即触点指令表3 8立即触点指令 说明 立即触点指令只能用于输入量I 执行该指令时 立即读入物理输入点的值 根据该值决定触点的接通 断开状态 但是并不更新物理输入点对应的输入过程映像寄存器 3 3 4正负跳变指令 取反指令 空操作指令 跳变指令 取反指令及空操作指令 1 正跳变指令 EU 检测到每一次正跳变 触点的输入信号由0到1 或负跳变指令 ED 检测到每一次负跳变 触点的输入信号由1到0 让能流接通一个扫描周期 对于正跳变指令 一旦发现有正跳变发生 由0到1 该栈顶值被置为1 否则置0 对于负跳变指令 一旦发现有负跳变发生 由1到0 该栈顶值被置为1 否则置0 2 取反指令 NOT 将它左边电路的逻辑运算结果取反 运算结果为1 则变为0 为0则变为1 3 空操作指令 NOP 不影响程序的执行 图跳变应用 Network1LDI0 0AI0 1 Q0 0NOT Q0 1Network2LDI0 2ONI0 3 Q0 2Network3LDI0 4LPSEUSQ0 3 1 Q0 4LPPEDRQ0 3 1 Q0 5 S7 200有一个9位的堆栈 栈顶用来存储逻辑运算的结果 下面的8位用来存储中间运算结果 堆栈中的数据一般按 先进后出 的原则存取 堆栈 执行LDI0 1 假设I0 1 1 执行情况如图4 4所示 如果是LDN指令 则执行结果是将指令所跟的操作数取反后再装入栈顶 其他部分执行情况与LD完全相同 指令AI0 2 假设I0 2 0 执行情况如下表所示 如果是AN指令 则是指令操作数先变反再和栈顶值进行与运算 结果放回栈顶 即 S0 1 1 1O和ON指令与A和AN指令的执行情况类似 只是和栈顶进行的是或运算 而不是与运算 上例指令若改为 OI0 2 则执行的结果是 S0 S0 I0 2 1 0 1NOT指令对堆栈的处理是改变栈顶值 使之由0变成1 或由1变成0 请写出以下梯形图对应的语句表 LDI0 0AI0 1 Q0 0 触点的串并联指令只能将触点或电路与单个触点串并联 要想将上图的两个串联电路块并联 必须使用其他指令实现 1 栈装载或指令2 栈装载与指令3 逻辑推入栈指令4 逻辑弹出栈指令5 逻辑读栈指令6 装入堆栈指令 3 3 5堆栈操作指令 OLD 栈装载或指令 或块 在梯形图中用于将两个触点块并联连接 在语句表中指令OLD执行情况如表4 9所示 1 栈装载或指令 LDI0 0AI0 1LDI0 0AI0 3OLD Q0 0 请写出以下梯形图对应的语句表 2 栈装载与指令 ALD 栈装载与指令 与块 在梯形图中表示两个触点块串联连接 在语句表中指令ALD执行情况如表4 8所示 LDI0 0OI0 1LDI0 1OI0 3ALD Q0 0 举例 对于较复杂的程序 特别是含有OLD和ALD指令时 在画梯形图之前 应分析清楚电路的串并联关系后 再开始画梯形图 首先将电路划分为若干个块 各电路块从含有LD的指令 例如LD LDI和LDN等 开始 在下一个含有LD的指令 包括ALD和OLD 之前结束 然后分析各块电路之间的串并联关系 OLD或ALD指令将它上面靠近它的 已经连接好的电路并联或串联起来 练习 5 根据下面指令表画出相应的梯形图 请写出以下梯形图对应的语句表 LPS 逻辑推入栈指令 分支或主控指令 在梯形图中的分支结构中 用于生成一条新的母线 左侧为主控逻辑块时 第一个完整的从逻辑行从此处开始 注意 使用LPS指令时 本指令为分支的开始 以后必须有分支结束指令LPP 即LPS与LPP指令必须成对出现 在语句表中指令LPS执行情况如下表4 10所示 3 逻辑推入栈指令 4 逻辑弹出栈指令 LPP 逻辑弹出栈指令 分支结束或主控复位指令 在梯形图中的分支结构中 用于将LPS指令生成一条新的母线进行恢复 注意 使用LPP指令时 必须出现在LPS的后面 与LPS成对出现 在语句表中指令LPP执行情况如下表4 11所示 请写出以下梯形图对应的语句表 LDI0 0AI0 1LPSAI0 2 Q0 0LPPAI0 4 Q0 1 请写出以下梯形图对应的语句表 5 逻辑读栈指令 LRD 逻辑读栈指令 在梯形图中的分支结构中 当左侧为主控逻辑块时 开始第二个和后边更多的从逻辑块 注意 LPS后第一个和最后一个从逻辑块不用本指令在语句表中指令LRD执行情况如表4 12所示 请写出以下梯形图对应的语句表 LDI0 0AI0 1LPSAI0 2 Q0 0LRDAI0 4 Q0 1LPPAI0 5 Q0 3 6 装入堆栈指令 LDS 装入堆栈指令 本指令编程时较少使用 指令格式 LDSn n为0 8的整数 例 LDS4指令LDS4在语句表中执行情况如下表4 13所示 Network1LDI0 0LDI0 1LDI2 0AI2 1OLDALD Q5 0Network2LDI0 0LPSLDI0 5OI0 6ALD Q7 0LRDLDI2 1OI1 3ALD Q6 0LPPAI1 0 Q3 0 例3 7 堆栈操作指令应用 列写指令的顺序务必按照从左到右 自上而下的顺序编写 应用举例 图4 11是复杂逻辑指令在实际应用中的一段程序的梯形图 图4 11复杂逻辑指令的应用 返回本节 指令练习 6 设计一个两级控制电路当I0 0接通时 若I0 1接通 Q0 0通电若I0 2接通 Q0 1通电若I0 3接通 Q0 2通电当I0 0断开时 Q0 0 Q0 1 Q0 2都失电 7 根据下面梯形图写出对应的语句表 LDI0 0LPSLDI0 1OI0 2ALD Q0 0LRDLDI0 3OI0 4ALD Q0 1LPPAI0 5 Q0 2 LDNI0 2LPSLDI0 0OQ0 0ALDANQ0 1 Q0 0LPPLDI0 1OQ0 1ALDANQ0 0 Q0 1 3 3 6RS触发器指令RS触发器指令 如图3 14 的基本功能与置位指令S和复位指令R的功能相同 置位优先 SR 触发器的置位信号SI和复位信号R同时为1时 输出OUT信号为1 复位优先 RS 触发器的置位信号S和复位信号RI同时为1时 输出OUT信号为0 图3 14置位优先与复位优先触发器 3 4定时器指令 Network1 100ms定时器T37在 10 x100ms 1s 后到时 I0 0ON T37使能 I0 0OFF 禁止并复位T37 LDI0 0TONT37 10Network2 定时器T37控制Q0 0 LDT37 Q0 0 例3 8 分析图3 15中接通延时定时器工作过程 图3 15梯形图与语句表程序 Network1 10msTONR定时器T1在 100 x10ms 1s 后到时 LDI0 0TONRT1 100Network2 T1位控制Q0 0 1秒后T1使Q0 0接通 LDT1 Q0 0Network3 TONR定时器必须用复位指令才能复位 当I0 1接通时 复位T1 LDI0 1RT1 1 Network1 10ms定时器T33在1秒后到时 I0 0关断使能T33 I0 0接通T33复位 LDI0 0TOFT33 100Network2 定时器T33用其输出位控制Q0 0 LDT33 Q0 0 例 扩大延时范围 例 电机的顺序启动 控制要求 三台电机按顺序启动 电机M1先启动 运行20秒后 M2启动 再经30秒后 M3启动 3 5计数器指令 1 概述2 增计数器3 增减计数器4 减计数器5 应用举例 概述 计数器用来累计输入脉冲的次数 计数器也是由集成电路构成 是应用非常广泛的编程元件 经常用来对产品进行计数 计数器指令有3种 增计数CTU 增减计数CTUD和减计数CTD 指令操作数有4方面 编号 预设值 脉冲输入和复位输入 3 5 1增计数器指令CTU 首次扫描 计数器位OFF 当前值为0 脉冲输入的每个上升沿 计数器计数1次 当前值增加1个单位 当前值达到预设值时 计数器位ON 当前值继续计数到32767停止计数 复位输入有效或执行复位指令 计数器自动复位 即计数器位OFF 当前值为0 指令格式 CTUCxxx PVXxx 计数器编号 范围 0 255 pv 计数器的预设值例 CTUC20 3程序实例 下图为增计数器的程序片断和时序图 图4 19增计数程序及时序 3 5 2减计数器CTD 脉冲输入端CD用于递减计数 首次扫描 计数器位OFF 当前值为等于预设值PV 计数器检测到CD输入的每个上升沿时 计数器当前值减小1个单位 当前值减到0时 计数器停止计数 计数器位ON 当装载输入端 LD 接通时 计数器自动复位 即计数器位OFF 当前值复位为预设值 而不是0 指令格式 CTDCxxx PV例 CTDC40 4程序实例 下图为减计数器的程序片断和时序图 Network1 当I0 1断开时 减计数器C1的当前值从3变到0 I0 0的上升沿使C1的当前值递减 I0 1接通时装载预设值3 LDI0 0LDI0 1CTDC1 3Network2 当C1的当前值 0时 C1接通 LDC1 Q0 0 3 5 3增减计数器CTUD 有两个脉冲输入端 CU输入端用于递增计数 CD输入端用于递减计数 首次扫描 定时器位OFF 当前值为0CU输入的每个上升沿 计数器当前值增加1个单位 CD输入的每个上升沿 计数器当前值减小1个单位 当前值达到预设值时 计数器位ON 增减计数器计数到32767 最大值 后 下一个CU输入的上升沿将使当前值跳变为最小值 32768 反之 当前值达到最小值 32768 时 下一个CD输入的上升沿将使当前值跳变为最大值32767 复位输入有效或执行复位指令 计数器自动复位 即计数器位OFF 当前值0 指令格式 CTUDCxxx PV例 CTUDC30 5程序实例 如图所示为增减计数器的程序片断和时序图 Network1 I0 0增计数输入端 I0 1减计数输入端 I0 2复位端LDI0 0LDI0 1LDI0 2CTUDC48 4Network2 当当前值 4时 增 减计数器C48接通 LDC48 Q0 0 3 5 4应用举例 1 可以自动清零的计数器 2 用计数器和定时器配合增加延时时间 如图所示 3 6梯形图基本规则 1 NetworkNetwork为段 例如 Network2 2是段的编号 一个段就是一个梯阶 程序是由若干个段构成 段的作用是便于显示程序的结构 编程时可以在Network的后面输入程序标题或注释 增强程序的可读性 2 能流 powerflow 能流 是一种假想的 概念电流 或 能量流 能流 只能从左向右流动 这与执行用户程序时的逻辑运算顺序是一致的 在图中 把左边的母线假设为电源 火线 而把右边的母线 如虚线所示 假想为电源 零线 如果有 能流 从左至右流向线圈 则线圈被激励 如果没有 能流 则线圈不被激励 要强调的是 引入 能流 的概念仅仅是告诉人们如何来理解梯形图各输出点的动作 实际上并不存在这种 能流 3 编程顺序PLC的运行是按照从上至下 从左至右的顺序执行 即串行工作 而继电器控制线路是并行工作的 电源一接通 并联支路都有相同的电压 因此 在PLC的编程中应注意 程序的顺序不同 其执行结果不同 如图3 28所示 4 线圈右边无触点每个逻辑行开始于左母线 一般来说触点放在左侧 线圈与指令盒放在右边 整个梯形图形成阶梯结构 线圈不能直接与左母线相连 必须通过触点连接 5 触点可串可并无限制触点可以用于串行电路 也可用于并行电路 且使用次数不受限制 所有输出继电器也都可以作为辅助继电器使用 6 线圈不能重复使用在同一个梯形图中 如果同一元件的线圈使用两次或多次 这时前面的输出线圈对外输出无效 只有最后一次输出线圈有效 所以 程序中一般不出现双线圈输出 7 触点水平不垂直触点应画在水平线上 不能画在垂直线上 8 触点多上并左如果有串联电路块并联 应将串联触点多的电路块放在最上面 如果有并联电路块串联 应将并联触点多的电路块移近左母线 这样程序简洁 指令语句少 语句表的编程规则 1 列写指令的顺序务必按照从左到右 自上而下的原则进行 在处理比较复杂的触点结构时 如触点块的串联 并联或堆栈相关指令 语句表的表达顺序为 先写出参与因素的内容 再表达参与因素间的关系 3 7基本电路的编程 1 控制要求按下起动按钮SB1 电动机起动运行 按下停止按钮SB2 电动机停止运行 2 输入 输出 I O 分配I0 0 启动按钮SB1 I0 1 停止按钮SB2 Q0 0 电动机 接触器 3 梯形图方案设计 1 输出结果 线圈Q0 0 2 输入条件 I0 0 I0 1触点 3 7 2单台电动机的两地控制1 控制要求按下地点1的起动按钮SB1或地点2的起动按钮SB2 电动机起动运行 按下地点1的停止按钮SB3或地点2的停止按钮SB4 电动机停止运行 2 输入 输出 I O 分配I0 1 SB1 I0 2 SB2 常开 I0 3 SB3 I0 4 SB4 常闭 Q0 0 电动机 接触器 3 梯形图方案设计该题有3种设计方案 其中有两种方案与上一题的思路相似 只是增加了一个使输出线圈得电的条件和使输出线圈失电的条件 3 7 3两台电动机的顺序联动控制1 控制要求电动机M1先起动 起动按钮SB1 电动机M2才能起动 起动按钮SB2 2 输入 输出 I O 分配I0 1 电动机M1起动 SB1 I0 2 电动机M2起动 SB2 I0 3 电动机M1停止 SB3 I0 4 电动机M2停止 SB4 Q0 1 电动机M1 接触器1 Q0 2

温馨提示

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

评论

0/150

提交评论