您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > S7-200教案第6章
第6章PLC的功能指令6.1S7-200的指令规约6.1.1使能输入与使能输出图6-1EN与ENO图6-1中的梯形图对应的语句表为LDI2.4MOVWVW10,VW14//VW10→VW14AENO/IVW12,VW14//VW14/VW12→VW14AENOMOVBVB0,VB2//VB0→VB2除数VW12为0时无能流流出。删除AENO后两个方框变为并联。6.1.2梯形图中的网络与指令一个网络中只能有一块独立电路。输入语句表指令时必须使用英文的标点符号。6.2程序控制指令1.条件结束指令与停止指令2.监控定时器复位指令3.循环指令图6-2循环指令【例6-1】在I0.5的上升沿,求VB10~VB29中20个字节的异或值。网络1LDI0.5EU//在I0.5的上升沿MOVB0,AC0//清累加器0MOVD&VB10,AC1//累加器1(存储区指针)指向VB10FORVW0,1,20//循环开始网络2LDSM0.0XORB*AC1,AC0//字节异或INCBAC1//指针AC1的值加1,指向下一个变量存储器字节网络3NEXT//循环结束网络4LDI0.5EUMOVBAC0,VB40//保存异或结果4.跳转与标号指令图6-3跳转与标号指令I2.1JMPLBL44…6.3局部变量表与子程序6.3.1局部变量表1.局部变量与全局变量程序中的每个程序组织单元POU(ProgramOrganizationalUnit)均有由64字节L存储器组成的局部变量表。局部变量只在它被创建的POU中有效,全局符号在各POU中均有效。局部变量有以下优点:(1)尽量使用局部变量的子程序易于移植到别的项目。(2)如果使用临时变量(TEMP),同一片物理存储器可以在不同的程序中重复使用。2.局部变量的类型TEMP(临时变量):暂时保存在局部数据区中的变量。主程序或中断程序的局部变量表只有TEMP变量。IN(输入变量):由调用它的POU提供的传入子程序的输入参数。OUT(输出变量):子程序返回给调用它的POU的输出参数。IN_OUT(输入_输出变量):其初始值由调用它的POU提供,并用同一变量将子程序的执行结果返回给调用它的POU。3.局部变量的地址分配4.在局部变量表中增加新的变量5.局部变量的数据类型检查6.3.2子程序的编写与调用1.子程序的作用子程序将程序分成容易管理的小块,使程序结构简单清晰,易于查错和维护。子程序调用是有条件的,可以多次调用,使用子程序可以减少扫描时间。2.子程序的创建3.子程序的调用举例图6-6在主程序中调用子程序LDI0.4CALL模拟量计算,AIW2,VW20,+2356,VD404.子程序的有条件返回5.子程序中的定时器6.4数据处理指令6.4.1比较指令图6-9比较指令图6-10自复位接通延时定时器6.4.2数据传送指令1.字节、字、双字和实数的传送2.字节立即读指令MOV_BIR读取1个字节的物理输入,字节立即写指令MOV_BIW写1个字节的物理输出。3.字节、字、双字的块传送指令“BMBVB20,VB100,4”指令将VB20~VB23中的数据被传送到VB100~VB103。4.字节交换指令6.4.3移位与循环指令1.右移位和左移位指令2.循环右移位和循环左移位指令图6-12移位与循环移位指令3.移位寄存器指令图6-12移位寄存器指令6.4.4数据转换指令1.段译码指令2.数字转换指令3.实数转换为双整数的指令:ROUND将实数四舍五入后转换为双字整数,TRUNC是截位取整指令。4.译码指令5.编码指令6.4.5表功能指令1.填表指令图6-18填表指令举例2.查表指令图6-19查表指令举例命令参数CMD=1~4,分别代表“=”、“”(不等于)、“”和“”。3.先入先出(FIFO)指令图6-20先入先出指令举例4.后入先出(LIFO)指令图6-21后入先出指令举例5.存储器填充指令图6-22填充指令6.4.6读写实时时钟指令读实时时钟指令TODR从实时钟读取当前时间和日期,并把它们装入以T为起始地址的8字节缓冲区,依次存放年、月、日、时、分、秒、0和星期,1为星期日,2~7为星期1~6。写实时时钟指令TODW将起始地址为T的8字节缓冲区中的时间和日期写入实时钟。【例6-5】出现事故时,I0.0的上升沿产生中断,使输出Q1.0立即置位,同时将事故发生的日期和时间保存在VB10~VB17中。//主程序OB1LDSM0.1//第一次扫描时ATCH0,0//指定在I0.0的上升沿执行0号中断程序ENI//允许全局中断//中断程序0(INT_0)LDSM0.0//该位总是为ONSIQ1.0,1//使Q1.0立即置位TODRVB10//读实时时钟6.5数学运算指令6.5.1数学运算指令梯形图:IN1+IN2=OUT,IN1-IN2=OUT,IN1*IN2=OUT,IN1/IN2=OUT语句表:IN1+OUT=OUT,OUT-IN1=OUT,IN1*OUT=OUT,OUT/IN1=OUT有16位整数运算、32位双整数运算、实数运算和加1、减1指令。整数乘、除法的操作数为两个16位整数,乘积或商均为16位,不保留余数。双整数乘、除法的操作数和运算结果均为32位。此外还有MUL:整数乘法产生双整数指令。DIV:整数除法产生双整数指令。两个16位整数相除,结果的高16位为余数,低16位为商。【例6-8】在输入信号I0.4的上升沿,用模拟电位器0来设置定时器T37的设定值(5~20s),即从SMB28读出的数字0~255对应于5~20s。设读出的数字为N,100ms定时器的设定值为(200–50)×N/255+50=150×N/255+50(0.1s)网络1LDI0.4EU//在I0.4的上升沿MOVBSMB28,AC0MUL+150,AC0//150乘以模拟电位器的转换值/D+255,AC0//除以255,双整数除法+I+50,AC0//加偏移量50(5s)MOVWAC0,VW10网络2LDI0.5TONT37,VW10//T37以VW10中的数值为设定值6.5.2浮点数函数运算指令包括正弦指令SIN、余弦指令COS和正切指令TAN,自然对数指令LN和自然指数指令EXP。角度的单位为弧度。6.5.3逻辑运算指令【例6-9】在I0.0的上升沿执行下面程序中的逻辑运算,运算前后各存储单元中的值如图6-27所示。LDI0.0EUINVBVB0//字节取反指令ANDBVB1,VB2//字节与指令ORBVB3,VB4//字节或指令XORBVB5,VB6//字节异或指令图6-27取反与逻辑运算举例6.6中断程序与中断指令6.6.1中断程序中断允许指令ENI允许处理所有被连接的中断事件。禁止中断指令DISI禁止处理所有中断事件。进入RUN模式时自动禁止中断,中断程序越短越好。6.6.2中断事件与中断指令中断连接指令ATCH建立中断事件(EVNT)与对应的中断程序(INT)的联系。中断事件由中断事件号指定(见表6-12),中断程序由中断程序号指定。中断分离指令DTCH断开中断事件与中断程序之间的联系。中断优先级(见表6-12)分组:通信(最高优先级)、I/O中断和定时中断。I/O中断:I0.0~I0.3上升沿、下降沿中断;HSC当前值等于设定值、计数方向改变和计数器外部复位中断;输出完指定的脉冲数时产生的中断。图6-28中断指令定时中断0/1的周期为1~255ms,分别写入SMB34和SMB35。每当定时时间到时,执行相应的定时中断程序。定时器T32/T96中断的时间周期最大为32.767s。【例6-11】在I0.0的上升沿通过中断使Q0.0立即置位。在I0.1的下降沿通过中断使Q0.0立即复位。//主程序OB1LDSM0.1//第一次扫描时ATCHINT_0,0//I0.0上升沿时执行0号中断程序ATCHINT_1,3//I0.1下降沿时执行1号中断程序ENI//允许全局中断//中断程序0(INT_0)LDSM0.0//该位总是为ONSIQ0.0,1//使Q0.0立即置位//中断程序1(INT_1)LDSM0.0//该位总是为ONRIQ0.0,1//使Q0.0立即复位【例6-12】用定时中断0实现周期为2s的高精度定时。//主程序OB1LDSM0.1//第一次扫描时MOVB0,VB10//将中断次数计数器清0MOVB250,SMB34//设定时中断0的中断时间间隔为250msATCHINT_0,10//指定产生定时中断0时执行0号中断程序ENI//允许全局中断//中断程序INT_0,每隔250ms中断一次LDSM0.0//该位总是为ONINCBVB10//中断次数计数器加1LDB=8,VB10//如果中断了8次(2s)MOVB0,VB10//将中断次数计数器清0INCBQB0//每2s将QB0加16.7高速计数器与高速脉冲输出指令6.7.1编码器高速计数器一般与增量式编码器配合使用,双通道A、B相型编码器提供转速和转轴旋转方向的信息。三通道增量式编码器的Z相零位脉冲用作系统清零信号,或坐标的原点,以减少测量的积累误差。图6-29A、B相型编码器的输出波形6.7.2高速计数器的工作模式与外部输入信号(1)无外部方向输入信号的单相加/减计数器(模式0~2):用控制字节控制计数方向。(2)有外部方向输入信号的单相加/减计数器(模式3~5)。(3)有加计数时钟脉冲和减计数时钟脉冲输入的双相计数器(模式6~8)。(4)A/B相正交计数器(模式9~11)。图6-301倍速正交模式操作举例图6-314倍速正交模式操作举例根据有无复位输入和启动输入,上述的4类工作模式又可以各分为3种。高速计数器的外部输入信号见表6-16。6.7.3高速计数器的程序设计【例6-13】用指令向导生成HSC0的初始化程序和中断程序,HSC0为无外部方向输入信号的单相加/减计数器(模式0),计数值为10000~20000时Q4.0输出为1。(用编程软件演示)6.7.4高速脉冲输出与开环位置控制占空比:脉冲宽度与脉冲周期之比。脉冲列(PTO)功能提供周期与脉冲数目可以由用户控制的占空比为50%的方波脉冲输出。脉冲宽度调制(PWM)功能提供连续的、周期与脉冲宽度可以由用户控制的输出。图6-34位置控制系统的速度与加减速时间CPU有两个PTO/PWM发生器,分别通过Q0.0或Q0.1输出高速脉冲。(演示用位置控制向导生成PWM指令PWMx_RUN)。(演示用位置控制向导组态脉冲列输出PTO的包络曲线)。
本文标题:S7-200教案第6章
链接地址:https://www.777doc.com/doc-2404872 .html