Skip to main content
Submitted by pallen on Mon, 11/07/2005 - 14:49

I'm trying to poll my controller (DMC 1822) to find out when I've completed a motion. (ie. stopped moving)

I am using Labview to send commands to the controller. But basically it's the same as using the Smart Terminal.

For some reason AM and MC commands completely crash this controller, requiring a reboot. The manual says, "_BGx contains a 0 if motion is complete." However I can't figure out how to enter "_BGx" or anything similar into the Smart Terminal and have it recognize it.

I tried BG=? But that seems to always equal zero.

Is there a command I can that will tell me if motion is complete?

Comments 7

ChrisC on 11/07/2005 - 15:10

MG _BGX

(for the X axis)

pallen on 11/08/2005 - 06:44

Thanks very much for the reply Chris.

But now I'm not sure if this is going to work for me.

I'm using the VP command to enter a very long series of X,Y points into the controller. So my move is not considered "complete" until I give the VE command. Even if there is no movement. I'm trying to avoid giving the VE command because after that, any further X,Y points are now offset.

Is there another way I can monitor the motion of the motors to know when reached my last X-Y point and the motion has stopped?

ChrisC on 11/08/2005 - 10:19

I'm not totally clear.

If you don't issue VE and the controller reaches the last segment, the axes will jerk to a halt (infinite deceleration). This is usually not desirable.

Here are some commands you can play with (use MG to print):

_VM gives the commanded vector velocity
_CS is the segment counter
_AVS gives the arc length traversed
_LE gives total arc length
_LM gives space left in the buffer
_VP gives the coordinates of the last point reached
_BGS says when the path is done (but requires VE)

pallen on 11/08/2005 - 11:16

Thanks again for your response Chris.

I must apologize for my ignorance. I'm very new to both Galil controllers and programing for stepper motors in general. The current project I'm working on has a very "results" based time schedule, so I've not had the luxury of reading all the manuals cover to cover. It's also been a "pick up and continue" where the last developer left off, and perhaps there are some fundamental problems I need to address.

My application uses text files generated by another program as X-Y co-ordinates. Each file has up to 5000 "points" and there can be several files to make up the moves for one "part". The application that generates the co-ordinates does not filter out duplicates, so occasionally several X-Y positions of the same value are "fed" in as commands.

I've tried sending the co-ordinates as a series of absolute positions.(PA) But this made for very jerky motion and loud motor operation. So now I'm sending speed information first, followed by a VP command to the first position, then a BGS. Once the motor reaches the first position, I slow the speed and begin sending the rest of the 10,000 or so points as VP commands. I check the buffer after each VP command and wait a few milliseconds before checking again if it's full.

From your post, I should be issuing a VE command after I give the location of my first position so that proper deceleration occurs before the direction and speed change. The problem I have with doing that is after a VE command, all of my positional information would now be offset. The very next point I moved to would be relative to position the motors were in when I issued the VE command. Not relative to my "Home" position.

Is there a way to overcome this problem?

Perhaps vector position is not the ideal command for this case. I'd be very interested in how others would approach this problem.

ChrisC on 11/08/2005 - 11:36

VE should be given after the LAST point (point number 10,000), not the first point.

It is best (but not required) to remove duplicate points before sending to the controller. Be aware that sending a duplicate will cause the following error:

?30 Sequence segment too short.

PA is not ideal for coordinated multiaxis motion because the axes won't arrive at the destination at the same time unless you take care to use the proper speed, acceleration, and deceleration for each axis.

I think vector mode is appropriate for your application.

Please call me at 800-377-6329 if you have further questions.

FValenzuela on 12/13/2017 - 14:03

Why can't I read this forum?

andriys on 12/21/2017 - 16:23

Hello FValenzuela,

You should be able to see this post now.
Do you have specific questions you want to ask?
Thank you,
Andriy Stasyuk
Applications Engineer
Galil Motion Control