自动控制网—学习自动控制技术电气自动化技术从这里开始!
当前位置: 自动控制网 > 自动化 > PLC >

西门子S7-300系列PLC的基本指令及结构

时间:2015-08-25 10:07来源:未知 编辑:自动控制网
指令时程序的最小独立单元,用户程序是由若干条顺序排列的指令构成的。对应语句表和梯形图两种编程语言,指令也有语句指令与梯形逻辑指令之分。他们的表达形式不同,但表示的内容是相同或类似的。 1、指令的组成 1)语句指令 一条指令由一个操作码和一个操作
   指令时程序的最小独立单元,用户程序是由若干条顺序排列的指令构成的。对应语句表和梯形图两种编程语言,指令也有语句指令与梯形逻辑指令之分。他们的表达形式不同,但表示的内容是相同或类似的。

    1、指令的组成

本文来自www.eadianqi.com

    1)语句指令 自动控制网www.eadianqi.com版权所有

    一条指令由一个操作码和一个操作数组成,操作数由标识符和参数组成。操作码定义要执行的功能,它告诉CPU该做什么;操作数为执行该操作所需要的信息,它告诉CPU用什么去做。有些语句指令不带操作数,它们操作的对象是惟一的。

本文来自www.eadianqi.com

    2)梯形逻辑指令

本文来自www.eadianqi.com

    梯形逻辑指令用图形元素表示PLC要完成的操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象地表明CPU做什么,其操作数的表示方法与语句指令相同。梯形逻辑指令也可不带操作数。 本文来自www.eadianqi.com

    2、操作数

本文来自www.eadianqi.com

    1)标识符及表示参数 自动控制网www.eadianqi.com版权所有

    指令的操作数一般位于PLC的存储器中,此时操作数由操作数标识符和参数组成。操作数标识符告诉处理器操作数放在存储器的哪个区域及操作数位数;标识参数则进一步说明操作数在该存储区域内的具体位置。 自动控制网www.eadianqi.com版权所有

    操作数标识符由主标识符和辅助标识符组成。主标识符表示操作数所在的存储区,辅助标识符进一步说明操作数的位数长度。若没有辅助标识符,则指操作数的位数是1位。 本文来自www.eadianqi.com

    主标识符有I(输入过程映像存储区)、Q(输出过程映像存储区)、M(位存储区)、PI(外部输入)、PQ(外部输出)、T(定时器)、C(计数器)、DB(数据块)、L(本地数据)等;辅助标识符有X(位)、B(字节)、W(字——2字节)、D(双字——4字节)。PLC物理存储器是以字节为单位的,所以存储单元规定为字节单元。位地址参数用一个点与字节地址分开,如M 10.1。当操作数长度是字或双字时,标识符后给出的标识参数是字或双字内的最低字节单元号。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。图1给出了字节、字、双字的相互关系及表示方法。 本文来自www.eadianqi.com

自动控制网www.eadianqi.com版权所有

图1 以字节单元为基准标记存储器存储单元 自动控制网www.eadianqi.com版权所有

    S7 PLC的存储区及其功能见表1,表中给出的最大地址范围不一定是实际可使用的地址范围,可使用的地址范围由CPU得型号和硬件配置决定。 自动控制网www.eadianqi.com版权所有

    表1 存储区及其功能

自动控制网www.eadianqi.com版权所有


自动控制网www.eadianqi.com版权所有

    2)操作数的表示方法

本文来自www.eadianqi.com

    在STEP7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法,二是符号地址表示法。用物理地址表示操作数时,要明确指出操作数所在的存储区,该操作数的位数和具体位置。例如,Q4.0是用物理地址表示的操作数,其中Q表示这是一个在输出过程映像区中的输出位,具体位置是第4个字节的第0位。 自动控制网www.eadianqi.com版权所有

    STEP7允许用符号地址表示操作数,如Q4.0可用符号名MOTOR_ON替代表示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。

本文来自www.eadianqi.com

    3、寻址方式 自动控制网www.eadianqi.com版权所有

    操作数是指令的操作或运算对象。所谓寻址方式,是指指令得到操作数的方式,可以直接或间接给出。可用作STEP7指令操作对象的有常数,S7状态字中的状态位,S7的各种寄存器、数据块,功能块FB、FC和系统功能块SFB、SFC以及S7的各存储区中的单元。S7有立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址四种寻址方式。 自动控制网www.eadianqi.com版权所有

    1)立即寻址

本文来自www.eadianqi.com

    立即寻址是对常数或常量的寻址方式。操作数本身直接包含在指令中。立即寻址示例见表2。

本文来自www.eadianqi.com

    表2 立即寻址示例 自动控制网www.eadianqi.com版权所有

