刘工:Gaili串口发送程序文件问题 点击:443 | 回复:1



燕赵飞歌

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:5帖 | 15回
  • 年度积分:3
  • 历史总积分:74
  • 注册:2013年4月08日
发表于:2016-05-19 17:06:21
楼主
求助帖10分-已结帖

刘工您好:

    我现在用Galil 2143卡进行控制,我采用的是串口操作,直接发送控制指令。现在的问题是我需要发送一段程序down到控制卡,用串口发送总是有问题,尤其是程序中有#Loop 循环时 总没法执行。

例如一段:

#G01;ST;#LOOP1;PRX=2;BGX;AMX;JP#LOOP1;EN;

使用串口发送到运动控制卡后,执行XQ#G01 总是无法执行

您看看是哪里的问题?

串口都是正确的 我执行其他的指令运动都没有问题,只有在下发程序段有问题。谢谢啊!




刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:17帖 | 8240回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2016-05-20 09:35:20
1楼

这个不知道你的串口发送有没有问题,但是你的程序肯定有问题。

 

1、程序本身是分行的,每行必须是以回车为结束。

2、一行中可以包括多个以分号隔开的指令,但是每行最后一个指令后面不能有分号

3、每行的长度有限,对于2143来说,每行最多80个字符(包含最后的回车)

4、标号必须在行首。

 

您的程序只写了一行,单就这一点到无所谓,反正也不长。但是最后还有分号,中间还有标号(#LOOP1),这样就有问题了。

 

另外,在格式上修改正确之后,程序的控制流程还有点问题。

ST指令之后,就要执行PRX=2。建议在ST后面插入AM。ST是停止命令,是让电机开始减速停止,而减速停止本身是一个过程,是需要一定时间的。在这个过程没有结束前,PRX=2指令会出错。而程序中从ST到PRX=2中间只有一个标号,执行起来基本没有延时,除非X轴原本就不是在运动中,否则应该会出错。

 


热门招聘
相关主题

官方公众号

智造工程师