SIEMENS西门子 电源PM1507 6EP1332-4BA00
CREA_DB: 创建掉电保持数据块 (S7-300, S7-400) 说明 可使用此指令来创建一个在用户程序中没有预定义值的数据块。 该 DB 存储有随机数据。 此 指令可创建一个具有指定区域内的编号且具有预定义大小的数据块。 此指令可将指定区域 中的Zui小编号分配给 DB。 如果要创建具有特定编号的 DB,请针对指定区域的上限和下限 输入同一编号。 不能分配用户程序中已有 DB 的编号。 DB 的长度必须用偶数来指定。 根据为 ATTRIB 参数做出的选择,创建的 DB 具有属性 RETAIN 或 NON_RETAIN: • RETAIN(=记忆性)表示 DB 在工作存储器的记忆性部分中创建。 这意味着在每次电源关 闭/打开和重新启动(暖启动)之后,DB 的当前值都将保留。 • NON_RETAIN(=无记忆性)表示 DB 在工作存储器的非记忆性部分中创建。 这意味着在 每次电源关闭/打开和重新启动(暖启动)之后,DB 的当前值都将待定。 如果记忆性工作存储器和非记忆性工作存储器之间没有区别,将忽略 ATTRIB 参数。 这意味 着在每次电源关闭/打开和重新启动(暖启动)之后,DB 的值都将保留。
中断能力 “CREA_DB”指令可由较高优先级的 OB 来中断。 如果在较高优先级的 OB 中调用指令 “CREA_DB”,则将拒绝这一调用,并返回错误代码 W#16#8091 。 参数 下表列出了指令“CREA_DB”的参数: 参数 声明 数据类型 存储区 说明 LOW_LIMIT Input WORD I、Q、M、D、L 或 常量 下限值是可分配给数据块的编号范围内的 Zui低编号。 UP_LIMIT Input WORD I、Q、M、D、L 或 常量 上限值是可分配给数据块的编号范围内的 Zui高编号。 COUNT Input WORD I、Q、M、D、L 或 常量 计数值指示出需要为数据块预留的数据字 节数。 必须指定偶数字节(Zui大值为 65534)。 ATTRIB Input BYTE I、Q、M、D、L 或 常量 DB 属性: • B#16#00: RETAIN • B#16#04: NON_RETAIN RET_VAL 返回 INT I、Q、M、D、L 如果执行指令时出错,则返回值中会包含 一个错误代码。 DB_NUMBER Output WORD I、Q、M、D、L 数据块编号就是所创建的数据块的编 号。 发生错误时(设置 RET_VAL 的第 15 位),将在 DB_NUMBER 中输入值 “0”。 有关有效数据类型的更多信息,请参见“有效数据类型概述。CREA_DBL: 在装载存储器中创建数据块 (S7-300, S7-400) 说明 可使用此指令在装载内存(MMC 卡)中创建新数据块。 此指令可创建一个具有指定区域内 的编号且具有预定义大小的数据块。 此指令可将指定区域中的Zui小编号分配给 DB。 如果要 创建具有特定编号的 DB,请针对指定范围的上限和下限输入同一编号。 不能分配用户程序 中已有 DB 的编号。 如果工作存储器和/或装载内存中已存在具有相同编号的 DB,或者该 DB 作为复制 的 DB 存在,则将中断此指令,并生成错误信息。 说明 通过指令“TEST_DB (页 7996)”,可确定是否已存在具有相同编号的 DB。 参数 SRCBLK(source block) 所指向的数据区域的内容将写入 DB 中。 此数据区域必须是一个 DB 或 DB 中的区域。 为了确保数据一致性,正在执行“CREA_DBL”时(这表明只要参数 BUSY = TRUE),不得更改此数据区域。只能使用“CREA_DBL”来创建和初始化具有 READ_ONLY 属性的 DB。 "CREA_DBL”不会更改用户程序的校验和。 功能描述 “CREA_DBL”指令将异步执行。即,可通过多次调用执行这一指令。通过调用“CREA_DBL”,且 REQ = 1,可启动该作业。 输出参数 RET_VAL 和 BUSY 用于指示作业状态。 另请参见: 同步指令和异步指令之间的不同之处 (页 6480) 参数 下表列出了指令“CREA_DBL”的参数: 参数 声明 数据类型 存储区 说明 REQ Input BOOL I、Q、M、D、L REQ = 1:请求创建 DB LOW_LIMIT Input WORD I、Q、M、D、L 由“CREA_DBL”使用的用于向 DB 分配编号 的范围下限 UP_LIMIT Input WORD I、Q、M、D、L 由“CREA_DBL”使用的用于向 DB 分配编号 的范围上限 COUNT Input WORD I、Q、M、D、L 计数值指定需要为 DB 预留的数据字节 数。 必须指定偶数字节。 ATTRIB Input BYTE I、Q、M、D、L DB 属性: 第 0 位 = 1: UNLINKED: 该 DB 仅存在于装载内存 中。 第 1 位 = 1: READ_ONLY: 该 DB 是只读的。 第 2 位 = 1: NON_RETAIN: 该 DB 不是记忆性的。 位 3 至 7: 预留 SRCBLK Input ANY D 指向数据块的指针,该数据块的值将用于 初始化已创建的 DB RET_VAL 返回 INT I、Q、M、D、L 错误信息。
参数 RET_VAL 错误代码 (W#16#...) 说明 0000 无错误 0081 目标范围大于源范围。 将完整的源范围写入目标范围。 目标范围的其余字节用 0 填充。 7000 首次调用时,REQ = 0:未激活数据传输;BUSY 值为“0”。 7001 首次调用时,REQ = 1:已触发数据传输;BUSY 值为“1”。 7002 中间调用(与 REQ 无关):已激活数据传输;BUSY 的值为“1”。 8081 源范围大于目标范围。 目标范围已写满。 忽略源范围内的其余字节。 8091 调用了嵌套指令“CREA_DBL”。 8092 “创建数据块”功能当前不可用,原因是: • “压缩用户存储器”功能当前处于激活状态。 • 已达到 CPU 上的Zui大数据块数目。 8093 没有为参数 SRCBLK 指定数据块,或指定了不在工作存储器中的数据块。 8094 为参数 ATTRIB 指定了尚不支持的属性。 80A1 DB 编号错误: • 编号为 0 或不在 CPU 的有效范围内(CPU15xx:60001 至 60999) • 编号超出 CPU 的特定 DB 数量 • 下限 > 上限 80A2 DB 长度错误: • 长度为“0” • 长度值为奇数 • 长度大于 CPU 的允许值 80B1 没有可用的 DB 编号TEST_DB: 测试数据块 (S7-300, S7-400) 说明 在 S7-300 上接收到的指令中,有关 CPU 工作存储器或装载内存中数据块的信息;在 S7-400 上接收到的指令中,有关 CPU 工作存储器中数据块的信息。 此指令可确定所选 DB 中的数 据字节数,并检查该 DB 是否是只读的。 参数 下表列出了指令“TEST_DB”的参数: 参数 声明 数据类型 存储区 说明 DB_NUMBER Input WORD I、Q、M、D、L 或 常量 要测试的 DB 的编号 RET_VAL 返回 INT I、Q、M、D、L 错误信息 DB_LENGTH Output WORD I、Q、M、D、L 所选 DB 中所存储的数据字节数。 WRITE_PROT Output BOOL I、Q、M、D、L 有关该 DB 的写保护标识符的信息(“1”表 示只读)。 有关有效数据类型的更多信息,请参见“有效数据类型概述。表功能 (S7-300, S7-400) ATT: 将值添加到表格 (S7-300, S7-400) 说明 此指令作为表中的第二个条目对参数 DATA 加以补充,并将条目数递增 1。 表格由字组成。 可使用此指令来创建由“FIFO (页 7999)”和“LIFO (页 8004)”使用的表条目。 • 表“FIFO (页 7999)”或“LIFO (页 8004)”中的第一个条目用于指定该表的Zui大长度。 • 表格中的第二个条目指定现有条目数。 • 表格的第三个条目则包含了数据的第一个字。 说明 创建表格时,将初始化前两个条目。下表列出了指令“ATT”的参数: 参数 声明 数据类型 存储区 说明 DATA Input WORD I、Q、M、D、L、P 或常数 要在表格中输入的数据。 TABLE Input *Pointer I、Q、M、D 指向表“FIFO”或“LIFO”的起始地址。 * 指针格式为双字,用于跨区域间接寄存器寻址 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 如果条目数等于或大于表的长度,则不会将数据添加到该表,并且将“BR”的信号状态设置为 “0”。 示例 (LAD) 只有输入 I 0.0 的信号状态为“1”(激活)时,才执行指令“ATT”。 在本例中,将把 DATA 作 为表中的第五个条目添加进来,并且条目数从 4 增加到 5 。 如果正确执行了指令“ATT”,则将“ENO”和 Q 0.0 的信号状态设置为“1”。