文档详情

S7LC的功能指令

pu****.1
实名认证
店铺
PPT
1.23MB
约169页
文档ID:591455858
S7LC的功能指令_第1页
1/169

S7-200PLC的基本功能指令张泽礼 概述•基本功能指令是PLC多位二进制数同时操作的指令•按照操作数据的位数有:字节操作指令,字操作指令,双字操作指令之分•按照操作数据类型分为:字节数据(含ASCII)码,整数I(有符号字数据),实数R(双字浮点数据)•按照操作的性质分为:传送指令、转换指令、整数运算指令、实数运算指令(包括了函数运算指令)、逻辑运算指令、控制指令、移位及循环移位指令等•按照上述说法,比较指令是介于功能指令和开关指令中间的指令,其运算形式是多位数据的比较,其结果是开关的形式出现 v 一 PLC的数据类型v二 整数运算指令 v 三 逻辑运算指令 v 四 实数运算指令v 五 移位及循环移位指令v 六 转换指令v 七 表功能指令v 八 控制指令 主要内容主要内容 •1、位数据及开关量•2、字节数据及存储元件编址•3、字数据及存储元件编址•4、双字数据存储元件编址•5、数据类型 1、位数据及开关量•一个开关只有两种状态,接通与断开这是逻辑状态,用0和1表示,一般正逻辑规定接通为1,断开为0•1个开关量也可以表示数字即0和1,这种二进制数据就是位数据。

在计算机中的数据是由多位二进制数据组合成的,8位构成一个字节,16位构成一个字 2、字节数据•字节数据由8位二进制数据组成,位的位置决定其权重•字节数据(byte)的表示方法如:IB0由I0.7、I0.6、 I0.5、 I0.4、 I0.3、 I0.2、 I0.1、 I0.0构成,其中I0.0是最低位,I0.7是最高位,不同位置代表不同的权重•这样可以表示256种状态,表示数据0~255•字节数据可以用16进制表示或者10进制表示16进制表示数值在16#00~16#FF之间•两种进制可以相互转换:位置I0.7I0.6I0.5I0.4I0.3 I0.2 I0.1I0.0权重1286432168421 PLC的字节编址方法•字节编址用第一个字母表示寄存器的类型,第二个字母B表示字节编址例如IB0、QB0、MB0、VB0、SMB0等•有IB0~IB15输入映像寄存器,共计256点•有QB0~QB15共16个输出映像寄存器,共计256点,这就决定可以扩展的I/O数目•同样有MB0~MB31共32个共计256个中间继电器VB0~VB2047(CPU221/222)或者VB0~VB5119(CPU224/226)变量存储单元。

3、字数据及•字数据(word)是计算机一次能够处理二进制数据的位数(等于计算机的字长),一般是8的倍数例如奔腾4P4C以前PC为32位机,以后为64位机PLC的CPU的字长是16位的,因此其字数据位16位二进制数据•字数据可以表示65536中状态,可以表示的无符号整数0~65535,可以表示有符号整数为-32768~+32767之间 字编址•字数据存储一般占两个字节,例如IW0由IB0和IB1组成,其中IB0是高8位,IB1是地8位IW1是由IB1和IB2构成,其中I2.0是最低位,I1.7是最高位或符号位•西门子PLC中的定时器和计数器的字长是16位的字数据,但是是有符号整数,设定值在1~32767之间使用CTUD加减计数器就可以出现负值 4、双字数据•双字数据(double word)用D表示,是32位数据,可以表示状态数232=4294967296(约43亿)种表示无符号数在0~4294967295之间,表示的有符号数-147483648~+214483647之间•双字数据在存储单元中由四个字节组成例如ID0由IB0~IB3组成,其中I0.7是最高位,I3.0是最低位同样可知QD0、MD0等也是由四个字节的存储单元构成(QD0、ID0需要增加EM223 I/O扩展模块)。

•双字数据有双字有符号整数和实数两种 双字存储元件编址•地址分配情况:以 VD100为例,由4个存储单元组成VB100是高8位,VB103是低8位,VB101、VB102是中间位•实数也是双字数据,只是带有小数,因此编址与双字整数相同 5、数据类型•整数:整数是没有小数的数据,分为有符号整数和无符号整数无符号整数的最高位表示数据的最高位;有符号整数的最高位是符号位,0表示整数1表示负数•实数(浮点数float):实数是有符号带小数的数据,数据长度为4个字节,在传送指令中使用MOV_R指令,可以直接输入正负小数(7位) 数据类型编程练习•使用开关指令的抢答器设计和使用功能指令的抢答器设计•使用功能指令编写程序比开关指令简单的多 二 整数运算指令•1、整数与双整数加减指令•2、整数乘除指令 LADLAD功能功能IN1+IN2=OUTIN1-IN2=OUTIN1+IN2=OUTIN1-IN2=OUT1. 1. 整数与双整数加减法指令整数与双整数加减法指令(INT /DINT)(INT /DINT) I是16位有符号数,DI是32位有符号数ADD_I是将两个16位有符号整数相加后产生16位有符号整数,结果大于32767时产生溢出SM1.1置位。

