第四部分:高速计数器HSC功能块_第1页
第四部分:高速计数器HSC功能块_第2页
第四部分:高速计数器HSC功能块_第3页
第四部分:高速计数器HSC功能块_第4页
第四部分:高速计数器HSC功能块_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高速计数器HSC功能块所有的Micro830 和Micro850控制器都支持高速计数器(HSC High-Speed Counter)功能,最多支持6个HSC。高速计数器功能块包含两部分:一部分是位于控制器上的本地I/O端子,具体信息见3.2.2节;另一部分是HSC功能块指令,将在下文进行介绍。7.4.1 HSC功能块图 7-38高速计数器功能块该功能块用于启/停高速计数,刷新高速计数器的状态,重载高速计数器的设置,以及重置高速计数器的累加值。注意:在CCW中高速计数器被分为两个部分,高速计数部分和用户接口部分。这两部分是结合使用的。本小节主要介绍高速计数部分。用户接口部分由一个中断机制驱动(

2、例如中断允许(UIE)、激活(UIF)、屏蔽(UID)或是自动允许中断(AutoStart),用于在高速计数器到达设定条件时驱动执行指定的用户中断程序,本节将简要介绍。该功能块的参数见表7-17。表 7-17高速计数器功能块参数列表参数参数类型数据类型描述HscCmdInputUSINT功能块执行、刷新等控制命令,见HSC命令参数HSCAppDataInputHSCAPPHSC应用配置。通常只需配置一次。见HSC应用数据结构HSCStsInfoInputHSCSTSHSC动态状态。通常在HSC执行周期里该状态信息会持续更新,见HSC状态信息数据结构。PlsDataInputPLS可编程限位开关

3、数据(Programmable Limit Switch -PLS),用于设置HSC的附加高低及溢出设定值。见PLS数据类型。StsOutputUINTHSC功能块执行状态,见HSC状态值HSC命令参数(HscCmd),见表7-18。表7-18HSC命令参数HSC命令命令描述0x00保留,未使用0x01执行HSC:运行HSC(如果HSC处于空闲模式且梯级使能);只更新HSC状态信息(如果HSC处于运行模式,且梯级使能)0x02停止HSC,如果HSC处于运行模式,且梯级使能0x03上载或设置HSC应用数据配置信息(如果梯级使能)0x04重置HSC累加值(如果梯级使能)说明:“0x”前缀表示十六进

4、制数。HSCAPP数据类型(HSCAppData)的结构见表7-19。表 7-19HSCAPP数据类型参数数据类型描述PLSEnableBOOL使能或停止可编程限位开关(PLS)HscIDUINT要驱动的HSC编号,见HSC ID定义HSCModeUINT要使用的HSC计数模式,见HSC模式AccumulatorDINT设置计数器的计数初始值HPSettingDINT高预设值LPSettingDINT低预设值OFSettingDINT溢出设置值UFSettingDINT下溢设置值OutputMaskUDINT设置输出掩码HPOutputUDINT高预设值的32位输出值LPOutputUDINT

5、低预设值的32位输出值说明:OutputMask指令的作用是屏蔽HSC输出的数据中的某几位,以获取期望的数据输出位。例如,对于24点的Micro830,有9点本地(控制器自带)输出点用于输出数据,当不需输出第零位的数据时,可以把OutputMask中的第零位置0即可。这样即使输出数据上的第零位为1,也不会输出。HscID、HSCMode、HPSetting、LPSetting、OFSetting、UFSetting六个参数必须设置,否则将提示HSC配置信息错误。上溢值最大为+2,147,483,647,下溢值最小为-2,147,483,647,预设值大小须对应,即高预设值不能比上溢值大,低预设

6、值不能比下溢值小。当HSC计数值达到上溢值时,会将计数值置为下溢值继续计数;达到下溢值时类似。HSC应用数据是HSC组态数据,它需要在启动HSC前组态完毕。在HSC计数期间,该数据不能改变,除非需要重载HSC组态信息(在HscCmd中写03命令)。但是,在HSC计数期间的HSC应用数据改变请求将被忽略。HSC ID定义见表7-20。表 7-20 HSC ID定义位描述1513HSC的模式类型:0x00本地;0x01扩展式(暂无);0x02嵌入式128模块的插槽ID:0x00本地;0x01-0x1F扩展式(暂无)模块的ID0x01-0x05嵌入式模块的ID70模块内部的HSC ID:0x00-0

7、x0F本地;0x00-0x07扩展式(暂无);0x00-0x07嵌入式注意:对于初始版本的Connected Components Workbench只支持0x00-0x05范围的ID。使用说明:将表中各位上符合实际要使用的HSC的信息数据组合为一个无符号整数,写到HSCAppData的HscID位置上即可。例如,选择控制器自带的第一个HSC接口,即1513位为0,表示本地的I/O;128位为0,表示本地的通道,非扩展或嵌入模块;70位为0,表示选择第0个HSC,这样最终就在定义的HSCAPP类型的输入上的HscID位置上写入0即可。HSC模式(HSCMode),见表7-21所示。表 7-21

8、 HSC模式模式功能模式功能0递增计数5有“重置”和“保持”控制信号的两输入计数1有外部“重置”和“保持”控制信号的递增计数6正交计数(编码形式,有A,B两相脉冲)2双向计数,并带有“外部方向”控制信号7有“重置”和“保持”控制信号的正交计数3有“重置”和“保持”,且带“外部方向”控制信号的双向计数8Quad X4 计数器4两输入计数(一个加法计数输入信号,一个减法计数输入信号)9有“重置”和“保持”控制信号的Quad X4 计数器注意:HSC3,HSC4,和HSC5只支持0,2,4,6,和8模式。HSC0,HSC1和HSC2支持所有模式。HSCSTS数据类型结构(HSCStsInfo),见表

9、7-22,它可以显示HSC的各种状态,大多是只读数据。其中的一些标志可以用于逻辑编程。表 7-22 HSCSTS数据类型参数数据类型描述CountEnableBOOL使能或停止HSC计数ErrorDetectedBOOL非零表示检测到错误CountUpFlagBOOL递增计数标志CountDwnFlagBOOL递减计数标志Mode1DoneBOOLHSC是1(1A)模式或2(1B)模式,且累加值递增计数至HP的值。OVFBOOL检测到上溢UNFBOOL检测到下溢CountDirBOOL1:递增计数,0:递减计数HPReachedBOOL达到高预设值LPReachedBOOL达到低预设值OFCa

10、useInterBOOL上溢导致HSC中断UFCauseInterBOOL下溢导致HSC中断HPCauseInterBOOL达到高预设值,导致HSC中断LPCauseInterBOOL达到低预设值,导致HSC中断PlsPositionUINT可编程限位开关(PLS)的位置ErrorCodeUINT错误代码,见HSC错误代码AccumulatorDINT读取累加器实际值HPDINT最新的高预设值设定,可能由PLS功能更新LPDINT最新的低预设值设定,可能由PLS功能更新HPOutputUDINT最新高预设输出值设定,可能由PLS功能更新LPOutputUDINT最新低预设输出值设定,可能由PL

11、S功能更新关于HSC状态信息数据结构(HSCSTS)说明如下。在HSC执行的周期里,HSC功能块在“0x01”(HscCmd)命令下,状态将会持续更新。在HSC执行的周期里,如果发生错误,错误检测标志将会打开,不同的错误情况对应见表7-23所示的错误代码。表 7-23 HSC错误代码错误代码位HSC计数时错误代码错误描述158(高字节)0255高字节非零表示HSC错误由PLS数据设置导致。高字节的数值表示触发错误PLS数据中数组编号70(低字节)0x00无错误0x01无效HSC计数模式0x02无效高预设值0x03无效上溢0x04无效下溢0x05无PLS数据PLS数据结构(PlsData)可编程

12、限位开关(PLS)数据是一组数组,每组数组包括高低预设值以及上下溢出值。PLS功能是HSC操作模式的附加设置。当允许该模式操作时(PLSEnable选通),每次达到一个预设值,预设和输出数据将通过用户提供的数据更新(即PLS数据中下一组数组的设定值)。所以,当需要对同一个HSC使用不同的设定值时,您可以通过提供一个包含将要使用的数据的PLS数据机构实现。PLS数据结构是一个大小可变的数组。注意,一个PLS数据体的数组个数不能大于255。当PLS没有使能时,PLS数据结构可以不用定义。表7-24列出每组数组的基本元素。表7-24 PLS数据结构元素作用表命令元素数据类型元素描述字01DINT高预

13、设值设置字23DINT低预设值设置字45UDINT高位输出预设值字67UDINT低位输出预设值HSC状态值代码(Sts上对应的输出),见表7-25。 表 7-25 HSC状态值HSC状态值状态描述0x00无动作(没有使能)0x01HSC功能块执行成功0x02HSC命令无效0x03HSC ID超过有效范围0x04HSC配置错误在使用HSC计数时,注意设置滤波参数,否则HSC将无法正常计数。该参数在硬件信息中使用的是HSC0如图7-39所示,其输入编号是input01。图 7-39 设置滤波参数高数计数器一般用于计数达到要求后触发中断,进而处理用户自定义的中断程序。中断的设置在硬件信息中的Inte

14、rrupts中能够找到。如图7-40所示。图 7-40 HSC中断设置图中,选择的是HSC类型的用户中断,触发该中断的是HSC0,将要执行的中断程序是HSCa(用户自定义)。该对话框中还看到Auto Start参数,当它被置为真时,只要控制器进入任何“运行”或“测试”模式,HSC类型的用户中断将自动执行。该位的设置将作为程序的一部分被存储起来。“Mask for IV”表示当该位置假(0)时,程序将不执行检测到的上溢中断命令,该位可以由用户程序设置,且它的值在整个上电周期内将会保持住。类似的“Mask for IN”、“Mask for IH”和“Mask for IL”分别表示屏蔽下溢中断、

15、高设置值中断和低设置值中断。7.4.2 HSC状态设置图 7-41高速计数器状态设置功能块高速计数器状态设置功能块用于改变HSC计数状态。注意:当HSC功能块不计数时(停止)才能调用该设置功能块,否则输入参数将会持续更新且任何HSC_SET_STS功能块做出的设置都会被忽略。该功能块的参数见表7-26。表 7-26高速计数器状态设置功能块参数列表参数参数类型数据类型描述HscIDInputUINT见HSC应用数据结构欲设置的HSC状态Mode1DoneInputBOOL计数模式1A或1B已完成HPReachedInputBOOL达到高预设值,当HSC不计数时,该位可重置为假。LPReached

16、InputBOOL达到低预设值,当HSC不计数时,该位可重置为假。OFOccurredInputBOOL发生上溢,当需要时,该位可置为假UFOccurredInputBOOL发生下溢,当需要时,该位可置为假StsOutputUINT见HSC状态值ENOOutputBOOL使能输出7.4.3 HSC的应用1.硬件连线将PTO口脉冲输出口O.00直接接到HSC高速计数器I.00口上,使用HSC计数PTO口的脉冲个数,硬件接完以后需要对数字量输入I.00口进行配置方能计数到高速脉冲个数。打开CCW软件,双击Micro850图标,点击Embedded I/O口,将输入0-1号口选为5us,配置方法如图7-42所示。图 7-42配置高速计数器脉冲输入口2.创建HSC模块在CCW中建立一个例程,例程中创建HSC模块,创建相应的变量,并设置初始值,初始值的设置如图7-43所示。图 7-43配置高速计数器脉冲输入口其中HscID选择0,表示选择HSC0计数器,使用Micro850的嵌入式输入口0-3,HscMode设置为2,选择模式2a,即嵌入式输入口I.00作为增/减计数器,I.01作为方向选择位,I.01置1时使用加计数器,置0时使用减计数器。HPSetting设置为100000,表示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论