高数只能计编码器的脉冲增加或减少,能不能像300PLC一样侧脉冲频率来计算出速度,再通过系统的扫描时间来算出位移
最佳答案
你应用高速计数器应该是想测量电机的转速及其旋转的方向。
首先,你的码盘应该是旋转编码器(它实际上是提供高速脉冲),并且有的旋转编码器上有A/B相正交的功能(通过这个功能能实现测量电机的正反转,原理是在旋转编码器上有两个夹角为90度的检测点,如果A点超前B点90度是正转,反之是反转)。
其次,关于接线,你把旋转编码器的输出接到PLC的输入(I0.0或I0.1或I0.2,主要根据你用什么工作模式,这个你去系统手册上找“高速计数器的输入点和工作模式”表格。)
第三,这里有一个高速计数器测量电机转速的程序。与你的实际情况肯定有差别,不过对你肯定有帮助。
主程序
LDSM0.1
MOVB16#F8,SMB37
MOVD0,SMD38
MOVD0,SMD42 HDEF0,0
MOVB200,SMB34 ATCHINT_0:INT0,10
ENI HSC0
中断程序
LDSM0.0
MOVDHC0,VD100 HSC0 这个程序采用了一个200MS的中断,计算在这200MS内,一共采集到多少个脉冲。 剩下的就需要你自己在编程,把200MS内的脉冲个数换算为1秒钟或者一分钟有多少个脉冲,在换算为实际的速度。 如果你把这个程序实际运行出来了,你还可以开发成A/B相正交的高速计数器,就可以知道当前的转速和旋转方向了。
提问者对于答案的评价:
我主要是测转速,用的就是AB正交的模式,不需管方向,只是需要测出速度,但是有个问题就是速度是总在变化的,我需要不停的测量,还有附加个问题,200PLC 能读取系统的扫描时间么,例如我知道的速度,这时通过检测信号的高电平开始计时,通过速度的采集 再乘以系统的扫描时间这样我才能算出位移来,可是一只没找到读取系统扫描时间的程序块来
最佳答案作者回复:
扫描周期由处理器决定,但是决定的时间长短而由程序来决定。在线监控可在编程软件里的“PLC”_"信息"里面看到扫描周期具体数据。
[第9讲] S7-200中的扫描周期、扫描输入输出、立刻输入输出:
http://www.tudou.com/programs/view/z8K6i9LKgb0/
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc366176.html