fuyuesong123
级别: 略有小成
精华主题: 0
发帖数量: 214 个
工控威望: 371 点
下载积分: 882 分
在线时间: 114(小时)
注册时间: 2009-05-07
最后登录: 2023-04-25
查看fuyuesong123的 主题 / 回贴
楼主  发表于: 2012-05-02 22:15
硬件配置 FX1N-60MT 松下A4伺服 一个原点检测感应器
软件
m111上升沿SET m160  原点感应器X3OR m8148下降沿 RST M160
M160 OUT DDRVI D20 D24 Y1 M99
伺服电机只有一个运行方向,要求每次都能停止在原点位置
但是这个程序执行结果没吃都不能达到原点位置。经常要冲过原点位置才停止 这样造成每次停止的位置都不一样 ,
请各位大侠帮忙看看这个是什么问题造成的
怎么样解决这个问题!
dylan0719
级别: 家园常客
精华主题: 0
发帖数量: 60 个
工控威望: 759 点
下载积分: 3004 分
在线时间: 34(小时)
注册时间: 2010-07-20
最后登录: 2015-09-05
查看dylan0719的 主题 / 回贴
1楼  发表于: 2012-05-02 23:11
在三菱FX的编程指令里,和你说的原点感应器相关的指令应该是ZRN(回原点)指令,在这条指令里,传感器其实是一个近点开关,而不是原点开关,ZRN指令执行后,PLC输出脉冲,近点开关ON后,马达开始减速,近点开关有ON到OFF后,脉冲输出停止。
不管是ZRN也好,还是DRVA  DRVI,在使用过程中都会由一个问题:PLC的定位定位曲线为梯形曲线,当控制一个步进马达时,由于惯性以及加减速时间设置的不当,都有可能造成丢步或者是过冲。尤其是用ZRN指令控制一个步进马达回原点时,速度设定快一点,马达过了近点感应器一段距离才能停下;速度慢一点,情况会好一点。总之不能满足我们的要求。这是顽症,很难解决。
dylan0719
级别: 家园常客
精华主题: 0
发帖数量: 60 个
工控威望: 759 点
下载积分: 3004 分
在线时间: 34(小时)
注册时间: 2010-07-20
最后登录: 2015-09-05
查看dylan0719的 主题 / 回贴
2楼  发表于: 2012-05-03 23:29
引用
引用第3楼fuyuesong123于2012-05-03 08:48发表的  :
谢谢1楼的详细回答,我的控制思路是这样的让PLC发送脉冲数大于一周,然后执行机构在旋转过一周时会经过这个检测原点的感应器然后就复位脉冲输出的执行条件从而停止脉冲输出~

你的停止方式是急停,而不是曲线控制,马达没有减速过程,由于惯性的影响,难免出现误差,并且复位用的传感器多少都存在一定的误差,可能反应快一点,也可能反应慢一点,这样每次走的脉冲数都不一样了,根本就没有用到脉冲精确定位的功能。
你应该用DRVI(相对定位指令)(相当于JOG运行)驱动马达走一圈,计算一下马达走一圈需要多少个脉冲(也可以通过计算得到),然后在实际的定位控制中采用DRVA指令,让你的马达每一次都走固定的你计算所得到的脉冲数,这样就能达到你的要求了。