理论教育 HSC功能块概述及优化方案

HSC功能块概述及优化方案

时间:2023-06-28 理论教育 版权反馈
【摘要】:图7-38 HSC功能块HSC功能块如图7-38所示。表7-17 HSC功能块参数列表HSC命令参数见表7-18。表7-18 HSC命令参数说明:“0x”前缀表示十六进制数。但是,在HSC计数期间的HSC应用数据改变请求将被忽略。HSC0、HSC1和HSC2支持所有模式。在HSC执行的周期里,HSC功能块在“0x01”命令下,状态将会持续更新。表7-24 PLS数据结构元素作用表表7-25 HSC状态值在使用HSC计数时,注意设置滤波参数,否则HSC将无法正常计数。

HSC功能块概述及优化方案

978-7-111-45432-8-Chapter07-57.jpg

图7-38 HSC功能块

HSC功能块如图7-38所示。

该功能块用于启/停高速计数,刷新高速计数器的状态,重载高速计数器的设置,以及重置高速计数器的累加值。

注意:在CCW中高速计数器被分为两个部分,高速计数部分和用户接口部分。这两部分是结合使用的。本小节主要介绍高速计数部分。用户接口部分由一个中断机制驱动(例如中断允许(UIE)、激活(UIF)、屏蔽(UID)或是自动允许中断(AutoStart)),用于在高速计数器到达设定条件时驱动执行指定的用户中断程序。该功能块的参数列表见表7-17。

表7-17 HSC功能块参数列表

978-7-111-45432-8-Chapter07-58.jpg

HSC命令参数(HscCmd)见表7-18。

表7-18 HSC命令参数

978-7-111-45432-8-Chapter07-59.jpg

说明:“0x”前缀表示十六进制数。

HSCAPP数据类型(HSCAppData)见表7-19。

表7-19 HSCAPP数据类型

978-7-111-45432-8-Chapter07-60.jpg

说明:OutputMask指令的作用是屏蔽HSC输出的数据中的某几位,以获取期望的数据输出位。例如,对于24点的Micro830,有9点本地(控制器自带)输出点用于输出数据,当不需输出第零位的数据时,可以把OutputMask中的第零位置0即可。这样即使输出数据上的第零位为1,也不会输出。

HscID、HSCMode、HPSetting、LPSetting、OFSetting、UFSetting 6个参数必须设置,否则将提示HSC配置信息错误。上溢值最大为+2,147,483,647,下溢值最小为-2,147,483,647,预设值大小须对应,即高预设值不能比上溢值大,低预设值不能比下溢值小。当HSC计数值达到上溢值时,会将计数值置为下溢值继续计数;达到下溢值时类似。

HSCApp Data应用数据是HSC组态数据,它需要在启动HSC前组态完毕。在HSC计数期间,该数据不能改变,除非需要重载HSC组态信息(在HscCmd中写03命令)。但是,在HSC计数期间的HSC应用数据改变请求将被忽略。

HSC ID定义见表7-20。

表7-20 HSC ID定义

978-7-111-45432-8-Chapter07-61.jpg

使用说明:将表中各位上符合实际要使用的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-21 HSC模式

978-7-111-45432-8-Chapter07-62.jpg

注意:HSC3、HSC4和HSC5只支持0、2、4、6和8模式。HSC0、HSC1和HSC2支持所有模式。(www.daowen.com)

HSCSTS数据类型(HSCStsInfo)见表7-22。它可以显示HSC的各种状态,大多是只读数据。其中的一些标志可以用于逻辑编程。

表7-22 HSCSTS数据类型

978-7-111-45432-8-Chapter07-63.jpg

(续)

978-7-111-45432-8-Chapter07-64.jpg

关于HSC状态信息数据结构(HSCSTS)的说明如下。

在HSC执行的周期里,HSC功能块在“0x01”(HscCmd)命令下,状态将会持续更新。

在HSC执行的周期里,如果发生错误,错误检测标志将会打开,不同的错误情况对应着如下的错误代码,见表7-23。

表7-23 HSC错误代码

978-7-111-45432-8-Chapter07-65.jpg

PLS数据结构(PlsData)

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

HSC状态值(Sts上对应的输出)见表7-25。

表7-24 PLS数据结构元素作用表

978-7-111-45432-8-Chapter07-66.jpg

表7-25 HSC状态值

978-7-111-45432-8-Chapter07-67.jpg

在使用HSC计数时,注意设置滤波参数,否则HSC将无法正常计数。该参数在硬件信息中,使用的是HSC0,其输入编号是input0~1。设置滤波参数如图7-39所示。

978-7-111-45432-8-Chapter07-68.jpg

图7-39 设置滤波参数

高数计数器一般用于计数达到要求后触发中断,进而处理用户自定义的中断程序。中断的设置在硬件信息中的Interrupts中能找到,如图7-40所示。

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

978-7-111-45432-8-Chapter07-69.jpg

图7-40 HSC中断设置

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