首页 百科知识 -存储器的数据类型及寻址方式

-存储器的数据类型及寻址方式

时间:2022-10-21 百科知识 版权反馈
【摘要】:S7-200CPU使用数据地址访问所有的数据,称为寻址。S7-200支持的数据格式完全符合通用的相关标准。S7-200的SIMATIC指令系统针对不同的数据格式提供了不同类型的编程命令。可以按位、字节、字或双字来存取V存储器中的数据。S7-200PLC给主程序分配64个字节的局部存储器;给每一级子程序嵌套分配64个字节的局部存储器;给中断程序也分配64个字节的局部存储器。S7-200PLC根据需要分配局部存储器。可以把局部存储器作为间接寻址的指针,但不能作为间接寻址的存储器区。

4.2 S7-200CPU存储器的数据类型及寻址方式

S7-200CPU将信息存储在不同的存储器单元中,每个单元都有地址。S7-200CPU使用数据地址访问所有的数据,称为寻址。数字量和模拟量的I/O点,中间运算数据等各种数据具有各自的地址定义方式。S7-200的大部分指令都需要指定数据地址。

1)数据格式

S7-200CPU以不同的数据格式保存和处理信息。S7-200支持的数据格式完全符合通用的相关标准。它们占用的存储单元长度不同,内部的表示格式也不同。这就是说,数据都有各自规定的长度,表示的数值范围也不同。S7-200的SIMATIC指令系统针对不同的数据格式提供了不同类型的编程命令。

数据格式和取值范围如表4-6所示。

2)数据的寻址长度

在S7-200系统中,可以按位、字节、字和双字对存储单元寻址。

寻址时,数据地址以代表存储区类型的字母开始,随后是表示数据长度的标记,然后是存储单元编号;对于二进制位寻址,还需要在一个小数点分隔符后指定位编号。

表4-6 数据格式和取值范围

img263

位寻址的举例如图4-4所示。字节寻址的举例如图4-5所示。

img264

图4-4 位寻址举例

可以看出,VW100包括VB100和VB101;VD100包含VW100和VW102,即VB100、VB101、VB102和VB103这4个字节。值得注意的是,这些地址是互相交叠的。

当涉及到多字节组合寻址时,S7-200遵循“高地址、低字节”的规律。如果将16#AB(十六进制立即数)送入VB100,16#CD送入VB101,那么VW100的值将是16#ABCD。即VB101作为高地址字节,保存数据的低字节部分。

img265

图4-5 字节寻址举例

3)各数据存储区寻址

(1)输入过程映像寄存器I

在每次扫描周期的开始,CPU对物理输入点进行采样,并将采样值写入输入过程映像寄存器中。可以按位、字节、字或双字来存取输入过程映像寄存器中的数据。

位:I[字节地址].[位地址]I0.1

字节、字或双字:I[长度][起始字节地址]IB4IW1ID0

(2)输出过程映像寄存器Q

在每次扫描周期的结尾,CPU将输出过程映像寄存器中的数值复制到物理输出点上。可以按位、字节、字或双字来存取输出过程映像寄存器中的数据。

位:Q[字节地址].[位地址]Q1.1

字节、字或双字:Q[长度][起始字节地址]QB5QW1QD0

(3)变量存储区V

可以用V存储器存储程序执行过程中控制逻辑操作的中间结果,也可以用它来保存与工序或任务相关的其他数据。可以按位、字节、字或双字来存取V存储器中的数据。

位:V[字节地址].[位地址]V10.2

字节、字或双字:V[长度][起始字节地址]VB100VW200VD300

(4)位存储区M

可以用位存储区作为控制继电器来存储中间操作状态和控制信息。可以按位、字节、字或双字来存取位存储区中的数据。

位:M[字节地址].[位地址]M26.7

字节、字或双字:M[长度][起始字节地址]MB0MW13MD20

(5)定时器存储区T

在S7-200CPU中,定时器可用于时间累计。定时器寻址有两种形式:

①当前值:16位有符号整数,存储定时器所累计的时间。

②定时器位:按照当前值和预置值的比较结果置位或者复位。

两种寻址使用同样的格式,用定时器地址(T+定时器号,如T33)来存取这两种形式的定时器数据。究竟使用哪种形式取决于所使用的指令。

位:T[定时器号]T37

字:T[定时器号]T96

(6)计数器存储区C

在S7-200CPU中,计数器可以用于累计其输入端脉冲电平由低到高的次数。计数器有两种寻址形式:

①当前值:16位有符号整数,存储累计值。

②计数器位:按照当前值和预置值的比较结果来置位或者复位。

可以用计数器地址(C+计数器号,如C0)来存取这两种形式的计数器数据。究竟使用哪种形式取决于所使用的指令。