SUB_DI是双整数减法运算,结果为双整数如果结果为0,则SM1.0置位 •加法运算仿真,ADD_I是两个16位二进制数相加,结果也是16位二进制数•有符号16位数值范围为•-32768~+32767之间•如果结果超过32787则产生进位特殊功能及电器SM1.1=1加法指令实例 用加法指令实现单按钮控制•说明:进入运行状态MW0初值为16#0000,按一下I0.0后执行一次加法指令MW0=1000,在执行一次后又变为MW0=0000,但是进位使得SM1.1=1•重复操作实现单按钮控制•也可以用特殊功能继电器SM1.1驱动Q0.0 LAD功能IN1*IN2IN1*IN2=OUT=OUTIN1/IN2=IN1/IN2=OUTOUTIN1*IN2=IN1*IN2=OUTOUTIN1/IN2=IN1/IN2=OUTOUTIN1*IN2=IN1*IN2=OUTOUTIN1/IN2=IN1/IN2=OUTOUT2.2.整数乘除法指令整数乘除法指令整数乘除法指令整数乘除法指令 整数乘法指令MUL_I将两个16位有符号数相乘,产生16位积从OUT指定单元输出MUL则将两个16位有符号整数相乘产生32位积从OUT指定单元输出。

双整数乘法则将两个32位数相乘后产生32位积从OUT指定单元输出除法指令亦然,其中DIV指令是将两个16位有符号数相除,结果从一个32位输出,其中高16位为余数,低16位为商 举例:用乘法运算实现单按钮控制说明:MW0由MB0和MB1两个字节组成,MB1是低字节,MB0是高字节,M0.7是最高位当初始化MW0=16#5555时折合#01010101,逐次乘2,则M0.7就会出现高低电平的变化 I0.0通断次数16#MW0值2#MW0值M0.7的值初始值 0次5555010101010101010101AAAA1010101010101010125554010101010101010003AAA81010101010101000145550010101010101000005AAA01010101010100000165540010101010100000007AA801010101010000000185500010101010000000009AA00101010100000000011054000101010000000000011A8101010000000000011250000101000000000000013A00010100000000000001144000/555501000000000000000 3、递增及递减指令•递增指令每执行一次存储单元的内容加1,可以用于控制循环次数,也可以用于加法计数运算。

按存储单元长度分为:字节增量指令,字增量指令,双字增量指令三种•递减指令每执行一次存储单元的内容减1,可以用于控制循环次数,也可以用于减法计数运算按存储单元长度分为:字节减量指令,字减量指令,双字减量指令三种ENENOINOUTINC_B 原理:原理: 用于使能输入有效时,输入数用于使能输入有效时,输入数IN加加1 或减或减1,得到的结得到的结果通过果通过OUT指定的存储器单元输出指定的存储器单元输出 举例: 食品加工厂对饮料生产线上的盒装饮料进行计数,每24盒为一箱,要求能记录生产的箱数增增减减指指令令的的应应用用 增/减量指令的应用•用增量指令实现单按钮控制起保停控制•每当I0.0通断一次,M0.0奇偶变化一次,从而使得Q0.0状态随之反转一次 三、实数运算指令•实数运算指令一般用于模拟量的运算处理,如PID控制等常用的实数运算分为以下几种:•1、实数加减运算•2、实数乘除运算•3、函数运算 1.1.实数加减乘除指令实数加减乘除指令实数加减乘除指令实数加减乘除指令 实数可以理解为带符号的小数,因为是浮点数,小数的点实数可以理解为带符号的小数,因为是浮点数,小数的点的位置是任意的。

注意的是实数是双字数,其地址单元必须是的位置是任意的注意的是实数是双字数,其地址单元必须是四字节将两个实数(32位)相加,产生32位结果从OUT输出MOVD IN1,OUT+R IN2,OUT将两个实数(32位)相减,产生32位结果从OUT输出MOVD IN1,OUT-R IN2,OUT 2、实数乘除运算两个实数IN1和IN2相乘,产生的结果32的积从OUT输出如果产生结果溢出SM1.1置1MOVD IN1,OUT*R IN2,OUT两个实数IN1和IN2相乘,产生的结果32的积从OUT输出如果产生结果溢出SM1.1置1MOVD IN1,OUT*R IN2,OUT 函数运算的应用常常与模拟量模块相关,例如测量电路的电压有效值,电流的有效值,电功率、功率因数及电能((1 1)平方根()平方根(SQRTSQRT))指令指令((2 2)自然对数()自然对数(LNLN))指令指令((3 3)自然指数()自然指数(EXPEXP))指令指令((4 4)三角函数指令)三角函数指令( (SINSIN、、 COSCOS、、 TANTAN) )3.数学函数变换指令数学函数变换指令 注意:SIN COS TAN 的操作数为弧度值。

3、函数指令•注意当使用三角函数运算指令时,输入角度为弧度值 使用函数运算指令实现电压电流有效值的测量•假设交流电压从AIW0输入,交流电流从AIW2输入(均应设置为双极性)•通过PLC内部运行后将电压、电流的有效值、电功率、功率因数及消耗电能从PLC的文本显示器输出,构成组合参数仪表 四、逻辑运算指令 •1. 逻辑与指令(逻辑与指令(WAND)) •2. 逻辑或运算逻辑或运算 ((WOR))•3. 逻辑异或指令(逻辑异或指令(WXOR))•4. 取反指令(取反指令(INV)) 1、与逻辑运算•将参与运算的多位二进制数逐位进行与运算,全1出1,有0出0例如:16#FF与16#0F进行与逻辑运算后的结果是16#0F•与逻辑运算分为字节与逻辑运算、字与逻辑运算和双字与逻辑运算三种情况 逻辑等效 2、或逻辑运算•将参与运算的多位二进制数逐位进行或运算,有1出1,全0出0例如:16#F0与16#0F进行与逻辑运算后的结果是16#FF•或逻辑运算分为字节或逻辑运算、字或逻辑运算和双字或逻辑运算三种情况 逻辑等效 3 异或逻辑•将参与运算的多位二进制数逐位进行异或运算,同则出0,异则出1例如:16#FF与16#FF进行与逻辑运算后的结果是16#0。

