S7-200--SMART的功能指令讲解学习

上传人:youn****329 文档编号:132956480 上传时间:2020-05-22 格式:PPTX 页数:49 大小:1.49MB
返回 下载 相关 举报
S7-200--SMART的功能指令讲解学习_第1页
第1页 / 共49页
S7-200--SMART的功能指令讲解学习_第2页
第2页 / 共49页
S7-200--SMART的功能指令讲解学习_第3页
第3页 / 共49页
S7-200--SMART的功能指令讲解学习_第4页
第4页 / 共49页
S7-200--SMART的功能指令讲解学习_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《S7-200--SMART的功能指令讲解学习》由会员分享,可在线阅读,更多相关《S7-200--SMART的功能指令讲解学习(49页珍藏版)》请在金锄头文库上搜索。

1、S7 200SMART的功能指令 4 1功能指令概述4 1 1怎样学习功能指令功能指令分为较常用的指令 与数据的基本操作有关的指令 与PLC的高级应用有关的指令和用得较少的指令 初学功能指令时 首先可以按指令的分类浏览所有的指令 初学者没有必要花大量的时间去熟悉功能指令使用中的细节 应重点了解指令的基本功能和有关的基本概念 应通过读程序 编程序和调试程序来学习功能指令 4 1 2S7 200的指令规约 1 使能输入与使能输出使能输入端EN有能流流入方框指令时 指令才能被执行 EN输入端有能流且指令执行时无错误 则使能输出ENO将能流传递给下一个方框指令或线圈 语句表用AENO指令来产生与方框指

2、令的ENO相同的效果 删除AENO指令后 方框指令将由串联变为并联 2 梯形图中的指令条件输入指令必须通过触点电路连接到左侧母线上 不需要条件的指令必须直接连接在左侧母线上 键入语句表指令时 必须使用英文的标点符号 3 能流指示器双箭头是开路能流指示器 必须解决开路问题 程序段才能成功编译 可将其他梯形图元件附加到ENO端的可选能流指示器 没有在该位置添加元件 程序段也能成功编译 例4 1 用接通延时定时器和比较指令组成占空比可调的脉冲发生器 T37的常闭触点控制它的IN输入端 使T37的当前值按锯齿波变化 比较指令用来产生方波 Q0 0为OFF的时间取决于比较指令第2个操作数的值 2 字符串

3、比较指令字符串比较指令比较ASCII码字符串相等或不相等 常数字符串应是比较触点上面的参数 或比较指令中的第一个参数 3 字节 字 双字和实数的传送传送指令助记符中最后的B W DW 或D 和R分别表示操作数为字节 字 双字和实数 4 字节立即读写指令字节立即读取指令MOV BIR读取IN指定的一个字节的物理输入 但是并不更新对应的过程映像输入寄存器 字节立即写入指令MOV BIW将一个字节的数值写入OUT指定的物理输出 同时更新对应的过程映像输出字节 5 字节 字 双字的块传送指令块传送指令将起始地址为IN的N个连续的存储单元中的数据 传送到从地址OUT开始的N个存储单元 字节变量N 1 2

4、55 6 字节交换指令字节交换指令SWAP用来交换输入字IN的高字节与低字节 应采用脉冲执行方式 4 2 2移位与循环移位指令移位位数N的数据类型为BYTE 1 右移位和左移位指令移位指令将输入IN中的数各位的值向右或向左移动N位后 送给输出OUT指定的地址 移位指令对移出位自动补0 有符号的字和双字的符号位也被移位 如果移位次数非0 溢出 标志位SM1 1保存最后一次被移出的位的值 2 循环右移位和循环左移位指令循环移位指令将输入IN中各位的值向右或向左循环移动N位后 送给输出OUT指定的地址 被移出来的位将返回到另一端空出来的位置 移出的最后一位的数值存放在溢出标志位SM1 1 如果移动的

5、位数N大于允许值 执行循环移位之前先对N进行求模运算 例如字循环移位时 将N除以16后取余数 得到的有效移位次数为0 15 如果为0则不移位 符号位也被移位 3 移位寄存器指令下图中的14位移位寄存器由V30 0 V31 5组成 在I0 3的上升沿 I0 4的值从移位寄存器的最低位V30 0移入 寄存器中的各位左移一位 最高位V31 5的值被移到溢出标志位SM1 1 N为 14时 I0 4的值从最高位V31 5移入 寄存器中的各位右移一位 从最低位V30 0移到溢出标志位SM1 1 4 2 3数据转换指令1 标准转换指令除了解码 编码指令之外的10条指令属于标准转换指令 输入参数IN指定的数据

