程序指令 计数器
初始化模式 3 和 4
下列步骤说明如何为带外部方向控制的单相向上/向下计数器(模式 3 和 4)初始化 HSC0:
1. 使用扫描存储器位调用执行初始化操作的子例程。由于使用子例程调用,后续扫 描不再调用子例程,因此可减少扫描执行时间并使程序结构更加合理。 2. 在初始化子例程中,根据所需的控制操作加载 SMB37。 例如:SMB37 = 16#F8 产生如下结果: – 启用计数器 – 写入新当前值 – 写入新预设值 – 将 HSC 的初始方向设置为向上计数 – 将复位输入设为高电平有效 3. 将 HSC 输入设 0 且 MODE 输入设为下列值之一后执行 HDEF 指令: – 模式 3 表示无外部复位 – 模式 4 表示有外部复位 4. 用所需当前值加载 SMD38(双字大小值)(加载 0 可进行清除)。 5. 用所需预设值加载 SMD42(双字大小值)。 6. 为捕获当前值等于预设值事件,将 CV = PV 中断事件(事件 12)附加于中断例程,编 程中断。有关中断处理的完整详细信息,请参见讨论中断指令的部分。 7. 为捕获方向更改,将方向更改中断事件(事件 27)附加于中断例程中,编程中断。 8. 为捕获外部复位事件,将外部复位中断事件(事件 28)附加于中断例程,编程中断。 9. 执行全局中断启用指令 (ENI) 以启用中断。 10. 执行 HSC 指令,使 CPU 对 HSC0 编程。 11. 退出子例程
初始化模式 6 和 7 下列步骤说明如何为带加/减时钟的双相向上/向下计数器(模式 6 和 7)初始化 HSC0:
1. 使用扫描存储器位调用执行初始化操作的子例程。由于使用子例程调用,后续扫 描不再调用子例程,因此可减少扫描执行时间并使程序结构更加合理。 2. 在初始化子例程中,根据所需的控制操作加载 SMB37。 例如:SMB37 = 16#F8 产生如下结果: – 启用计数器 – 写入新当前值 – 写入新预设值 – 将 HSC 的初始方向设置为向上计数 – 将复位输入设为高电平有效 3. 将 HSC 输入设 0 且 MODE 设为下列值之一后执行 HDEF 指令: – 模式 6 表示无外部复位 – 模式 7 表示有外部复位 4. 用所需当前值加载 SMD38(双字大小值)(加载 0 可进行清除)。 5. 用所需预设值加载 SMD42(双字大小值)。 6. 为捕获当前值等于预设值事件,将 CV = PV 中断事件(事件 12)附加于中断例程,编 程中断。请参见关于中断的部分。 7. 为捕获方向更改,将方向更改中断事件(事件 27)附加于中断例程中,编程中断。 8. 为捕获外部复位事件,将外部复位中断事件(事件 28)附加于中断例程,编程中断。 9. 执行全局中断启用指令 (ENI) 以启用中断。 10. 执行 HSC 指令,使 CPU 对 HSC0 编程。 11. 退出子例程。
初始化模式 9 和 10 以下步骤介绍如何将 HSC0 初始化为 AB 正交相计数器(针对模式 9 和 10):
1. 使用扫描存储器位调用执行初始化操作的子例程。由于使用子例程调用,后续扫 描不再调用子例程,因此可减少扫描执行时间并使程序结构更加合理。 2. 在初始化子例程中,根据所需的控制操作加载 SMB37。 示例(1x 计数模式):SMB37 = 16#FC 产生如下结果: – 启用计数器 – 写入新当前值 – 写入新预设值 – 将 HSC 的初始方向设置为向上计数 – 将复位输入设为高电平有效 示例(4x 计数模式):SMB37 = 16#F8 产生如下结果: – 启用计数器 – 写入新当前值 – 写入新预设值 – 将 HSC 的初始方向设置为向上计数 – 将复位输入设为高电平有效 3. 将 HSC 输入设 0 且 MODE 输入设为下列值之一后执行 HDEF 指令: – 模式 9 表示无外部复位 – 模式 10 表示有外部复位 4. 用所需当前值加载 SMD38(双字大小值)(加载 0 可进行清除)。 5. 用所需预设值加载 SMD42(双字大小值)。 6. 为捕获当前值等于预设值事件,将 CV = PV 中断事件(事件 12)附加于中断例程,编 程中断。有关中断处理的完整详细信息,请参见启用中断 (ENI) 的相关部分。 7. 为捕获方向更改,将方向更改中断事件(事件 27)附加于中断例程中,编程中断。 8. 为捕获外部复位事件,将外部复位中断事件(事件 28)附加于中断例程,编程中断。 9. 执行全局中断启用指令 (ENI) 以启用中断。 10. 执行 HSC 指令,使 CPU 对 HSC0 编程。 11. 退出子例程。
更改模式 0 和 1 的方向
下列步骤说明如何组态 HSC0,以更改带内部方向的单相计数器(模式 0 和 1)的方向: 1. 加载 SMB37,以写入所需方向: SMB37 = 16#90 – 启用计数器 – 将 HSC 的方向设置为减计数 SMB37 = 16#98 – 启用计数器 – 将 HSC 的方向设置为加计数 2. 执行 HSC 指令,使 CPU 对 HSC0 编程。
加载新当前值(任何模式)
以下步骤介绍了如何更改 HSC0 的计数器当前值(任何模式): 1. 加载 SMB37,以写入所需当前值: SMB37 = 16#C0 – 启用计数器 – 写入新当前值 2. 用所需当前值加载 SMD38(双字大小值)(加载 0 可进行清除)。 3. 执行 HSC 指令,使 CPU 对 HSC0 编程。
加载新预设值(任何模式) 以下步骤介绍了如何更改 HSC0 的预设值(任何模式): 1. 加载 SMB37,以写入所需预设值: SMB37 = 16#A0 – 启用计数器 – 写入新预设值 2. 用所需预设值加载 SMD42(双字大小值)。 3. 执行 HSC 指令,使 CPU 对 HSC0 编程。
禁用高速计数器(任何模式) 以下步骤介绍了如何禁用 HSC0 高速计数器(任何模式): 1. 加载 SMB37,以禁用计数器: SMB37 = 16#00 – 禁用计数器 2. 执行 HSC 指令,以禁用计数器
- 程序指数 计数器 2023-11-04
- S7-200程序指令计数器 2023-11-04
- S7-200模块程序指令 计数器 2023-11-04
- 程序指令转换-ASCII 子字符串转换为数值 2023-11-04
- S7-200程序指令转换 2023-11-04
- S7-200程序指令 转换 2023-11-04
- 西门子S7-200程序指令-转换 2023-11-04
- 程序指令 比较 2023-11-04
- 通信 2023-11-04
- 程序指令 通信 2023-11-04
- 字节时间缓冲区的格式,从字节地址 T 开始 2023-11-04
- 程序指令 时钟 2023-11-04
- 读取和设置实时时钟 2023-11-04
- 正跳变和负跳变检测器 2023-11-04
- 逻辑堆栈概述 2023-11-04
联系方式
- 地址:上海 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 邮编:201600
- 电话:15021292620
- 销售:颜娟
- 手机:15021292620
- 传真:021-33556143
- 微信:X15021292620
- QQ:2799536152
- Email:2799536152@qq.com