Application Note

Transitioning from MicroLYNX

Description

When converting an application from MicroLYNX drives to Motion Control MForce drives, there are many considerations. These two systems have very similar stepper drive capabilities.  The MForce’s current capability is listed in RMS Amps while the MicroLYNX drive output currents were listed in Peak Amps.  As a result, the MForce MicroDrive’s three amps RMS is very close to the MicroLYNX 4’s four amps PEAK and the MForce PowerDrive’s five amps RMS is very close the MicroLYNX 7’s seven amps PEAK. Another thing to keep in mind is that while the MicroLYNX drives had short circuit protection on their phase outputs, the MForce drives do not.   Both drive systems have a default of 256 microsteps per full step. Thermal management is handled differently on the two systems.  The MicroLynx uses an onboard fan, while the MForce drives rely on an external heat sink.

Topics

  • MCode OS
  • System Upgrade

Applicable Product

  • MForce
  • Motion, Drives & Controllers

Requirements

  • MicroLYNX (All)
  • MForce Motion Control (All)

Resource Files

Details

Hardware differences

These two systems have very different hardware features and functions. For example, the MicroLYNX has expansion slots, and the MForce does not. These slots allow up to a total of 24 isolated digital IO. In the MForce Plus^2 version, there are eight digital 5-24 VDC IO which are non-isolated.

Hardware features not available in MForce

  • Analog Output
  • RS-232 and Host Mode
  • Differential Clock IO
  • Hardware Party Mode Addresses
  • Expansion IO Cards
  • Isolated Communications
  • Isolated Digital I/O

Software and programming differences

The two systems have very different software features and functions. MCode used in the MForce could be considered a sub-set of the MicroLYNX programming language. Reserved words, Label and Variable Names are typically two characters in the MCode programming language while much longer ones are possible in the MicroLYNX programming language. The MForce calculates a motion profile and begins a move in about 4 to 6 milliseconds while the MicroLYNX takes around 150 milliseconds to begin a move. (The exception being stored relative moves.)

Hardware features not available in MForce

  • Floating Point Math
  • Trig Functions and Square Root
  • User Units
  • S Profile Motion
  • Settable Accel/Decel Current
  • Backlash Compensation Mode
  • Background Program Execution

To summarize, application requirements should be closely examined when considering this course of action. Please feel free to contact Technical Support with any questions you may have regarding any particular application.

Specification comparison

Note: This comparison reflects the base MicroLYNX product without the addition of expansion modules

Spec MicroLYNX MForce
Input Voltage [VDC] MicroLYNX-4 12 … 48 MicroDrive 12 … 48
MicroLYNX-7 12 … 75 PowerDrive 12 … 75
Current [A RMS/PEAK] MicroLYNX-4 2.8/4.0 MicroDrive 3.0/4.2
MicroLYNX-7 5.0/7.0 PowerDrive 5.0/7.0
I/O points 6 (Isolated) 4 or 8 Non/Isolated
Input Voltage [+VDC] 5 … 24 5 … 24
Input interface Sinking Sink or Source
Analog input Expansion module required 1 (10-bit)
Communication RS-232 and RS-422/485 RS-422/485
Connectivity Locking wire crimp/IDC 12-position locking wire crimp (power and IO) 4-position locking wire crimp*
Run/hold current Software commands Software commands
Microstep resolution Half step to 256 µsteps/step Full step to 256 µsteps/step

Programming

Converting a MicroLYNX program to MCode

The MicroLYNX programming language has numerous features and levels of functionality which are unavailable in the MCode 2-character mnemonic structure of MCode. However, there are workarounds which allow for most MicroLYNX programs to be converted into MCode programs for the MFoce products and operate accordingly. For purposes of this application note we will convert, step-by-step, this example MicroLYNX program to an MCode program that will mirror the operation: MicroLYNX – Feed and cut

Step 1: Convert setup parameters

This program uses the MicroLYNX user unit scaling factor, which is not available in MCode. However, a user variable may be used to emulate this feature. Be advised that the MForce does not have the capability of performing floating point math, and will always round down the results of math functions to an integer. Other issues impacting the parameters is the Variable naming conventions. Where MicroLYNX allows for descriptive user variable and label names, MCode labels and variables are character limited, and naming conventions that avoid conflict with MCode mnemonic commands should be used.

MicroLYNX MCode Comment
System Variables – user variable Uu to emulate MUNIT
MUNIT = 51200 Uu = 51200 One inch per rev @ 1/256 ustep
VI = 0.5 VI = Uu/2 Base speed 1/2 inch/sec
VM = 10 VM = Uu*10 Slew speed 2 inch/sec
ACCL = 20 A = Uu*20 Accl = decl = 20 in/sec^2
DECL = 20 D = A
Set up I/O
IOS 21 = 0,0,0 S1=0,0,0 Material Sensor: general purpose input, active low
IOS 23 = 9,0,0 S2=4,0,0 Input point is a Sart input
IOS 24 = 10,0,0 S3=5,0,0 Input point is a Stop input
IOS 31 = 0,1,0 S4=16,1,0 Cutter output: GP, output, low true
User variables
VAR Feedlth Va Q1 Variable for feed length entry
VAR TargetCt = 0 Va Q 2= 0 Variable for target count entry
VAR Count = 0 Va Q3 = 0 Variable for actual completed count
VAR Matsens = 21 Not used – in MCode and I/O point cannot be a named user variable
VAR Cutter = 31

Step 2: Convert program As with the user setup variables, the program label names in MicroLYNX are descriptive where in MCode they have to follow the same rules as variables.

MicroLYNX MCode Comment
PGM 1 PG 1 Enter program mode at line 1
LBL FEEDCUT1 LB Z1 Enter the feed length variable in inches In MCode, an IV command must have a loop routine to follow it until the IF flag, input variable pending flag is cleared.
PRINT “Enter Feed Length “; PR “Enter Feed Length “;
INPUT Feedlth IV Q1 LB X1 BR X1, If
LBL Enterct LB Z2 Enter the total count of parts desired. Loop to beginning while the target count variable is less than or equal to 0
PRINT “Enter Total Parts Count “; PR “Enter Total Parts Count “;
INPUT Targetct IV Q2 LB X2 BR X2, If
BR Enterct, Targetct <= 0 BR Z2, Q2 <= 0
LBL Mainloop LB Z3
BR Webdone, ! IO Matsens BR Z1, I1 = 0 IO detects system out of material
MOVR Feedlth MR Q1 * Uu Feed the material
HOLD 2 H
IO Cutter = 1 O4=1 Turn on the Cutter output for 100 msec
DELAY 100 H 100
IO Cutter = 0 O4 = 0 Turn off the Cutter output
INC Count IC Q3 Increment partsd count
PRINT “Parts Made “, Count PR “Parts Made “, Q3 Pring parts count
PRINT PR
BR Mainloop, Count < TargetCt BR Z4, I1 = 1 BR Z3, Q3 < Q2 Check to see if material is present before continueing
PRINT “Batch Complete” PR “Batch Complete”
PRINT Count, ” Parts Made” PR Q3, ” Parts Made”
BR Alldone BR Z5
LBL Webdone LB Z4 Error routine for batch interrupted by material running out.
PRINT “BATCH INTERRUPTED” PR “BATCH INTERRUPTED.”
PRINT Count, ” Parts Made” PRINT Q3, ” Parts Made”
PRINT “Out of Material” PR “Out of Material”
LBL Alldone LB Z5
END E
PGM PG