2020/2/26机械工业出版社Page12020/2/26机械工业出版社Page1第3章S7-200的指令系统【学习目标】S7-200的编程元件及寻址方式基本指令运算指令数据处理指令表功能指令转换指令程序控制类指令特殊指令2020/2/26机械工业出版社Page22020/2/26机械工业出版社Page2S7-200的大多数指令要同具有一定大小的数据对象一起进行操作。基本数据类型位数范围布尔型BOOL1位范围:0,1字节型BYTE8字节范围:0~255字型WORD16字范围:0~65535双字型DWORD32双字范围:0~(232-1)整型INT16整数范围:-32768~+32767双整型DINT32双字整数范围:-231~(231-1)实数型REAL32浮点数3.1S7-200的编程元件及寻址方式3.1.1S7-200的基本数据类型2020/2/26机械工业出版社Page32020/2/26机械工业出版社Page3编程元件沿用了传统继电器控制系统中继电器的名称,并根据其功能,分别为输入继电器、输出继电器、通用辅助继电器、特殊标志继电器、变量存储器、局部变量存储器、顺序控制继电器、定时器和计数器等。在PLC内部并不真正存在这些实际的物理器件,与其对应的只是存储器的某些存储单元。◆输入继电器(I)◆输出继电器(Q)3.1.2编程元件2020/2/26机械工业出版社Page42020/2/26机械工业出版社Page4◆通用辅助继电器(M)◆特殊标志继电器(SM)◆变量存储器(V)◆局部变量存储器(L)◆顺序控制继电器(S)◆定时器(T)◆计数器(C)◆模拟量输入映像寄存器(AI)、模拟量输出映像寄存器(AQ)2020/2/26机械工业出版社Page52020/2/26机械工业出版社Page5◆高速计数器(HC)◆累加器(AC)3.1.3编程元件的寻址根据对存储器单元中信息存取形式的不同,对编程元件的寻址可分为直接寻址和间接寻址1、直接寻址根据数据类型,直接寻址方式又分为位寻址、字节寻址、字寻址和双字寻址四种。2、间接寻址间接寻址是指数据存放在存储器或寄存器,在指令中只出现所需数据所在单元的内存地址。存储单元地址的地址又称为地址指针。2020/2/26机械工业出版社Page62020/2/26机械工业出版社Page63.2基本指令3、装载指令LD(Load)、装载反指令LDN(LoadNot)与线圈驱动指令=(Out)。◆LD(Load):从梯形图左侧母线开始,连接动合触点◆LDN(LoadNot):从梯形图左侧母线开始,连接动断触点◆=(Out):线圈输出。建立地址指针;间接存取,在操作数的前面加“*”表示该操作数为一个指针;修改指针,处理连续数据时,通过修改指针可以很容易地存取相邻数据。3.2.1基本位操作指令2020/2/26机械工业出版社Page72020/2/26机械工业出版社Page74、触点串联指令A(And)、AN(AndNot)◆A(And):与操作指令,用于动合触点的串联。◆AN(AndNot):与非操作指令,用于动断触点的串联2020/2/26机械工业出版社Page82020/2/26机械工业出版社Page85、触点并联指令O(Or)、ON(OrNot)◆O(Or):或操作指令,用于动合触点的并联◆ON(OrNot):或非操作指令,用于动断触点的并联6、置位/复位指令S(Set)/R(Reset)◆S:置位指令,将由操作数指定的位(地址)开始的指定数目(可从1位至最多255位)的位置“1”,并保持。◆R:复位指令,将由操作数指定的位(地址)开始的指定数目(可从1位至最多255位)的位清“0”,并保持。7、立即存取指令I(LDI,LDNI,AI,ANI,OI,ONI,=I,SI,RI)它不受PLC循环扫描工作方式的影响,允许对输入/输出点进行直接快速存取。8、边沿脉冲指令EU(EdgeUp)/ED(EdgeDown)◆上升沿脉冲指令检测信号的上升沿,产生一个扫描周期宽度的脉冲◆下降沿脉冲指令检测信号的下降沿,产生一个扫描周期宽度的脉冲9、逻辑结果取反指令NO10、空操作指令NOP(NoOperation)使能输入有效时,执行空操作指令,将稍微延长扫描周期长度,但是这不影响用户程序的执行,也不会使输出断开。11、基本位操作指令的举例控制要求:使用两个按钮分别控制电动机的启动和停止。编程元件:I0.0-启动按钮;I0.1-停止按钮;Q0.0-电动机;Q0.1-启动指示灯;Q0.2-停止指示灯。电动机启动/停止控制方案1,2如图所示3.2.2逻辑堆栈指令1、电路块并联指令OLD(OrLoad)2电路块串联指令ALD(AndLoad)3、载入堆栈指令LDS、逻辑入栈指令LPS、逻辑出栈指令LPP、逻辑读栈指令LRD3.2.3定时器指令1、通电延时定时器指令TONI0.0PTT33当前值T33(bit)Q0.0PT2、保持型通电延时定时器TONRTONR指令用于积累许多时间间隔。当定时器的输入端IN为ON时,定时器开始计时,当定时器的当前值大于等于设定值时,定时器被置位,其常开触点闭合,常闭触点断开。I0.0PTT32当前值T32(bit)Q0.04、定时器应用(1)定时器的串级组合n个计时器的串级组合,可扩大延时范围T=T1+T2+…+Tn。(2)延时接通/断开电路3、断电延时定时器指令TOF(3)脉冲宽度可控制电路该电路在输入信号宽度不规范的情况下,要求在每—个输入信号的上升沿产生一个宽度固定的脉冲。I0.0Q0.02s2s2s(4)闪烁电路闪烁电路也称为振荡电路。闪烁电路实际上就是一个时钟电路,它可以是等间隔的通断,也可以是不等间隔的通断3.2.4计数器指令1、递增计数器指令CTU首次扫描CTU时,其状态位为OFF,当前值为0。当CU为ON时,在每个输入脉冲的上升沿,计数器计数1次,当前寄存器加1。如果当前值达到设定值PV,计数器动作,状态位为ON,当前值计数递增计数,最大可达32767。2、递减计数器指令CTD3、增/减计数器指令CTUD3.2.5比较指令1、数值比较指令数值比较指令用于两个相同类型的有符号或无符号数IN1和IN2(IN1和IN2为比较指令的操作数)的比较判断。这里用到的比较运算符有:等于(=)、大于等于(=)、小于等于(=)、大于()、小于()、不等于()。2、字符串比较指令3.3运算指令3.3.1四则运算及增减指令1、加法指令◆整数加法指令+I◆双整数加法指令+D◆实数加法指令+R◆减法指令◆乘法指令◆除法指令◆增减指令3.3.2数学函数指令S7-200除了四则运算指令及增减指令外,还有一类数学函数指令,其分为三角函数运算指令(包括三角函数的正弦函数指令、余弦函数指令和正切函数指令)、自然对数和指数指令、平方根函数指令。其中,CPU22X系列仅仅支持平方根函数指令,而CPU2241.0版本以上支持所有的数学函数指令。3.3.3逻辑运算指令逻辑运算指令是对逻辑数(无符号数)进行处理,包括逻辑与、逻辑或、逻辑异或和逻辑取反等操作3.4数据处理指令3.4.1数据传送指令(1)单个数据传送指令◆周期性传送指令◆立即传送指令立即传送指令分为立即读传送指令(BIR)和立即写传送指令(BIW)两种。(2)成组数据传送指令成组数据传送指令也称为块传送指令,它用来一次传送多个数据,将最多可达255个的数据组成的1个数据块,数据块的类型可以是字节块、字块和双字块,3.4.2移位指令(1)逻辑移位指令逻辑移位指令分为左移位和右移位指令两种。当每个位都被移出,左移位和右移位指令将用零填补每个位。(2)循环移位指令循环移位指令分为左循环移位和右循环移位指令。循环移位中被移位的数据是无符号的。在移位时,存放被移位数据的编程元件的移出端既与另一端连接,又与特殊继电器SM1.1连接,移出位在被移到另一端的同时,也进入SM1.1(溢出),另一端自动补0。(3)移位寄存器指令SHRB移位寄存器指令将数值移入移位寄存器,此指令用于排序和控制产品流或数据。3.4.3字节交换指令字节交换指令SWAP专用于对1个字长的字型数据进行处理,即将字型输入数据IN的高位字节与低位字节进行交换,因此又可称为半字交换指令3.5表功能指令3.5.1填表指令填表指令(ATT)(AddToTable)用于把指定的字型数据添加到数据表中。梯形图中该指令有2个数据输入端:DATA指出被填表的字型数据或其他地址;TBL为数据表的首地址,用以指明被填数据表的位置。3.5.2表取指令S7-200中,可以将数据表中的字型数据按先进先出或后进先出的方式取出送到指定的存储单元。所以表取数指令分为先进先出指令和后进先出指令两种3.5.3填充指令填充指令FILL用于处理字型数据,指令功能是将字型输入数据IN填充到从OUT开始的N个存储单元中。N为字节型数据,3.5.4表查找指令表查找指令(TableFind)是从字型数据表中找出符合条件数据在数据表中的地址编号,编号范围为0~99。在梯形图中该指令有4个数据输入端:TBL为数据表的首地址,用以指明被访问数据表的位置;PTN用来描述查表条件时进行比较的数据;INDX用来指定表中符合查找条件的数据所在的位置;CMD是比较运算的编码,它是一个1~4的数值,分别代表运算符=、、、。TBL、PTN、INDX为字型数据,CMD为字节型数据3.6转换指令转换指令是对操作数的类型进行转换,并输出到指定的目标地址中。转换指令包括数据类型转换指令、编码和译码指令及字符串转换指令。2020/2/26机械工业出版社Page302020/2/26机械工业出版社Page30数据类型转换指令的功能是将一个固定的数值,根据操作指令对数据类型的需要进行相应的转换。PLC经常处理的数据类型有字节型数据、整数、双整数、实数和BCD码5种。3.6.1数据类型转换指令1、整数与BCD码转换指令指令名称梯形图STL功能描述影响ENO正常工作的出错条件整数到BCD码转换指令IBCDIBCDOUTEN有效时,将字整数输入数据IN转换成BCD码类型,并将结果送到OUT输出SM1.6(BCD错误)SM4.3(运行时间)0006(间接寻址)BCD码到整数转换指令BCDIBCDIOUTEN有效时,将BCD码输入数据IN转换成字整数类型,并将结构送到OUT输出2020/2/26机械工业出版社Page312020/2/26机械工业出版社Page312、字节型与整数转换指令字节型与字型整数转换指令的梯形图中的IN、OUT的数据类型一个为整数,另一个为字节型数据。字节型数据是无符号数,整数输入数据的大小为0~2553、整数与双整数转换指令整数与双整数转换指令的梯形图中的IN、OUT端子的数据类型为一个双整数,另一个为整数。4、双整数与实数转换指令双整数与实数转换指令分为三类:ROUND指令、TRUNC指令和DTR指令,其中,ROUND和2020/2/26机械工业出版社Page322020/2/26机械工业出版社Page32TRUNC指令都能将实数转换成双整数,但前者将小数部分四舍五入后转换成整数;而后者将小数部分直接舍去取整。梯形图中的IN,OUT端子的数据类型都为双字型数据。3.6.2编码和译码指令在PLC中,字数据可以是16位二进制数,也可用4位十六进制数来表示,编码过程就是把字型数据中最低有效位的位号进行编码,而译码过程是将执行数据所表示的位号对所制定单元的字型数据的对应位置1。2020/2/26机械工业出版社Page332020/2/26机械工业出版社Page333.6.3字符串转换指令1、ASCII码到十六进制数转换指令ASCII码到十六进制数转换指令ATH的梯形图中的IN端表示开始字符的字节首地址;LEN端表示字符串长度,字节型,最大长度255;OUT端输出字节的首地址2、十六进制数到ASCII码转换指令十六进制数到ASCII码转换指令HTA的梯形图中的IN端代表整数数据输入;LEN端代表转换位数,字节型,最大长度25