楼主最近还看过
对楼主提问“谢谢老师傅,可是如果我想让他精度高点怎么做啊???”的答复:
电机转每一圈接近开关输出一个脉冲,电机转速是可变值每分钟在0~3000转!折算到每秒钟转速为0~50转,如想每隔1秒显示电机每分钟的转速,可以这样做,仍保持上面的程序:每个2秒读取一次1秒内的计数值(MB0),在V数据区留有30个字节存储器空间,用指针指令。启动后的第一个MB10=1的前沿将MB0清0且开始计数,MB10=1的后沿,将MB0左移一位(相当成乘2)存入V区的首址(如VB100),并将此值送入累计区MW2,指针地址加1。MB10=1的前沿,再将MB0清0且开始计数,MB10=1的后沿,将MB0左移一位(相当成乘2)存入指针地址内容为地址的存储区(如VB101),并将此值加入累计区MW2,指针地址加1。。。重复上述计数累加30次,正好为1分钟时间,将MW2值(每分转速)送显示区(如MW4),再进行这样运算:先将VB100为首址的连续30个字节循环左移8位,即VB101-->VB100,VB102-->VB101....VB100-->VB129。再将MW2 - VB129的内容(即原VB00内容)=MW2。在下一个MB10=1的后沿,读取前MB10=1时的计数值MB0,左移一位后,送入VB129,再将此值加入MW2。MW2值送入MW4显示,再将VB100为首址的连续30个字节循环左移8位。。。以后每隔2秒重复这样的动作,就可实现每隔2秒刷新一次每分钟的转数值(0~3000)。
这样处理显示每分钟的转速要比显示美秒的转速精度高。
回复内容:
对:wyb2866255---王者之师关于15楼:程序编写基本上是对的,应进一步简化程序,如:网络1、2可合并一起,网络3可省略(因为开机时存储器不设置为保存状态,其值都=0),其转速可以不求平均值,直接就用累计值,这样不仅转速精度高,而且可大大简化程序。 内容的回复:
当转速在150转每分钟左右时,查看状态表,MB0=2,或3,这两个数之间变换,积累的一分钟转速VW208也等于150左右正常。但是提高转速到200转时,MB0就等于0了。算不出转速了
是不是I0.0采集上升 沿的频率限制了?