SIEMENS西门子 电源PM1507 6EP13324BA00
数据块函数 (S7-300, S7-400) READ_DBL: 从装载存储器的数据块中读取数据 (S7-300, S7-400) 说明 通过该指令,可将装载内存(MMC 卡)中的某个 DB 或 DB 区域复制到目标 DB 的数据区域 中。目标 DB 必须与执行有关;也就是说,不能使用属性 UNLINKED 来创建目标 DB。在复 制过程中不能更改装载内存的内容。
为了确保数据一致性,正在执行“READ_DBL”时(这表明只要参数 BUSY = TRUE),不得更改 目标区域。 参数 SRCBLK 和 DSTBLK 有以下限制: • 对于类型为 BOOL 的 ANY 指针,长度必须可被 8 除尽。 • 对于类型为 STRING 的 ANY 指针,长度必须等于 1。 如果需要,可使用指令“TEST_DB (页 7996)”确定源 DB 的长度。 说明 READ_DBL 不是同步处理的。因此,它不适合频繁(或循环)读取装载内存中的变量。 作业一旦启动,必须完成。如果达到“READ_DBL”指令可同时激活的Zui大数目,但此时又再次 调用较高优先级的“READ_DBL”,则将返回错误代码 W#16#80C3。这意味着立即重新启动高 优先级作业没有意义。 功能描述 “READ_DBL”指令将异步执行。即,可通过多次调用执行这一指令。通过调用“READ_DBL”,且 REQ = 1,可启动该作业。 输出参数 RET_VAL 和 BUSY 用于指示作业状态。 另请参见“同步指令和异步指令之间的不同之处 (页 6480)” 参数 下表列出了指令“READ_DBL”的参数: 参数 声明 数据类型 存储区 说明 REQ Input BOOL I、Q、M、D、L REQ = 1:读取请求 SRCBLK Input ANY D 指向装载内存中待读取的数据块 RET_VAL Return INT I、Q、M、D、L 错误信息 BUSY Output BOOL I、Q、M、D、L BUSY = 1:读取过程尚未完成。 DSTBLK Output ANY D 指向工作存储器中待写入的数据块 有关有效数据类型的更多信息,请参见“有效数据类型概述。WRIT_DBL: 将数据写入到装载存储器的数据块中 (S7-300, S7-400) 说明 可使用此指令将工作存储器中 DB 或 DB 数据区域的内容传送到装载内存(MMC 卡)中的 DB 或 DB 区域。源 DB 必须与执行有关,也就是说,不能使用属性 UNLINKED 来创建源 DB。但 可使用指令“CREAT_DB”来创建源 DB。 为了确保数据一致性,正在执行“WRIT_DBL”时(这表明只要参数 BUSY = TRUE),不得更改 源区域。参数 SRCBLK 和 DSTBLK 有以下限制: • 对于类型为 BOOL 的 ANY 指针,长度必须可被 8 除尽。 • 对于类型为 STRING 的 ANY 指针,长度必须等于 1。 如果需要,可使用指令“TEST_DB (页 7996)”确定目标 DB 的长度。 如果写入使用指令创建的 DB,“WRIT_DBL”不会更改用户程序的校验和。但是,在写入已装 载的 DB 时,此 DB 中的第一个条目会更改用户程序的校验和。 说明 “WRIT_DBL”不适用于频繁(循环)将变量写入装载存储器中。这是因为 MMC 卡的工艺限制 了对此卡的写访问次数。 功能描述 “WRIT_DBL”指令将异步执行。即,可通过多次调用执行这一指令。通过调用“WRIT_DBL”,且 REQ = 1,可启动该作业。 输出参数 RET_VAL 和 BUSY 用于指示作业状态。 另请参见“同步指令和异步指令之间的不同之处 (页 6480)” 参数 下表列出了指令“WRIT_DBL”的参数: 参数 声明 数据类型 存储区 说明 REQ Input BOOL I、Q、M、D、L REQ = 1:写入请求 SRCBLK Input ANY D 指向工作存储器中的 DB 的指针,需要 从该工作存储器读取数据 RET_VAL Return INT I、Q、M、D、L 错误信息 BUSY Output BOOL I、Q、M、D、L BUSY = 1:写入过程尚未完成。 DSTBLK Output ANY D 指向装载内存中的数据块的指针,需要 向该装载内存写入数据。 有关有效数据类型的更多信息,请参见“有效数据类型概述参数 RET_VAL 错误代码 (W#16#...) 说明 0000 无错误 0081 目标区域大于源区域。 将源区域完全写入目标区域。目标区域的其余字节保持不变。 7000 首次调用时,REQ = 0:不传送数据;BUSY 值为“0”。 7001 首次调用时,REQ = 1:已触发数据传送;BUSY 值为“1”。 7002 中间调用(与 REQ 不相关):已激活数据传输;BUSY 的值为“1”。 8081 源区域大于目标区域。 将目标区域全部写满。忽略源区域的其余字节。 8092 操作模式不正确:当“WRIT_DBL”处于激活状态时,CPU 进入 STOP 模式。在下次转入 RUN 模 式时,将提供此错误代码。再次调用“WRIT_DBL”。 8093 没有为参数 SRCBLK 指定数据块,或指定的数据块不在工作存储器中。 80B1 没有为参数 DSTBLK 指定数据块,或指定的数据块不是装载内存中的对象(例如,使用 “CREAT_DB (页 7989)”创建的 DB)。 80B4 不能更改带有 F 属性的 DB 80C0 目标当前正由其它指令或通信功能处理。示例:可将 DB 从 CPU 上传到编程设备 (PG)。需要 使用“WRIT_DBL”来更改此 DB 的内容。 80C3 已达到“WRIT_DBL”指令可同时激活的Zui大数目。 827F 参数 2 错误,可能是数据类型不受支持 8xyy 常见错误代码 另请参见“通过输出参数 RET_VAL 评估错误 (页 184)” DEL_DB: 删除数据块 (S7-300, S7-400) 说明 可使用此指令来删除 CPU 的工作存储器中的数据块以及装载内存中的数据块(如果存在)。 不得在当前或任何较低优先级中打开要删除的 DB,换言之,不得在两个 DB 寄存器之一或 B 堆栈中输入要删除的 DB。否则,CPU 将在调用此指令时启动 OB 121。 如果 OB 121 不存在,则 CPU 切换到 STOP 模 式。 对于 S7-300(例外: CPU 318),未调用 OB 121 而删除 DB。 说明 建议不要使用“DEL_DB”来删除实例 DB,因为这样做始终会导致程序错误。因此,请避免使用 “DEL_DB”来删除实例 DB。 下表说明了何时可使用“DEL_DB”来删除 DB。 若... 则使用“DEL_DB”... DB 是通过调用指令“CREAT_DB”创建的 可将该 DB 删除。 传送到 CPU,未使用属性“仅存储在装载内存中”创建。 可将该 DB 删除。 使用属性“仅存储在装载内存中”创建 • 对于可以删除的 S7-300: • 对于无法删除的 S7-400: 通过调用指令“CREA_DBL”创建 可以删除 DB 存储在闪存卡上 不能将该 DB 删除。 中断能力 此指令可由较高优先级来中断。 如果再次调用此指令,则将第二次调用终止,并将 W#16#8091 输入到 RET_VAL 中。 参数 下表列出了指令“DEL_DB”的参数: 参数 声明 数据类型 存储区 说明 DB_NUMBER Input WORD I、Q、M、D、L 或常 量 要删除的 DB 的编号 RET_VAL Return INT I、Q、M、D、L 错误信息 有关有效数据类型的更多信息,请参见“有效数据类型概述。参数 RET_VAL 错误代码 (W#16#...) 说明 0000 未发生错误。 8091 "DEL_DB”调用是嵌套的,并且已超过所用 CPU 的Zui大嵌套层数。 8092 当前不能执行“删除 DB”功能,原因是: • “压缩用户存储器”功能当前处于激活状态。 • 正在将要删除的 DB 从 CPU 复制到脱机项目。 • WinAC 软 CPU 在安装有 WinAC 的 PC 上的操作系统中检测到错误。 80A1 输入参数 DB_NUMBER 中有错误: 所选的实际参数 • 等于“0” • 大于所用 CPU 的Zui大允许 DB 编号。 80B1 CPU 的工作存储器中不存在具有指定编号的 DB。 80B3 DB 位于闪存卡上。 80B4 DB 无法删除。 可能的原因: • 该 DB 属于某个 F 程序。 • 该 DB 是 S7 通信块的一个实例(jinxian于 S7-400)。 • 该 DB 是一个技术 DB。 80C1 由于存在临时资源限制,此时不能执行“删除 DB”功能。 8xyy 常见错误信息 另请参见: 通过输出参数 RET_VAL 评估错误 (页 184) CREAT_DB: 创建数据块 (S7-300, S7-400) 说明 可使用此指令来创建一个在用户程序中没有预定义值的数据块。 该 DB 存储有随机数据。 此 指令可创建一个具有指定区域内的编号且具有预定义大小的数据块。 此指令可将指定区域 中的Zui小编号分配给 DB。 如果要创建具有特定编号的 DB,请针对指定区域的上限和下限 输入同一编号。 不能分配用户程序中已有 DB 的编号。 DB 的长度必须用偶数来指定。 中断能力 此指令可由较高优先级的 OB 来中断。 如果在较高优先级的 OB 中调用指令“CREAT_DB”,则 将拒绝这一调用,下表列出了指令“CREAT_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)。 RET_VAL Return INT I、Q、M、D、L 如果执行指令时出错,则返回值中会包 含一个错误代码。 DB_NUMBER Output WORD I、Q、M、D、L 数据块编号就是所创建的数据块的编 号。 发生错误时(设置 RET_VAL 的第 15 位),将在 DB_NUMBER 中输入值 “0”。 有关有效数据类型的更多信息,请参见“有效数据类型概述。