




已阅读5页,还剩207页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章STEP7编程技术 3 1STEP7中的块 在STEP7软件中主要有以下几种类型的块 组织块 OB OrganizationBlock 功能 FC Function 功能块 FB FunctionBlock 系统功能 SFC SystemFunction 系统功能块 SFB SystemFunctionBlock 背景数据块 DB InstanceDataBlock 共享数据块 DB ShareDataBlock 3 1 1组织块OB 启动组织块循环执行的程序组织块定期执行的程序组织块事件驱动执行的程序组织块 1 启动组织块 1 OB100为完全再启动类型 暖启动 启动时 过程映像区和不保持的标志存储器 定时器及计数器被清零 保持的标志存储器 定时器和计数器以及数据块的当前值保持原状态 执行OB100 然后开始执行循环程序OB1 一般S7 300PLC都采用此种启动方式 2 OB101为再启动类型 热启动 启动时 所有数据 无论是保持型和非保持型 都将保持原状态 并且将OB101中的程序执行一次 然后程序从断点处开始执行 剩余循环执行完以后 开始执行循环程序 热启动一般只有S7 400具有此功能 3 OB102为冷启动方式 CPU318 2和CPU417 4具有冷启动型的启动方式 冷启动时 所有过程映像区和标志存储器 定时器和计数器 无论是保持型还是非保持型 都将被清零 而且数据块的当前值被装载存储器的原始值覆盖 然后将OB102中的程序执行一次后执行循环程序 2 循环执行的程序组织块 OB1是循环执行的组织块 其优先级为最低 PLC在运行时将反复循环执行OB1中的程序 当有优先级较高的事件发生时 CPU将中断当前的任务 去执行优先级较高的组织块 执行完成以后 CPU将回到断点处继续执行OB1中的程序 并反复循环下去 直到停机或者是下一个中断发生 一般用户主程序写在OB1中 3 定期的程序执行组织块 OB10 OB11 OB17为日期中断组织块 通过日期中断组织块可以在指定的日期时间执行一次程序 或者从某个特定的日期时间开始 间隔指定的时间 如一天 一个星期 一个月等 执行一次程序 OB30 OB31 OB38为循环中断组织块 通过循环中断组织块可以每隔一段预定的时间执行一次程序 循环中断组织块的间隔时间较短 最长为1分钟 最短为1毫秒 在使用循环中断组织块时 应该保证设定的循环间隔时间大于执行该程序块的时间 否则CPU将出错 4 事件驱动的程序执行组织块 延时中断组织块硬件中断组织块异步错误组织块同步错误组织块 延时中断组织块 OB20 OB27 延时中断 当某一事件发生后 延时中断组织块 OB20 将延时指定的时间后执行 OB20 OB27只能通过调用系统功能SFC32而激活 同时可以设置延时时间 硬件中断组织块 OB40 OB47 硬件中断 一旦硬件中断事件发生 硬件中断组织块OB40 OB47将被调用 硬件中断可以由不同的模块触发 对于可分配参数的信号模块DI DO AI AO等 可使用硬件组态工具来定义触发硬件中断的信号 对于CP模块和FM模块 利用相应的组态软件可以定义中断的特性 异步错误组织块 OB80 OB87 异步错误中断 异步错误是PLC的功能性错误 它们与程序执行时不同步地出现 不能跟踪到程序中的某个具体位置 在运行模式下检测到一个故障后 如果已经编写了相关的组织块 则调用并执行该组织块中的程序 如果 发生故障时 相应的故障组织块不存在 则CPU将进入STOP模式 同步错误组织块 OB121 OB122 同步错误中断 如果在某特定的语句执行时出现错误 CPU可以跟踪到程序中某一具体的位置 由同步错误所触发的错误处理组织块 将作为程序的一部分来执行 与错误出现时正在执行的块具有相同的优先级 编程错误 例如在程序中调用一个不存在的块 将调用OB121 访问错误 例如程序中访问了一个有故障或不存在的模块 将调用OB122 3 1 2功能FC和功能块FB FC和FB都是用户自己编写的程序块 用户可以将具有相同控制过程的程序编写在FC或FB中 然后在主程序OB1或其他程序块中 包括组织块和功能 功能块 调用FC或FB FC或FB相当于子程序的功能 都可以定义自己的参数 1 FC和FB的变量声明表的差别 2 FC和FB参数赋值不同 FC没有自己的背景数据块FB有自己的背景数据块FC的参数必须指定实参FB的参数可根据需要决定是否指定实参 3 1 3系统功能SFC和系统功能块SFB SFC和SFB是预先编好的可供用户调用的程序块 它们已经固化在S7PLC的CPU中 其功能和参数已经确定 一台PLC具有哪些SFC和SFB功能 是由CPU型号决定的 具体信息可查阅CPU的相关技术手册 通常SFC和SFB提供一些系统级的功能调用 如通讯功能 高速处理功能等 注意 在调用SFB时 需要用户指定其背景数据块 CPU中不包含其背景数据块 并确定将背景数据块下载到PLC中 3 1 4背景数据块和共享数据块 背景DB是和某个FB或SFB相关联 其内部数据的结构与其对应的FB或SFB的变量声明表一致 共享DB的主要目的是为用户程序提供一个可保存的数据区 它的数据结构和大小并不依赖于特定的程序块 而是用户自己定义 需要说明的是 背景DB和共享DB没有本质的区别 它们的数据可以被任何一个程序块读写 3 2STEP7的程序结构和编程语言 STEP7的程序结构可分为以下三类 1 线性程序结构2 分块程序结构3 结构化程序结构编程语言 三种基本编程语言 1 梯形图LAD2 语句表STL3 功能图FBD 3 3数据类型 数据是程序处理和控制的对象 在程序运行过程中 CPU处理的一串二进制符号所代表的意义是由数据类型决定的 数据类型决定了数据的属性 例如数据长度 取值范围等 STEP7中的数据可分为以下三大类 基本数据类型复合数据类型参数数据类型 基本数据类型 一 位 BOOL 字节 BYTE 字 WORD 双字 DOUBLEWORD 整数 INT 双整数 DOUBLEINT 浮点数 REAL 基本数据类型 二 S5TIME SIMATIC时间 IEC时间 TIME IEC日期 date 日计时 TIME OF DAY 字符 CHAR 3 3 2复杂数据类型 日期时间数据类型 Data And Time 字符串类型 String 数组类型Array结构 STRUCT 用户定义类型 UDT 3 3 3参数数据类型 参数数据类型是一类用于功能FC或功能块FB的数据类型 主要包括以下两种 Pointe指针类型6字节指针类型 传递数据块号和数据地址Any指针类型10字节指针类型 传递数据块号 数据地址 数据数量以及数据类型 3 4S7的系统存储区和寻址方式 S7的系统存储区集成在CPU中 不能被扩展 系统存储区根据功能分为不同的区域供用户使用 S7的寻址方式为 符号地址寻址绝对地址寻址 3 4 1系统存储区 输入过程暂存区 I 输出过程暂存区 Q 位存储区 M 外部输入输出 PI PQ 计时器 T 计数器 C 数据块 DB 局部数据 L 3 4 2绝对地址寻址 位寻址字节寻址字寻址双字寻址 位寻址 位寻址是最小存储单元的寻址方式 寻址时 采用以下结构 存储区关键字 字节地址 位地址 例如 Q10 3Q 表示输出过程暂存区 10 表示第十个字节 字节地址从0开始 最大值由该存储区的大小决定 3 表示位地址为3 位地址的取值范围是0 7 字节寻址 字节寻址时 访问一个8位的存储区域 寻址时 采用以下结构进行寻址 存储区关键字 字节的关键字 B 字节地址例如 MB0M 表示位存储区B 表示字节byte0 表示第0个字节 其中最低位的位地址为M0 0 最高位的为M0 7 字节寻址 字寻址 字寻址时 访问一个16位的存储区域 包含两个字节 寻址时采用以下结构 存储区关键字 字的关键字 W 第一字节地址例如 IW10I 表示输入过程暂存区W 表示字word10 表示从第10个字节开始 包括两个字节的存储空间 即IB10和IB11 字寻址 双字寻址 双字寻址时 访问一个32位的存储区域 包含4个字节 寻址时采用以下结构 存储区关键字 字的关键字 D 第一字节地址例如 LD20L 表示局部数据暂存区D 表示字word20 表示从第20个字节开始 包括4个字节的存储空间 包括LB20 LB21 LB22和LB23四个字节 双字寻址 3 4 3符号地址寻址 STEP7中的符号寻址是先给需要使用的绝对地址或参数变量定义符号 然后在程序中使用所定义好的符号进行编程寻址STEP7中可以定义的符号有两种 全局符号局部符号 全局符号和局部符号 全局符号在符号编辑器中定义适用于所有的程序块以双引号表示局部符号在块中的变量申明表中定义所定符号只在本程序块中有效符号前加 号表示 3 5STEP7指令系统 一 S7系列PLC的CPU中的寄存器累加器 Accumulators 地址寻址寄存器 AddressRegister 数据块寄存器 DataBlockRegister 状态字 StatusWord 位逻辑指令 3 5 1S7系列PLC的CPU中的寄存器 状态字 FC 首次检查位 RLO 逻辑操作结果位 STA 状态位OR 或位OV 溢出位OS 溢出存储位CC0和CC1 条件码BR 二进制结果 3 5 2位逻辑指令 常开接点常闭接点输出线圈程序实例 位逻辑指令 中间输出单元信号流反向指令复位线圈置位线圈复位置位触发器和置位复位触发器 位逻辑指令 程序实例对应时序图如下所示 位逻辑指令 时序图 位逻辑指令正跳沿 上升沿 检测指令 位逻辑指令负跳沿 下降沿 检测指令 位逻辑指令 地址正跳沿检测地址负跳沿检测SAVE指令 位逻辑指令地址上升沿检测指令示例 位逻辑指令以上程序的时序图 3 6实训四 PLC控制一台电机正反转 使用S7 300PLC实现一台电动机的正反转控制 控制要求如下 要求能实现电机的正转和反转控制 并能进行正反转的直接切换 另外 还可进行正反向的点动控制 当电机处于正常运行时 点动按钮不起作用 3 6 1实训目的 掌握S7 300PLC输入输出模块接线方法 掌握西门子S7 300PLC编程软件的使用方法和程序输入 下载和调试方法 掌握基本指令的使用方法 3 6 2实训设备 PLC实验板 西门子S7 300 开关按钮5个直流继电器两个 线圈电压为24V 直流电动机一台 额定电压9V 导线若干PC机和STEP7编程调试软件 3 6 3实训内容 系统分析 预习 PLC硬件配置分析控制要求进行输入输出点分配 并根据资源分配画出外部接线图 根据控制要求设计程序 在线调试程序 3 6 4实训步骤 按照输入输出模块接线图以及直流电动机主电路接线图进行外部接线 使用STEP 7软件创建项目 进行硬件配置和参数设置 打开项目中的OB1程序块编写并书写控制程序 下载 并调试程序 打开直流电动机主电路电源进行整体调试 参考硬件配置表 参考输入输出地址分配表 3 7STEP7指令系统 二 定时器指令1 脉冲定时器 SP 2 扩展脉冲定时器 SE 3 开通延时定时器 SD 4 保持型开通延时定时器 SS 5 关断延时定时器 SF 数据装载和传送指令 MOVE 1 脉冲定时器 SP SP 指令是产生指定时间宽度脉冲的定时器 1 脉冲定时器 SP 如图所示程序 定时器定义的时间值为2S 1 脉冲定时器 SP 上图程序对应的时序图如图所示 1 脉冲定时器 SP T1接点控制Q0 0线圈 因此T1接点的状态与Q0 0的状态一致 由时序图可以看出 脉冲定时器每次起动的条件是逻辑位有正跳沿发生 定时器启动计时 T1接点开始输出高电平 1 从时序图可以看到 SP 指令计时的过程中 逻辑位的状态若变为 0 如图3 7 2第7秒处 则定时器停止计时 且输出为 0 因此 脉冲定时器输出的高电平的宽度小于或等于所定义的时间值 1 脉冲定时器 SP 脉冲定时器的方框指令如表所示 1 脉冲定时器 SP 如图所示的程序中 可从MW10和MW12中以不同的格式读出定时器计时T1剩余的时间 1 脉冲定时器 SP 上图所示的程序对应的时序图如图所示 2 扩展脉冲定时器 SE SE 指令与 SP 指令相似 但 SE 指令具有保持功能 2 扩展脉冲定时器 SE 如图所示的程序 2 扩展脉冲定时器 SE 上图所示的程序对应的时序图如图所示 2 扩展脉冲定时器 SE 一旦逻辑位 即I0 0的状态 有正跳沿发生 定时器T0启动 同时输出高电平 1 定时时间到后 输出将自动变成低电平 0 如果定时时间尚未到达 逻辑位的状态就由 1 变为 0 这时定时器仍然继续运行 直到计时完成 这一点是 SE 指令与 SP 指令的不同之处 2 扩展脉冲定时器 SE 扩展脉冲定时器的方框指令如表所示 3 开通延时定时器 SD 开通延时定时器指令 SD 相当于继电器控制系统中的通电延时时间继电器 3 开通延时定时器 SD 如图所示的程序 3 开通延时定时器 SD 上图所示的程序对应的时序图如图所示 3 开通延时定时器 SD SD 对应的方框如表所示 4 保持型开通延时定时器 SS 保持型开通延时 SS 与开通延时定时器 SD 类似 但 SS 指令有保持功能 4 保持型开通延时定时器 SS 保持型开通延时定时器的应用方法如图所示 4 保持型开通延时定时器 SS 上图中的程序对应的时序图如图所示 4 保持型开通延时定时器 SS 保持型开通延时定时器的方框指令如表所示 5 关断延时定时器 SF 关断延时定时器 SF 相当于继电器控制系统中的断电延时时间继电器 也是定时器指令中唯一的一个由下降沿启动的定时器指令 5 关断延时定时器 SF 如图所示的程序 5 关断延时定时器 SF 上图中的程序对应的时序图如图所示 5 关断延时定时器 SF 关断延时计时器的方框指令如下表所示 定时器应用举例 1 使用 SP 或 SE 指令构成脉冲发生器 使用脉冲定时器如图所示的程序可产生周期性变化的脉冲信号 定时器应用举例 上图中的程序对应的时序图如图所示 定时器应用举例 程序又可写成如图所示的程序 定时器应用举例 2 使用 SD 指令产生周期性变化的脉冲信号 使用 SD 指令可以采用下图所示的程序得到脉冲信号 定时器应用举例 上图所示的程序对应的时序图如图所示 定时器应用举例 使用 SD 指令还可以用二分频电路产生一个方波 程序如图所示 定时器应用举例 时序图如图所示 数据装载和传送指令 MOVE 数据装载和传送指令 MOVE 如表所示 数据装载和传送指令 MOVE 如图3 7 20所示程序 3 8实训5 交通信号灯控制 实训目的1 掌握交通信号的工作原理2 熟悉西门子S7 300PLC编程软件的使用方法和程序输入 下载和调试方法3 掌握S7 300PLC定时器的使用方法实训设备1 PLC实验板 西门子S7 300 2 开关按钮1个3 指示灯6个 也可直接使用S7 300PLC输出模块输出指示灯 4 PC机和STEP7编程调试软件实训内容 交通信号灯的控制要求实训步骤 实训内容 交通信号灯的控制要求 交通信号灯模型如图所示 实训内容 交通信号灯的控制要求 控制要求如下 自动开关合上之后 东西绿灯亮8秒灭 黄灯亮3秒之后灭 红灯亮10秒后闪2秒然后绿灯亮 循环 对应东西绿黄灯亮时 南北红灯亮9秒后闪2秒 接着绿灯亮9秒后闪秒灭 黄灯亮3秒 红灯又亮 循环 当断开自动开关时 交通信号灯立刻停止工作 实训内容 交通信号灯的控制要求 根据控制要求画出交通信号灯的时序图如图所示 实训内容 交通信号灯的控制要求 系统分析1 PLC硬件配置 控制系统中的硬件配置如下 实训内容 交通信号灯的控制要求 2 分析控制要求进行输入输出点分配 并根据分配画出外部接线图 实训内容 交通信号灯的控制要求 输入输出模块接线如图所示 实训内容 交通信号灯的控制要求 3 程序设计 设计提示 可先采用SE指令 产生周期为23秒 占空比为11 12的矩形波 再将其分割成所需要的矩形波 参考程序见附录光盘 实训步骤 1 按照输入输出模块接线图以及直流电动机主电路接线图进行外部接线 2 使用STEP 7软件创建项目 并进行硬件配置和参数设置3 打开项目中的OB1程序块编写控制程序4 下载 调试程序 3 9STEP7指令系统 三 移位指令和循环指令控制转移指令及应用比较指令及其应用 移位指令和循环指令 字左移指令SHL W字右移指令SHR W双字左移指令SHL DW双字右移指令SHR DW整数右移指令SHR I双整数右移指令SHR DI循环指令能够将累加器1整个内容逐位向左或者向右循环移位 可使用的循环指令有 双字左循环指令ROL DW双字右循环指令ROR DW 1 字左移指令 当允许输入EN位为高电平 1 时 将执行移位指令 将IN端指令的内容送入累加器1低字中 并左移N端指定的位数 然后写入OUT端指令的目的地址中 1 字左移指令 字左移指令的工作方式如图所示 1 字左移指令 如图所示的程序中 当I0 2的状态为 1 时 CPU把MW2中的数据读入累加器1低字中 并将累加器1低字的内容左移2位 N W 16 2 然后再将移位后的内容写入到MW10中 注意MW2中的内容并没有变化 1 字左移指令 要想在同一个存储字中看到移位的效果 可以将IN和OUT端指定相同的地址 如图所示 1 字左移指令 注意 移位指令是高电平执行 要每次按下I0 2的外部输入按钮 移位指令只执行一次 可以在I0 2的常开接点后加上升沿检测指令 P 将EN端的信号变成只有一个扫描周期的高电平信号 如图所示 2 字右移指令 字右移指令执行时 当允许输入EN的状态为 1 时 将执行移位指令 2 字右移指令 字右移指令工作方式如图所示 2 字右移指令 如图所示的程序 3 双字左移指令 双字左移指令是移位对象是32位 当EN端的为 1 时 CPU将IN端的内容读入累加器1 并将累加器1中的内容整体左移N端指定的位数 移位过程中 按照高位丢失低位补 0 的原则进行 4 双字右移指令 双字右移指令移位的对象是32位 当EN端的状态为 1 时 CPU将IN端指定的内容读入累加器1中 并将累加器1整体右移N端指定的位数 按照低位丢失高位补 0 的原则进行 5 整数右移指令 整数右移指令与字移位指令不同 整数只有右移指令 移位时按照低位丢失 高位补符号位状态的原则 也就是正数高位补 0 负数高位补 1 的原则 5 整数右移指令 整数右移指令工作原理如图所示 6 双整数右移指令 双整数右移指令与整数右移类似 双整数移位对象为32位 7 双字左循环指令 双字左循环指令的循环移位对象为32位 当EN端的状态为 1 时 将执行指令 CPU将IN端指定的内容读入累加器1中 然后将累加器1中的内容循环左移N端指定的位数 并写入OUT端指定的目的地址中 7 双字左循环指令 双字左循环的工作过程如图所示 7 双字右循环指令 7 双字右循环指令 双字右循环指令的工作方式如图所示 控制转移指令及应用 1 转移指令 JMP 2 若非转移指令 JMPN 1 转移指令 JMP 当逻辑位RLO的状态为 1 时 将触发转移指令 程序将直接跳转至标号指定的网路 并从此网路开始顺序执行以下的程序 在转移指令和标号之间的程序将不予执行 1 转移指令 JMP 如图所示程序 1 转移指令 JMP 如图所示程序 2 若非转移指令 JMPN 若非转移指令 JMPN 与转移指令相似 其转移条件是当逻辑位的状态为 0 时 2 若非转移指令 JMPN 如图所示程序 当I0 1的状态为 1 时 跳转条件不成立 CPU将按正常顺序执行程序 当I0 1的状态为 0 时 跳转条件成立 CPU将跳过程序段2 直接执行程序段3的指令 2 若非转移指令 JMPN 使用跳转指令的以下结构 可实现选择性执行程序段的功能 程序如图所示 比较指令及其应用 两个整数的比较 每一整数均为16位 两个双整数的比较 每一双整数均为32位 两个实数的比较 每一实数均为32位 比较类型有以下几种类型 等于 EQ IN1等于 IN2 不等于 NQ IN1不等于 IN2 大于 GT IN1大于 IN2 小于 LT IN1小于 IN2 小于或等于 LE IN1小于或等于 IN2 1 整数等于比较指令 整数比较指令关键字符为I 整数等于比较指令是判断两个正数是否相等 如果相等 则逻辑结果为 1 如果不相等则逻辑结果为 0 1 整数等于比较指令 如图所示的程序 当MW10中的内容等于23时 Q0 0的状态为 1 否则 Q0 0的状态为 0 1 整数等于比较指令 注意 比较指令的使用接点类似 因此比较指令不能放在逻辑串的最后 如图所示 注意 上图所示程序是一个不完整的程序 不能被保存或下载 比较指令只能放在逻辑串的中间 2 整数不等于比较指令 整数不等于比较指令是指当两个整数不相等时 比较的逻辑结果为 1 而当两个数相等时逻辑结果为 0 这一指令相当于等于比较指令的 非 操作 3 双整数大于比较指令 双整数的关键字为D 大于比较指令是当第一个数值大于第二个数值时 即IN1大于IN2 比较逻辑结果为 1 否则逻辑结果为 0 4 实数小于等于比较指令 实数比较指令的关键字为R 小于等于比较指令是当第一个数值小于或等于第二个数值时 即IN1 IN2时 比较逻辑结果为 1 否则逻辑结果为 0 3 10实训六彩灯循环 实训目的1 掌握移位指令的使用 2 锻炼PLC的程序编制和调试能力实验设备1 PLC实验板 西门子S7 300 2 开关按钮1个3 指示灯6个 也可直接使用S7 300PLC输出模块输出指示灯 4 PC机和STEP7编程调试软件实验内容实验步骤 实验内容 用西门子公司 系列的PLC实现一个 个彩灯循环闪烁的控制系统 控制要求如下 控制项目1 单向手动控制 要求通过按钮SB1使得16灯泡按照HL1 HL2 HL16的顺序亮灭 移到最高位HL16以后 再回到HL1 重复循环下去 按下停止按钮SB2后 彩灯熄灭 停止工作 实验内容 控制项目2 往复手动控制 要求通过按钮SB1使得16灯泡按照HL1 HL2 HL16的顺序亮灭 移到最高位HL16以后 再按HL16 HL15 HL2 HL1的顺序亮灭 如此反复循环下去 按下停止按钮SB2后 彩灯熄灭 停止工作 实验内容 控制项目3 单向自动控制 彩灯亮灭的顺序与实验1要求相同 但要求彩灯能自动循环 彩灯移动的时间间隔为1秒钟 可根据实际情况修改 实验内容 控制项目4 往复自动控制 彩灯亮灭的顺序与实验2要求相同 但要求彩灯能自动循环 彩灯移动的时间间隔为2秒钟 可根据实际情况修改 实验内容 控制项目5 要求按下启动按钮SB1彩灯按照从小到大 HL1 HL2 HL16 的顺序自动亮灭 第一次时间间隔为1秒钟 第二次移动的时间间隔为2秒钟 第三次移动的时间间隔为3秒钟 移动三次后完成一个循环 重复循环 按下停止按钮SB2后彩灯全灭 系统分析 1 PLC硬件配置控制系统中的硬件配置如下 系统分析 2 分析控制要求进行输入输出点分配 并根据分配画出外部接线图 资源分配表如表所示 系统分析 系统分析 输入输出模块接线图 系统分析 3 分析控制要求写出程序清单 实验步骤 1 根据实验要求编写PLC程序2 按照PLC实验线路接线并合上电源3 启动编程软件 编写程序4 进行模拟在线调试 3 11STEP7指令 四 计数器指令算数运算指令转换指令字逻辑指令 计数器指令 计数器置初值指令 SC 加法计数器线圈 CU 减法计数器线圈 CD 1 计数器置初值指令 SC 当逻辑位RLO有正跳沿时 计数器置初值线圈将预置值装入指定计数器中 若RLO位的状态没有正跳沿发生 则计数器的值保持不变 2 加法计数器线圈 当逻辑位RLO有正跳沿时 加法计数器线圈使指定计数器的值加1 如果RLO位的状态没有正跳沿发生 或者计数器数值已经达到最大值999 则计数器的值保持不变 3 减法计数器线圈 当逻辑位RLO有正跳沿时 减法计数器线圈使指定计数器的值减1 如果RLO位的状态没有正跳沿发生 或者计数器数值已经达到最小值0 则计数器的值保持不变 计数器指令的使用举例 如图所示 计数器指令的使用举例 当I0 0的状态由 0 变为 1 时 SC 指令将数值23装入计数器C0中 当I0 1的状态由 0 变为 1 时 计数器C0的值将减1 当I0 2的状态由 0 变为 1 时 计数器C0的值将加1 计数器的位状态与计数器值的关系如表所示 计数器指令的使用举例 如图所示 若I0 3的状态为 1 则计数器C0所计的数值立刻变为零 由于 R 指令是高电平执行 因此若I0 3的状态保持 1 则计数器C0始终处于清零状态而无法正常使用 用户在使用指令时 应注意指令的执行方式 4 可逆计数器S CUD 4 可逆计数器S CUD 可以看到 可逆计数器方框指令可以完成计数器的加 CU 减 CD 计数和置初值 S PV 以及计数器值清零 R 等功能 还可以将计数器当前值以不同的格式输出 整数格式 CV 和BCD格式 CV BCD 计数器的状态可以Q端输出 也可以由计数器的触点输出 4 可逆计数器S CUD 例如 前面例子中两图所示的程序可以由下图所示的程序代替 4 可逆计数器S CUD 使用计数器时应该注意下面几点问题 1 计数器指令的加 减计数输入端以及预置值输入端均为上升沿执行 即逻辑位必须有从 0 到 1 的变化时 指令才会执行 4 可逆计数器S CUD 2 计数器的预置的初始值及PV端的数据格式为BCD码二 十进制格式 如果在PV端使用地址如MW10 而不是直接数C 应该保证在执行置初值指令时 地址MW10中保存的数据满足BCD码格式 否则执行程序时 CPU将会出错 4 可逆计数器S CUD 3 计数器触点的状态由计数器的值决定 如果计数值等于零 则计数器触点的状态为低电平 0 如果计数值不等于零 无论等于几 则计数器触点的状态为高电平 1 算数运算指令 加法运算指令ADD减法运算指令SUB乘法运算指令MUL除法运算指令DIV 1 整数加法运算ADD I 1 整数加法运算ADD I 程序示例如图所示 1 整数加法运算ADD I 如图所示的程序中 1 整数加法运算ADD I 若I0 0后面没有边沿检测指令 程序段1如图所示 2 整数减法运算SUB I 减法指令运算规则为 IN1 IN2 OUT 3 整数乘法运算MUL I 允许输入EN的状态为 1 时 启动乘法运算指令 将IN1乘以IN2 并将计算结果送至OUT端 如果计算结果正确 ENO端输出为 1 4 整数除法运算DIV I 除法指令的运算规则为 IN1 IN2 OUT 4 整数除法运算DIV I 例如如图所示的程序 运算结果为6 5 双整数取余数指令MOD DI 双整数取余数指令 是将两个双整数进行除法运算 并将余数作为结果送到OUT端 5 双整数取余数指令MOD DI 例如27与4两个整数相处的余数为3 利用如图所示的程序可以计算出来 转换指令 BCD转换为整数 BCD I整数转换为BCD I BCD整数转换为双整数 I DIBCD转换为双整数 BCD DI双整数转换为BCD DI BCD双整数转换为实数 DI R整数二进制码的位取反 INV I双整数二进制码的位取反 INV DI 转换指令 整数的二进制补码 NEG I双整数的二进制补码 NEG DI实数求反 NEG R实数四舍五入为双整数 ROUND实数舍去小数部分为双整数 TRUNC实数向上取整为双整数 CEIL实数向下取整为双整数 FLOOR 1 BCD转换为整数BCD I BCD I指令是将IN指定的内容以BCD码二 十进制格式读出 并将其转换为整数格式 输出到OUT端 1 BCD转换为整数BCD I 注意 如果IN端指定的内容超出BCD码的范围 例如四位二进制数出现1010 1111的几种组合 则执行指令时将会发生错误 使CPU进入STOP方式 或者调用编程错误组织块OB121 如果OB121被编程且下载到PLC中 1 BCD转换为整数BCD I 如图所示的程序中 2 整数转换为BCD I BCD I BCD指令是将IN端指定的内容以整数的格式读出 然后将其转换为BCD码格式输出到OUT端 2 整数转换为BCD I BCD 在使用I BCD指令可能会遇到以下情况 1 IN端的整数大于999 这时 PLC不停机 仍然正常运行 由于字的BCD码最大只能表示C 999 最高四位为符号位 若IN端的内容大于999 CPU将IN端的内容直接送到OUT端输出 不经过I BCD的转换 这时OUT输出的内容可能超出BCD码的范围 另外OUT端的内容若为BCD码 也有可能是超过999的整数转换出来的 例如整数2457通过I BCD指令以后 OUT的值为C 999 因此在使用I BCD指令时应该保证整数的小于等于999 2 整数转换为BCD I BCD 如图所示程序段1 Network1 中 由于整数2457的二进制码为2 0000 1001 1001 1001 因此MW10与MW12中的内容相同 以二进制格式表示均为2 0000 1001 1001 1001 2 整数转换为BCD I BCD 2 IN端的整数为负整数时 转换出的BCD码最高四位为 1 如下图中程序段2所示 MW14中的内容以二进制表示为2 1111 1001 1001 1001 但MW16中的内容为整数 2457的二进制码 负整数以正整数二进制补码形式保存 为2 1111 0110 0110 0111 因此 应保证IN端的内容不小于 999 3 整数二进制码的位取反运算 INV I INV I指令是将IN的指定的内容与W 16 FFFF作逻辑 或 运算 其结果是IN端输入的状态与OUT输出的状态每一位都相反 3 整数二进制码的位取反运算 INV I 如图所示的程序中 MW20中的内容与MW22中的内容完全相反 MW20为2 0000 0000 1110 1110 而MW22中为2 1111 1111 0001 0001 4 整数的二进制补码 NEG I NEG I是将IN端的内容进行补码运算 将IN端的内容每一位取反以后再加1 其结果如果以整数格式读出的话 即为整数值取反 5 实数四舍五入为双整数 ROUND ROUND指令是将实数进行四舍五入取整后转换成双整数的格式 6 实数舍去小数部分为双整数 TRUNC TRUNC指令是将实数舍弃小数部分 并将其转换为双整数格式 7 实数向上取整为双整数 CEIL CEIL指令是将实数向上取整 结果为大于指定实数的最小双整数 8 实数向下取整为双整数 FLOOR FLOOR指令是将实数向下取整 结果为小于指定实数的最大双整数 字逻辑指令 字与字相 与 指令 WAND W双字与双字相 与 指令 WAND DW字与字相 或 指令 WOR W双字与双字相 或 指令 WOR DW字与字相 异或 指令 WXOR W双字与双字相 异或 指令 WXOR DW 1 字与字相 与 指令 WAND W 当EN端状态为 1 时 执行指令 这一指令根据 与 真值表将IN1端和IN2端的内容逐位组合 并将结果送至OUT端指定的地址 1 字与字相 与 指令 WAND W 如图所示的程序 字逻辑 与 指令的操作结果 MW12中的内容 为2 0000 0000 0000 1001 2 字与字相 或 指令 WOR W 当EN端状态为 1 时 执行字 或 指令 这一指令根据 或 真值表将输入IN1和IN2端指定的内容逐位组合 并将结果送至OUT端指定的地址 3 字与字相 异或 指令 WXOR W 当EN端状态为 1 时 执行字 异或 指令 这一指令根据 异或 真值表将输入IN1和IN2端指定的内容逐位组合 并将结果送至OUT端指定的地址 3 12实训7仓库存储控制系统 实训目的实训设备实训内容 仓库存储控制系统实训步骤 实训目的 1 掌握计数器指令的使用方法 2 掌握算术指令的使用方法 3 掌握转换指令的使用方法 实训设备 1 PLC实验板 西门子S7 300 2 数字量给定板3 数字量输出板4 导线5 PC机和STEP7编程调试软件 实训内容 仓库存储控制系统 仓库存储控制系统模型如图所示 实训内容 仓库存储控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东工资管理自考试题及答案
- 乐理补考试题及答案
- 快速加油考试题及答案
- 口腔辞职考试题及答案
- 客房清扫考试题及答案
- 考古测绘考试题及答案
- 铝电解操作工设备调试考核试卷及答案
- 2025年教师招聘之《幼儿教师招聘》试题一及答案详解【夺冠】
- 课件文案简短句子
- 金属铸造考试题及答案
- 图书馆培训管理制度
- 2025船舶光租合同范本
- 2025年新高考1卷(新课标Ⅰ卷)语文试卷(含答案)
- 高中教科研课题:《新课程背景下高中语文情境教学改革研究》课题工作汇报
- 知到智慧树网课:病理生理学(南华大学)章节测试满分答案
- 农村建设工匠考试试题及答案
- 《系统性红斑狼疮疾病解析》课件
- 职业技术学院2024级药膳与食疗专业人才培养方案
- 《介入治疗技术在临床应用中的进展》课件
- 银行保险机构安全保卫工作自查操作手册
- 大学英语四六级词汇表
评论
0/150
提交评论