全国服务热线 15021292620
单位新闻

程序指令 计数器

发布时间: 2022-12-16 16:57 更新时间: 2023-11-04 06:00

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



联系方式

  • 地址:上海 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 电话:15021292620
  • 销售:颜娟
  • 手机:15021292620
  • 传真:021-33556143
  • 微信:X15021292620
  • QQ:2799536152
  • Email:2799536152@qq.com
产品分类