位:C[计数器号]C0

字:C[计数器号]C255

(7)高速计数器HC

高速计数器对高速事件计数,它独立于CPU的扫描周期。高速计数器有一个32位的有符号整数计数值(或当前值)。若要存取高速计数器中的值,则应给出高速计数器的地址,即存储器类型(HC)加上计数器号(如HC0)。高速计数器的当前值是只读数据,可作为双字(32位)来寻址。

格式:HC[高速计数器号]HC1

(8)累加器AC

累加器是可以像存储器一样使用的读/写存储区。例如,可以用它来向子程序传递参数,也可以从子程序返回参数,以及用来存储计算的中间结果。S7-200提供4个32位累加器(AC0、AC1、AC2和AC3)。可以按字节、字或双字的形式来存取累加器中的数值。被操作的数据长度取决于访问累加器时所使用的指令。

(9)顺序控制继电器S

顺序控制继电器位(S)用于组织机器操作或进入等效程序段的步进控制。顺序控制继电器(SCR)提供控制程序的逻辑分段,可以按位、字节、字或双字来存取S位。

位:S[字节地址].[位地址]  S3.1

字节、字、双字:S[长度][起始字节地址]  SB4SW24SD20

(10)局部存储器L

S7-200PLC有64个字节的局部存储器,其中60个可以用作暂时存储器或者给子程序传递参数。如果用梯形图或功能块图编程,STEP7Micro/WIN32保留这些局部存储器的最后4个字节。如果用语句表编程,可以寻址所有的64个字节,但是不要使用局部存储器的最后4个字节。

局部存储器和变量存储器很相似,主要区别是变量存储器是全局有效的,而局部存储器是局部有效的。全局是指同一个存储器可以被任何程序存取(例如,主程序、子程序或中断程序);局部是指存储器区和特定的程序相关联。S7-200PLC给主程序分配64个字节的局部存储器;给每一级子程序嵌套分配64个字节的局部存储器;给中断程序也分配64个字节的局部存储器。子程序或中断程序不能访问分配给主程序的局部存储器;子程序不能访问分配给主程序、中断程序或其他子程序的局部存储器;同样地,中断程序也不能访问分配给主程序或子程序的局部存储器。

S7-200PLC根据需要分配局部存储器。即当执行主程序时,分配给子程序或中断程序的局部存储器是不存在的。当出现中断或调用一个子程序时,需要分配局部存储器。新的局部存储器可以重新使用分配给不同子程序或中断程序的相同局部存储器。

局部存储器在分配时,PLC不进行初始化,初始值可能是任意的。当在子程序调用过程中传递参数时,在被调用子程序的局部存储器中,由CPU代替被传递的参数的值。局部存储器在参数传递过程中不接受值,在分配时不被初始化,也没有任何值。

可以按位、字节、字或双字访问局部存储器。可以把局部存储器作为间接寻址的指针,但不能作为间接寻址的存储器区。

位:L[字节地址].[位地址]  L0.2

字节、字、双字:L[长度][起始字节地址]  LB33 LW10 LD15

(11)特殊存储器SM

SM位为CPU与用户程序之间传递信息提供了一种手段。可以用这些位选择和控制S7-200CPU的一些特殊功能。用户可以按位、字节、字或者双字的形式来存取。

位:SM[字节地址].[位地址]SM0.1

字节、字或者双字:SM[长度][起始字节地址]SMB86

表4-7为常用的特殊存储器位列表,其他特殊存储器的用途可查阅S7-200系统手册。

表4-7 常用的特殊存储器位

img266

(12)模拟量输入AI

S7-200将模拟量值(如温度或电压)转换成1个字长(16位)的数据。可以用区域标志符(AI)、数据长度(W)及字节的起始地址来存取这些值。因为模拟值输入为1个字长,且从偶数位字节(如0,2,4)开始,所以必须用偶数字节地址(如AIW0,AIW2,AIW4)来存取这些值。模拟量输入值为只读数据。模拟量转换的实际精度是12位。

格式:AIW[起始字节地址]AIW4

(13)模拟量输出AQ

S7-200把1个字长(16位)数字值按比例转换为电流或电压。可以用区域标志符(AQ)、数据长度(W)及字节的起始地址来改变这些值。因为模拟量为1个字长,且从偶数字节(如0,2,4)开始,所以必须用偶数字节地址(如AQW0,AQW2,AQW4)来改变这些值。模拟量输出值为只写数据。模拟量转换的实际精度是12位。

格式:AQW[起始字节地址]AQW4

S7-200CPU存储器的范围和特性见表4-8。

表4-8 S7-200CPU存储器的范围和特性一览表

img267

常数值表示如表4-9所示。

表4-9 常数举例

img268

续表4-9

img269

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

我要反馈