当前位置:
文档之家› CPU 存储器的数据类型及寻址方式
CPU 存储器的数据类型及寻址方式
变量 (V) 存储器区寻址
程序执行过程中控制逻辑操作的中间结果,也可以使用 V 存储器来保存与工序或任务相 关的其它数据。可以按位、字节、字或双字来存取 V 存储器。
格式:
位
V [字节地址].[位地址]
字节,字,双字 V [长度][起始字节地址]
V10.2 VW100
位存储器 (M) 区寻址
可以使用内部存储器标志位 (M) 作为控制继电器存储中间操作状态或其它的控制信息。 尽管名为“位存储器区”,表示按位存储,但不仅可以按位,也可以按字节、字或双字来 存取位存储器区。
格式:
AQW [起始字节地址]
AQW4
MSB
15
87
AQW10
字节 10
LSB 0
字节 11
最高有效字节
最低有效字节
AQ W 10
字节地址 访问一个字长度 区域标识(模拟量输出)
图 5-6 存取模拟量输出值
5-6
CPU 存储器的数据类型及寻址方式
累加器 (AC) 寻址
累加器是可象存储器那样使用的读/写设备。例如,可以用它来向子程序传递参 数,或 从 子 程 序 返 回 参 数 , 以 及用来存储计算的中间值。 CPU 提供了 4 个 32位累加器 (AC0,AC1,AC2,AC3)。可以按字节、字或双字来存取累加器中的数值。如图 5-7 所 示,按字节、字来存取累加器只使用存于存储器中数据的低8位或低 16 位,以双字来存 取要使用全部 32 位。存取数据的长度由所用指令决定。
CPU 存储器的数据类型及寻址方式
5
本章述
S7-200 CPU 提供了存储器的特定区域,使控制数据的运行更快、更有效。
节
内
容
5.1 CPU 存储器区域的直接寻址 5.2 CPU 存储器区域的 SIMATIC 间接寻址 5.3 S7-200 CPU 的存储器保持 5.4 由用户程序来永久保存数据 5.5 使用存储器卡来保存用户程序
MSB 7
LSB 0
VB100
VB100
V B 100
字节地址 访问一个字节 区域标识(V=存储器)
最高有效字节
最低有效字节
MSB 15
87
LSB 0
VW100 VB100
VB101
V W 100
字节地址 访问一个字 区域标识(V=存储器)
最高有效字节
MSB
31
24
VD100 VB100
23
VB101
格式:
位
L [字节地址].[位地址] L0.0
字节,字,双字 L [长度] [起始字节地址] LB33
5-4
CPU 存储器的数据类型及寻址方式
定时器 (T) 存储器区寻址
S7-200 CPU 中,定时器是累计时间增量的设备。S7-200 定时器精度 (时基增量) 有 1ms,10ms,100ms 三种。有两个相关的变量:
格式:
C[计数器号]
C20
5-5
CPU 存储器的数据类型及寻址方式
C3
计数器号(位地址) 区域标识(计数器)
当前值
C0 C1 C2 C3
计数器位 (读/写)
C0 C1 C2
C3
I2.1
MOV_W
MSB
15
EN ENO
C3 IN OUT VW200
计数器号 (当前值地址)
区域标识(计数器)
当前值 (读/写)
数据大小
B (字节) : 8位值 W (字) : 16位值 D (双字) : 32位值
无符号整数
十进制
十六进制
0 to 255
0 to FF
0 to 65,535 0 to FFFF
0 to
0 to
4,294,967,295 FFFF FFFF
有符号整数
十进制
十六进制
-128 to 127
80 to 7F
局部存储器和变量存储器很相似,主要区别是变量存储器是全局有效的,而局部存储器是 局部有效的。全局是指同一个存储器可以被任何程序存取 (例如,主程序、子程序或中断 程序)。局部是指存储器区和特定的程序相关联。S7–200 PLC 给主程序分配 64 个局部 存储器;给每一级子程序嵌套分配 64个字节局部存储器;给中断程序分配 64 个字节。
z 当前值:16 位符号整数,存储定时器所累计的时间。
z 定时器位:定时器当前值大于预设值时,该位置为“1”。(预设值作为定时器指令的 一部分输入)
可以使用定时器地址 (T+定时器号) 来存取这些变量。对定时器位或当前值的存取依赖 于所用的指令:带位操作数的指令存取定时器位,而带字操作数的指令存取当前值。如图 5-3 所示,常开节点 (T3) 指令存取定时器位,而 MOV_W 指令存取定时器的当前值。 关 于 S7-200 指 令 系 统 的 详 细 信 息 , 请 参 阅 第 9 章 的 SIMATIC 指 令 和 第 十 章 的 IEC1131-3 指令。
格式:
位
I[字节地址].[位地址]
I0.1
字节,字,双字 I[长度][起始字节地址]
IB4
输出映象寄存器 (Q) 寻址
在扫描周期的结尾,CPU 将输出映象寄存器的数值复制到物理输出点上。可以按位、字 节、字或双字来存取输出映象寄存器。
格式:
位
Q [字节地址].[位地址] Q1.1
字节,字,双字 Q [长度][起始字节地址] QB5
z 计数器位:当计数器的当前值大于或等于预设值时,此位置为“1”。(预设值作为计 数器指令的一部分输入)
可以使用计数器地址 (C+计数数号) 来存取这些变量。对计数器位或当前值的存取依赖 于所用的指令:带位操作数的指令存取计数器位,而带字操作数的指令存取当前值。如图 5-4 所示,常开接点 (C3) 指令存取计数器位,而 MOV-W 指令存取计数器的当前值。 关于 S7-200 指令系统的详细信息,请参阅第9章 SIMATIC 指令和第十章的 IEC1131-3 指令。
MSB = 最高有效位 LSB = 最低有效位
16 15
VB102
最低有效字节
LSB
87
0
VB103
V D 100
字节地址
访问一个双字 区域标识(V=存储器)
图 5-2 字节、字和双字对同一地址存取操作的比较
5-2
CPU 存储器的数据类型及寻址方式
数值表示
表 5-1 给出了不同长度的数值所能表示的整数范围。
局部存储器在分配时 PLC 不进行初始化,初值可能是任意的。当在子程序调用中传递参 数时,在被调用子程序的局部存储器中,由 CPU 代替被传递的参数的值。局部存储器在 参数传递过程中不接收值,在分配时不被初始化,也没有任何值。
可以按位、字节、字或双字访问局部存储器。可以把局部存储器作为间接寻址的指针,但 是不能作为间接寻址的存储器区。
格式:
AIW [起始字节地址]
AIW4
MSB 15
AIW8
字节8
最高有效字节
LSB
87
0
字节 9
最低有效字节
AI W 8
字节地址
访问一个字长度 区域标识(模拟量输入)
图 5-5 存取模拟量输入值
模拟量输出 (AQ) 寻址
S7-200 把1个字长 (16位) 数字值按比例转换为电流或电压。可以用区域标识符 (AQ) 、 数据长度 (W) 及起始字节地址来置这些值。如图 5-6 所示,因为模拟输出量为一个字 长,且从偶数字节 (如 0.2,4) 开始,必须使用偶数字节地址 (如 AQW0,AQW2, AQW4) 来设置这些值。用户程序无法读取这个模拟输出值。
格式:
T [定时器号]
T24
T3
定时器号(位地址) 区域标识(定时器)
当前值
定时器位(读/写)
T0
T0
T1
T1
T2
T2
T3
T3
I2
MSB
MOV W
15
1
EN
T3 IN OUT VW200
定时器号 (当前值地址)
区域标识(定时器)
图 5-3 存取 SIMATIC 定时器数据
定时器当前值(读/写) LSB
实 数 ( 或 浮 点 数) 采 用 32 位单 精度数 来表示 ,其格 式是正 数:+1.175495E-38 到 +3.402823E+38;负数:-1.175495E-38 到 -3.402823E+38。按照ANSI/IEEE 754 1985 标准格式,以双字长度来存取。
表 5-1 数据大小规定及相关整数范围
C0 C1 C2
C3
LSB0计数器位 C0 C1 C2 C3
图 5-4 存取计数器数据
模拟量输入 (AI) 寻址
S7-200 将现实世界的模拟值 (如温度或电压) 转换成1个字长 (16 位) 的数字量。可以用 区域标识符 (AI) 、数据长度 (W),及字节的起始地址来存取这些值。如图 5-5 所示,因 为模拟输入量为 1 个字长,且从偶数位字节 (如0.2,4) 开始,所以必须用偶数字节地址 (如 AIW0,AIW2,AIW4) 来存取这些值。模拟量输入值为只读数据。
. I 3 . 4
字节的位,或位号:(0-7) 字节与位地址之间的间隔
字节地址:字节(3=第4 个字节) 区域标识(I=输入)
MSB = 最高位 LSB = 最低位
MSB
LSB
7 6543 210 I0
I1
I2
I3
I4
I5
I6
I7
I8
I9
I 10
I 11
I 12 I 13
I 14