SIEMENS西门子 存储卡 6AV6671-1CB00-0AX2
字逻辑运算 (S7-300, S7-400) DECO:解码 (S7-300, S7-400) 说明 使用“解码”指令,在输出值中将输入值所指定的位置位。 “解码”指令读取参数 IN 的值,并设置输出值中的某个位,该位位置与读取的值一致。输出 值中的其它位以零填充。如果参数 IN 的值大于 31,则执行以 32 为模的指令。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 IN Input WORD I、Q、M、D、 L、P 输出值中待置位位的位置。 函数值 DWORD I、Q、M、D、 L、P 当前输出值 有关有效数据类型的更多信息,请参见“另请参见”。例如,可使用“控制 CiR 过程”指令确保在需要Zui大 CPU 性能执行过程期间,不会启动 CiR 过程。 要通过“控制 CiR 过程”指令来实现此目的,则必须在程序中过程活动增多时段开始之前调 用该指令,而且在参数 MODE 的值设置为“2”(禁用 CiR 过程)时执行该指令。满足以上条 件后,将禁用 CiR 过程。 要在过程活动增多的时段结束后再次启用 CiR 过程,必须再次调用“控制 CiR 过程”指令, 并在参数 MODE 的值设置为“1”时执行该指令。也可通过将参数 MODE 的值设置为 3 来有条 件地禁用 CiR 过程。
ENCO:编码 (S7-300, S7-400) 说明 使用“编码”指令读取输入值中设置的Zui小值位的位号,并作为结果返回。 “编码”指令选择参数 IN 值的Zui低有效位,并将该位号写入到参数 OUT 的操作数中。如果 参数 IN 的值为 DW#16#00000001 或 DW#16#00000000,则在输出 OUT 中输出值“0”。 如果在 SCL 块的块属性中选择了“自动置位 ENO”(Set ENO automatically) 选项,并使用“编 码”指令,参数 IN 的值为 DW#16#00000001 或 DW#16#00000000 时,ENO 输出信号状 态 0。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 IN Input DWORD I、Q、M、D、 L、P 输入值 函数值 INT I、Q、M、D、 L、P 待读取输入值中位的位号。 有关有效数据类型的更多信息,请参见“另请参见”。SEL:选择 (S7-300, S7-400) 说明 “选择”指令将根据一个开关参数(G 参数)选择参数 IN0 或 IN1 中的一个,并将所选参数 中的内容作为结果返回。如果参数 G 的信号状态为“0”,则移动参数 IN0 的值。当参数 G 的 信号状态为“1”时,将移动参数 IN1 的值,并返回为函数值。 只有当所有参数的变量均为同一种数据类型等级时,才能执行该指令。该指令读取操作数“Tag_Value”的Zui小值置位位,并将该位的位置“3”写入操作数“Tag_Result” 中。该指令的结果作为函数值在“Tag_Result”操作数中返回。下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 G Input BOOL I、Q、M、D、L 开关 IN0 Input 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 第一个输入值 IN1 Input 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 第二个输入值 函数值 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 指令的结果 有关有效数据类型的更多信息,请参见“另请参见”。 说明 参数分配 此外,函数的输入参数 (Input)、输出参数 (Output) 和输入/输出参数 (InOut) 不得连接到指 令的输入和输出参数。如果需要,使用临时变量 (Temp) 作为缓冲MUX:多路复用 (S7-300, S7-400) 说明 “多路复用”指令将复制一个所选的输入参数值并将其发出。使用参数 K 可以确定要移动其 值的输入参数的编号。编号从 IN0 开始,每次新增输入后将连续递增。可以Zui多声明 32 个 输入参数。 如果参数 K 的值大于输入的数量,且未置位 INELSE 参数,则指令函数值无效,ENO 使能输 出被设置为 0。 所有分配有参数的变量都必须为相同的数据类型。此函数值假设该数据类型都具有Zui大值。 说明 K 参数具有一个负整数 如果在输入参数中指定了一个数据类型有效的变量,并且 K 参数具有一个负整数,那么变量 值将会更改。下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 K Input 整数 I、Q、M、D、 L、P 指定要传送内容的参数。 • 如果 K = 0,则参数 IN0 • 如果 K = 1,则参数 IN1,依此类推 IN0 Input 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 第一个输入值 IN1 Input 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 第二个输入值 INn Input 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 可选的输入值 INELSE Input 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 指定 K <> n 时要复制的值。 函数值 二进制数、整 数、浮点数、定 时器、字符串、 TOD、DATE、DT I、Q、M、D、 L、P 指令的结果 有关有效数据类型的更多信息,请参见“另请参见”。移位和循环 (S7-300, S7-400) SHR:右移 (S7-300, S7-400) 说明 使用“右移”指令,可以将参数 IN 的内容逐位向右移动,并将结果作为函数值返回。参数 N 用于指定应将特定值移位的位数。 如果参数 N 的值为“0”,则将参数 IN 的值作为结果。 如果参数 N 的值大于可用位数,则参数 IN 的值将向右移动该位数个位置。 操作数左边由于移位而空出的各个位将用零进行填充。 下图显示了如何将 INT 数据类型操作数中的内容向右移动 4 位:SHL:左移 (S7-300, S7-400) 说明 使用“左移”指令,可以将参数 IN 的内容逐位向左移动,并将结果作为函数值返回。参数 N 用于指定应将特定值移位的位数。 如果参数 N 的值为“0”,则将参数 IN 的值作为结果。 如果参数 N 的值大于位数,则参数 IN 的值将向左移动该位数个位置。 结果值中因移位而空出的位将用 0 填充。 下图显示了如何将 WORD 数据类型操作数的内容向左移动 6 位:ROR:循环右移 (S7-300, S7-400) 说明 使用“循环右移”指令,可以将参数 IN 的内容按位循环移动,并将其作为函数值返回。N 参 数用于指定应将特定值循环移位的位数。用移出的位填充因循环移位而空出的位。 如果参数 N 的值为“0”,则将输入 IN 的值作为结果。 如果参数 N 的值大于可用位数,则输入 IN 中的操作数值将循环移动指定位数个位。 下图显示了如何将 DWORD 数据类型操作数的内容向右循环移动 3 位:下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 IN Input 位字符串 I、Q、M、D、 L、P 要循环移位的值 N Input 整数 I、Q、M、D、 L、P 将对 IN 值进行循环移位的 位数。 N 参数的值必须为正数。 函数值 位字符串 I、Q、M、D、L 指令的结果 有关有效数据类型的更多信息,请参见“另请参见”。ROL:循环左移 (S7-300, S7-400) 说明 使用“循环左移”指令,可以将参数 IN 的内容逐循环左移,并将结果作为函数值返回。N 参 数用于指定应将特定值循环移位的位数。用移出的位填充因循环移位而空出的位。 如果参数 N 的值为“0”,则将输入 IN 的值作为结果。 如果参数 N 的值大于可用位数,则输入 IN 中的操作数值将循环移动指定位数个位。 下图显示了如何将 DWORD 数据类型操作数的内容向左循环移动 3 位:其它指令 (S7-300, S7-400) SET:置位位数组 (S7-300, S7-400) 说明 可以使用“置位位数组”指令,将指定区域中位的信号状态置位为“1”。在参数 S_BIT 中使用 指针定义范围起点。如果指针指向外部 I/O 的存储区,则不执行该指令。在参数 N 中指定要 在指定区域中置位的位数。如果参数 N 的值为“0”,则调用该指令不起作用。 说明 参数 N 在 TIA Portal 中,还可以将参数 N 中数据块的元素进行互连。SETP:在 I/O 区域置位位数组 (S7-400) 说明 可以使用“在 I/O 区域置位位数组”指令将 I/O 区域中多个位的信号状态置位为“1”。同时将 过程映像输出中相应位的设置与这些 I/O 位保持相同。 使用参数 N 和 SA 定义要置位的位数组。数组中的位必须属于要分配过程映像的 I/O 区域。如果选择的部分位数组没有对应插入的 I/O 设备,则该指令将尝试置位整个位数组。在这种 情况下,将在参数 RET_VAL 中输出错误信息。 按字节置位 I/O 区域。如果通过参数 N 和 SA 定义的位数组不是始于或止于字节边界,则调 用该指令有以下作用: • 属于要传送的第一个和Zui后一个字节,但不属于所定义位数组的位,将获取过程映像输 出中相应位的值。这可能导致诸如启动电机或关闭冷却系统等意外响应。 警告 意外行为 使用过程映像输出中相关位的值置位这些位可能导致意外响应,例如启动电机或关闭冷 却系统。 • 将属于所定义位数组的位的信号状态置位为“1”。 如果参数 N 返回值“0”,调用“在 I/O 区域置位位数组”指令将不起作用。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 N Input INT I、Q、M、D、L 要置位的位数 SA Output POINTER P 指向待置位的第一个位的 指针 函数值 (RET_VAL) INT I、Q、M、D、L 错误信息 RET_VAL 参数 下表列出了 RET_VAL 参数值的含义: 错误代码 * (W#16#.. .) 说明 0000 无错误 8xyy 有关错误的更多信息,请参见“另请参见”。 * 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显示格式的更多信息, 请参见“另请参见”。