打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
S7-200 高速计数器简单案例(2)

前面以几个较简单的程序案例学习了一下高速计数器的应用,那么今天就做几个稍微复杂一些的程序案例,提高一下对高速计数器的掌握程度和熟练应用。

1、用编码器测量电机转速与频率

主程序:

子程序:

中断程序:

以上的程序中,在主程序中,用I0.7的上升沿调用高速计数器初始化子程序,然后做一个高速计数器初始化的子程序,首先是定义控制字节,送16#F8SMB37,定义为加计数更新当前值,这里没有写入初始值和预设值,定义的是高速计数器HSC0HSC模式1,然后激活高速计数器,还做了高速计数器中断,我们设置定时中断0的时间间隔为100ms,因为SMB34的定时中断0为中断事件号10,我们建立中断程序0和中断事件10的中断连接,并全局允许中断。

然后再看一下中断程序,因为是100ms的定时中断,每100ms执行一次中断程序。我们就用100ms计算的脉冲个数,再乘以600化成1分钟的脉冲个数,再除于分辨率就是等于转速,程序中的500就是编码器的分辨率。而对于编码器的频率的计算,我们有这样一个公式,频率/工频50Hz=转速/工频下的转速,所以频率=(转速/工频下的转速)*工频50Hz,这里我们先把双整数的转速转换成实数,再除以工频下的转速1488.0,再乘以工频50.0Hz,那么就得到了编码器的频率了。

2、用编码器测量机床位置,不论机床朝正方向移动或朝反方向移动,都能知道机床的当前位置,有一原点位置感应开关I0.7,当原点位置感应开关接通时,机床的当前位置为0。假设编码器的分辨率为1024,丝杆的进给量即转1圈移动的位置为10,计算公式是当前值除以分辨率,再乘于进给量)

主程序:

子程序:

以上的程序中,首先做一个高速计数器初始化的子程序,首先是定义控制字节,送16#F8SMB37,定义为加计数更新当前值,这里没有写入初始值和预设值,定义的是高速计数器HSC0HSC模式1,然后激活高速计数器。

在主程序中,用I0.7的上升沿调用高速计数器初始化子程序。然后是做机床朝正方向移动的控制,做个起保停程序,当I0.3接通时,Q0.0接通并自锁,在Q0.0接通的上升沿传送16#B8SMB37(加计数不更新当前值),同时激活高速计数器。然后是做机床朝反方向移动的控制,做个起保停程序,当I0.4接通时,Q0.1接通并自锁,在Q0.1接通的上升沿传送16#B0SMB37(减计数不更新当前值),同时激活高速计数器。

后面还做了一个用SM0.1常闭触点的上升沿来调用高速计数器初始化的子程序,并且用SM0.1的常开触点来驱动传送指令传送VD1000的值到SMD38,用SM0.1的常闭触点来驱动传送指令传送HC0的值到VD1000,这里是为了实现停电保持功能。PLCSTOP拨向RUN时,在第一个扫描周期之后会传送HC0的计数值到VD1000里面进行存储,当PLC断电后再从STOP拨向RUN时,SM0.1接通一个扫描周期,把VD1000存储的计数器传到到SMB38,那么当前值就是存储在VD1000里面的值。然后再做一个计算,把双整数HC0的当前值转换成实数,再进行HC0的当前值除以分辨率1024.0,再乘于进给量10.0,这样就可以测量出机床位置。

那么以上就是一些简单的高速计数器的应用,比较详细的讲了一下,可以理解吗?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用高速计数器测量电机转速
如何使用高速计数器获得高速速度值?
PLC:学习笔记(西门子)4
【跟着我一起来学习s7-200】42高速计数器的简单应用
S7-200脉冲输出指令做电机正反转控制
西门子S7-200PLC的特殊功能指令
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服