• 沒有找到結果。

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

N/A
N/A
Protected

Academic year: 2022

Share "5 CPU 存储器的数据类型及寻址方式"

Copied!
18
0
0

加載中.... (立即查看全文)

全文

(1)

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

S7-200 CPU 提供了存储器的特定区域,使控制数据的运行更快、更有效。

本章概述

节 内 容 页

5.1 CPU 存储器区域的直接寻址 5–2

5.2 CPU 存储器区域的 SIMATIC 间接寻址 5–9

5.3 S7-200 CPU 的存储器保持 5–10

5.4 由用户程序来永久保存数据 5–15

5.5 使用存储器卡来保存用户程序 5–16

5

(2)

5.1 CPU 存储器区域的直接寻址

S7-200 将信息存于不同的存储器单元,每个单元都有唯一的地址。你可以明确指出要存 取的存储器地址,这样就允许用户程序直接存取这个信息。

使用存储器地址来存取数据

若要存取存储器区域的某一位,则必须指定地址,包括存储器标识符、字节地址及位号。

图 5-1 是一个位寻址的例子 (也称为“字节.位”寻址)。在这个例子中,存储器区以及字 节地址 (I= 输入,3= 字节 3) 和位地址 (第 4 位) 之间用点号“·”相隔开。

图 5-1 存取 CPU 存储器中的位数据 (字节.位寻址)

使用这种字节寻址方式,可以按照字节、字或双字来存取许多存储器区域 (V,I, Q,M S,L 及 SM) 中的数据。若要存取 CPU 存储器中的一个字节、字或双字数据,则必须 以类似位寻址的方式给出地址,包括区域标志符、数据大小以及该字节、字或双字的起始 字节地址,如图 5-2 所示。其它 CPU 存储器区域 (如T,C,HC 以及累加器) 中存取数 据使用的地址格式为:区域标识符和设备号。

图 5-2 字节、字和双字对同一地址存取操作的比较 I 3 4

7 6 5 4 3 2 1 0

MSB LSB

I 0 I 1 I 2 I 3 I 4 I 5 I 6 MSB = 最高位 I 7

LSB = 最低位 .

区域标识(I=输入)

字节地址:字节(3=第4 个字节)

字节与位地址之间的间隔 字节的位,或位号:(0-7)

I 8 I 9 I 10 I 11 I 12 I 13 I 14 I 15

V B 100

区域标识(V=存储器) 访问一个字节

7 0 字节地址

VB100

MSB LSB

V W 100

区域标识(V=存储器) 访问一个字 字节地址

VW100 VB100 VB101

15 8

MSB

7 LSB0

V D 100

区域标识(V=存储器) 访问一个双字 字节地址 VD100

最高有效字节 最低有效字节

VB100 VB101 VB102 VB103

31 8

MSB

7 0

LSB 16 15

24 23

最高有效字节 最低有效字节 VB100

MSB = 最高有效位 LSB = 最低有效位

.

(3)

数值表示

表 5-1 给出了不同长度的数值所能表示的整数范围。

实 数 (或浮点数) 采用 32 位单精度数来表示,其格式是正数:+1.175495E-38 到 +3.402823E+38;负数:-1.175495E-38 到 -3.402823E+38。按照ANSI/IEEE 754 1985 标准格式,以双字长度来存取。

表 5-1 数据大小规定及相关整数范围

无符号整数 有符号整数

数据大小 十进制 十六进制 十进制 十六进制

B (字节) :

8位值 0 to 255 0 to FF -128 to 127 80 to 7F W (字) :

16位值 0 to 65,535 0 to FFFF -32,768 to 32,767 8000 to 7FFF D (双字) :

32位值

0 to

4,294,967,295 0 to FFFF FFFF

-2,147,483,648 to 2,147,483,647

8000 0000 to 7FFF FFFF 输入映象寄存器 (I) 寻址

如 4.6 节所述,在每次扫描周期的开始,CPU 对输入点进行采样,并将采样值存于输入 映象寄存器中。可以按位、字节、字或双字来存取输入映象寄存器。

格式:

