| |
| |
|
MicroLYNX
MicroLYNX Sample Code Index
MicroLYNX Software Reference
Interactive Tutorials cover the installation, configuration and use of IMS Terminal Software used with MicroLYNX and MDrivePlus Motion Control; also installation of the IMS USB Converter Cables.
| |
Sequential Axis Control |
The MicroLYNX is a versatile motion controller capable of controlling multiple axes sequentially, not to mention other modes of operation like following and ratio which we are not going to cover here. So, what does the word "sequentially" mean? What applications would we use it for? How does it work?
Let's first clarify the word "sequential". To do this I turn to the trusted but much forgotten Webster's Dictionary. The entry under "sequential" states "a number of connected events done in order". This applies to the MicroLYNX as well—first one axis will move, then the other. It is important to note that the individual axes DO NOT have to have the identical velocity profiles. This is left up to the discretion of the programmer and what the system requirements are.
A typical sequential application would be if the user wants to fill a waffle grid with a dispensing head by first going to each position on the X axis, then moving one row on the Y axis, and again going to each position on the X axis. This type of application happens all the time where the customer needs two axes of motion but does not need the complexity of a high-end, expensive Controller. Note that the MicroLYNX was not intended for circular or linear interpolation, nor are these applications recommended.
To describe how the MicroLYNX controls multiple axes sequentially, I want to first give a quick description of how the system is configured. Let's go back to the above example to describe a known system. The X axis will be driven by the on-board driver of the MicroLYNX. The Y axis will be driven by a High Speed expansion module on the MicroLYNX with Step/Direction outputs to an external driver, let's say an IM483. Remember, the controller on-board of the MicroLYNX will control the motion of both axes. The MicroLYNX has up to three different clock pairs available: clock one sending step/direction to the on-board driver, and in this application, clock two sending step/direction out the High Speed expansion module to the external driver. (The third clock is not used here.) Using the IOS command the MicroLYNX allows the programmer to easily enable or disable whichever clock pair they want. So, while the system is indexing to each position on the X axis, only clock one is enabled. When the system reaches the end of this row and needs to move the Y axis over, you simply disable the X axis and enable the Y axis. Once the dispensing head moves one row over, the Y axis is disabled and the X axis is enabled allowing the next row to be filled.
It really is quite simple to enable/disable the desired axes. The following examples demonstrate how a programmer would sequentially home multiple axes using the MicroLYNX.
EXAMPLE 1
Note: Setup assumes user is using clock pairs one and two.
|
'*** Setup ***
IOS 11 = 1,1,1,0,2,0 'set direction for axis one
IOS 12 = 2,1,1,0,2,0 'set step for axis one
IOS 13 = 3,1,1,0,2,0 'set direction for axis two
IOS 14 = 4,1,1,0,2,0 'set step for axis two
IOS 21 = 0,0,0,0,0,0 'set I/O 21 for home input, axis one
IOS 25 = 0,0,0,0,0,0 'set I/O 25 for home input, axis two
'*** Main program ***
PGM 10 'enter program at address 10
LBL test 'define user label
CALL home1 'call subroutine, home1
CALL home2 'call subroutine, home2
PRINT "Homing complete" 'print to serial port
END 'end of main program
'*** Axis one Home subroutine ***
LBL home1 'define user label
IOS 12 = 2 'enable clock for axis one
IOS 14 = 0 'disable clock for axis two
FIOS -8000,+3000,21 'find home input, I/O 21
HOLD 2 'hold program until Home routine is complete
RET 'return to main program
'*** Axis two Home subroutine ***
LBL home2 'define user label
IOS 12 = 0 'disable clock for axis one
IOS 14 = 4 'enable clock for axis two
FIOS -8000,+3000,25 'find home input
HOLD 2 'hold program until Home routine is complete
RET 'return to main program
PGM 'exit program mode |
EXAMPLE 2
Note: Setup assumes user is using clock pairs one and two.
|
'*** Setup ***
IOS 11 = 1,1,1,0,2,0 'set direction for axis one
IOS 12 = 2,1,1,0,2,0 'set step for axis one
IOS 13 = 3,1,1,0,2,0 'set direction for axis two
IOS 14 = 4,1,1,0,2,0 'set step for axis two
'*** Main program ***
PGM 10 'enter program at address 10
LBL test 'define user label
CALL move1 'call subroutine, move1
CALL move2 'call subroutine, move2
PRINT "Moved both axis" 'print to serial port
END 'end of main program
'*** This subroutine moves axis 1 ***
LBL move1 'define user label
IOS 12 = 2 'enable clock for axis one
IOS 14 = 0 'disable clock for axis two
MOVR 50000 'move 50000 munits
HOLD 2 'hold program until move is complete
RET 'return to main program
'*** This subroutine moves axis 2 ***
LBL move2 'define user label
IOS 12 = 0 'disable clock for axis one
IOS 14 = 4 'enable clock for axis two
MOVR 50000 'move 50000 munits
HOLD 2 'hold program until move is complete
RET 'return to main program
PGM 'exit program mode
|
|
|
|