•异或逻辑运算分为字节异或逻辑运算、字异或逻辑运算和双字异或逻辑运算三种情况 逻辑等效 4 取反•将参与运算的多位二进制数逐位进行取反运算,例如:16#FF进行取反逻辑运算后的结果是16#0•取反逻辑运算分为字节取反、字取反和双字取反逻辑运算三种情况 逻辑等效•位逻辑取反:•功能指令取反 应用举例:使用取反指令实现单按钮起保停控制•原理:PLC启动时MB0=16#0,通断一次I0.0后MB0=16#FF,再通断一次又恢复到16#0•可以用M0.0~M0.7中任意位驱动Q0.0 五、数据传送指令五、数据传送指令 传送指令的作用是从源地址读出数据后,将源地址的数据复制到目标地址当中,源地址中内容不变,目标地址中的原内容被覆盖 1. 单数传送指令:MOV 分为:字节传送、字传送、双字传送 2. 块传送(数据组): BLKMOV 分为:字节块传送、字块传送、 双字块传送 1、单一传送、单一传送 MOVMOV指令可用用来传送单个数据,数据类型可以是字节、字、双字、实数 2. 块传送块传送 BLKMOVBLKMOV指令可用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字块。

N的范围为的范围为1至至255 应用举例:多路抢答器设计•说明:•当没有人抢答时,M0.0常闭触点接通,读取输入端口状态•当有人抢答时,首先将输入读到输出端,然后M0.0置位,不在读输入端口数据输出端显示抢答台号•直到按下复位键后才能解除 六、移位指令 4 1. 左移位4 2.右移位4 2. 循环左移位4 3.循环右移位4 3. 寄存器移位  数据处理指令 1.左移位指令(左移位指令(SHL))原理:使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1 置1种类:按参与移位数据的位数分为:字节左移、字左移、双字左移三种作用:左移位具有二进制数乘法运算作用,左移移位相当于乘2,左移n位相当乘2n高位低位SM1.1 用左移指令实现流水灯控制•用常量每次移动不同位数可以实现循环移位控制形成流水灯效果•当移位到最高位后,移位变量自动清零,从而实现了循环左移,也可以实现循环右移控制 利用自动归位变量移位实现循环左移•用变量和条件赋值实现循环左移控制。

•当移位到最高位后,再执行一次移位时会发生溢出,置位SM1.1,用SM1.1再次赋值,可以循环移位流水灯控制 2 右移位指令右移位指令(SHR)原理:使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1 中种类:按参与移位数据的位数分为:字节右移、字右移、双字右移三种应用:右移位具有二进制数乘法运算作用,左移移位相当于除2,左移n位相当除2n高位低位SM1.1 右移位指令应用•同样可以实现循环移位控制也可以用于实现多台电动机的顺序启动,逆序停止控制•电路功能:顺序启动,同时停止•如要实现顺序启动顺序停止控制,可采用两个子程序实现 3.循环左移(循环左移(ROL))说明:移位数据存储单元移出端(最高位)与移入端(最低说明:移位数据存储单元移出端(最高位)与移入端(最低位)相连,同时最高位又与位)相连,同时最高位又与SM1.1(溢出)相连溢出)相连种类:字节循环左移、字循环左移、双字循环左移三种种类:字节循环左移、字循环左移、双字循环左移三种例如:移位数据的最右端位移入最左端,同时又进入例如:移位数据的最右端位移入最左端,同时又进入SM1.1。

SM1.1始终存放最后一次被移出的位始终存放最后一次被移出的位高位低位SM1.1 用循环移位实现单按钮控制•基本思路:给中间字节变量MB0赋以花数,用控制开关控制其移位然后进行位连接 用循环左移实现流水灯控制•变量每次移动一位实现循环左移流水灯控制 常数每次移动不同位数实现流水灯控制•移位次数自动调节如采用加1指令,可以实现循环左移•移位次数自动调整采用减1指令,可实现循环右移 4、循环右移(循环右移(ROR))SM1.1说明:移位数据存储单元的移出端(最低位)与移入端说明:移位数据存储单元的移出端(最低位)与移入端(最高位)相连,同时最低位又与(最高位)相连,同时最低位又与SM1.1(溢出)相连溢出)相连种类:字节循环左移、字循环左移、双字循环左移三种种类:字节循环左移、字循环左移、双字循环左移三种例如:移位数据的最右端位移入最左端,同时又进入例如:移位数据的最右端位移入最左端,同时又进入SM1.1SM1.1始终存放最后一次被移出的位始终存放最后一次被移出的位 移位及循环移位指令 应用•使用循环移位指令,可以实现流水灯效果,可以产生步进电动机的驱动脉冲,移位方向用于控制步进电动机转动方向。