位 I[字节地址].[位地址] I0.1 字节,字,双字 I[长度][起始字节地址] IB4 输出映象寄存器 (Q) 寻址

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

格式:

位 Q [字节地址].[位地址] Q1.1 字节,字,双字 Q [长度][起始字节地址] QB5 变量 (V) 存储器区寻址

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

格式:

位 V [字节地址].[位地址] V10.2 字节,字,双字 V [长度][起始字节地址] VW100 位存储器 (M) 区寻址

可以使用内部存储器标志位 (M) 作为控制继电器存储中间操作状态或其它的控制信息。

尽管名为“位存储器区”,表示按位存储,但不仅可以按位,也可以按字节、字或双字来 存取位存储器区。 

格式:

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

(4)

顺序控制继电器 (S) 存储器区寻址

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

格式:

位 S [字节地址].[位地址] S3.1 字节,字,双字 S [长度][起始字节地址] SB4 特殊存储器 (SM) 标志位

SM 位提供了 CPU 和用户程序之间传递信息的方法。可以使用这些位选择和控制 S7- 200 CPU 的一些特殊功能,例如:

z 第一次扫描的 ON 位

z 以固定速度触发位

z 数学运算或操作指令状态位

关于 SM 的详细信息,请参阅附录 C。尽管 SM 区基于位存取,但可以按位、字节、

字或 双字来存取。.

格式:

位 SM [字节地址].[位地址] SM0.1 字节,字,双字 SM [长度][起始字节地址] SMB86 局部存储器 (L) 区寻址

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

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

子程序或中断子程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程 序、中断程序或其它子程序的局部存储器。同样地,中断程序也不能访问分配给主程序或 子程序的局部存储器。

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

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

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

格式:

位 L [字节地址].[位地址] L0.0 字节,字,双字 L [长度] [起始字节地址] LB33

(5)

定时器 (T) 存储器区寻址

S7-200 CPU 中,定时器是累计时间增量的设备。S7-200 定时器精度 (时基增量) 有 1ms,10ms,100ms 三种。有两个相关的变量:

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

z 定时器位:定时器当前值大于预设值时,该位置为“1”。(预设值作为定时器指令的 一部分输入)

可以使用定时器地址 (T+定时器号) 来存取这些变量。对定时器位或当前值的存取依赖 于所用的指令:带位操作数的指令存取定时器位,而带字操作数的指令存取当前值。如图 5-3 所示,常开节点 (T3) 指令存取定时器位,而 MOV_W 指令存取定时器的当前值。

关 于 S7-200 指令 系统的详细信 息,请参阅第 9 章的 SIMATIC 指令和第十章 的 IEC1131-3 指令。

格式: T [定时器号] T24

图 5-3 存取 SIMATIC 定时器数据 计数器 (C) 存储器区寻址

在 S7-200 CPU 中,计数器是累计其输入端脉冲电平由低到高的次数。CPU 提供了三种 类型的计数器:一种只能增计数;一种是减计数;另一种既可增计数,又可减计数。与计 数器相关的变量有两个: 

z 当前值:16 位符号整数,存储累计脉冲数。 

z 计数器位:当计数器的当前值大于或等于预设值时,此位置为“1”。(预设值作为计 数器指令的一部分输入)

可以使用计数器地址 (C+计数数号) 来存取这些变量。对计数器位或当前值的存取依赖 于所用的指令:带位操作数的指令存取计数器位,而带字操作数的指令存取当前值。如图 5-4 所示,常开接点 (C3) 指令存取计数器位,而 MOV-W 指令存取计数器的当前值。

关于 S7-200 指令系统的详细信息,请参阅第9章 SIMATIC 指令和第十章的 IEC1131-3 指令。

格式: C[计数器号] C20

T0 T1 T2 T3 当前值

T0

T3

定时器位(读/写)

T1 T2

I2 1

MOV W EN

OUT VW200 T3 IN

T3

区域标识(定时器)

定时器号(位地址)

定时器号

(当前值地址)

区域标识(定时器)

15

MSB LSB

定时器当前值(读/写) 0

