Jump to content
OMRON Forums

Using PPMAC as a position tracking device


iclim
 Share

Recommended Posts

Hello,

 

I would like to write a program which writes directly to the memory address for the position target of a co ordinate system. Is there a means to do this rather than performing a move through a single line motion program?

 

The reason behind this is that we want to use the PPMAC to track a position target which is sent over the network.

 

To perform this I would like to setup a TCP/IP server on the PPMAC which receives a position target from a client and then updates the memory address containing the position target.

 

Also if someone else has done this before and has example code they want to share, that would also be greatly appreciated.

 

Thanks

Choon

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Hi,

 

You could write your desired position to Motor[x].ProgJogPos and then jog the motor to it with #xj=*, where x is the motor number.

 

You could do this a much more complicated way with position following by slaving your physical motor to a virtual motor, jog the virtual motor, and have the slave follow the virtual motor's desired position as its master position. I can describe that if need be.

Link to comment
Share on other sites

There are many ways to do this in Power PMAC. It depends on the type of application.

 

You can turn master following on, and write directly into the master position Motor[].MasterPos.

Another way is to repeatedly issue JOG = * commands to specific variable destinations, and write those to Motor[].ProgJogPos.

 

But in general, if you want smooth continuous motion, you do want to take advantage of the motion programs' features.

 

For Telescope type of tracking applications for example, using an endless while loop in a motion program is very effective and provides a lot of flexibility. You may want to test for best acceleration times and feedrate for your system. This could all be figured out based on the update frequency of the target position.

 

GLOBAL TrackPos = 0;

OPEN PROG 1
ABS         // Absolute Mode    
LINEAR      // Linear Moves       
TA 20       // Accel Time
TS 10       // S-Curve Time
F  50       // Feedrate [deg/sec] 
DWELL 0     // Dwell 0 msec

WHILE (1 > 0)
{
   A(TrackPos)    
} 
CLOSE

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...