WRD_TBL:将表格元素与值进行逻辑关联并保存 (S7-300, S7-400) 说明 此指令可执行带有源项目和由参数 INDX引用的表中条目的指定指令(参数 CMD)。 只有 参数 INDX 的值小于存储在表中第一个字中的表长度时,此指令才会执行。 •表格的第一个条目指定该表格的Zui大条目数(表格长度)。 • 表格的第二个条目包含有第一个表格值。 • 如果由参数 E_TYPE指定的数据类型为 REAL,则参数 CMD 只能为“传送”。 说明 创建表格时,将初始化第一个条目。 参数下表列出了指令“WRD_TBL”的参数: 参数 声明 数据类型 存储区 说明 SRC Input *Pointer I、Q、M、D指向源数据 TABLE Input *Pointer I、Q、M、D 指向表格的起始处。
示例 (LAD)将执行指令“WRD_TBL”,只有输入 I 0.0 的信号状态为“1”(激活)时。 在本例中,由于参数 E_TYPE=“6”,表中数据的双字保存在由 TABLE 指定的地址中。 表中的第一个字指示该 表含有三个双字。 值 INDX指向需要修改的表条目。 由于 CMD = 8,此指令使用参数 INDX 指向的值来执行一次“或”运算。 由于 INDX =2,第二个双字 (66665544) 与参 数 SRC 指向的值 (11111111) 执行“或”运算。指令执行之后,“或”运算的结果 (77775555) 写回该表,且 INDX 的值自动递增一个条目。 如果参数 INDX指向Zui后一个表 条目,则在执行完指令之后,将“Q”输出位设置为“0”。 在本例中,INDX 的值没有设置为此表中的Zui后一个条目,在执行之后,将“Q”输出设置为“1”。 如果正确执行了指令“WRD_TBL”,则将 ENO 和 Q 0.0的信号状态设置为“1”,并将 RET_VAL 设置为值 W#16#0000。DEV: 计算标准偏差 (S7-300, S7-400)说明 此指令用于计算存储在一个表中(指令“TBL (页 8007)”)中的一组值的标准偏差。 结果将 存储在 OUT 中。可通过以下公式计算标准偏差:其中: • Sum = 指令“TBL (页 8007)”中的值之和 • N = 指令“TBL(页 8007)”中的值数目 • Sqsum = 指令“TBL (页 8007)”中所有值的平方和 所有计算都使用IEEE 浮点型值,由指令“DEV”自动执行必要的类型转换。 • 表格的第一个条目包含有该表格的条目数(表格长度)。 •表格的第二个条目包含有第一个表格值。 • 表条目的大小和计算值(参数 OUT)由参数 E_TYPE 来指定。 参数下表列出了指令“DEV”的参数: 参数 声明 数据类型 存储区 说明 TBL Input *Pointer I、Q、M、D**指向值表的起始地址。 OUT Input *Pointer I、Q、M、D **指向计算出的标准偏差值的地址。只有输入 I 0.0的信号状态为“1”(激活)时,才执行指令“DEV”。 在本示例中,共有五个表 格值。 这指定表格中的第一个字。 表值的数据类型为REAL。 这种情况由参数 E_TYPE 来指 示。 如果正确执行了“DEV”,则将 ENO 和 Q 0.0的信号状态设置为“1”,并将 RET_VAL 设置为 “W#16#0000”。CDT: 关联数据表 (S7-300, S7-400)说明 此指令用于将一个输入值(参数 IN)与现有输入值表(参数 IN_TBL)进行比较,并找到大 于或等于该输入值的第一个值。根据所找到的值的索引,随后使用找到的值将相应输出值 (参数 OUT)复制到输出值表(参数 OUT_TBL)。 •输入表中的值必须按升序顺序进行排列。 即,Zui小的值位于第一个表格条目,Zui大的值 位于Zui后一个表格条目。 •输入值大小、表值和输出值由参数 E_TYPE 来定义。 • 表格的第一个条目包含有该表格中的条目数(表格长度)。•表格的第二个条目包含有第一个表格值。 • 两个表中的条目数必须相同且大于零。 说明 创建每个表格时,将初始化第一个条目。 参数下表列出了指令“CDT”的参数: 参数 声明 数据类型 存储区 说明 IN_TBL Input *Pointer I、Q、M、D指向输入表的起始处。 OUT_TBL Input *Pointer I、Q、M、D 指向输出表的起始处。 IN Input*Pointer I、Q、M、D 指向输入表。 OUT Input *Pointer I、Q、M、D 指向输出表。 E_TYPEInput BYTE I、Q、M、D、L、 P 指定表格条目的数据类型。 下列数据类 型有效: B#16#05 = INTB#16#07 = DINT B#16#08 = REAL RET_VAL 返回 WORD I、Q、M、D、L、 P如果正确执行操作,则返回值 W#16#0000 。 * 指针格式为双字,用于跨区域间接寄存器寻址有关有效数据类型的更多信息,请参见“有效数据类型概述示例 (LAD) 只有输入 I 0.0的信号状态为“1”(激活)时,才执行指令“CDT”。 在本例中,参数 IN_TBL 和 OUT_TBL 个具有 5 个表条目。可以通过相应表格中的第一个字来指定。 表格值的数据类型 为 INTEGER。这种情况由参数 E_TYPE 来指示。参数 IN 的值为22。大于或等于“22”的参数 IN_TBL 的值为“64”,其索引为“5”。 OUT_TBL 中的相应值为“25”。 在参数OUT 中写 入值“25”。 如果正确执行了指令“CDT”,则将 ENO 和 Q 0.0 的信号状态设置为“1”,并将 RET_VAL设置 为 W#16#0000 。TBL_TBL: 链接表 (S7-300, S7-400) 说明 此指令使用两个源表(参数 TBL1和 TBL2)中的相应条目来执行参数 CMD 指定的命令,并 将结果写入目标表(参数 DEST_TBL)中的相应条目。 • 数据类型INT、DINT 和 REAL 仅对数学运算指令有效。 • 表格的第一个条目包含有该表格中的条目数(表格长度)。 •所有表中的条目数必须相同且大于零。 说明 创建每个表格时,将初始化第一个条目。下表列出了指令“TBL_TBL”的参数: 参数 声明数据类型 存储区 说明 TBL1 Input *Pointer I、Q、M、D 指向第一个源表的起始处。 TBL2 Input*Pointer I、Q、M、D 指向第二个源表的起始处。 DEST_TBL Input *Pointer I、Q、M、D指向目标表的起始处。 CMD Input BYTE I、Q、M、D、L、 P 指定待执行的命令。 以下命令有效: B#16#07=“与”逻辑运算 B#16#08=“或”逻辑运算 B#16#09 =“异或”逻辑运算 B#16#0a = 加 B#16#0b = 减B#16#0c = 乘 B#16#0d = 除 E_TYPE Input BYTE I、Q、M、D、L、 P指定表格条目的数据类型。下列数据类型 有效: B#16#04 = WORD B#16#05 = INT B#16#06 = DWORDB#16#07 = DINT B#16#08 = REAL RET_VAL 返回 WORD I、Q、M、D、L、 P如果正确执行操作,则返回值 W#16#0000 。 * 指针格式为双字,用于跨区域间接寄存器寻址有关有效数据类型的更多信息,请参见“有效数据类型概述示例 (LAD) 只有输入 I 0.0的信号状态为“1”(激活)时,才执行指令“TBL_TBL”。在本例中,每个表都有 3 个表条目。 可以通过相应表格中的第一个字来指定。表值的数据类型为 WORD。E_TYPE 用 于指定数据类型。CMD 指定链接 TBL1 和 TBL2 时所使用的命令。如果正确执行了指令“TBL_TBL”,则将 ENO 和 Q 0.0 的信号状态设置为“1”,并将 RET_VAL 设 置为值W#16#0000。PACK: 收集/分发表格数据 (S7-300, S7-400) 说明 此指令用于在任何地址与某个表之间传送数据。传送方向由参数 DIR 来指定。 指令 PACK 的 每次执行将处理Zui多 5 个数据块(P_DATA1 至 P_DATA5)。如果参数 DIR =“to”,则指令 PACK 将数据从地址传送到指定的表。如果参数 DIR=“from”,则将数据从表分配到指定地址。将数据传送到表(“to”)的规则如下: • 将单个位 (BOOL)传送到表中的下一个可用位。 • 8 位数据类型传送到表中的下一可用字节。 将一个字节写入表中时,以零填充前一个字 节中尚未使用的位。• 16 和 32 位数据类型传送到表中的下一可用字。 将一个字写入表中时,以零填充前一个 字中尚未使用的位。“从”表格传送数据的规则如下: • 不能跳过表的区段。 • 将从表传送所有类型为 BOOL 的指定数据。 • 8位数据类型传送到表中的第一个可用字节。 在从表传送的字节中不包括表内前一个字 节中未使用位。 • 16 和 32位数据类型从表格中的第一个可用字开始传送。 从表传送的字中不包括表内前 一个字中的未使用位。 以下数据类型对指针 ANY有效,并受“PACK”支持: BOOL, WORD, INT, BYTE, DINT, REAL, CHAR, DWORD. 参数下表列出了指令“PACK”的参数: 参数 声明 数据类型 存储区 说明 TABLE Input *Pointer I、Q、M、D指向表格的起始处。 P_DATA1 Input ANY I、Q、M、D 指向待传送数据的块的起始处。 P_DATA2 InputANY I、Q、M、D 指向待传送数据的块的起始处。 P_DATA3 Input ANY I、Q、M、D 指向待传送数据的块的起始处。P_DATA4 Input ANY I、Q、M、D 指向待传送数据的块的起始处。 P_DATA5 Input ANY I、Q、M、D指向待传送数据的块的起始处。 ERR_CODE Output WORD I、Q、M、D、L、P 如果正确执行操作,则返回值W#16#0000。 DIR Static BOOL I、Q、M、D、L 传送方向。 可以为下列信号状态:0=to(到),1=from(从)。 * 指针格式为双字,用于跨区域间接寄存器寻址。