T0

T3

T0 T1 T2 T3 定时器位 T1

T2

(6)

图 5-4 存取计数器数据 模拟量输入 (AI) 寻址

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

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

图 5-5 存取模拟量输入值 模拟量输出 (AQ) 寻址

S7-200 把1个字长 (16位) 数字值按比例转换为电流或电压。可以用区域标识符 (AQ) 、 数据长度 (W) 及起始字节地址来置这些值。如图 5-6 所示,因为模拟输出量为一个字 长,且从偶数字节 (如 0.2,4) 开始,必须使用偶数字节地址 (如 AQW0,AQW2,

AQW4) 来设置这些值。用户程序无法读取这个模拟输出值。

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

图 5-6 存取模拟量输出值

AI W 8

区域标识(模拟量输入)

访问一个字长度 字节地址

AIW8 15 字节8 8 字节 9

MSB

7 0

LSB

最低有效字节 最高有效字节

AQ W 10

区域标识(模拟量输出)

访问一个字长度 字节地址

AQW10 字节 10 字节 11

15 8

MSB

7 0

LSB

最低有效字节 最高有效字节

当前值 C0

C3

C0 计数器位

(读/写)

C1 C2

C1 C2 C3

I2.1 MOV_W EN

OUT VW200 C3 IN

C3

计数器号

(当前值地址)

区域标识(计数器)

15

MSB LSB

0

当前值

(读/写)

C0

C3

C0 计数器位

C1 C2

C1 C2 C3 计数器号(位地址)

区域标识(计数器)

ENO

(7)

累加器 (AC) 寻址

累加器是可象存储器那样使用的读/写设备。例如,可以用它来向子程序传递参 数,或 从 子 程 序 返 回 参 数 , 以 及 用 来 存 储 计 算 的 中 间 值 。CPU 提供了 4 个 32位累加器 (AC0,AC1,AC2,AC3)。可以按字节、字或双字来存取累加器中的数值。如图 5-7 所 示,按字节、字来存取累加器只使用存于存储器中数据的低8位或低 16 位,以双字来存 取要使用全部 32 位。存取数据的长度由所用指令决定。 

格式: AC [累加器号] AC0

注意:

第九章有关中断程序中累加器的使用信息,请参阅 9.15,SIMATIC 通讯指令

图 5-7 累加器寻址

7 0

DEC_W EN

OUT VW100 AC1 IN

累加器号

区域标识符 (累加器)

15 0

LSB

INV_D EN

OUT VD250 AC3 IN

31 MSB

0 LSB 7

8 16 15

2423

最低有效字节

字节 0 字节 1

字节2 字节3

AC2(字节存取)

AC1 (字存取)

AC3(双字存取)

MSB

累加器号

区域标识符(累加器)

8 7

最低有效字节 最高有效字节

字节 0 字节1

MOV_B EN

OUT VB200 AC2 IN

累加器号

区域标识符(累加器) ENO

ENO

ENO 最高有效字节

(8)

高速计数器 (HC) 寻址

高速计数器用来累计比 CPU 扫描速率更快的事件。高速计数器有 32 位符号整数累计 值(或当前值)。若要存取高速计数器中的值,则必须给出高速计数器的地址,即存储器类 型 (HC) 及计数器号 (如 HC0)。如图 5-8 所示,高速计数器的当前值为只读值, 可作 为双字 (32 位) 来寻址。

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

图 5-8 存取高速计数器当前值 使用常数

可以在许多 S7-200 指令中使用常数。常数值可为字节、字或双字。CPU 以二进制方式 存储所有常数,也可用十进制、十六进制、ASCII 码或浮点数形式来表示。

十进制格式: [十进制值]

十六进制格式: 16#[十六进制值]

ASCII 格式: ’[ASCII码文本]’

实数或浮点格式: ANSI/IEEE 754-1985 二进制格式: 2#1010_0101_1010_0101

S7-200 CPU 不支持“数据类型”或数据的检查 (例如指定常数作为整数、符号整数或双 整数来存储),且不检查某个数据的类型。举例来说,Add 指令可以把 VW100 的值作为 一个符号整数来使用,而一条异或指令也可把 VW100 中的值作为一个符号二进制数来 使用。

