SMC:比较扫描矩阵(S7-1500) 说明 “比较扫描矩阵”指令可将Zui多 16 个已编程输入位(IN_BIT0 到 IN_BIT15)的信号状态与各步比较掩码的相应位进行比较。处理从步 1 开始并继续,直到Zui后一个编程步 (LAST) 或直 到找到匹配值。将参数 IN_BIT0的输入位将与掩码 CMP_VAL[x,0] 的值相比较,其中“x”代表 步号。所有编程值均以相同方式进行比较。如果找到匹配值,则将参数OUT 的信号状态设 置为“1”,并将匹配掩码的步号写入参数 OUT_STEP。未编程输入位或未编程掩码位的默认信 号状态为FALSE。如果多个步具有匹配掩码,则参数 OUT_STEP 仅指示找到的第一个步。如 果没有找到匹配值,则将参数 OUT的信号状态置为“0”。在这种情况下,参数 OUT_STEP 的 值比参数 LAST 的值大“1”。示例 在本示例中,将 16个输入位全部与步 0 到步 5 的掩码进行比较,直到找到匹配值。由于步 2 的掩码与输入位相匹配,只扫描步 0 到步 2 的掩码。说明 可以初始化数据块中的静态参数。
LEAD_LAG:提前和滞后算法 (S7-1500) 说明可以使用“提前和滞后算法”指令,通过模拟量变量处理信号。GAIN 参数的增益值必须大于零。使用以下等式计算“提前和滞后算法”指令的结果:仅当在固定的程序周期中运行指令“提前和滞后算法”时,才生成正确的结果。参数LD_TIME、LG_TIME 和 SAMPLE_T 中必须指定相同的运算单元。计算 LG_TIME > 4 +SAMPLE_T 时,该指令与以下函数类似: OUT = GAIN * ((1 + LD_TIME * s) / (1 +LG_TIME * s)) * IN 当参数 GAIN 的值小于或等于零时,将不进行计算,并在参数 ERR_CODE 中输出错误信息。“提前和滞后算法”指令可与回路一起用作动态前馈控制中的补偿器。该指令由两项操作组成。 “提前”操作将输出 OUT的相位进行移位,使得输出提前于输入。“滞后”操作对输出进行移位,使得输出滞后于输入。由于“滞后”操作相当于积分,可用作噪声抑制器或低通滤波器。“提前”操作相当于微分,可用作高通滤波器。使用两个指令(“提前”和“滞后”),将导致在较低频率时输出的相位滞后于输入,而在较高频率时输出的相位提前于输入。这意味着“提前和滞后算法”指令可用作带通滤波器。SEG:创建 7 段显示的位模式 (S7-1500) 说明 "创建 7段显示的位模式”指令将指定源字 (IN) 中的四个十六进制数字都转换为 7 段显示的 四个等价代码,并将其写入输出 (OUT)的双字中。 “创建 7 段显示的位模式”指令无法识别任何错误条件。BITSUM:统计置位位数量 (S7-1500) 说明可以使用“统计置位位数量”指令统计信号状态被置位为“1”的操作数的位数。在参数 IN 中 指定要统计其位数的操作数。指令的结果在参数RET_VAL 中输出。 参数 下表列出了“统计置位位数量”指令的参数: 参数 声0-明 数据类型 存储区 说明 IN InputDWORD I、Q、M、D、 L、P 或常数 要统计其置位位 数量的操作数 RET_VAL Output INT I、Q、M、D、L、P 置位位的数量 有关有效数据类型的更多信息,请参见“另请参见”。
STL 助记符(S7-1500) 位逻辑运算 (S7-1500) A: “与”运算 (S7-1500) 说明 使用““与”运算”指令来检查二进制操作数的信号状态是否为“1”,并且将查询结果与该逻 辑运算结果 (RLO)的信号状态进行“与”运算。查询结果与所检查的操作数信号状态 相同。 如果两个相应的信号状态均为“1”,则在执行该指令后,RLO为“1”。如果其中一个相应的信 号状态为“0”,则在指令执行后,RLO 为“0”。如果连续多次执行该指令,那么只有所有的查询结果都为“1”,逻辑运算的Zui终结果才能为 “1”。 ““与”运算”指令也可以用于检查状态字的信号状态。为此,需指定相应的状态位(==0、<>0、>0、<0、>=0、<=0、OV、OS、UO、BR)作为指令的参数。AN: “与”运算取反(S7-1500) 说明 使用““与”运算取反”指令来检查二进制操作数的信号状态是否为“0”,并且将查询结果 与该逻辑运算结果(RLO) 的信号状态进行“与”运算。查询结果是将所检查的操作数信号状态取反后的结果。如果操作数的信号状态为“0”,则查询结果为“1”。如果操作数的信 号状态为“1”,则查询结果为“0”。在执行该指令之前,如果查询结果和 RLO 的信号状态均为“1”,那么执行该指令之后,RLO 为 “1”。在执行该指令之前,如果查询结果和 RLO 的信号状态均为“0”,那么执行该指令之后,RLO 为 “0”。““与”运算取反”指令也可以用于检查状态字的信号状态。为此,需指定相应的状态位(==0、<>0、>0、<0、>=0、<=0、OV、OS、UO、BR)作为指令的参数。O:“或”运算(S7-1500) 说明 使用““或”运算”指令来检查二进制操作数的信号状态是否为“1”,并且将查询结果与该 逻辑运算结果 (RLO)的信号状态进行“或”运算。查询结果与所检查的操作数信号状 态相同。如果其中一个相应的信号状态为“1”,则在执行该指令之后,RLO为“1”。如果这两个相应的 信号状态均为“0”,则在执行该指令之后,RLO 也为 “0”。如果连续多次执行该指令,那么只要其中一个查询结果为“1”,逻辑运算的Zui终结果就为“1”。““或”运算”指令也可以用于检查状态字的信号状态。为此,需指定相应的状态位(==0、<>0、>0、<0、>=0、<=0、OV、OS、UO、BR)作为指令的参数。 参数下表列出了““或”运算”指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Input BOOLI、Q、M、D、 L、T、C 要查询其信号状态的操作 数。ON:“或”运算取反 (S7-1500) 说明使用““或”运算取反”指令来检查二进制操作数的信号状态是否为“0”,并且将查询结果 与该逻辑运算结果 (RLO)的信号状态进行“或”运算。查询结果是将所检查的操作数信号状态取反后的结果。如果操作数的信号状态为“0”,则查询结果为“1”。如果操作数的信 号状态为“1”,则查询结果为“0”。在执行该指令之前,如果查询结果或者 RLO 的信号状态为“1”,那么执行该指令之后,RLO 为“1”。如果这两个相应的信号状态均为“0”,则在执行该指令之后,RLO 也为“0”。如果连续多次执行该指令,那么只要其中一个查询结果为“1”,逻辑运算的Zui终结果就为“1”。““或”运算取反”指令也可以用于检查状态字的信号状态。为此,需指定相应的状态位(==0、<>0、>0、<0、>=0、<=0、OV、OS、UO、BR)作为指令的参数。X:“异或”运算(S7-1500) 说明 使用““异或”运算 ”指令来检查二进制操作数的信号状态是否为“1”,并且将查询结果与该 逻辑运算结果(RLO) 的信号状态进行“异或”运算。查询结果与所检查的操作数信号状态相同。如果这两个相应的信号状态不同,那么执行该指令之后,RLO 为“1”。如果两个 信号状态相同,那么 RLO 为“0”。在执行该指令之前,如果 RLO 为“1”且所检查的操作数也为“1”,那么 RLO 将被复位为“0”。如 果 RLO为“1”且操作数的信号状态为“0”,那么在执行指令后,RLO 将被置位为“1”。如果连续多次执行该指令,那么只要其中一个查询结果为“1”,RLO 的Zui终结果就为“1”。如 果所有查询的结果均为“1”或“0”,那么RLO 将被复位为“0”。 ““异或”运算”指令也可以用于检查状态字的信号状态。为此,需指定相应的状态位(==0、<>0、>0、<0、>=0、<=0、OV、OS、UO、BR)作为指令的参数。 参数下表列出了““异或”运算”指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Input BOOLI、Q、M、D、 L、T、C 要查询其信号状态的操作 数。XN:“异或”运算取反 (S7-1500) 说明使用““异或”运算取反”指令来检查二进制操作数的信号状态是否为“0”,并且将查询结 果与该逻辑运算结果 (RLO)的信号状态进行“或”运算。查询结果是将所检查的操作数信号状态取反后的结果。如果这两个相应的信号状态不同,那么执行该指令之后,RLO 为 “1”。如果两个信号状态相同,那么 RLO为“0”。 如果所检查操作数的信号状态为“0”,则查询结果为“1”。将查询结果与 RLO“1”进行“异或”运算,结果的信号状态为“0”。RLO 为“0”时,其逻辑运算结果的信号状态为“1”。““异或”运算取反”指令也可以用于检查状态字的信号状态。为此,需指定相应的状态位(==0、<>0、>0、<0、>=0、<=0、OV、OS、UO、BR)作为指令的参数。A(:“与”运算嵌套开始 (S7-1500) 说明 使用““与”运算嵌套开始”指令,在进行“与”运算之前先执行括号内的表达式指令。执行指令时,CPU 将保存该逻辑运算的当前结果 (RLO) 及二进制结果 BR。保存的 RLO 再与完整嵌套表达式的逻辑运算结果进行“与”运算。如果嵌套表达式之后还有其它信号查询, 那么将与这些查询的结果也进行“与”运算。还可以通过在括起的表达式中编写一条同样包含由括号括起的表达式的指令,将括起的表达 式进行嵌套。这里可嵌套的深度限定为 7层。AN(:“与非”运行嵌套开始 (S7-1500) 说明使用“‘与非’运算嵌套开始”指令,在进行“与”运算之前将执行括号内的表达式指令, 再对括号内表达式的整体结果取反。执行指令时,CPU 将保存该逻辑运算的当前结果 (RLO) 及二进制结果 BR。执行了括号内表 达式中的指令后,将对括号内表达式的RLO 整体结果取反,再将其与保存的 RLO 进行“与”运算。如果括号内的表达式之后还有其它信号查询,那么这些查询结果也将进行“与” 运算。还可以通过在括起的表达式中编写一条同样包含由括号括起的表达式的指令,将括起的表达 式进行嵌套。这里可嵌套的深度限定为 7 层。