版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、S7-200PLC的基本功能指令张泽礼概述 基本功能指令是PLC多位二进制数同时操作的指令。 按照操作数据的位数有:字节操作指令,字操作指令,双字操作指令之分。 按照操作数据类型分为:字节数据(含ASCII)码,整数I(有符号字数据),实数R(双字浮点数据)。 按照操作的性质分为:传送指令、转换指令、整数运算指令、实数运算指令(包括了函数运算指令)、逻辑运算指令、控制指令、移位及循环移位指令等。 按照上述说法,比较指令是介于功能指令和开关指令中间的指令,其运算形式是多位数据的比较,其结果是开关的形式出现。v 一PLC的数据类型v二 整数运算指令 v 三逻辑运算指令 v 四实数运算指令v 五移位
2、及循环移位指令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.
3、4、 I0.3、 I0.2、 I0.1、 I0.0构成,其中I0.0是最低位,I0.7是最高位,不同位置代表不同的权重。 这样可以表示256种状态,表示数据0255。 字节数据可以用16进制表示或者10进制表示。16进制表示数值在16#0016#FF之间。 两种进制可以相互转换:位置I0.7I0.6I0.5I0.4I0.3 I0.2 I0.1I0.0权重1286432168421PLC的字节编址方法 字节编址用第一个字母表示寄存器的类型,第二个字母B表示字节编址。例如IB0、QB0、MB0、VB0、SMB0等。 有IB0IB15输入映像寄存器,共计256点。 有QB0QB15共16个输出映像寄
4、存器,共计256点,这就决定可以扩展的I/O数目。 同样有MB0MB31共32个共计256个中间继电器。VB0VB2047(CPU221/222)或者VB0VB5119(CPU224/226)变量存储单元。3、字数据及 字数据(word)是计算机一次能够处理二进制数据的位数(等于计算机的字长),一般是8的倍数。例如奔腾4P4C以前PC为32位机,以后为64位机。PLC的CPU的字长是16位的,因此其字数据位16位二进制数据。 字数据可以表示65536中状态,可以表示的无符号整数065535,可以表示有符号整数为-32768+32767之间。字编址 字数据存储一般占两个字节,例如IW0由IB0和
5、IB1组成,其中IB0是高8位,IB1是地8位。IW1是由IB1和IB2构成,其中I2.0是最低位,I1.7是最高位或符号位。 西门子PLC中的定时器和计数器的字长是16位的字数据,但是是有符号整数,设定值在132767之间。使用CTUD加减计数器就可以出现负值。4、双字数据 双字数据(double word)用D表示,是32位数据,可以表示状态数232=4294967296(约43亿)种。表示无符号数在04294967295之间,表示的有符号数-147483648+214483647之间。 双字数据在存储单元中由四个字节组成。例如ID0由IB0IB3组成,其中I0.7是最高位,I3.0是最低
6、位。同样可知QD0、MD0等也是由四个字节的存储单元构成(QD0、ID0需要增加EM223 I/O扩展模块)。 双字数据有双字有符号整数和实数两种。双字存储元件编址 地址分配情况:以 VD100为例,由4个存储单元组成VB100是高8位,VB103是低8位,VB101、VB102是中间位。 实数也是双字数据,只是带有小数,因此编址与双字整数相同。5、数据类型 整数:整数是没有小数的数据,分为有符号整数和无符号整数。无符号整数的最高位表示数据的最高位;有符号整数的最高位是符号位,0表示整数1表示负数。 实数(浮点数float):实数是有符号带小数的数据,数据长度为4个字节,在传送指令中使用MOV
7、_R指令,可以直接输入正负小数(7位)数据类型编程练习 使用开关指令的抢答器设计和使用功能指令的抢答器设计。 使用功能指令编写程序比开关指令简单的多。二 整数运算指令 1、整数与双整数加减指令 2、整数乘除指令LADLAD功能功能IN1+IN2=OUTIN1-IN2=OUTIN1+IN2=OUTIN1-IN2=OUT I是16位有符号数,DI是32位有符号数。ADD_I是将两个16位有符号整数相加后产生16位有符号整数,结果大于32767时产生溢出SM1.1置位。 SUB_DI是双整数减法运算,结果为双整数。如果结果为0,则SM1.0置位。 加法运算仿真,ADD_I是两个16位二进制数相加,结
8、果也是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功能IN1IN1* *IN2IN2=OUT=OUTIN1/IN2=IN1/IN2=OUTOUTIN1IN1* *IN2=IN2=OUTOUTIN1/IN2=IN1/IN2=OUTOU
9、TIN1IN1* *IN2=IN2=OUTOUTIN1/IN2=IN1/IN2=OUTOUT 整数乘法指令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,
10、逐次乘2,则M0.7就会出现高低电平的变化。I0.0通断次数16#MW0值2#MW0值M0.7的值初始值 0次5555010101010101010101AAAA1010101010101010125554010101010101010003AAA81010101010101000145550010101010101000005AAA01010101010100000165540010101010100000007AA801010101010000000185500010101010000000009AA00101010100000000011054000101010000000000011A
11、8101010000000000011250000101000000000000013A00010100000000000001144000/5555010000000000000003、递增及递减指令 递增指令每执行一次存储单元的内容加1,可以用于控制循环次数,也可以用于加法计数运算。按存储单元长度分为:字节增量指令,字增量指令,双字增量指令三种。 递减指令每执行一次存储单元的内容减1,可以用于控制循环次数,也可以用于减法计数运算。按存储单元长度分为:字节减量指令,字减量指令,双字减量指令三种。ENENOINOUTINC_B原理:原理: 用于使能输入有效时,输入数用于使能输入有效时,输入数I
12、N加加1 或减或减1,得到的结得到的结果通过果通过OUT指定的存储器单元输出。指定的存储器单元输出。举例: 食品加工厂对饮料生产线上的盒装饮料进行计数,每24盒为一箱,要求能记录生产的箱数。LDI0.0/增脉冲输入端LDC30/复位输入端/循环计数CTU C30, +24/增计数指令/设定脉冲数为 24LDC30/装入计数器触点/作为双字增的/脉冲输入INCDVD100/双字增指令/增增减减指指令令的的应应用用增/减量指令的应用 用增量指令实现单按钮控制起保停控制。 每当I0.0通断一次,M0.0奇偶变化一次,从而使得Q0.0状态随之反转一次。三、实数运算指令 实数运算指令一般用于模拟量的运算
13、处理,如PID控制等。常用的实数运算分为以下几种: 1、实数加减运算 2、实数乘除运算 3、函数运算 实数可以理解为带符号的小数,因为是浮点数,小数的实数可以理解为带符号的小数,因为是浮点数,小数的点的位置是任意的。注意的是实数是双字数,其地址单元必点的位置是任意的。注意的是实数是双字数,其地址单元必须是四字节。须是四字节。将两个实数(32位)相加,产生32位结果从OUT输出。MOVD IN1,OUT+R IN2,OUT将两个实数(32位)相减,产生32位结果从OUT输出。MOVD IN1,OUT-R IN2,OUT2、实数乘除运算两个实数IN1和IN2相乘,产生的结果32的积从OUT输出。如
14、果产生结果溢出SM1.1置1。MOVD IN1,OUT*R IN2,OUT两个实数IN1和IN2相乘,产生的结果32的积从OUT输出。如果产生结果溢出SM1.1置1。MOVD IN1,OUT*R IN2,OUT函数运算的应用常常与模拟量模块相关,例如测量电路的电压有效值,电流的有效值,电功率、功率因数及电能3.数学函数变换指令数学函数变换指令注意:SIN COS TAN 的操作数为弧度值。3、函数指令 注意当使用三角函数运算指令时,输入角度为弧度值。使用函数运算指令实现电压电流有效值的测量 假设交流电压从AIW0输入,交流电流从AIW2输入(均应设置为双极性)。 通过PLC内部运行后将电压、电
15、流的有效值、电功率、功率因数及消耗电能从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、的结果是16#FF。 或逻辑运算分为字节或逻辑运算、字或逻辑运算和双字或逻辑运算三种情况。逻辑等效3 异或逻辑 将参与运算的多位二进制数逐位进行异或运算,同则出0,异则出1。例如:16#FF与16#FF进行与逻辑运算后的结果是16#0。 异或逻辑运算分为字节异或逻辑运算、字异或逻辑运算和双字异或逻辑运算三种情况。逻辑等效4 取反 将参与运算的多位二进制数逐位进行取反运算,例如:16#FF进行取反逻辑运算后的结果是16#0。 取反逻辑运算分为字节取反、字取反和双字取反逻辑运算三种情况。逻辑等效 位逻辑取反: 功能指令取反应用举例:使用取反指令实现单按钮起保停控制 原理:PLC启动时MB0=16#
17、0,通断一次I0.0后MB0=16#FF,再通断一次又恢复到16#0。 可以用M0.0M0.7中任意位驱动Q0.0。五、数据传送指令五、数据传送指令 传送指令的作用是从源地址读出数据后,将源地址的数据复制到目标地址当中,源地址中内容不变,目标地址中的原内容被覆盖。 1. 单数传送指令:MOV 分为:字节传送、字传送、双字传送 2. 块传送(数据组): BLKMOV 分为:字节块传送、字块传送、 双字块传送1、单一传送、单一传送 指令可用用来传送单个数据,数据类型可以是字节、字、双字、实数 。2. 块传送块传送 指令可用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字
18、块。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 置
19、1。种类:按参与移位数据的位数分为:字节左移、字左移、双字左移三种。作用:左移位具有二进制数乘法运算作用,左移移位相当于乘2,左移n位相当乘2n。高位低位SM1.1用左移指令实现流水灯控制 用常量每次移动不同位数可以实现循环移位控制形成流水灯效果。 当移位到最高位后,移位变量自动清零,从而实现了循环左移,也可以实现循环右移控制。利用自动归位变量移位实现循环左移 用变量和条件赋值实现循环左移控制。 当移位到最高位后,再执行一次移位时会发生溢出,置位SM1.1,用SM1.1再次赋值,可以循环移位流水灯控制。2 右移位指令右移位指令(SHR)原理:使能输入有效时,将输入IN的无符号数字节、字或双字中
20、的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1 中种类:按参与移位数据的位数分为:字节右移、字右移、双字右移三种。应用:右移位具有二进制数乘法运算作用,左移移位相当于除2,左移n位相当除2n。高位低位SM1.1右移位指令应用 同样可以实现循环移位控制。也可以用于实现多台电动机的顺序启动,逆序停止控制。 电路功能:顺序启动,同时停止。 如要实现顺序启动顺序停止控制,可采用两个子程序实现。3.循环左移(循环左移(ROL)说明:移位数据存储单元移出端(最高位)与移入端(最低说明:移位数据存储单元移出端(最高位)与移入端(最低位)相连,同时最高位又与
21、位)相连,同时最高位又与SM1.1(溢出)相连。(溢出)相连。种类:字节循环左移、字循环左移、双字循环左移三种。种类:字节循环左移、字循环左移、双字循环左移三种。例如:移位数据的最右端位移入最左端,同时又进入例如:移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。始终存放最后一次被移出的位。高位低位SM1.1用循环移位实现单按钮控制 基本思路:给中间字节变量MB0赋以花数,用控制开关控制其移位。然后进行位连接。用循环左移实现流水灯控制 变量每次移动一位实现循环左移流水灯控制。常数每次移动不同位数实现流水灯控制 移位次数自动调节如采用加1指令,可以实现循环
22、左移。 移位次数自动调整采用减1指令,可实现循环右移。4、循环右移(循环右移(ROR)SM1.1说明:移位数据存储单元的移出端(最低位)与移入端说明:移位数据存储单元的移出端(最低位)与移入端(最高位)相连,同时最低位又与(最高位)相连,同时最低位又与SM1.1(溢出)相连。(溢出)相连。种类:字节循环左移、字循环左移、双字循环左移三种。种类:字节循环左移、字循环左移、双字循环左移三种。例如:移位数据的最右端位移入最左端,同时又进入例如:移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。始终存放最后一次被移出的位。移位及循环移位指令应用 使用循环移位指令
23、,可以实现流水灯效果,可以产生步进电动机的驱动脉冲,移位方向用于控制步进电动机转动方向。 利用移位指令也可以实现起保停单按钮控制。5 移位寄存器指令(SHRB) 移位寄存器是将串行数据转化成并行数据的器件,在S7-200中设有移位寄存器指令,而且移位寄存的位数可以在164位之间任意选择。但是移位方向只能左移不能右移。 其中EN是使能输入控制 端,DATA是数据输入端 为位地址,S_BIT是移位 寄存器的最低位,N是移 位寄存器的长度移位寄存器指令的应用 使用移位寄存器指令可以从DATA位地址输入端输入串行信号,从移位寄存器中得到转换后的并行数据。 实例:用移位寄存器指令实现多台电动机的顺序启动
24、顺序停止控制。应用实例 用寄存器移位指令实现流水灯效果。 将寄存器的首位连接起来,可实现循环左移位,不能显示循环右移。七转换指令 & 1、数据类型转换指令、数据类型转换指令 & 2、编码和译码指令、编码和译码指令 & 3、七段译码指令、七段译码指令 & 4、字符串转换指令、字符串转换指令 一、数据类型转换1字节型数据与字整数之间转换的指令字节型数据与字整数之间转换的指令 1、数据类型的转换指令 传送指令、比较指令、逻辑运算指令还是整数运算指令都是相同数据类型的数据,而且使用相应的数据类型的指令,这对不同数据类型的数据运算带来了不方便,需要进行数据转换。 数据转换
25、有:字节与字相互转换,字与双字相互转换,双字与实数相互转换,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面板上有两个模
26、拟电位器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,V
27、D200 将其转换成为双字后传入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 。双字整数与实
28、数之间的转换 DTR指令将32位整数转换成实数,小数点后面为0。例如除法指令有整数除法指令和实数除法指令。整数除法得到是商(整数)和余数(整数),相当于分数。实数除法得到是小数。 程序实例:1111/100,采用整数除法的结果是商11,余数11。采用实数除法指令结果是11.11,但是需要先将整数转换成为实数才能使用实数除法运算。2字整数与双字整数之间的转换字整数与双字整数之间的转换 BCD码与整数的转换 BCDI指令:将10进制数转换成16进制数。 IBCD指令:将16进制数转换成10进制数。 小于10的数不转换,大于10的加6使其提 前进位。DECO译码指令 功能:将输入字节数据(IN)的低
29、4位(半个字节)表示的输出字的位号,将输出字(两个字节)相应的位号置1,输出字的其他位号置零。 语句表STL:DEC0 IN,OUT 数据类型:IN字节型整数,OUT字型数据。用译码指令实现流水灯: 由计数器产生相应输出端做译码指令的地址码,输出到QW0,从而实现流水效果。 如果外界译码芯片,只需要4位端口,可输出16路流水灯效果。ENCO编码指令 功能:将输入(IN)字(双字节)数据的最低有效位号(其值为1)的位号写入输出字节(OUT)的最低4位中。 STL格式:NECO IN,OUT; 数据格式:输入双字节,输出字节。 应用示例:多路输入单路输出的选择开关。应用实例 用译码指令实现的抢答器
30、,由QB0输出台号。如用七段数字显示译码指令译码,可以数码管显示台号。 台号116,可以用4位二进制显示0F。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中存放的AS
31、CII码(L、M、X、Y)转换为二进制数据存放在VB10开始的四个单元中。 ATH VB0,VB10,4HTA指令(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,43BCD码与整数之间的转换的指令格式码与整数之间的转换的指令格式 二、编码和
32、译码指令 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 例:例:DECOVB
33、0, 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的功能相反
34、。的功能相反。注意:注意: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表格的首地址,用以指明被访问的表格。当使能输入有效时,将输入字型数据添加
35、到指定的表格中。格式:格式:AD_T_TBL特点特点: 表存数时,新存的数据添加在表中最后一个数据的后面。每向表中存一个数据,实际填表数EC会自动加1。二、表取数指令 (1) FIFO,先进先出指令 (2) LIFO,后进先出指令 (1) FIFO,先进先出指令,先进先出指令 p当使能输入有效时,从TBL指明的表中移出第一个字型数据并将其输出到DATA所指定的字单元。pFIFO表取数特点:p取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数EC会自动减1。p指令格式:FIFO TBL, DATAp例:FIFO VW10, AC0(2
36、) LIFO,后进先出指令,后进先出指令 u当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元。uLIFO表取数特点:u取数时,移出的数据是最后进入表中的数据。每次从表中取出一个数据,剩余数据位置保持不变,实际填表数EC会自动减1。u指令格式:LIFO TBL, DATAu例:例:LIFOVW10, AC0三.表查找指令 vFND?,表查找指令。通过表查找指令可以从字型数表中找出符合条件的数据所在的表中数据编号,编号范围为099。v在梯形图中有4个数据输入端:TBL表格的首地址,PTN是用来描述查表条件时进行比较的数据;CMD是比较运算符“?”的编码,它
37、是一个14的数值,分别代表=、运算符;INDX用来指定表中符合查找条件的数据的地址。指令:指令:TBL_FIND八 程序控制类指令 u 1、系统控制类指令u 2、跳转、循环指令u 3、子程序调用指令u 4、顺序控制指令 1、系统控制类指令 1.1. 结束指令结束指令 结束指令有两条:END和MEND。两条指令在梯形图中以线圈形式编程。 END,条件结束指令。使能输入有效时,终止用户主程序。 MEND无条件结束指令。无条件终止用户程序的执行,返回主程序的第一条指令。 指令格式:END(无操作数)STOP,暂停指令。使能输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终
38、止用户程序的执行。 STOP指令在梯形图中以线圈形式编程。指令不含操作数。 指令格式:STOP (无操作数)1.2. 停止指令停止指令1.3. 看门狗复位指令 WDR,看门狗复位指令。当使能输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次。用本指令可用以延长扫描周期,从而可以有效避免看门狗超时错误。 指令格式:WDR(无操作数)L DS M 5 .0/检 查I/O 错 误OS M 4 .3/运 行 时 刻 检 查 编 程OI0 .3/外 部 切 换 开 关S T O P/条 件 满 足 , 由R U N/ 切 换 到S T O P 方 式/L DI0 .5/外 部 停 止 控
39、制E N D/停 止 程 序 执 行/L DM 0 .4/用 触 点 重 新 触 发W D R/看 门 狗 定 时 器AI0 .2/LDSM5.0/检查 I/O 错误OSM4.3/运行时刻检查编程OI0.3/外部切换开关STOP/条件满足,由 RUN/ 切换到 STOP 方式/LDI0.5/外部停止控制END/停止程序执行/LDM0.4/用触点重新触发WDR/看门狗定时器AI0.2/ 2、跳转、循环指令 2.1. 跳转指令(1)跳转指令 JMP,跳转指令。使能输入有效时,使程序流程跳到同一程序中的指定标号n处执行。(2)标号指令 LBL,标号指令。标记程序段,作为跳转指令执行时跳转到的目的位置
40、。操作数n为0255的字型数据。应用实例:用跳转指令及置位复位指令实现单按钮起保停控制 说明:为了避免出现先说明:为了避免出现先置位后复位或者先复位置位后复位或者先复位后置位的两次动作,使后置位的两次动作,使用跳转指令用跳转指令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、循环指令
41、、循环指令 循环指令用于一段程序重复多次执行控制。重复执行的程序段从FOR语句开始至NEXT为止。 循环次数由循环计数器控制,每执行一次循环次数计数器加1,到达设定值时结束循环。其循环的次数为循环计数器的设定值-初始值。 使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX增1,达到终止值FINAL时,循环结束。 使能输入无效时,循环体程序不执行。每次使能输入有效,指令自动将各参数复位。 由FOR和NEXT指令构成程序的循环体。FOR指令标记循环的开始,NEXT指令为循环体的结束指令。 INDX是当前值计数器即循环计数器,INIT是循序计数器的初始
42、值,FINAL是循环终止值即设定值。 INDX、INIT、FINAL均为16位的字寄存器,如VW、IW、QW、MW、SW、SMW、LW、T、C、AC。 应用实例 用循环指令实现延时控制。(不能仿真)3、子程序调用指令 在电气控制系统中,有时需要处理一在电气控制系统中,有时需要处理一些特定事件、突发事件等,这些事件处理些特定事件、突发事件等,这些事件处理还需要继续执行正常的工作。这种情况适还需要继续执行正常的工作。这种情况适合用子程序进行处理,当满足条件时执行合用子程序进行处理,当满足条件时执行子程序,不满足条件时子程序不被执行。子程序,不满足条件时子程序不被执行。其相关内容有:其相关内容有:
43、1.1.建立子程序建立子程序 2.2.子程序调用子程序调用 3.3.带参数的子程序调用带参数的子程序调用1. 建立子程序 (1)从“编辑”菜单,选择插入子程序;(2)从“指令树”,用鼠标右键单击“程序块”图标,并从弹出菜单选择插入子程序;(3)从“程序编辑器”窗口,用鼠标右键单击,并从弹出菜单选择插入 子程序。2. 子程序调用 (1)子程序调用和返回指令 子程序调用 SBR子程序条件返回 CRET (1)子程序参数 (2)局部变量的类型 (3)数据类型 (4)建立带参数子程序的局部变量表(5)带参数子程序调用指令 3. 带参数的子程序调用 带参数的子程序的概念及用途 从主程序进入子程序,有时主
44、程序的某些参数需要传递到子程序当中,这在子程序调用指令中包含相应参数,它可以在子程序和调用程序之间传送。 如果子程序要传递参数和局部变量则称为带参数的子程序(可移动子程序),应尽量使用局部变量L,避免使用全局变量。 子程序的参数必须有一个符号名、一个变量类型和一个数据类型。 子程序最多可以传递16个参数,传递的参数在局部变量表中定义。局部变量表名称变量类型 数据类型注释L0.0IN1INBOOLLB1IN2INBYTEL2.0IN3INLD3IN4DWORDLD7INOUTIN_OUTREALLD11OUTOUTREAL说明 变量类型:局部变量表中有IN、OUT、IN/OUT和TEMP四种类型
45、。其中OUT和IN/OUT不允许使用常量。 前三种变量可以在子程序和调用程序之间传送。 TEMP是局部局部存储变量,只能用于子程序内部保存结果,不能在程序之间传送参数。 数据类型包括:能流、位、字节、字、双字,整数和实数型。带参数子程序调用的指令格式 在子程序局部变量表中定义参数后自动生成调用指令块,指令块中自动包含子程序的输入参数和输出参数。 在主程序插入调用指令。应用举例 多种工作方式的可编程控制彩虹灯。 方式1:左循环每次一位。 方式2:左循环每次两位。 方式3:右循环每次一位。 方式4:右循环每次二位。 方式5:左循环逐个点亮然后逐个熄灭。 方式6:右循环逐个点亮然后逐个熄灭。 可编程
46、彩虹灯控制程序4、顺序控制指令(1)顺序步开始指令 (LSCR)(2)顺序步结束指令 (SCRE)(3)顺序步转移指令 (SCRT)5.1 程序控制类指令 例5-1使用顺序控制结构,编写出实现红、绿灯循环显示的程序(要求循环间隔时间为1s)。 5.1 程序控制类指令 第三章 S7-200的特殊功能指令用主要内容 一 立即类指令 二 中断指令 三 高速计数器 四 高速脉冲输出 五 实时钟指令 六 PID指令 七 文本显示器TD400本章学习要求& 重点内容:重点内容: S7-200功能指令的作用及使用方法& 了解内容了解内容: 系统控制类指令的应用 &难点内容难点内容:
47、高速计数器指令 一、立即类指令 普通指令是按照时间节拍去采样输入端子状态,和刷新输出的这样对于需要快速处理的问题会造成反映迟缓。例如电子装置过载能力很差,如果不及时采取措施将造成经济损失。 立即类指令分为立即输入和立即输出两大类。分别用触点和线圈表示。二中断指令 1、中断源中断源2 2、中断指令、中断指令 3、中断程序中断程序4 4、文本显示器、文本显示器 二中断指令 概念: 中段就是终止当前正在运行的程序,去执行为立即响应的信号而编制的中断服务程序,执行完毕再返回原先终止的程序并继续执行。 中断源 中断源是指发出中断请求的事件,又叫中断事件。 中断服务程序 用于处理中断事件的子程序叫中断服务
48、程序。中断服务程序不是由指令调用,而是中断事件调用。 执行中断流程 编写中断服务程序完成后,进行相应的设置:开全局中断,连接中断事件即可。 S7-200系列可编程控制器最多有34个中断源, 分为三大类:通信中断 输入/输出(I/O)中断 时基中断 1、中断源分类q中断优先级由高到低依次是: 通信中断、输入输出中断、时基中断。q每种中断中的不同中断事件又有不同的优先权。q主机中的所有中断事件及优先级如下表。2、中断优先级M 一个程序中总共可有128个中断。M S7-200在任何时刻,只能执行一个中断程序;在中断各自的优先级组内按照先来先服务的原则为中断提供服务,一旦一个中断程序开始执行,则一直执
49、行至完成,不能被另一个中断程序打断,即使是更高优先级的中断程序;M 中断程序执行中,新的中断请求按优先级排队等候,中断队列能保存的中断个数有限,若超出,则会产生溢出。3、CPU响应中断的原则二、中断指令二、中断指令 中断程序是为处理中断事件而事先编好的程序。中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。 注意注意:(1)在中断程序中禁止使用DISI、ENI、HDEF、LSCR、END指令。(2)中断程序最后一条指令一定是无条件返回指令RETI(省略),也可以是有条件返回指令CRETI结束中断程序。3、中断程序(中断服务程序编写由I0.0的上升沿产生的中断事件的初始化程序。主程序:
50、电动机起保停电路,I0.0是停止按钮。编写中断服务程序:中断发生后Q0.1置位报 警。连接中断:用SM0.1驱动ATCH连接中断事件0,驱动(ENI)开全局中断。定时器中断 S7-200有2个定时中断:2个定时器中断。 定时中断中断0事件号10,定时中断1事件号11,主要用于对输出端的间隔采样,由SMB34给出采样间隔时间,在1255ms之间。 定时中断T32中断和定时器T96中断,等于设定值发生中断。间隔时间可以在132000ms之间采样或定时。编程定时器T32中断,实现跑马灯效果 用SM0.1连接开全局中断ENI和连接事件号21。 连接自激励形式定时器给设定值SMW28。 用循环移位指令编
51、写子程序。三高速计数器 采用普通的计数器,其输入脉冲的频率要显著低于PLC扫描的频率。在进行电动机的转角控制时,常常使用编码器输出电机转动信息,编码器的A、B脉冲的频率很高上百KHz,只能使用PLC内部的高速计数器对脉冲计数。高速计数器计数速度不受扫描的影响,采用中断方式工作。1. 高速计数器介绍2. 高速计数指令及应用 3、高速计数器自动变成向导高速计数器在程序中使用时的地址编号用HCn来表示(在非程序中有时用HSCn),HC表编程元件名称为高速计数器,n为编号。1. 高速计数器介绍高速计数器中断事件大致分为3类:当前值等于预设值中断、输入方向改变中断和外部复位中断。所有高速计数器都支持当前
52、值等于预设值中断。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,定义高速计数器指令。使能输入有效时,为指定的高速计数器分配一种工作模式,即用来建立高速计数器与工作模式之间的
53、联系。 梯形图指令盒中有两个数据输入端:HSC,高速计数器编号,为05的常数,字节型; MODE,工作模式,为011的常数,字节型。高速计数指令 HSC,使用高速计数器指令。 使能输入有效时,根据高速计数器特殊存储器位的状态,并按照HDEF指令指定的工作模式,设置高速计数器并控制其工作。 梯形图指令盒数据输入端N:高速计数器编号,为05的常数,字型。(2)HSC指令原理: 每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志
54、位存储区。然后执行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, SMD
55、62, 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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭软装设计服务合同
- 专业空心砖采购合同
- 爱心捐赠合同
- 招标文件格式模板应用
- 2024影视广告合同的样本
- 2024机电安装合同范文
- 2021年注册城乡规划师《城乡规划原理》考试题库(含答案)
- 八大作业安全规范课件考核试卷
- 化学矿石的创新技术与新产品开发考核试卷
- erp借款合同范例
- 2022年考研数学(二)真题(含答案及解析)【可编辑】
- 护理类专业知识考试标准
- 新外研版高中英语选择性必修一Unit4 what inspires you课件
- 康复训练档案
- 原辅料控制程序
- 苏教版三年级上册数学《解决问题的策略-从条件想起》教学设计(区级公开课)
- 译林版英语五年级上册 Project2 教案
- 希望数学2019年四年级培训100题-答案
- 面包生产基本知识-面包生产常用原辅料(面包生产技术课件)
- 2023年秋季新改版青岛版(六三制)六年级上册科学教学计划
- 有限空间辨识与作业安全管理台账(模板)
评论
0/150
提交评论