计数器指令 参数的数据类型如下: 用户程序中可以使用的计数器数仅受 CPU 存储器容量限制。 计数器占用以下存储器空间: ● 对于 SInt 或 USInt 数据类型,计数器指令占用 3 个字节。 ● 对于 Int 或 UInt 数据类型,计数器指令占用 6 个字节。 ● 对于 DInt 或 UDInt 数据类型,计数器指令占用 12 个字节。 这些指令使用软件计数器,软件计数器的最大计数速率受其所在的 OB 的执行速率限制。 指令所在的 OB 的执行频率必须足够高,以检测 CU 或 CD 输入的所有跳变。 计数器的运行 CTU 运算(加计数) CTD 运算(减计数) CTUD 运算(加计数和减计数) RUN-STOP-RUN 切换或 CPU 循环上电后保留计数器数据 如果从运行模式阶段切换到停止模式或 CPU循环上电并启动了新运行模式阶段,则存储在之前运行模式阶段中的计数器数据将丢失,除非将定时器数据结构指定为具有保持性(CTU、CTD 和 CTUD 计数器)。 将计数器指令放到程序编辑器中后,如果接受调用选项对话框中的默认设置,则将自动分配一个无法实现具有保持性的背景数据块。 要使计数器数据具有保持性,必须使用全局数据块或多重背景数据块。 指定全局数据块将计数器数据存储为保持性数据 无论将计数器放在什么位置(OB、FC 或 FB),该选项都有效。 1. 创建一个全局数据块: – 在项目树中双击“添加新块”(Add new block)。 – 单击数据块 (DB) 图标 – 对于“类型”(Type),选择“全局数据块”(global DB)。 – 如果希望能够将该数据块中的各个项选择为具有保持性,则确保选中“仅符号访问”(symbolic-access-only) 框。 – 单击“确定”(OK) 2. 向该数据块添加计数器结构: – 在新的全局数据块中,添加使用以下计数器数据类型之一的新静态变量。 务必要考虑到想要用于预设值和计数值的类型。 – 在“保持性”(Retain) 列中,选中相应框以使该结构具有保持性。 – 重复此过程为要存储在该数据块中的所有计数器创建结构。 可以将每个计数器结构放置在独立的全局数据块中,也可以将多个计数器结构放置在同一个全局数据块中。除计数器外,还可以将其它静态变量放置在该全局数据块中。 将多个计数器结构放置在同一个全局数据块中可减少总的块数。 – 可根据需要重命名计数器结构。 3. 打开程序块来选择保持性计数器的放置位置(OB、FC 或 FB)。 4. 将计数器指令放置在所需位置。 5. 在调用选项对话框出现后,单击“取消”按钮。 您现在应该看到新的计数器指令,在指令名称的上面和下面均显示“???”。 6. 在新的计数器指令上方,输入上面所创建全局数据块和计数器结构的名称(请勿使用助手浏览)(例如: “Data_block_3.Static_1”)。 这需要填入对应的预设值和计数值类型(例如: UInt 对应于 IEC_UCounter 结构)。 指定多重背景数据块以将计数器数据存储为保持性数据 该选项仅对于将计数器放置在 FB 中有效。 该选项取决于 FB 属性是否指定“优化块访问”(Optimized block access)(仅允许符号访问)。 要检查现有 FB访问属性的组态情况,请在项目树中右键单击该FB,选择“属性”(Properties),然后选择“特性”(Attributes)。 如果 FB指定“优化块访问”(Optimized block access)(仅允许符号访问): 1. 打开 FB 进行编辑。 2. 将计数器指令放在 FB 中的所需位置。 3. “调用选项”(Call options) 对话框出现后,单击“多重背景”(Multi instance) 图标。 仅在将该指令放置于 FB 中后,“多重背景”(Multi instance) 选项才可用。 4. 如有需要,请在“调用选项”(Call options) 对话框中重命名计数器。 5. 单击“确定”(OK)。 计数器指令将出现在编辑器中并且预设值和计数值的类型为INT,而 IEC_COUNTER 结构将出现在“FB 接口”(FB Interface) 的“静态”(Static) 下。 6. 如有需要,请在计数器指令中将类型从 INT 更改为其它类型之一。 计数器结构将相应更改。 7. 如有必要,打开 FB 接口编辑器(可能需要单击小箭头以展开视图)。 8. 在“静态”(Static) 下,找到刚刚创建的计数器结构。 9. 在此计数器结构的“保持性”(Retain) 列中,改为选择“保持性”(Retain)。 此后只要从另一程序块调用此FB,都将利用此接口定义(包含标有保持性的计数器结构)创建背景数据块。 如果 FB 未指定“优化块访问”(Optimized block access),则块访问类型为标准访问,标准访问与 S7-300/400传统组态兼容,且允许符号访问和直接访问。 要将多重背景分配给标准块访问FB,请按以下步骤操作: 1. 打开 FB 进行编辑。 2. 将计数器指令放在 FB 中的所需位置。 3. “调用选项”(Call options) 对话框出现后,单击“多重背景”(Multi instance) 图标。 仅在将该指令放置于 FB 中后,“多重背景”(Multi instance) 选项才可用。 4. 如有需要,请在“调用选项”(Call options) 对话框中重命名计数器。 5. 单击“确定”(OK)。 计数器指令将出现在编辑器中并且预设值和计数值的类型为INT,而 IEC_COUNTER 结构将出现在“FB 接口”(FB Interface) 的“静态”(Static) 下。 6. 如有需要,请在计数器指令中将类型从 INT 更改为其它类型之一。 计数器结构将相应更改。 7. 打开将使用此 FB 的块。 8. 将此 FB 置于所需的位置。 如此将为该 FB 创建一个背景数据块。 9. 打开将 FB 放入编辑器时创建的背景数据块。 10. 在“静态”(Static) 下,找到所需的计数器结构。 在此计数器结构的“保持性”(Retain)列中,选中相应框使该结构具有保持性。 |
|