SIEMENS西门子 面板式工控机IPC377E 6AV7230-0DA20-0AA0
字逻辑运算 (S7-300, S7-400) NOT:取反 (S7-300, S7-400) 说明 可以使用“取反”指令对该操作数的各个位的信号状态取反。执行该指令时,该操作数的值 与一个十六进制掩码(表示 16 位数的 W#16#FFFF 或表示 32 位数的 DW#16#FFFF FFFF)进 行“异或”运算。这会将各个位的信号状态取反并输出为结果。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Input 位字符串、整数 I、Q、M、D、 L、P 或常数 输入值 <结果> Output 位字符串、整数 I、Q、M、D、 L、P 操作数值的反码 有关有效数据类型的更多信息,请参见“另请参见”。参数 RET_VAL 下表列出了 RET_VAL 参数值的含义: 错误代码 * (W#16#.. .) 说明 0000 作业已执行,且无任何错误 只有当参数 MODE 的值设置为“1”、“2”或“3”时,才会输出该错误代码。 0001 启用 CiR。 只有当参数 MODE 的值被设置为“0”时,才会输出该错误代码。 0002 禁用 CiR 过程。 只有当参数 MODE 的值被设置为“0”时,才会输出该错误代码。 0003 有条件地禁用 CiR。 只有当参数 MODE 的值被设置为“0”时,才会输出该错误代码。 8001 CPU 尚未就绪执行 CiR 操作。正在使用 H 系统(单机模式)中的 H-CPU,或者 正在多值计算模式下使用标准 CPU。 8002 参数 MODE 的值无效。 8003 参数 FRZ_TIME 的值无效。 8xyy 有关错误的更多信息,请参见“另请参见”。 * 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显式格式的更多信息, 请参见“另请参见”。 示例 例如,可使用“控制 CiR 过程”指令确保在需要Zui大 CPU 性能的执行过程期间,不会启动 CiR 过程。 要通过“控制 CiR 过程”来实现此目的,则必须在过程活动增多时段开始之前在程序中调用 该指令,而且在参数 MODE 的值设置为“2”(禁用 CiR 过程)时执行该指令。满足以上条件后, 将禁用 CiR 过程。 要在过程活动增多的时段结束后再次启用 CiR 过程,必须再次调用“控制 CiR 过程”指令, 并在参数 MODE 的值设置为“1”时执行该指令。也可通过将参数 MODE 的值设置为“3”来有条 件地禁用 CiR 过程。
DECO:解码 (S7-300, S7-400) 说明 可以使用“解码”指令,将由输入值指定的输出值中的某个位置位。 “解码”指令将读取输入 IN 的值,并设置参数 OUT 值中的某个位,该位位置与读取的值一致。 输出值中的其它位以零填充。如果输入 IN 的值大于 31,则执行以 32 为模的指令。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 IN Input WORD、INT I、Q、M、D、 L、P 或常数 输出值中待置位的位位置。 OUT Output DWORD I、Q、M、D、 L、P 输出值 有关有效数据类型的更多信息,请参见“另请参见”。 可以从“???”下拉列表中选择该指令的数据类型。ENCO:编码 (S7-300, S7-400) 说明 可以使用“编码”指令读取输入值中Zui低有效位的位号,并在输出 OUT 中输出。 “编码”指令选择输入 IN 值的Zui低有效位,并将该位号写入到输出 OUT 的变量中。如果输入 IN 的值为 DW#16#00000001 或 DW#16#00000000,则在参数 OUT 中输出值“0”。下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 IN Input DWORD I、Q、M、D、 L、P 或常数 输入值 OUT Output INT I、Q、M、D、 L、P 输出值 有关有效数据类型的更多信息,请参见“另请参见”。SEL:选择 (S7-300, S7-400) 说明 可以使用“选择”指令,根据开关(输入 G)的情况,选择输入 IN0 或 IN1 中的一个,并将 其数据移动到输出 OUT。如果输入 G 的信号状态为“0”,则移动输入 IN0 的值。如果输入 G 的 信号状态为“1”,则将输入 IN1 的值移动到输出 OUT 中。 只有当所有参数的变量均为同一种数据类型时,才能执行该指令。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 G Input BOOL I、Q、M、D、 L、T、C 开关 IN0 Input 位字符串、整 数、浮点数、定 时器、CHAR、 TOD、DATE I、Q、M、D、 L、P 第一个输入值 IN1 Input 位字符串、整 数、浮点数、定 时器、CHAR、 TOD、DATE I、Q、M、D、 L、P 第二个输入值 OUT Output 位字符串、整 数、浮点数、定 时器、CHAR、 TOD、DATE I、Q、M、D、 L、P 结果 可以从“???”下拉列表中选择该指令的数据类型。 有关有效数据类型的更多信息,请参见“另请参见”。 说明 参数分配 此外,函数的输入参数 (Input)、输出参数 (Output) 和输入/输出参数 (InOut) 不得连接到指 令的输入和输出参数。如果需要,使用临时变量 (Temp) 作为缓冲。移位和循环 (S7-300, S7-400) SHR:右移 (S7-300, S7-400) 说明 可以使用“右移”指令将操作数 1 的数据按位右移。使用操作数 2 指定将特定值移动的位数。 如果操作数 2 的值为“0”,则操作数 1 的值将复制到结果中。 如果操作数 2 的值大于可用位数,则操作数 1 的值将向右移动该可用位数。如果移动无符号值,则操作数 1 左边区域中空出的位位置将用 0 填充。如果指定值有符号, 则用符号位的信号状态填充空出的位。 下图说明了如何将 INT 数据类型的操作数 1 的数据向右移动 4 位:下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数 1> Input 位字符串、整数 I、Q、M、D、 L、P 或常数 要移位的值 <操作数 2> Input BYTE、WORD、 INT I、Q、M、D、 L、P 或常数 将对值进行移位的位数。 <结果> Output 位字符串、整数 I、Q、M、D、L 指令的结果 可以从“???”下拉列表中选择该指令的数据类型。 有关有效数据类型的更多信息,请参见“另请参见”。SHL:左移 (S7-300, S7-400) 说明 可以使用“左移”指令将操作数 1 的数据按位左移。使用操作数 2 指定将特定值移动的位数。 如果操作数 2 的值为“0”,则操作数 1 的值将复制到结果中。 如果操作数 2 的值大于可用位数,则操作数 1 的值将向左移动该可用位数。 用 0 填充操作数 1 右侧部分因移位空出的位位置。 下图说明了如何将 WORD 数据类型的操作数 1 的内容向左移动 6 位:ROR:循环右移 (S7-300, S7-400) 说明 可以使用“循环右移”指令将操作数 1 中的内容按位循环右移。使用操作数 2 指定将特定 值循环移动的位数。 如果操作数 2 的值为“0”,则操作数 1 的值将复制到结果中。 如果操作数 2 的值大于可用位数,则操作数 1 的值将循环移动指定的位数。 用移出的位填充因循环移位而空出的位。 下图说明了如何将 DWORD 数据类型的操作数的数据向右循环移动 3 位:下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数 1> Input BYTE、WORD、 DWORD、DINT I、Q、M、D、 L、P 或常数 要循环移位的值 <操作数 2> Input BYTE, WORD, INT I、Q、M、D、 L、P 或常数 将值循环移动的位数 <结果> Output BYTE、WORD、 DWORD、DINT I、Q、M、D、L 指令的结果 有关有效数据类型的更多信息,请参见“另请参见”。ROL:循环左移 (S7-300, S7-400) 说明 可以使用“循环左移”指令将操作数 1 中的内容按位循环左移。使用操作数 2 指定将特定 值循环移动的位数。 如果操作数 2 的值为“0”,则操作数 1 的值将复制到结果中。 如果操作数 2 的值大于可用位数,则操作数 1 的值将循环移动指定的位数。 用移出的位填充因循环移位而空出的位。 下图说明了如何将 DWORD 数据类型的操作数的数据向左循环移动 3 位:下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数 1> Input BYTE、WORD、 DWORD、DINT I、Q、M、D、 L、P 或常数 要循环移位的值 <操作数 2> Input BYTE、WORD、 INT I、Q、M、D、 L、P 或常数 将值循环移动的位数 <结果> Output BYTE、WORD、 DWORD、DINT I、Q、M、D、L 指令的结果 有关有效数据类型的更多信息,请参见“另请参见”。