•利用移位指令也可以实现起保停单按钮控制 5 移位寄存器指令(SHRB)•移位寄存器是将串行数据转化成并行数据的器件,在S7-200中设有移位寄存器指令,而且移位寄存的位数可以在1~64位之间任意选择但是移位方向只能左移不能右移•其中EN是使能输入控制 端,DATA是数据输入端 为位地址,S_BIT是移位 寄存器的最低位,N是移 位寄存器的长度 移位寄存器指令的应用•使用移位寄存器指令可以从DATA位地址输入端输入串行信号,从移位寄存器中得到转换后的并行数据•实例:用移位寄存器指令实现多台电动机的顺序启动顺序停止控制 应用实例•用寄存器移位指令实现流水灯效果•将寄存器的首位连接起来,可实现循环左移位,不能显示循环右移 七 转换指令 & 1、数据类型转换指令、数据类型转换指令 & 2、编码和译码指令、编码和译码指令 & 3、七段译码指令、七段译码指令 & 4、字符串转换指令、字符串转换指令 一、数据类型转换1.字节型数据与字整数之间转换的指令.字节型数据与字整数之间转换的指令 1、数据类型的转换指令•传送指令、比较指令、逻辑运算指令还是整数运算指令都是相同数据类型的数据,而且使用相应的数据类型的指令,这对不同数据类型的数据运算带来了不方便,需要进行数据转换。

•数据转换有:字节与字相互转换,字与双字相互转换,双字与实数相互转换,BCD码与整数相互转换,译码与编码指令,七段显示译码指令,ASCII码与16进制数之间的转换等 2、IBT指令(字转换为字节)•字转换成字节I-B的IBT指令,将节W低8位存入字节存储单元中,高8位丢弃•以IBT VW0 , QB0 为例:相当于将VW0的低8位(VB1)传送到QB0中•如果直接采用MOVB IB1,QB0,则效果相同 字节、字、双字及整数与实数自动转换•S7-200PLC中有4个32位累加器AC0、AC1、AC2、AC3,可以做字节、字、双字寄存器使用,数据类型在其中可以自动转换•例如S7-200面板上有两个模拟电位器SMB28、SMB29均为8位寄存器,如用其调节定时器的设定值,需用将其转换成16位方可,使用AC0过渡一下即可 程序实例•可变速度的闪光灯控制电路•可以看出使用B-I指令转换和使用AC0传送指令效果相同•例如定时器是字寄存器,其输入参数必须是16位双字节常数或者字存储单元的内容,如MW、VW、QW、IW、SMW等如果用模拟电位器SM28调节,需要进行数据转换SMB---VW---到定时器,也可以经过累加器自动转换。

字与双字之间转换•字转换为双字I_D的ITD指令,作用是将两字节数I传入D存储单元的低字节,其两高字节置0•例如在VW100中存入16#1122, ITD VW100,VD200 将其转换成为双字后传入VD200中,结果VW202中数据是16#1122(VB203中为16#22,VB202中为16#11),VW200中为0(VB201、VB200中均为0) 双字与字之间转换•字转换为双字D_I的DTI指令,作用是将四字节数D传入I存储单元VS中•例如在VD100中存入16#11223344,将其转换成为双字后传入VD200中 DTI VD100,VW200 结果VD102中数据是16#33440000(VB102中为16#33,VB103中为16#44,VB104中为0,VB104中为0(VW104中为0),VW200中内容为16#3344 双字整数与实数之间的转换•DTR指令将32位整数转换成实数,小数点后面为0例如除法指令有整数除法指令和实数除法指令整数除法得到是商(整数)和余数(整数),相当于分数实数除法得到是小数•程序实例:1111/100,采用整数除法的结果是商11,余数11。

采用实数除法指令结果是11.11,但是需要先将整数转换成为实数才能使用实数除法运算 2.字整数与双字整数之间的转换.字整数与双字整数之间的转换 BCD码与整数的转换•BCDI指令:将10进制数转换成16进制数•IBCD指令:将16进制数转换成10进制数 小于10的数不转换,大于10的加6使其提 前进位 DECO译码指令•功能:将输入字节数据(IN)的低4位(半个字节)表示的输出字的位号,将输出字(两个字节)相应的位号置1,输出字的其他位号置零•语句表STL:DEC0 IN,OUT•数据类型:IN字节型整数,OUT字型数据 用译码指令实现流水灯:•由计数器产生相应输出端做译码指令的地址码,输出到QW0,从而实现流水效果•如果外界译码芯片,只需要4位端口,可输出16路流水灯效果 ENCO编码指令•功能:将输入(IN)字(双字节)数据的最低有效位号(其值为1)的位号写入输出字节(OUT)的最低4位中•STL格式:NECO IN,OUT;•数据格式:输入双字节,输出字节•应用示例:多路输入单路输出的选择开关 应用实例•用译码指令实现的抢答器,由QB0输出台号如用七段数字显示译码指令译码,可以数码管显示台号。

•台号1~16,可以用4位二进制显示0~F SEG七段译码指令•功能:将输入的半字节数据(输入字节数据的低4位)产生七段现显示码输出驱动LED七段数码管显示出来•DTL:SEG IN,OUT•演示程序:SEG延时需要硬件 ATH指令(ASCII码转16进制)•功能:将从IN开始的LEN个ASCII码转换为16进制数保存OUT开始的LEN个单元中•ASCII码是用一个字节二进制数表示的符号,见ASCII编码表•STL格式:ATH IN,OUT,LEN•数据类型均为字节型数据•例:将VB0、VB1、VB2、VB3中存放的ASCII码(L、M、X、Y)转换为二进制数据存放在VB10开始的四个单元中 ATH VB0,VB10,4 HTA指令(16进制转ASCII码)•功能:将从IN开始的LEN个16进制数转换为ASCII码保存OUT开始的LEN个单元中•ASCII码是用一个字节二进制数表示的符号,见ASCII编码表•STL格式:HTA IN,OUT,LEN•数据类型均为字节型数据•例:将VB0、VB1、VB2、VB3中存放的16进制数(12、23、34、45)转换ASCII码存放在VB10开始的四个单元中。

