浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
程序指令 计数器
发布时间:2023-11-04
观看程序指令 计数器视频:

初始化模式 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 指令,以禁用计数器



展开全文