《S7-300系列PLC基本指令系统培训讲学》由会员分享,可在线阅读,更多相关《S7-300系列PLC基本指令系统培训讲学(141页珍藏版)》请在金锄头文库上搜索。
1、第4章 S7-300系列PLC基本指令系统,4.1 指令及其结构 4.2 位逻辑指令 4.3 定时器与计数器指令 4.4 数据处理功能指令 4.5 数据运算指令 4.6 控制指令 思考与练习题,4.1 指令及其结构,4.1.1 指令的组成 1. 语句指令 一条指令由一个操作码和一个操作数组成,操作数由标识符和参数组成。操作码定义要执行的功能;操作数为执行该操作所需要的信息,例如: A I 1.0 是一条位逻辑操作指令,其中:“A”是操作码,它表示执行“与”操作;“I 1.0”是操作数,对输入继电器I 1.0进行的操作。 有些语句指令不带操作数。它们操作的对象是惟一的。例如:NOT (是对逻辑操
2、作结果(RLO)取反。),2. 梯形逻辑指令 梯形逻辑指令用图形元素表示PLC要完成操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象表明CPU做什么,其操作数的表示方法与语句指令相同。如: Q 4.0 ( ) 该指令中:( )可认为是操作码,表示一个二进制赋值操作。Q 4.0是操作数,表示赋值的对象。 梯形逻辑指令也可不带操作数。如: |NOT| 是对逻辑操作结果取反的操作。,辅助标识符有: X(位),B(字节),W(字2字节),D(双字4字节)。 PLC物理存储器是以字节为单位的,所以存储单元规定为字节单元。位地址参数用一个点与字节地址分开。如: M 10.1 当操作数长度是字或双
3、字时,标识符后给出的标识参数是字或双字内的最低字节单元号。图4.1给出了字节、字、双字的相互关系及表示方法。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。,图4.1 以字节单元为基准标记存储器存储单元,位存储区M,表4.1 存储区及其功能,表4.1 存储区及其功能,2. 操作数的表示法 在STEP7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法;二是符号地址表示法。 用物理地址表示操作数时,要明确指出操作数的所在存储区,该操作数的位数具体位置。例如:Q 4.0。 STEP7 允许用符号地址表示操作数,如Q 4.0可用符号名MOTOR_ON替代表
4、示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。 定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。,4.1.3 寻址方式 操作数是指令的操作或运算对象。所谓寻址方式是指令得到操作数的方式,可以直接给出或间接给出。 STEP7指令操作对象的有:常数;S7状态字中的状态位;S7的各种寄存器、数据块;功能块FB,FC和系统功能块SFB,SFC;S7的各存储区中的单元。 S7有四种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。,1. 立即寻址 这是对常数或常量的寻址方式。操作数本身直接包含在指令中。下面是立即寻址的例子: SET /把RLO
5、置1 OW W#16#A320 /将常量W#16#A320与累加器1“或”运算 L 27 /把整数27装入累加器1 L ABCD /把ASCII码字符ABCD装入累加器1 L C#0100 /把BCD码常数0100装入累加器1,2. 直接寻址 包括对寄存器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址。例如: A I 0.0 /对输入位I 0.0进行“与”逻辑操作 S L 20.0 /把本地数据位L 20.0置1 = M 115.4 /使存储区位M 115.4的内容等于RLO的内容 L IB 10 /把输入字节IB 10的内容装入累加器1 T DBD 12 /把累加器1中
6、的内容传送给数据双字DBD 12中,3. 存储器间接寻址 在存储器间接寻址的指令中,给出一个存储器(必须是表4.1中的存储器),该存储器的内容是操作数所在存储单元的地址,该地址又被称为地址指针。存储器间接寻址方式的优点是,当程序执行时,能改变操作数的存储器地址,这对程序中的循环尤为重要。例如: A IMD 2 /对由MD 2指出的输入位进行“与”逻辑操作。如:MD 2的值为 /2#0000 0000 0000 0000 0000 0000 0101 0110 则是对I 10.6进行“与”操作。,图4.2 存储器间接寻址的指针格式,位3至18(范围0至65535) : 被寻址字节的字节编号 位0
7、至2(范围0至7) : 被寻址位的位编号,4. 寄存器间接寻址 在S7中有两个地址寄存器,它们是AR1和AR2。通过地址寄存器,可以对各存储区的存储器内容实现寄存器间接寻址。地址寄存器的内容加上偏移量形成地址指针,该指针指向数值所在的存储单元。 地址寄存器存储的地址指针有两种格式: 区内寄存器间接寻址区域间寄存器间接寻址。其长度均为双字。图4.3给出了这两种格式的细节及其差别,区域标识位的组合状态见表4.2。,图4.3 寄存器间接寻址的指针格式,31 24 23 16 15 8 7 0,位31=0表明是区域内寄存器间接寻址;=1表明是区域间寄存器间接寻址。 位24、25和26(r r r):区
8、域标识(见表3.2) 位3至18(bbbb bbbb bbbb bbbb):被寻址位的字节编号(范围0至65535) 位0至2():被寻址的位编号(范围0至7),表4.2 地址指针区域标识位含义,4.1.4 状态字 状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位;你也能在位逻辑指令或字逻辑指令中访问并检测它们。图4.4显示了状态字的结构。,图4.4 状态字的结构,15 9 8 7 6 5 4 3 2 1 0,(1)首次检测位(FC) 状态字的位0称为首次检测位。若FC位的状态为0,则表明一个梯形逻辑网络
9、的开始,或指令为逻辑串第一条指令。 (2)逻辑操作结果(RLO) 逻辑操作结果RLO(Result of Logic Operation)。该位存储 位逻辑指令或算术比较指令的结果。 (3)状态位(STA) 状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。,(4)或位(OR) 状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。,(5)溢出位(OV) 溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误 ( 错误:溢出、非法操作、不规范格式 ) 。,(6)溢出状态保持位(OS
10、) 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.3 算术运算后的CC1和CC0,表4.4 比较、移位和循环移位、字逻辑指令后的CC1和CC0,(8)二进制结果位(BR) 它将字处理程序与位处理联系起来,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何
11、,都不会造成二进制逻辑链中断。在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.2 位逻辑指令,位逻辑指令主要包括:位逻辑运算指令、位操作指令和位测试指令,逻辑操作结果(RLO)用以赋值、置位、复位布尔操
12、作数,也控制定时器和计数器的运行。,4.2.1 位逻辑运算指令 位逻辑运算指令是“与”(AND)、“或”(OR)、“异或”(XOR)指令及其组合。它对“0”或“1”这些布尔操作数扫描,经逻辑运算后将逻辑操作结果送入状态字的RLO位。,1. “与”和“与非”(A,AN)指令 逻辑“与”在梯形图里是用串联的触点回路表示的,如果串联回路里的所有触点皆闭合,该回路就通“电”了。在图4.5的回路所示:,图4.5 “与”逻辑梯形图,上述梯形逻辑图,可用语句表指令完全表示,对应的语句表为:,A I0.0 A Q 4.1 AN M10.1 Q4.0,( ),I0.0 Q4.1 M10.1 Q4.0,2. “或
13、”和“或非”(O,ON)指令 逻辑“或”在梯形图里是用并联的触点回路表示的,被扫描的操作数标在触点上方。在图4.6中,只要有一个触点闭合,输出4.1的信号状态就为“l”。,I1.1,M2.0,Q4.0,图4.6 “或”逻辑梯形图及语句表,O I1.1 ON M2.0 O Q4.0 Q4.1,( ),Q4.1,3. “异或”和“异或非”(X,XN)指令 图4.7是“异或”逻辑梯形图,下面是与梯形图对应的语句表。在的语句表中,使用了“异或”和“异或非”指令,分别用助记符“X”和“XN”来标识。它类似“或”和“或非”指令,用于扫描并联回路能否“通电”。,X I 0.0 X I 0.1 Q 4.0,图
14、4.7 “异或”逻辑梯形图,4.2.2 位操作指令 1. 输出指令 逻辑串输出指令又称为赋值操作指令,该操作把状态字中RLO的值赋给指定的操作数(位地址)。表4.5列出了操作数的数据类型和所在的存储区。,表4.5 输出指令,A I0.0 A I0.1 ON I0.2 Q4.0 A I0.3 Q4.1,图4.8 多重输出梯形图,一个RLO可被用来驱动几个输出元件。在LAD中,输出线圈是上下依次排列的。在STL中,与输出信号有关的指令被一个接一个地连续编程,这些输出具有相同的优先级。图4.8是多重输出梯形图,与之对应的语句表如下:,2 . 置位复位指令 置位复位指令根据RLO的值,来决定被寻址位的
15、信号状态是否需要改变。若RLO的值为1,被寻址位的信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。置位复位指令有关内容见表4.6。,表4.6 置位复位指令,图4.10 置位复位指令 (a) 复位指令操作 (b)置位指令操作,3. RS触发器 RS触发器梯形图方块指令表示见表4.7。方块中标有一个置位输入(S)端,一个复位输入(R)端,输出端标为Q。触发器可以用在逻辑串最右端,结束一个逻辑串,也可用在 逻辑串中,影响右边的逻辑操作结果。,表4.7 RS触发器,RS触发器分为置位优先和复位优先型两种, 置位优先型RS触发器的R端在S端之上,当两个输入端都为1时,下面的置位输入最
16、终有效。既置位输入优先,触发器或被复位或保持复位不变,如图4.11。,A I0.0 R M0.0 A I0.1 S M0.0 A M0.0 = Q4.0,图4.11 置位优先型RS触发器,4. 对RLO的直接操作指令 这一类指令直接对逻辑操作结果RLO进行操作,改变状态字中RLO位的状态。有关内容见表4.8。,表4.8 对RLO的直接操作指令,4.2.3 位测试指令 当信号状态变化时就产生跳变沿。当从0变到1时,产生一个上升沿(或正跳沿);若从1变到0,则产生一个下降沿(或负跳沿)。 S7中有两类跳变沿检测指令,一种是对RLO的跳变沿检测的指令,另一种是对触点跳变沿直接检测的梯形图方块指令。具体