HTA VB0,VB10,4 3..BCD码与整数之间的转换的指令格式码与整数之间的转换的指令格式 二、编码和译码指令 •1. 编码•ENCO,编码指令使能输入有效时,将字型输入数据IN的最低有效位(值为1的位)的位号输出到OUT所指定的字节单元的低4位•指令格式:ENCOIN, OUT•例:例:ENCOAC0, VB0 举例举例 字 :2#0010 1001 0001 0000编码编码: 2#0000 01002#0000 0100译码译码 :位号:位号 ::4字 :2# 0000 0000 0001 0000 •2. 译码•DECO,译码指令使能输入有效时,将字节型输入数据IN的低4位所表示的位号对OUT所指定的字单元的对应位置1,其他位置0•指令格式:DECOIN, OUT•例:例:DECOVB0, AC0 三、七段译码指令 SEG,七段码指令使能输入有效时,将字节型输入数据IN的低4位有效数字产生相应的七七段段码码,并将其输出到OUT所指定的字节单元 IN :0、1、2、15(F)字节 : 16#00 16#01 16#0F结果结果 ::2#01111000abcdefg 四、字符串转换指令 1))ASCII码转换码转换16进制进制ATH指令指令 ASCII码是用码是用8位二进制表示一个位二进制表示一个符号的编码,因此一个符号的编码,因此一个ASCII码可码可转化成一个字节两位转化成一个字节两位16进制数。

进制数2))16进制到进制到ASCII码码HTA指令指令 与与ATH的功能相反的功能相反注意:注意:LEN是转化是转化ASCII码的个数码的个数 4.4 转换指令 七 表功能指令 1、读表指令2、表取数指令 3、表查找指令 S7-200的表格存储存储单元数据 说明 VW100005数据最大填表数为 TL=5(<=100)VW120003实际填表数EC=0003(<=100)VW141234数据0VW165678数据1VW189012数据2VW20****无效数据VW22****无效数据 1、填表指令、填表指令 • ATT指令•该指令在梯形图中有2个数据输入端:DATA为数值输入,指出将被存储的字型数据或其地址;TBL表格的首地址,用以指明被访问的表格当使能输入有效时,将输入字型数据添加到指定的表格中格式:格式:AD_T_TBL 特点特点:: 表存数时,新存的数据添加在表中最后一个数据的后面每向表中存一个数据,实际填表数EC会自动加1 二、表取数指令 (1) FIFO,先进先出指令 (2) LIFO,后进先出指令 ((1)) FIFO,,先进先出指令先进先出指令 p当使能输入有效时,从TBL指明的表中移出第一个字型数据并将其输出到DATA所指定的字单元。

pFIFO表取数特点:p取数时,移出的数据总是最先进入表中的数据每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数EC会自动减1p指令格式:FIFO TBL, DATAp例:FIFO VW10, AC0 ((2)) LIFO,,后进先出指令后进先出指令 u当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元uLIFO表取数特点:u取数时,移出的数据是最后进入表中的数据每次从表中取出一个数据,剩余数据位置保持不变,实际填表数EC会自动减1u指令格式:LIFO TBL, DATAu例:例:LIFOVW10, AC0 三. 表查找指令 vFND?,表查找指令通过表查找指令可以从字型数表中找出符合条件的数据所在的表中数据编号,编号范围为0~99v在梯形图中有4个数据输入端:TBL表格的首地址,PTN是用来描述查表条件时进行比较的数据;CMD是比较运算符“?”的编码,它是一个1~4的数值,分别代表=、<>、<和>运算符;INDX用来指定表中符合查找条件的数据的地址指令:指令:TBL_FIND 八 程序控制类指令 u1、系统控制类指令u2、跳转、循环指令u3、子程序调用指令u4、顺序控制指令 1、系统控制类指令 1.1. 结束指令结束指令•结束指令有两条:END和MEND。

两条指令在梯形图中以线圈形式编程• END,条件结束指令使能输入有效时,终止用户主程序•MEND无条件结束指令无条件终止用户程序的执行,返回主程序的第一条指令•指令格式:END(无操作数) STOP,暂停指令使能输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终止用户程序的执行•STOP指令在梯形图中以线圈形式编程指令不含操作数•指令格式:STOP (无操作数)1.2. 停止指令停止指令 1.3. 看门狗复位指令 •WDR,看门狗复位指令当使能输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次用本指令可用以延长扫描周期,从而可以有效避免看门狗超时错误•指令格式:WDR(无操作数) 2、跳转、循环指令 2.1. 跳转指令(1)跳转指令 JMP,跳转指令使能输入有效时,使程序流程跳到同一程序中的指定标号n处执行2)标号指令 LBL,标号指令标记程序段,作为跳转指令执行时跳转到的目的位置操作数n为0~255的字型数据 应用实例:用跳转指令及置位复位指令实现单按钮起保停控制•说明:为了避免出现先说明:为了避免出现先置位后复位或者先复位置位后复位或者先复位后置位的两次动作,使后置位的两次动作,使用跳转指令用跳转指令JMPJMP和标号和标号LABLAB。

