西门子PLC指令实例教程.ppt_第1页
西门子PLC指令实例教程.ppt_第2页
西门子PLC指令实例教程.ppt_第3页
西门子PLC指令实例教程.ppt_第4页
西门子PLC指令实例教程.ppt_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

第四章S7 300软件基础 4 1PLC编程基础4 2STEP7的指令结构4 3位逻辑指令4 5定时器与计数器指令 4 1PLC编程基础 4 1 1STEP7编程语言 STEP7是S7 300 400系列PLC应用设计软件包 所支持的PLC编程语言非常丰富 该软件的标准版支持STL 语句表 LAD 梯形图 及FBD 功能块图 3种基本编程语言 并且在STEP7中可以相互转换 不同的编程语言可供不同知识背景的人员采用 其中LAD STL和FBD是三种基本编程语言 4 1 1STEP7编程语言 LAD LAD LadderDiagram 简称梯形图 LAD是使用最多的PLC编程语言 因与继电器电路很相似 具有直观易懂的特点 很容易被熟悉继电器控制的电气人员所掌握 特别适合于数字量逻辑控制 也适合于熟悉继电器电路的人员使用 LAD编程语言如图4 1所示 图4 1LAD编程语言 1 梯形图 LAD 4 1 1STEP7编程语言 2 语句表 STL STL STL StatementList 简称语句表 STL是一种类似于微机汇编语言的一种文本编程语言 由多条语句组成一个程序段 语句表适合于经验丰富的程序员使用 可以实现某些梯形图不能实现的功能 STL适用于喜欢用汇编语言编程的人员使用 STL编程语言如图4 2所示 图4 2STL编程语言 4 1 1STEP7编程语言 3 功能块图 FBD FBD FBD FunctionBlockDiagram 简称功能块图 功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑 一些复杂的功能用指令框表示 FBD适合于有数字电路基础的编程人员使用 FBD编程语言如图4 3所示 4 1 1STEP7编程语言 图4 3FBD编程语言 4 1 2S7 300CPU的系统存储器 1 过程映像输入表 输出表 I Q 过程映像输入表 PII 循环扫描开始时 存储数字量输入模块的输入信号的状态 过程映像输出表 PIQ 循环扫描结束时 存储用户程序计算的输出值 并将PIQ的内容写入数字量输出模块 2 内部存储器区 M 内部存储器区 M 主要用于存储中间变量 3 定时器 T 存储器区在CPU的存储器中 有一个区域是专为定时器保留的 此存储区域为每个定时器地址保留一个16位字 梯形图逻辑指令集支持256个定时器 时间值可以用二进制或BCD码方式读取 4 1 2S7 300CPU的系统存储器 4 计数器 C 存储器区在用户CPU的存储器中 有为计数器保留的存储区 此存储区为每个计数器地址保留一个16位字 梯形图指令集支持256个计数器 计数值 0 999 可以用二进制或BCD码方式读取 5 数据块 背景数据块 DB DB为共享数据块 DBX2 3 DBB5 DBW10和DBD12 DI为背景数据块 DIX DIB DIW和DID 6 外部I O存储区 PI PQ 外设输入 PI 区和外设输出 PQ 区允许直接访问本地的和分布式的输入模块和输出模块 4 1 3S7 300CPU的寄存器 1 累加器 ACCUx 累加器用于处理字节 字或双字的寄存器 S7 300有两个32位累加器 ACCU1和ACCU2 2 状态字寄存器 16位 状态字用于表示CPU执行指令时所具有的状态 一些指令是否执行或以何方式执行可能取决于状态字中的某些位 执行指令时也可能改变状态字中的某些位 也能在位逻辑指令或字逻辑指令中访问并检测 状态字的结构如图4 4所示 图4 4状态字的结构 4 1 4STEP7数据类型 在STEP7中 大多数指令要与具有一定大小的数据对象一起操作 不同的数据类型具有不同的格式 编程所用的数据要指定数据类型 要确定数据大小和数据的位结构 数据类型分为3大类 1 基本数据类型基本数据类型有很多种 每种数据类型在分配内存空间时有确定的位数 如布尔型 BOOL 数据为1位 字节型 BYTE 数据为8位 字型 WORD 数据为16位 双字型 DWORD 数据为32位 基本数据类型见表4 1 4 1 4STEP7数据类型 表4 1STEP7中常用的基本数据类型 4 1 4STEP7数据类型 2 复式数据类型超过32位或由其他数据类型组成的数据为复式数据类型 STEP7允许4种复式数据类型 见表4 2 表4 2STEP7中的复式数据类型 4 1 4STEP7数据类型 3 参数类型参数类型用于向FB和FC传送参数 STEP7提供的参数类型见表4 3 表4 3STEP7的参数类型 4 1 5PLC编程的基本原则 1 外部输入 输出继电器 内部继电器 定时器 计数器等器件的接点可多次重复使用 2 梯形图每一行都是从左母线开始 线圈接在最右边 接点不能放在线圈的右边 3 线圈不能直接与左母线相连 4 同一编号的线圈在一个程序中使用两次容易引起误操作 应尽量避免线圈重复使用 5 梯形图程序必须符合顺序执行的原则 从左到右 从上到下地执行 如不符合顺序执行的电路不能直接编程 6 在梯形图中串联接点 并联接点的使用次数没有限制 可无限次地使用 PLC编程应该遵循以下基本原则 4 2STEP7的指令结构指令是程序的最小独立单位 用户程序是由若干条顺序排列的指令构成 STEP7编程语言其指令功能非常丰富 利用程序编辑器 可以进行离线编程 即把程序存储在编程器中 也可以进行在线编程 将程序存储在CPU中 4 2 1指令操作数指令操作数 又称编程元件 一般在用户存储区中 操作数由操作标识符和参数组成 操作标识符由主标识符和辅助标识符组成 主标识符用来指定操作数所使用的存储区类型 辅助标识符则用来指定操作数的单位 如 位 字节 字 双字等 主标识符有 I 输入过程映像寄存器 Q 输出过程映像寄存器 M 位存储器 PI 外部输入寄存器 PQ 外部输出寄存器 T 定时器 C 计数器 DB 数据块寄存器 和L 本地数据寄存器 辅助标识符有 X 位 B 字节 W 字 D 双字 4 2 2寻址方式所谓寻址方式就是指令执行时获取操作数的方式 可以直接或间接方式给出操作数 S7 300有4种寻址方式 立即寻址 存储器直接寻址 存储器间接寻址和寄存器间接寻址 1 立即寻址立即寻址是对常数或常量的寻址方式 其特点是操作数直接表示在指令中 或以唯一形式隐含在指令中 下面各条指令操作数均采用了立即寻址方式 SET 把RLO置1OWW 16 A320 将常量W 16 A320与累加器1 或 运算L27 把整数27装入累加器1LC 0100 把BCD码常数0100装入累加器12 存储器直接寻址存储器直接寻址 简称直接寻址 该寻址方式在指令中直接给出操作数的存储单元地址 存储单元地址可用符号地址 如SB1 KM等 或绝对地址 如I0 0 Q4 1等 下面各条指令操作数均采用了直接寻址方式 AI0 0 对输入位I0 0进行 与 逻辑操作SL20 0 把本地数据位L20 0置1 M115 4 使存储区位M115 4的内容等于RLO的内容LIB10 把输入字节IB10的内容装入累加器1TDBD12 把累加器1中的内容传送给数据双字DBD12中 3 存储器间接寻址存储器间接寻址 简称间接寻址 该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址 也就是说该存储器的内容是操作数所在存储器单元的地址 该存储器一般称为地址指针 在指令中需写在方括号 内 地址指针可以是字或双字 对于地址范围小于65535的存储器可以用字指针 对于其他存储器则要使用双字指针 存储器间接寻址的双字指针的格式如图4 5所示 图4 5寄存器间接寻址的指针格式 4 3位逻辑指令 位逻辑指令包含位逻辑运算指令 定时器指令 计数器指令和位测试指令等 可以使用位逻辑指令扫描布尔操作数的状态 通过 与 AND 或 OR 异或 XOR 及其组合操作实现逻辑操作 所产生的结果 1 或 0 称为逻辑运算结果 存储在状态字的 RLO 中 逻辑操作结果 RLO 用于赋值 置位 复位布尔操作数 也用于控制定时器和计数器的运行 4 3 1触点与线圈在LAD 梯形图 程序中 通常使用类似继电器控制电路中的触点符号及线圈符号来表示PLC的位元件 被扫描的操作数 用绝对地址或符号地址表示 则标注在触点符号的上方 如图4 6所示 图4 6触点符号的表示方式 1 常开触点对于常开触点 动合触点 则对 1 扫描相应操作数 在PLC中规定 若操作数是 1 则常开触点 动作 即认为是 闭合 的 若操作数是 0 则常开触点 复位 即认为是 打开 的 常开触点所使用的操作数是 I Q M L D T C 2 常闭触点常闭触点 动断触点 则对 0 扫描相应操作数 在PLC中规定 若操作数是 1 则常闭触点 动作 即触点 断开 若操作数是 0 则常闭触点 复位 即触点 闭合 常闭触点所使用的操作数是 I Q M L D T C 3 输出线圈 赋值指令 输出线圈与继电器控制电路中的线圈一样 如果有电流 信号流 流过线圈 RLO 1 则被驱动的操作数置 1 如果没有电流流过线圈 RLO 0 则被驱动的操作数复位 置 0 输出线圈只能出现在梯形图逻辑串的最右边 输出线圈等同于STL程序中的赋值指令 用等于号 表示 输出线圈所使用的操作数是 Q M L D 4 中间输出在梯形图设计时 如果一个逻辑串很长不便于编辑时 可以将逻辑串分成几个段 前一段的逻辑运算结果 RLO 可作为中间输出 存储在位存储器 I Q M L或D 中 该存储位可以当作一个触点出现在其他逻辑串中 中间输出只能放在梯形图逻辑串的中间 而不能出现在最左端或最右端 如图4 7所示 a 带中间输出的梯形图 b 不带中间输出的等效梯形图图4 7带中间输出和不带中间输出的梯形图程序 4 3 2位逻辑运算指令 4 3 2位逻辑运算指令位逻辑运算指令是对 0 或 1 的布尔操作数进行扫描 经过相应的位逻辑运算 将逻辑运算结果 0 或 1 送到状态字的RLO位 1 与 和 与非 A AN 指令逻辑 与 在梯形图里是用串联的触点回路表示的 如果串联回路里的所有触点皆闭合 该回路就通 电 了 如图4 8所示 图4 8 与 逻辑指令 2 或 和 或非 O ON 指令逻辑 或 在梯形图里是用并联的触点回路表示的 被扫描的操作数标在触点上方 在图4 9中 只要有一个触点闭合 输出0 1的信号状态就为 1 图4 9 或 和 或非 逻辑梯形图 3 异或 和 异或非 X XN 指令图4 10是 异或 逻辑梯形图 它类似 或 和 或非 指令 用于扫描并联回路能否 通电 图4 10 异或 逻辑梯形图 4 输出指令逻辑输出指令又称为赋值操作指令 该操作把状态字中RLO的值赋给指定的操作数 位地址 表4 4列出了操作数的数据类型和所在的存储区 表4 4输出指令 例4 1 用 与 或 输出 指令编写电机启动停止控制程序 编程元件地址分配 启动按钮SB1 常开触点 I0 1 停止按钮SB2 常闭触点 I0 2 接触器线圈KM Q0 0 用梯形图编写的控制程序如图4 11所示 图4 11电机启停控制梯形图程序 4 4 3置位和复位指令置位 复位指令根据RLO的值 来决定被寻址位的信号状态是否需要改变 若RLO的值为1 被寻址位的信号状态被置1或清0 若RLO是0 则被寻址位的信号保持原状态不变 置位 复位指令有关内容见表4 5 表4 5置位 复位指令 a 复位指令操作 b 置位操作指令图4 12置位 复位指令 例4 2 用置位与复位指令编制传送带运动控制程序 如图4 13所示为一个传送带 在传送带的起点有两个按钮 用于启动的S1和用于停止的S2 在传送带的尾端也有两个按钮 用于启动的S3和用于停止的S4 要求能从任一端启动或停止传送带 另外 当传送带上的物件到达末端时 传感器S5使传送带停止 图4 13传送带示意图 地址分配 梯形图程序 图4 14控制传送带程序 4 4 4RS和SR触发器如果置位 复位指令用功能框图表示就构成了触发器 该功能框有两个输入端 分别是置位输入端S和复位输入端R 有一个输出Q 位地址 触发器可分为两种类型 置位优先型 RS触发器 当R和S驱动信号同时为 1 时 触发器最终为置位状态 和复位优先型 SR触发器 当R和S驱动信号同时为 1 时 触发器最终为复位状态 触发器指令和操作数指令见表4 6 表4 6RS触发器 RS触发器分为置位优先和复位优先型两种 置位优先型RS触发器的R端在S端之上 当两个输入端都为1时 下面的置位输入最终有效 既置位输入优先 触发器或被复位或保持复位不变 如图4 15所示 图4 15置位优先型RS触发器 4 4 5位测试指令 当信号状态变化时就产生跳变沿 当从0变到1时 产生一个上升沿 或正跳沿 若从1变到0 则产生一个下降沿 或负跳沿 S7中有两类跳变沿检测指令 一种是对RLO的跳变沿检测的指令 另一种是对触点跳变沿直接检测的梯形图方块指令 具体内容见表4 7 表4 7跳变沿检测指令 图4 16是使用RLO正跳沿检测指令的例子 这个例子中 若CPU检测到输入I1 0有一个正跳沿 将使得输出Q4 0的线圈在一个扫描周期内通电 对输入I1 0常开触点扫描的RLO值存放在存储位M1 0中 图4 16RLO正跳沿检测 图4 17是使用触点负跳沿检测指令的例子 图中 由给出需要检测的触点编号 I0 3 M0 0 用于存放该触点在前一个扫描周期的状态 图4 17触点负跳沿检测 例4 3 设计故障信息显示电路 若故障信号I0 0为1 使Q4 0控制的指示灯以1HZ的频率闪烁 操作人员按复位按钮I0 1后 如故障信息消失 指示灯熄灭 如果没有消失 指示灯转为常亮 直至故障消失 分析 故障信息显示程序如图4 18所示 在设置CPU属性时令M1为时钟存储器字节 其中的M1 5提供周期为1S的时钟脉冲 出现故障时 将I0 0提供的故障信号用M0 1锁存起来 使Q4 0控制的指示灯以1Hz的频率闪烁 按复位按钮I0 1后 将故障锁存信号M0 1复位为0状态 如果这时故障以消失 指示灯熄灭 如果没有消失 M0 1的常闭触点与I0 0的常开触点组成的串联电路使指示灯转为常亮 直至故障消失 I0 0变为0状态 图4 18故障信息显示梯形图程序 4 5定时器与计数器指令 4 5 1定时器指令1 定时器的种类定时器是PLC中的重要部件 它用于实现或监控时间序列 定时器是一种由位和字组成的复合单元 定时器的触点由位表示 其定时时间值存储在字存储器中 不同的CPU模块 用于定时器的存储区域也不同 最多允许使用64 512个定时器 在S7 300中有5种定时器可供选择 脉冲定时器 SP 扩展定时器 SE 接通延时定时器 SD 带保持的接通延时定时器 SS 和断电延时定时器 SF 2 定时器的组成在CPU的存储器中留出了定时器区域 用于存储定时器的定时时间值 每个定时器有一个16位的字和一个二进制位 定时器的字用来存放它当前的定时时间值 定时器触点的状态由它的位的状态来决定 用定时器地址 T和定时器号 例如T6 来存取它的时间值和定时器位 带操作数的指令存取定时器位 带字操作数的指令存取定时器的时间值 不同的CPU支持32 512个定时器 在S7 300中 最多允许使用256个定时器 3 定时器的表示方法S7中的定时时间由时基和定时值两部分组成 定时时间等于时基与定时值的乘积 采用减计时 定时时间到后会引起定时器触点的动作 时间值以二进制格式存放 定时器的第0位到第11位存放二进制格式的定时值 第12 13位存放二进制格式的时基 如图4 19所示 表4 8给出了可能出现的组合情况 表4 8给出了可能出现的组合情况 图4 19累加器1低字的内容 定时值127 时基1s 表4 8时基与定时范围 设置定时时间 用户需给累加器1装入需要的数值 为避免格式错误 用户可以按下列的形式将时间预置值装入累加器的低位字 1 十六进制数W 16 wxyz 其中 w 时间基准 取值为0 1 2或3 分别表示时基为10ms 100ms 1s或10s xyz为定时值 取值范围为1 999 2 直接使用S5中的时间表示法装入定时数值 例如 S5T aH bM cS dMS 其中 H 小时 M 分钟 S 秒 MS 毫秒 a b c d为用户设置的值 可输入的最大时间值为9990s或2H 46M 30S 例如S5T 1H 12M 18S为1h12min18s S5T 18S为18秒 4 定时器梯形图方块指令 1 S5脉冲定时器脉冲定时器的功能类似于数字电路中上升沿触发的单稳态电路 图4 19中的指令框中 S为脉冲定时器的设置输入端 TV为预置值输入端 R为复位输入端 Q为定时器位输出端 BI输出16进制格式的当前时间值 BCD输出当前时间值的BCD码 图4 19脉冲定时器指令 在I0 0提供的启动输入信号S的上升沿 脉冲定时器开始定时 输出Q04 0变为1 定时器的当前时间值等于TV端输入的预置值 即初值 减去启动后的时间值 定时时间到时 当前时间值变为0 Q输出变为0状态 在定时期间 如果I0 0的常开触点断开 则停止定时 当前时间值便为0 Q0 0的线圈断电 工作时序如图4 20 图4 20中的t是定时器的预置值 R是复位输入端 在定时器输出为1时 如果复位输入I0 1由0变为1 定时器被复位 复位后输出Q0 0变为0状态 当前时间值和时标被请0 BI输出端输出不带时基的十六进制整数格式的定时器当前值 BCD输出端输出BCD码格式的当前时间值和时基 图4 20脉冲定时器时序 2 S5扩展脉冲定时器S5扩展脉冲定时器如图4 21 各个输入输出端的意义与S5脉冲定时器相同 图4 21扩展脉冲定时器指令 在启动输入信号S的上升沿 脉冲定时器开始定时 在定时期间 Q输出端为1状态 直到定时结束 在定时期间即使S输入变为0状态 仍继续定时 Q输出端为1状态 直到定时结束 在定时期间 如果S输入又由0变为1状态 定时器被重新启动 开始以预置的时间值定时 R输入有0变为1状态时 定时器被复位 停止定时 复位后Q输出端变为0状态 当前时间和时标被清0 工作时序图如图4 22所示 图4 22扩展脉冲定时器时序 3 S5开通延时计时器接通延时定时器是使用最多的定时器 定时器各输入端和输出端的意义和S5脉冲定时器相同 如图4 23 图4 23开通延时定时器指令 在启动输入信号S的上升沿 定时器开始定时 定时器的当前时间值等于预设值TV减去启动后的时间值 如果定时期间S的状态一直为1 定时时间到时 当前时间值变为0 Q输出端变为1状态 使Q0 2的线圈通电 此后如果S输入由1变为0 Q输出端的信号也变为0 在定时期间 如果S输入由1变为0 则停止定时 当前时间值保持不变 S又变为1时 又从预设值开始定时 工作时序图如图4 24 R是复位输入信号 定时器的S输入为1时 不管定时时间是否已到 只要复位输出R由0变为1 定时器都要被复位 复位后当前时间和时基被清0 如果定时时间已到 复位后输出Q由1变为0 图4 24开通延时计时器时序 4 S5保持型接通延时定时器定时器各输入端和输出端的意义与S5定时器相同 如图4 25所示 在启动输入信号S的上升沿 定时器开始定时 工作时序图如图4 26所示 定时期间及输入S变为0 仍然继续定时 定时时间到时 输出Q变为1并保持 在定时期间 如果输入S又由0变为1 定时器被重新启动 又从预置值开始定时 不管输入S是什么状态 只要复位输入R从0变为1 定时器就被复位 输出 变为0 图4 25保持型开通延时定时器 图4 26保持型开通延时定时器时序 图4 26保持型开通延时定时器时序5 S5断开延时定时器定时器各输入端和输出端的意义与S5脉冲延时器相同 如图4 27 在启动输入信号S的上升沿 定时器的Q输出信号变为1状态 当前时间值为0 在S输入的下降沿 定时器开始定时 定时时间到时 输出Q变为0状态 正在定时的时候 如果S信号由0变为1 定时器的时间值保持不变 停止定时 如果输入S重新变为0 定时器从预置值开始重新定时 复位输入I0 1为1状态时 定时器被复位 时间值被清0 输出Q变为0状态 S5断开延时定时器工作时序图如图4 28 图4 27断开延时定时器 图4 28断开延时定时器工作时序图 5 定时器线圈指令1 脉冲定时器线圈脉冲定时器线圈的功能和时序图和S5脉冲定时器的相同 定时器位为1时 定时器的常开触点闭合 常闭触点断开 在图4 29中 当I0 0的常开触点由断开变为接通时 定时器开始定时 T0的常开触点闭合 定时时间到时 T0的常开触点断开 在定时期间 如果I0 0变为0状态 或者复位输入I0 1变为1状态 T0的常开触点都将断开 定时器的当前值被清0 图4 29脉冲定时器线圈2 扩充的脉冲定时器线圈在图4 30中 当I0 2的常开触点由断开变为接触时 定时器T1开始定时 在定时期间 T1的常开触点闭合 定时时间到时 T1的常开触点断开 在定时期间 即使I0 2变为0状态 仍继续定时 定时期间如果I0 2又由0状态变为1状态 定时器被重新启动 复位输入I0 3由0变为1状态时 T1被复位 其常开触点断开 3 接通延时定时器线圈如图4 31当I0 4的常开触点由断开变为接通时 定时器T2开始定时 如果I0 4一直为1 定时时间到时 T2的常开触点闭合 定时期间如果SD的线圈断电 T2的当前时间保持不变 线圈重新通电时 又从预置值开始定时 复位输入I0 5变为1时 T2的常开触点断开 时间被清0 图4 30扩充的脉冲定时器线圈 4 保持型接通延时定时器线圈如图4 32 当I0 6的常开触点由断开变为接通时 定时器开始定时 定时期间即使T3的线圈断电 仍继续定时 定时时间到时 T3的定时器位变为1 其常开触点闭合 只有复位输入I0 7变为1 才能使T3复位 复位后其定时器位变为0 常开触点断开 在定时期间 I0 6的常开触点如果断开后又变为接通 定时器将被重新启动 以设置的预置值重新开始定时 图4 31接通延时定时器线圈 5 断开延时定时器线圈如图4 33 当I1 0的常开触点由断开变为接通时 T4的输出变为1 其常开触点闭合 在I1 0的下降沿 定时器开始定时 定时器到时 T5的时间值变为0 其常开触点断开 在定时期间 如果I1 0的常开触点由断开变为接通 定时器的时间值保持不变 停止定时 如果I1 0的常开触点重新断开 定时器从预置值开始重新启动定时 复位输入I1 1为1状态时 定时器被复位 时间值被清0 Q4 4的线圈断电 图4 32保持型接通延时定时器线圈 对于以上不同形式的定时器指令 一般的选择原则是 1 如果要求输入信号为1的时间等于定时器的设定时间 且要求输入与输出信号状态一致时 可选择脉冲定时器SP 2 如果要求输出信号为1的时间等于定时器的设定时间 但不要求输入与输出信号状态一致 不考虑输入信号为1的时间长短 可选择扩展定时器SE 3 如果要求设定时间到且输入信号仍为1时 输出信号才从0变到1 可选择接通延时定时器SD 图4 33断开延时定时器线圈 4 如果要求设定时间到时 输出信号才从0变到1 而不考虑输入信号此时的状态及为1的时间长短可选择保持型接通延迟定时器SS 5 如果要求输入信号从0变到1时 输出信号也从0变化到1 当输入信号从1变化到0才开始延迟 延迟时间到时输出信号才从1变化到0 可选择断开延迟定时器SF 例4 4 脉冲定时器应用 优先抢答器设计 图4 32抢答器示意图 设计说明 参赛者要抢答主持人所提问题时 需抢先按下桌上的按钮 指示灯亮后需待主持人按下 复位 键R后才熄灯 对初中班学生照顾 只要按下SB11和SB12中任一个按钮灯HL1都亮 对高三班学生限制 只有SB31和SB32都按下时灯HL3才亮 若在主持人按下 开始 按钮S后10s内有抢答按钮压下 则电磁铁YC得电 使彩球摇动 以示竞赛者得到一次幸运的机会 如果定时到仍未有抢答 则禁止继续抢答 如图4 32 参考答案 端子接线图 如图4 33 图4 33抢答器端子接线图 I O地址分配表 如图4 34 图4 34抢答器I O地址分配表 控制程序如图4 35 设置抢答定时器 初中组抢答控制 高一组抢答控制 图4 35抢答器的梯形图程序 高三组抢答控制 例4 5 扩展脉冲定时器应用 电动机延时自动关闭控制 控制要求 按动起动按钮S1 I0 0 电动机M Q4 0 立即起动 延时5分钟以后自动关闭 起动后按动停止按钮S2 I0 1 电动机立即停机 控制程序如图4 36 图4 36电动机延时自动关闭控制梯形图 例4 6 接通延时定时器和脉冲定时器应用 用定时器构成一脉冲发生器 当满足一定条件时 能够输出一定频率和一定占空比的脉冲信号 控制要求 当按钮S1 I0 0 按下时 输出指示灯H1 Q4 0 以灭2s 亮1s规律交替进行 方法1 使用接通延时定时器 方法2 使用脉冲定时器 图4 37应用接通延时定时器和脉冲定时器构成脉冲发生器梯形图 例4 7 接通延时定时器的应用 电动机顺序起停控制 控制要求 如图4 38所示 某传输线由两个传送带组成 按物流要求 当按动起动按钮S1时 皮带电机Motor 2首先起动 延时5s后 皮带电机Motor 1自动起动 如果按动停止按钮S2 则Motor 1立即停机 延时10s后 Motor 2自动停机 图4 38电机顺序起停控制示意图 图4 40I O地址分配表 图4 39电机顺序起停控制接线端子图 图4 41电机顺序起停控制梯形图程序 4 8 闪烁灯控制程序 某信号灯HL 当开关S1接通后 就以灭1S 亮2S的频率不断闪烁 IO地址分配 本例中只有一个输入 开关S1 编程地址为I0 0 1个输出 信号灯HL 编程地址为Q4 0 因为信号灯点亮和熄灭的时间不同 所以需要两个定时器T1和T2 T1的时间设定值为2S T2的时间设定值为1S 控制程序如下 图4 42信号灯闪烁控制程序 4 9 定时器扩展应用 在S7 300中 单个定时器的最大计时范围是9990s 2H 46M 30S 如果超过这个范围 可以采用两个或多个定时器级联的方法来扩展计时范围 现在考虑一个要求延时为5个小时的控制任务 假定T1的时间设定值为2H 20M T2的时间设定值为2H 40M 则T1 t2 5H 其控制程序如图所示 图4 43两个定时器级联梯形图 4 10 用定时器设计周期和占空比可调的震荡电路 图4 44中I0 0的常开触点接通后 T8的线圈通电 开始定时 2S后定时时间到 T8的常开触点接通 使Q4 7变为1状态 同时T9开始定时 3S后T9的定时时间到 它的常闭触点断开使T8的线圈断电 T8的常开触点断开 使Q4 7和T9的线圈断电 下一个扫描周期因T9的常闭触点接通 T8又从预置值开始定时 以后Q4 7的线圈将这样的周期性地通电和断电 直到I0 0变为0状态 Q4 7线圈通电和断电的时间分别等于T9和T8的预置值 振荡电路实际上是一个有正反馈的电路 T8和T9通过它们的触点分别控制对方的线圈 形成了正反馈 图4 44振荡电路梯形图 4 5 2计数器指令计数器是PLC提供的一个基本功能 S7系列PLC的CPU中有专门的计数器存储区 计数器存储区的大小由CPU的型号决定 例如 CPU313C的PLC计数存储区为256个计数器 即C0 C255 每个计数器有一个16位的字和一个二进制的位 计数器的字用来存放它的当前值 计数器触点的状态由它的位的状态来决定 计数器指令是存取计数器存储区的唯一功能 S7300中有3种计数器可供选择 加计数器 CU 减计数器 CD 和加减技术器 CUD 与定时器指令一样 计数器指令在梯形图中也有两种表示形式 计数器线圈指令表4 9和计数器方框指令表4 10 两者可实现相同的功能 用户可根据实际需要选择使用 表4 9计数器线圈指令表 表4 10计数器方框指令表 1 加计数器如图4 45的指令框中 S为加计数器的设置输入端 PV为设置值输入端 CU为加计数脉冲输入端 R为复位输入端 Q为计数器位输出端 CV输出十六进制格式的当前计数值 BCD输出当前计数值的BCD码 图4 45加计数器梯形图在 设置 输入信号I0 1的上升沿 将预置值PV指定的值送入计数器字 在 加计数脉冲 输入信号I0 0的上升沿 如果计数值小于999 计数值加1 复位 输入信号I0 2为1时 计数器被复位 计数值被清0 计数值大于0时计数器位即输出Q为1 计数值为0时 计数器复位也为0 如果在用 设置 输入S设置计数器时CU输入为1 即使信号没有变化 下一个扫描周期也会计数 2 加计数器线圈设置计数值线圈SC用来设置计数值 该指令仅在RLO的上升沿 由0变为1 时执行 此时预置值被送入指定的计数器 图4 46中I0 2的触点由断开变为接通时 预置值6给送入计数器C10 图中标有CU的线圈为加计数线圈 在I0 0的上升沿 如果计数值小于6 计数值加1 复位输入I0 3为1时 计数器被复位 计数值被清0 图4 46加计数线圈 3 减计数器在图4 47中的设置输入S的上升沿 用PV指定的值预置减计数器 在减计数输入信号CD上升沿 如果计数值大于0 计数值减1 复位输入R为1时 计数器被复位 计数值被清0 计数值大于0时计数器的输出Q为1 计数值为0时 Q为0 如果在设置计数器时CD输入为1 即使信号没有变化 下一扫描周期也会计数 图4 47减计数器梯形图 4 减计数器线圈图4 48中标有CD的线圈为减计数线圈 I0 5的触点由断开变为接通时 预置值5被送入计数器C11 在I0 4的上升沿 如果计数值大于0 计数值减1 计数值非0时 C11的常开触点闭合 为0时c11的常开触点断开 复位输入I0 6为1时 计数器被复位 计数值被清0 图4 48减计数器线圈 4 11 用计数器扩展定时器的定时范围 s7300的定时器的最常定时时间为9990s 如果需要更长的定时时间 可以使用图4 49所示的电路 I0 0为0状态时 计数器C0被复位 I0 0变为1状态时 其常开触点接通 使T11和T12组成的震荡电路开始工作 计数器的预置值999被送入计数器C0 I0 0的常闭触点断开 C0被解除复位 振荡电路的振荡周期为T11和T12预置值之和 图中的振荡电路相当于周期为4小时的时钟脉冲发生器 每隔4小时 当T12的定时时间到 T11的常开触点由接通变为断开 其脉冲的下降沿通过减计数线圈CD使C0的计数值减1 计满999个数 即3996H C0的当前值减为0 它的常闭触点闭合 使Q5 4的线圈通电 总的定时时间等于震荡电路的振荡周期乘以C0的计数预置值 图4 49定时器范围的扩展 5 加减计数器在设置输入S的上升沿 见图4 50 用PV指定的预置值设置加减计数器 复位输入R为1时 计数器被复位 计数值被清0 在加计数输入信号CU的上升沿 如果计数器值小于999 计数器加1 在减计数器输入信号CD的上升沿 如果计数器值大于0 计数值减1 如果两个计数输入均为上升沿 两条指令均被执行 计数值保持不变 计数值大于0时输出信号Q为1 计数值为0时 Q亦为0 如果在设置计数器时CU或CD输入为1 即使信号没有变化 下一扫描周期也会计数 图4 50加减计数器梯形图方块 4 5 3CPU的时钟存储器在S7系列PLC的CPU的位存储器M中 可以任意指定一个字节 如MB100作为时钟脉冲存储器 当PLC运行时 MB100的各个位能周期性地改变二进制值 即产生不同频率或周期的时钟脉冲 时钟存储器字节产生的时钟脉冲与存储器位的关系见表4 11 表4 11时钟脉冲与存储器位的关系 图4 51硬件配置画面 图4 52选择CPU模板 图4 53设置时钟存储器 例4 12 时钟存储器与计数器的应用 当定时器不够用时 可以将计数器扩展为定时器 图4 54中给出了用减计数器扩展定时器的控制程序 程序中使用了CPU的时钟存储器 设置MB10为时钟存储器 由表4 11可知M10 0的变化周期为0 1s 图4 54减计数器扩展定时器的控制程序4 6数据处理指令数据处理指令包括数据传送指令与数据转换指令 其中输出传送包括数据装入与传送指令 4 6 1装入和传送指令装入 L Load 指令和传送 T Transfer 指令用于在存储区之间或存储区与过程输入 过程输出之间交换数据 CPU执行这些指令不受逻辑操作结果RLO的影响 数据装入L和数据传送T指令通过累加器进行数据交换 累加器是CPU中的一种专用寄存器 可以作为 缓冲器 数据的传送和交换一般是通过累加器进行的 而不是在存储区直接进行 在S7 300中 有两个32位的累加器 累加器1和累加器2 当执行装入指令L时 是将源操作数装入累加器1中 而累加器原有的数据移入累加器2中 累加器2中原有的内容被覆盖 当执行传送指令T时 是将累加器1中的内容写入目的存储区中 累加器的内容保持不变 L和T指令可以对字节 8位 字 16位 双字 32位 数据进行操作 当数据长度小于32位时 数据在累加器1中右对齐 低位对齐 其余各位填0 装入指令与传送指令见表4 12 表4 12装入指令与传送指令表 4 6 2梯形图中方块传送指令在梯形图中 用MOVE功能框图表示装入和传送指令 指令框的输入端在左边 输出端在右边 能传送数据长度为8位 16位或32位的所有基本数据类型 如果允许输入端EN为1 则允许执行传送操作 使输出OUT等于输入IN 并使允许输出端ENO为1 如果允许输入端EN为0 则不进行传送操作 并使允许输出端ENO为0 梯形图传送指令及操作数见表4 13 表4 13传送指令梯形图及操作数 例4 13 当输入I0 2为1时 执行传送操作 将MW20的内容传送到DBW20 且使输出Q4 0为1 梯形图控制程序如图4 55 图4 55传送指令梯形图控制程序4 6 2转换指令转换指令是将累加器1中的数据进行数据类型转换 转换的结果仍存放在累加器1中 STEP7能够实现的转换操作有 BCD码和整数到其他类型转换指令 整数和实数的变换指令 实数取整指令 累加器1调整指令 1 BCD和整数的转换 见表4 14 表4 14BCD和整数的转换 例4 14 如果输入I0 1为1 则将MD0的内容以7位BCD码的格式装入累加器1 并将其转换为长整数 存放到MD10 如果转换不执行 则输出Q4 0为1 梯形图控制程序如图4 56所示 4 7运算指令STEP7的运算指令包括算数运算指令 字逻辑运算指令和比较指令 4 7 1算数运算指令算术运算指令包括整数 INT 运算指令 双整数 DINT 运算指令和实数 REAL 运算指令 无论是哪种数据类型均有以下四种运算指令 1 加法运算指令ADD2 减法运算指令SUB3 乘法运算指令MUL4 除法运算指令DIV 整数 双整数以及实数在指令中的简写分别为I DI R 因此由指令的名称可以判断指令的功能 例如ADD R 表示实数指令加法指令 DIV DI 表示双整数除法指令 MUL I 表示整数乘法指令 表4 15给出了算数运算的方框图指令 图中的EN为使能输入端 ENO为使能输出端 IN1和IN2为操作数输入端 OUT为运算结果输出端 在加减法指令中 IN1 IN2 OUT IN1 IN2 OUT在乘除法指令中 IN1 IN2 OUT IN1 IN2 OUT表4 15算数运算的方框图指令 在图4 57中 如果I0 6为1 MD2中的双整数除以MD6中的双整数 运算结果传送到MD10 如果运算未能成功地完成 则状态字的OV和OS位为1 且使ENO为0 Q4 1为1状态 若运算成功地完成 则状态字的OV被清0 OS位保持原状态不变 且使RLO为1 图4 57整数除法指令 例4 15 压力变送器的量程为0 10Mpa 输出信号为4 20mA S7 300的模拟量输入模块的量程为4 20mA 转换后的数字量为0 27468 设转换后的数字为N 试求以kPa为单位的压力值 解 0 10MPa 0 10000kPa 对应转换后的数字0 27468 转换公式为P 10000 N 27468k

温馨提示

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

评论

0/150

提交评论