分享

西门子S7-1200基本指令(3)——计数器操作

 打遍天下的酱油 2018-08-25

计数器指令

西门子S7-1200基本指令(3)——计数器操作

参数的数据类型如下

西门子S7-1200基本指令(3)——计数器操作

用户程序中可以使用的计数器数仅受 CPU 存储器容量限制。

计数器占用以下存储器空间:

● 对于 SInt 或 USInt 数据类型,计数器指令占用 3 个字节。

● 对于 Int 或 UInt 数据类型,计数器指令占用 6 个字节。

● 对于 DInt 或 UDInt 数据类型,计数器指令占用 12 个字节。

这些指令使用软件计数器,软件计数器的最大计数速率受其所在的 OB 的执行速率限制。

指令所在的 OB 的执行频率必须足够高,以检测 CU 或 CD 输入的所有跳变。

西门子S7-1200基本指令(3)——计数器操作

计数器的运行

西门子S7-1200基本指令(3)——计数器操作

CTU 运算(加计数)

西门子S7-1200基本指令(3)——计数器操作

CTD 运算(减计数)

西门子S7-1200基本指令(3)——计数器操作

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 结构)。

西门子S7-1200基本指令(3)——计数器操作

指定多重背景数据块以将计数器数据存储为保持性数据

该选项仅对于将计数器放置在 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)列中,选中相应框使该结构具有保持性。

西门子S7-1200基本指令(3)——计数器操作

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多