6、转换后保存到输出参数OUT指定的地址 BCD码与整数相互转换的指令中 整数的有效范围为0 9999 如果转换后的数值超出输出的允许范围 溢出标志位SM1 1被置为ON 2 段码指令七段显示器的D0 D6段分别对应于段码指令输出字节的第0位 第6位 某段应亮时输出字节中对应的位为1 反之为0 段码指令很少使用 3 计算程序中的数据转换压力变送器的量程为0 10MPa 输出信号为0 10V AI模块的量程为0 10V 转换后的数字量为0 27648 设转换后的数字为N 压力值转换公式为P 10000 N 27648 0 36169 N kPa 4 解码指令与编码指令解码指令DECO根据输入字节IN

7、的最低4位表示的位号 将输出字OUT对应的位置为1 输出字的其他位均为0 16 0008 2 0000000000001000 编码指令ENCO将输入字IN中的最低有效位 为1的位 的位编号写入输出字节OUT的最低4位 16 0210 2 0000001000010000 存储器填充指令FILL用输入参数IN指定的字值填充从地址OUT开始的N个连续的字 4 2 5实时时钟指令1 用编程软件读取与设置实时时钟的日期和时间单击 PLC 菜单功能区的 设置时钟 按钮 打开 CPU时钟操作 对话框 可以读取PC PLC的时钟 修改和下载日期时间 2 读取实时时钟指令READ RTC从CPU的实时时钟读

8、取当前日期和时间 8字节时间缓冲区依次存放年的低2位 月 日 时 分 秒 0和星期的代码 星期日为1 日期和时间的数据类型为字节型BCD码 3 设置实时时钟指令SET RTC将8字节时间日期值写入CPU的实时时钟 例4 2 用实时时钟定时控制设备 LDSM0 0TODRVB70 小时分钟值在VW73LDW VW73 VW78 VW78中是起始时 分值AW VW73 VW80 VW80中是结束时 分值 Q0 2 在设置的时间范围内 Q0 2为1状态 4 3数学运算指令4 3 1四则运算指令与递增递减指令1 加减乘除指令梯形图IN1 IN2 OUT IN1 IN2 OUT IN1 IN2 OUT

9、IN1 IN2 OUT语句表IN1 OUT OUT OUT IN1 OUT IN1 OUT OUT OUT IN1 OUT指令影响SM1 0 零标志 SM1 1 溢出标志 SM1 2 负数标志 和SM1 3 除数为0 MUL将两个16位整数相乘 产生一个32位乘积 DIV指令将两个16位整数相除 运算结果的高16位为余数 低16位为商 例4 3 压力变送器的压力计算公式为P 10000 N 5530 22118 kPa N为整数 MUL指令得到的乘积为双整数 用右键菜单命令强制AIW16 2 递增与递减指令梯形图中IN 1 OUT 语句表中OUT 1 OUT 4 3 2浮点数函数运算指令浮点数

10、函数运算指令的输入参数IN与输出参数OUT均为实数 1 三角函数指令输入值是以弧度为单位的浮点数 角度值乘以 180转换为弧度值 2 自然对数和自然指数指令3 平方根指令将正实数开平方 4 3 3逻辑运算指令1 取反指令取反指令将多位二进制数逐位取反 各位由0变为1 由1变为0 2 逻辑运算指令字节 字 双字 与 运算时 如果两个操作数的同一位均为1 运算结果的对应位为1 否则为0 或 运算时如果两个操作数的同一位均为0 运算结果的对应位为0 否则为1 异或 ExclusiveOr 运算时如果两个操作数的同一位不同 运算结果的对应位为1 否则为0 3 逻辑运算指令应用举例用字节逻辑 或 运算将

11、QB0的最低3位置为1 其余各位保持不变 QB0的某一位与1作 或 运算 运算结果为1 与0作 或 运算 运算结果不变 IW4的低12位用来读取3位拨码开关的BCD码 IW4的高4位另作他用 16 0FFF的最高4位二进制数为0 低12位为1 与IW4作 与 运算后 VW12的低12位与IW4的低12位的值相同 VW12的高4位为0 4 4程序控制指令4 4 1跳转指令1 跳转与标号指令JMP线圈通电时 跳转条件满足 跳转指令使程序流程跳转到对应的标号处 JMP与LBL指令的操作数n为常数0 255 只能在同一个程序块中跳转 I0 3的常开触点断开时 跳转条件不满足 顺序执行下面的指令 I0

