确定控制器内存信息
此信息不适用于
CompactLogix
5380、ControlLogix
5580 和 5590、Compact GuardLogix
5380、GuardLogix
5580 和 ControlLogix 5590 控制器。在这些控制器中,使用的内存属性不受支持或不可访问。控制器的内存分为 I/O 内存和扩展内存。下表显示了控制器如何使用各类内存:
此对象 | 使用来自以下部分的内存 |
|---|---|
I/O 标签 | I/O 内存 |
生产型标签 | |
消费型标签 | |
通过 MSG 指令的通信 | |
通过工作站的通信 | |
除 I/O 标签、生产型标签或消费型标签以外的标签 | 扩展内存 |
逻辑例程 | |
基于使用 FactoryTalk Linx 的轮询 (OPC/DDE) 标签的通信。 | I/O 内存和扩展内存 |
注意,控制器返回的值为 32 位字的格式。如需以字节形式查看值,只需将其乘以 4。使用此过程可获取有关控制器内存的以下信息:
- 可用(空闲)I/O 和扩展内存
- 总 I/O 和扩展内存
- I/O 和扩展内存的最大连续块
从控制器获取内存信息
如需从控制器获取内存信息,请执行消息 (MSG) 指令,具体配置如下:
在“消息属性”(Message Properties) 对话框的“配置”(Configuration) 选项卡中:

在“消息属性”(Message Properties) 对话框的“通信”(Communication) 选项卡中:

选择所需内存信息
MSG 指令将以下信息返回至 INT_array(MSG 指令的目标标签)。
重要提示:
对于 1756-L55M16 控制器,MSG 指令会针对每个扩展内存类别返回两个值。为确定 1756-L55M16 控制器的空闲或总扩展内存,可将类别的两个值相加。

将 INT 转换为 DINT
MSG 指令会以两个单独的 INT 型值的形式返回每个内存值。
- 第一个 INT 代表值的低 16 位。
- 第二个 INT 代表值的高 16 位。
要将各个 INT 转换为一个可用值,可使用复制 (COP) 指令,其中:
在以下操作数中: | 指定: | 含义: |
|---|---|---|
Source | 2 元素对的第一个 INT(低 16 位) | 从低 16 位开始 |
Destination | 用于存储 32 位值的 DINT 标签 | 将值复制到 DINT 标签 |
长度 | 1 | 复制 1 倍 Destination 数据类型的字节数。在这种情况下,该指令会复制 4 个字节(32 位),其中将高 16 位和低 16 位组合为一个 32 位值。 |
提供反馈