第四部分高速计数器HSC功能块.docx
- 文档编号:3107317
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:12
- 大小:119.12KB
第四部分高速计数器HSC功能块.docx
《第四部分高速计数器HSC功能块.docx》由会员分享,可在线阅读,更多相关《第四部分高速计数器HSC功能块.docx(12页珍藏版)》请在冰豆网上搜索。
第四部分高速计数器HSC功能块
第四部分:
高速计数器HSC功能块
高速计数器HSC功能块
所有的Micro830和Micro850控制器都支持高速计数器(HSCHigh-SpeedCounter)功能,最多支持6个HSC。
高速计数器功能块包含两部分:
一部分是位于控制器上的本地I/O端子,具体信息见3.2.2节;另一部分是HSC功能块指令,将在下文进行介绍。
7.4.1HSC功能块
图7-38高速计数器功能块
该功能块用于启/停高速计数,刷新高速计数器的状态,重载高速计数器的设置,以及重置高速计数器的累加值。
注意:
在CCW中高速计数器被分为两个部分,高速计数部分和用户接口部分。
这两部分是结合使用的。
本小节主要介绍高速计数部分。
用户接口部分由一个中断机制驱动(例如中断允许(UIE)、激活(UIF)、屏蔽(UID)或是自动允许中断(AutoStart),用于在高速计数器到达设定条件时驱动执行指定的用户中断程序,本节将简要介绍。
该功能块的参数见表7-17。
表7-17高速计数器功能块参数列表
参数
参数类型
数据类型
描述
HscCmd
Input
USINT
功能块执行、刷新等控制命令,见HSC命令参数
HSCAppData
Input
HSCAPP
HSC应用配置。
通常只需配置一次。
见HSC应用数据结构
HSCStsInfo
Input
HSCSTS
HSC动态状态。
通常在HSC执行周期里该状态信息会持续更新,见HSC状态信息数据结构。
PlsData
Input
PLS
可编程限位开关数据(ProgrammableLimitSwitch---PLS),
用于设置HSC的附加高低及溢出设定值。
见PLS数据类型。
Sts
Output
UINT
HSC功能块执行状态,见HSC状态值
HSC命令参数(HscCmd),见表7-18。
表7-18HSC命令参数
HSC命令
命令描述
0x00
保留,未使用
0x01
执行HSC:
运行HSC(如果HSC处于空闲模式且梯级使能);
只更新HSC状态信息(如果HSC处于运行模式,且梯级使能)
0x02
停止HSC,如果HSC处于运行模式,且梯级使能
0x03
上载或设置HSC应用数据配置信息(如果梯级使能)
0x04
重置HSC累加值(如果梯级使能)
说明:
“0x”前缀表示十六进制数。
HSCAPP数据类型(HSCAppData)的结构见表7-19。
表7-19HSCAPP数据类型
参数
数据类型
描述
PLSEnable
BOOL
使能或停止可编程限位开关(PLS)
HscID
UINT
要驱动的HSC编号,见HSCID定义
HSCMode
UINT
要使用的HSC计数模式,见HSC模式
Accumulator
DINT
设置计数器的计数初始值
HPSetting
DINT
高预设值
LPSetting
DINT
低预设值
OFSetting
DINT
溢出设置值
UFSetting
DINT
下溢设置值
OutputMask
UDINT
设置输出掩码
HPOutput
UDINT
高预设值的32位输出值
LPOutput
UDINT
低预设值的32位输出值
说明:
OutputMask指令的作用是屏蔽HSC输出的数据中的某几位,以获取期望的数据输出位。
例如,对于24点的Micro830,有9点本地(控制器自带)输出点用于输出数据,当不需输出第零位的数据时,可以把OutputMask中的第零位置0即可。
这样即使输出数据上的第零位为1,也不会输出。
HscID、HSCMode、HPSetting、LPSetting、OFSetting、UFSetting六个参数必须设置,否则将提示HSC配置信息错误。
上溢值最大为+2,147,483,647,下溢值最小为-2,147,483,647,预设值大小须对应,即高预设值不能比上溢值大,低预设值不能比下溢值小。
当HSC计数值达到上溢值时,会将计数值置为下溢值继续计数;达到下溢值时类似。
HSC应用数据是HSC组态数据,它需要在启动HSC前组态完毕。
在HSC计数期间,该数据不能改变,除非需要重载HSC组态信息(在HscCmd中写03命令)。
但是,在HSC计数期间的HSC应用数据改变请求将被忽略。
HSCID定义见表7-20。
表7-20HSCID定义
位
描述
15~13
HSC的模式类型:
0x00——本地;0x01——扩展式(暂无);0x02——嵌入式
12~8
模块的插槽ID:
0x00——本地;0x01-0x1F——扩展式(暂无)模块的ID
0x01-0x05——嵌入式模块的ID
7~0
模块内部的HSCID:
0x00-0x0F——本地;0x00-0x07——扩展式(暂无);0x00-0x07——嵌入式
注意:
对于初始版本的ConnectedComponentsWorkbench只支持0x00-0x05范围的ID。
使用说明:
将表中各位上符合实际要使用的HSC的信息数据组合为一个无符号整数,写到HSCAppData的HscID位置上即可。
例如,选择控制器自带的第一个HSC接口,即15~13位为0,表示本地的I/O;12~8位为0,表示本地的通道,非扩展或嵌入模块;7~0位为0,表示选择第0个HSC,这样最终就在定义的HSCAPP类型的输入上的HscID位置上写入0即可。
HSC模式(HSCMode),见表7-21所示。
表7-21HSC模式
模式
功能
模式
功能
0
递增计数
5
有“重置”和“保持”控制信号的两输入计数
1
有外部“重置”和“保持”控制信号的递增计数
6
正交计数(编码形式,有A,B两相脉冲)
2
双向计数,并带有“外部方向”控制信号
7
有“重置”和“保持”控制信号的正交计数
3
有“重置”和“保持”,且带“外部方向”控制信号的双向计数
8
QuadX4计数器
4
两输入计数(一个加法计数输入信号,一个减法计数输入信号)
9
有“重置”和“保持”控制信号的QuadX4计数器
注意:
HSC3,HSC4,和HSC5只支持0,2,4,6,和8模式。
HSC0,HSC1和HSC2支持所有模式。
HSCSTS数据类型结构(HSCStsInfo),见表7-22,它可以显示HSC的各种状态,大多是只读数据。
其中的一些标志可以用于逻辑编程。
表7-22HSCSTS数据类型
参数
数据类型
描述
CountEnable
BOOL
使能或停止HSC计数
ErrorDetected
BOOL
非零表示检测到错误
CountUpFlag
BOOL
递增计数标志
CountDwnFlag
BOOL
递减计数标志
Mode1Done
BOOL
HSC是1(1A)模式或2(1B)模式,且累加值递增计数至HP的值。
OVF
BOOL
检测到上溢
UNF
BOOL
检测到下溢
CountDir
BOOL
1:
递增计数,0:
递减计数
HPReached
BOOL
达到高预设值
LPReached
BOOL
达到低预设值
OFCauseInter
BOOL
上溢导致HSC中断
UFCauseInter
BOOL
下溢导致HSC中断
HPCauseInter
BOOL
达到高预设值,导致HSC中断
LPCauseInter
BOOL
达到低预设值,导致HSC中断
PlsPosition
UINT
可编程限位开关(PLS)的位置
ErrorCode
UINT
错误代码,见HSC错误代码
Accumulator
DINT
读取累加器实际值
HP
DINT
最新的高预设值设定,可能由PLS功能更新
LP
DINT
最新的低预设值设定,可能由PLS功能更新
HPOutput
UDINT
最新高预设输出值设定,可能由PLS功能更新
LPOutput
UDINT
最新低预设输出值设定,可能由PLS功能更新
关于HSC状态信息数据结构(HSCSTS)说明如下。
在HSC执行的周期里,HSC功能块在“0x01”(HscCmd)命令下,状态将会持续更新。
在HSC执行的周期里,如果发生错误,错误检测标志将会打开,不同的错误情况对应见表7-23所示的错误代码。
表7-23HSC错误代码
错误代码位
HSC计数时错误代码
错误描述
15~8(高字节)
0~255
高字节非零表示HSC错误由PLS数据设置导致。
高字节的数值表示触发错误PLS数据中数组编号
7~0(低字节)
0x00
无错误
0x01
无效HSC计数模式
0x02
无效高预设值
0x03
无效上溢
0x04
无效下溢
0x05
无PLS数据
PLS数据结构(PlsData)
可编程限位开关(PLS)数据是一组数组,每组数组包括高低预设值以及上下溢出值。
PLS功能是HSC操作模式的附加设置。
当允许该模式操作时(PLSEnable选通),每次达到一个预设值,预设和输出数据将通过用户提供的数据更新(即PLS数据中下一组数组的设定值)。
所以,当需要对同一个HSC使用不同的设定值时,您可以通过提供一个包含将要使用的数据的PLS数据机构实现。
PLS数据结构是一个大小可变的数组。
注意,一个PLS数据体的数组个数不能大于255。
当PLS没有使能时,PLS数据结构可以不用定义。
表7-24列出每组数组的基本元素。
表7-24PLS数据结构元素作用表
命令元素
数据类型
元素描述
字0~1
DINT
高预设值设置
字2~3
DINT
低预设值设置
字4~5
UDINT
高位输出预设值
字6~7
UDINT
低位输出预设值
HSC状态值代码(Sts上对应的输出),见表7-25。
表7-25HSC状态值
HSC状态值
状态描述
0x00
无动作(没有使能)
0x01
HSC功能块执行成功
0x02
HSC命令无效
0x03
HSCID超过有效范围
0x04
HSC配置错误
在使用HSC计数时,注意设置滤波参数,否则HSC将无法正常计数。
该参数在硬件信息中使用的是HSC0如图7-39所示,其输入编号是input0~1。
图7-39设置滤波参数
高数计数器一般用于计数达到要求后触发中断,进而处理用户自定义的中断程序。
中断的设置在硬件信息中的Interrupts中能够找到。
如图7-40所示。
图7-40HSC中断设置
图中,选择的是HSC类型的用户中断,触发该中断的是HSC0,将要执行的中断程序是HSCa(用户自定义)。
该对话框中还看到AutoStart参数,当它被置为真时,只要控制器进入任何“运行”或“测试”模式,HSC类型的用户中断将自动执行。
该位的设置将作为程序的一部分被存储起来。
“MaskforIV”表示当该位置假(0)时,程序将不执行检测到的上溢中断命令,该位可以由用户程序设置,且它的值在整个上电周期内将会保持住。
类似的“MaskforIN”、“MaskforIH”和“MaskforIL”分别表示屏蔽下溢中断、高设置值中断和低设置值中断。
7.4.2HSC状态设置
图7-41高速计数器状态设置功能块
高速计数器状态设置功能块用于改变HSC计数状态。
注意:
当HSC功能块不计数时(停止)才能调用该设置功能块,否则输入参数将会持续更新且任何HSC_SET_STS功能块做出的设置都会被忽略。
该功能块的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 部分 高速 计数器 HSC 功能块