•按序分析:按序分析:PLCPLC运行开运行开始,始,Q0.0=0Q0.0=0,因此不执,因此不执行网络行网络2 2,按下,按下I0.0I0.0,,执行网络执行网络5 5使得使得Q0.0Q0.0置置位从而后不执行网络位从而后不执行网络5 5,而执行网络,而执行网络2 2,再按,再按I0.0I0.0实现停止实现停止 2.2、循环指令、循环指令•循环指令用于一段程序重复多次执行控制重复执行的程序段从FOR语句开始至NEXT为止•循环次数由循环计数器控制,每执行一次循环次数计数器加1,到达设定值时结束循环其循环的次数为循环计数器的设定值-初始值•使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX增1,达到终止值FINAL时,循环结束•使能输入无效时,循环体程序不执行每次使能输入有效,指令自动将各参数复位 由FOR和NEXT指令构成程序的循环体FOR指令标记循环的开始,NEXT指令为循环体的结束指令 INDX是当前值计数器即循环计数器,INIT是循序计数器的初始值,FINAL是循环终止值即设定值 INDX、INIT、FINAL均为16位的字寄存器,如VW、IW、QW、MW、SW、SMW、LW、T、C、AC。

应用实例•用循环指令实现延时控制不能仿真) 3、子程序调用指令 在电气控制系统中,有时需要处理一在电气控制系统中,有时需要处理一些特定事件、突发事件等,这些事件处理些特定事件、突发事件等,这些事件处理还需要继续执行正常的工作这种情况适还需要继续执行正常的工作这种情况适合用子程序进行处理,当满足条件时执行合用子程序进行处理,当满足条件时执行子程序,不满足条件时子程序不被执行子程序,不满足条件时子程序不被执行其相关内容有:其相关内容有: 1.1.建立子程序建立子程序 2.2.子程序调用子程序调用 3.3.带参数的子程序调用带参数的子程序调用 1. 建立子程序 (1)从“编辑”菜单,选择插入→子程序;(2)从“指令树”,用鼠标右键单击“程序块”图标,并从弹出菜单选择插入→子程序;(3)从“程序编辑器”窗口,用鼠标右键单击,并从弹出菜单选择插入→ 子程序 2. 子程序调用 (1)子程序调用和返回指令Ø 子程序调用 SBRØ子程序条件返回 CRET (1)子程序参数 (2)局部变量的类型 (3)数据类型 (4)建立带参数子程序的局部变量表(5)带参数子程序调用指令 3. 带参数的子程序调用 带参数的子程序的概念及用途•从主程序进入子程序,有时主程序的某些参数需要传递到子程序当中,这在子程序调用指令中包含相应参数,它可以在子程序和调用程序之间传送。

•如果子程序要传递参数和局部变量则称为带参数的子程序(可移动子程序),应尽量使用局部变量L,避免使用全局变量•子程序的参数必须有一个符号名、一个变量类型和一个数据类型•子程序最多可以传递16个参数,传递的参数在局部变量表中定义 局部变量表名称变量类型 数据类型注释L0.0IN1INBOOLLB1IN2INBYTEL2.0IN3INLD3IN4DWORDLD7INOUTIN_OUTREALLD11OUTOUTREAL 说明•变量类型:局部变量表中有IN、OUT、IN/OUT和TEMP四种类型其中OUT和IN/OUT不允许使用常量•前三种变量可以在子程序和调用程序之间传送•TEMP是局部局部存储变量,只能用于子程序内部保存结果,不能在程序之间传送参数•数据类型包括:能流、位、字节、字、双字,整数和实数型 带参数子程序调用的指令格式•在子程序局部变量表中定义参数后自动生成调用指令块,指令块中自动包含子程序的输入参数和输出参数•在主程序插入调用指令 应用举例•多种工作方式的可编程控制彩虹灯•方式1:左循环每次一位•方式2:左循环每次两位•方式3:右循环每次一位•方式4:右循环每次二位•方式5:左循环逐个点亮然后逐个熄灭。

•方式6:右循环逐个点亮然后逐个熄灭•可编程彩虹灯控制程序 4、顺序控制指令1. 1. 功能流程图功能流程图 (1)顺序步开始指令 (LSCR)(2)顺序步结束指令 (SCRE)(3)顺序步转移指令 (SCRT)5.1 程序控制类指令 2. 2. 顺序控制指令顺序控制指令 例5-1使用顺序控制结构,编写出实现红、绿灯循环显示的程序(要求循环间隔时间为1s) 5.1 程序控制类指令 第三章 S7-200的特殊功能指令用 主要内容•一 立即类指令•二 中断指令•三 高速计数器•四 高速脉冲输出•五 实时钟指令•六 PID指令•七 文本显示器TD400 本章学习要求& 重点内容:重点内容: S7-200功能指令的作用及使用方法& 了解内容了解内容: 系统控制类指令的应用 &难点内容难点内容: 高速计数器指令 一、立即类指令•普通指令是按照时间节拍去采样输入端子状态,和刷新输出的这样对于需要快速处理的问题会造成反映迟缓例如电子装置过载能力很差,如果不及时采取措施将造成经济损失•立即类指令分为立即输入和立即输出两大类分别用触点和线圈表示。

