关于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数码管来把数据显示出来。
导读:目前正在解读《如何用PLC测转速》的相关信息,《如何用PLC测转速》是由用户自行发布的知识型内容!下面请观看由(电工学习网 - www.9pbb.com)用户发布《如何用PLC测转速》的详细说明。
提醒:《如何用PLC测转速》最后刷新时间 2023-07-10 04:09:17,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《如何用PLC测转速》该内容的真实性请自行鉴别。