《S7-200 PLC基础教程 第3版 教学课件 ppt 作者廖常初 课件200基础第6章》由会员分享,可在线阅读,更多相关《S7-200 PLC基础教程 第3版 教学课件 ppt 作者廖常初 课件200基础第6章(50页珍藏版)》请在金锄头文库上搜索。
1、第6章 S7-200 的功能指令,6.1 功能指令概述 6.1.1 功能指令的类型及其学习方法 功能指令分为较常用的指令、与数据的基本操作有关的指令、与PLC的高级应用有关的指令和用得较少的指令。 初学功能指令时,首先可以按指令的分类浏览所有的指令。初学者没有必要花大量的时间去熟悉功能指令使用中的细节,应重点了解指令的基本功能和有关的基本概念。应通过读程序、编程序和调试程序来学习功能指令。 6.1.2 S7-200 的指令规约,1使能输入与使能输出 使能输入端EN有能流流入方框指令时,指令才能被执行。 EN输入端有能流且指令执行时无错误,则使能输出ENO将能流传递给下一个方框指令或线圈。 语句
2、表用AENO指令来产生与方框指令的ENO相同的效果。删除AENO指令后,方框指令将由串联变为并联。,2梯形图中的指令 条件输入指令必须通过触点电路连接到左侧母线上。不需要条件的指令必须直接连接在左侧母线上。 3能流指示器 必须解决开路问题,网络才能成功编译。ENO端的可选能流指示器表示可将其他梯形图元件附加到该位置。它不影响编译。,6.2 数据处理指令 6.2.1 比较指令与数据传送指令 1字节、整数、双整数和实数比较指令 比较触点中间的B、I、D、R、S分别表示无符号字节、有符号整数、有符号双整数、有符号实数和字符串比较。满足比较关系式给出的条件时,比较指令对应的触点接通。字符串比较指令的比
3、较条件“x”只有=和。 整数和双整数比较指令比较两个有符号数。IN1在触点的上面,IN2在触点下面。,【例6-1】 用接通延时定时器和比较指令组成占空比可调的脉冲发生器。 M0.2和T33组成脉冲发生器,T33的当前值按锯齿波变化。比较指令用来产生脉冲宽度可调的方波,Q0.0为OFF的时间取决于比较指令第2个操作数的值。 2字符串比较指令 字符串比较指令比较ASCII码字符串相等或不相等。常数字符串应是比较触点上面的参数,或比较指令中的第一个参数。,3字节、字、双字和实数的传送 传送指令助记符中最后的B、W、DW(或D)和R分别表示操作数为字节、字、双字和实数。 4字节、字、双字的块传送指令
4、块传送指令将起始地址为IN的N个连续的存储单元中的数据,传送到从地址OUT开始的N个存储单元,字节变量N = 1255。,5字节立即读写指令 字节立即读取指令MOV_BIR读取IN指定的一个字节的物理输入,但是并不更新对应的过程映像输入寄存器。 字节立即写入指令MOV_BIW将一个字节的数值写入OUT指定的物理输出,同时更新对应的过程映像输出字节。 6字节交换指令 字节交换指令SWAP用来交换输入字IN的高字节与低字节。应采用脉冲执行方式。,6.2.2 移位与循环移位指令 移位位数N的数据类型为BYTE。 1右移位和左移位指令 移位指令将输入IN中的数各位的值向右或向左移动N位后,送给输出OU
5、T指定的地址。移位指令对移出位自动补0,有符号的字和双字的符号位也被移位。 如果移位次数非0,“溢出”标志位SM1.1保存最后一次被移出的位的值。,2循环右移位和循环左移位指令 循环移位指令将输入IN中各位的值向右或向左循环移动N位后,送给输出OUT指定的地址。被移出来的位将返回到另一端空出来的位置。移出的最后一位的数值存放在溢出标志位SM1.1。 如果移动的位数N大于允许值,执行循环移位之前先对N进行求模运算。例如字循环移位时,将N除以16后取余数,得到的有效移位次数为015。如果为0则不移位。符号位也被移位。,3移位寄存器指令 下图中的14位移位寄存器由V30.0V31.5组成,在I0.3
6、的上升沿,I0.4的值从移位寄存器的最低位V30.0移入,寄存器中的各位左移一位,最高位V31.5的值被移到溢出标志位SM1.1。N为14时,I0.4的值从最高位V31.5移入,寄存器中的各位右移一位,从最低位V30.0移到溢出标志位SM1.1。,6.2.3 数据转换指令 1标准转换指令 输入参数IN指定的数据转换后保存到输出参数OUT指定的地址。BCD码与整数相互转换的指令中,整数的有效范围为09999。 如果转换后的数值超出输出的允许范围,溢出标志位SM1.1被置为ON。 2段码指令 七段显示器的D0D6段分别对应于段码指令输出字节的第0位第6位,某段应亮时输出字节中对应的位为1,反之为0
7、。段码指令很少使用。,3计算程序中的数据转换 【例6-2】 用实数运算求直径为9 876mm的圆的周长,将结果转换为整数。 LD I0.0 ITD +9876, AC1 /将9876装入AC1中,整数转换为双整数 DTR AC1, AC1 /双整数转换为实数9876.0 *R 3.1416, AC1 /乘以得31 026.44 ROUND AC1, VD10 /转换为整数31 026后,送VD10中,4解码指令与编码指令 解码指令DECO根据输入字节IN的最低4位表示的位号,将输出字OUT对应的位置为1,输出字的其他位均为0。16#0010=2#0000 0000 0001 0000 编码指令
8、ENCO将输入字IN中的最低有效位(为1的位)的位编号写入输出字节OUT的最低4位。16#0014=0000 0000 0001 0100。 存储器填充指令FILL用输入参数IN指定的字值填充从地址OUT开始的N个连续的字。,6.2.5 实时时钟指令 1用编程软件读取与设置实时时钟的日期和时间 用菜单命令“PLC”“实时时钟”打开“CPU时钟操作对话框”。可以读取PC、PLC的时钟,修改和下载日期时间。 2读取实时时钟指令 READ_RTC指令从CPU的实时时钟读取当前日期和时间,8字节时间缓冲区依次存放年的低2位、月、日、时、分、秒、0和星期的代码,星期日为1。日期和时间的数据类型为字节型B
9、CD码。 3设置实时时钟指令 SET_RTC指令将8字节时间日期值写入CPU的实时时钟。,【例6-3】用实时时钟定时控制设备。 LD SM0.0 TODR VB70 /小时分钟值在VW73 LDW= VW73, VW78 /VW78中是起始时、分值 AW VW73, VW80 /VW80中是结束时、分值 = Q0.2 /在设置的时间范围内, Q0.2为1状态,6.3 数学运算指令 6.3.1 整数运算指令 1四则运算指令 梯形图IN1 + IN2 = OUT,IN1IN2 = OUT,IN1 * IN2 = OUT,IN1 / IN2 = OUT 语句表IN1+OUT = OUT,OUTIN1
10、 = OUT,IN1*OUT = OUT,OUT/IN1=OUT 指令影响SM1.0(零标志)、SM1.1(溢出标志)、SM1.2(负数标志)和SM1.3(除数为0)。MUL将两个16位整数相乘,产生一个32位乘积。DIV指令将两个16位整数相除,运算结果的高16位为余数,低16位为商。,【例6-4】设计程序,用模拟电位器设置定时器T37的预设值为520s。 SMB28中电位器的位置对应的数字N为0255。时间设定值为150N/255+50。用累加器来存放操作数和运算的中间结果比较方便。,2递增与递减指令 梯形图中IN + 1 = OUT,语句表中OUT+1=OUT,6.3.2 浮点数函数运算
11、指令 1三角函数指令 输入值是以弧度为单位的浮点数,角度值乘以/180转换为弧度值。 2自然对数和自然指数指令 3平方根指令将正实数开平方,6.3.3 逻辑运算指令 1取反指令 取反指令将二进制数逐位取反,各位由0变为1,由1变为0。,2逻辑运算指令 字节、字、双字“与”运算时,如果两个操作数的同一位均为1,运算结果的对应位为1,否则为0。“或”运算时如果两个操作数的同一位均为0,运算结果的对应位为0,否则为1。“异或”(Exclusive Or)运算时如果两个操作数的同一位不同,运算结果的对应位为1,否则为0。,3逻辑运算指令应用举例 用字节逻辑“或”运算将QB0的第24位置为1,其余各位保
12、持不变。 QB0的某一位与1作“或”运算,运算结果为1,与0作“或”运算,运算结果不变。16#1C的第24位为1。 IW2的低12位用来读取3位拨码开关的BCD码,IW2的高4位另作他用。 16#0FFF的最高4位二进制数为0,低12位为1。与IW2作“与”运算后, VW2的低12位与IW2的低12位的值相同,VW2的高4位为0。,【例6-6】 求VW0中整数的绝对值,仍将结果存放在VW0中。 LD I0.1 EU /在I0.1的上升沿 AW VW0, 0 /如果VW0中为负数 INVW VW0 /VW0逐位取反 INCW VW0 /加1得到原VW0中的数的绝对值,6.4 程序控制指令 6.4
13、.1 跳转与标号指令 1跳转与标号指令的应用 JMP线圈通电时,跳转条件满足,跳转指令使程序流程跳转到对应的标号处。JMP与LBL指令的操作数n为常数0255,只能在同一个程序块中跳转。 I0.4的常开触点断开时,跳转条件不满足,顺序执行下面的网络。 I0.4的常开触点接通时,跳转到标号LBL 0处,不执行第二个网络。Q 0.0的线圈为灰色。,2跳转指令对定时器的影响 在各定时器正在定时时跳转,100ms定时器停止定时,当前值保持不变。10ms和1ms定时器继续定时,定时时间到时跳转区外的触点也会动作。停止跳转时100ms定时器继续定时。 3跳转对功能指令的影响 未跳转时INC_B指令使VB0
14、每秒加1。跳转条件满足时VB0的值保持不变。,图6-26 跳转与定时器,【例6-7】 用跳转指令实现图6-27中的流程图的要求。,6.4.2 循环指令 1单重循环 驱动FOR指令的逻辑条件满足时,反复执行FOR与NEXT之间的指令。执行到NEXT指令时,INDX的值加1,如果INDX的值小于等于结束值FINAL,返回去执行FOR与NEXT之间的指令。如果INDX的值大于结束值,循环终止。 【例6-8】在I0.5的上升沿,求VB10 VB13这4个字节的异或值,用VB14保存。首先将VB14清0,并设置地址指针AC1的初始值。 第一次循环将指针AC1所指的VB10与VB14异或,然后将指针值加1
15、,指针指向VB11,为下一次循环的异或运算做好准备。 VB10VB13同一位中1的个数为奇数时,VB14对应位的值为1,反之为0。,2多重循环 循环最多可以嵌套8层。 在I0.1的上升沿,执行10次外层循环,如果I0.2为ON,每执行一次外层循环,将执行8次内层循环。执行完后,VW6的值增加80。,6.4.3 其他指令 1条件结束指令与条件停止指令 条件结束指令END的逻辑条件满足时终止当前的扫描周期。条件停止指令STOP使CPU从RUN模式切换到STOP模式。 2监控定时器复位指令 监控定时器的定时时间为500ms,每次扫描它都被自动复位,然后又开始定时。在正常工作时,它不起作用。扫描周期超
16、过500ms时,CPU自动切换到STOP模式。 可用WDR指令重新触发监控定时器,以扩展允许使用的扫描时间。 3诊断LED指令 很少使用。,6.5 局部变量与子程序 6.5.1 局部变量 1局部变量与全局变量 每个程序组织单元(POU)均有由64字节局部(L)存储器组成的局部变量。局部变量只在它被创建的POU中有效,全局符号在各POU中均有效。局部变量有以下优点: 1) 尽量使用局部变量的子程序易于移植到别的项目。 2) 同一级POU的局部变量使用公用的存储区。 3)局部变量用来在子程序和调用它的程序之间传递输入参数和输出参数。 2查看局部变量表 可上下拖动分裂条,打开和关闭局部变量表。 3局部变量的类型 临时变量(TEMP)是暂时保存在局部数据区中的变量。主程序或中断程序只有TEMP变量。 输入参数 (IN) 用来将调用它的POU提供的数据