二 中断指令 1、中断源中断源2 2、中断指令、中断指令 3、中断程序中断程序4 4、文本显示器、文本显示器 二 中断指令 •概念: 中段就是终止当前正在运行的程序,去执行为立即响应的信号而编制的中断服务程序,执行完毕再返回原先终止的程序并继续执行•中断源 中断源是指发出中断请求的事件,又叫中断事件•中断服务程序 用于处理中断事件的子程序叫中断服务程序中断服务程序不是由指令调用,而是中断事件调用•执行中断流程 编写中断服务程序完成后,进行相应的设置:开全局中断,连接中断事件即可 S7-200系列可编程控制器最多有34个中断源,•分为三大类:通信中断 输入/输出(I/O)中断 时基中断 1、中断源分类 q中断优先级由高到低依次是: 通信中断、输入输出中断、时基中断q每种中断中的不同中断事件又有不同的优先权q主机中的所有中断事件及优先级如下表2、中断优先级 M 一个程序中总共可有128个中断M S7-200在任何时刻,只能执行一个中断程序;在中断各自的优先级组内按照先来先服务的原则为中断提供服务,一旦一个中断程序开始执行,则一直执行至完成,不能被另一个中断程序打断,即使是更高优先级的中断程序;M 中断程序执行中,新的中断请求按优先级排队等候,中断队列能保存的中断个数有限,若超出,则会产生溢出。

3、CPU响应中断的原则 二、中断指令二、中断指令 中断程序是为处理中断事件而事先编好的程序中断程序不是由程序调用,而是在中断事件发生时由操作系统调用 注意注意:(1)在 中 断 程 序 中 禁 止 使 用 DISI、 ENI、HDEF、LSCR、END指令2)中断程序最后一条指令一定是无条件返回指令RETI(省略),也可以是有条件返回指令CRETI结束中断程序3、中断程序(中断服务程序 编写由I0.0的上升沿产生的中断事件的初始化程序主程序:电动机起保停电路,I0.0是停止按钮编写中断服务程序:中断发生后Q0.1置位报 警连接中断:用SM0.1驱动ATCH连接中断事件0,驱动(ENI)开全局中断 定时器中断•S7-200有2个定时中断:2个定时器中断•定时中断中断0事件号10,定时中断1事件号11,主要用于对输出端的间隔采样,由SMB34给出采样间隔时间,在1~255ms之间•定时中断T32中断和定时器T96中断,等于设定值发生中断间隔时间可以在1~32000ms之间采样或定时 编程定时器T32中断,实现跑马灯效果•用SM0.1连接开全局中断ENI和连接事件号21。

•连接自激励形式定时器给设定值SMW28•用循环移位指令编写子程序 三 高速计数器 采用普通的计数器,其输入脉冲的频率要显著低于PLC扫描的频率在进行电动机的转角控制时,常常使用编码器输出电机转动信息,编码器的A、B脉冲的频率很高上百KHz,只能使用PLC内部的高速计数器对脉冲计数高速计数器计数速度不受扫描的影响,采用中断方式工作1. 高速计数器介绍2. 高速计数指令及应用 3、高速计数器自动变成向导 高速计数器在程序中使用时的地址编号用 HCn来 表 示 ( 在 非 程 序 中 有 时 用HSCn),HC表编程元件名称为高速计数器,n为编号1. 高速计数器介绍 高速计数器中断事件大致分为3类:当前值等于预设值中断、输入方向改变中断和外部复位中断所有高速计数器都支持当前值等于预设值中断3221 .高速计数器输入端的连接 2. 高速计数器的工作模式高速计数器的工作模式 •高速计数器有6种编号,12种工作模式.HSC0和HSC4有模式0、1、3、4、6、7、8、9、10;HSC1和HSC2有模式0、1、2、3、4、5、6、7、8、9、10、11;HSC3和HSC5只有模式0 3.高速计数器的控制字和状态字.高速计数器的控制字和状态字 •每个高速计数器都有固定的特殊功能存储器与之相配合,完成高速计数功能。

高速计数器的使用高速计数器的使用 (1)HDEF指令•HDEF,定义高速计数器指令使能输入有效时,为指定的高速计数器分配一种工作模式,即用来建立高速计数器与工作模式之间的联系•梯形图指令盒中有两个数据输入端:HSC,高速计数器编号,为0~5的常数,字节型;•MODE,工作模式,为0~11的常数,字节型高速计数指令 •HSC,使用高速计数器指令•使能输入有效时,根据高速计数器特殊存储器位的状态,并按照HDEF指令指定的工作模式,设置高速计数器并控制其工作•梯形图指令盒数据输入端N:高速计数器编号,为0~5的常数,字型2)HSC指令 原理: 每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值要设置高速计数器的新当前值和新预置值,必须设置控制字节令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区然后执行HSC指令,将新数值传输到高速计数器 高速计数器使用原理高速计数器使用原理 •(1)用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作• (2) 在初始化的子程序中,根据希望的控制设置控制字(SMB37、SMB47、SMB137、SMB147、SMB157) •(3)执行HDEF指令,设置HSC的编号(0-5),设置工作模式(0-11)。

• (4) 用新的当前值写入32位当前值寄存器(SMD38,SMD48,SMD58 ,SMD138, SMD148, SMD158) •(5)用新的预置值写入32位预置值寄存器(SMD42 ,SMD52, SMD62, SMD142 ,SMD152, SMD162) •(6)、 (7) 、(8)中断事件(事件13、14、15)与一个中断程序相联系•(9)执行全局中断允许指令(ENI)允许HSC中断 •(10)执行HSC指令使S7-200对高速计数器进行编程•(11)结束子程序高速计数器指令初始化 (1)主程序例例5-4高速计数器的应用举例高速计数器的应用举例 ((2)初始化的子程序)初始化的子程序 高速计数编程向导•从SETP7编程软件的主菜单“工具”—指令向导—HSC进入高速计数器编程向导按照要求一步一步输入相应参数,就可以完成高速计数器编程,无需记忆相关的特殊功能寄存器 四、高速脉冲输出介绍四、高速脉冲输出介绍•在PLC的应用中可以通过PWM调制方式输出模拟量,如直流电动机调速;还可以通过设定输出脉冲的个数用于步进电动机的控制;这些脉冲的频率较高,这就是高速脉冲输出•高速脉冲有指定的输出端,一般是Q0.0和Q0.1,必须是晶体管输出型PLC,而继电器输出的PLC没有高速脉冲输出端口。

