[西门子] 西门子1200PLC扩展高速计数器应用实例

[复制链接]
查看141 | 回复0 | 5 天前 | 显示全部楼层 |阅读模式
>


前面介绍过1200高速计数的应用,从V4.1开始增加了扩展高速计数功能,应用起来更加灵活,一起来学习一下扩展高速计数指令应用吧。
1. 启用高速计数器。
右击CPU打开属性窗口,点击HSC1,勾选启用该高速计数器。


设置初始参考值,启用计数器值等于参考值这一时间生成中断,连接硬件中断。


设置好时钟发生器A的输入和B的输入。


修改好A和B相输入的滤波时间,3.2微秒。


2. 程序编写。


参数
声明
数据类型
描述
HSC
IN
HW_HSC
HSC 标识符
CTRL
IN_OUT
Variant
SFB 输入和返回数据。“CTRL_HSC_EXT 指令系统数据类型 (SDT)
DONE
OUT
Bool
1= 表示 SFB 已完成。始终为 1,因为 SFB 为同步模式
BUSY
OUT
Bool
始终为 0,因为功能从未处于繁忙状态
ERROR
OUT
Bool
1 = 表示错误
STATUS
OUT
Word
执行条件代码

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
输入
Dint
CurrentCount新的当前值值
NewStartValue
输入
Dint
StartValue:HSC新的初始值
NewReference1
输入
Dint
Reference1新的参考值1
NewReference2
输入
Dint
Reference2 新的参考值2

标注红色的为常用功能,应重点掌握。

从指令列表,工艺,计数,调出CTRL_HSC_EXT扩展高速计数器指令。

说明:必须将EnHSC使能置位TRUE,否则无法计数。


说明:将新参考值放置到NewReference1中,再将EnReference1置为TRUE更新或者使用NewReference2 。


说明:将新当前值放置到NewCurrentCount中,再将EnCV置为TRUE更新。


说明:当计数模式设置为内部方向时(其余模式无效),可以将方向(1增,-1减)放置在NewDirection中再将EnDir置为TRUE更新。


说明:当前值存储在对应地址中( HSC1为ID1000 ),同时也存在CurrentCount 中。


—THE END—




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则