电工学习网

 找回密码
 立即注册
查看: 21610|回复: 0
打印 上一主题 下一主题

西门子S7-200PLC编码器测速方法

[复制链接]
跳转到指定楼层
楼主
发表于 2018-8-28 21:17:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
可以用到高速计数器hsc,中断及运算,最大脉冲数为32767。
速度测量方法
用定时中断测前一次计数和本次计数差值,乘以定时中断的频率,再除以编码器分辨率就是转速了。
假如本次中断计数器计数值是vd4,上次计数值是vd0,定时中断时间为0.1秒,编码器分辨率是2000p/r
那么转速就是(vd4-vd0)/10/2000
西门子S7-200PLC编码器测速方法
计数方法参见如下资料
1、建一个初始化程序,用SM0.1控制;
2、在初始化程序中,初始化高速计数器
2.1 设置控制寄存器(HSC0为SMB37),不同的计数器对应不同的DI点,HSC0为I0.0,HSC3为I0.1,HSC4为I0.2,HSC5为I0.3(222不支持HSC1和HSC2)
2.2 执行HDEF指令,你可以用模式0
2.3 置计数器初始值(HSC0为SMD38),如果从零启动就置零
2.4 置预置值(HSC0为SMD42),计数器计到这个值可以产生一个中断,一般利用这个中断调用相应的中断程序把当前值(SMD38)复零,否则计数器到头就不再计数了,当然你也可以置一个大点的值,在其他程序中清除当前值(SMD38),确保永远到不了头就可以了。
2.5 指定中断程序(ATCH),中断事件是12,程序号看你程序了
2.6 打开中断(ENI),这条指令没有的话,2.5是不起作用的
2.7 启动高速计数器(HSC),按前面的初始化,你就要启动HSC0,即N为0
3、程序中读取高速计数器的值,对于HSC0,HC0单元中的内容就是当前的计数值,这个单元只读不能写,你可以通过修改SMD38的内容改变当前的计数值。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-26 05:53

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表