自动控制网www.eadianqi.com版权所有

    2)直接寻址 本文来自www.eadianqi.com

    直接寻址包括对寄存器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址。直接寻址示例见表3。 本文来自www.eadianqi.com

    表3 直接寻址示例

本文来自www.eadianqi.com

自动控制网www.eadianqi.com版权所有

    3)存储器间接寻址 本文来自www.eadianqi.com

    在存储器间接寻址的指令中,给出一个存储器,该存储器的内容是操作数所在存储单元的地址,该地址又被称为地址指针。存储器间接寻址方式的优点是,当程序执行时能改变操作数的存储器地址。存储器间接寻址示例见表4。

本文来自www.eadianqi.com

    表4 存储器间接寻址示例 自动控制网www.eadianqi.com版权所有

本文来自www.eadianqi.com

    4)寄存器间接寻址

自动控制网www.eadianqi.com版权所有

    在S7中有两个地址寄存器,它们是AR1和AR2。通过地址寄存器,可以对各存储区的存储器内容实现寄存器间接寻址。地址寄存器的内容加上偏移量形成地址指针,该指针指向数值所在的存储单元。

本文来自www.eadianqi.com

    地址寄存器存储的地址指针有两种格式,其长度均为双字。其中,第一种地址指针格式包括被寻址数值所在存储单元地址的字节编号和位编号。至于对哪个存储区寻址,则必须在指令中明确地直接给出。这种指针格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。而第二种地址指针格式中还包含了数值所在存储区的说明位(存储区域标志位),可通过改变这些位实现跨区寻址,这种指针格式用于区域间寄存器间接寻址。

自动控制网www.eadianqi.com版权所有

    4、状态字

自动控制网www.eadianqi.com版权所有

    状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何种方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位;也能在位逻辑指令或字逻辑指令中访问并检测它们。状态字的结构如图2所示。 本文来自www.eadianqi.com

自动控制网www.eadianqi.com版权所有

图2 状态字的结构

本文来自www.eadianqi.com

    1)首次检测位(FC) 自动控制网www.eadianqi.com版权所有

    状态字的位0称为首次检测位。若其状态为0,则表明一个梯形逻辑网络的开始或指令为逻辑串第一条指令。CPU对逻辑串第一条指令的检测(称为首次检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首次检测结果。FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中为1,输出指令或与逻辑运算有关的转移指令将其清零。

本文来自www.eadianqi.com

    2)逻辑操作结果(RLO) 自动控制网www.eadianqi.com版权所有

    状态字的位1称为逻辑操作结果RLO(Result of Logic Operation)。该位存储位逻辑指令或算术比较指令的结果。在逻辑串中,RLO位的状态能够表示有关信号流的信息。RLO的状态为1,表示有信号流(通);状态为0,表示无信号流(断)。可用RLO触发跳转指令。

本文来自www.eadianqi.com

    3)状态位(STA) 本文来自www.eadianqi.com

    状态字的位2称为状态位。状态位不能用指令检测,它只在程序测试中被CPU解释并使用。如果一条指令是对存储区操作的位逻辑指令,则无论对该位进行读或写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA没有意义,此时它总被置为1。 本文来自www.eadianqi.com

    4)或位(OR) 自动控制网www.eadianqi.com版权所有

    状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清零。

本文来自www.eadianqi.com

    5)溢出位(OV) 本文来自www.eadianqi.com

    状态字的位4称为溢出位,溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。后面的算术运算或浮点数比较指令执行结果正常的话,OV位就被清零。 自动控制网www.eadianqi.com版权所有

    6)溢出状态保持位(OS)

自动控制网www.eadianqi.com版权所有

    状态字的位5称为溢出状态保持位(或称为存储溢出位)。OV被置l时OS也被置1;OV被清零时OS仍保持。它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。只有下面的指令才能复位OS位:JOS(OS=1时跳转)、块调用指令和块结束指令。 自动控制网www.eadianqi.com版权所有

    7)条件码1(CC1)和条件码0(CC0) 本文来自www.eadianqi.com

    状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系。 本文来自www.eadianqi.com

    8)二进制结果位(BR) 自动控制网www.eadianqi.com版权所有

    状态字的位8称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的方块指令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。 本文来自www.eadianqi.com

    在用户编写的FB和FC程序中,必须对BR位进行管理,当功能块正确运行后使BR位为1,否则使其为0。使用STL、SAVE或LAD指令,可将RLO存入BR中,从而达到管理BR位的目的。当FB或FC执行无错误时,使RLO为1并存入BR,否则,在BR中存入0。 本文来自www.eadianqi.com

本文已影响