如何用PLC测转速

发布时间:2023-10-08
关于plc,我是个初学者,今天在此对自己前一段时间的学习做个总结,以备后用。由于本人水平有限,本文一定还存在不少错误和不妥之处,敬请大家批评指正。
本文所有程序,均在step7template.mwp中编写,cpu类型选西门子s7—200系列226 cn。
先说程序,测低速(每分钟1000转以下): ld i0.0
ld m20.1
ctu c0,+5000 //设定增计数器上限
ld sm0.0
a m20.0
ton t37,+30 //立即接通,延时三秒断开
ld sm0.0
o m20.0#p#分页标题#e#
an t37
= m20.0 //设定t37定时器复位信号
ld m20.0
ld m20.1
ctu c1,+20 //设定增计数器c1上限
ld c1
movw c0,vw200
= m20.2
ld m20.2
= m20.1 //设定增计数器c1的复位信号
外围电路下面介绍,先讲程序。由i0.0作输入口,t37延时三秒后给c1一个信号,c1计1,然后t37被复位,再延时,3秒后c1计2,…
直到c1计到20。20个三秒就是一分钟,期间i0.0口的脉冲信号由c0计数器计数,计满一分钟就把结果移到vw200中。脉冲信号由外围电路得到。
以上程序能测一千以下的转速,实验时上限是一千四百多吧。由于该程序用的是低速计数器,转速较高时,受plc时钟周期影响,在一分钟时转速还未记好,c0就被清零,所以会有上限。接下来我们用plc内部不受时钟周期影响的高速计数器来测高速(一千转以上):
ld sm0.1
call sbr_0 //调用高速计数器初始化子程序
ld sm0.0
a m20.0
ton t37,+100 //设定计时器值,延时10秒
ld sm0.0
o m20.0
an t37
= m20.0 //立即接通延时十秒断开
ld t37
movd hc0, vd100 //i0.0为高速计数器hc0输入口,计数结果移入vd100
movd vd100, vd200
mul +6, vd200 //计数结果乘以6,放入vd200
ld t37
call sbr_0 //t37计时到,调用高速计数器初始化子程序
sbr_0 //高速计数器初始化子程序#p#分页标题#e#
ld sm0.0
movb 16#f8, smb37 //设置控制位:增计数;已使能;
movd +0, smd38 //装载 cv
movd +0, smd42 //装载 pv
hdef 0, 0
hsc 0
以上程序测速范围为1000转以上,实验时测得最高为2500+,因实验条件有限,上限未知。有人会有疑问:你怎么采用的是测10秒,然后将计数结果乘以6当做一分钟的转速,而不直接测一分钟的转速呢?因为转速结果最后要用数码管显示出来,对观察者来说,10秒以后显示与一分钟后显示相比,前者更好一些。最后我们采用的是6乘以10的策略。
最后来说说外围电路吧。外围电路把转速转换成脉冲信号输入plc,上面两段程序用的都是i0.0口。信号的转换和采集用霍尔传感器,
接法如图:vcc接24v,gnd接电源负极,a接信号输入端i0.0,a端和24v间接电阻。接好后将霍尔元件平的一面朝被测物体固定好,如一个轮子,在轮子面上霍尔对应位置安装霍尔磁体。测速原理:轮子每转一圈,磁体和霍尔元件接触一次(其实是接近),它们接触时带来a端电压的降低,由此给plc一个脉冲信号。磁体和霍尔之间间距3至5mm。安装时注意磁体的正反面。
好了,测转速就先说这么多。经过以上这些,测得的数据只是放在plc的内存里,我们可以在软件里监测plc运行情况,看到这些数据。是不是有点麻烦,有没有更好的方法能看到这些数据?当然,可以用led数码管来把数据显示出来。
上一个:打印机端口和电脑端口怎么设置(电脑打印端口怎么设置)
下一个:RTT051913FTP现货库存,最新价格

手机怎么注册小米帐号和密码忘了怎么办
电脑apk文件怎么安装方法(电脑上的apk怎么安装)
三星两个系统怎么开启(三星能设置双系统吗)
2520平板怎么样,三星t320平板怎么样值得买吗新款
跟着大师去转山:从老班章转山到景迈
笔记本usb识别不到鼠标(笔记本usb不认鼠标)
granzow泵
电脑双屏显示主屏副屏怎么设置快捷键(双屏电脑主屏副屏画面设置)
幸福树落叶子怎么办?
下沉式卫生间防水做法技巧