12、3的常开触点接通时 跳转到标号LBL2处 不执行第二个程序段 2 跳转指令对定时器的影响在各定时器正在定时时跳转 100ms定时器停止定时 当前值保持不变 10ms和1ms定时器继续定时 定时时间到时跳转区外的触点也会动作 停止跳转时100ms定时器继续定时 3 跳转对功能指令的影响未跳转时INC B指令使VW2每秒加1 跳转条件满足时VW2的值保持不变 例4 6 用跳转指令实现图4 28中的流程图的要求 4 4 2循环指令1 单重循环驱动FOR指令的逻辑条件满足时 反复执行FOR与NEXT之间的指令 执行到NEXT指令时 INDX的值加1 如果INDX的值小于等于结束值FINAL 返回去执行

13、FOR与NEXT之间的指令 如果INDX的值大于结束值 循环终止 例4 7 在I0 5的上升沿 求VB130 VB133这4个字节的异或值 用VB134保存 首先将VB134清0 并设置地址指针AC1的初始值 第一次循环将指针AC1所指的VB130与VB134异或 然后将指针值加1 指针指向VB131 为下一次循环的异或运算做好准备 VB130 VB133同一位中1的个数为奇数时 VB134对应位的值为1 反之为0 2 多重循环循环最多可以嵌套8层 在I0 6的上升沿 执行10次外层循环 如果I0 7为ON 每执行一次外层循环 将执行8次内层循环 执行完后 VW10的值增加80 4 4 3其他

14、指令1 条件结束指令与条件停止指令条件结束指令END的逻辑条件满足时终止当前的扫描周期 条件停止指令STOP使CPU从RUN模式切换到STOP模式 2 GET ERROR 获取非致命错误代码 指令很少使用 3 监控定时器复位指令T32等组成一个脉冲发生器 从I0 4的上升沿开始 M0 2输出一个宽度等于T32预设值的脉冲 在脉冲期间反复执行JMP指令 因此扫描时间略大于T32的预设值 扫描周期超过500ms时 CPU自动切换到STOP模式 可用WDR指令重新触发监控定时器 以扩展允许使用的扫描时间 4 5局部变量与子程序4 5 1局部变量1 局部变量与全局变量每个程序组织单元 POU 均有由6

15、4字节局部 L 存储器组成的局部变量 局部变量只在它被创建的POU中有效 全局符号在各POU中均有效 局部变量有以下优点 1 尽量使用局部变量的子程序易于移植到别的项目 2 同一级POU的局部变量使用公用的物理存储区 3 局部变量用来在子程序和调用它的程序之间传递输入参数和输出参数 2 查看局部变量表单击 视图 菜单的 组件 按钮 再单击打开的下拉式菜单中的 变量表 3 局部变量的类型临时变量 TEMP 是暂时保存在局部数据区中的变量 主程序或中断程序只有TEMP变量 IN 输入参数 用来将调用它的POU提供的数据值传入子程序 OUT 输出参数 用来将子程序的执行结果返回给调用它的POU IN

16、 OUT 输入 输出参数 的初始值由调用它的POU传送给子程序 并用同一参数将子程序的执行结果返回给调用它的POU 每个子程序最多可以使用16个输入 输出参数 4 在局部变量表中增加和删除变量子程序中变量名称前面的 表示局部变量 是软件自动添加的 5 局部变量的地址分配由编程软件自动分配局部变量的地址 6 局部变量数据类型检查局部变量表中指定的数据类型应与调用它的POU的变量的数据类型匹配 4 5 2子程序的编写与调用1 子程序的作用子程序将程序分成容易管理的小块 使程序结构简单清晰 易于查错和维护 可以多次调用同一个子程序 使用子程序可以减少扫描时间 2 子程序中的定时器停止调用子程序时 如果子程序中的定时器正在定时 100ms定时器将停止定时 当前值保持不变 重新调用时继续定时 1ms 10ms定时器继续定时 定时时间到时 其常开触点可以在子程序之外起作用 3 子程序举例子程序的重命名 生成局部变量 编写程序 4 子程序的调用 将指令树中的子程序 拖 到程序编辑器中需要的位置 如果用语句表编程 子程序调用指令的格式为CALL子程序名称 参数1 参数2 参数nn 1 16 在语句表中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号