下面是十进制、十六进制、ASCII 及浮点格式常数例子:

z 十进制常数: 20047

z 十六进制常数: 16#4E4F

z ASCII 常数: ’Text goes between single quotes.’

z 实数或浮点格式: +1.175495E-38 (正数) -1.175495E-38 (负数)

z 二进制格式 2#1010_0101_1010_0101 HC 2

31 HC2

MSB

0 LSB

高速计数器号

区域标识符(高速计数器)

最低有效字节 最高有效字节

字节 0 字节 1

字节 2 字节 3

(9)

5.2 CPU 存储器区域的 SIMATIC 间接寻址

间接寻址使用指针来存取存储器中的数据。S7-200 CPU 允许使用指针对下述存储器区域 进行间接寻址: I,Q,V,M,S,T (仅当前值) 以及 C (仅当前值)。但不可以对独立 的位 (BIT) 值或模拟量进行间接寻址。

建立指针

为了对存储器的某一地址进行间接寻址,需要先为该地址建立指针。指针为双字值,存放 另一个存储器的地址。只能使用变量存储区 (V) 、局部存储区 (L) 或累加器 (AC1、

AC2、AC3) 作为指针。为了生成指针,必须使用双字传送指令 (MOVD),将存储器某个 位置的地址移入存储器另一位置或累加器作为指针。指令的输入操作数必须使用“&”符号 表示某一位置的地址,而不是它的值。把从指针处取出的数值传送到指令输出操作数标识 的位置。

例: MOVD &VB100, VD204 MOVD &MB4, AC2 MOVD &C4, LD6 使用指针来存取数据

在操作数前面加“*”号表示该操作数为一个指针。如图 5-9 所示,AC1 表示AC1 为 MOVW 指令确定的一个字长的指针。在这个例子中,存于 V200 和V201 中的值被移至 累加器 AC0。

图 5-9 使用指针来间接寻址 修改指针

可以改变一个指针的值。因为指针为 32 位的值,所以使用双字指令来修改指针值。简 单的数学运算指令,如加法或自增指令,可用于修改指针值。记住要调整存取的数据的长 度: 

z 当存取字节时,指针值加1。

z 当存取一个字、定时器或计数器的当前值时,指针值加 2。

z 当存取双字时,指针值加 4。

AC1

VW200的地址

AC0

1 2 3 4 1 2

3 4 5 6 7 8

V199

V200

V201 V202 V203 V204

MOVD &VW200, AC1

MOVW *AC1, AC0

VB200的地址送入 AC1建立指针

把指针处的值送到 AC0

MOVD &VB200,AC1

(10)

图 5–10 的例子说明了如何建立间接寻址的指针;如何间接存取数据和如何增加指针。

图 5-10 存取字数值时指针的修改

5.3 S7-200 CPU 的存储器保持

S7–200 CPU 提供了几种方法来确保用户程序、程序数据、以及 CPU 的组态数据不丢 失,如图 5-11。

z CPU提供了一个EEPROM来永久保持用户程序选择的数据区,以及CPU的组态数据。

z CPU提供一个超级电容器,在 CPU 掉电时保存完整的 RAM 存储器。根据 CPU 模 块类型,超级电容器可保存 RAM 存储器达几天之久。

z CPU提供一个可选的电池卡,当 CPU 掉电后,可延长 RAM 存储器保持的时间。

电池卡只有在超级电容器耗尽后才提供电源。

这一节讨论在各种情况下,RAM 中数据的永久保存和驻留。

图 5-11 S7-200 CPU 的存储区域

AC1 VW200地址

AC0

1 2 3 4 1 2

3 4 5 6 7 8 V199 V200 V201 V202 V203 V204

MOVD &VW200, AC1

MOVW *AC1, AC0

INCD AC1

AC0

5 6 7 8 1 2

3 4 5 6 7 8 V199 V200 V201 V202 V203

V204 MOVW *AC1, AC0

