SETI:置位字节数组 (S7-300, S7-400) 说明使用“置位字节数组”指令,将指定字节区域中位的信号状态置位为“1”。在参数 S_BYTE 中 定义数组起点。通过在该指令的参数 N中指定要置位的位数来定义数组的大小。 说明 参数 N 的值必须是数字 8 的整数倍(例如,8、16、24 等)。 在参数 S_BYTE中指定的指针必须引用外部 I/O 存储区 (P)。由于“P”存储区是按照字节、字或 双字访问的,参数 S_BYTE中的指针必须指向与字节限值对应的操作数,即指针的位号必须为 “0”。 说明 过程映像输出 (Q) 中相应位的信号状态将复位为“0”。如果存在以下任一情况,调用“置位字节数组”指令将不起作用: • 参数 S_BYTE 中的指针没有引用外部 I/O 存储区 (P)。 •参数 S_BYTE 中指针引用的操作数不是整字节。 • 参数 N 的值不是数字 8 的整数倍。 • MCR位的信号状态为“0”。
下表列出了“置位字节数组”指令的参数: 参数 声明 数据类型 存储区 说明 S_BYTE Input POINTER P或常数 指向数组第一个字节的指 针,其中该数组的位将被 置位 对于跨区域间接寄存器寻 址,必须以双字格式指定 该指针。 N InputINT I、Q、M、D、 L、P 或常数 待置位的数组大小 以 8 的整数倍(例如,8、 16、24 等)位数来指定该数组。RESET:复位位数组 (S7-300, S7-400) 说明“复位位数组”指令用于将指定范围中位的信号状态复位为“0”。在参数 S_BIT 中使用指针定 义范围起点。如果指针指向外部 I/O的存储区,则不执行该指令。在该指令的参数 N 中,指 定在指定区域中待复位的位数。如果参数 N 的值为“0”,则调用该指令不起作用。只有 MCR 位为“1”时,才会执行该指令。如果 MCR 位的信号状态为“0”,则指定区域中的位 保持不变。 参数下表列出了“复位位数组”指令的参数: 参数 声明 数据类型 存储区 说明 S_BIT Input POINTER I、Q、M、D指向范围中第一个位的指 针,其中该范围的位将被 复位。 对于跨区域间接寄存器寻 址,必须以双字格式指定 该指针。 N InputINT I、Q、M、D、 L、P 或常数 待复位的位数。 示例 以下示例说明了该指令的工作原理:RESETP:在 I/O区域复位位数组 (S7-300, S7-400) 说明 “在 I/O 区域复位位数组”指令用于将 I/O区域中的位信号状态复位为“0”。将过程映像 输出中相应位的复位与这些 I/O 位保持相同。 使用参数 N 和 SA定义要复位的位数组。数组中的位必须属于要分配过程映像的 I/O 区域。 如果选择的部分位数组没有对应插入的 I/O设备,则该指令将尝试置位整个位数组。在这种 情况下,将在参数 RET_VAL 中输出错误信息。 按字节复位 I/O 区域。如果通过参数N 和 SA 定义的位数组不是始于或止于字节边界,则调 用该指令有以下作用: •属于要传送的第一个和Zui后一个字节,但不属于所定义位数组的位,将获取过程映像输 出中相应位的值。 警告 意外行为使用过程映像输出中相关位的值置位这些位可能导致意外响应,例如启动电机或关闭冷 却系统。 •将属于所定义位数组的位的信号状态复位为“0”。 必须在 MCR 区域中调用“在 I/O 区域复位位数组”指令。如果存在以下任一情况,调用“在 I/O 区域复位位数组”指令将不起作用: • 参数 N 的值为“0”。 • MCR位的信号状态为“0”。下表列出了“在 I/O 区域复位位数组”指令的参数: 参数 声明 数据类型 存储区 说明 N Input INTI、Q、M、D、L 或常数 待复位的位数。 RET_VAL Output INT I、Q、M、D、L 错误信息 SA OutputPOINTER P 指向待复位的第一个位的 指针。RESETI:复位字节数组 (S7-300, S7-400) 说明“复位字节数组”指令用于将指定字节范围中位的信号状态复位为“0”。在参数 S_BYTE 中使 用指针定义范围起点。通过在该指令的参数N 中指定要复位的位数来定义范围大小。 说明 参数 N 的值必须是数字 8 的整数倍(例如,8、16、24 等)。 在参数S_BYTE 中指定的指针必须引用外部 I/O 存储区 (P)。由于“P”存储区是按照字节、字或 双字访问的,参数 S_BYTE中的指针必须指向与字节限值对应的操作数,即指针的位号必须为 “0”。 说明 过程映像输出 (Q) 中相应位的信号状态将复位为“0”。如果存在以下任一情况,调用“复位字节数组”指令将不起作用: • 参数 S_BYTE 中的指针没有引用外部 I/O 存储区 (P)。 •参数 S_BYTE 中指针引用的操作数不是整字节。 • 参数 N 的值不是数字 8 的整数倍。 • MCR位的信号状态为“0”。下表列出了“复位字节数组”指令的参数: 参数 声明 数据类型 存储区 说明 S_BYTE InputPOINTER P 或常数 指向范围中第一个字节的 指针,其中该范围的位将 被复位。 对于跨区域间接寄存器寻 址,必须以双字格式指定该指针。 N Input INT I、Q、M、D、 L、P 或常数 待复位其位的数组大小。 以 8 的整数倍(例如,8、 16、24等)位数来指定该 数组。REPL_VAL:输入替换值 (S7-300, S7-400) 说明使用“输入替代值”指令,可从一个导致程序错误的程序级同步错误组织块,在累加器 1 (ACCU 1) 中输入一个替代值。 说明只能在同步错误组织块(OB 121、OB 122)中调用“输入替代值”指令。无法再从模块读取任何值时,可使用“输入替代值”指令。每次访问该模块后都会启动 OB122。通过调用“输入替代值”指令,可将替代值加载到所中断程序段的累加器 1 中。之后,程序将使用该替代值继续执行。选择替代值时所需的信息(如,发生错误的块或受影响的地 址),位于 OB 122 的本地变量中。 参数下表列出了“输入替代值”指令的参数: 参数 声明 数据类型 存储区 说明 VAL Input DWORD I、Q、M、D、L 或常量替代值 RET_VAL Output INT I、Q、M、D、L 错误信息DRUM:执行顺控程序 (S7-300, S7-400)说明 可以使用“执行顺控程序”指令,将相应步的 OUT_VAL 参数的已设定值分配给已设定的输 出位(OUT1 到OUT16)和输出字 (OUT_WORD)。当指令仍处于某特定步时,该步 必须满足参数 S_MASK中设定的使能掩码条件。如果该步的事件为真且为当前步设定的时间 已用完,或者参数 JOG的值从“0”变为“1”,则该指令进入下一步。如果参数 RESET 的信号状 态变为“1”,将复位该指令。当前步等同于预设步(DSP)。 每步所耗用的时间由预设时基 (DTBP) 与每步预设计数值 (S_PRESET) 的乘积确定。启动新步时,会将此计算值加载到参数 DCC 中,该参数包含当前步的剩余时间。例如,参数 DTBP 的 值为2,且第一个步的预设值为“100”(100 ms),则参数 DCC 的值为“200”(200 ms)。可使用定时器值和/或事件对步进行编程。如果步中包含一个事件位且定时器值为“0”的步,则在该事件位的信号状态为“1”时立即进入下一步。仅编程有定时器值的步将立即开始计时。具有事件位且时间值大于“0”的步,在该事件位的信号状态为“1”时开始计时。信号状态为“1”时, 初始化事件位。当顺控程序位于Zui后一个编程步 (LST_STEP) 且该步的时间用完时,会将参数 Q 的信号状态置位为“1”;否则复位为“0”。置位参数 Q 时,该指令将停留在该步,直至该参数复位。 在可组态掩码 (S_MASK)中,可以选择输出字 (OUT_WORD) 中的各个位并通过输出值 (OUT_VAL) 置位或复位输出位(OUT1 到OUT16)。当可组态掩码的某个位的信号状态为“1” 时,OUT_VAL的值将置位/复位相应位。如果可组态掩码的某个位的信号状态为“0”,相应位 则保持不变。在信号状态为“1”时,将初始化所有 16个步中可组态掩码的所有位。 参数 OUT1 的输出位对应输出字 (OUT_WORD) 的Zui低有效位。参数 OUT16 的输出位对应输出字 (OUT_WORD) 的Zui高有效位。 在程序中插入该指令时,将打开“调用选项”(Call options)对话框,可以指定块参数将存储 在单个数据块中(单背景)或者作为局部变量存储在块接口中(多重背景)。如果创建了一个单独的数据块,则该数据块将保存到项目树“程序块 > 系统块”(Program blocks > Systemblocks) 路径中的“程序资源”(Program resources) 文件夹内。有关本主题的更多信息,请参见“另请参见”。