高速脉冲相关的特殊功能继电器高速脉冲相关的特殊功能继电器 1、高速脉冲串输出、高速脉冲串输出PTO功能:能够指定输出方波的个数,其输出脉冲的周期由特殊寄存器设定1)周期和脉冲数(2)PTO的种类(3)中断事件类型(4)PTO的使用 PTO相关的特殊寄存器•SMW68用于设定Q0.0输出脉冲的周期2~65535ms•SMW78用于设定Q0.1输出脉冲的周期•SMD72用于设定Q0.0输出脉冲的个数:0~4294976295•SMD82用于设定Q0.1输出脉冲的个数•SM67.3/ SM77.3分别用于设定Q0.0/Q0.1的PTO的时基us或ms•用于设定Q0.1PTO的时基us或ms•SM67.6、SM77.6分别用于Q0.0/Q0.1PTO/PWM方式的选择,0为PTO模式,1为PWM模式•SM67.7、SM77.7用于设定Q0.0、Q0.1高速输出0禁止1允许 应用实例应用实例(1)控制要求 步进电机转动过程中,要从A点加速到B点后恒速运行,又从C点开始减速到D点,完成这一过程时用指示灯显示电机的转动受脉冲控制,A点和D点的脉冲频率为2kHz,B点和C点的频率为10kHz,加速过程的脉冲数为400个,恒速转动的脉冲数为4000个,减速过程脉冲数为200个。

2)设计思路:设定特殊寄存器的值,按阶段满足要求即可 确定脉冲发生器及工作模式 î 设置控制字节 î 写入周期值、周期增量值和脉冲数 î 装入包络表首地址 î 中断调用 î 执行PLS指令 (3)程序实现 2、PWM调制•PWM调制是输出频率和占空比可调的高速脉冲•利用PWM调制经过滤波可以获得模拟电量输出,用于调节光源亮度或直流电动机的转速•周期和脉冲宽度的时基可以微妙或毫秒,设定数值为16位无符号数周期的范围在50~65535us到2~65535ms之间,脉冲宽度在0~65535us到0~65535ms之间•PWM脉冲只能从Q0.0或者Q0.1两者之间选择输出 相关特殊寄存器•在SMW68(Q0.0输出)或SMW78(Q0.1输出)中写入周期字•在SMW70(Q0.0输出)或SMW80(Q0.1输出)中写入脉宽值 高速脉冲输出的编程向导•高速脉冲输出可以使用编程向导自动生成程序,也可以使用指令编写程序•由于需要设定特殊功能寄存器数值,可以设一初始化子程序•编程向导使用与高速计数器相似 五 实时钟指令•利用时钟指令可以实现调用系统实时钟或对时钟进行设定,用于运行记录、实时控制。

•实时钟指令有两条:读实时钟和设定实时钟设定实时钟是用于对表校准,读实时钟可用于定时采样记录或实时控制•T是VBXX开始的8个字 节缓冲区从低到高分 别对应:年、月、日、 时、分、秒、周 六 PID指令 七 文本显示器的使用•文本显示集简易键盘与LCD显示于一体,可以通过键盘按键代替部分操作按钮,通过显示屏显示变量、汉字,还可以对变量进行修改•使用STEP7的编程向导既•可以完成TD400的组态,•操作简单使用方便,成本•低应用广泛 递进式练习•任务:设计一个用开关指令实现的单按钮控制•任务分析:两个起保停电路,一个实现启动控制,一个实现停止控制要用第一条网络用于停止控制,第二条用于启动控制两个网络相互控制 电路改进•用于停止控制的自保还可以去掉•如果改变顺序,则将先执行启动,然后立即执行停止,因此电路将不能启动 功能第一提升•单按钮两台电动机,按一下启动电动机M1,再按一下第一台电动机继续运行,并启动第二台电动机,再按一下两台电动机一起停止•任务分析:需要三个起保停控制电路,第一台电动机起保停在最下面,第二台在中间,停止控制在最上面 单按钮两台电动机控制•第一次按按钮时,由于Q0.1没有闭合,因此只能执行第三条网络,启动第一台电动机。

•第二次按按钮,由于Q0.0已经闭合,因此第二条网络被执行,启动第二台电动机•第三次按按钮时,由于Q0.1闭合,因此M0.0闭合,于是第一台、第二台停止 单按钮顺序启动顺序停止•增加一个网络,实现了按4次按钮时全部停止•按第三次按钮时,没有变化•这样只需改造第三、四条网络使得按动第三次时能够停止即可 •改造情况如下:•用M0.1的常闭触点控制Q0.0,实现了第三次按按钮时,M1停止•由于停止Q0.0时会影响网络三,因此用M0.1常闭触点与Q0.0常开并联为了按第四次时Q0.1能停止,再串M0.0常闭即可•这样你能够做出单按钮三台电动机顺序启动、顺序停止控制电路么? 采用软件延时的流水灯控制•内嵌两个循环,总次数达到900000000次,•不能仿真,只能下载到PLC中。

下载提示
相似文档
正为您匹配相似的精品文档