阐明
CPU 的过程映像每个周期都会更新。然而,在时间关键的应用中,数字输入或输出的当前状态可能必须比每个周期一次更频繁地读取或传送。为此,可以使用操作数中的I/O访问标识符的后缀直接访问I/O。
如果要直接从I/O 读取输入,则需要使用I/O 输入存储区域(PI),而不是过程映像输入(I)。外围存储器可以位、字节、字或双字的形式读取。
如果要直接写入输出,则需要使用I/O 输出存储区域(PQ),而不是过程映像输出(Q)。对外设输出存储器的写操作可以位、字节、字或双字的形式执行。
要直接从外设输入读取或写入信号,请将I/O 访问后缀“:P”添加到操作数。
结构化PLC 变量中的元素也可以通过“:P”进行寻址。但不能使用“:P”访问上层变量。
警告直接写入I/O
立即写入I/O 可能会导致危险情况,例如在一个程序循环中多次写入输出。阐明
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”:P 对I/O 存储区域(PI 或PQ)中的“Motor”变量进行寻址。 “Structured_Tag”.Component 对过程映像中结构化PLC 变量的元素进行寻址。 'Structured_Tag'.Component:P 对I/O 存储区域(PI 或PQ)中结构化PLC 变量的元素进行寻址。
审稿人:刘庆