2. 程序编写。
参数声明数据类型描述HSCINHW_HSCHSC 标识符CTRLIN_OUTVariantSFB 输入和返回数据。“CTRL_HSC_EXT 指令系统数据类型 (SDT)DONEOUTBool1= 表示 SFB 已完成。始终为 1,因为 SFB 为同步模式BUSYOUTBool始终为 0,因为功能从未处于繁忙状态ERROROUTBool1 = 表示错误STATUSOUTWord执行条件代码
CTRL_HSC_EXT 指令系统数据类型 (SDT)在任意数据块中创建静态变量名称(MyHSC),数据类型HSC_Count(计数)、HSC_Period(周期)或 HSC_Frequency(频率)
1)最常用的功能为计数(HSC_Count)
结构元素声明数据类型描述CurrentCount输出Dint返回 HSC 的当前计数值CapturedCount输出Dint返回在指定输入事件上捕获的计数值SyncActive输出Bool状态位:同步输入已激活DirChange输出Bool状态位:计数方向已更改CmpResult1输出Bool状态位:CurrentCount 等于发生的 Reference1 事件CmpResult2输出Bool状态位: CurrentCount 等于发生的 Reference2 事件OverflowNeg输出Bool状态位: CurrentCount 达到最低下限值OverflowPos输出Bool状态位: CurrentCount 达到最高上限值
EnHSC输入Bool当为真时, 启用HSC 进行计数脉冲;当为假时,禁用计数功能。EnCapture输入Bool当为真时,启用捕获输入;当为假时,捕获输入无效。EnSync输入Bool当为真时,启用同步输入,当为假时,同步输入无效。EnDir输入Bool启用 NewDirection 新的方向值生效EnCV输入Bool启用 NewCurrentCount新当前值生效EnSV输入Bool启用 NewStartValue新开始值生效EnReference1输入Bool启用 NewReference1参考值1生效EnReference2输入Bool启用 NewReference2 参考值2生效EnUpperLmt输入Bool启用 NewUpperLimit新上限值生效EnLowerLmt输入Bool启用 New_Lower_Limit新下限值生效EnOpMode输入Bool启用 NewOpModeBehavior新溢出是否计数值生效EnLmtBehavior输入Bool启用 NewLimitBehavior溢出继续计数模式值生效NewDirection输入Int计数方向: 1 = 加计数;-1 = 减计数;所有其它值保留。NewOpModeBehavior输入Int溢出是否计数:1 = HSC 停止计数(HSC 必须禁用并重新启用才能继续计数);2 = HSC 继续操作;所有其它值保留。NewLimitBehavior输入Int溢出当前值:1 = 将CurrentCount 设置为相反限值;2 = 将 CurrentCount 设置为开始值;所有其它值保留。NewCurrentCount输入DintCurrentCount新的当前值值NewStartValue输入DintStartValue:HSC新的初始值NewReference1输入DintReference1新的参考值1NewReference2输入DintReference2 新的参考值2
标注红色的为常用功能,应重点掌握。
从指令列表,工艺,计数,调出CTRL_HSC_EXT扩展高速计数器指令。
说明:必须将EnHSC使能置位TRUE,否则无法计数。
说明:将新参考值放置到NewReference1中,再将EnReference1置为TRUE更新或者使用NewReference2 。
说明:将新当前值放置到NewCurrentCount中,再将EnCV置为TRUE更新。