寻址全局变量
要对全局 PLC 变量进行寻址,可以使用地址或符号名称。
说明 LWORD、LINT、ULINT、LREAL、LTIME、LTOD 和 LDT 数据类型只能通过符号名寻址。 |
按符号名对全局变量寻址
使用符号名称进行寻址时,则需输入 PLC 变量表中的变量名称。全局变量的符号名自动用引号括起来.
可以使用 PLC 变量的符号名称,对基于 PLC 数据类型的结构化变量进行寻址。也可以使用句点分隔各元素的名称。
按地址对全局变量寻址
使用地址寻址时,则需输入 PLC 变量表中的变量地址。对于每个操作数范围,地址使用以零开头的数值地址地址标识符 % 被自动设置为全局变量地址的前缀。
示例
以下示例显示的是符号名与地址寻址的应用:
寻址 | 说明 |
---|---|
%Q1.0 | 地址:输出 1.0 |
%I16.4 | 地址:输入 16.4 |
%IW4 | 地址:输入字 4 |
"Motor" | 符号名地址"Motor" |
"Value" | 符号名地址"Value" |
"Structured_Tag" | 基于 PLC 数据类型的变量符号地址 |
"Structured_Tag".Component | 结构化变量的元素符号地址。 |
访问 I/O 设备
说明
CPU 的过程映像是每个周期更新一次。但是,在对时间要求苛刻的应用中,读取或传送数字输入或输出当前状态的频率可能必须高于每个周期一次。为此,可以在操作数中使用 I/O 访问标识符的后缀直接访问 I/O。
如果要从 I/O 直接读取输入,则需使用 I/O 输入存储区 (PI),而非过程映像输入 (I)。外围设备存储区可按位、字节、字或双字读取。
如果要直接写入输出中,则需使用 I/O 输出存储区 (PQ),而非过程映像输出 (Q)。可以位、字节、字或双字形式对外围输出存储区执行写操作。
要直接从外围设备输入读取或写入信号,可以给操作数添加 I/O 访问后缀“:P”。
也可以通过“:P”寻址结构化 PLC 变量中的元素。但无法使用“:P”访问上一级变量。
说明
S7-1200/1500:将 I/O 输入或输出作为块参数进行传送
如果将一个 I/O 输入或输出用作输入参数,则运行过程中调用该块时可能会发生 IO 访问错误。例如,直接访问输入模块时发生读取错误。
S7-1500 系列 CPU(固件版本 V2.1 或更高版本)的系统响应如下:
调用块并使用信号的替换值进行处理。
S7-1200 和 S7-1500 系列 CPU(固件版本低于 V2.1)的系统响应如下:
发生 I/O 访问错误时,不进行块调用。而在块调用结束后继续程序执行。如果存在 OB 122 或启用了本地错误处理,则执行这些操作。
要防止在发生 I/O 访问错误时不调用块,首先需要将该 I/O 输入或输出复制到一个局部变量 (Temp) 中,然后再将其作为块参数传送到被调用块中。
语法
:P
示例
下列示例显示的是 I/O 访问标识符的应用:
寻址 | 说明 |
---|---|
"Motor" | 对过程映像中的 "Motor" 变量进行寻址。 |
"Motor":P | 对 I/O 存储器区(PI 或 PQ)中的 "Motor" 变量进行寻址。 |
"Structured_Tag".Component | 对过程映像中结构化 PLC 变量的元素进行寻址。 |
"Structured_Tag".Component:P | 对 I/O 存储器区(PI 或 PQ)中结构化 PLC 变量的元素进行寻址。 |