首页 百科知识 内部寄存器及存储区

内部寄存器及存储区

时间:2024-10-16 百科知识 版权反馈
【摘要】:AR1 、AR2地址寄存器也是32位寄存器,它们用于存放寄存器间接寻址指令中的地址指针。两个32位字长的数据地址寄存器是用来存放数据块的起始地址,它们分别称为共享数据块地址寄存器DB和背景数据块地址寄存器DI。状态字中的第0位称为首次检测位,CPU根据来决定位逻辑操作指令中操作数的存放位置。状态字第五位称为溢出结果保持位,或称存储溢出位。工作存储区主要存放CPU运行时,用户程序所需要的执行单元逻辑块和数据块的复制数据。

8.1.4 内部寄存器及存储区

1.内部寄存器

在S7-300PLC系统中用户常用的内部寄存器有七个,它们分别是:累加器A1、累加器A2、状态字、地址寄存器AR1、地址寄存器AR2、共享数据块地址寄存器和背景数据寄存器。其中,累加器A1、A2是用户作处理字节、字、双字的通用寄存器,A1为主累加器,A2为辅助累加器,两个累加器均为32位字长。状态字是一个16位的寄存器,状态字中包含的一些状态位可以被用户程序所引用。AR1 、AR2地址寄存器也是32位寄存器,它们用于存放寄存器间接寻址指令中的地址指针。两个32位字长的数据地址寄存器是用来存放数据块的起始地址,它们分别称为共享数据块地址寄存器DB和背景数据块地址寄存器DI。系统在执行程序过程中,用户程序可以同时打开两个数据块:一个作为共享数据块,起始地址存放在DB寄存中;另一个作为背景数据块,起始地址存放在DI寄存器中。

状态字包含了CPU执行指令时所产生的一些状态位,用户程序可以通过位逻辑指令或字逻辑指令访问和检测状态字中的位,并根据状态字中的位状态来决定程序的走向和进程,状态字的描述如图8-6所示。

img366

图8-6 状态字的描述

(1)首次检测位(img367

状态字中的第0位称为首次检测位img368,CPU根据img369来决定位逻辑操作指令中操作数的存放位置。若img370=0,表明一个梯形图网络的开始,或语句表的首条逻辑串指令,CPU对首条逻辑串指令中的操作数进行检测,并将检测结果直接存在状态字的RLO位中,并把FC置1。若img371=1,则逻辑操作指令中的操作数的检测结果与RLO进行逻辑运算,运算结果存放在RLO中。当执行到一个梯形图网络结束时,将img372清0;执行到语句表程序静态赋值指令(S、R)、动态赋值指令(=)或与逻辑运算有关的转移指令时,表示逻辑串指令结束,将img373清0。

(2)逻辑操作结果(RLO)

状态字中的第1位称为逻辑操作结果RLO(Result of Logic Operation),它是用来存放位逻辑指令或算术比较指令的运算结果的。表8-1结合一个逻辑串指令表示CPU在执行过程中,img374和RLO状态位的赋值过程。令I0.0=1和I0.1=0。

表8-1 img375、RLO的变化示例

img376

(3)溢出位(OV)

状态字第四位称为溢出位。当执行一个算术运算或浮点数比较指令,出现溢出、非法操作、不规范等错误时OV位被置1,若后面的指令执行结果正常则OV位就被清0。

(4)溢出结果保持位(OS)

状态字第五位称为溢出结果保持位,或称存储溢出位。当错误产生时OV和OS位一起被置1,错误清除后OV位就被清0但OS位仍保持为1。所以OS位存储了OV位,用于指明在先前的一些指令执行过程中是否产生过错误。OS位只有在执行下面程序时才被清为0。

JOS //OS=1时跳转;

CALL块调用指令和BE块结束指令等。

(5)条件码(CC1和CC0)

状态字第7位和第6位称为条件码1和条件码0,这两位结合起来用于表示下面操作结果或位信息:算术操作的结果;比较操作的结果;移位指令;字逻辑指令等,如表8-2所示。

表8-2 指令执行对CC1和CC0的影响

img377

(6)其他状态位

状态字第2位称为状态位STA,执行位逻辑指令时,STA总是与该指令的操作数一致。

状态字第3位称为“或”位OR,由于在逻辑运算中“与”的优先级别比“或”高。在执行先逻辑“与”后逻辑“或”的逻辑运算中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其他指令将OR位复位。

状态字的第8位称为二进制结果位BR。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确。在程序中访问BR位后,无论字操作结果如何,都不会造成二进制逻辑链中断。在梯形图的方框指令(如转换指令)中ENO有对应关系,用于表明方框指令是否被正确执行,如出现错误BR=0,ENO也被清0;如执行正确BR=1,ENO也被置1。

在用户编写的功能块程序FB和功能程序FC中,必须对BR位进行管理,FB正确执行后,使BR位为1,否则使其为0。使用SAVE指令可将RLO存入BR中,从而到达管理BR位的目的。当FB或FC执行无错误时,使RLO为1,并存入BR;否则在BR中存入0。状态字的9∼15位未使用。

2.存储区

S7-300PLC的存储区主要有RAM、ROM、“E2”PROM等,主要分为三种基本类型:系统存储区、装载存储区和工作存储区。系统存储区主要存放CPU的操作数据,包括:输入I/输出Q映像区、位存储区M、定时器T、计数器C、块堆栈(B堆栈)、中断堆栈(I堆栈)和临时本地数据(L堆栈),L堆栈主要是存放用户程序执行过程中需要保存的临时变量,系统存储区在物理上占用了CPU模块上的部分RAM。

装载存储区用来存放用户开发的应用程序,它在物理上可以是集成在CPU模块上的部分RAM、内置E2PROM、外置RAM或者外置E2PROM等。

工作存储区主要存放CPU运行时,用户程序所需要的执行单元逻辑块(OB、FB、FC)和数据块(DB)的复制数据。用户程序在调用之前,相应的单元逻辑块从装载存储区复制到工作存储区,程序的各个部分都是在工作存储区中被激活执行,工作存储区在物理上也是占用了集成在CPU模块上的部分RAM,其存储区大小因CPU型号而异。

用户程序可以访问的各种存储区域以及访问方式如表8-3所示,用户程序访问I/O数据可通过两种方式:一是访问外设输入/输出存储区,二是访问输入/输出映像区。

表8-3 用户程序可以访问的存储区及功能

img378

(续表)

img379

外设输入存储区PI、外设输出存储区PQ最大寻址范围均为64KB,输入映像I、输出映像Q最大寻址范围为128Byte。事实上输入映像I就是对PI前128 Byte的映像,输出映像Q就是对PQ前128 Byte的映像。在每个循环扫描过程中,PI的前128 Byte的内容被映射到输入映像I,输出映像Q中的内容被映射到外设输出存储区。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