第4章西门子S7-300系列PLC基本指令系统第4章S7-300系列PLC基本指令系统4.1指令及其结构4.2位逻辑指令4.3定时器与计数器指令4.4数据处理功能指令4.5数据运算指令4.6控制指令思考与练习题第4章西门子S7-300系列PLC基本指令系统4.1指令及其结构4.1.1指令的组成1.语句指令一条指令由一个操作码和一个操作数组成,操作数由标识符和参数组成。操作码定义要执行的功能;操作数为执行该操作所需要的信息,例如:AI1.0是一条位逻辑操作指令,其中:“A”是操作码,它表示执行“与”操作;“I1.0”是操作数,对输入继电器I1.0进行的操作。有些语句指令不带操作数。它们操作的对象是惟一的。例如:NOT(是对逻辑操作结果(RLO)取反。)第4章西门子S7-300系列PLC基本指令系统2.梯形逻辑指令梯形逻辑指令用图形元素表示PLC要完成操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象表明CPU做什么,其操作数的表示方法与语句指令相同。如:Q4.0——()该指令中:——()可认为是操作码,表示一个二进制赋值操作。Q4.0是操作数,表示赋值的对象。梯形逻辑指令也可不带操作数。如:——|NOT|——是对逻辑操作结果取反的操作。第4章西门子S7-300系列PLC基本指令系统4.1.2操作数1.标识符及表示参数一般情况下,指令的操作数在PLC的存储器中,此时操作数由操作数标识符和参数组成。操作数标识符由主标识符和辅助标识符组成。主标识符表示操作数所在的存储区,辅助标识符进一步说明操作数的位数长度。若没有辅助标识符指操作数的位数是一位。主标识符有:I(输入过程映像存储区),Q(输出过程映象存储区),M(位存储区),PI(外部输入),PQ(外部输入),T(定时器),C(计数器),DB(数据块),L(本地数据)。第4章西门子S7-300系列PLC基本指令系统辅助标识符有:X(位),B(字节),W(字——2字节),D(双字——4字节)。PLC物理存储器是以字节为单位的,所以存储单元规定为字节单元。位地址参数用一个点与字节地址分开。如:M10.1当操作数长度是字或双字时,标识符后给出的标识参数是字或双字内的最低字节单元号。图4.1给出了字节、字、双字的相互关系及表示方法。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。第4章西门子S7-300系列PLC基本指令系统位7……10MB1010.7…10.110.0MB11MW10MB12MW11MB13MW12MD10MB14图4.1以字节单元为基准标记存储器存储单元位存储区M第4章西门子S7-300系列PLC基本指令系统表4.1存储区及其功能名称功能标识符最大范围输入过程映像存储区(I)在循环扫描的开始,从过程中读取输入信号存入本区域,供程序使用IIBIWID0~65535.70~655350~655340~65532输入过程映像存储区(Q)在循环扫描期间、程序运算得到的输出值存入本区域。在循环扫描的末尾传送至输出模板QQBQWQD0~65535.70~655350~655340~65532位存储器(M)本区域存放程序的中间结果MMBMWMD0~255.70~2550~2540~252外部输入(PI)外部输出(PQ)通过本区域,用户程序能够直接访问输入和输出模板(即外部输入和输出信号)PIBPIWPIDPQBPQWPQD0~655350~655340~655320~655350~655340~65532第4章西门子S7-300系列PLC基本指令系统定时器(T)访问本区域可得到定时剩余时间T0~255计数器(C)访问本区域可得到当前计数器值C0~255数据块(DB)本区域包含所有数据块的数据。DBXDBBDBWDBDDIXDIBDIWDID0~65535.70~655350~655340~655320~65535.70~655350~655340~65532本地数据(L)本区域存放逻辑块(OB,FB或FC)中使用的临时数据。当逻辑块结束时,数据丢失LLBLWLD0~65535.70~655350~655340~65532表4.1存储区及其功能第4章西门子S7-300系列PLC基本指令系统2.操作数的表示法在STEP7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法;二是符号地址表示法。用物理地址表示操作数时,要明确指出操作数的所在存储区,该操作数的位数具体位置。例如:Q4.0。STEP7允许用符号地址表示操作数,如Q4.0可用符号名MOTOR_ON替代表示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。第4章西门子S7-300系列PLC基本指令系统4.1.3寻址方式操作数是指令的操作或运算对象。所谓寻址方式是指令得到操作数的方式,可以直接给出或间接给出。STEP7指令操作对象的有:常数;S7状态字中的状态位;S7的各种寄存器、数据块;功能块FB,FC和系统功能块SFB,SFC;S7的各存储区中的单元。S7有四种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。第4章西门子S7-300系列PLC基本指令系统1.立即寻址这是对常数或常量的寻址方式。操作数本身直接包含在指令中。下面是立即寻址的例子:SET//把RLO置1OWW#16#A320//将常量W#16#A320与累加器1“或”运算L27//把整数27装入累加器1L'ABCD'//把ASCII码字符ABCD装入累加器1LC#0100//把BCD码常数0100装入累加器1第4章西门子S7-300系列PLC基本指令系统2.直接寻址包括对寄存器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址。例如:AI0.0//对输入位I0.0进行“与”逻辑操作SL20.0//把本地数据位L20.0置1=M115.4//使存储区位M115.4的内容等于RLO的内容LIB10//把输入字节IB10的内容装入累加器1TDBD12//把累加器1中的内容传送给数据双字DBD12中第4章西门子S7-300系列PLC基本指令系统3.存储器间接寻址在存储器间接寻址的指令中,给出一个存储器(必须是表4.1中的存储器),该存储器的内容是操作数所在存储单元的地址,该地址又被称为地址指针。存储器间接寻址方式的优点是,当程序执行时,能改变操作数的存储器地址,这对程序中的循环尤为重要。例如:AI[MD2]//对由MD2指出的输入位进行“与”逻辑操作。如:MD2的值为//2#00000000000000000000000001010110则是对I10.6进行“与”操作。第4章西门子S7-300系列PLC基本指令系统图4.2存储器间接寻址的指针格式15870字指针格式Nnnnnnnnnnnnnnnn位0至15(范围0至65535):用于定时器(T)、计数器(C)、数据块(DB)、功能块(FB与FC)的编号3124231615870双字指针格式0000000000000bbbBbbbbbbbbbbbb×××位3至18(范围0至65535):被寻址字节的字节编号位0至2(范围0至7):被寻址位的位编号第4章西门子S7-300系列PLC基本指令系统4.寄存器间接寻址在S7中有两个地址寄存器,它们是AR1和AR2。通过地址寄存器,可以对各存储区的存储器内容实现寄存器间接寻址。地址寄存器的内容加上偏移量形成地址指针,该指针指向数值所在的存储单元。地址寄存器存储的地址指针有两种格式:区内寄存器间接寻址区域间寄存器间接寻址。其长度均为双字。图4.3给出了这两种格式的细节及其差别,区域标识位的组合状态见表4.2。第4章西门子S7-300系列PLC基本指令系统图4.3寄存器间接寻址的指针格式×0000rrr00000bbbBbbbbbbbbbbbb×××3124231615870位31=0表明是区域内寄存器间接寻址;=1表明是区域间寄存器间接寻址。位24、25和26(rrr):区域标识(见表3.2)位3至18(bbbbbbbbbbbbbbbb):被寻址位的字节编号(范围0至65535)位0至2(×××):被寻址的位编号(范围0至7)第4章西门子S7-300系列PLC基本指令系统表4.2地址指针区域标识位含义区域标识符存储区位26、25和24的二进制内容PI/O,外设I/O000I输入过程暂存区001Q输出过程暂存区010M位存储区011DBX共享数据块100DIX背景数据块101L本地数据111第4章西门子S7-300系列PLC基本指令系统4.1.4状态字状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位;你也能在位逻辑指令或字逻辑指令中访问并检测它们。图4.4显示了状态字的结构。图4.4状态字的结构BRCC1CC0OSOVORSTARLOFC159876543210第4章西门子S7-300系列PLC基本指令系统(1)首次检测位(FC)状态字的位0称为首次检测位。若FC位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串第一条指令。(2)逻辑操作结果(RLO)逻辑操作结果RLO(ResultofLogicOperation)。该位存储位逻辑指令或算术比较指令的结果。(3)状态位(STA)状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。第4章西门子S7-300系列PLC基本指令系统(4)或位(OR)状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。(5)溢出位(OV)溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。第4章西门子S7-300系列PLC基本指令系统(6)溢出状态保持位(OS)OV被置1时OS也被置1;OV被清0时OS仍保持。只有下面的指令才能复位OS位:JOS(OS=1时跳转);块调用和块结束指令。(7)条件码1(CC1)和条件码0(CC0)状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表4.3和表4.4。第4章西门子S7-300系列PLC基本指令系统表4.3算术运算后的CC1和CC0CC1CC0算术运算无溢出整数算术运算有溢出浮点数算术运算有溢出00结果=0整数加时产生负范围溢出平缓下溢01结果0乘负溢出;加、减、取负时正溢出负范围溢出10结果0乘、除时正溢出;加、减时负溢出正范围溢出11——在除时除数为0非法操作第4章西门子S7-300系列PLC基本指令系统CC1CC0比较指令移位和循环移位指令字逻辑指令00累加器2=累加器1移出位=0结果=001累加器2=累加器1————10累加器2=累加器1——结果011不规范(只用于浮点数比较)移出位=1——表4.4比较、移位和循环移位、字逻辑指令后的CC1和CC0第4章西门子S7-300系列PLC基本指令系统(8)二进制结果位(BR)它将字处理程序与位处理联系起来,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的方块指令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。在用户编写的FB和FC程序中,必须对BR位进行管理,当功能块正确运行后使BR位为1,否则使其为0。使用STL指令SAVE或LAD指令——(SAVE),可将RLO存入BR中,从而达到管理BR位的目的。当FB或FC执行无错误时,使RLO为1并存入BR,否则,在BR中存入0。第4章西门子S7-300系列PLC基本指令系统4.2位逻辑指令位逻辑指令主要包括