INCD AC1 AC1

VW202地址

把 VB200的地址 (VW200的初始地址)

送入AC1建立指针 把AC1所指向的字数值 送到 AC0

把指针增加两次,指向 下一个字

把AC1(VW202)所指 向的字数值送到 AC0

RAM存储器:由超级电容器 或可选电池卡保持

EEPROM存储器:提供永久存储

用户程序

V 存储器(永久区)

CPU 组态

M 存储器(永久区)

用户程序

V 存储器 CPU 组态

M 存储器

定时器和计数器 当前值

B

(11)

下装和上装用户程序

程序包含三部分:用户程序,数据块 (可选),CPU 组态 (可选)。如图 5-12 所示,下装 的程序存于 CPU 存储器的RAM区。为了永久保存,CPU 会同时自动地把这些用户程 序、数据块 (DB1) 以及 CPU 组态拷贝到 EEPROM 中。

图 5-12 下装程序元素

当从 CPU 上装一个程序时,如图 5-13 所示,用户程序及 CPU 配置从 RAM中上装到 个人计算机 (PC)。当上装数据块时,存于 EEPROM 中的永久数据块将同存于 RAM 中 剩下的数据块 (如果有的话) 合并,然后把完整的数据块传到个人计算机 (PC) 上。

RAM 存储器 EEPROM 存储器

用户程序

V 存储器(永久区)

CPU组态

M 存储器(永久区)

用户程序 CPU 组态 数据块DB1 CPU 组态

数据块 (DB1):

最大V存储器范围

用户程序

V 存储器 CPU组态

M 存储器

定时器和计数器 当前值

S7-200 CPU 用户程序

CPU 组态

RAM 存储器 EEPROM 存储器

用户程序

V 存储器 CPU 组态

M 存储器

定时器和计数器 当前值

S7-200 CPU

用户程序

V 存储器 (永久区)

CPU 组态

M 存储器(永久区)

DB1

(12)

CPU 掉电时自动保持位存储器 (M) 区域的数据

如果设为保持,则当 CPU 模块掉电时,M 存储器前 14 个字节 (MB0 到 MB13) 会完 整保存到 EEPROM 中。如图 5-14 所示,CPU 将这些要保存的 M 存储器区移到 EEPROM 中。

图 5-14 掉电时把位存储器 (M) 部分存到 EEPROM 中 开机后恢复存储器

开机后,CPU 会从 EEPROM 向 RAM 中恢复用户程序和 CPU 配置,如图 5-15 所 示。

图 5-15 开机时恢复用户程序和 CPU 配置

