今天用通讯控制伺服遇到的问题 点击:648 | 回复:2



liujian5118-PLC技术军团

    
  • 精华:2帖
  • 求助:8帖
  • 帖子:31帖 | 3109回
  • 年度积分:199
  • 历史总积分:19924
  • 注册:2009年3月25日
发表于:2014-12-30 22:40:53
楼主

今天要用通讯来控制台达A2伺服作位置控制,以前用PLC做过AB系列的;没有多想,使用以前的经验;

采用内部速度模式,使用通讯来改变寄存器值,来控制速度;

设定通讯格式 Modbus ASCII 9600,7,e,1,通讯地址 1:

   Servo DI寄存器地址  0214H,速度设定寄存器 0114H;

先下 “:010602140001+LRC+CRLF”

伺服Servo ON ,转速200RPM(寄存器原数值);

再下":011001140002040BB80000+LRC+CRLF“

写入双字速度,可是伺服速度没有改变,而且伺服也没有回馈,开始以为LRC算错,于是手算了次,没错;后面又想单字写入":010601140BB8+LRC+CRLF”伺服回传通讯错误,由于急用,于是改变方法;

采用三组内部寄存器速度,通过通讯修改DI,来定义SP0,SP1的逻辑,现将设定三个寄存器速度分别为100RPM,200RPM,300RPM;设定0216H,0218H来设定SP0,SP1;

下指令"010602160014+LRC+CRLF","010602180115+LRC+CRLF";转速100RPM;

下指令"010602160114+LRC+CRLF","010602180015+LRC+CRLF";转速200RPM;

下指令"010602160014+LRC+CRLF","010602180015+LRC+CRLF";转速300RPM;

此方法可以实现我的需要;

反过来回去想,原来方案为什么以前在AB上可以使用,于是用Bushound监控串口,再使用双字写指令测试;发送指令没有问题,可是没有回传,惊奇的发现,双字指令居然使用了2s完成。。。。。。让我想到个重要参数,通讯超时100ms,决定,将通讯波特率调整试试,果断改成38400,下指令,居然伺服有回传了,速度也给改变了!




江湖走走--原创军团

  • [版主]
  • 精华:30帖
  • 求助:7帖
  • 帖子:836帖 | 7833回
  • 年度积分:193
  • 历史总积分:46108
  • 注册:2001年2月15日
发表于:2014-12-31 14:54:23
1楼

谢谢分享!                        

dajian4631

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 47回
  • 年度积分:0
  • 历史总积分:246
  • 注册:2011年11月09日
发表于:2015-01-12 22:43:53
2楼

谢谢 分享!!!谢谢 分享!!!


热门招聘
相关主题

官方公众号

智造工程师