This warranty is in lieu of all other warranties, expressed or implied, including any implied warranty of merchantability or fitness for a particular use. Newport Corporation shall not be liable for any indirect, special, or consequential damages. No part of this manual may be reproduced or copied without the prior written approval of Newport Corporation.
Page 8
EN50082-2 “Residential, Commercial and Light Industry” and per IEC 1000-4-5 “Surge Immunity” Standard. Newport Corporation shall not be liable for damages when using the product: • Modification of the product. • Using modified connector, or modified or not supplied cables.
• Do not make any modifications or parts substitutions to the equipment. • Return the equipment to Newport for any service and repair needs. • Do not touch, directly or with other objects, live circuits inside the unit.
Page 15
MM4005 Introduction WARNING All attachment plug receptacles in the vicinity of this unit are to be of the grounding type and properly polarized. Contact your electrician to check your receptacles. CAUTION This product is equipped with a 3-wire grounding type plug. Any inter- ruption of the grounding connection can create an electric shock hazard.
MM4005 Introduction Conventions and Definitions 1.2.1 Symbols and Definitions The following are definitions of safety and general symbols used on equip- ment or in this manual. Chassis Ground. Indicates a connection to the equipment chassis which includes all exposed metal structure.
1.2.2.16 Stage The most common type of motion device for the MM4005, used inter- changeably in this manual for rotary and linear positioners. EDH0162En1040 – 06/99 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Using other motion devices is possible but not recommended for optimal system performance. Fig. 1.1 shows a minimal system configuration. The MM4005 is used as a stand-alone unit to control and drive a motion device. The only compo- nents needed are a motion device, a connecting cable, the MM4005 and a power cord.
Page 19
MM4005 Introduction A more common setup is shown in Fig. 1.2. The MM4005 drives multiple stages and is controlled by a remote computer. Fig. 1.2 — A common controller setup. A more complex configuration, shown in Fig. 1.3 , could have up to 4 motion devices, digital and analog I/O signaling for motion synchronization, remote safety “motor off”...
MM4005 Introduction 1.3.1 Features Many advanced features make the MM4005 the preferred choice for preci- sion applications: • Integrated controller and driver design is more cost effective and a space saving solution. • Compact, rack-mountable or bench-top enclosure. • Allows any combination of motor types (stepper and DC) and sizes.
Page 21
MM4005 Introduction 1.3.2.8 Computer interfaces • RS-232-C. • IEEE-488. 1.3.2.9 Utility interface • 8-bit opto-coupled digital inputs. • 8-bit open-collector digital outputs. • 4 analog inputs, 12-bits resolution programmable input range (0-5 V, 0-10 V, ±5 V, ±10 V). • External Synchronisation Pulse Output from position acquisition.
Modes of Operation 1.3.3.1 LOCAL Mode In LOCAL mode, the MM4005 is operated through the keys on the front panel. The display and function keys allow the selection of menus and operations that can be performed without using an external computer.
Page 23
(RS-232-C or IEEE-488) to a computer or terminal. In this mode, all commands are received remotely and the controller executes them as directed. The MM4005 command language consists of 129 commands which are described in chapter 3.
GPIO Connector This 37-pin D-Sub connector is used for general purpose digital Input/Output signals. The MM4005 offers two separate 8-bit digital ports, one for input and one for output. A variety of commands are available for control and interface using these ports from within a motion program.
Page 25
NOTE The MM4005 senses the line voltage and automatically switches between 110 V and 220 V operation. The acceptable voltage ranges are 95 to 32 V or 195 to 263 V at 48 to 63 Hz.
Line Keys Column Column Column Fig. 1.7 — MM4005 front panel. 1.3.5.1 Power Stand-by Use this button for your everyday controller power ON/OFF switching. Power is switched through a relay, not directly as it is through the main power switch on the rear panel. For this reason, a low power, low voltage (12V) auxiliary power supply is always on when the main power switch in the back is ON.
MM4005 Introduction 1.3.5.3 Numeric Keypad On the right hand side of the front panel there is a 12-button numeric key- pad. Depending on the mode the controller is in, this keypad can be used for numerical data entry or controlling the manual JOG mode.
Page 28
MM4005 Introduction 1.3.6.2 Menu Structure A wide range of functions can be performed from the front panel. To fully explore its capabilities, carefully read Section 2, Local Mode, and experi- ment with the controller. This paragraph gives only a brief introductory description of the menu structure.
MM4005 Introduction M Appears when the mechanical origin switch is in “high” state. As a stage moves from one end of travel to the other, you will see this indicator appear and disappear. This means that the stage has moved from one side of the switch to the other.
Page 30
MM4005 Introduction 1 0 0 8 0 P P 5 0 C 1 6 0 P P 0 . E T U P A X E G E N . Fig. 1.10 — Top level menu. SETUP Note the changes in the first four lines on the display. The axs positions have been replaced by the motion device types the controller thinks are connect- ed to it.
MM4005 Introduction System Setup This section covers motion control system set up and preparing use it. First all necessary cables must be connected and the controller must be properly configured. This set up procedure configures a minimal system, similar to Fig. 1.11.
The red LED goes off and the green one comes on, the front panel display turns dark blue and the controller makes a slight ticking sound. This is nor- mal. After a short delay, a welcome screen with the Newport logo flashes for a few seconds, showing you the firmware version in use. NOTE Any time you call for technical support, the firmware version is one piece of information you need to supply.
MM4005 Introduction Now, the display shows the main power off menu, similar to Fig. 1.12. 0 . 0 0 . 0 0 0 D e g 0 . 0 0 c o n n e c t l e c a c t i o n P R O G .
Page 34
MM4005 Introduction If the components listed match with the actual motion devices installed, you are ready for the first motion test. On the other hand, if there is a discrepancy, it must be corrected immedi- ately. In this case, you should perform the following steps:...
Page 35
MM4005 Introduction 12 When all necessary modifications are completed, from the screen shown in Fig. 1.14, press the key. If modifications to any axis QUIT have been made, the next screen will ask if you want to save the changes (Fig. 1.15).
Page 38
MM4005 4-Axis Motion Controller/Driver Table of Contents Section 2 — Mode local 2.1 Quick Start .....................2.3 2.1.1 Motor On ..................2.3 2.1.2 Home Motion Devices..............2.4 2.1.3 First Jog ..................2.4 2.1.4 First Move ..................2.5 2.2 Controller Configuration ..............2.7 2.2.1 General Setup ................2.7 Language Selection ..............2.8...
Table of Contents — Section 2 Maximum Position ..............2.25 HOME Preset................2.25 Kp ....................2.26 Ki ....................2.26 Kd ....................2.27 Ks....................2.27 Maximum Error................2.28 Backlash ..................2.28 Display Resolution ..............2.29 2.3 Operating In Local Mode ..............2.29 2.3.1 HOME Search ................2.30 2.3.2 Manual Jog .................2.30 2.3.3 Zero Display ................2.32 2.3.4 Relative Moves................2.32 Single Axis Relative Move............2.33 Multiple Axes Relative Move............2.34...
MM4005 4-Axis Motion Controller/Driver Section 2 Local Mode Quick Start After reading the Introduction Section you are now prepared to turn the motors on and command the stages to execute motions. The following paragraphs will guide you through a quick tour of the LOCAL mode motion commands.
MM4005 Local Mode 2.1.2 Home Motion Devices As a general practice, before executing any motion, always home the motion devices. As described in detail in the Motion Control Tutorial sec- tion, homing a motion device means executing a special routine that locates a dedicated origin switch and an encoder index pulse and establish- es an absolute position zero.
MM4005 Local Mode Fig. 2.2 — The columns of the numeric keypad indicate the direction and speed of a JOG. If a key in column is pressed, the selected axes will move slowly in the negative direction. If a key in column is pressed, the selected axes will move slowly in the positive direction.
Page 43
MM4005 Local Mode If there is more than one axis connected to the system, the symbol now jumps to the next axis position displayed. Repeat the desired destination entry procedure or press until all connected axes have been confirmed and...
The first aspect is the controller configuration. Though some parameters can also be changed with remote commands, the primary environment for configuring the MM4005 controller is the SETUP section of the LOCAL mode. The SETUP mode can only be initiated from the top level MOTOR...
Page 45
This sets the language the controller uses to communicate with the operator, especially through the front panel. The MM4005 can use two languages at this time: English and French. To change the language, from the display shown in Fig. 2.5 press the MODIFY key.
Page 46
MM4005 Local Mode 2.2.1.2 Emergency Language Reset In case the controller has been set to operate in a language you do not understand, use the following procedure to reset the controller: 1 Assume the following labeling convention for the function keys:...
Page 47
MM4005 Local Mode 2.2.1.5 Communication Time-out This parameter represents the time duration the controller will wait when expecting an input. It is a general communication parameter that applies to both RS-232-C and IEEE-488 interfaces. To change the existing value, from the General Setup menu, press until the parameter appears on the display.
Page 48
This setting selects the communication port to be used with a host comput- er. The MM4005 controller can use either the RS-232 or IEEE-488 interface but only one at a time. The selection can be made only through this setup.
Page 49
MM4005 Local Mode 2.2.1.9 IEEE-488 Address The IEEE-488 standard requires each connected instrument (device) to have an address. Even if the IEEE port is not selected, the controller will prompt you for an address. If not used, ignore the selection by pressing the key and advancing to the next parameter.
Page 50
MM4005 Local Mode Axis 1 . 3 5 Motor OFF SETUP GEN. MODIFY Axis 2 . 3 4 5 D e g 2 . 3 4 c o n Axis 3 n e c t l e c a c t i o n...
Page 51
Word Length The word length refers to the word size to be used with the RS-232-C inter- face. The MM4005 controller is designed to accept either 7- or 8-bit words. The factory preset word size is 8 bits. If the RS-232-C is not used, ignore the selection by pressing the and advancing to the next parameter.
Page 52
MM4005 Local Mode Press again to display 2nd Axis HOME. Press MODIFY and then enter the desired order (priority) number on the keypad. Press the VALID key to accept the entry and return to the previous display. Axis 1 Axis 1 .
MM4005 Local Mode 2.2.1.18 Program Automatical Execution on Power On No program will be executed on power on. Press the key until the program number appears. Press MODIFY and then select the program number with the numeric keypad. To accept...
Page 54
Axis 4 2.2.2.2 Motion Device Selection One of the advanced features of the MM4005 controller is that it has stored in its firmware all necessary parameters for all compatible motion devices supplied by Newport. To avoid scrolling through over 100 components, the selection is made in two steps, first the family and then the component model.
Page 55
MM4005 Local Mode Axis 1 . 3 5 Axis Setup SELECT VALID VALID Axis 2 . 3 4 5 D e g 2 . 3 4 c o n Axis 3 n e c t l e c a c t i o n...
Page 56
2.2.2.6 HOME Type All standard motion devices offered with the MM4005 have an origin (home) switch and they can all perform a home search cycle. In cases where the controller is used with a device that does not have a home switch, the controller must know not to look for it.
Page 57
Local Mode 2.2.2.8 Control Loop The MM4005 controller has the capability to operate both DC and stepper motors in closed loop or open loop configurations. This is an important feature, especially for the stepper motors. As described in the tutorial sec- tion, when operating a stepper motor in a mini- or micro-stepping mode, the actual position can vary a few steps when under load.
Page 58
MM4005 Local Mode 2.2.2.10 Motor Increment This parameter is used only for stepper motors and tells the controller how much the motion device will travel for each motor increment. By increment we mean one pulse going to the stepper driver, not necessarily a full motor step.
Page 59
MM4005 Local Mode 2.2.2.12 Scaling Speed Scaling Speed is a hardware calibration parameter and is not intended to be used by the operator. It represents the approximate velocity the motion device will move if the maximum control voltage is sent to the driver (DC motor case).
Page 60
MM4005 Local Mode 2.2.2.14 Manual Speed This parameter defines the high velocity of the manual jog mode (using front panel or joystick). The default value is 50% of the Maximum Speed, but you can change it to suit your needs. The slow speed manual jog is one tenth of the high speed.
Page 61
MM4005 Local Mode 2.2.2.16 Acceleration This parameter defines the maximum acceleration/deceleration value to be allowed in all programmed or commanded point-to-point motions. No remote or local commanded acceleration can exceed this value. The only motion that is not affected by this setting is the home search routine which uses its own acceleration values.
Page 62
MM4005 Local Mode 2.2.2.18 Maximum Position This parameter defines the positive (usually right) software travel limit. No motion will be allowed to exceed this position in the positive direction. CAUTION Do not set a higher value for this than the default value, otherwise the hardware limit switch will be tripped.
Page 63
This parameter is the proportional gain factor of the digital PID filter. The valid range is between 0 and 1. All standard motion devices offered with the MM4005 have a set of conservative PID parameters stored in the con- troller’s firmware. To change them you will need some knowledge of motion control loops and the help of a software utility.
Page 64
This parameter is the derivative gain factor of the digital PID filter. The valid range is between 0 and 1. All standard motion devices offered with the MM4005 have a set of conservative PID parameters stored in the con- troller’s firmware. To change them you will need some knowledge of motion control loops and the help of a software utility.
Page 65
MM4005 Local Mode 2.2.2.24 Maximum Error This parameter represents the maximum allowed following error. If, at any time, the following error exceeds this value, the controller stops all motions in progress and turns the motor power off. Use good judgment when setting this parameter.
Operating in Local Mode In addition to the SETUP mode, the other two types of operations that can be performed from the front panel of the MM4005 controller are motion- related commands and creating or editing motion programs. The most common use of the Local Mode is to initiate motion and motion- related commands from the front panel.
This type of motion is known as a JOG. The MM4005 controller implements this function on the numeric keypad. The Manual Jog mode can be enabled either from the top level menu or using the Move menu. In both cases, the calling...
Page 68
MM4005 Local Mode Line number 5 indicates that the keypad can be used to initiate a manual jog. As described in paragraph 2.1.3 First Jog, each keypad row controls one axis. The keys on the left initiate a jog in the negative direction and the keys on the right in the positive direction.
MM4005 Local Mode NOTE If both – and + appear, the motion device is ether disconnected or a hardware failure exists. On power-up sequence, the controller checks every axis for this case. If found, it assumes that no motion device is pre- sent.
MM4005 Local Mode ber of times to repeat program execution. Enter the desired number on the keypad and press VALID The next menu confirms your choice to execute the selected program the specified number of times or allows you to exit without execution by press- ing the key.
QUIT Programming in Local Mode The MM4005 controller allows the user to create and edit programs from the front panel. This makes it a true stand-alone unit, capable of executing most motion and motion-related functions without the help of an external computer.
For this reason, to create a program in local mode we need a way to enter alpha-numeric commands from the front panel. Since the number of keys available on the front panel is limited, the MM4005 controller uses a special convention to enter motion program commands. Taking advantage of the context-sensitive menus, commands are assigned to function keys and numerical values are entered on the numerical keypad.
MM4005 Local Mode tic to remember is that it responds to command lines. This means that, when commands are entered, they will be placed on the same command line until the line is terminated. NOTE The controller is always able to create, store or modify programs for all four axes, even if all axes are not installed.
Page 77
MM4005 Local Mode Start an absolute point-to-point motion. ABSOL. When this key is pressed, the controller asks for the axis number the motion is to be performed on. Use the keypad to enter a valid axis number. If 0 is entered, the controller will assume that you want to perform a simul- taneous motion on all axis.
Page 78
MM4005 Local Mode Perform a home search sequence. HOME Use this function to initiate a home search sequence on one or all axes. Press or enter a 0 for all axes or select an axis number on the key- VALID pad.
MM4005 Local Mode Set a bit on the I/O output port. OUTPUT This function will generate a command that sets an I/O output bit to a spec- ified state. Use the numeric keypad to enter a number between 1 and 8 to...
MM4005 Local Mode With the functions described up to this point we can create a simplified flowchart of the Program Creation menu (Fig. 2.12). PROG. Program Management Menu CREATE MODIFY QUIT Program Creation Menu LINE WHILE QUIT Line Entry Menu Loop Type ABSOL.
Page 81
MM4005 Local Mode There are more than three possible options in the Program Editing mode, thus the need again to split the functions in a number of screens: DOWN NEXT FIRST LAST NEXT INSERT DELETE QUIT NEXT This menu level is the Program Editing menu.
3.1.0 Selecting the Interface The MM4005 controller is equipped with RS-232-C and IEEE-488 interfaces. Selecting the interface and setting the parameters is done through the General SETUP menu on the front panel.
3.1.2.1 Hardware Configuration The IEEE-488 interface has a well defined hardware configuration. The MM4005 conforms to the standard so you simply need to connect the prop- er cable to the clearly identified connector on the back panel. 3.1.2.2 Communication Protocol The IEEE-488 interface is implemented on the MM4005 somewhat different- ly than on a typical instrument.
Newport MM4005 Controller. It offers the possibility to change communication configuration, and send commands to the con- troller directly, or since a file or a file containing a MM4005 program. EDH0162En1040 – 06/99 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
3.3.0.1 RS-232-C or IEEE-488? The MM4005 always listens to one of the two remote interfaces but never to both in the same time. This is done to avoid potential conflicts that could occur if two computers are trying to control a motion device at the same time.
MM4005 Remote Mode 3.3.1 Command Syntax 3.3.1.1 Command Format xx — Optional or required preceding. AA — Command code. nn — Parameter can be represented by: • A value; • An interrogation "?" (for certains commands); • A variable: $Ypp or $Saa (for certains commands).
Remote Mode Command Summary The MM4005 controller understands 194 commands. The following two tables list them all, sorted first by category and then in alphabetical order. The tables also show the modes in which each command can be used. The...
MM4005 Remote Mode Command Description IMM PGM MIP 3.4.1.4 Special motion parameters xx DM Read manual velocity xx DO Read home search velocity xx MH nn Set manual velocity xx OA nn Set home search acceleration xx OH nn Set home search high velocity...
MM4005 Remote Mode Command Description IMM PGM MIP 3.4.1.8 I/O functions xx AM nn Set analog input mode [xx] CB [nn] Clear I/O outputs bits FT nn Set output frequency [xx] RA Read analog input [xx] RB Read I/O input...
MM4005 Remote Mode Command Description IMM PGM MIP 3.4.1.11 Variable Manipulation xx AS nn Affect string xx CS nn Concatenate two strings xx TY Read a variable xx YA [nn] Add to variable xx YB Negate variable xx YC nn...
MM4005 Remote Mode Command Description IMM PGM MIP 3.4.1.15 Commands to execute a trajectory Execution of trajectory VS nn Define the vector acceleration on trajectory (trajectory acceleration) VV nn Define the vector velocity on trajectory (trajectory velocity) WI nn Wait for a trajectory (curvi-linear) length...
MM4005 Remote Mode 3.4.2 Command List — Alphabetical Command Description IMM PGM MIP Abort motion xx AC nn Set acceleration AD nn Define the maximum allowed angle of discontinuity xx AM nn Set analog input mode Abort program xx AQ nn...
Page 97
MM4005 Remote Mode Command Description IMM PGM MIP [xx] MF Motor OFF xx MH nn Set manual velocity Set local mode Motor ON Download EEPROM to RAM Set remote mode [xx] MS Read motor status xx MT nn Move to travel limit switch...
Page 98
MM4005 Remote Mode Command Description IMM PGM MIP Read error code xx TF Read filter parameters [xx] TG [nn] Toggle I/O output bits [xx] TH Read theoretical position xx TL Read left travel limit xx TM nn Set trace mode...
Page 99
MM4005 Remote Mode Command Description IMM PGM MIP xx YG [nn] If variable is greater xx YK Read key to variable xx YL [nn] If variable is less xx YM nn Multiply variables xx YN [nn] If variable is different...
Page 100
AC — Set acceleration MM4005 Usage Syntax xxACnn Parameters Description xx [int] — Axis number. nn [float] — Acceleration value. Range — 1 to 4. — 10 to the programmed value in SETUP mode. Units — None. — preset units in SETUP mode/sec Defaults Missing: Error B.
Page 101
AD — Define the maximum allowed angle MM4005 of discontinuity Usage Syntax ADnn or AD? Parameters Description nn [double] — Maximum allowed discontinuity angle value. nn [?] — Read the actual maximum allowed. Range — 0.001 to 10.0. Units — Degrees.
Page 102
Floating point: Error E. Missing: 0. Out of range: Error C. Description The MM4005 controller possess four analog inputs that user can program each input tension level with the AM command. • If nn = 0 or missing: ±10 V tension input range.
Page 103
AP — Abort program MM4005 Usage Syntax Parameters None. Description This command interrupts a motion program in execution. It will not stop a motion in progress. It will only stop the program after the current com- mand line is finished executing.
Page 104
AQ — Axis positions acquisition MM4005 Usage Syntax xxAQnn Parameters Description xx [int] — Axis number. nn [int] — Integer value. Range — 1 to 4. — 0 or 1. Units — None. — None. Defaults Missing: 0. Out of range: Error B.
Page 105
AS — Affect string MM4005 Usage Syntax xxASaa or xxAS? Parameters Description xx [int] — String variable number. aa [str] — String to be affected. Range — 1 to 8. — 0 or 32 characters. Units — None. — None.
Page 106
AT — Tell the element number under execution MM4005 Usage Syntax Parameters None. Description This command retrieves from the controller the element number of the tra- jectory that is currently being executed. Returns ATnn nn — Element number. Errors —...
Page 107
AY — Assign a physical axis as Y geometric axis MM4005 Usage Syntax xxAY or AY? Parameters Description xx [int] — Physical axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B.
Page 108
BA — Set backlash compensation MM4005 Usage Syntax xxBAnn Parameters Description xx [int] — Axis number. nn [float] — Backlash compensation value. Range — 1 to 4. — 0 to distance equivalent to 10000 encoder counts. Units — None. — Defined motion units.
Page 109
CA — Define sweep angle and build an MM4005 arc of circle = ƒ (CR, CA) Usage Syntax CAnn Parameters Description nn [double] — Sweep angle for an arc of circle. Range — -1.7 E to -1.0 E and 1.0 E to 1.7 E...
Page 110
CB — Clear I/O outputs bits MM4005 Usage Syntax xxCBnn Parameters Description xx [int] — I/O bit number. nn [float] — I/O bit mask. Range — 0 to 8. — 0 to 255. Units — None. — None. Defaults Missing: 0.
Page 111
CD — Set cycle value and activate periodic display mode MM4005 Usage Syntax xxCDnn or xxCD? Parameters Description xx [int] — Axis number. nn [double] — New value of cycle value. Range — 0 to 4. — 0 to Distance equivalent to 1932735283 encoder counts (0.9 MAXLONG).
Page 112
CM — Change communication mode MM4005 Usage Syntax CM[Mxx][Txx][Axx][Qxx][Bxx][Pxx][Lxx][Sxx][Oxx][Rxx][Xxx] or CM? Parameters Description — Communication mode. xx = 1 IEEE-488. xx ≠ 1 or missing RS-232-C. — Terminator character. xx = 1 xx = 2 LFCR. xx = 3 CRLF.
Page 113
CP — Compile program MM4005 Usage Syntax xxCP Parameters Description xx [int] — Program number. Range — 1 to 127. Units — None. Defaults Missing: Error F. Out of range: Error F. Floating point: Error A. Description This command compiles a motion program loaded in the controller’s mem- ory.
Page 114
CR — Define radius for an MM4005 arc of circle = ƒ (CR, CA) Usage Syntax CRnn Parameters Description nn [double] — Radius for an arc of circle. Range — 1.0 E to 1.0 E Units — Defined motion units.
Page 115
CS — Concatenate two strings MM4005 Usage Syntax xxCSaa or xxCS? Parameters Description xx [int] — String variable number. aa [str] — String to be to be concatenated. Range — 1 to 8. — 0 or 32 characters. Units — None.
Page 116
CX — Define X position to reach with an MM4005 arc of circle = ƒ (CX, CY) Usage Syntax CXnn Parameters Description nn [double] — X coordinate to reach with an arc of circle. Range — -1.0 E to 1.0 E Units —...
Page 117
CY — Define Y position to reach and build an MM4005 arc of circle = ƒ (CX, CY) Usage Syntax CYnn Parameters Description nn [double] — Y coordinate to reach with an arc of circle. Range — -1.0 E to 1.0 E Units —...
Page 118
DA — Read desired acceleration MM4005 Usage Syntax xxDApp Parameters Description xx [int] — Axis number. pp [int] — Auxiliary parameter. Range — 1 to 4. — 0 or 1. Units — None. — None. Defaults Missing: Error B. Out of range: Error B.
Page 119
DF — Read following error MM4005 Usage Syntax xxDF Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command reads the following error on an axis. The following error is...
Page 120
DH — Define home MM4005 Usage Syntax xxDH Parameters Description xx [int] — Axis number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command defines current position, HOME position. This means that the current position will be reset to the value preset by SH or by the front panel SETUP utility.
Page 121
DL — Define label MM4005 Usage Syntax xxDL Parameters Description xx [int] — Label number. Range — 1 to 100. Units — None. Defaults Missing: Error N. Out of range: Error N. Floating point: Error A. Description This command defines a label inside a program. In combination with JL (jump to label) command, they provide program flow control.
Page 122
DM — Read manual velocity MM4005 Usage Syntax xxDM Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the manual jog high velocity (from front panel or joy- stick).
Page 123
DO — Read home search velocity MM4005 Usage Syntax xxDO Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the velocity to be used in the home search cycle. This is the high velocity of the algorithm, the other ones being scaled down from it.
Page 124
DP — Read desired position MM4005 Usage Syntax xxDP Parameters Description xx [int] — Axis number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command reads the desired position, the destination of a certain motion component.
Page 125
DS — Display strings on screen MM4005 Usage Syntax xxDSaa Parameters Description xx [int] — Field number. aa [chaîne] — Strings to be displayed. Range — 1 to 2. — 0 to N characters, framed or not framed by two quota- tion marks “≤”.
Page 126
DV — Read desired velocity MM4005 Usage Syntax xxDVpp Parameters Description xx [int] — Axis number. — Auxiliary parameter. Range — 1 to 4. — 0 or 1. Units — None. Defaults Missing: Error B. Out of range: Error B.
Page 127
DY — Display a variable MM4005 Usage Syntax xxDYnn Parameters Description xx [int] — Field number. nn [int] — Variable number. Range — 1 to 2. — 1 to 120. Units — None. — None. Defaults Missing: Error C. Out of range: Error C.
Page 128
ED — Display program error MM4005 Usage Syntax EDnn Parameters Description nn [int] — Enable/disable code. Range — 0 to 1. Units — None. Defaults Missing: Error C. Out of range: Error C. Floating point: Error C. Description This command activates the program execution error display utility. If nn...
Page 129
EL — Erase the last element of trajectory MM4005 Usage Syntax Parameters None. Description This command erases the last entered from actual elements of a trajectory. Returns None. Errors — Unauthorized execution. — Communication time-out. — Trajectory is empty. Rel. Commands LT —...
Page 130
EO — Automatical execution on power on MM4005 Usage Syntax xxEOnn or EO? Parameters Description xx [int] — Program number to execute on power on. nn [int] — Number of times on execution. — Read program number to execute and number of times of execution.
Page 131
EP — Edition of program MM4005 Usage Syntax xxEPnn Parameters Description xx [int] — Program number nn [int] — Program line number. Range — 1 to 127. — 1 to 32767. Units — None. — None. Defaults Missing: Error F.
Page 132
EP — Edition of program MM4005 (cont.) 3EP | Edition of program 3. 2PA10 | Enter a line. 2WS | Enter a line. 3QP | Quit edition of program 3. 3LP | Liste program 3. 1PA10 2PA10 | The program is now listed.
Page 133
ET — Execution of trajectory MM4005 Usage Syntax ET, ETx or ETy Parameters None. Description Execute trajectory on two axis (X and Y). ETx: Execute trajectory on axis X alone ETy: Execute trajectory on axis Y alone. This command first verifies all parameters and entered elements of the tra- jectory then direct the controller to start the execution of the trajectory.
Page 134
EX — Execute a program MM4005 Usage Syntax xxEXnn Parameters Description xx [int] — Program number. nn [int] — Number of times to execute the program. Range — 1 to 127. — 1 to 2147483648. Units — None. — None.
Page 135
EX — Execute a program MM4005 (cont.) WT3000 | Wait for 3 seconds. QP | Quit the program 2. 3EP | Program 3. 3AS"a value: " | Define string #3. 101YS99.99 | Define value #101. 3CS$Y101 | Concatenate string #3 and value #101.
Page 136
FB — Label function key MM4005 Usage Syntax xxFBaa Parameters Description xx [int] — Function key number. aa [chaîne] — Label to be displayed. Range — 1 to 4. — 0 to 6 characters. Units — None. — None. Defaults Missing: Error O.
Page 137
FC — Clear function key line MM4005 Usage Syntax Parameters None. Description This command clears the function key line displayed by the FD or WF com- mands. It is intended to be used in conjunction with the FB, FD and WF commands to build front panel interactive programs.
Page 138
FD — Display function keys MM4005 Usage Syntax Parameters None. Description This command displays the function keys defined with the FB command. It is intended to be used in conjunction with the FB, FC and WF commands to allow the user to build front panel interactive programs.
Page 139
FE — Set maximum following error MM4005 Usage Syntax xxFEnn Parameters Description xx [int] — Axis number. nn [float] — Maximum allowed following error. Range — 1 to 4. — 2 x encoder resolution to maximum device travel. Units — None.
Page 140
FF — Set maximum master-slave following error MM4005 Usage Syntax xxFFnn or xxFF? Parameters Description xx [int] — Axis number. nn [float] — New value of maximum allowed master-slave following error. — Read the actual maximum allowed master-slave follow- ing error.
Page 141
FT — Set output frequency MM4005 Usage Syntax FTnn Parameters Description nn [float] — Desired frequency. Range — 0 and 0.01 to 5000. Units — Hz. Defaults Missing: 0. Out of range: Error D. Non-increment: Rounded to nearest frequency increment (see table).
Page 142
GQ — Set global trace mode MM4005 Usage Syntax GQnn or GQ? Parameters Description nn [int] — Number of samples. Range — 0 to NMax (1500 to 4000). — Reading of the NMax Value. Units — None. Defaults Missing: Error C.
Page 143
GR — Set master-slave reduction ratio MM4005 Usage Syntax xxGRnn or xxGR? Parameters Description xx [int] — Axis number. nn [float] — New value of maximum allowed master-slave following error. — Read the actual maximum allowed master-slave follow- ing error.
Page 144
IE — If I/O input is equal MM4005 Usage Syntax xxIEnn Parameters Description xx [int] — I/O input bit number. nn [int] — I/O input bit or byte state. Range — 0 to 8. — 0 to 1 or 0 to 255.
Page 145
JL — Jump to label MM4005 Usage Syntax xxJL Parameters Description xx [int] — Label number. Range — 1 to 100. Units — None. Defaults Missing: Error N. Out of range: Error N. Floating point: Error A. Description This command changes the flow of the program execution by jumping to a predefined label.
Page 146
KD — Set derivative gain MM4005 Usage Syntax xxKDnn Parameters Description xx [int] — Axis number. nn [float] — Derivative gain factor Kd. Range — 1 to 4. — 0 to 1. Units — None. — None. Defaults Missing: Error B.
Page 147
KI — Set integral gain MM4005 Usage Syntax xxKInn Parameters Description xx [int] — Axis number. nn [float] — integral gain factor Ki. Range — 1 to 4. — 0 to 1. Units — None. — None. Defaults Missing: Error B.
Page 148
KP — Set proportional gain MM4005 Usage Syntax xxKPnn Parameters Description xx [int] — Axis number. nn [float] — Proportional gain factor Kp. Range — 1 to 4. — 0 to 1. Units — None. — None. Defaults Missing: Error B.
Page 149
KS — Set saturation level of integral factor MM4005 in position loop PID corrector Usage Syntax xxKSnn or xxKS? Parameters Description xx [int] — Axis number. nn [float] — New saturation level of integral factor. — Read the actual saturation level.
Page 150
LP — List program MM4005 Usage Syntax xxLP Parameters Description xx [int] — Program number. Range — 1 to 127. Units — None. Defaults Missing: Error F. Out of range: Error F. Floating point: Error A. Description This command reads a specified program from RAM and sends it to the selected communication port (RS232C or IEEE488).
Page 151
LT — Extended list of the trajectory MM4005 Usage Syntax xxLT Parameters Description xx [int] — Element number. Range — 1 to 100. Units — None. Defaults Missing: 0. Out of range: Error C. Description This command retrieves from the controller the extended form of an ele- ment of trajectory.
Page 152
LX — Define X position and build a MM4005 line segment = ƒ (LX, tangent) Usage Syntax LXnn Parameters Description nn [double] — X coordinate to reach with a line segment. Range — -1.0 E to 1.0 E Units — Preset units in SETUP mode.
Page 153
LY — Define Y position and build a MM4005 line segment = ƒ (LY, tangent) Usage Syntax LYnn Parameters Description nn [double] — Y coordinate to reach with a line segment. Range — -1.0 E to 1.0 E Units — Preset units in SETUP mode.
Page 154
MC — Set manual mode MM4005 Usage Syntax Parameters None. Description This command activates the manual jog mode. In this mode, axes can be manually moved by pressing the appropriate low or high speed jog buttons on the front panel numerical keypad.
Page 155
MH — Set manual velocity MM4005 Usage Syntax xxMHnn Parameters Description xx [int] — Axis number. nn [float] — Manual jog high velocity value. Range — 1 to 4. –6 — 1E to the programmed velocity value in SETUP mode.
Page 156
ML — Set local mode MM4005 Usage Syntax Parameters None. Description This command activates the local mode. In this mode, the control is passed to the front panel and all its functionality becomes available. To return to remote mode use MR command.
Page 157
MP — Download EEPROM to RAM MM4005 Usage Syntax Parameters None. Description This command copies the programs stored in non-volatile memory to RAM. When a program is called for execution or editing, it is automatically copied to RAM. When it is erased from RAM with XX command, it can be restored from nonvolatile memory with this command.
Page 158
MS — Read motor status MM4005 Usage Syntax xxMS Parameters Description xx [int] — Axis number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command reads the motor status byte of the specified axis. If the axis number (xx) is missing or set to 0, the controller returns the motor status bytes for all four axes, separated by a comma.
Page 159
Out of range: Error C. Description This command directs the MM4005 to move until it senses the physical travel limit. The parameter + or – sets the direction of motion. Normally, when a travel limit switch is encountered during motion, the MM4005 stops all motion and generates an error message and turns the motor's power off.
Page 160
MV — Infinite movement MM4005 Usage Syntax xxMV+ or xxMV- Parameters Description xx [int] — Axis number. — Displacement in positive direction. — Displacement in negative direction. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B.
Page 161
MX — Define X position for a MM4005 line segment = ƒ (MX, MY) Usage Syntax MXnn Parameters Description nn [double] — X coordinate to reach with a line segment. Range — -1.0 E to 1.0 E Units — Preset units in SETUP mode.
Page 162
MY — Define Y position and build a MM4005 line segment = ƒ (MX, MY) Usage Syntax MYnn Parameters Description nn [double] — Y coordinate to reach with a line segment. Range — -1.0 E to 1.0 E Units — Preset units in SETUP mode.
Page 163
NB — Set trajectory element MM4005 where the generation of pulses starts Usage Syntax NBnn or NB? Parameters Description nn [int] — Number of trajectory element where the pulses genera- tion commences. — Read the number of trajectory element where the puls- es generation starts.
Page 164
NE — Set trajectory element MM4005 where the generation of pulses ends Usage Syntax NEnn or NE? Parameters Description nn [int] — Number of trajectory element where the pulses genera- tion ends. — Read the number of trajectory element where the puls- es generation ends.
Page 165
NI — Set step (curvi-linear distance) MM4005 between synchronisation pulses Usage Syntax NInn or NI? Parameters Description nn [long] — New value of step between pulses. — Read step. — ≥2 * Max {X and Y axis encoder resolution}. Range Units —...
Page 166
NN — Set number of synchronisation pulses to generate MM4005 Usage Syntax NNnn or NN? Parameters Description nn [long] — New value of number of pulses to generate. — Read the defined number of pulses to generate. Range — 2 to 2147385345.
Page 167
NP — Set decimal digits number of position display MM4005 Usage Syntax xxNPnn or xxNP? Parameters Description xx [int] — Axis number. nn [int] — New value of displayed resolution. Range — 1 to 4. — 1 to MDR (Maximum Display Resolution).
Page 168
NQ — Read global acquisition nr. MM4005 Usage Syntax Parameters None. Description This command reads the current number of global trace acquisitions. During a global trace mode initiated by the GQ command, the number of stored sam- ples can be read to monitor the progress of the acquisition process.
Page 169
NS — Allow generation of pulses on interpolation MM4005 Usage Syntax Parameters None. Description This command, together with ET command, verifies the correctness of data enterred by NB, NE and NI, NN before allow generation of pulses along the trajectory. If a condition is not satisfied, the generation of pulses is disabled and the command returns an error.
Page 170
NT — Start definition of a new trajectory MM4005 Usage Syntax Parameters None. Description This command tells to the controller to reset the trajectory buffer and to get ready to load a new trajectory for execution. NT sets the initial position (X, Y) and first tangent angle to 0.0.
Page 171
OE — Test I/O output MM4005 Usage Syntax xxOEnn Parameters Description xx [int] — I/O output bit number. nn [int] — I/O output bit or byte state. Range — 0 to 8. — 0 to 1 or 0 to 255.
Page 172
OH — Set home search high velocity MM4005 Usage Syntax xxOHnn Parameters Description xx [int] — Axis number. nn [float] — Home search velocity. Range — 1 to 4. — 0.000001 to Maximum motion speed defined in SETUP. Units — None.
Page 173
OL — Set home search low velocity MM4005 Usage Syntax xxOLnn Parameters Description xx [int] — Axis number. nn [float] — Low velocity value. Range — 1 to 4. — 1 E to Maximum motion speed defined in SETUP mode.
Page 174
OR — Search for home MM4005 Usage Syntax xxORnn Parameters Description xx [int] — Axis number. nn [int] — Home search position option. Range — 0 to 4. — 0 to 2. nn = 0: Move to zero position instead of origin search.
Page 175
PA — Move to absolute position MM4005 Usage Syntax xxPAnn Parameters Description xx [int] — Axis number. nn [float] — Absolute position destination. Range — 1 to 4. — Any position within the software travel limits. Units — None. — Defined motion units.
Page 176
PB — Set start position of generation of pulses MM4005 of synchronisation Usage Syntax xxPBnn or xxPB? Parameters Description xx [int] — Axis number. nn [float] — New value of start position of generation of pulses. — Pulses of synchronisation for the axis #xx.
Page 177
PE — Set end position of generation of pulses MM4005 of synchronisation Usage Syntax xxPEnn or xxPE? Parameters Description xx [int] — Axis number. nn [float] — New value of end position of generation of pulses. — Read the actual end position of generation of pulses of synchronisation for the axis #xx.
Page 178
PI — Set step of generation of pulses of synchronisation MM4005 Usage Syntax xxPInn or xxPI? Parameters Description xx [int] — Axis number. nn [float] — New value of step of generation of pulses. — Read the actual step of generation of pulses of synchro- nisation for the axis #xx.
Page 179
PR — Move to relative position MM4005 Usage Syntax xxPRnn Parameters Description xx [int] — Axis number. nn [float] — Relative motion increment. Range — 1 to 4. — Any value that will not cause exceeding the software limits. Units —...
Page 180
PS — Allow generation of pulses on motion MM4005 Usage Syntax xxPSpp Parameters Description xx [int] — Axis number. pp [int] — Auxiliary parameter. Range — 0 to 4. — 0 to 3. Units — None. — None. Defaults Missing: Error B.
Page 181
PS — Allow generation of pulses on motion MM4005 (cont.) Rel. Commands —Set start position of generation of pulses of synchronisation. PE — Set end position of generation of pulses of synchronisation. — Set step of generation of pulses. Example 1PB-20 |Set start position for axis #1 to -20 units.
Page 182
PW — Save parameters MM4005 Usage Syntax xxPW Parameters Description xx [int] — Axis number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command saves in non-volatile memory all parameters of the selected xx axis that have been changed through on-line commands or from within a program.
Page 183
QP — Quit program mode MM4005 Usage Syntax Parameters None. Description This command terminates the program entry mode and sets the controller back to immediate mode. All the commands following this one will be exe- cuted immediately. Returns None. Errors —...
Page 184
QW — Save general parameters MM4005 Usage Syntax Parameters None. Description This command saves in non-volatile memory all general parameters that have been changed through on-line commands or from within a program. For a list and description of the general parameters that are stored in non- volatile memory see the General Setup paragraph of the Local Mode sec- tion.
Page 185
RA — Read analog input MM4005 Usage Syntax xxRA Parameters Description xx [int] — Analog port number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error E. Floating point: Error A. Description This command reads one analog input port. The analog ports are four 12 bit A/D converters that accept signals in the predefined voltage range (±10 V, ±5 V, 0 to +10 V, 0 to +5 V).
Page 186
RB — Read I/O input MM4005 Usage Syntax xxRB Parameters Description xx [int] — I/O bit number. Range — 0 to 8. Units — None. Defaults Missing: 0. Out of range: Error E. Floating point: Error A. Description This command reads the I/O input port. If xx is specified between 1 and 8, the return is either 0 or 1, depending on the state of the selected I/O bit.
Page 187
RD — Disable display refresh MM4005 Usage Syntax Parameters None. Description This command disables the front panel display. It is used primarily to save the CPU overhead time during time consuming or time-sensitive opera- tions. For instance, better accuracy can be obtained for WP command when used at high velocities and a higher communication throughput can be achieved while downloading the trace data.
Page 188
RE — Enable display refresh MM4005 Usage Syntax Parameters None. Description This command enables the front panel display. It is used after the front panel display refresh is disabled using the RD command. Returns None. Errors None. Rel. Commands MC —...
Page 189
RO — Read I/O output MM4005 Usage Syntax xxRO Parameters Description xx [int] — I/O bit number. Range — 0 to 8. Units — None. Defaults Missing: 0. Out of range: Error E. Floating point: Error A. Description This command reads the I/O output port. If xx is specified between 1 and 8, the return is ether 0 or 1, depending on the state of the selected I/O bit.
Page 190
RP — Repeat command line MM4005 Usage Syntax RPnn Parameters Description nn [int] — Number of times to repeat command line. Range — 1 to 2147385345. Units — None. Defaults Missing: 1. Out of range: 1 or 2147385345 (forced in range) Floating point: Decimal value truncated.
Page 191
7 of the response is 1 and the lower five bits equal the para- meter nn. This command can be used to notify the host computer of the progress or flow of command execution in the MM4005. Returns None.
Page 192
SB — Set I/O output bits MM4005 Usage Syntax xxSBnn Parameters Description xx [int] — I/O bit number. nn [int] — I/O bit mask. Valeurs — 0 to 8. — 0 to 255. Units — None. — None. Defaults Missing: 0.
Page 193
SC — Set control loop type MM4005 Usage Syntax xxSCnn Parameters Description xx [int] — Axis number. nn [int] — Loop type. Range — 1 to 4. — 0 or 1. Units — None. — None. Defaults Missing: Error B.
Page 194
SD — Speed scaling MM4005 Usage Syntax SDnn Parameters Description nn [float] — Percentage of velocity. Range — 0.001 to 100. Units — None (percentage). Defaults Missing: Error C. Out of range: Error C. Non-increment: Aounded to nearest increment. Description This command reduces the velocity on all axes by a specified factor.
Page 195
SE — Start synchronized motion MM4005 Usage Syntax Parameters None. Description This command starts execution of a synchronized motion. When some axes are defined as synchronized by the use of SY command, they do not exe- cute any motion commands until SE is issued.
Page 196
SF — Set axis mechanical motion device MM4005 Usage Syntax xxSFname/p, xxSFnn or xxSF? Parameters Description xx [int] — Axis number. nn [int] — Axis number. name/p — Name of mecanical device to set, with: p = 0 or missing: origin at center (center of the travel) p = -1: Home position on motor side (–End-of-Travel)
Page 197
SH — Set home preset position MM4005 Usage Syntax xxSHnn Parameters Description xx [int] — Axis number. nn [float] — Home position preset. Range — 1 to 4. — Any value within the software travel limits. Units — None. — Defined motion units.
Page 198
SL — Set left travel limit MM4005 Usage Syntax xxSLnn Parameters Description xx [int] — Axis number. nn [float] — Left (negative) software travel limit. Range — 1 to 4. — -2147483647 x encoder resolution to min (home value set by SH or current position or destination (if in motion)).
Page 199
SM — Save program MM4005 Usage Syntax Parameters None. Description This command saves all programs from RAM in non-volatile memory. It should be used after creating or editing a program to assure that the pro- gram will not be lost when the controller is powered off.
Page 200
SN — Set axis displacement units MM4005 Usage Syntax xxSNname or xxSN? Parameters Description xx [int] — Axis number. name — Name of displacement unit to set. — Read the actual displacement unit. Range — 1 to 4. Units — None.
Page 201
SO — Set I/O output byte MM4005 Usage Syntax SOnn Parameters Description nn [int] — I/O bit mask. Range — 0 to 255. Units — None. Defaults Missing: 0. Out of range: Error C. Floating point: Decimal part truncated. Description This command sets all output bits of the I/O port.
Page 202
SP — Set trace sample rate MM4005 Usage Syntax SPnn Parameters Description nn [float] — Trace sample period. Range — 0.0003 to 9. Units — Seconds. Defaults Missing: 0.0003. Out of range: Nearest range limit. Non-increment: Rounded to nearest increment.
Page 203
SQ — Set global sample rate MM4005 Usage Syntax SQnn Parameters Description nn [float] — Trace sample period. Range — 0.0003 to 9. Units — Seconds. Defaults Missing: 0.0003. Out of range: Nearest range limit. Non-increment: Rounded to nearest increment.
Page 204
SR — Set right travel limit MM4005 Usage Syntax xxSRnn Parameters Description xx [int] — Axis number. nn [float] — Right (postive) software travel limit. Range — 1 to 4. — Max (home value set by SH or current position or destina- tion (if in motion)) to 2147483647 x encoder resolution.
Page 205
SS — Set master-slave mode MM4005 Usage Syntax xxSSnp or xxSS? Parameters Description xx [int] — Axis number to define. [int] — Axis number of the master axis. [int] — Following mode: theoretical/real position. — Read number of the master axis that this axis slaved to.
Page 206
ST — Stop motion MM4005 Usage Syntax xxST Parameters Description xx [int] — Axis number. Valeurs — 0 to 4. Units — None. Defaults Missing: 0. Hors de limite: Error B. Floating point: Error A. Description This command stops a motion in progress on one or all axes. If parameter xx is set to 0 or missing, motion on all axes will be stopped.
Page 207
SY — Axis synchronization MM4005 Usage Syntax xxSYnn Parameters Description xx [int] — Axis number. nn [int] — Synchronization code. Valeurs — 1 to 4. — 0 or 1. Units — None. — None. Defaults Missing: Error B. Out of range: Error B.
Page 208
Description This command reads the type of motion device installed on the specified axis. The name of the device is the one found in the Newport catalog. NOTE The type of motion device installed on each axis can be changed only through the front panel SETUP menu.
Page 209
TB — Read error message MM4005 Usage Syntax TBaa Parameters Description aa [char] — Error code character, in ASCII format. Range — @ to U. Units — None. Defaults Missing: Reads current error. Out of range: Controller returns message Unknown error code.
Page 210
TC — Read control loop type MM4005 Usage Syntax xxTC Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the type of control loop used on a specified axis. The two possibilities are open loop (0) or closed loop (1).
Page 211
TD — Read error line of program MM4005 Usage Syntax Parameters None. Description This command reads the line of a program where the error is if an error occurred in execution. The error line buffer will be reset after this operation.
Page 212
TE — Read error code MM4005 Usage Syntax Parameters None. Description This command reads the error code of the controller. The error code is one ASCII character, stored in the error register. NOTE When an error is read using TB or TE, the error buffer is reset. This means that an error can be read only once, with either command.
Page 213
TF — Read filter parameters MM4005 Usage Syntax xxTF Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the PID parameters and the maximum acceptable fol- lowing error of an axis.
Page 214
TG — Toggle I/O output bits MM4005 Usage Syntax xxTGnn Parameters Description xx [int] — I/O bit number. nn [int] — I/O bit mask. Range — 0 to 8. — 0 to 255. Units — None. — None. Defaults Missing: 0.
Page 215
TH — Read theoretical position MM4005 Usage Syntax xxTH Parameters Description xx [int] — Axis number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command reads the theoretical position and the instantaneous real position.
Page 216
TL — Read left travel limit MM4005 Usage Syntax xxTL Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the left software travel limit, the motion soft limit in the negative direction.
Page 217
TM — Set trace mode MM4005 Usage Syntax xxTMnn or xxTM? Parameters Description xx [int] — Axis number. nn [int] — Number of samples. Range — 1 to 4. — 0 to NMax. — Reading of the NMax value. Units —...
Page 218
TN — Read displacement units MM4005 Usage Syntax xxTN Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the type of displacement units used on a specified axis.
Page 219
TP — Read actual position MM4005 Usage Syntax xxTP Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command reads the actual position, the instantaneous real position of one or all motion devices.
Page 220
TQ — Read global trace data MM4005 Usage Syntax xxTQnn Parameters Description xx [int] — Number of samples to read. nn [int] — 0 (or missing) or 1. Range — 0 to number of samples set by GQ command. — 0 or 1.
Page 221
TQ — Read global trace data MM4005 (cont.) Example SQ0, 002 | Set global trace sample period to 2 ms. GQ500 | Set global trace mode for 500 data points. 2PR0.1, WS | Perform a motion of 0.1 units on axis #2 and wait for stop.
Page 222
TS — Read controller status MM4005 Usage Syntax Parameters None. Description This command reads the controller status byte. Each bit of the status byte represents a particular controller parameter, as described in the following table: Meaning for Bit # Function...
Page 223
TT — Read trace data MM4005 Usage Syntax xxTT Parameters Description xx [int] — Sample number to read. Range — 0 to number of samples set by TM command. Units — None. Defaults Missing: 0. Out of range: Error C.
Page 224
TU — Read encoder resolution MM4005 Usage Syntax xxTU Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the encoder resolution defined for an axis. This is an important parameter which determines the overall accuracy of the motion device.
Page 225
TX — Read controller activity MM4005 Usage Syntax Parameters None. Description This command reads the controller activity register. Each bit of the status byte represents a particular parameter, as described in the following table: Meaning for Bit # Function Bit LOW...
Page 226
TX1 — Read controller extended status MM4005 Usage Syntax Parameters None. Description This command reports controller’s dynamic status. As this controller can perform concurrently a lot of tasks, it is usefull to have one command that gives all the information on what the controller is doing. This reduce the...
Page 227
TX1 — Read controller extended status MM4005 (cont.) Meaning for Bit # Function for a Bit LOW Bit HIGH Axis is connected Axis Motor Power Axis Idle Axis is moving Axis in permanent motion Following error Not used — Default...
Page 228
TY — Read a variable MM4005 Usage Syntax xxTY Parameters Description xx [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). Units — None. Defaults Missing: Error O. Out of range: Error O. Floating point: Error A.
Page 229
UF — Update servo filter MM4005 Usage Syntax xxUF Parameters Description xx [int] — Axis number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command makes active the latest PID parameters entered. Any new value for Kp, Ki, Kd and the maximum following error are not being used in the PID loop calculation until the UF command is received.
Page 230
UH — Wait for I/O high MM4005 Usage Syntax xxUH Parameters Description xx [int] — I/O bit number. Range — 0 to 8. Units — None. Defaults Missing: 0. Out of range: Error E. Floating point: Error A. Description This command causes a program to wait until a selected I/O input bit becomes high.
Page 231
UL — Wait for I/O low MM4005 Usage Syntax xxUL Parameters Description xx [int] — I/O bit number. Range — 0 to 8. Units — None. Defaults Missing: 0. Out of range: Error E. Floating point: Error A. Description This command causes a program to wait until a selected I/O input bit becomes low.
Page 232
VA — Set velocity MM4005 Usage Syntax xxVAnn Parameters Description xx [int] — Axis number. nn [float] — Velocity value. Range — 1 to 4. — 1 E to the programmed value in SETUP mode. Units — None. — Preset units in SETUP mode/second.
Page 233
VB — Set base velocity (Stepper motor only) MM4005 Usage Syntax xxVBnn Parameters Description xx [int] — Axis number. nn [float] — Velocity value. Range — 1 to 4. — 0 to Maximum motion speed defined by the VA com- mand.
Page 234
Rel. Commands None. Example VE | Read controller model and version. VE MM4005 Controller Version 1.52 | Controller returns model MM4005 and version 1.52. 3.151 EDH0162En1040 – 06/99 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Page 235
VS — Define the vector acceleration on trajectory MM4005 (trajectory acceleration) Usage Syntax VSnn or VS? Parameters Description nn [double] — Desired trajectory acceleration. Range — >0 to Max Trajectory Acceleration (MTA). Units — Units/sec Defaults Missing: MTA. Out of range: Error C.
Page 236
VV — Define the vector velocity on trajectory MM4005 (trajectory velocity) Usage Syntax VVnn or VV? Parameters Description nn [double] — Desired trajectory velocity. Range — >0 to Max Trajectory Velocity (MTV). Units — Units/sec. Defaults Missing: MTV. Out of range: Error C.
Page 237
WA — Wait MM4005 Usage Syntax WAnn Parameters Description nn [int] — Wait time (delay). Range — 0 to 1073741824. Units — Milliseconds. Defaults Missing: 0. Out of range: 0. Floating point: Decimal part truncated. Description This command causes the controller to pause for a specified amount of time.
Page 238
WE — End While loop MM4005 Usage Syntax Parameters None. Description This command terminates a WHILE loop initiated by any of the WG, WH, WL or WY commands. Up to 100 While loops can be nested, but they must follow the general rule of multiple loops: last one opened is the first one closed.
Page 239
WF — Wait for function key MM4005 Usage Syntax xxWF Parameters Description xx [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). Units — None. Defaults Missing: Error O. Out of range: Error O.
Page 240
WG — While variable is greater MM4005 Usage Syntax xxWGnn Parameters Description xx [int] — Variable number. nn [int] — Comparison value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 241
WH — While I/O input is equal MM4005 Usage Syntax xxWHnn Parameters Description xx [int] — I/O input bit number. nn [int] — I/O input bit or byte state. Range — 0 to 8. — 0 to 1 or 0 to 255.
Page 242
WI — Wait for a trajectory (curvi-linear) length MM4005 Usage Syntax WInn Parameters Description nn [double] — Trajectory length to wait for. Range — 0 to Trajectory total length. Units — X axis actual unit. Defaults Missing: Error C. Out of range: Error C.
Page 243
WK — Wait for key MM4005 Usage Syntax WKaa Parameters Description aa [str] — String to be displayed, in ASCII format. Range — 1 to 14 characters. Units — None. Defaults Missing: Null string; clears the line. Out of range: Only first 14 characters are used.
Page 244
WL — While variable is less MM4005 Usage Syntax xxWLnn Parameters Description xx [int] — Variable number. nn [int] — Comparison value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 245
WN — Wait for a element of trajectory MM4005 Usage Syntax WNnn Parameters Description nn [int] — Number of trajectory element to wait for. Range — 0 to Element total number of the trajectory. Units — None. Defaults Missing: Error C.
Page 246
WP — Wait for position MM4005 Usage Syntax xxWPnn Parameters Description xx [int] — Axis number. nn [float] — Position to wait for. Range — 0 to 4. — Starting position to destination of axis number xx. Units — None.
Page 247
WS — Wait for motion stop MM4005 Usage Syntax xxWSnn Parameters Description xx [int] — Axis number. nn [int] — Delay after motion is complete. Range — 0 to 4. — 0 to 1073741824. Units — None. — Milliseconds. Defaults Missing: 0.
Page 248
WT — Wait MM4005 Usage Syntax WTnn Parameters Description nn [int] — Wait time (delay). — 0 to 1073741824. Range Units — Milliseconds. Defaults Missing: 0. Out of range: Nearest range limit. Floating point: Decimal part truncated. Non-increment: Rounded to nearest increment.
Page 249
WY — While variable is different MM4005 Usage Syntax xxWYnn Parameters Description xx [int] — Variable number. nn [int] — Comparison value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 250
XA — Tell the current maximum allowed angle MM4005 of discontinuity Usage Syntax Parameters None. Description This command retrieves from the controller the current maximum allowed discontinuity angle. Returns XAnn nn — Maximum discontinuity angle. Errors — Communication time-out. Rel. Commands AD —...
Page 251
XB — Read backlash compensation MM4005 Usage Syntax xxXB Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the backlash compensation set for an axis. The con- troller returns the value last set with the BA command.
Page 252
XD — Read derivative gain factor MM4005 Usage Syntax xxXD Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the derivative gain factor of an axis.
Page 253
XE — Tell the last element MM4005 Usage Syntax Parameters None. Description This command retrieves from the controller the informations of the last defined element. Returns XEaa, bb, cc, dd — Type of element: Line (x, θ), or Line (y, θ), or...
Page 254
XF — Read maximum following error MM4005 Usage Syntax xxXF Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Hors limitest: Error B. Virgule flottantet: Error A. Description This command reads the maximum following error allowed for an axis. If, at any time, the following error is greater than the acceptable value, the con- troller will stop all motion and turn motors off.
Page 255
XH — Read home preset position MM4005 Usage Syntax xxXH Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the home preset position value. This value is the one loaded in the position counter after a home search is initiated and home is found.
Page 256
XI — Read integral gain factor MM4005 Usage Syntax xxXI Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the integral gain factor of an axis NOTE The command reads the value actually used in the servo loop.
Page 257
XL — Delete one line of program MM4005 Usage Syntax xxXLnn Parameters Description xx [int] — Program number. nn [int] — Line number. Range — 1 to 127. — 1 to 32767. Units — None. — None. Defaults Missing: Error F.
Page 258
XM — Read available memory MM4005 Usage Syntax xxXM Parameters Description xx [int] — Program number. Range — 0 to 127. Units — None. Defaults Missing: 0. Out of range: Error F. Description If xx = 0 or missing this command reads the amount of unused program memory.
Page 259
XN — Read number of acquisitions MM4005 Usage Syntax Parameters None. Description This command reads the current number of trace acquisitions. During a trace mode initiated by the TM command, the number of stored samples can be read to monitor the progress of the acquisition process.
Page 260
XP — Read proportional gain factor MM4005 Usage Syntax xxXP Parameters Description xx [int] — Axis number. Range — 1 to 4. Units — None. Defaults Missing: Error B. Out of range: Error B. Floating point: Error A. Description This command reads the proportional gain factor of an axis.
Page 261
XQ — Read global sample rate MM4005 Usage Syntax Parameters None. Description This command reads the global trace acquisition period. This is the period that will be used to sample the real and desired positions of all motion devices and store the values in memory.
Page 262
XS — Read trace sample rate MM4005 Usage Syntax Parameters None. Description This command reads the trace acquisition period. This is the period that will be used to sample the real and desired positions of a motion device and store the values in memory.
Page 263
XU — Tell the vector acceleration on trajectory MM4005 (trajectory acceleration) Usage Syntax XUnn Parameters — 0 or ≥1. Description nn [int] Defaults Missing: 0. Description This command retrieves from the controller the current trajectory accelera- tion or Max Trajectory Acceleration (MTA).
Page 264
XV — Tell the vector velocity on trajectory MM4005 (trajectory velocity) Usage Syntax XVnn Parameters — 0 or ≥1. Description nn [int] Defaults Missing: 0. Description This command retrieves from the controller the current trajectory velocity or Max Trajectory Velocity (MTV).
Page 265
XX — Erase program MM4005 Usage Syntax xxXX Parameters Description xx [int] — Program number. Range — 0 to 127. Units — None. Defaults Missing: 0. Out of range: Error F. Floating point: Error A. Description This command erases one or all motion programs loaded in the controller’s RAM.
Page 266
YA — Add to variable MM4005 Usage Syntax xxYAnn Parameters Description xx [int] — Variable number. nn [int] — Value to add. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 267
YB — Negate variable MM4005 Usage Syntax xxYB Parameters Description xx [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). Units — None. Defaults Missing: Error O. Out of range: Error O. Floating point: Error A.
Page 268
YC — Add variables MM4005 Usage Syntax xxYCnn Parameters Description xx [int] — Variable number. nn [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). — 1 to 100 (integers) and 101 to 120 (floats).
Page 269
YD — Divide variables MM4005 Usage Syntax xxYDnn Parameters Description xx [int] — Variable number. nn [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). — 1 to 100 (integers) and 101 to 120 (floats).
Page 270
YE — If variable is equal MM4005 Usage Syntax xxYEnn Parameters Description xx [int] — Variable number. nn [int] — Comparaison value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 271
YF — Scale variable MM4005 Usage Syntax xxYFnn Parameters Description xx [int] — Variable number. nn [int] — Scaling factor. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None. — None.
Page 272
YG — If variable is greater MM4005 Usage Syntax xxYGnn Parameters Description xx [int] — Variable number. nn [int] — Comparison value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 273
YK — Read key to variable MM4005 Usage Syntax xxYK Parameters Description xx [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). Units — None. Defaults Missing: Error O. Out of range: Error O.
Page 274
YL — If variable is less MM4005 Usage Syntax xxYLnn Parameters Description xx [int] — Variable number. nn [int] — Comparison value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 275
YM — Multiply variables MM4005 Usage Syntax xxYMnn Parameters Description xx [int] — Variable number. nn [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). — 1 to 100 (integers) and 101 to 120 (floats).
Page 276
YN — If variable is different MM4005 Usage Syntax xxYNnn Parameters Description xx [int] — Variable number. nn [int] — Comparison value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None.
Page 277
YO — Send a value to an user analog port MM4005 Usage Syntax xxYOnn Parameters Description xx [int] — Analog output port number. nn [float] — Value to send out. Range — 1 to 4. — -10.0 to 10.0. Units —...
Page 278
YP — Set theoretical position in variable MM4005 Usage Syntax xxYPnn Parameters Description xx [int] — Axis number. nn [int] — Float variable. Range — 1 to 4. — 101 to 120. Units — None. — None. Defaults Missing: Error B.
Page 279
YQ — Set current position in variable MM4005 Usage Syntax xxYQnn Parameters Description xx [int] — Axis number. nn [int] — Float variable. Range — 1 to 4. — 101 to 120. Units — None. — None. Defaults Missing: Error B.
Page 280
YR — Read a value from an user analog port MM4005 and affect variable Usage Syntax xxYRnn Parameters Description xx [int] — Analog port number. nn [int] — Variable number. Range — 1 to 4. — 1 to 100 (integers) and 101 to 120 (floats).
Page 281
YS — Initialize variable MM4005 Usage Syntax xxYSnn Parameters Description xx [int] — Variable number. nn [int] — Initializing value. Range — 1 to 100 (integers) and 101 to 120 (floats). — -32767 to 32767. Units — None. — None.
Page 282
YV — Read value from keyboard in a variable MM4005 Usage Syntax xxYVmessage Paramètres Description xx [int] — Variable number. message — Prompt message. Value — 1 to 100 (integers) and 101 to 120 (floats). message — 1 to 15 characters.
Page 283
YW — Wait and read key MM4005 Usage Syntax xxYW Parameters Description xx [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). Units — None. Defaults Missing: Error O. Out of range: Error O.
Page 284
YY — Copy variable MM4005 Usage Syntax xxYYnn Parameters Description xx [int] — Variable number. nn [int] — Variable number. Range — 1 to 100 (integers) and 101 to 120 (floats). — 1 to 100 (integers) and 101 to 120 (floats).
Page 285
ZP — Zero position MM4005 Usage Syntax xxZP Parameters Description xx [int] — Variable number. Range — 0 to 4. Units — None. Defaults Missing: 0. Out of range: Error B. Floating point: Error A. Description This command forces current position to zero. This means that the coordi- nate system of the specified xx axis will be moved so that the current posi- tion becomes zero.
Page 286
— None. Defaults Missing: 0. Out of range: Error B. Missing: 0. Out of range: Error C. Description This command reports the MM4005 axis/general parameters configuration that is found in the menu SETUP MENU AXES SETUP MENU GEN. 1 0 0...
MM4005 4-Axis Motion Controller/Driver Section 4 Motion Control Tutorial Motion Systems A schematic of a typical motion control system is shown in Fig. 4.1. Controller X-Y Stage Driver Fig. 4.1 — Typical Motion Control System. Its major components are: Controller...
MM4005 Motion Control Tutorial If you are like most motion control users, you started by selecting a motion device that matches certain specifications needed for an application. Next, you chose a controller that can satisfy the motion characteristics required. The chances are that you are less interested in how the components look or what their individual specs are, but want to be sure that together they perform reliably according to your needs.
MM4005 Motion Control Tutorial 4.2.2 Error Error has the same definition as the Following Error with the exception that the ideal trajectory is not compared to the position feedback device (encoder) but to an external precision measuring device. In other words, the Following Error is the instantaneous error perceived by the controller while the Error is the one perceived by the user.
Resolution is the smallest motion that the controller attempts to make. For all DC motor and all standard stepper motor driven stages supported by the MM4005, this is also the resolution of the encoder. Keeping in mind that the servo loop is a digital loop, the Resolution can be also viewed as the smallest position increment that the controller can han- dle.
MM4005 Motion Control Tutorial 4.2.6 Minimum Incremental Motion The Minimum Incremental Motion is the smallest motion that a device can reliably make, measured with an external precision measuring device. The controller can, for instance, execute a motion equal to the Resolution (one encoder count) but in reality, the load may not move at all.
MM4005 Motion Control Tutorial Relative Error 100% Motion step size (in resolution increments) Fig. 4.6 — Error vs Motion Step Size. Fig. 4.6 shows an example of such a plot. The graph represents the maxi- mum relative error for different motion step sizes. In this example, the Minimum Incremental Motion that can be reliably performed with a maxi- mum of 20% error is one equivalent to 4 resolution (encoder) increments.
MM4005 Motion Control Tutorial Hysteresis Error Position – Fig. 4.7 — Hysteresis Plot. The error plot in reverse direction is identical with the first one but seems to be shifted down by a constant error. This constant error is the Hysteresis of the system.
MM4005 Motion Control Tutorial The problem with this definition is that, though correct, it is difficult to remember. A more graphical representation in presented in Fig. 4.10. Imagine a tiny carriage driven by a giant leadscrew. When the carriage rolls sideways on the lead screw, we call it a Roll.
Usually it represents a lower value than the motor or driver are capable of. In most cases and in particu- lar for the MM4005, the default Maximum Velocity should not be increased. The hardware and firmware are tuned for a particular maximum velocity that cannot be exceeded.
MM4005 is one of them. Since having a real tachometer is very expensive and in some cases close to impossible to implement, the MM4005 can both use or simulate a tachometer through special circuitry and obtains the same result.
MM4005 Motion Control Tutorial The problem for most users is to get a feeling for this formula, specially when trying to tune the PID loop. Tuning the PID means changing its three gain factors to obtain a certain system response, task quite difficult to achieve without some understanding of its behavior.
MM4005 Motion Control Tutorial The result is that the integral term will increase until it drives the motor by itself, reducing the following error to zero. At stop, this has the very desir- able effect of driving the positioning error to zero. During a long constant- velocity motion it also brings the following error to zero, an important feature for some applications.
Page 305
MM4005 Motion Control Tutorial The second observation is that the desired velocity is calculated by the tra- jectory generator and is known ahead of time. The obvious conclusion is that we could take this velocity information, scale it by a K factor and feed it to the motor driver.
Kvff parameter, the feed-forward signal could perform an excellent job, leaving very little for the PID loop to The MM4005 uses this type of velocity control driver to get the highest per- formance possible. In addition, since tachometers are expensive and many times impractical or even impossible to use, the driver has a special cir- cuitry tuned to each individual motor type that can “calculate”...
(the constant portion of it) can be set by the user before every move com- mand. Advanced controllers like the MM4005 allow the user to change them even during the motion. However, the MM4005 always verifies that a parameter change can be safely performed. If not, the command is ignored and the motion continues as initially defined.
Page 308
MM4005 Motion Control Tutorial To determine an absolute position, the controller must find a “switch” that is unique to the entire travel, called a home switch or origin switch. An important requisition is that this switch must be located with the same accuracy as the encoder pulses.
Page 309
Pulse Fig. 4.25 — Origin Search From Opposite Direction. The MM4005 moves at high speed up to the origin switch transition (seg- ment A) and then execute B, C, D and E. All home search routines are run so that the last segment, E, is performed in the positive direction of travel.
MM4005 Motion Control Tutorial Encoders PID closed-loop motion control requires a position sensor. The most widely used technology by far are incremental encoders. The main characteristic of an incremental encoder is that it has a 2-bit gray code output, more commonly known as quadrature output (Fig. 4.26).
Page 311
MM4005 Motion Control Tutorial Light Source Detector Fig. 4.28 — Optical Encoder Read Head. Combining the scale with the read head, when one moves relative to anoth- er, the light will pass through where the transparent areas line up or blocked when they do not line up (Fig.
Motors There are many different types of electrical motors, each one being best suitable for certain kind of applications. The MM4005 supports two of the most popular types: stepper motors and DC motors. Another way to characterize motors is by the type of motion they provide.
MM4005 Motion Control Tutorial 4.6.1 Stepper Motors The main characteristic of a stepper motor is that each motion cycle has a number of stable positions. This means that, if current is applied to one of its windings (called phases), the rotor will try to find one of these stable points and stay there.
Page 314
MM4005 Motion Control Tutorial Fig. 4.33 — Phase Timing Diagram. One phase is energized after another, in a sequence. To advance one full rotor tooth we need to make a complete cycle of four steps. To make a full rotor revolution, we need a number of steps four times the number of rotor teeth.
Page 315
(noise) is decreased. The MM4005’s drivers use the mini-stepping technique to divide the full step in ten mini-steps, increasing the motor’s resolution by a factor of 10.
Page 316
MM4005 Motion Control Tutorial Fig. 4.39 — Single Phase Energization. Once the closest rotor tooth has been pulled in, assuming that we don’t have any external load, the motor does not develop any torque. This is a stable point. If external forces try to move the rotor (Fig. 4.40), the magnetic flux will fight back.
The maximum torque is still one full step away from the stable (desired) position. When mini- and micro-stepping motors are used in open-loop applications there is inherent error, but advanced con- trollers like the MM4005 can control the stepper motors with closed loop operation to eliminate this problem. 4.6.1.1...
They represent an important part of the loop that in many cases could increase or reduce the overall performance. The MM4005 is an integrated controller and driver. The controller part is common for any configuration but the driver section must have the correct hardware for each motor driven.
Page 319
MM4005 Motion Control Tutorial Fig. 4.44 — Simple Stepper Motor Driver. This driver works fine for simple, low performance applications. But, if high speeds are required, having to switch the current fast in inductive loads becomes a problem. When voltage is applied to a winding, the current (and thus the torque) approaches its nominal value exponentially (Fig.
Once the desired current value is reached, a chopper circuit activates to keep the current close to the nominal value. The MM4005 uses two implementations of this circuit for two different dri- ver card families. One of them, called MM16PP, is designed for small vari- able-reluctance motors and offers full- and half-stepping capabilities.
Page 321
MM4005 Motion Control Tutorial The driver amplifies the standard ±10 V control signal to cover the motor’s nominal voltage range while also supplying the motor’s nominal current. This type of driver is used mostly in low cost applications where following error is not a great concern.
Page 322
The compensation adjustment reduces the bandwidth of the amplifier to avoid oscillations of the closed loop. The MM4005 uses this type of velocity feedback loop driver with “velocity calculation” circuitry to simulate a tachometer when one cannot be used.
Definition of Terms 5.1.1 Trajectory A continuous multi-dimensional motion path. In the MM4005 case, the tra- jectory is defined in a two-dimensional X-Y plane. The major requirement in executing a trajectory is to maintain a constant vector velocity throughout the entire path, with the exception of the acceleration and deceleration periods.
Trajectory Description and Conventions When defining and executing a trajectory, a number of rules must be fol- lowed. For the current MM4005 version, these are the conventions that guide the contouring implementation: • Multiple trajectories can be defined in a program but only one is active at a time.
Trajectories can be defined in many different ways. There is no universal standard and most manufacturers of motion controllers use some degree of custom conventions. For the MM4005, the guiding principal was to be as user friendly as possible. Line and arc elements can be defined in more than one way to offer the best solution for each application.
MM4005 Trajectory Functions Tutorial To eliminate the burden of calculating the angle matching, use as much as possible the commands that define a straight line by one coordinate, X or Y, and by the entry angle (also referred to as the tangent). This simplifies the user’s programming task and lets the controller find the best fit for the...
Page 332
MM4005 Trajectory Functions Tutorial Both radius and sweep angle are expressed in double precision floating point numbers. It is particularly interesting to mention that the sweep angle has a range of 1E-12 to 1.7E304, allowing execution of arcs from a fraction of a degree to a practically infinite number of overlapping circles.
MM4005 Trajectory Functions Tutorial Programming a Trajectory The following list describes the few rules that govern the trajectory pro- gramming process and gives some examples: • A trajectory must be first defined and then executed. NT | Start new trajectory definition.
MM4005 Trajectory Functions Tutorial • When defining a trajectory, start by assigning the two motion axes to the X and Y coordinates. These axis can still be used when the trajecto- ry is not executing. NT | Start new trajectory definition.
MM4005 Trajectory Functions Tutorial Trajectory-Specific Commands These are the commands needed to support the contouring feature. They are fully compatible with the general description of all other commands and will follow the same protocol. 5.7.1 Trajectory Setup Commands AD nn Define the maximum allowed angle of discontinuity.
MM4005 4-Axis Motion Controller/Driver Section 6 Feature Descriptions Tutorial Synchronizing Events to Motion 6.1.1 Pulses Synchronized to One Axis Certain applications require an output pulse (≈ 5 µsec) synchronized with the motion of an axis. This signal is triggered not by a timer but by the specified axis crossing a pre-defined position.
Page 341
MM4005 Feature Descriptions Tutorial NOTE The starting position and the ending position of the axis must be outside the interval defined with PB and PE commands without forget accelera- tion and deceleration ranges. Example Generate a signal synchronized by axis 1. It should start when the axis crosses position -10 (current units) and end when it reaches position 10.
MM4005 Feature Descriptions Tutorial 6.1.2 Pulses Synchronized to a Trajectory Equally spaced pulses can also be generated synchronous with a trajectory (at pin 12 of the 25-pin D-Sub Auxiliary connector). The NB, NE, NI, NN and NS commands are used as follows:...
MM4005 Feature Descriptions Tutorial NS | Enable the signal generation. ET | Execute the trajectory. TQ | Read position of every pulse generated. During the execution of a trajectory with such synchronized signals, each time a pulse is generated, the real and theoretical position of all axes is recorded in the global position buffer that could be read with the TQ com- mand.
MM4005 Feature Descriptions Tutorial WN2, VV10 | Starting with element #2 set velocity to 10 mm/sec. WN4, VV5 | Starting with element #4 set velocity to 5 mm/sec. QP | End program entry mode. 1SM | Save program in non-volatile RAM.
To safely define and operate such a motion control system, the follow- ing rules must be observed: • Each axis of the MM4005 has an identity: Master (default) or Slave. By default, all axes are configured as masters, meaning that all can execute independent motion commands.
Before executing the desired program, the controller executes MOTOR and a HOME search on all installed axes. Example On start-up, MM4005 executes an absolute motion of 40 mm on axis num- ber 1: 1XX | Erase program #1. 1EP | Edit program #1.
MM4005 Feature Descriptions Tutorial Automatic Displacement Units Change: SN Command or from the Front Panel Each axis must have a pre-defined unit for displacement. A motion com- mand, in immediate mode or inside a program, does not carry the unit information.
MM4005 Feature Descriptions Tutorial Stage Type Selection: SF Command or from the Front Panel To select the configuration of a stage from the MM4005 database, the user has two options: through the front panel ( ) or Axis Setup SELECT through the SF command.
Page 349
MM4005 Feature Descriptions Tutorial The following is a listing of commands that accept the “?” option and their older equivalent (still active): xxAC? xxDA Partial equivalence No equivalence Total equivalence No equivalence xxAM? No equivalence No equivalence No equivalence xxNP?
Feature Descriptions Tutorial Error Reporting: TD Command Before running a program, the MM4005 does an initial verification of the code, refusing execution if an error is detected. In other instances, a pro- gram is aborted automatically during execution if an unpredictable error occurs.
Feature Descriptions Tutorial 6.12 Joystick The MM4005 lets you use a joystick to manually manipulate axes remotely. The MM4005 joystick has four buttons: MOT. ON, MOT. OFF, ORIG, MANU., three slide switches PX, PY, PXY, two LEDs L1, L2 and a two-dimensional potentiometer PO.
MM4005 Feature Descriptions Tutorial 6.13 Changing the Display Precision: NP Command or from the Front Panel The xxNPnn command or the menu from the front panel ( Axis Setup ) lets you modify the display resolution for the chosen units.
MM4005 Feature Descriptions Tutorial 6.15 “$” Parameter The MM4005 is equipped with a variable buffer (8 character strings, 100 integers and 20 floating points): • The character string variables (0 to 32 characters) are indicated by $Sxx. xx — 1 to 8.
MM4005 Feature Descriptions Tutorial 6.16 Asynchronous Acquisition: AQ Command The AQ command saves the current position of the axes in the TRACE buffer and generates a synchronizing pulse. xx AQ nn To record the current position of the axes at the moment desired.
Feature Descriptions Tutorial 6.17 Executing Sub-Routines in a Program: EX Command The MM4005 is capable of executing complex programs containing sub-rou- tines. The sub-routines are blocks of commands that do not contain the EX com- mand. They are called by the main program.
6.19 Analog Input/Output: AM, RA, YO, YR Commands The MM4005 is equipped with four 12-bit analog inputs and four 12-bit ana- log outputs. These analog input/outputs are reserved for user applications. The YR command is used to enter a value from an analog port and store it in a variable buffer.
MM4005 Feature Descriptions Tutorial 6.20 Default Mode: S-CURVE Profile Two types of profiles exist: TRAPEZOID and S-CURVE. TRAPEZOID S-CURVE The Scurve type avoids abrupt variations in speed during axis movement, consequently it improves the movement quality. Parabola 2 Parabola 1...
6.21 Integrator Factor Saturation Level in Position PID Loop Corrector: KS Command The MM4005 controller uses a discrete PID anti-windup servo loop. The xxKSnn command sets the saturation level of the PID integral factor. This is evaluated by nn between 0 and 1 times the maximum possible level of the output signal.
Always start the tuning process using the default values supplied with the MM4005 for each motion device type, or for the generic Default type. These values are usually very conservative, favoring safe, oscillation-free opera- tion for a tighter, more responsive system that minimizes following error.
MM4005 Servo Tuning Tuning Procedures Servo tuning is usually performed to achieve better motion performance (such as reducing the following error statically and/or dynamically) or because the system is malfunctioning (oscillating and/or shutting off due to excessive following error). NOTE Remember that all three PID gain factors are normalized, meaning that they take a value between 0 and 1.
MM4005 Servo Tuning 7.2.2 Increasing Performance If your system is stable and you want to improve the performance, start with the current parameters. The goal is to reduce the following error dur- ing motion and to eliminate it at stop.
7.2.3 Points to Remember • The MM4005 controller uses a servo loop based on the PID with velocity feed-forward algorithm. • Special servo design makes the velocity feed-forward only motor-depen- dent, not load-dependent. It is factory-set and not accessible to the user.
Page 372
When an error is detected, the controller stores it in an error register. To avoid communication and application conflicts, the MM4005 does not automatically report the error. It is the user’s responsibili- ty to periodically query the error status, particularly during the development phase of an application.
MM4005 Appendix A — Error Messages — Trajectory: first angle definition error. — Trajectory: Line (x, y) Line expected. — Trajectory: Line (x, y) too big discontinuity. — Trajectory: Line (x, θ) or Line (y, θ) impossible. — Trajectory: Arc expected.
Page 374
MM4005 Appendix A — Error Messages E 4 8 8 c o n t i n u e Fig. A.3 — Error screen, IEEE488. The error message in Fig. A.4 appears if one of the function keys or keypad keys are detected being pressed (or stuck) during power-up. The X indi- cates which key is detected, function keys being labeled from A to D, from left to right.
Page 375
NOTE Comply to IEEE Standard Digital Interface for Programmable Instrumentation. ANSI/IEEE Std. 488 - 1978. This norm is commonly called IEEE-488. IEEE-488 Functions Supported by MM4005 Controller Mnemonic Definition Support Attention Device Clear...
SR1 (Service Request). The MM4005 asserts SRQ (Serial Request) line to notify the CIC ( controller In Charge ) when it requires service. RL0 (Remote / Local). The MM4005 does not support the GTL (Go To Local) and LLO (Local Lock Out) functions.
Page 377
The MM4005 Controller is an IEEE-488 device in which the SRQ is always enable. It will respond accordingly to the National Instruments example. When the queried data will be ready, the MM4005 will assert the SRQ line and, in the serial poll response bit 6 will be set (Requesting service) and bit 7 (manufacturer-defined) will be set (Message Availiable).
MM4005 4-Axis Motion Controller/Driver C — Connector Pinouts Labeling Conventions All pinout diagrams in this section use the following labeling convention: AGND ⇒ Analog ground. DGND ⇒ Digital ground. N.C. ⇒ Not connected. UTIL ⇒ Test/ utility signal. DO NOT USE; MAY BE ENERGIZED.
MM4005 Appendix C — Connector Pinouts Remote Control Connector (15-pin D-Sub) This connector should only be used with the NEWPORT RC4000 remote Controller. The connector also provides an Emergency Stop switch input with identi- cal operation to the one in the Power Inhibition connector. If no remote controller are used, the pins must be shorted.
MM4005 Appendix C — Connector Pinouts Auxiliary Connector (25-Pin D-Sub) This connector is used for the MOTOR indicator, the frequency gener- ator output, the analog inputs and outputs and the synchronisation pulses. The analog outputs are only available in option.
Page 381
MM4005 Appendix C — Connector Pinouts 17 — Analog Input 4. 18 — DGND 19 — Analog Output 1. 20 — Analog Output 2. 21 — Analog Output 3. 22 — Analog Output 4. 23 — DGND 24 — Output frequency, defined by the FT command.
MM4005 Appendix C — Connector Pinouts GPIO Connector (37-Pin D-Sub) This connector is dedicated to the digital I/O ports. All outputs are open-collector type and are rated for maximum 30V and 40mA (Fig. C.2). To drive a logic input, they require a pull-up resistor.
Pulse Width Servo Cycle Output low to high µsec Output high to low µsec To assure good use and performances of the MM4005, respect these maxi- mum ratings. +12 V Out 30 V max. 40 mA max. 1 kΩ Output Input Fig.
MM4005 Appendix C — Connector Pinouts RS-232C Interface Cable The reason some pins are jumpered in the controller as described in Fig. C.3 is to override the hardware handshake when an of-the-shelf cable is used for the RS-232C interface. This guaranties proper communication even when the handshake cannot be controlled from the communication software.
MM4005 Appendix C — Connector Pinouts 9-Pin D-Sub 25-Pin D-Sub Femal Connector Femal Connector on Controller Side on Computer Side Fig. C.6 — 9-pin to 25-pin RS-232C interface cable. To build a three conductor cable with a 25-pin RS-232C connector, use the wiring diagram in Fig.
Page 386
MM4005 Appendix C — Connector Pinouts Motor Interface Connector (25-Pin D-Sub) This connector interfaces to the motion device. Depending on the type of driver and motor, some pins have different meanings. If not otherwise spec- ified, this description is valid for all cases.
MM4005 Appendix C — Connector Pinouts C.10 Pass-Through Board Connector (25-Pin D-Sub) WARNING This pass-through board connector takes the place of the motor interface connector only if this axis is connected to an external motor driver. Pin # Designation —...
Page 388
The motion controller’s command set is a spe- cialized language that needs to be mastered in order to be able to create complex applications. To help you familiarize yourself with MM4005 pro- gramming structure and language, this appendix contains a few examples that you can read and copy.
MM4005 Appendix D — Motion Program Examples Example 2 In the previous example, to generate the diagonal line (the third motion segment) both axes must move simultaneously. This is achieved by taking two special precautions: the commands are placed on the same line to insure a good start synchronization and the velocities are modified such that the motions will end in the same time.
Page 390
Appendix D — Motion Program Examples Example 3 The MM4005 does not offer true circular interpolation but in many cases less demanding applications can be successfully implemented. Take the example of dispensing glue on the pattern shown in Fig. D.2.
Page 391
MM4005 Appendix D — Motion Program Examples Before starting to write the actual program, we need to consider one more thing: to assure a good result, the glue must start being dispensed while the motion is in progress. Thus, we have to start the motion first and then turn on the dispenser.
Page 392
Example 4 Lets assume we want to write the from the Newport logo. We have a X-Y table and a 0.5 mm plotter pen (or a laser beam) controlled by a TTL line. One possibility is to scan the symbol with a 0.5 mm spacing and fill it in with 0.5 mm lines.
Page 393
MM4005 Appendix D — Motion Program Examples Erase program #4, if it exists. Store all following entries as program #1. Clear all output I/O bits; set all bits to zero. 1PA0,2PA12.5,WS Move axis #1 to 0 mm and axis #2 to 12.5 mm, wait for all motion to complete.
Page 394
MM4005 Appendix D — Motion Program Examples 2PA0,SE,WS Set destination of axis #2 to 0 mm; start synchronized axis; wait for motion to complete. 1PA11.5,SE,WS Set destination of axis #1 to 11.5 mm; start synchro- nized axis; wait for motion to complete.
Page 395
MM4005 Appendix D — Motion Program Examples 2PR3,SE,WS Set relative destination of axis #2 3 mm away from current position; start motion on the synchronized axis; wait for motion to complete. 1YA1 Increment variable #1 by 1. End while loop.
Page 396
E — Troubleshooting Guide Remember that there are no user-serviceable parts or adjustments to be made inside the controller or any other component. Contact Newport for any repair or other hardware corrective action. Most of the time, a blown fuse or an error reported by the controller is the result of a more serious problem.
MM4005 Appendix E — Troubleshooting Guide Problem Cause Corrective Action Execute a home search routine or move the axis in manual mode Limit switch (jog). Make sure that the limit tripped switch was not tripped by a seri- ous problem.
Page 398
MM4005 Appendix E — Troubleshooting Guide Problem Cause Corrective Action Make sure that the computer Wrong line and the controller use the same line terminator. Verify that the controller is set No remote commu- Wrong commu- to communication on the left...
MM4005 4-Axis Motion Controller/Driver F — Decimal/ASCII/Binary Conversion Table Some of the status reporting commands return an ASCII character that must be converted to binary. To aid with the conversion process, the fol- lowing table converts all character used and some other common ASCII symbols to decimal and binary.
Introduction This section contains information regarding factory service for the MM4005. The MM4005 contains no user-serviceable parts. The user should not attempt any maintenance or service of this instrument and/or acces- sories beyond the procedures outlined in the Troubleshooting Guide, Appendix E.
Service Form Your Local Representative Tel. : Fax: Name: Return Authorization #: (Please obtain prior to return of item) Compagny: Adress: Date: Country: Phone Number: P.O. Number: Fax Number: Item(s) Being Returned: Model #: Serial #: Description: Reasons of return of goods (please list any specific problems): 8.35 EDH0162En1040 –...
Page 408
MM4005 4-Axis Motion Controller/Driver Section 9 Index $ — Parameter ........6.16 Automatic ............ Format..........3.7 Displacement Units Change ..6.10 in programming mode – Unauthorized — Parameter ........6.11 Program Execution on Power-On ............8.3 ............6.9 Language Set ........2.9 Line............3.7 Automatical execution on power on Abort ............
Page 409
MM4005 Index Loops ..........4.13 Specification........4.4 line of program – Read....3.128 Motion and position......3.8 Symbols and........1.5 List.............8.3 Stepper motor........1.9 Maximum ........2.28 Delete one line of program....3.174 message – Read ......3.126 Controller ..........1.6 derivative gain ..........Messages ..........8.3 activity – Read ......3.142 factor –...
Page 411
MM4005 Index Modifying............. Precision – Changing the Display a Program ........2.43 ............6.15 Obtaining ............. Axis Parameters......2.18 Service ..........8.33 Profile Type ..........2.16 Modules – Axis........1.13 Operating............. Profiles – Motion........4.17 conditions........1.10 Motion............Program ............and position control .......3.8 In Local Mode.........2.29 Abort ..........3.20 axes –...
Page 412
MM4005 Index encoder resolution......3.141 program ........3.116 tion of pulses ends ......3.81 error code........3.129 trajectory elementwhere the genera- Scale variable ........3.188 tion of pulses starts ......3.80 error line of program ....3.128 Scaling Speed .....2.9, 2.22, 3.111 error message ......3.126 velocity .........3.149 Search for home ........3.91...
Page 413
MM4005 Index motion – Start ......3.112 pulses ends – Set ......3.81 Initialize ........3.198 pulses generation impossible ..8.4 elementwhere the generation of exe- is different – If ......3.193 pulses to generate – Set number of .3.83 cution exceeds physical or logical is different –...
Page 414
MM4005 Command List by Category Command Description IMM PGM MIP Command Description IMM PGM MIP General mode selection Save program CD nn Set cycle value and activate periodic display mode XL nn Delete one line of program CM [nn] Change communication mode...
Page 415
MM4005 Command List — Alphabetical Command Description IMM PGM MIP Command Description IMM PGM MIP Abort motion RQ nn Generate service request (SRQ) AC nn Set acceleration Reset controller AD nn Define the maximum allowed angle of discontinuity [xx] SB [nn]...
Page 416
W & @ ( Y ? e V / X ? ? V / K O & H ? V / K O . Y e V ' @ ) X ? MM4005 ? W & @ ( Y e V / K O . Y ? N ) K O . Y ? ? W . Y e ? V ' @ ) X * @ @ ? f ? N ) X e V ' @ @ L ? ? V ' @ H ? e ? V ' @ ) X W &...
Need help?
Do you have a question about the MM4005 and is the answer not in the manual?
Questions and answers