` RAM 存储器 EEPROM 存储器(永久)

用户程序

V 存储器 (永久区)

CPU 组态

M 存储器(永久区)

当掉电时,如果设为保持,

则M存储器前14个字节

(MB0到MB13)被复制到 EEPROM

用户程序

V 存储器 CPU 组态

M 存储器

定时器和计数器 当前值

EEPROM 存储器(永久)

用户程序

V 存储器 CPU 组态

M 存储器

定时器和计数器 当前值

用户程序

CPU 组态

用户程序

V 存储器(永久区)

CPU 组态

M 存储器(永久区)

RAM 存储器

(13)

开机后,CPU 检查 RAM 存储器,确认超级电容器是否已成功保存了 RAM 存储器中的 数据。如果成功保存,那么 RAM 存储器的保持区域将保持不变。如图 5-16 所示,V 存储器中的未保持区域,将从相应的 EEPROM 中的V存储器永久区域处恢复回来。

图 5-16 开机时恢复程序数据 (数据成功地保留在 RAM中)

如果 RAM 存储器的内容没有保持下来 (如在意外掉电后),CPU 会清除 RAM存储器 (包括保持和非保持区) 并置保持数据丢失存储器标志位 (SM0.2) 为“1”。如图 5-17 所 示,当开机后,存于 EEPROM 永久区域中的数据会复制到 RAM 存储器中。 

图 5-17 开机时恢复程序数据 (数据不保留在 RAM 中)

RAM存储器 EEPROM存储器(永久)

用户程序

V 存储器 CPU 组态

M 存储器

定时器和计数器 当前值

所有非保持存 储器区清零

响应的永久V存储器区被复制 到RAM中V存储器的非保持区

用户程序

V 存储器(永久区)

CPU 组态

M 存储器(永久区)

RAM存储器 EEPROM存储器(永久区)

用户程序

V 存储器 CPU 组态

M 存储器

定时器和计数器 当前值

用户程序

V 存储器(永久区)

CPU 组态

M 存储器(永久区)

.

V存储器(永久区)

若设为保持,M存储器(永久区)

所有其它存储器区清零

(14)

定义存储器保持范围

如图 5-18 所示,当电源掉电时,最多可以定义六个可选的要保持的存储器区。你可以定 义以下存储器区的保持地址范围:V,M,C和T。对于定时器,只有TONR 可以保持。在 STEP 7-Micro/WIN 32 中,缺省设置是 M 存储器的最开始的14个字节是不保持的。缺 省情况是不允许 CPU 断电保存。

注意:

定时器和计数器只有当前值可被保持,而定时器位和计数器位是不能保持的。

为了定义存储器保持范围,选择菜单命令 View>System Block, 点击 Retentive Ranges 块 。 图 5-18 为 定 义 保 持 范 围 的 对 话 框 。 如 果 选 择 CPU 的 缺 省 保 持 范 围 , 则 按 Defaults 按钮。

图 5-18 设置 CPU 存储器的保持范围

(15)

5.4 由用户程序来永久保存数据

可以将存于存储器上的数据 (字节、字或双字) 备份到 EEPROM 存储器。这项功能可用 于保存 V 存储器区任意位置的数据。

存一次 EEPROM 操作会把扫描时间增加 15 到 20ms。保存操作所写的数据会覆盖先 前 EEPROM 中 V 存储器区的数据。

注意:

存 EEPROM 操作并不更新存储器卡中的数据

复制V存储器到 EEPROM

特殊存储器字节 31 (SMB31) 和特殊存储器字 32 (SMB32) 命令 CPU 复制 V 存储器 中的一个数据到 EEPROM 中的 V 存储器区。图 5-19 为 SMB31 和SMB32 的格式。

采用下述步骤来保存或写 V 存储器中的一个指定值。

1. 将要保持的 V 存储器地址置于 SMW32。

2. 将数据长度写入 SM31.0 和 SM31.1。 (见图 5–19) 3. 设置 SM31.7 = 1。

在每次扫描的末尾,CPU 自动检查 SM31.7,如果 SM31.7等于 1,则将指定的数据存 于 EEPROM。当 CPU 将 SM31.7 置为 0 时,操作结束。在保存操作完成之前,不要 改变 V 存储器中的值。

图 5-19 SMB31 和 SMB32 的格式 限制存 EEPROM 次数

因为存 EEPROM 操作的次数是有限制的 (最少 10 万次,典型为 100 万次),请注意只 有在必要时才进行保存操作。否则,EEPROM 可能会失效,从而引起 CPU 故障。原则 上,当特殊事件发生时,才执行存操作,而这种事件又是不很频繁发生的。 

例如,如果 S7-200 扫描时间为 50ms,每次扫描存一个数据,那么 EEPROM最短只能 工作 5,000 秒,还不到一个半小时。另一方面,如果每小时存一个数据,则 EEPROM

7 0

MSB LSB

sv 0 0 0 0 0 s1 s0 SMB31

存到 EEPROM存储器:

0 = 否 1 = 是

保存数据长度:

00 - 字节 01 - 字节 10 - 字 11 - 双字

15

MSB LSB

SMW32

0

V 存储器地址

用从V0开始的偏移量作为 V 存储器地址 每次保存后CPU

复位 SM31.7

(16)

5.5 使用存储器卡来保存用户程序

CPU 支持可选的存储器卡,为用户程序提供一个便携式 EEPROM 存储器。你可以象磁 盘那样来使用存储器卡。CPU 在存储器卡上存储下列元素:

z 用户程序

z 存于 EEPROM 的 V 存储器永久区的数据

z CPU 组态

有关存储器卡的详细内容,请参阅附录 A。

复制到存储器卡

只有当 CPU 在停机方式下通电且安装存储器卡时,你才可以从 RAM 存储器中复制程 序到存储器卡。

警告:

静电放电可以损坏存储器卡或 CPU 接口。

当你拿存储器卡时,你应当使用接地垫或戴接地手套,还应当把存储器卡存于导电容器 里。

当 CPU 通电时,你可以安装或卸下存储器卡。为了安装存储器卡,应当去掉存储器卡接 口的保护带,把存储器卡插入 CPU 模块存取盖下面的接口(存储器卡的正确安装是关 键)。当安装完存储器卡后,使用下列步骤来复制程序。

1. 将 CPU 置于停机状态。

2. 如果程序未下装入 CPU,那么应下装程序。

3. 使用菜单命令 PLC>Program Memory Cartridge 来向存储器卡中复制序。 图 5-20 显示了存于存储器卡中的 CPU 存储器元素。

4. 卸下存储器卡 (可选)。

图 5-20 复制 CPU 存储器到存储器卡

!

用户程序 CPU组态 V存储器

M存储器

定时器和计数器 当前值

EEPROM存储器(永久)

用户程序 CPU组态 V存储器(永久区)

M存储器(永久区)

组态

用户程序

存储器卡

V存储器(永久区)

(17)

用存储器卡恢复程序和存储器

为了从存储器卡向 CPU 传送程序,你必须打开装有存储器卡的 CPU 电源。如图 5-21 所示,电源接通后,CPU 执行下列任务 (当安装存储器卡后):

z 清除 RAM 存储器

z 复制存储器卡内容到 RAM 存储器。

z 用户程序编程,CPU 组态和拷贝到 EEPROM。

注意:

在 CPU 通电时,若存储器卡为空,或对不同型号的 CPU 进行编程,则会出现错误。高 型号的 CPU 可以读出用低型号 CPU 编程的存储器卡,反之则不能读出,例如 CPU 224 可以读出 CPU 221 或 CPU 222 所编写的存储器卡程序,但 CPU 224 在存储器卡 中所编写的程序,CPU 221 或 CPU 222 不能读取。卸下存储器卡,再次通电,存储器 卡可以插入并编程。

图 5-21 (用安装的存储器卡) 当 CPU 通电时恢复存储器

用户程序

V 存储器(永久区)

CPU 组态

M存储器(永久区)

.

RAM存储器 EEPROM 存储器(永久)

用户程序

V 存储器 CPU 组态

M 存储器

定时器和计数器 当前值

用户程序 CPU 组态

V 存储器 (永久存储区)

用户程序

CPU 组态 V 存储器 (永久存储区)

所有其它存储器区清零

存储器卡

(18)

參考文獻

相關文件

VAB 使用者無法使用 RIDE 提供的 Filter Design 公用程式設計濾波器,但是 使用 VAB 的 Filter 元件時,在元件特性選單可以直接指定此濾波器的規格,使用

mov ax,var1 ;將其中一個記憶體內容先複製到暫存器 xchg ax,var2 ;分別執行記憶體與暫存器內容的交換動作 xchg ax,var1 ;完成交換。 Swap var1

可程式控制器 (Programmable Logic Controller) 簡稱 PLC,是一種具有微處理機功能的數位電子 設備

數位計算機可用作回授控制系統中的補償器或控制

此位址致能包括啟動代表列與行暫存器的 位址。兩階段的使用RAS與CAS設定可以

MOV reg,data reg ← data 轉移立即資料(data)到暫存器 reg 內 MOV dreg,sreg dreg ← sreg 轉移暫存器 sreg 的內容到暫存器 dreg MOV segreg,reg segreg ← reg

下列關於 CPU 的敘述,何者正確?(A)暫存器是 CPU 內部的記憶體(B)CPU 內部快取記憶體使 用 Flash Memory(C)具有 32 條控制匯流排排線的 CPU,最大定址空間為

//Structural description of design example //See block diagram