![]() |
|
If you can't view the Datasheet, Please click here to try to view without PDF Reader . |
|
Datasheet File OCR Text: |
u ser s m anual 4-axis motion controller/driver version 1.09 firmware MM4005 free datasheet http://
edh0162en1040 06/99 ii MM4005 4-axis motion controller/driver p.a. de saint gu ? nault 3 bis, rue j. mermoz bp 189 91006 evry cedex france tel.: 33 (0)1.60.91.68.68 fax: 33 (0)1.60.91.68.69 warranty newport corporation warrants this product to be free from defects in material and workmanship for a period of 1 year from the date of shipment. if found to be defective during the warranty period, the product will either be repaired or replaced at newport s option. to exercise this warranty, write or call your local newport representative, or contact newport headquarters in irvine, california. you will be given prompt assistance and return instructions. send the instrument, trans- portation prepaid, to the indicated service facility. repairs will be made and the instrument returned, transportation prepaid. repaired products are warranted for the balance of the original warranty period, or at least 90 days. limitation of warranty this warranty does not apply to defects resulting from modification or mis- use of any product or part. this warranty also does not apply to fuses, bat- teries or damage from battery leakage. 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. this manual has been provided for informations only and product specifi- cations are subject to change without notice. any changes will be reflected in future printings. free datasheet http:// iii edh0162en1040 06/99 MM4005 4-axis motion controller/driver table of contents warranty .................................................................................................................ii table of contents..................................................................................................iii section 1 ?introduction table of contents ...................................................................................1.1 1.1 safety considerations............................................................................1.3 1.2 conventions and definitions ................................................................1.5 1.2.1 symbols and definitions ............................................................1.5 1.2.2 terminology.................................................................................1.6 1.3 general description ...............................................................................1.7 1.3.1 features ........................................................................................1.9 1.3.2 specifications...............................................................................1.9 1.3.3 modes of operation ..................................................................1.11 1.3.4 rear panel description .............................................................1.13 1.3.5 front panel description............................................................1.15 1.3.6 display configuration ...............................................................1.16 1.3.7 display structure.......................................................................1.18 1.4 system setup ........................................................................................1.20 1.4.1 connecting motion devices .....................................................1.21 1.4.2 first power on ...........................................................................1.21 1.4.3 verifying default devices .........................................................1.22 section 2 local mode table of contents ...................................................................................2.1 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 2.2.2 axis setup...................................................................................2.16 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 2.3.5 absolute moves .........................................................................2.34 2.3.6 program execution....................................................................2.35 2.3.7 axis infinite movement.............................................................2.36 2.3.8 stop axis infinite movement ....................................................2.37 2.4 programming in local mode...............................................................2.37 2.4.1 general concepts ......................................................................2.38 2.4.2 creating a program ...................................................................2.38 2.4.3 modifying a program.................................................................2.43 free datasheet http:// edh0162en1040 06/99 iv MM4005 table of contents section 3 remote mode table of contents ...................................................................................3.1 3.1 remote interfaces ..................................................................................3.3 3.1.1 rs-232-c interface........................................................................3.4 3.1.2 ieee-488 interface........................................................................3.4 3.2 softwares.................................................................................................3.4 3.2.1 motion suite ..............................................................................3.5 3.2.2 motion term .............................................................................3.5 3.2.3 motion servo .............................................................................3.6 3.2.4 motion draw..............................................................................3.6 3.2.5 motion prog...............................................................................3.6 3.3 communication principles....................................................................3.6 3.3.1 command syntax.........................................................................3.7 3.4 command summary...............................................................................3.8 3.4.1 command list by category........................................................3.8 3.4.2 command list alphabetical................................................3.13 section 4 motion control tutorial table of contents ...................................................................................4.1 4.1 motion systems ......................................................................................4.3 4.2 specification definitions........................................................................4.4 4.2.1 following error ............................................................................4.4 4.2.2 error..............................................................................................4.5 4.2.3 accuracy.......................................................................................4.5 4.2.4 local accuracy ............................................................................4.6 4.2.5 resolution ....................................................................................4.6 4.2.6 minimum incremental motion ...................................................4.7 4.2.7 repeatability ................................................................................4.8 4.2.8 backlash (hysteresis) .................................................................4.8 4.2.9 pitch, roll and yaw .....................................................................4.9 4.2.10 wobble........................................................................................4.10 4.2.11 load capacity ............................................................................4.10 4.2.12 maximum velocity ....................................................................4.11 4.2.13 minimum velocity .....................................................................4.11 4.2.14 velocity regulation ...................................................................4.12 4.2.15 maximum acceleration.............................................................4.12 4.2.16combined parameters ...............................................................4.12 4.3 control loops .......................................................................................4.13 4.3.1 pid servo loops ........................................................................4.13 4.3.2 feed-forward loops .................................................................4.15 4.4 motion profiles .....................................................................................4.17 4.4.1 move ...........................................................................................4.17 4.4.2 jog ...............................................................................................4.18 4.4.3 home search ..............................................................................4.18 4.5 encoders................................................................................................4.21 4.6 motors ...................................................................................................4.23 4.6.1 stepper motors..........................................................................4.24 4.6.2 dc motors ..................................................................................4.28 4.7 drivers ...................................................................................................4.29 4.7.1 stepper motor drivers..............................................................4.29 4.7.2 dc motor drivers ......................................................................4.31 free datasheet http:// MM4005 table of contents v edh0162en1040 06/99 section 5 trajectory functions tutorial table of contents ...................................................................................5.1 5.1 definition of terms ................................................................................5.3 5.1.1 trajectory.....................................................................................5.3 5.1.2 trajectory element .....................................................................5.3 5.1.3 trajectory vector........................................................................5.3 5.1.4 vector velocity ............................................................................5.3 5.1.5 vector acceleration ....................................................................5.3 5.2 trajectory description and conventions............................................5.4 5.3 geometric conventions.........................................................................5.4 5.4 defining trajectory elements ...............................................................5.5 5.4.1 defining lines ..............................................................................5.6 5.4.2 defining arcs................................................................................5.6 5.5 programming a trajectory....................................................................5.8 5.6 trajectory element parameters ...........................................................5.9 5.7 trajectory-specific commands ..........................................................5.10 5.7.1 trajectory setup commands ...................................................5.10 5.7.2 trajectory elements definition commands...........................5.10 5.7.3 reporting commands ...............................................................5.10 5.7.4 trajectory synchronization commands ................................5.10 5.7.5 execution of a trajectory.........................................................5.10 section 6 feature descriptions tutorial table of contents ...................................................................................6.1 6.1 synchronizing events to motion ..........................................................6.3 6.1.1 pulses synchronized to one axis..............................................6.3 6.1.2 pulses synchronized to a trajectory........................................6.5 6.1.3 synchronizing events to trajectory elements ........................6.6 6.1.4 synchronizing events to trajectory position..........................6.7 6.2 synchronized axes (electronic gearing) ............................................6.8 6.3 automatic program execution on power-on: eo command or from the front panel .......................................................................................6.9 6.4 continuous motion: mv command......................................................6.9 6.5 automatic displacement units change: sn command or from the front panel ............................................................................................6.10 6.6 stage type selection: sf command or from the front panel .........6.11 6.7 reading parameters with ? ..............................................................6.11 6.8 error reporting: td command ..........................................................6.13 6.9 integral gain saturation limit: ks command ...................................6.13 6.10 program editing: ep command ..........................................................6.13 6.11 firmware updates ................................................................................6.13 6.12 joystick..................................................................................................6.14 6.13 changing the display precision: np command or from the front panel ................................................................................................................6.15 6.14 periodic display mode: cd command or from the front panel.....6.15 6.15 $ parameter........................................................................................6.16 6.16 asynchronous acquisition: aq command .......................................6.17 6.17 executing sub-routines in a program: ex command......................6.18 6.18 load communications mode: cm command ...................................6.19 6.19 analog input/output: am, ra, yo, yr commands ..........................6.19 free datasheet http:// edh0162en1040 06/99 vi MM4005 table of contents 6.20 default mode: s-curve profile...........................................................6.20 6.21 integrator factor saturation level in position pid loop corrector: ks command.........................................................................................6.21 section 7 servo tuning table of contents ...................................................................................7.1 7.1 servo tuning principles ........................................................................7.3 7.1.1 hardware requirements ............................................................7.3 7.1.2 software requirements ..............................................................7.3 7.2 tuning procedures.................................................................................7.4 7.2.1 axis oscillation............................................................................7.4 7.2.2 increasing performance..............................................................7.5 7.2.3 points to remember ...................................................................7.6 section 8 appendices table of contents ...................................................................................8.1 a error messages.......................................................................................8.3 b ieee-488 link characteristics ...............................................................8.6 c connector pinouts .................................................................................8.9 d motion program examples..................................................................8.19 e troubleshooting guide........................................................................8.27 f decimal/ascii/binary conversion table...........................................8.30 g factory service .....................................................................................8.33 section 9 index command list by category command list alphabetical free datasheet http:// vii edh0162en1040 06/99 MM4005 4-axis motion controller/driver we declare that the accompanying product, identified with the mark, meets all relevant requirements of directive 89/336/eec for electro-magnetic compatibility. generic standard: emission en50081-1 immunity 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. connecting this product to non-ce equipments. heavy industrial environment. free datasheet http:// edh0162en1040 06/99 viii MM4005 4-axis motion controller/driver free datasheet http:// section 1 introduction free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 1.1 edh0162en1040 06/99 MM4005 4-axis motion controller/driver table of contents section 1 introduction 1.1 safety considerations............................................................................1.3 1.2 conventions and definitions ................................................................1.5 1.2.1 symbols and definitions ............................................................1.5 1.2.2 terminology.................................................................................1.6 axis................................................................................................1.6 controller .....................................................................................1.6 encoder ........................................................................................1.6 function key.................................................................................1.6 home (position) ..........................................................................1.6 home search ................................................................................1.6 index pulse ...................................................................................1.6 jog .................................................................................................1.6 MM4005 controller ......................................................................1.6 motion device ..............................................................................1.6 move .............................................................................................1.6 origin ............................................................................................1.6 origin switch................................................................................1.6 pid .................................................................................................1.6 remote..........................................................................................1.6 stage..............................................................................................1.6 1.3 general description ...............................................................................1.7 1.3.1 features ........................................................................................1.9 1.3.2 specifications...............................................................................1.9 function........................................................................................1.9 number of motion axes ..............................................................1.9 trajectory type............................................................................1.9 motion device compatibility......................................................1.9 cpu type .......................................................................................1.9 dc motor control ........................................................................1.9 stepper motor control ................................................................1.9 computer interfaces .................................................................1.10 utility interface ..........................................................................1.10 operating modes .......................................................................1.10 programming .............................................................................1.10 program memory ......................................................................1.10 display ........................................................................................1.10 dimensions.................................................................................1.10 power requirements .................................................................1.10 fuses ...........................................................................................1.10 operating conditions ................................................................1.10 storage conditions ....................................................................1.10 weight.........................................................................................1.10 free datasheet http:// edh0162en1040 06/99 1.2 table of contents section 1 1.3.3 modes of operation ..................................................................1.11 local mode ..............................................................................1.11 remote mode ..........................................................................1.12 immediate mode........................................................................1.12 remote commands in local mode.......................................1.12 1.3.4 rear panel description .............................................................1.13 axis modules..............................................................................1.13 gpio connector.........................................................................1.13 power inhibition connector.....................................................1.14 auxiliary connector ..................................................................1.14 remote control connector ......................................................1.14 rs-232-c connector ..................................................................1.14 ieee-488 connector ...................................................................1.14 power switch/entry module ....................................................1.14 ground post ...............................................................................1.14 1.3.5 front panel description............................................................1.15 power stand-by..........................................................................1.15 motor on/off .............................................................................1.15 numeric keypad ........................................................................1.16 function keys / display ...........................................................1.16 1.3.6 display configuration ...............................................................1.16 display organization ................................................................1.16 menu structure..........................................................................1.17 common function keys ...........................................................1.17 status display ............................................................................1.17 1.3.7 display structure.......................................................................1.18 motor menus .................................................................1.18 motor menu...................................................................1.19 1.4 system setup ........................................................................................1.20 1.4.1 connecting motion devices .....................................................1.21 1.4.2 first power on ...........................................................................1.21 1.4.3 verifying default devices .........................................................1.22 on off free datasheet http:// 1.3 edh0162en1040 06/99 MM4005 4-axis motion controller/driver section 1 introduction safety considerations the following general safety precautions must be observed during all phas- es of operation of this equipment. failure to comply with these precautions or with specific warnings elsewhere in this manual violates safety stan- dards of design, manufacture and intended use of this equipment. disconnect or do not plug in the power cord in the following circum- stances: if the power cord or any other attached cables are frayed or damaged in any way. if the power plug or receptacle is damaged in any way. if the unit is exposed to rain, excessive moisture or liquids are spilled on it. if the unit has been dropped or the case is damaged. if you suspect service or repair is required. whenever you clean the case. to protect the equipment from damage and avoid hazardous situations, fol- low these recommendations: do not open the equipment. there are no user serviceable or adjustable parts inside. 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. do not operate the unit in an explosive atmosphere. keep all air vents free of dirt and dust. do not block air vents with paper or other objects. keep all liquids away from unit. do not expose equipment to excessive moisture (>85% humidity). 1.1 free datasheet http:// edh0162en1040 06/99 1.4 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. if you are unable to insert the plug into your wall plug receptacle, con- tact your electrician to perform the necessary alterations to assure that the green (green-yellow) wire is attached to earth ground. caution this product operates with voltages that can be lethal. pushing objects of any kind into cabinet slots or holes, or spilling any liquid on the product, may touch hazardous voltage points or short-circuit parts. caution opening or removing covers will expose you to hazardous voltages. refer all servicing internal to this instrument enclosure to qualified ser- vice personnel who should observe the following precautions before pro- ceeding: turn power off and unplug the unit from its power source; disconnect all cables; remove any jewelry from hands and wrists; use only insulated hand tools; maintain grounding by wearing a wrist strap attached to the instru- ment chassis. free datasheet http:// 1.5 edh0162en1040 06/99 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. warning warning. calls attention to a procedure, practice or condition which, if not correctly performed or adhered to, could result in injury or death. caution caution. calls attention to a procedure, practice or condition which, if not correctly performed or adhered to, could result in damage to equipment. note note. calls attention to a procedure, practice or condition which is consid- ered important to remember. menu level (sample). indicates the menu level from which to start a cer- tain quick front panel sequence. function key (sample). represents one of the four function keys identified on the display s menu line with the indicated word. function key (sample). represents one of the four function keys identified on the display s menu line with the indicated word that must be pressed multiple times. fast front panel sequence. indicates a quick key sequence description to get the described function. it is intended to be used by more experienced users as a quick reminder. remote command. indicates a remote command equivalent to the local function being described. numeric keypad. represents the numeric keypad on the front panel. shown in a fast sequence, indicates a numeric entry on the keypad. 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up status motor off 1.2 free datasheet http:// edh0162en1040 06/99 1.6 MM4005 introduction 1.2.2 terminology the following is a brief description of terms specific to motion control and this instrument that are used in this manual. 1.2.2.1 axis a logical name for a motion device. 1.2.2.2 controller in this manual refers mostly to the MM4005 controller/driver. 1.2.2.3 encoder displacement measuring device, term usually used for both linear and rotary models. 1.2.2.4 function key one of the four keys associated with the display; its function is determined by the current menu. 1.2.2.5 home (position) the unique point in space that can be accurately found by an axis, some- times called origin. 1.2.2.6 home search a specific motion routine used to determine the home position. 1.2.2.7 index pulse a precision, encoder generated pulse, used in the home search algorithm. 1.2.2.8 jog undetermined length motion initiated manually. 1.2.2.9 MM4005 controller refers to the MM4005 integrated controller/driver. 1.2.2.10 motion device an electro-mechanical motion device. 1.2.2.11 move motion to a destination initiated manually or remotely. 1.2.2.12 origin used sometimes instead of home. 1.2.2.13 origin switch a switch that determines an approximate point in space, used in the home search routine. 1.2.2.14 pid type of closed-loop control algorithm. 1.2.2.15 remote in this manual refers to the mode of operation where communication is performed over a computer interface link. 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. free datasheet http:// 1.7 edh0162en1040 06/99 MM4005 introduction general description the MM4005 is an advanced, stand-alone, integrated motion controller/dri- ver. it can control and drive up to 4 axes of motion, in any stepper and dc motor combination. the MM4005 controller/driver (also referred to in this manual as the controller ) was specifically designed to operate with newport s broad line of motion devices. this way, it significantly increases the user friendliness and raises the overall motion system performance. 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. fig. 1.1 ?minimal system configuration. in this configuration all commands are received from the front panel. programs can be generated and executed without using an additional com- puter. 1.3 free datasheet http:// edh0162en1040 06/99 1.8 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 switches and be part of a larger multi-axis sys- tem, controlled by a remote computer. fig. 1.3 a more complex controller configuration. to explore all capabilities of the MM4005 controller and identify the system configuration that best fits your application, you will have to read most of this manual or contact our applications support group for advice. to other motion controller remote motor off digital/analog i/o s free datasheet http:// 1.9 edh0162en1040 06/99 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. supports closed-loop operation of stepper motors. feed-forward servo algorithm for smooth and precise motion. velocity feedback motor drivers for best motion performance. advanced multi-axis synchronization (linear interpolation). powerful command set for the most demanding applications. motion program storage and management capability. advanced motion programming capabilities with up to 100 nested loops and complex digital and analog i/o functions. user-selectable displacement units. user-settable compensation for accuracy and backlash errors. full-featured front panel with bright fluorescent backlit display, numer- ic/jog keypad, context-sensitive function keys, full motion selection and control capability and motion program creation and editing capability. multilingual display capability english or french. 1.3.2 specifications 1.3.2.1 function integrated motion controller and driver. 1.3.2.2 number of motion axes 1 to 4, in any combination or order of stepper and dc motors. 1.3.2.3 trajectory type non-synchronized motion. multi-axis synchronized motion (linear interpolation). s-curve or trapezoidal velocity profile for non-synchronized and syn- chronized motion. the default configuration is s-curve velocity profile. 1.3.2.4 motion device compatibility entire family of motorized motion devices, using ether stepper or dc motors. 1.3.2.5 cpu type 5x86/100 processor. 1.3.2.6 dc motor control 16 bit dac resolution. 10 mhz maximum encoder input frequency. pid with velocity feed-forward servo loop. 0.3 ms digital servo cycle. 1.3.2.7 stepper motor control 1 mhz maximum pulse rate. full, half and mini step capability. open or closed-loop operation. pid with velocity feed-forward closed-loop mode. 0.3 ms digital servo cycle. free datasheet http:// edh0162en1040 06/99 1.10 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. remote motor off input (interlock). 1.3.2.10 operating modes local mode: stand-alone operation, executing commands from the front panel. remote mode: execution of commands received over one of the comput- er interfaces. program execution mode: execution of a stored program, initiated either remotely or from the front panel, or execution of a program at power-on. trajectory execution. 1.3.2.11 programming remotely via the computer interface. from the front panel. 1.3.2.12 program memory 30 kb (30 760 bytes), non-volatile. 1.3.2.13 display fluorescent backlit lcd. 40 mm x 130 mm, 6 lines by 30 characters. displays position, status, utility menus, program viewing and editing screens and setup screens. 1.3.2.14 dimensions 5.28 (3u) h x 19 w x 15.6 d in. (134 x 483 x 395 mm). 1.3.2.15 power requirements power supply with pfc (power form corrector) 90 to 264 v - 50/60 hz. motors off - 100 va max. motors on - 570 va max. 1.3.2.16 fuses ac line only. line voltage fuse type: t10a 250 vac. 1.3.2.17 operating conditions temperature: 0 to 40 c. humidity: <85%. altitude: <1000 m. 1.3.2.18 storage conditions temperature: -15 to 45 c. humidity: <85%. altitude: <1000 m. 1.3.2.19 weight 18 lb. max. (8 kg max.). free datasheet http:// 1.11 edh0162en1040 06/99 MM4005 introduction 1.3.3 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. fig. 1.4 functions available in local mode. operations that can be performed from the front panel depend on whether the power to the motors is turned on or off. a motion, for instance, cannot be performed when the motors are turned off and a general controller setup should not be done when the motors are on. setup can be activated only from local mode, motor off. in this mode, the user can set up the general operation of the controller and the parame- ters specific to every motion axis and motion device. the programming mode can be activated in local mode while motors are on or off. in programming mode, a motion program can be created or modified. motion is a general mode of operation in which an axis is commanded to move. the most complex motions result from executing a program. the other two cases are when a manual jog or a point-to-point move is execut- ed. home search is discussed separately because it is an important procedure that deserves special attention. in this mode, the controller is executing a home search algorithm on one or more axes. a home search cycle should not be interrupted. the controller will exit this mode automatically upon task completion. the controller displays a set of heirarchical menus to navigate the various controller modes. it can be viewed as a glue logic between all the other modes. manual move program execution setup program motion home search local mode motor off motor on free datasheet http:// edh0162en1040 06/99 1.12 MM4005 introduction 1.3.3.2 remote mode to operate in remote mode, the controller must be connected through one of its interfaces (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. fig. 1.5 the functions available in remote mode. the functions available in remote mode are similar to the ones in local mode. the main difference is that the motor / motor cases are handled by the command interpreter so there is no need to distinguish between them. the controller will refuse to execute motion commands when the motors are turned off and will set the appropriate error flag. another difference between local and remote is that the mode is not available remotely. some setup parameters can be changed but the controller cannot be placed remotely into a setup mode. programming mode is enabled and disabled by specific commands. all valid commands sent in this mode are not executed immediately but stored as part of a motion program. motion is a general mode of operation in which an axis is commanded to move. the most complex motions result from program execution. other types of motion include manual jog and a point-to-point move. home search mode has the same meaning and functionality as in local mode. a home search cycle should not be interrupted. the controller will exit this mode automatically on task completion. 1.3.3.3 immediate mode this is not an operating mode in which the controller can be placed. rather, the term merely differentiates the way the controller responds to remote commands. if a command is not being sent as part of a program, it is executed immediately in immediate mode. 1.3.3.4 remote commands in local mode the controller may be operated in local mode when connected to a remote computer. the local mode has many screen and menu combina- tions and most remote commands are ignored when not received at the top level menu. for this reason, always keep in mind the following recom- mendations: in local mode, avoid sending remote commands when not at the top menu level. when not at the local mode top menu level, restrict the use of remote commands to those that read information or stop motion. do not send remote commands when in local programming or setup modes. setup on off jog move program execution program motion home search remote mode free datasheet http:// 1.13 edh0162en1040 06/99 MM4005 introduction do not send remote commands when in an intermediate local mode (for instance when entering the value of a move). do not interfere with a home search cycle, including read commands. the preferred remote operation is the remote mode, obtained by using the appropriate command. 1.3.4 rear panel description before attempting to operate the MM4005, it must first be properly con- nected and configured. carefully unpack the controller and place it on a flat surface. save all packing materials. begin by familiarizing yourself with the connectors and controls on the rear panel (fig. 1.6). note for complete connector description and pin-outs see appendix b, connector pin-outs. fig. 1.6 rear panel of the MM4005. 1.3.4.1 axis modules the MM4005 can accommodate up to four motor driver cards. each motor driver card has a 25-pin d-sub connector, mounted on a small panel visible from the rear of the controller, for attaching the motion device. uninstalled axes have a blank panel with no connector. each driver module has an identification label which clearly specifies the model and the type of motor it is configured to drive. caution carefully read the labels on the driver cards and make sure the specifica- tions (motor type, voltage, current, etc.) match those for one the motion devices you intend to connect. serious damage could occur if a stage is connected to the wrong driver card. 1.3.4.2 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. axe 1 axe 2 axe 3 axe 4 gpio rs-232-c ieee-488 ground post power switch auxiliary motor interlock remote control attention pour une continuit? de protection contre les risques de feu, remplacer uniquement avec des fusibles de type et de caract?ristiques sp?cifi?es utiliser seulement des fusibles: t6.3a/250v entree ca (s?lection automatique) ac input (automatic selection) 100-127v 3.6a 200-240v 1.8a 50/60hz 400va max. warning for continued protection against risk of fire, replace only with fuse of the specified type and current rating. use only fuse: t6.3a/250v o i a u x i l i a r y r s 2 3 2 i e e e 4 8 8 g p i o p o w e r / i n h i r e m o t e c o n t r o l caution do not connect or disconnect while power is applied dc motor p/n: e1025a option # (ue17cc) v = 12v, i = 0.22a 5vdc encod. supply: caution do not connect or disconnect while power is applied dc motor p/n: e1025a option # (ue17cc) v = 12v, i = 0.22a 5vdc encod. supply: caution do not connect or disconnect while power is applied dc motor p/n: e1025a option # (ue17cc) v = 12v, i = 0.22a 5vdc encod. supply: caution do not connect or disconnect while power is applied dc motor p/n: e1025a option # (ue17cc) v = 12v, i = 0.22a 5vdc encod. supply: free datasheet http:// edh0162en1040 06/99 1.14 MM4005 introduction 1.3.4.3 power inhibition connector this 9-pin d-sub connector provides remote motor power interlock capa- bility. one or more external switches can be wired to remotely inhibit the motor power in a way similar to the motor button on the front panel. the controller is shipped with a mating 9-pin connector installed that provides the necessary wiring to enable proper operation without an external switch. 1.3.4.4 auxiliary connector this 25-pin d-sub connector has two active lines. one is for motor power status indication and the other for frequency generator output. the fre- quency generator is controlled by the motion program and has a frequency range of 0.01 to 5000 hz. 1.3.4.5 remote control connector this 15-pin d-sub connector provides two functions. the first is similar to the power inhibition connector. the two active pins must be short-circuited for the motor power to be enabled. the connector s second function is to provide inputs for the two analog ports. these ports are two independent 8 bit analog-to-digital converters. programming commands allow the user to read and manipulate the informa- tion provided by these ports. the controller is shipped with a mating 15-pin connector installed that pro- vides the necessary wiring to enable the activation of motor power. 1.3.4.6 rs-232-c connector this 9-pin d-sub connector provides an rs-232-c interface to a host com- puter or terminal. the port has a three-line configuration using a software (xon/xoff) handshake. the pinout enables the use of an off-the-shelf, pin- to-pin cable. the port provides internally the necessary jumpers to bypass the hardware handshake, if needed. 1.3.4.7 ieee-488 connector this is a standard 24-pin ieee-488 connector. 1.3.4.8 power switch/entry module the power entry module include a standard iec 320 inlet combined with a line filter, fuse box and main power switch. the main power switch turns power on and off to the entire unit, including the stand-by circuit. 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. while familiarizing yourself with the rear panel and its components, leave the main power switch in the off position. always make certain the power switch is in the off position before plugging in the power cord. 1.3.4.9 ground post the ground post provides an additional chassis ground connection when needed. the MM4005 controller chassis can be externally grounded, in addition to or instead of the grounding supplied through the ac cord. off free datasheet http:// 1.15 edh0162en1040 06/99 MM4005 introduction 1.3.5 front panel description a general view of the front panel is shown in fig. 1.7. there are three dis- tinct areas, from left to right: power controls, a display and function keys, and a keypad. 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. to differentiate from the rear main power switch, this button is called power stand-by . the power stand-by switch has two led indicators. a red led on top, indi- cates that the controller is powered off but the rear power switch is on. this is the stand-by mode. a green led below, indicates the controller power on condition. 1.3.5.2 motor on/off for convenience and safety reasons, the power to the motors can be con- trolled separately. this is done from the front panel through two buttons labeled motor and motor . for easier identification, the motor button has a red bezel. a green led on top of the motor provides a quick visual indication of the motor power on condition. note the motor button is a normally closed switch wired in series with the two motor interlock switch connections on the rear panel. for the motors to turn on, the entire circuit must be closed. off on off on off i/o motor stand-by o i jog axis 2 axis 3 axis 4 axis 1 motion controller model MM4005 0 . 0000 mm 0 . 0000 mm 0 . 0000 mm 0 . 0000 mm 1: 2: 3: 4: home manua l move prog off on display keypad axis 1 row 2 adjusting screws contrast brightness motor on switch motor on indicator motor off switch on indicator menu line negative jog column function keys high speed column positive jog column stand-by indicator free datasheet http:// edh0162en1040 06/99 1.16 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. for details on using the keypad for jog control see section 2, local mode. 1.3.5.4 function keys / display the central part of the front panel is occupied by a large display and four function keys. the display is a six-line back-lit lcd which shows both menu and status information. below the display are four function keys. their context-sensitive functions are always given on the bottom line of the display window. the contents of the display window are described in detail in section 2. 1.3.6 display configuration 1.3.6.1 display organization the display has six lines with a maximum of 30 characters each. for better visibility, the characters are bright on a dark background. information is highlighted using dark characters on a bright background. on the right of the function keys, 2 screws permit to adust the contrast and the brightness of the display. caution saturation brightness reduces the display lifetime. thebottom line of the display, line number 6, is reserved exclusively for defining the four function keys. the next line up, line number 5, is primarily used to display messages, defi- nitions or other helpful information. it generally displays information in reverse mode. fig. 1.8 typical display contents. in the above example, line number 6 displays the current function of the function keys and line number 5 informs us that the controller is idle, wait- ing for the operator to select an action. lines number 1, 2, 3 and 4 identify the axis number and display the current position of each. note that in the example, the controller detected that there is no motion device connected to axis number 4 and displays the message unconnected. when the controller is in some modes ( , , etc.), the first four lines will display specific information while the fifth one will be reserved for helpful messages. prog. setup manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ud con 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 dg . e free datasheet http:// 1.17 edh0162en1040 06/99 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. the bottom line on the display (line 6) is dedicated to the four function keys. an option description field will appear above each key if it has an active function in the current menu. pressing a key will perform the select- ed command or will change the display to a new menu level. this capability to navigate between a number of menu levels to get to the desired com- mand is the basis of the local mode operation. 1.3.6.3 common function keys some of the function keys have the same definition in different menus. the following descriptions list the most common keys and their functions. terminates the current operation and returns to the menu one level up. in most cases, any unsaved entries are ignored. appears when an entry is required. it accepts the selected value and advances the display to the next menu. activates a lower-level menu that enables the user to make changes to the currently displayed parameter. scrolls the display up through a list of parameters. scrolls the display down through a list of parameters. is used when a numeric entry is required. it deletes the last character entered. note that for a value to be modified, it must first be activated and the sym- bol must precede it. scrolls the display through a number of choices in the same menu level. 1.3.6.4 status display pressing the function key activates the display to provide addition- al axis information. it does not change the menu level. fig. 1.9 axis status. to the left of the axis identifiers, as shown in figure 1.9, there are four char- acters that can appear depending on the status of each axis: o will appear only if a home search routine has been performed success- fully on that axis. it means that a mechanical origin has been found. indicates that the negative direction (usually left) limit switch has been activated (tripped). manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ud con 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 dg . e o o m m + + status next delete down up modify valid quit free datasheet http:// edh0162en1040 06/99 1.18 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. the state of this indicator does not affect the normal operation of the motion device. for a complete description of the home search algorithm see section 4, motion control tutorial. + indicates that the positive direction (usually right) limit switch has been activated (tripped). note if both - and + appear, the motion device is either disconnected or a hard- ware failure exists. on power-up sequence, the controller checks every axis for this case. if found, it assumes that no motion device is present. the axis is marked with unconnected on the display and all commands for it will be ignored. at the end of each axis information line an ok is displayed if no error has been detected. if a problem is detected on one of the axes, the message error will appear. 1.3.7 display structure this section describes the most common menus and display functions. only local mode menus will be addressed since they represent the vast majority of the front panel operations. as described in section 1.3.3 and illustrated in fig. 1.4, the local mode is divided into two sections: motor power and motor power . 1.3.7.1 motor menus 1.3.7.1 motor off m enus when motor power is turned off the controller power-on default mode the display function keys are as shown: this is the top level motor menu. each function is defined as follows: toggles the display for additional status information. activates the motion program management and generation environment. this mode can be activated from both motor and motor top level menus. when selected, the function keys change to: the creation and modification of a program section is addressed extensive- ly in the programming in local mode section of the local mode chapter. is described in detail in section 2.2, controller configuration. a brief intro- ductory description is provided here. the top level setup menu (after pressing ) offers the choice of two different setup categories and looks similar to fig. 1.10. setup setup quit modify creat. on off prog. status off setup prog. status off on off free datasheet http:// 1.19 edh0162en1040 06/99 MM4005 introduction fig. 1.10 top level menu. 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. this is important because any attempt to first power on the con- troller should be preceded by a verification of the proper setup. selecting activates a menu to set up each motion device connected and its parameters. by choosing you activate the general setup mode in which the gen- eral controller parameters (language, communication ports, etc.) are defined 1.3.7.2 motor menu 1.3.7.2 motor on menu when motor power is turned on, the four function keys are defined as fol- lows: this is the top level motor menu. these four choices can be grouped into three important categories: home search, motion commands and program management. activates the home search setup menu in which one or more axes can be selected to perform a sequential home search cycle. is a motion function which allows the user to manually jog each axis using the numeric keypad. is a motion function which activates a lower-level menu that offers position zeroing , manual jog and go-to-position functions. activates the motion program management and generation environment. this mode can be activated from both motor and motor top level menus. when selected, the next screen shows the following function choices: compared to the motor initiated menu, the motor menu adds the function which executes stored motion programs. the creation and modification of programs is covered in detail in the programming in local mode section of the local mode chapter. exec. on off exec. quit modify creat. on off prog. move manual home on prog. move manual home on gen. gen. axes axes setup axe u qit 1: 2: 3: 4: m r m t u50c 1 . m z u160 c0 m u ut 100 1 . c pp0 . s smn eu etup gen . 80pp c0 1 free datasheet http:// edh0162en1040 06/99 1.20 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. fig. 1.11 a minimal control system. note if you have not already done so, carefully unpack and visually inspect the controllers and stages. please save the packing material, in case you have to ship the controller in the future. place all components on a flat and clear work surface. check visually for any sign of damage and if found, report immediately to the carrier. note the front two legs of the chassis have a tab that, if rotated 90 forward, place the controller in a slightly angled position. to return the controller to horizontal position, lift the front side, pull on the tabs and return them to the original position. caution no cables should be connected yet to the controller. 1.4 free datasheet http:// 1.21 edh0162en1040 06/99 MM4005 introduction 1.4.1 connecting motion devices if you purchased a standard motion control system, you should have received all necessary hardware to set it up. first connect the motion device (stage) interface cables. these are 10-ft- long (3-m) cables with 25-pin to 25-pin d-sub connectors. insert them gen- tly as you would do with any computer cable, both into the stage and the appropriate driver card and secure them with the locking thumb-screws. caution carefully read the labels on the driver cards to be sure the specifications (motor type, voltage, current, etc.) match those for the motion devices you are connecting. serious damage could occur if a stage is connected to the wrong driver card. 1.4.2 first power on once all stages have been properly connected, you are ready to proceed with the power connection. caution make sure the main power switch on the power entry module is turned off before connecting the controller to the ac line. verify that the main power switch on the rear panel and the stand-by power switch on the front panel are turned off. plug the ac line cord in the power entry module on the rear panel. plug the ac line cord in the ac outlet. note at this point, no lights should appear on the front panel. turn the main power switch on the rear panel on. the red led indicator on the front panel marked stand-by should come on and stay on. at this point, the low power stand-by power supply is ener- gized. finally, press the red stand-by button once to turn the controller on. 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. it is displayed every time the controller power is turned on. free datasheet http:// edh0162en1040 06/99 1.22 MM4005 introduction now, the display shows the main power off menu, similar to fig. 1.12. fig. 1.12 display after initial power up. note if, instead of a screen similar to fig. 1.12 you see a different message, this means that the controller has detected an error. see appendix a, error messages and appendix e, troubleshooting guide. note if the display looks like fig. 1.16 but in a wrong language, follow these steps: 1 assume the following labeling convention for the function keys: 2 from the top level motor menu, press the function keys in this sequence: 3 press function key until the desired language appears. 4 press function key three times to return to the top level menu. 1.4.3 verifying default devices before powering the motors, verify that the controller is configured for the actual motion devices it is supposed to drive. from the main motor off menu, press the function key. the top-level setup menu will indicate on the first four lines the type of motion device each axis is configured for. the display should look similar to fig. 1.13. depending on your system configuration, different models will be listed. fig. 1.13 typical display slowing connected devices. axe u qit 1: 2: 3: 4: m r m t u50c 1 . m z u160 c0 m u ut 100 1 . c pp0 . s smn eu etup gen . 80pp c0 1 setup 4 2 3 3 4 off 4 3 2 1 ss u ta setup 1: 2: 3: 4: 0 0.00 m m n ud con 00 0.00 m m 0 nec t t st eaction lec . 000 deg e prog . free datasheet http:// 1.23 edh0162en1040 06/99 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: 1 from the main motor menu, select the key. 2 in the main setup menu press function key. 3 from the next menu press function key. this will let you select which axis you want to modify. (note the symbol on the first line, in front of the existing axis number.) using the numerical keypad, enter the axis number to be corrected and then press key to accept the selection and return to the previous screen. note remember that any time a numerical entry on the keypad must be cor- rected, the function key erases the last digit entered. 4 now press the key. this enters the product family selection screen. 5 use the or keys scroll through the product families until you find the one you need. 6 press the key to accept the product family currently on the dis- play. the next menu level consists of product models is the chosen product family. 7 use the or keys to scroll through the different product models of the chosen family. 8 press the key to accept the product model on the display and to advance to the next menu. 9 the next two screens are for changing the default axis parameters, but do not attempt to do at this point. press the key to pass through these screens without making any modifications. 10 when the display returns to a screen similar to fig. 1.14, observe the axis specified on the first line and the component on line two. they should correspond to the selections you made and to the motion device used on that axis. fig. 1.14 axis/device assignment. 11 if you need to modify another axis, repeat all steps starting with number 3. ele u qit m t u100c 5 . cha 0 r pa ame t c st axe# o my dif d o m: el er for s 1 # ax i valid valid down up valid down up yes delete valid axis # axes setup off free datasheet http:// edh0162en1040 06/99 1.24 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 have been made, the next screen will ask if you want to save the changes (fig. 1.15). fig. 1.15 save screen for axis modifications. 13 press the key to save the changes and return to the main setup menu. note if no changes have been made, the screen in fig. 1.15 will not appear. 14 press to return to the main motor menu. now, with all axes configured for the proper motion devices, we are ready to use the motion devices. off quit yes no o ne or l sa r e ave se hang s o io te ? erm np s ye e e bn d o m! ified ve axes e v a h r wa n i ng ! c quit free datasheet http:// section 2 local mode free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 2.1 edh0162en1040 ?06/99 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 emergency language reset .......................................................2.9 command language set .............................................................2.9 speed scaling ...............................................................................2.9 communication time-out.........................................................2.10 home time-out .........................................................................2.10 terminator .................................................................................2.11 communication .........................................................................2.11 ieee-488 address.......................................................................2.12 ieee-488 srq used ....................................................................2.12 baud rate ...................................................................................2.12 xon/xoff mode........................................................................2.13 parity...........................................................................................2.13 word length ..............................................................................2.14 stop bits .....................................................................................2.14 axis home sequence................................................................2.14 master-slave mode definition..................................................2.15 program automatical execution on power on......................2.16 profile type................................................................................2.16 2.2.2 axis setup...................................................................................2.16 axis number selection .............................................................2.17 motion device selection...........................................................2.17 modifying axis parameters ......................................................2.18 units ............................................................................................2.18 motion type...............................................................................2.19 home type ................................................................................2.19 motor type ................................................................................2.19 control loop ..............................................................................2.20 periodicity ..................................................................................2.20 motor increment .......................................................................2.21 encoder increment....................................................................2.21 scaling speed .............................................................................2.22 maximum speed ........................................................................2.22 manual speed.............................................................................2.23 home speed ..............................................................................2.23 acceleration ...............................................................................2.24 minimum position .....................................................................2.24 free datasheet http:// edh0162en1040 06/99 2.2 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 2.3.5 absolute moves .........................................................................2.34 single axis absolute move .......................................................2.35 multiple axes absolute move ..................................................2.35 2.3.6 program execution....................................................................2.35 2.3.7 axis infinite movement.............................................................2.36 2.3.8 stop axis infinite movement ....................................................2.37 2.4 programming in local mode...............................................................2.37 2.4.1 general concepts ......................................................................2.38 2.4.2 creating a program ...................................................................2.38 command line creation...........................................................2.39 while loop creation ...............................................................2.42 2.4.3 modifying a program.................................................................2.43 free datasheet http:// 2.3 edh0162en1040 06/99 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. caution you should at least read the system setup section of the introduction before attempting to turn on the controller or the motors. serious dam- age could occur if the system is not properly configured. 2.1.1 motor on after first turning the controller on as described in the previous section, you are ready to turn the motors on. be sure that the motion devices are placed on a flat surface and that their full travel will not be obstructed. caution be prepared to quickly turn the motor power off if you observe any abnormal operation. press the motor button on the front panel. you may hear a small relay click inside the controller as the green led indicator on the button lights. if no errors are detected, the green led will stay lit. the display switches to the top level motor-on menu: the motion system is ready for a command. prog. move manual home on 2.1 free datasheet http:// edh0162en1040 06/99 2.4 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. finding the home position of a motion device is important for two reasons. first, after each power off/on cycle, you must position the stage accurately in space. this means that the controller must find a zero position that is always in the same point in space, relative to the base. secondly, in order to prevent the motion device from running into the limits and possibly causing damage, the controller must determine its position on power-up. from the top level motor-on menu press the function key. the dis- play will ask you to select an axis for the execution of a home search rou- tine. use the keypad to enter a number and then press . if you want to perform a home search on all axes, leave the default 0 and press . the axis will start moving, the function keys will be disabled and the display will indicate the progress of the routine. when all selected axes complete the home search cycle, the display returns to the top level motor-on menu. the stages are ready for a move. 2.1.3 first jog from the top level motor menu press the function key. the display switches to the manual jog screen and menu. as the message on line number 5 instructs you to do, use the keypad to jog any installed motion device. since this is the first time you are using the keypad for jogging, some clarifi- cations are needed. the keypad is a 3-column by 4-row matrix (fig. 2.1). fig. 2.1 ?using the numeric keypad to jog. concentrate first on the column convention. for better identification, we can label them ? , ? and ? (fig. 2.2). 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manual on valid valid home free datasheet http:// 2.5 edh0162en1040 06/99 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. column ? is used for high-speed jogging. if a key in column ? is pressed simultaneously with one in column ? or ? , the axis will jog at high speed in the selected direction. now, lets take a look at the keypad row convention (fig. 2.3). fig. 2.3 the rows of the numeric keypad indicate the axis that will jog. each key row controls one axis, as indicated by the label on the left. to summarize, if you want to jog fast axis number 2 in the positive direc- tion, press simultaneously the keys numbered and . to exit the manual jog mode press the key. 2.1.4 first move from the top level motor menu press the function key. the display will offer you the following menu: you can start by pressing the key to command an absolute motion. the next screen will look similar on the top four lines, with the exception of the symbol in front of the first active axis position. as you recall, this means that a numerical input is required for the marked value. use the keypad to enter a desired destination (absolute position). to cor- rect the entry use the key. when finished, press the key to accept the value. valid delete absol. next absol. relat. manual move on quit 6 5 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 1 4 7 2 5 8 3 ??? 3 6 9 . - 0 free datasheet http:// edh0162en1040 06/99 2.6 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 following menu appears: press the key and observe the motion devices. they will rapidly move to the requested destinations and when motion is complete, the dis- play will return to the motion selection menu: to execute a relative motion, select the function key. the same position entry screen appears as for the absolute motion, with the excep- tion that all position values are zero, rather than the current absolute posi- tion. this is because motion is made relative to the current position instead of absolute home. enter desired relative motion values as described earlier. when complete, the display changes to the following menu: pressing the key will start the relative motion on all axes. the dif- ference from the absolute motion is that, when the relative motion on all axes is finished, the display returns to the same menu. this means that you can repeat the relative motion again and again by pressing the key. if you entered relative motion values on multiple axes, but only need to move one, use the same jog keypad convention and press a key from col- umn ? or ? that corresponds to the axis you want to move. one special note about the keypad in this mode. if you enter a negative value for a relative move and you press a key in column ? , the move will be in the negative direction. if a key in column ? is pressed, the move will be in the positive direction. in other words, pressing a key in column ? will initiate a relative move in the opposite direction than requested. to exit the relative move mode press the key. to exit the move mode and return to the top level motor-on menu, press the key again. now that you know how to jog and move motion devices, experiment with front-panel-initiated motions to become familiar with the controller and the local motion modes. note remember that only motions with destinations inside the software travel limits are allowed. any entry outside these limits will be ignored. quit quit all all quit all relat. quit absol. relat. manual exec. quit exec. valid free datasheet http:// 2.7 edh0162en1040 06/99 MM4005 local mode controller configuration now that you have had the chance to perform some basic motion com- mands in local mode more details on the controller s operation are in order. 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 menu: pressing the function key will enter the setup mode and display the main setup screen and menu (fig. 2.4). fig. 2.4 typical main setup menu. there are two types of setup functions: axis setup and general setup. the following sections will describe both in detail. 2.2.1 general setup general setup is entered by pressing the function key in the top level setup menu. the display will change to the one illustrated in fig. 2.5. fig. 2.5 setup menu. the top display line (number 1) indicates the setup mode (or level). line number 3 displays one parameter at a time and its current value. line num- ber 5 displays an operator prompt. the function key definition line (number 6) displays a menu that is com- mon for most setup screens at this level. the first two functions, and , perform scrolling through a list of parameters. down up gen. u qit elec sl dy ipa s up w do n d mo i f y g n a l:english uage t se up n ge era l tu lan age g gen. axe u qit 1: 2: 3: 4: m r m t u50c 1 . m z u160 c0 m u ut 100 1 . c pp0 . s smn eu etup gen . 80pp c0 1 setup setup prog. status off 2.2 free datasheet http:// edh0162en1040 06/99 2.8 MM4005 local mode pressing the key enters a lower level menu that allows modifica- tion of the currently displayed parameter. if the value needed is provided from a short list, the new menu looks like this: the key scrolls through the list, exits this level without recording any modification and also returns to the previous screen (level) but the displayed value is stored as the new entry for the selected parameter. if a parameter requires a numerical value, the menu level that allows modi- fications will have the following choices: the numerical value displayed will have a sign in front, indicating that a numerical entry from the keypad is expected. for simple editing, pressing the key erases the last digit of the numerical entry. the key accepts the value for the selected parameter and returns to the previ- ous menu. the key returns to the previous menu without keeping any modifications. note this manual contains detailed descriptions, mostly with the first time reader in mind. to help the more experienced user looking for a quick memory refresher, each operation description is also accompanied by a quick front panel key sequence and, if appropriate, the remote command that accomplishes the same function. 2.2.1.1 language selection the first parameter displayed from the general setup list is the display lan- guage. 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 key. the new menu displayed is press the key until the desired language is displayed. press the key to accept the selection and return to the previous menu. the display will now use the new selected language. quit quit valid change modify gen. setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change valid quit change modify quit valid delete valid quit delete valid quit change valid quit change modify free datasheet http:// 2.9 edh0162en1040 06/99 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: 2 from the top level motor-off menu (power-on default screen), press the function keys in this sequence: 3 press function key until the desired language appears. 4 press function key three times to return to the top level menu. 2.2.1.3 command language set the second parameter in the general setup menu (selected by pressing the key once) is the command language set, labeled as controller. this is the only parameter that you must not change. it selects the com- mand set the controller will respond to. the selection exists only to assure compatibility with future controller models. always leave the setting on standard. press the key to advance to the next parameter. 2.2.1.4 speed scaling the speed scaling parameter offers a feature not present in many high-end controllers. it allows an user to execute a motion program at a reduced speed to more easily observe its operation. this feature is a great help in troubleshooting complex programs. to change speed scaling from the general setup menu, press the key until the speed scaling parameter is selected in the display. to change the value, press the key. the display will prompt you to change the existing value by preceding it with the sign. use the keypad to enter the desired % value. the maximum value is 100% , meaning that the controller will run with the actual programmed velocities. to reduce the program exe- cution speed to half of the programmed value, enter 50. this means that all velocities in a program will be reduced to 50%. sd set scaling speed. note in the following paragraphs it is assumed that you need to modify only the mentioned parameter. for that reason, the key sequence description starts from the general setup menu and the quick key sequence starts and stops at the top level motor menu. if you need to modify more than one parameter, advance through the list with the key, without returning each time to the top menu. up off quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed modify up up up 4 2 3 3 4 4 3 2 1 free datasheet http:// edh0162en1040 06/99 2.10 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. press and then enter the desired value on the keypad. press the key to accept the entry and return to the previous menu. the default value is 1 seconds. cmoxx set communication setup. 2.2.1.6 home time-out this parameter sets the time duration for which the controller will wait for each axis to complete a home search routine. since the controller cannot be interrupted during a home search, this parameter provides a time-out in case of malfunction. use this parameter with discretion. a small value will cause the controller to falsely report an error when the stage starts a home search cycle from an extreme distance and does not have enough time to complete it. a large value prevents the controller from detecting a real problem, when the home search cycle takes an excessive amount of time. an ideal home time-out value is about 20% over the time it takes the slowest stage installed to perform a home search. the longest time is usually when the stage starts from the farthest point away from the origin switch. to change the existing value, from the general setup menu, press until the parameter appears on the display. press and then enter the desired value on the keypad. press the key to accept the entry and return to the previous menu. the default value is 90 seconds. quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid modify up quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid modify up free datasheet http:// 2.11 edh0162en1040 06/99 MM4005 local mode 2.2.1.7 terminator this parameter defines the terminator to be used in communication with a host computer or a terminal. as described in the remote mode section, the controller responds to command lines, not characters. in order for a com- mand to be acted upon, it must be followed by the terminator. the MM4005 controller offers a choice of four command line terminators which are combinations of line-feeds and carriage-returns: lf, cr, cr/lf and lf/cr. to change the existing selection from the general setup menu, press until the terminator parameter appears on the display. press and then the key until the desired terminator is selected. press the key to accept the entry and return to the previous menu. the factory default terminator is lf. cmtxx set communication terminator. 2.2.1.8 communication 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. default mode is rs-232-c. to change the existing selection from the general setup menu, press until the communication parameter appears on the display. press and then the key to select a new communication port. press the key to accept the entry and return to the previous menu. cmmxx set communication mode. quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up free datasheet http:// edh0162en1040 06/99 2.12 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. default address is 2. to change the existing address from the general setup menu, press until the ieee address appears on the display. press and then enter the desired address on the keypad. press the key to accept the entry and return to the previous menu. cmaxx set ieee communication address. 2.2.1.10 ieee-488 srq used the srq line is an ieee-488 handshake that ensures proper transmission of large files (trace data, large programs, etc.) default is no. even if the ieee port is not selected for use, the controller will still prompt you for an entry. if not applicable, just ignore the selection by pressing the key and advancing to the next parameter. to enable or disable the use of the srq from the general setup menu, press until the ieee srq used appears on the display. press and then the key to select a new setting. press the key to accept the entry and return to the previous menu. cmqxx set ieee communication srq mode. 2.2.1.11 baud rate this parameter applies to the rs-232-c interface. it sets the communication speed to be used on this port. the valid range is from 1200 to 115200. the fac- tory default is 9600 baud rate. if the ieee interface is used, ignore the selection by pressing the key and advancing to the next parameter. to set the baud rate from the general setup menu, press until the baud rate parameter appears on the display. press and then the key to select a new value. press the key to accept the entry and return to the previous menu. valid change modify up up quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up up quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid modify up up free datasheet http:// 2.13 edh0162en1040 06/99 MM4005 local mode cmbxx set serial communication baud rate. 2.2.1.12 xon/xoff mode xon/xoff mode synchronizes work between the transmitter and the receiver. in this mode, xon and xoff characters are sont automatically generated (xoff if the receipt buffer is almost full and risks to be erased, xon if the receipt buffer is sufficiently emptied to receive new characters). to change the setting, from the general setup menu, press until the xon/xoff mode appears on the display. press and then the key to select yes. press the key to accept the entry and return to the previous menu. the factory default is no. cmxxx set serial communication xon/xoff mode. 2.2.1.13 parity parity must be set correctly for the rs-232-c communication to work prop- erly. as the standard suggests, when a word length of less than 8 is used, the parity bit can be set to odd or even. both communicating devices must use the same setting. the possible settings are odd, even and none. the factory default is none. if the rs-232-c is not used, ignore the selection by pressing the key and advancing to the next parameter. to change the setting, from the general setup menu, press until the parity parameter appears on the display. press and then the key to select a new parity. press the key to accept the entry and return to the previous menu. cmpxx set serial communication parity. quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up up quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed free datasheet http:// edh0162en1040 06/99 2.14 MM4005 local mode 2.2.1.14 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 key and advancing to the next parameter. to change the rs-232-c word length from the general setup menu, press until the word length parameter appears on the display. press and then the key to select a new value. press the key to accept the entry and return to the previous menu. cmlxx set serial communication data length. 2.2.1.15 stop bits the stop bits must also be set to the same value on both the controller and remote computer for rs-232-c communication. the possible options are 1 and 2 bits. the factory default is set at 1 bit. if the rs-232-c is not used, ignore the selection by pressing the key and advancing to the next parameter. to change the rs-232-c stop bits setting from the general setup menu press until the stop bits parameter appears on the display. press and then the key to select a new value. press the key to accept the entry and return to the previous menu. cmsxx set serial communication stop bit number. 2.2.1.16 axis home sequence the axis home sequence performs a home search cycle on multiple axes. when a home search routine is invoked, you may execute it on one or all axes. if you choose to perform a home search on all axes, you may specify the order in which axis home sequences are executed. for example, the controller may be configured to first perform a home search on axis num- ber 3, then on axis number 2, 4 and 1. to change the axis home sequence you must set the priority of each axis. if, for instance, you want axis number 3 to execute first, you must set its priority (order) to 1. to change the order of the home search, from the general setup menu press until the 1st axis home appears on the display. press and then enter the desired priority (order) number on the keypad. press the key to accept the entry and return to the previous menu. valid modify up quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up up quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up up free datasheet http:// 2.15 edh0162en1040 06/99 MM4005 local mode press again to display 2nd axis home. press and then enter the desired order (priority) number on the keypad. press the key to accept the entry and return to the previous display. if you followed the general setup procedure up to this point, pressing the key will bring you back to the language parameter, the first one covered at the beginning of this section. press to return to the top level setup menu. to exit the setup menu press the key again. 2.2.1.17 master-slave mode definition master-slave mode defined the relation between the master and slave axis in the master hierarchy system.the slave axis number is displayed with small character inverted video. for axis # xx: master axis nn = 0: axis # xx is independant master axis nn = between 1 and 4 ( xx): axis # xx is independant. press the key until the master-slave mode appears and then press the key to select the slave axis. to change the master axis, press the key and then the key to modify the axis number with the numeric keypad. to accept the new master axis number (must be dif- ferent from the slave axis number), press the key. the factory default is no. ss set master-slave mode. quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog master modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid master modify up up quit quit up quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid modify up free datasheet http:// edh0162en1040 06/99 2.16 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 and then select the program number with the numeric keypad. to accept this program number, press the key. to select the number of time to execute this program, enter a value with the numeric keypad and then press the keypad to confirm this entry. the program number default is 0. 2.2.1.19 profile type this menu defined the type of velocity profile: trapezoid or s-curve the scurve type avoids brutal changes of the speed in the course of axis displacement, consequently, it improves the platines quality of movement. press the key until the profile type appears. press and then the key to select s-curve or trapezoid. to accept this entry, press the key. 2.2.2 axis setup the axis setup is entered by pressing the function key in the top level setup menu. when activated, the display changes to one similar to fig. 2.6. fig. 2.6 axis setup menu. this menu is the top level axis setup menu, labeled in the quick key sequence listing. the first line displays the axis number to be reviewed. the second shows the motion device (stage) connected to the selected axis. your display will show the motion device connected to axis number 1. axis setup ele u qit e dfaul p p t- r pa ame f s t c st ax i s # o my dif m o c: ponen t er or axi 1 s# axes quit quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid change modify up quit quit valid change valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid valid modify up free datasheet http:// 2.17 edh0162en1040 06/99 MM4005 local mode on the menu line, all four function keys are active. exits this level and returns to the previous menu. the other functions are discussed in the following paragraphs. 2.2.2.1 axis number selection as mentioned earlier, line number 1 of the top level axis setup menu dis- plays the axis number. the default is number 1. to select a different axis to display (and change) press the key. in front of the axis number, at the end of the first line, the symbol appears, indicating that the con- troller is expecting a numerical entry from the front panel s numerical key- pad. enter the desired axis number and then press the key. if you need to correct the entry, use the key to erase the number or, if you changed your mind, exit by pressing the key. 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. from the top-level axes setup menu press the key. this activates a screen to change the product family. a family represents a group of motion devices with the same prefix. use the or keys to scroll the family list. when the desired product family is displayed, press the key to accept the entry and advance to the next menu, the model selection. note notice that the first product family displayed is default. this is to allows the user to define the parameters of a custom device or one that is not manufactured by newport. once a family is selected, the controller prompts you to pick a product model from the selected family. use the or keys to scroll the model list. when the desired product model is displayed, press the key to accept the entry and advance to the next menu. pressing the function key will return the display to the top level axes setup menu. note part of the component selection procedure is setting the pid parameters. it is strongly recommended that these parameters should not be changed from this menu. they are displayed here only for factory setup purposes. after a component model has been selected, the next menu displays the kp parameter. do not make any changes to the value; press . do the same for the following ki and kd parameters. this will return the display to the top level axes setup menu. valid quit valid down up valid down up select valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog axis # axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed quit delete valid axis # quit free datasheet http:// edh0162en1040 06/99 2.18 MM4005 local mode ta read motion device. sf set motion device. 2.2.2.3 modifying axis parameters once a new motion component has been defined for an axis, you can review its default parameters. the following discussion assumes that you want to see them all and will not exit after each one is displayed. note if you just want to change one parameter, you are probably familiar with the controller s operation and need just some pointers. for this case we included the quick key sequence and, where appropriate, the related remote commands. for simplicity, we start the quick key sequence from the top level axes setup menu, assuming that you already selected the axis number you want to make the change to. from the top level axes setup menu, press the key to view (select) the first axis parameter. to scroll the parameter list you can use the or keys. for consistency, in the following descriptions we will use only the key. 2.2.2.4 units units is the first axis parameter displayed. it represents the displacement units the controller will use for display and reporting. the available units are mm, m, in, min, in and inc for translation mechanical families and deg, grd, rad, mrad, rad and inc for rotary mechanical families. caution if you change the displacement units, you must revise all other parame- ters that are affected. all velocities, accelerations, travel limits, etc. must be scaled to the new units. to change the displacement units, press the key. next press the or key to select new units. press to accept the new units and return to the previous menu. press the key to advance to the next parameter. tn read displacement units. sn set displacement units. quit yes quit quit valid up modify modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid down up modify up down up modify valid valid valid up valid up select axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed free datasheet http:// 2.19 edh0162en1040 06/99 MM4005 local mode 2.2.2.5 motion type the motion type parameter should not be changed by the user. it selects between real and simulated motion. the real motion is the normal mode of operation. the simulated motion is a mode in which the motion commands are not actually performed and is intended to be used only by the factory personnel for testing purposes. 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. use the home type parameter to tell the controller if the home switch is real (for standard devices with an origin switch) or if it should be simulat- ed (for non-standard devices without a home switch). the simulated home switch (sometimes called floating) is assumed to be at the current position where the device is when the home search command is received. if you need to change the home type, press the key when the parameter is displayed. press the key to select a new home switch type. press to accept the new type and return to the previous menu. press the key to advance to the next parameter. 2.2.2.7 motor type this parameter selects the type of motor to be used with the motion device. the two choices are stepper and dc. caution the motor type configured in the setup mode must match the actual motor and driver installed on the specific axis. if the displayed motor type is incorrect for the selected axis, press the key to change the setting. press the key to select a new motor type. press to accept the new selection and return to the previous menu. press the key to advance to the next parameter. quit yes quit quit valid change modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid change modify quit yes quit quit valid change modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid change modify free datasheet http:// edh0162en1040 06/99 2.20 MM4005 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. if the servo loop in closed with an encoder, position errors are corrected both during the motion and at stop. all stages offered with the MM4005 are equipped with an encoder, includ- ing those driven by a stepper motor. the recommendation is to always use the closed-loop mode. note it is not recommended to operate a dc motor in open loop. this mode is used only at the factory to output a constant dc voltage to the motor dri- ver for testing and calibration purposes. if you need to change the control loop type, press the key to modi- fy the current setting. press the key to select a different loop type. press to accept the new loop type and return to the previous menu. press the key to advance to the next parameter. 2.2.2.9 periodicity this mode enables to display periodically (for example 0 to 360 ) for cer- tains of rotary mechanical families (default, rtm, urm). press the key to advance to the next parameter. press and then the key to select or . to accept this entry, press the key. if periodicity is , enter the displacement period with the numeric keypad and then press the key to accept this value. press two times and then the key to save changes. note processing of an axis infinite movement is possible only if a periodicity has been defined, and only for rotary stages. cd set periodical display mode. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid change modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed yes quit valid yes valid no yes change modify up quit yes quit quit valid change modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid change modify free datasheet http:// 2.21 edh0162en1040 06/99 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. depending on the type of stepper driver, the motor increment could be a full step, a half step or a micro-step. the motor increment parameter should reflect the actual stage/driver com- bination. a wrong setting will cause inaccurate closed-loop operation. for the pp families, the motor and the encoder increment (resolution) can be changed separately, on condition that the new value of motor increment would be inferior of the actual value of encoder increment. if you need to change the motor increment setting, press the key to modify the current value. use the numeric keypad to enter the correct value. press to accept the new setting and return to the previous menu. press the key to advance to the next parameter. 2.2.2.11 encoder increment this parameter defines the physical travel of the motion device that corre- sponds to one encoder count. it represent the resolution of the system and must reflect the real physical value (theoretical value, excluding all errors). note this parameter can be used to correct for a linear error in the motion device s absolute position accuracy. see the motion control tutorial sec- tion for more details. for the pp families, the motor and the encoder increment can be changed separatly, on condition that: if coder resolution motor resolution: ok. if coder resolution < motor resolution: ok but motor resolution = new coder resolution. if you need to correct the encoder increment setting, press the key to modify the current value. use the numeric keypad to enter the correct value. press to accept the new setting and return to the previous menu. press the key to advance to the next parameter. tu read encoder resolution. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// edh0162en1040 06/99 2.22 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). in other words, it is the velocity for a saturated dac. it is a hardware calibration factor and the default value should not be modified. for stepper motors it has a similar meaning but represents the stage veloci- ty corresponding to the maximum acceptable motor speed. if you need to set up a non-standard motion device that has no default para- meters, after determining the correct value (motion control expertise is required), press the key to set the scaling speed. use the numeric keypad to enter the correct value. press to accept the new setting and return to the previous menu. press the key to advance to the next parameter. 2.2.2.13 maximum speed this is the maximum velocity allowed for a given motion device. no pro- grammed velocities are allowed to exceed this value. it also represents the default velocity if no other value has been set previously (by a remote com- mand). it can be changed by the user but it should never exceed the default value. use the speed scaling parameter instead to temporarily reduce the motion velocities. if you are setting up a new motion device that has no default parameters and have defined the scaling speed, press the key to set the maximum speed. use the numeric keypad to enter a value that is about 80% of the scaling speed. press to accept the new setting and return to the previous menu. press the key to advance to the next parameter. dv read desired velocity. va set velocity. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// 2.23 edh0162en1040 06/99 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. to change the manual jog high speed, press the key when the manual speed parameter is displayed. use the numeric keypad to enter a new value. press to accept the new setting and return to the previ- ous menu. press the key to advance to the next parameter. mh set manual velocity. dm read manual velocity. 2.2.2.15 home speed this parameter sets the value of the home search high velocity portion. it is recommended that this value not be altered. if you are setting up a new motion device that has no default parameters, press the key to set the home speed. use the numeric keypad to enter a value that is equal to 50% of the maximum speed. press to accept the setting and return to the previous menu. press the key to advance to the next parameter. oh set home search velocity. do read home search velocity. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// edh0162en1040 06/99 2.24 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. the manual jog uses an acceleration ten times smaller than the value set with this parameter. to change the maximum acceleration, press the key. use the numeric keypad to enter a value and then press to accept the set- ting and return to the previous menu. press the key to advance to the next parameter. ac set acceleration. da read desired acceleration. 2.2.2.17 minimum position this parameter defines the negative (usually left) software travel limit. no motion will be allowed to exceed this position in the negative direction. caution do not set a value for this parameter more negative than the default value, otherwise the hardware limit switch will be tripped. to change the negative software travel limit, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. press the key to advance to the next parameter. sl set left travel limit. tl read left travel limit. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// 2.25 edh0162en1040 06/99 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. to change the positive software travel limit, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. press the key to advance to the next parameter. sr set right travel limit. tr read right travel limit. 2.2.2.19 home preset this feature is used to set the zero location according to the application s needs.this parameter defines the value that will be loaded into the position register when the motion device s home is found. the factory default is zero, meaning that at the home location the position is zero. if, for instance, this parameter is set to 12.3 mm, at the home location the controller reports position 12.3 mm. do not set a value for the home preset parameter that is outside the soft- ware travel limits. to change the home preset parameter, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. press the key to advance to the next parameter. sh set home preset position. xh read home preset position. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// edh0162en1040 06/99 2.26 MM4005 local mode 2.2.2.20 kp 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. for some general guidelines read the servo tuning section. to change the proportional gain factor kp, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. press the key to advance to the next parameter. kp set proportional gain. xp read proportional gain factor. 2.2.2.21 ki this parameter is the integral 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 need some knowledge of motion control loops and the help of a software utility. for some general guidelines read the servo tuning section. to change the integral gain factor ki, press the key. use the numer- ic keypad to enter a new value and then press to accept the setting and return to the previous menu. press the key to advance to the next parameter. ki set integral gain. xi read integral gain factor. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// 2.27 edh0162en1040 06/99 MM4005 local mode 2.2.2.22 kd 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. for some general guidelines read the servo tuning section. to change the derivative gain factor kd, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. press the key to advance to the next parameter. kd set derivative gain. xd read derivative gain factor. 2.2.2.23 ks this parameter is the saturation gain factor of the pid filter integrator. 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. for some general guidelines read the servo tuning section. to change the proportional gain factor ks, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. press the key to advance to the next parameter. ks read proportional gain factor. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// edh0162en1040 06/99 2.28 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. a small value will cause premature fault and a large value will not protect the system from a real problem. to change the maximum error parameter, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. if you have been following the axes setup procedure from the beginning of the section, pressing the key will bring you back to the first para- meter that was discussed. exit the axes setup by pressing the key. fe set max. following error. xf read max. following error. 2.2.2.25 backlash this parameter represents the mechanical hysteresis of motion device. use good judgment when setting this parameter. to change the backlash parameter, press the key. use the numeric keypad to enter a new value and then press to accept the setting and return to the previous menu. if you have been following the axes setup procedure from the beginning of the section, pressing the key will bring you back to the first para- meter that was discussed. exit the axes setup by pressing the key. xb read mechanical backlash. ba set mechanical backlash. quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed quit up valid modify quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed up valid modify free datasheet http:// 2.29 edh0162en1040 06/99 MM4005 local mode 2.2.2.26 display resolution this menu modified axis position (digit number after decimal point). the con- troller used this parameter to adjust exactly the mechanical displacement. to change the display resolution, press the key. use the numeric keypad to enter a new value and then press to confirm the setting and return to the previous menu. np set display resolution. 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. the following paragraphs describe this in detail. from the top level menu (the power-on default menu) press the motor button. the display will change to one similar to fig. 2.7. we will call this the top level motor-on menu. fig. 2.7 top level motor menu. note it is possible to press the motor button while in any menu. to avoid confusion and unexpected controller behaviors, it is strongly rec- ommended to turn the motor power on only when in the top level menu. note it is possible to press the motor button at any time. to avoid con- fusion, use this capability only for emergencies. during normal opera- tion, turn the motor power off only when in the top level menu. motor on off motor off on on a ml nu pr . og 1: 2: 3: 4: 0 0.00 m m n ud con 00 0.00 m m 0 nec t a home st eaction lec . 000 deg e mov e on motor off 2.3 quit yes quit quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog modify up modify axis setup 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid modify free datasheet http:// edh0162en1040 06/99 2.30 MM4005 local mode 2.3.1 home search the home search routine is a sequence of high and low speed motion seg- ments through which the controller determines the exact location of a home (origin) switch and an encoder index pulse. a detailed description of the algorithm can be found in the motion control tutorial section. note it is strongly recommended that the user perform a home search routine after each controller power-on or reset. the controller must know the exact initial position of the motion device not only to accurately repeat a motion sequence (program) but also to prevent it from hitting the travel limits (limit switches). a limit switch detection is interpreted as a major fault and the motor power is turned off immediately. to perform a home search routine, press the function key from the top level power-on menu. the display will prompt you to select which axis should execute the home search. use the keypad to indicate an axis num- ber. if you enter or accept the default number 0, the controller will execute the home search routine sequentially on all installed axes, in the order specified in the general setup. or search for home. note the position value assumed at the home position is defined in the axis setup using the home preset value or through the sh command. 2.3.2 manual jog manual jog is a commonly used local mode front panel function. the selected axis will move at a pre-defined velocity. 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 function key is labeled and functionality is identical. in the manual jog mode, the display looks similar to fig. 2.8. fig. 2.8 using the jog menu. ss ta u qit 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t tu zero e s upaf do knua mljo ey r a g . 345 dg . ed manual motor on valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog home motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed home free datasheet http:// 2.31 edh0162en1040 06/99 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. to jog at a high speed, simulta- neously press the corresponding middle key with one of the jog direction keys. note the high speed manual jog velocity is set in the axis setup mode or by using the mh command. the low speed manual jog velocity is 10% of the high speed value. mc set manual mode. to exit the manual jog mode press the key. there are two more function keys defined in the manual jog menu. the key is described in the next paragraph. the key is described in the introduction section, display configuration - status display paragraph. the key displays a number of status indicators in front of each axis identifier and a general axis condition message at the end of each axis line (fig. 2.9). fig. 2.9 status display. the four status indicators are 0 , , m and + have the following meaning: o will appear only if a home search routine has been performed suc- cessfully on that axis. it indicates that a mechanical origin has been found. indicates that the negative direction (left) limit switch has been activat- ed (tripped). m appears when the mechanical origin switch is in high state. as a stage moves from one end 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. the state of this indicator does not affect the nor- mal operation of the motion device. for a complete description of the home search algorithm see section 4, motion control tutorial. + indicates that the positive direction (right) limit switch has been acti- vated (tripped). ss ta u qit 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t tu zero e s upaf do knua mljo ey r a g . 345 dg . ed + ?+ m o o status status zero quit quit 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manual motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed free datasheet http:// edh0162en1040 06/99 2.32 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. the axis is marked with unconnected on the display and all com- mands for it will be ignored. at the end of each axis information line an ok is displayed if no error has been detected. if a problem is detected on one of the axes, the message error will appear. 2.3.3 zero display during operation in local mode, the need may arise to force the current position to become zero. this means that, without moving, the current position is displayed and reported as zero. any subsequent motion will be referenced to this new zero location and the software limits will be recalcu- lated to reflect the change while keeping their absolute position relative to the stage. to activate this function from the manual jog menu, press the key. using the keypad, enter the axis number you want to select or leave the 0 default to zero all active axes. press the key to execute the com- mand. zp zero position. 2.3.4 relative moves a move is defined as a point-to-point motion. the initial point is the current position and the ending point is the destination, or desired position. there are two types of moves: relative and absolute. in this section we dis- cuss the relative moves. a relative move is defined as a move for which the destination is specified as an incremental distance from the current position. repeating a 1 mm rel- ative move command, for instance, will advance the motion device 1 mm at a time. for this reason, the relative motion is sometimes called incremental motion. from the top level menu press the key. this will activate the first move menu: select to activate the second move menu: select to come back in the first move menu or select to quit this menu. select the function key and the display will prompt you to enter the desired relative motion on the first active axis (fig. 2.10). relat. quit next next quit stop infini next next absol. relat. manual move motor on quit valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog zero manual motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed valid zero free datasheet http:// 2.33 edh0162en1040 06/99 MM4005 local mode fig. 2.10 relative motion menu. all displayed positions become zero and the symbol indicates which numerical value will be changed with the keypad. the position display becomes zero because the values entered are relative motions. a zero rela- tive motion, the default value, means that the motor will not move. enter a desired positive or negative relative motion. press the key to accept the value, edit the entry using the key or exit this mode by pressing the key. once the key is pressed, the symbol moves to the next connected axis. enter a numerical value or press to accept the zero default. when the key is pressed on the last active axis, the display changes to a move execution menu. the two active function keys are and . the key will exit this mode and return to the top level motor-on menu. the key will start a relative motion on all axes using the values entered. if relative motion values were entered on multiple axes but now you require only one axis to move, use the numerical keypad to select the axis and start the motion. each keypad row controls one axis and the first or last key in the row determines the direction. the middle key has no effect. for example, if axis number 1 is to be moved, press the 3 key to start the motion in the specified direction or the 1 key to move it in the opposite direction. note when the relative motion is complete, the display does not return to the top level menu. this feature allows the user to repeat relative motions an unlimited number of times. press the key to terminate the relative move mode and return to the move menu. 2.3.4.1 single axis relative move quit quit 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog relat. move motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed quit all quit quit all valid valid valid quit delete valid a vlid u qit 1: 2: 3: 4: 0 0.00 m m n ud con 00 0 free datasheet http:// edh0162en1040 06/99 2.34 MM4005 local mode 2.3.4.2 multiple axes relative move pr move to relative position. 2.3.5 absolute moves absolute moves initiate motion to a destination specified by a value relative to the zero (home) position rather than the current position used by the rela- tive move command. repeated identical absolute move commands therefore are not productive because once at the destination, the current position becomes the desired position. to activate the absolute move mode, from the move menu press the function key. the display will prompt you to enter a destination value for the first active axis (fig. 2.11). fig. 2.11 absolute move menu. if an axis is not to be moved, you must enter the current position as the desired position and press the key. the controller will recognize this as a zero displacement motion and not issue any motion command for that axis. pressing the key after a numerical entry will shift the symbol to the next active axis. repeat the operation for each installed axis. when all destinations are defined, pressing the key on the last active axis will change the menu on the display to: pressing the key will start the absolute motion on all axes. when motion on all axes is complete, the display returns to the move menu. the display returns to the move menu if the key is pressed without executing the absolute motion. quit exec. quit exec. valid valid valid a vlid u qit 1: 2: 3: 4: 2 1 2.34 m m n ud con 56 3 - absol. quit all valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog relat. move motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed free datasheet http:// 2.35 edh0162en1040 06/99 MM4005 local mode 2.3.5.1 single axis absolute move 2.3.5.2 multiple axes absolute move pa move to absolute position. 2.3.6 program execution the most complex motion that can be initiated from the front panel is the execution of a motion program. in this mode, an existing program in memo- ry is called and executed a specified number of times. note a program must exist in the controller s non-volatile memory in order to be executed. see the programming in local mode section on creating pro- grams from the front panel or the remote mode section for downloading programs to the controller. to execute a program from the top-level menu, press the key. the controller enters the program mode and displays the fol- lowing menu: for now we are interested only in the et keys. will return the display to the top level motor-on menu. pressing the key will enter the program execution mode. in the first screen, the user is asked to select the program number to be executed. use the keypad to enter a valid, existing program number. note valid program numbers are from 1 to 100. it is the user s responsibility to remember what programs are loaded and what they do. stored pro- grams can be viewed locally or remotely but logging the stored program list is the best approach to motion program management. press the key to accept the program number. if the specified pro- gram does not exist, the controller will inform you and remain in the same menu until a valid program number is entered or the key is pressed. once a valid program is selected, the controller prompts you for the num- quit valid exec. quit quit exec. quit modify create exec. prog. motor on quit exec. valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog absol. move motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed quit exec. valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog absol. move motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed free datasheet http:// edh0162en1040 06/99 2.36 MM4005 local mode ber of times to repeat program execution. enter the desired number on the keypad and press . 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. to start the program sequence press the key. the display informs you on line number 5 that a program is executing and no function keys are available. note the only way to stop a program or a sequence of programs from the front panel is to turn the motor power off. use this method for an emer- gency stop. when the program sequence is finished, the controller returns to the top level menu. ex execute a program. 2.3.7 axis infinite movement the infinite movement is realized with the menu to move one or some axis eternally (none stop). press the key on menu. press the key to activate the second move menu. press the key and then use the numeric keypad to start motion. press to exit the menu. note processing of an axis infinite movement is possible only if a periodicity has been defined, and only for rotary stages. now, if one key of numeric keypad is pressed, one infinite displacement will be activated or stopped: key : infinite displacement of axis 1 in negative direction. key : stop the infinite displacement of axis 1. key : infinite displacement of axis 1 in positive direction. key : infinite displacement of axis 2 in negative direction. key : stop the infinite displacement of axis 2. key : infinite displacement of axis 2 in positive direction. key : infinite displacement of axis 3 in negative direction. key : stop the infinite displacement of axis 3. key : infinite displacement of axis 3 in positive direction. key : infinite displacement of axis 4 in negative direction. key : stop the infinite displacement of axis 4. key : infinite displacement of axis 4 in positive direction. . 0 9 8 7 6 5 4 3 2 1 infini quit infini next motor on move infini exec. valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog valid 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog exec. prog. motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed motor on exec. quit valid free datasheet http:// 2.37 edh0162en1040 06/99 MM4005 local mode 2.3.8 stop axis infinite movement the infinite movement can be stopped at any time, thanks to the menu. press the key on menu. press the key to activate the second move menu. press the key and then use the numeric keypad to start motion. press to exit the menu. now, if one key of numeric keypad is pressed, one infinite displacement will be activated or stopped: key : stop the infinite displacement of axis 1. key : stop the infinite displacement of axis 2. key : stop the infinite displacement of axis 3. key : stop the infinite displacement of axis 4. key : stop all infinite displacement and quit the menu. 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. note though very versatile, the front panel programming capabilities of the MM4005 controller are intended to be used only for smaller, simple motion programs. for larger, more sophisticated programs, the use of a computer with a powerful editing environment is still recommended. the program mode can be invoked from both top-level or menus. the only difference is that, when starting from the top level menu, an additional program execution function key is available. both functions that are of interest for this section, program creation and program editing, are the same regardless how they have been activated. motor on motor on motor off 2.4 quit quit 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog stop next move motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed all 0 8 5 2 stop exit stop next motor on move stop quit quit 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog infini next move motor on 1 4 7 2 5 8 3 6 9 . - 0 axis 1 axis 2 axis 3 axis 4 jog manu prog . 1: 2: 3: 4: 2 1 2.34 m m n ucon 56 3 -.35 m m 6 nec t l a home st eaction lec mov e . 345 deg ed free datasheet http:// edh0162en1040 06/99 2.38 MM4005 local mode 2.4.1 general concepts to communicate with the MM4005 controller, a language is needed that both user and controller can understand. when communicating remotely we use a motion control language that is described in the remote mode section. a program downloaded remotely is stored in non-volatile memory, as is a program created locally. any program in memory can be read and edited both locally and remotely. 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. because only four function keys are available, only three commands can be viewed at a time (the fourth key is reserved to advance or exit the menu). to avoid scrolling through the entire list, commands are grouped by cate- gories. when entering or editing a command line, the controller will display it on the first four lines. a command line can have up to 110 characters. the display has only 30 characters per line, so long command lines will take up several lines. for this reason, an asterisk (*) will identify the beginning of each logical com- mand line. note to save display space when wrapping around a command line, the con- troller does not look for command boundaries (separators). the result is that commands and numbers will be split without any restriction. once a command line has been entered and terminated, it will disappear from the display to make room for a new one. to scroll through the pro- gram and view different command lines, the controller must be in the program editing mode. the program creation mode does not allow you to view program lines other than the one being written or edited. 2.4.2 creating a program to start creating a program, first enter the program mode by pressing the key (from the top-level or menu) and then press the key to enable the program creation mode. since the controller can store up to 100 different programs, the first screen will ask which program number you want to create. you can consider this number as the program name. when retrieving a program, you will call it by its assigned number. enter a program number on the numeric keypad and press . if a pro- gram with this number (name) already exists, a warning screen will appear. in this case, press to overwrite it or to return to the program mode and start over again. once a valid program number is accepted, the controller enters the program creation mode. as mentioned earlier, the commands are grouped in categories. to select a particular command, the user must navigate through a number of screens (menus). an important controller characteris- no yes valid create motor on motor off prog. free datasheet http:// 2.39 edh0162en1040 06/99 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. the first screen separates the program entries into two categories: simple lines and while loops. the menu has the following look: the function key exits the program creation mode. the key will start entering a simple command line, composed of motion and i/o commands: the key will start a special while loop creation mode that lets you enter command lines inside a while loop: 2.4.2.1 command line creation start by first looking at the options offered for the simple command line. there are nine different types of commands available. they are separated in four different screens: this menu level is the line entry menu. the actual commands are on the first three menus. the fourth is used to accept and terminate the line entry by pressing the key or to abort the current line being worked on by pressing . the last function key of each screen, , and advances the display to the next menu. it can be viewed as the scrolling key. when the key is pressed on the last screen, the display returns to the first menu of the group. the nine available program functions can be entered by pressing the appropriate function key in the menu and have the following meanings: next next quit valid next valid quit next output repeat ifinp. next motors delay home next synch. relat. absol. line start while loop end while loop line while line commands line quit quit while line free datasheet http:// edh0162en1040 06/99 2.40 MM4005 local mode start an absolute point-to-point motion. 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. pressing will cause the screen to display the usual position infor- mation for all four axes. the symbol appears for the first axis and the user can enter the desired destination for it. press to accept the entry and advance the symbol to the next axis. if a single axis was select- ed or the entry is made on the last axis, the command is stored and the dis- play returns to the line entry menu. command generated pa move to absolute position. note a simultaneous motion is not a synchronous, a linear interpolated motion. the motion is not truly synchronized, because there are one or more servo cycles delay between axes. for most applications this causes an imperceptible error. start a relative point-to-point motion. 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. pressing will cause the screen to display the usual position infor- mation for all four axes. the symbol appears for the first axis and the user can enter the desired relative travel for it. press to accept the entry. if a single axis was selected or the entry is made on the last axis, the command is stored and the display returns to the line entry menu. command generated pr move to relative position. note the controller recognizes zero-travel relative motions as no-motions and does not issue a command for them. synchronize motion sequence commands. this function will add to the program a command that causes the con- troller to wait for a motion to be complete before executing the next com- mand. depending on the selection, the controller can wait for all or one axis to complete motion. when prompted, enter the axis number to wait for, or just press to accept the default 0 and wait for all axes. command generated ws wait for motion stop. valid synch. valid valid relat. valid valid absol. free datasheet http:// 2.41 edh0162en1040 06/99 MM4005 local mode perform a home search sequence. 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- pad. pressing will add the command to the command line and return to the line entry menu. command generated or search for home. introduce a delay in the program execution. this command, when added to a program, causes the controller to wait for a specified amount of time. use the numeric keypad to specify the delay and then press to accept the value and return to the line entry menu. command generated pr wait. turn motor power on or off. use this function to turn the power to the motors on or off when the pro- gram is executing it will have the same effect as the front panel motor / motor buttons. to add a command that forces the motor power to a certain state, press the key and then use the key to select the desired action. when done, press to accept the entry and return to the line entry menu. commands generated mo motor power on. mf motor power off. conditionally execute a line on i/o input port. this function should be placed only at the beginning of a command line to control its execution. it will allow the execution of the following commands on the line only if the specified i/o input bit has the requested state. if the condition is not met at the time of evaluation, the rest of the command line is ignored and the program execution continues with the next line. after pressing the key, the display asks you to select an input bit to be tested. enter a number between 1 and 8 on the numeric keypad and then press the key. next, press the key to specify the high or low state of the bit and then the key to accept the entry and return to the line entry menu. command generated ie if i/o input is equal. repeat a command line a number of times. use this function only at the end of a command line to repeat its execution a number of times. when selected, enter on the keypad the number of time you want to repeat the line and then press to accept the entry and return to the line entry menu. command generated rp repeat command line. valid repeat valid change valid ifinp. ifinp. valid change motors on off motors valid delay valid valid home free datasheet http:// edh0162en1040 06/99 2.42 MM4005 local mode set a bit on the i/o output port. 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 select a bit or enter 0 to set all bits and then press to accept the selection. next, press the key to specify the operation to be per- formed on the bit: set high, set low or toggle. press the key to accept the entry and return to the line entry menu. commands generated cb clear i/o output bit. sb set i/o output bit. tg toggle i/o output bit. when all entries have been made on a command line, use the key to find the screen in the line entry menu that has the function key and press it to save the line in memory and advance to a new one. 2.4.2.2 while loop creation as mentioned earlier, the program creation menu offers the choice of cre- ating simple while loops. note programs created from the front panel can have only simple while loops. remote programs could have up to 100 nested loops. from the program creation menu press the key. the next selection you have to make is the type of while loop. the controller can do a check on an i/o input bit or a variable, thus the two choices are and . pressing the key will start a loop that repeats while an i/o input bit has a specified state. first enter a bit number between 1 and 8 on the key- pad, press and then using the key select the bit state. when done, press the key to accept the entry. if you want to create a loop that repeats a specified number of times, at the while selection menu press the key. the next choice you have to make is the number of times you want to repeat the loop. enter the number on the keypad and press . the controller will write the necessary commands to initialize a new variable, to increment it every time the loop executes and to verify that it reached the specified number. after defining the initial loop parameters, the display shows the while loop menu with two choices: pressing will enter a line entry menu identical to the one described in the command line creation paragraph. use it to create com- mand lines that will be part of the while loop. enter command lines as described in the previous paragraph. when a line is terminated, the display returns to the while loop menu. to enter a new line, press the key again and repeat the operation. to close the while loop, press the key. this will add the appropri- ate command to close the loop and return the display to the program creation menu. wend line line wend line valid var. valid change valid input var. input while valid next valid change valid output free datasheet http:// 2.43 edh0162en1040 06/99 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). fig. 2.12 program creation menu flow chart. 2.4.3 modifying a program the program creation mode does not have the capability to edit com- mands or command lines already entered in a program. to modify anything in a program you must enter the program editing mode by pressing the key from the program mode. when this option is selected, the controller asks for the program number (name) to be modified. enter the desired number on the keypad and press the key. next, the controller will show the top portion of the select- ed program on the first four lines of the display. note selecting an empty (non-existent) program is allowed. in this case, a new program with the specified number will be created if commands are added with the insert feature. valid modify modify quit program management menu quit program creation menu input var. quit loop type while loop menu absol. relat. synch. next home delay motors next ifinp. repeat output next next line entry menu absol. relat. synch. next home delay motors next ifinp. repeat output next line entry menu prog. create line while quit valid wend line quit valid next discard line end loop save line discard line save line free datasheet http:// edh0162en1040 06/99 2.44 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: this menu level is the program editing menu. the key advances to the next line of the menu. when at the last menu line, pressing it will display again the first line of the menu. the six editing-specific commands have the following meanings: scroll the program listing up. when the key is pressed, the program listing is scrolled up by one display line. scroll the program listing down. when the key is pressed, the program listing is scrolled down by one dis- play line. display first line of the program listing. when the key is pressed, the program listing on the display will start with the first line of the program and the display changes to the first program editing menu line: display the last line of the program listing. when the key is pressed, the display shows the first blank line after the last program line and then the display changes to the top of the program editing menu: to see the last program line you must press the key. insert a new program line. pressing this function key allows you to add a command line to an existing program. the new line is inserted before the first line currently displayed. when the key is selected, the controller activates the line entry menu. following the descriptions in the command line creation para- graph, create a new command line and, when done, press the key to termi- nate it and return to the program editing menu. delete a program line. program lines cannot be edited. they can only be erased and new ones cre- ated. to delete a program line, use the , , , and keys to scroll through the listing until the line to be deleted is the first one on the display. pressing the key will erase the line and the display returns to the program editing menu. when all the modifications have been made, press the key. the controller will ask if you want to save the changes. press the key to accept the modifications and return to the program menu. yes quit delete last first down up delete insert insert down next down up last next down up first down up next next quit delete insert next last first next down up free datasheet http:// section 3 remote mode free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 3.1 edh0162en1040 ?06/99 MM4005 4-axis motion controller/driver table of contents section 3 ?remote mode 3.1 remote interfaces ..................................................................................3.3 selecting the interface ................................................................3.3 3.1.1 rs-232-c interface........................................................................3.4 hardware configuration .............................................................3.4 communication protocol ...........................................................3.4 3.1.2 ieee-488 interface........................................................................3.4 hardware configuration .............................................................3.4 communication protocol ...........................................................3.4 3.2 softwares.................................................................................................3.4 3.2.1 motion suite ..............................................................................3.5 3.2.2 motion term .............................................................................3.5 3.2.3 motion servo .............................................................................3.6 3.2.4 motion draw..............................................................................3.6 3.2.5 motion prog...............................................................................3.6 3.3 communication principles....................................................................3.6 rs-232-c or ieee-488?..................................................................3.6 command lines ...........................................................................3.6 controller responses .................................................................3.6 communication buffer................................................................3.6 3.3.1 command syntax.........................................................................3.7 command format........................................................................3.7 blank spaces ................................................................................3.7 command line.............................................................................3.7 separator ......................................................................................3.7 terminator ...................................................................................3.7 3.4 command summary...............................................................................3.8 3.4.1 command list by category........................................................3.8 general mode selection..............................................................3.8 motion and position control ......................................................3.8 trajectory definition parameters..............................................3.8 special motion parameters ........................................................3.9 trace mode ..................................................................................3.9 digital filter parameters .............................................................3.9 motion device parameters .........................................................3.9 i/o functions ..............................................................................3.10 programming .............................................................................3.10 flow control and sequencing...................................................3.10 variable manipulation ..............................................................3.11 display functions.......................................................................3.11 status functions ........................................................................3.11 commands to define a trajectory............................................3.11 commands to execute a trajectory.........................................3.12 commands to help geometric definition of a trajectory......3.12 master-slave mode definition ..................................................3.12 trace mode on trajectory ........................................................3.12 3.4.2 command list alphabetical................................................3.13 free datasheet http:// edh0162en1040 06/99 3.2 MM4005 4-axis motion controller/driver free datasheet http:// 3.3 edh0162en1040 06/99 MM4005 4-axis motion controller/driver section 3 remote mode remote interfaces in this manual, remote interface refers to the two communication inter- faces that the controller can use to communicate with a computer or a ter- minal via commands in ascii format. it is not called a computer interface since any device capable of sending ascii characters can be interfaced with the controller. the remote interface should not be confused with the analog and digital i/os. these interfaces communicate with the controller via discrete lines, with specific functions, without using any motion commands. they are used to synchronize external events in complex motion systems. 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. from the top level motor menu (power-on default menu), enter the setup menu by pressing the key and then the general setup menu by pressing . now press the function key until the communication selection appears. to change the displayed (and currently active) communication interface, press the , and then function keys. exit the setup by repeatedly pressing the key, or use the key to continue setting other communication para- meters. note for more details on setting up communication parameters see the controller configuration paragraph of the local mode chapter. quit valid change modify up gen. setup motor off 1 4 7 2 5 8 3 6 9 . - 0 axe 1 axe 2 axe 3 axe 4 deplacement manu prog . 1: 2: 3: 4: 2 1 2.34 m m ? dcon 56 3 -.35 m m 6 nec t l e or i g . stin on e'action ll eer c depl . . 345 deg ? up up valid change modify up gen. setup off 3.1 free datasheet http:// edh0162en1040 06/99 3.4 MM4005 remote mode 3.1.1 rs-232-c interface 3.1.1.1 hardware configuration the serial (rs-232-c) communication port is a 9-pin d-sub connector locat- ed on the rear panel. the pinout is designed to interface directly with an ibm pc or compatible computer, using a one-to-one cable. no special adapters are required. appendix b shows the pinout of the rs-232-c connector and different cable types that may be used to interface to a computer. 3.1.1.2 communication protocol the rs-232-c interface must be properly configured on both devices com- municating. a correct setting is one that matches all parameters (baud rate, number of data bits, number of stop bits, parity type and handshake type) for both devices. rs-232-c communication parameters are set through the general setup menu on the front panel. to make changes, follow the instructions in the controller configuration paragraph of the local mode chapter. 3.1.2 ieee-488 interface 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. the standard ieee-488 command set and command format are inadequate for a complex motion controller. since the MM4005 has its own language and command set, the ieee-488 is used only as a communication port. the extended protocol is not supported. the only exception is the use of the srq line, which permits more reliable data transfer, especially when downloading large amounts of data (trace data, large programs, etc.) the srq can be enabled or disabled from the general setup menu on the front panel. the main setup requirement for an ieee-488 device is to select the proper address. this identifies the unit to the other devices connected to the sys- tem. to change the address or the srq usage, follow the instructions in the controller configuration section of the local mode chapter. softwares in order to communicate with the controller, the user must have a terminal or a computer capable of communicating with external devices via a rs-232-c or ieee-488 interface. one approach is to use a communications software that can emulate a termi- nal. an other solution is to use available newport motion suite softwares. 3.2 free datasheet http:// 3.5 edh0162en1040 06/99 MM4005 remote mode 3.2.1 motion suite motion suite software is a set of windows 3.1x programs that you can install on a pc compatible computer with the following minimum configura- tion: an ibm personal computer or 100 percent compatible. a vga monitor. an 80386 or later processor. 4 mb of available memory (8 mb recommended) for windows . a hard disk with enough disk space to install the options you need. a windows 3.1x environment. this software only accepts the following interfaces: com1 or com2 standard serial port. hp-ib hewlett-packard board, model hpib 82335. hp-ib hewlett-packard board, model hpib 82340. gpib national instrument board, model at-gpib/tnt. attention before uisng newport motion suite software, ieee-488 boards (listed above) must be into the initial configuration of the constructor, and installed in accordance with its recommended procedure. before uisng newport motion suite software, we advise you to use softwares utilities supplyed with the ieee-488 board to check that the installation is completed successfully. motion suite is a set of 4 softwares: motion suite pro motion term. motion servo. motion draw. motion prog. 3.2.2 motion term motion term is a windows 3.1x application which permits to communi- cate with the 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. free datasheet http:// edh0162en1040 06/99 3.6 MM4005 remote mode 3.2.3 motion servo motion servo is a windows 3.1x application which permits to set pid servo loop parameters of mechanical axes controlled by the newport MM4005 controller. it automatically controls the MM4005, reads and calcu- lates all important dynamic motion parameters. results are plotted on graphs corresponding to position, velocity or following error. 3.2.4 motion draw motion draw is a 16-bit windows 3.1x application which permits to per- form the linear and the circular interpolation of the newport MM4005 con- troller. it presents you a draw area where you can draw complex trajectory with lines and arcs. it converts the drawing in MM4005 specific commands. 3.2.5 motion prog motion prog is a 16-bit windows 3.1x application which helps you to write a newport MM4005 controller program. with its help online, you easi- ly describe your process in MM4005 specific commands. note a complete description of operatings and features of these programs can be found in the motion suite getting started. communication principles the MM4005 controller follows simple conventions when interfacing with a computer or terminal. please read them carefully since they are the basis of the remote mode operation. 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. 3.3.0.2 command lines the MM4005 responds only to command line instructions. this means that no single or multiple character command is executed until a line terminator is received. section 3.3.1 describes in detail the rules associated with the command format. 3.3.0.3 controller responses the MM4005 does not send any data out over the communication line unless asked to do so. even in the case of an error, the controller does not send anything back. if an error is suspected, the user must query the con- troller, usually with the te command. this is particularly useful when designing complex programs using custom environments. there is no need to constantly check the communication buffer if no transmission request was made. during the application development, the error buffer can be continuously checked. when the program is finished and everything works fine, the error queries can be eliminated to reduce unnecessary overhead. 3.3.0.4 communication buffer the controller has a separate input buffer and output buffer, each 4096 characters wide. a single command line, however, may not exceed 110 characters. 3.3 free datasheet http:// 3.7 edh0162en1040 06/99 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; or an interrogation "?" (for certains commands); or a variable: $ypp or $saa (for certains commands). pp [int]: value variable number 1 to 100 : integers 101 to 120 : floats aa [int]: string variable number 1 to 8 : strings the general format of a command is a two character mnemonic ( aa ). both upper and lower case are accepted. depending on the command, it could also have optional or required preceding ( xx ) and/or following ( nn ) para- meters. 3.3.1.2 blank spaces blank spaces are allowed and ignored in any position, including inside a numerical value. for the clarity of the program and memory saving consid- erations, use blank spaces with restraint. the following two commands are equivalent: 2p a1. 43 6 2pa1.436 but the first example is very confusing and uses more than twice the memo- ry. 3.3.1.3 command line commands are executed line by line. a line can consist of one or a number of commands. the controller will interpret the commands in the order they are received and then they are executed, usually within a few microseconds. this means that commands issued on the same line are executed signifi- cantly closer to each other than if they would be if issued on separate lines. the maximum number of characters allowed on a command line is 110. 3.3.1.4 separator commands issued on the same line must be separated by a comma (,) or semicolons (;). 3.3.1.5 terminator each command line, to be executed or accepted in a program, must end with a line terminator. the terminator must have the format defined in the general setup mode. the controller supports all combinations of line feed (lf) and carriage return (cr) combinations: lf, cr, lf/cr and cr/lf. nn aa xx free datasheet http:// edh0162en1040 06/99 3.8 MM4005 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 mode mnemonics used in the tables have the following meaning: imm imm ediate mode controller is idling and the commands are executed immediately. pgm p ro g ra m mode controller does not execute but stores all commands as part of a program. ep acti- vates this mode and qp exits it. mip m otion i n p rogress controller executes a motion on the speci- fied axis. for the command description section, an empty box in front of the mode designator indicates the command not being valid in that particular mode of operation. parameters in brackets (e.g. [xx]) indicate optional parameters. 3.4.1 command list by category command description imm pgm mip 3.4.1.1 general mode selection xx cd nn set cycle value and activate periodic display mode cm [nn] change communication mode mc set manual mode [xx] mf motor off ml set local mode mo motor on mr set remote mode qw save general parameters rs reset controller 3.4.1.2 motion and position control ab abort motion [xx] dh define home xx mt nn move to travel limit switch [xx] or [nn] search for home xx pa nn move to absolute position xx pr nn move to relative position se start synchronized motion [xx] st stop motion [xx] zp zero position 3.4.1.3 trajectory definition parameters xx ac nn set acceleration xx da pp read desired acceleration [xx] df read following error [xx] dp read desired position xx dv pp read desired velocity xx mv + or - infinite movement sd nn speed scaling [xx] th read theoretical position [xx] tp read actual position xx va nn set velocity xx vb nn set base velocity (stepper motor only) 3.4 free datasheet http:// 3.9 edh0162en1040 06/99 MM4005 remote mode 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 xx ol nn set home search low velocity xx pa nn move to absolute position xx pb nn set start position of generation of pulses of synchronisation xx pe nn set end position of generation of pulses of synchronisation xx pi nn set step of generation of pulses of synchronisation xx ps pp allow generation of pulses on motion xx pt nn calculate necessary time for axis displacement xx sh nn set home preset position xx sy nn axis synchronization xx xh read home preset position 3.4.1.5 trace mode xx aq nn axis positions acquisition gq nn set global trace mode nq read global acquisition nr. sp [nn] set trace sample rate sq [nn] set global sample rate xx tm nn set trace mode [xx] tq [nn] read global trace data [xx] tt read trace data xn read number of acquisitions xq read global sample rate xs read trace sample rate 3.4.1.6 digital filter parameters xx fe nn set maximum following error xx kd nn set derivative gain xx ki nn set integral gain xx kp nn set proportional gain xx ks nn set saturation level of integral factor in position loop pid corrector [xx] pw save parameters xx tf read filter parameters [xx] uf update servo filter xx xd read derivative gain factor xx xf read maximum following error xx xi read integral gain factor xx xp read proportional gain factor 3.4.1.7 motion device parameters xx ba [nn] set backlash compensation xx sc [nn] set control loop type xx sf name set axis mechanical motion device xx sl nn set left travel limit xx sn name set axis displacement units xx sr nn set right travel limit xx ta read motion device xx tc read control loop type xx tl read left travel limit xx tn read displacement units xx tr read right travel limit xx tu read encoder resolution xx xb read backlash compensation [xx] zt [nn] read axis/general parameters configuration command description imm pgm mip free datasheet http:// edh0162en1040 06/99 3.10 MM4005 remote mode 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 [xx] ro read i/o output [xx] sb [nn] set i/o output bits so [nn] set i/o output byte [xx] tg [nn] toggle i/o output bits xx yo nn send a value to an user analog port xx yr nn read a value from an user analog port and affect variable 3.4.1.9 programming ap abort program xx cp compile program xx eo nn automatical execution on power on xx ep nn edition of program xx ex [nn] execute a program xx lp list program mp download eeprom to ram qp quit program mode sm save program xx xl nn delete one line of program xm read available memory [xx] xx erase program 3.4.1.10 flow control and sequencing xx dl define label [xx] ie nn if i/o input is equal xx jl jump to label kc abort command line [xx] oe nn test i/o output rp [nn] repeat command line rq nn generate service request (srq) [xx] uh wait for i/o high [xx] ul wait for i/o low wa [nn] wait we end while loop xx wf wait for function key xx wg [nn] while variable is greater xx wh [nn] while i/o input is equal wk [aa] wait for key xx wl [nn] while variable is less xx wp nn wait for position [xx] ws [nn] wait for motion stop wt [nn] wait xx wy [nn] while variable is different xx ye [nn] if variable is equal xx yg [nn] if variable is greater xx yl [nn] if variable is less xx yn [nn] if variable is different xx yw wait and read key command description imm pgm mip free datasheet http:// 3.11 edh0162en1040 06/99 MM4005 remote mode 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 add variables xx yd nn divide variables xx yf nn scale variable xx yk read key to variable xx ym nn multiply variables xx yp nn set theoretical position in variable xx yq nn set current position in variable xx ys [nn] initialize variable xx yv read value from keyboard in a variable xx yy nn copy variable 3.4.1.12 display functions xx ds [nn] display strings on screen xx dy nn display a variable xx fb [aa] label function key fc clear function key line fd display function keys xx np nn set decimal digits number of position display rd disable display refresh re enable display refresh 3.4.1.13 status functions ed nn display program error [xx] ms read motor status tb [aa] read error message td read error line of program te read error code ts read controller status tx read controller activity tx1 read controller extended status ve read controller version 3.4.1.14 commands to define a trajectory ad nn define the maximum allowed angle of discontinuity xx ax assign a physical axis as x geometric axis xx ay assign a physical axis as y geometric axis ca nn define sweep angle and build an arc of circle = (cr, ca) cr nn define radius for anarc of circle = (cr, ca) cx nn define x position to reach with an arc of circle = (cx, cy) cy nn define y position to reach and build an arc of circle = (cx, cy) el erase the last element of trajectory fa nn define the tangent angle for the first point lx nn define x position and build a line segment = (lx, tangent) ly nn define y position and build a line segment = (ly, tangent) mx nn define x position for a line segment = (mx, my) my nn define y position and build a line segment = (mx, my) nt start definition of a new trajectory command description imm pgm mip free datasheet http:// edh0162en1040 06/99 3.12 MM4005 remote mode 3.4.1.15 commands to execute a trajectory et 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 wn nn wait for a element of trajectory 3.4.1.16 commands to help geometric definition of a trajectory at tell the element number under execution xx lt extended list of the trajectory xa tell the current maximum allowed angle of discontinuity xe tell the last element xt tell number of elements in the trajectory xu nn tell the vector acceleration on trajectory (trajectory acceleration) xv nn tell the vector velocity on trajectory (trajectory velocity) 3.4.1.17 master-slave mode definition xx ff nn set maximum master-slave following error xx gr nn set master-slave reduction ratio xx ss np set master-slave mode 3.4.1.18 trace mode on trajectory nb nn set trajectory element where the generation of pulses starts ne nn set trajectory element where the generation of pulses ends ni nn set step (curvi-linear distance) between synchronisation pulses nn nn set number of synchronisation pulses to generate ns allow generation of pulses on interpolation command description imm pgm mip free datasheet http:// 3.13 edh0162en1040 06/99 MM4005 remote mode 3.4.2 command list alphabetical command description imm pgm mip ab abort motion xx ac nn set acceleration ad nn define the maximum allowed angle of discontinuity xx am nn set analog input mode ap abort program xx aq nn axis positions acquisition xx as nn affect string at tell the element number under execution xx ax assign a physical axis as x geometric axis xx ay assign a physical axis as y geometric axis xx ba [nn] set backlash compensation ca nn define sweep angle and build an arc of circle = (cr, ca) [xx] cb [nn] clear i/o outputs bits xx cd nn set cycle value and activate periodic display mode cm [nn] change communication mode xx cp compile program cr nn define radius for anarc of circle = (cr, ca) xx cs nn concatenate two strings cx nn define x position to reach with an arc of circle = (cx, cy) cy nn define y position to reach and build an arc of circle = (cx, cy) xx da pp read desired acceleration [xx] df read following error [xx] dh define home xx dl define label xx dm read manual velocity xx do read home search velocity [xx] dp read desired position xx ds [nn] display strings on screen xx dv pp read desired velocity xx dy nn display a variable ed nn display program error el erase the last element of trajectory xx eo nn automatical execution on power on xx ep nn edition of program et execution of trajectory xx ex [nn] execute a program fa nn define the tangent angle for the first point xx fb [aa] label function key fc clear function key line fd display function keys xx fe nn set maximum following error xx ff nn set maximum master-slave following error ft nn set output frequency gq nn set global trace mode xx gr nn set master-slave reduction ratio [xx] ie nn if i/o input is equal xx jl jump to label kc abort command line xx kd nn set derivative gain xx ki nn set integral gain xx kp nn set proportional gain xx ks nn set saturation level of integral factor in position loop pid corrector xx lp list program xx lt extended list of the trajectory lx nn define x position and build a line segment = (lx, tangent) ly nn define y position and build a line segment = (ly, tangent) mc set manual mode free datasheet http:// edh0162en1040 06/99 3.14 MM4005 remote mode [xx] mf motor off xx mh nn set manual velocity ml set local mode mo motor on mp download eeprom to ram mr set remote mode [xx] ms read motor status xx mt nn move to travel limit switch xx mv + or - infinite movement mx nn define x position for a line segment = (mx, my) my nn define y position and build a line segment = (mx, my) nb nn set trajectory element where the generation of pulses starts ne nn set trajectory element where the generation of pulses ends ni nn set step (curvi-linear distance) between synchronisation pulses nn nn set number of synchronisation pulses to generate xx np nn set decimal digits number of position display nq read global acquisition nr. ns allow generation of pulses on interpolation nt start definition of a new trajectory xx oa nn set home search acceleration [xx] oe nn test i/o output xx oh nn set home search high velocity xx ol nn set home search low velocity [xx] or [nn] search for home xx pa nn move to absolute position xx pb nn set start position of generation of pulses of synchronisation xx pe nn set end position of generation of pulses of synchronisation xx pi nn set step of generation of pulses of synchronisation xx pr nn move to relative position xx ps pp allow generation of pulses on motion xx pt nn calculate necessary time for axis displacement [xx] pw save parameters qp quit program mode qw save general parameters [xx] ra read analog input [xx] rb read i/o input rd disable display refresh re enable display refresh [xx] ro read i/o output rp [nn] repeat command line rq nn generate service request (srq) rs reset controller [xx] sb [nn] set i/o output bits xx sc [nn] set control loop type sd nn speed scaling se start synchronized motion xx sf name set axis mechanical motion device xx sh nn set home preset position xx sl nn set left travel limit sm save program xx sn name set axis displacement units so [nn] set i/o output byte sp [nn] set trace sample rate sq [nn] set global sample rate xx sr nn set right travel limit xx ss np set master-slave mode [xx] st stop motion xx sy nn axis synchronization xx ta read motion device tb [aa] read error message xx tc read control loop type td read error line of program command description imm pgm mip free datasheet http:// 3.15 edh0162en1040 06/99 MM4005 remote mode te 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 xx tn read displacement units [xx] tp read actual position [xx] tq [nn] read global trace data xx tr read right travel limit ts read controller status [xx] tt read trace data xx tu read encoder resolution tx read controller activity tx1 read controller extended status xx ty read a variable [xx] uf update servo filter [xx] uh wait for i/o high [xx] ul wait for i/o low xx va nn set velocity xx vb nn set base velocity (stepper motor only) ve read controller version vs nn define the vector acceleration on trajectory (trajectory acceleration) vv nn define the vector velocity on trajectory (trajectory velocity) wa [nn] wait we end while loop xx wf wait for function key xx wg [nn] while variable is greater xx wh [nn] while i/o input is equal wi nn wait for a trajectory (curvi-linear) length wk [aa] wait for key xx wl [nn] while variable is less wn nn wait for a element of trajectory xx wp nn wait for position [xx] ws [nn] wait for motion stop wt [nn] wait xx wy [nn] while variable is different xa tell the current maximum allowed angle of discontinuity xx xb read backlash compensation xx xd read derivative gain factor xe tell the last element xx xf read maximum following error xx xh read home preset position xx xi read integral gain factor xx xl nn delete one line of program xm read available memory xn read number of acquisitions xx xp read proportional gain factor xq read global sample rate xs read trace sample rate xt tell number of elements in the trajectory xu nn tell the vector acceleration on trajectory (trajectory acceleration) xv nn tell the vector velocity on trajectory (trajectory velocity) [xx] xx erase program xx ya [nn] add to variable xx yb negate variable xx yc nn add variables xx yd nn divide variables xx ye [nn] if variable is equal xx yf nn scale variable command description imm pgm mip free datasheet http:// usage imm pgm mip syntax ab parameters none. description this command is an emergency stop. on reception of this command, the controller stops motion on all axes with a fast deceleration and then turns motor power off. it should be used only as an immediate command, not in a program. returns none. errors none. rel. commands ap abort program. kc abort command line. mf motor off. mo motor on. st stop motion. example ab | used as an immediate command to stop motion. ab abort motion edh0162en1040 06/99 3.16 MM4005 remote mode 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 xx yo nn send a value to an user analog port xx yp nn set theoretical position in variable xx yq nn set current position in variable xx yr nn read a value from an user analog port and affect variable xx ys [nn] initialize variable xx yv read value from keyboard in a variable xx yw wait and read key xx yy nn copy variable [xx] zp zero position [xx] zt [nn] read axis/general parameters configuration command description imm pgm mip free datasheet http:// 3.17 edh0162en1040 06/99 MM4005 ac set acceleration usage imm pgm mip syntax xxacnn parameters description xx [int] axis number. nn [float] acceleration value. range xx 1 to 4. nn 10 -6 to the programmed value in setup mode . units xx none. nn preset units in setup mode/sec 2 . defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the acceleration/deceleration value for an axis. its exe- cution is immediate, meaning that the acceleration is changed when the command is processed, even while a motion is in progress. all subsequent accelerations and decelerations will be executed with the new value. note the user-set acceleration is not saved in the nonvolatile memory. after power-on, the controller will use the default value (the maximum allowed acceleration). note avoid changing the acceleration during the acceleration or deceleration periods. for more predictable results, change acceleration only when the axis is not moving or when it is moving at a constant speed. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands da read desired acceleration. va set velocity. pa move to absolute position. pr move to relative position. example 2da | read desired acceleration of axis #2. 2da10 | controller returns an acceleration value of 10 units/sec 2. 2pa15 | move to absolute position 15 units. wt500 | wait for 500 ms. 2ac4 | set axis #2 acceleration to 4 units/sec 2 . 2da | read acceleration of axis #2. 2da4 | controller returns an acceleration value of 4 units/sec 2 . free datasheet http:// edh0162en1040 06/99 3.18 MM4005 ad define the maximum allowed angle of discontinuity usage imm pgm mip syntax adnn or ad? parameters description nn [double] maximum allowed discontinuity angle value. or nn [?] read the actual maximum allowed. range nn 0.001 to 10.0. units nn degrees. defaults nn missing: 0.001. 3.19 edh0162en1040 06/99 MM4005 am set analog input mode usage imm pgm mip syntax xxamnn or [xx]am? parameters description xx [int] analog input port number. nn [int]] analog input mode. range xx 0 to 4. nn 0 to 3 . units xx none. nn none. defaults xx missing: 0. out of range: error e. floating point: error e. nn 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. if nn = 1: 5 v tension input range. if nn = 2: 0 to 10 v tension input range. if nn = 3: 0 to 5 v tension input range. returns if the ? sign takes place of nn parameter and xx is missing, the controller returns the actual analog input mode. errors c parameters out of limits. e incorrect i/o channel number. rel. commands yr read a value from an user analog port and affect variable. yo send a value to an user analog port. example 1am2 | set 0 to 10 v analog range at the input port #1. 1am? | request the actual analog input port #1 mode. 1am2 | controller returns the actual analog input port #1 mode. am | initializes all analog input ports to default mode (10 v). am? | request all actual analog input modes. am, 1am0, 2am0, 3am0, 4am0 | controller returns all actual analog input modes. free datasheet http:// edh0162en1040 06/99 3.20 MM4005 ap abort program usage imm pgm mip syntax ap 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. it can be used as an immediate command or inside a program. inside a program it is useful in conjunction with program flow control com- mands. it could, for instance, terminate a program on the occurrence of a certain external event, monitored by an i/o bit. returns none. errors none. rel. commands ex execute a program. example 3ex | execute program #3. | | | ap | stop program execution. free datasheet http:// 3.21 edh0162en1040 06/99 MM4005 aq axis positions acquisition usage imm pgm mip syntax xxaqnn parameters description xx [int] axis number. nn [int] integer value. range xx 1 to 4. nn 0 or 1 . units xx none. nn none. defaults xx missing: 0. out of range: error b. floating point: error a. nn missing: 0. out of range: error c. description this command records the actual position of: if xx = 0: all axis and analog inputs in the global trace buffer at the buffer actual pointer position. if xx = 1 to 4: the actual position of axis # xx in the axis trace buffer at the buffer actual pointer position. the buffer actual pointer position is incremented of 1. to set the global trace buffer actual pointer position to zero, use gq0. to set the axis trace buffer actual pointer position to zero, use tm0. if nn = 1: this command generates one pulse at output on pin 12 (if xx = 0), or pin 11 (if xx = 1 to 4), of the 25-pin auxiliary connector, at the moment of command execution. note xx = 0: if the global acquisition mode is active (gqnn command with nn 0), this command will desactive this mode. xx 0: if the axis acquisition mode is active (tmnn command with nn 0), this command will desactive this mode. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands gq set global trace mode. example gq0 | initialisation of global trace buffer. nt, fa90 | initialisation of trajectory. cr10, ca 5 | element 1. ca350 | element 2. ca5 | element 3. vv5 | set trajectory velocity to 5 units/sec. et | displacement with generation of pulses. wn2, aq | at the beginning of element 2, axis positions are enregistred without synchronization pulse. wn3, aq1 | at the beginning of element 3, axis position are enregistred with a synchronization pulse. free datasheet http:// edh0162en1040 06/99 3.22 MM4005 as affect string usage imm pgm mip syntax xxasaa or xxas? parameters description xx [int] string variable number. aa [str] string to be affected. range xx 1 to 8. aa 0 or 32 characters. units xx none. aa none. defaults xx missing: 0. out of range: error c. floating point: error a. nn missing: null string; clears string. out of range: only first 32 characters are used. description this command affects a string in a string variable. if xx is missing, this command erases all string variable (from 1 to 8). returns if the sign ? takes place of aa and xx is different of zero, this command reportes actual xx string buffer content. errors a unknown message code. c parameter out of limits. d unauthorized execution. rel. commands cs concatenates two strings. ds display strings on screen. example 1as"this "| affects "this " in variable s1 (s1 = "this "). 2as"is" | affects "is" in variable s2 (s2 = "is"). 3as" " | affects " " in variable s3 (s3 = " "). 1cs$s2 | concatenate s2 to s1 (s1 = "this is"). 1cs$s3 | concatenate s3 to s1 (s1 = "this is "). 1cs"a string" | concatenate "a string" to s1. ds$s1 | contents of variable s1. this is a string | displayed on the controller?s screen. free datasheet http:// 3.23 edh0162en1040 06/99 MM4005 at tell the element number under execution usage imm pgm mip syntax at 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 s communication time-out. rel. commands xt tell number of elements in the trajectory. lt extended list of the trajectory. example et | execute trajectory. at | read current element number. at1 | controller returns 1. ax assign a physical axis as x geometric axis usage imm pgm mip syntax xxax or ax? parameters description xx [int] physical axis number. range xx 1 to 4. units xx none. defaults xx missing: error b. out of range: error b. description this command tells to the controller which physical axis will be the x geo- metric axis for the next trajectory that will be loaded. et command will ver- ify the correct assignation in execution. returns if ax? takes place of the xxax, this command reportes the actual number of assigned as x geometric axis. errors b incorrect axis number. s communication time-out. rel. commands ay assign a physical axis as y geometric axis. lt extended list of the trajectory. example 1ax | assign physical axis 1 as x geometric axis. ax? | ax1 | controller return value 1. free datasheet http:// edh0162en1040 06/99 3.24 MM4005 ay assign a physical axis as y geometric axis usage imm pgm mip syntax xxay or ay? parameters description xx [int] physical axis number. range xx 1 to 4. units xx none. defaults xx missing: error b. out of range: error b. description this command tells to the controller which physical axis will be the y geo- metric axis for the next trajectory that will be loaded. et command will ver- ify the correct assignation in execution. returns if ay? takes place of the xxay, this command reportes the actual number of assigned as y geometric axis. errors b incorrect axis number. s communication time-out. rel. commands ax assign a physical axis as x geometric axis. lt extended list of the trajectory. example 2ay | assign physical axis 2 as y geometric axis. ay? | ay2 | controller return value 2. free datasheet http:// 3.25 edh0162en1040 06/99 MM4005 ba set backlash compensation usage imm pgm mip syntax xxbann parameters description xx [int] axis number. nn [float] backlash compensation value. range xx 1 to 4. nn 0 to distance equivalent to 10000 encoder counts . units xx none. nn defined motion units. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: 0. out of range: error c. description this command initiates a backlash compensation algorithm when motion direction is reversed. the controller keeps track of the motion sequence and for each direction change it adds the specified nn correction. setting nn to zero disables the backlash compensation. note the command is active only after a home search or home set (or or dh) is performed on the specified axis. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands xb read backlash compensation. example or | perform a home search on all installed axes. 1ba0.0012 | set backlash compensation of axis #1 to 0.0012 units. 2ba0.0008 | set backlash compensation of axis #2 to 0.0008 units. free datasheet http:// edh0162en1040 06/99 3.26 MM4005 ca define sweep angle and build an arc of circle = (cr, ca) usage imm pgm mip syntax cann parameters description nn [double] sweep angle for an arc of circle. range nn -1.7 e 304 to -1.0 e -12 . and 1.0 e -12 to 1.7 e 304 . units nn defined motion units. defaults nn missing: error c. description this command defines to the controller the sweep angle and tells to the controller to build an element of trajectory of the type: arc of circle = (cr, ca). note the convention for the sweep angle is the following: sweep angle > 0 then it is used as counter clock wise. sweep angle < 0 then it is used as clock wise. returns none. errors c parameter out of limits h calculation overflow. v too long trajectory. \ type error (arc expected). ] trajectory: arc (r, ) radius is too small. ^ trajectory: arc (r, ) radius is too big. _ trajectory: arc (r, ) sweep angle is too small. rel. commands cr define radius for an arc of circle = (cr, ca). xe tell the last element. example nt | clear trajectory. cr10 | define radius of an arc of circle = ? (r, ca90 | build an arc of circle = ? (r = 10 units, ca480 | build an arc of circle = ? (r = 10 units, xe | tell last element. xe, arc (r, free datasheet http:// 3.27 edh0162en1040 06/99 MM4005 cb clear i/o outputs bits usage imm pgm mip syntax xxcbnn parameters description xx [int] i/o bit number. nn [float] i/o bit mask. range xx 0 to 8. nn 0 to 255. units xx none. nn none. defaults xx missing: 0. out of range: error e. floating point: error a. nn missing: 255. out of range: error c. floating point: decimal part truncated. description this command clears one to all output bits of the i/o port. if xx is specified between 1 and 8, the nn mask must be missing and then the selected bit will be cleared. if xx is missing or set to 0 and nn is between 1 and 255, the controller will clear all bits corresponding to the mask. for example, if nn is 140, the equivalent binary mask is 10001100 which means that i/o output bits num- ber 3, 4 and 8 will be cleared (remember that i/o bits are numbered from 1 to 8). if xx is missing or set to 0 and nn is not specified, the controller clears all 8 bits. this is equivalent to setting xx to 0 and nn to 255. note remember that having an open collector configuration, a clear bit means a non-conductive transistor. using a pull-up resistor, a clear output bit will measure a logic high, thus making the output port be the reverse logic type. note for the hardware definition of the i/o port, please see appendix b, connector pinouts, gpio connector. returns none. errors a unknown message code. e incorrect i/o channel number. rel. commands ro read i/o output. sb set i/o output bits. so set i/o output port byte. tg toggle i/o output bits. example cb224 | set i/o output port bits number 6, 7 and 8 low. free datasheet http:// edh0162en1040 06/99 3.28 MM4005 cd set cycle value and activate periodic display mode usage imm pgm mip syntax xxcdnn or xxcd? parameters description xx [int] axis number. nn [double] new value of cycle value. range xx 0 to 4. nn 0 to distance equivalent to 1932735283 encoder counts (0.9 maxlong) . and -(distance equivalent to 1932735283 encoder counts) to 0 . units xx none. nn actual displacement unit (mm, m, in ). defaults xx missing: error b. out of range: error b. floating point: error a. nn missing or 0: stop periodic display mode. out of range: error c. description this command sets new value of cycle in the periodic display mode and activate this mode. during axe movement, in each cycle the displayed values of positions change between 0 and nn , as followings: if nn > 0: start 0, end nn if positive displacement. start nn , end 0 if negative displacement. if nn < 0: start nn , end 0 if positive displacement. start 0, end nn if negative displacement. this command has effect not only on infinite movements (mv+, mv-), but also on other types of displacements (pa, pr, manual, joystick). to set off this mode of display, use xxcd or xxcd0. note if this command is used in conjunction with the ss command and gr command, the slave axis cycle value must be equal to the master axis cycle value multiplied by the master-slave reduction ratio. returns if the sign ? takes place of the nn value, this command reportes the value of display cycle if the periodic display mode has been activated. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands mv infinite movement. pa move to absolute position. pr move to relative position. example 2sfurm80app | set mechanical driver to urm80app. 2cd360 | set cycle value to 360 ? and activate the mode. 2mv+ | infinite displacement with periodic display. free datasheet http:// 3.29 edh0162en1040 06/99 MM4005 cm change communication mode usage imm pgm mip syntax cm[mxx][txx][axx][qxx][bxx][pxx][lxx][sxx][oxx][rxx][xxx] or cm? parameters description m communication mode. xx = 1 ieee-488. xx 1 or missing rs-232-c. t terminator character. xx = 1 cr. xx = 2 lfcr. xx = 3 crlf. xx 1, 2, 3 or missing lf a ieee address. xx 0 to 31 r reserved. xx = 0 q ieee-488 srq mode. xx = 1 yes. xx 1 or missing no srq b serial transmission speed. xx 1200 , 2400 , 4800 , 9600 , 38400 , 57600 or 115200 . xx different or missing 9600 p parity xx = 1 odd parity. xx = 2 even parity. xx 1, 2 or missing no parity l data length. xx 7 xx 7 or missing 8 s stop bit number xx 2 xx 2 or missing 1 o communication time out xx 0.5 to 999 sec. defaults xx missing: cmm0t0b9600p0l8s1o1r0 x xon/xoff mode. defaults xx = 0 xon/xoff mode enable. xx = 1 xon/xoff mode disable. description this command changes the communication mode between the controller and the pc. returns in the case of cm? command, it reports the actual communication parame- ters of the controller. errors a unknown message code. q unauthorized command. rel. commands none. example cm | initialization of all parameters. free datasheet http:// edh0162en1040 06/99 3.30 MM4005 cp compile program usage imm pgm mip syntax xxcp parameters description xx [int] program number. range xx 1 to 127. units xx none. defaults xx 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. it verifies the syntax of the program, the validity of commands in the program context and the correctness of the jump and while loops. if an error is found, the compilation is interrupted and the error type is reported. in this case, correct the problem and recompile to verify the rest of the program. repeat this operation until the controller reports back a full compilation without error. if the program editing is done on a remote computer, do not forget to erase the old version of the program with xx command. otherwise, the new ver- sion of the program will be appended to the old one. a program can be executed without being first compiled with cp. this com- mand is helpful only in catching typing or structural program errors, but it does not guarantee that the program is fail-safe. returns xxcpaa xx program number. aa ascii code of the error type. if no error is detected, aa is charac- ter @. errors a unknown message code. f program number incorrect. g program does not exist. see appendix a for additional list of programming errors. rel. commands ep edition of program. qp quit program mode. example 3xx | clear program 3 from memory, if any. 3ep | activate program mode and enter following commands as program 3. | | | qp | end entering program number 3 and quit program mode. 3cp | compile program number 3. 3cp@ | controller confirms compilation of program number 3 without any error. free datasheet http:// 3.31 edh0162en1040 06/99 MM4005 cr define radius for an arc of circle = (cr, ca) usage imm pgm mip syntax crnn parameters description nn [double] radius for an arc of circle. range nn 1.0 e -12 to 1.0 e 100 . units nn defined motion units. defaults nn missing: error c. out of range: error c. description this command defines to the controller the radius for an element of trajec- tory of the type: arc of circle = (cr, ca). unless the case of successively builded with the same radius (r, ) arcs, we have specified the radius by this command every time before the ca command. returns none. errors c parameter out of limits. v too long trajectory. ] trajectory: arc (r, ) radius is too small. ^ trajectory: arc (r, ) radius is too big. e trajectory: units not translationnal or not identical. rel. commands ca define sweep angle and build an arc of circle = (cr, ca). xe tell the last element. example nt | clear trajectory. cr10 | define radius of an arc of circle = ? (r, ca90 | define sweep angle an build an arc of circle = ? (r, xe | tell last element. xe, arc (r, free datasheet http:// edh0162en1040 06/99 3.32 MM4005 cs concatenate two strings usage imm pgm mip syntax xxcsaa or xxcs? parameters description xx [int] string variable number. aa [str] string to be to be concatenated. range xx 1 to 8. aa 0 or 32 characters. units xx none. aa none. defaults xx missing: 0. out of range: error c. floating point: error a. aa missing: null string. out of range: only first 32 characters are used. description this command concatenates two strings, the aa string or the # nn string, or the # pp value converted to ascii (when the parameter aa is a variable $ypp or $snn), is concatenated in the end of the xx string returns if the sign ? takes place of aa and xx is different of zero, this command reportes actual string stocked in the xx numbered string buffer. errors a unknown message code. c parameter out of limits. d unauthorized execution. rel. commands as affect string. ds display strings on screen. example 1as"this " | affects "this " in variable s1 (s1 = "this "). 2as"is" | affects "is" in variable s2 (s2 = "is"). 3as" " | affects " " in variable s3 (s3 = " "). 1cs$s2 | concatenate s2 to s1 (s1 = "this is"). 1cs$s3 | concatenate s3 to s1 (s1 = "this is "). 1cs"a string" | concatenate "a string" to s1. ds$s1 | contents of variable s1. this is a string | displayed on the controller ? s screen. free datasheet http:// 3.33 edh0162en1040 06/99 MM4005 cx define x position to reach with an arc of circle = (cx, cy) usage imm pgm mip syntax cxnn parameters description nn [double] x coordinate to reach with an arc of circle. range nn -1.0 e 12 to 1.0 e 12 . units nn defined motion units. defaults nn missing: error c. out of range: error c. description this command defines to the controller x position to rich with an element of trajectory of the type: arc of circle = (cx, cy). returns none. errors c parameter out of limits. v too long trajectory. e trajectory: units not translationnal or not identical. rel. commands cy define y position to reach and build an arc of circle = (cx, cy). xe tell the last element. el erase the last element of trajectory. example nt | clear trajectory. cx10 | define x position of an arc of circle = ? (x, y). cy10 | define y position an build an arc of circle = ? (x, y). xe | tell last element. xe, arc (x, y), 10, 10, 90 | controller tells the built element. free datasheet http:// edh0162en1040 06/99 3.34 MM4005 cy define y position to reach and build an arc of circle = (cx, cy) usage imm pgm mip syntax cynn parameters description nn [double] y coordinate to reach with an arc of circle. range nn -1.0 e 12 to 1.0 e 12 . units nn defined motion units. defaults nn missing: error c. out of range: error c. description this command defines to the controller y position to reach and tells to the controller to build an element of trajectory of the type: arc of circle = (cx, cy). returns none. errors c parameter out of limits. h calculation overflow. v too long trajectory. \ type error (arc expected). ] trajectory: arc (r, ) radius is too small. ^ trajectory: arc (r, ) radius is too big. ` arc (x, y) circle too small. e trajectory: units not translationnal or not identical. rel. commands cx define x position to reach with an arc of circle = (cx, cy). xe tell the last element. el erase the last element of trajectory. example nt | clear trajectory. cx10 | define x position of an arc of circle = ? (x, y). cy10 | define y position an build an arc of circle = ? (x, y). xe | tell last element. xe, arc (x, y), 10, 10, 90 | controller tells the built element. free datasheet http:// 3.35 edh0162en1040 06/99 MM4005 da read desired acceleration usage imm pgm mip syntax xxdapp parameters description xx [int] axis number. pp [int] auxiliary parameter. range xx 1 to 4. pp 0 or 1 . units xx none. pp none. defaults xx missing: error b. out of range: error b. floating point: error a. pp missing: 0. 1: 1. description this command reads the motion acceleration assigned in the axis setup or redefined through the ac command. this is the acceleration of a trape- zoidal type motion profile used in point-to-point moves. on power-up, the acceleration defaults to the value preset in the front panel setup menu. if pp is 0 or missing, the actual value of acceleration is reported. if pp 1, the maximum allowed value of acceleration is reported. returns xxdann xx axis number. nn acceleration value, in pre-defined units. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands ac set acceleration. example 2da | read acceleration of axis #2. 2da10 | controller returns an acceleration value of 10. 2pa15 | move to absolute position 15. wt500 | wait for 500 ms. 2ac4 | set axis #2 acceleration to 4. 2da | read acceleration of axis #2. 2da4 | controller returns an acceleration value of 4. 2da1 | read maximum acceleration of axis #2. 2da80 | controller returns a value of 80. free datasheet http:// edh0162en1040 06/99 3.36 MM4005 df read following error usage imm pgm mip syntax xxdf parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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 defined as the instantaneous difference between the real position, reported by the encoder, and the theoretical position, calculated by the controller according to the desired trajectory. reading the following error for an axis is important in determining its performance and tuning the servo loop. if the axis parameter xx is 0 or missing, the controller reads the following error for all axes simultaneously and returns all four values. if the command is used inside a program, make sure a host computer is ready to receive and store the returned data. returns xxdfnn or xx 1 dfnn 1 , xx 2 dfnn 2 , xx 3 dfnn 3 , xx 4 dfnn 4 xx, xx 1 , xx 2 , xx 3 , xx 4 axis number. nn, nn 1 , nn 2 , nn 3 , nn 4 following error, in pre-defined units. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands fe set maximum following error. tf read filter parameters. xf read maximum following error. example 2pa15 | move axis #2 to absolute position 15. 2wp10 | wait for axis #2 to reach position 10. 2df | read following error of axis #2. 2df0.003 | controller returns a following error for axis #2 of 0.003. 2ws | wait for motion to stop on axis #2. wt200 | wait 200ms for motion to settle. 2df | read following error at stop on axis #2. 2df0.001 | controller returns a following error for axis #2 of 0.001. free datasheet http:// 3.37 edh0162en1040 06/99 MM4005 dh define home usage imm pgm mip syntax xxdh parameters description xx [int] axis number. range xx 0 to 4. units xx none. defaults xx 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. if the home preset value is 0, this command is equiva- lent to zp. returns none. errors a unknown message code. b incorrect axis number. d unauthorized execution. rel. commands or search for home. example 3or | perform a home search on axis #3. | | | 3dh | define current position on axis #3 home. free datasheet http:// edh0162en1040 06/99 3.38 MM4005 dl define label usage imm pgm mip syntax xxdl parameters description xx [int] label number. range xx 1 to 100. units xx none. defaults xx 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. the operation of the dl/jl command pair is similar to commands in other computer languages that allow conditional jumps (or gotos) to prede- fined labels in a program. note this command does not generate an error when not used inside a pro- gram. since it can not do any harm, it is only ignored. returns none. errors a unknown message code. l command not at the beginning of a line. n incorrect label number. rel. commands jl jump to label. example 3dl | define label number 3. | | | 2yl20, 3jl | if variable 2 is less than 20, jump to label 3. free datasheet http:// 3.39 edh0162en1040 06/99 MM4005 dm read manual velocity usage imm pgm mip syntax xxdm parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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). this is the high speed manual jog mode, when the center key is pressed simultaneously with a direction key. the manual jog low speed is 1/10 of the high speed. the manual jog high speed is assigned in the axis setup or redefined with the mh command. returns xxdmnn . xx axis number. nn manual jog high velocity value, in pre-defined units/sec. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands mh set manual velocity. example 2dm | read manual jog high velocity on axis #2. 2dm2.5 | controller returns for axis #2 a manual jog. free datasheet http:// edh0162en1040 06/99 3.40 MM4005 do read home search velocity usage imm pgm mip syntax xxdo parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. the home search high velocity is set by the oh command or from the front panel setup menu. returns xxdonn xx axis number. nn home velocity value, in pre-defined units/sec. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands oh set home search high velocity. example 2do | read home search high velocity on axis #2. 2do2.5 | controller returns for axis #2 a home search velocity of 2.5. free datasheet http:// 3.41 edh0162en1040 06/99 MM4005 dp read desired position usage imm pgm mip syntax xxdp parameters description xx [int] axis number. range xx 0 to 4. units xx none. defaults xx 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. if the axis specifier xx is missing or set to 0, the con- troller returns the desired position for all axes. the command could be sent at any time but is most often invoked while a motion is in progress. returns xxdpnn or xx 1 dpnn 1 , xx 2 dpnn 2 , xx 3 dpnn 3 , xx 4 dpnn 4 xx, xx 1 , xx 2 , xx 3 , xx 4 axis number. nn, nn 1 , nn 2 , nn 3 , nn 4 desired position, in pre-defined units. errors a unknown message code. b incorrect axis number. d unauthorized execution. s communication time-out. rel. commands pa move to absolute position. pr move to relative position. example 3tp | read position on axis #3. 3tp5.32 | controller returns position 5.32 for axis #3. 3pr2.2 | start a relative motion of 2.2 on axis #3. 3dp | read desired position on axis #3. 3dp7.52 | controller returns desired position 7.52 for axis #3. free datasheet http:// edh0162en1040 06/99 3.42 MM4005 ds display strings on screen usage imm pgm mip syntax xxdsaa parameters description xx [int] field number. aa [cha ? ne] strings to be displayed. range xx 1 to 2. aa 0 to n characters, framed or not framed by two quota- tion marks . xx = 1 or 2 : n = 14 . xx = 0 : n = 28 . units xx none. aa none. defaults xx missing: 0. out of range: error c. floating point: error a. aa missing: null string; clears the line or field. out of range: only first n characters are used. description this command prints a string on line #5 of the front panel display. if xx = 0 or default, the line #5 is entirely used (28 characters max.). if xx = 1 or 2, the line #5 is split in two fields, each 14 characters long. the first field on the left is defined as number 1 and the one on the right as number 2. writing to field number 1 ( xx = 1) erases the previous text from field num- ber 1. writing to field number 2 ( xx = 2) erases the previous text from field number 2. if xx = 0 or default, the controller erases the entire line #5 before writing its new text. if somes strings (separated by spaces) are to be printed, these strings must be framed by two quotation marks ( ). the printable number of characters is always n, but the quotation marks are not part of characters of these strings. this command is useful for monitoring the status and evolution of a com- plex program. returns none. errors a unknown message code. c parameter out of limits. j command authorized only in programming mode. rel. commands as affect string. cs concatenates two strings. example 1as "this " | define string #1. 2as "is " | define string #2. 101ys10.5 | define variable #101. ds$s1$s2"a value: "$y101 | display on screen. this is a value: 10.5 | response. wt4000 | wait for 4 sec. in this example, line five of the front panel will display "this is a value: 10.5" during 4 seconds. free datasheet http:// 3.43 edh0162en1040 06/99 MM4005 dv read desired velocity usage imm pgm mip syntax xxdvpp parameters description xx [int] axis number. pp auxiliary parameter. range xx 1 to 4. pp 0 or 1. units xx none. defaults xx missing: error b. out of range: error b. floating point: error a. pp missing: 0. 1: 1. description this command reads the motion velocity assigned in the axis setup or redefined through the va command. this is the maximum velocity of a trapezoidal type motion profile used in point-to-point moves. since the command is reporting the programmed velocity, it can be used during motion or at stop. if pp is 0 or missing, the actual value of velocity is reported. if pp > or = 1, the maximum allowed value of velocity is reported. returns xxdvnn xx axis number. nn velocity value, in pre-defined units/sec. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands va set velocity. example 2va2.5 | define velocity to 2.5 units/sec. 2dv | read desired velocity on axis #2. 2dv2.5 | controller returns a value of 2.5. 2dv1 | read maximum allowed velocity on axis #2. 2dv20 | controller returns a value of 20. free datasheet http:// edh0162en1040 06/99 3.44 MM4005 dy display a variable usage imm pgm mip syntax xxdynn parameters description xx [int] field number. nn [int] variable number. range xx 1 to 2. nn 1 to 120. units xx none. nn none. defaults xx missing: error c. out of range: error c. floating point: error a. nn missing: error o. out of range: error o. description this command prints a variable s value on line five of the front panel dis- play. for this purpose, line five is split in two fields, each 13 characters long. the first field on the left is defined as number 1 and the one on the right as number 2. parameter xx selects which field the variable will be dis- played on. writing to field number 1 erases the previous text on the entire line. writing to field number 2 erases the previous text only from field number 2. this command is useful in monitoring the status and evolution of a com- plex program. returns none. errors a unknown message code. c parameter out of limits. j command authorized only in programming mode. o variable number out of range. rel. commands ds display strings on screen. ys initialize variable. ex execute a program. example 1ds loop # | print on the first part of line 5 the string loop # . 3ys0 | set variable #3 to 0. 4dl | define label #4. | | | 3ya1 | increment variable #3 by 1. 2dy3 | display variable #3 on the second field of line 5. 3yl50, 4jl | if variable #3 is less than 50, jump to label #4. in this example, line five of the front panel will display loop #n , where n is the loop count. free datasheet http:// 3.45 edh0162en1040 06/99 MM4005 ed display program error usage imm pgm mip syntax ednn parameters description nn [int] enable/disable code. range nn 0 to 1. units nn none. defaults nn missing: error c. out of range: error c. floating point: error c. description this command activates the program execution error display utility. if nn is set to 1, the program execution will stop every time an error is encoun- tered and the following message will be displayed on line 5 of the display: program aborted by error: * where * represents the ascii error code. on line 6, the last function key will be defined as quit and the program will resume execution after pressing this key. setting nn to zero disables the program execution error display utility. this is the default mode of operation. any error encountered will stop and ter- minate the program. to determine the error causing the problem use the tb or te commands. returns none. errors c parameter out of limits. rel. commands tb read error message. te read error code. example ed1 | activate program execution error display utility. 3ex | start executing program #3. | | | ed0 | disable program execution error display utility. free datasheet http:// edh0162en1040 06/99 3.46 MM4005 el erase the last element of trajectory usage imm pgm mip syntax el parameters none. description this command erases the last entered from actual elements of a trajectory. returns none. errors d unauthorized execution. s communication time-out. b trajectory is empty. rel. commands lt extended list of the trajectory. nt start definition of a new trajectory. xe tell the last element. example nt | start a new trajectory. lx10 | insert an element. el | erase this element. xt | read number of trajectory elements. xt0 | controller returns 0. free datasheet http:// 3.47 edh0162en1040 06/99 MM4005 eo automatical execution on power on usage imm pgm mip 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. range xx 1 to 127. nn 1 to 2147385345 . units xx none. nn none. defaults xx missing: 0 (no program execution on power on). out of range: error f. floating point: error a. nn missing: 1 (one time of execution). out of range: error c. description this command sets the program number that is automatically executed on power on. if xx is zero or missing, no program is executed. if nn is missing, the xx numbered program is executed one time. returns if the sign ? takes place of the nn value and xx missing, this command reportes the number of the program that is executed on power on and number of times of execution. errors a unknown message code. c parameter out of limits. f program number incorrect. rel. commands ex execute a program. example 2eo | set program #2 to be executed one time on power on. eo? | read executed on power on program number. eo, 2, 1 | controller tells the program #2 to be executed one time on power on. eo | reset automatical execution - no program is executed on power on. free datasheet http:// edh0162en1040 06/99 3.48 MM4005 ep edition of program usage imm pgm mip syntax xxepnn parameters description xx [int] program number nn [int] program line number. range xx 1 to 127. nn 1 to 32767 . units xx none. nn none. defaults xx missing: error f. out of range: error f. floating point: error a. nn missing: append to the end of program # xx . out of range: error c. floating point: error a. description this command sets the controller in programming mode. all the com- mands following this one will not be executed immediately but stored in memory as part of program number xx . programs can be entered in any order. to exit program entry mode and return to immediate mode, use the qp command. if a program already exists, the new commands entered will be inserted to the line # nn of program if nn is valid, or added to the end of program if nn is missing. so to replace a program, it must be first deleted using xx com- mand. returns none. errors a unknown message code. c parameter out of limits. d unauthorized execution. f program number incorrect. i unauthorized command in programming mode. m program is too long. rel. commands cp compile program. ex execute a program. qp quit program mode. xl delete one line of program. xx erase program. example 3xx | clear program 3 from memory, if existing 3ep | edition of program 3 1pa10 | enter a line 1ws | enter a line 3qp | quit edition of program 3 3lp | liste program 3 1pa10 | 1ws | the program is listed | | | free datasheet http:// 3.49 edh0162en1040 06/99 MM4005 ep edition of program (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 | 1ws | 2pa10 | 2ws | the program is now listed. | | | 3ep3 | edition of program 3, insert at line #3. ds *** wait *** | enter a line. 1sb | enter a line. wt5000 | enter a line. 1cb | enter a line. 3qp | quit edition of program 3. 3lp | liste program 3. 1pa10 | 1ws | ds*** wait *** | 1sb | wt2000 | 1cb | 2pa10 | 2ws | the program is now listed. 3ex | execute the program 3. free datasheet http:// edh0162en1040 06/99 3.50 MM4005 et execution of trajectory usage imm pgm mip syntax et, etx or ety parameters none. description et : 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. if an error occurs or the necessary conditions to the execution are not com- plete the trajectory execution is not started and the command returns a code of error. note to avoid errors, the desired order of commands is: preparation: nt, fa. edition of trajectory: lx, ly, mx, my, cr, ca, cx, cy, etc. edition of generation of synchronisation pulses: nb, ne, ni or nn (option). set trajectory velocity and acceleration: vv, vs (option). allow generation of pulses on interpolation: ns (option). execution of trajectory: et. synchronisation software: wi or wn (option). returns none. errors b incorrect axis number. d unauthorized execution. s communication time-out. b trajectory is empty. e trajectory: units not translationnal or not identical. f synchronization pulses generation impossible. h trajectory: execution exceeds physical or logical limits. rel. commands vs define the vector acceleration on trajectory (trajectory acceleration). vv define the vector velocity on trajectory (trajectory velocity). example nt | start new trajectory. lx10 | element 1. cr20, ca90 | element 2. ly40 | element 3. nb2 | set starting point of synchronisation pulses (beginning of element 2). ne2 | set ending point of synchronisation pulses (end of element 2). ni0.1 | set step: generate pulses for every (curvi-linear) trajectory step of 0.1 unit. vv5 | set trajectory velocity of 5 units/sec. vs40 | set trajectory acceleration of 40 units/sec 2 . ns | allow generation of pulses on interpolation. et | execute trajectory. wn2 | wait for beginning of element 2. 1sb | set i/o ouput port number 1. wn3 | wait for beginning of element 3. 1cb | clear i/o ouput port number 1. free datasheet http:// 3.51 edh0162en1040 06/99 MM4005 ex execute a program usage imm pgm mip syntax xxexnn parameters description xx [int] program number. nn [int] number of times to execute the program. range xx 1 to 127. nn 1 to 2147483648. units xx none. nn none. defaults xx missing: error f. out of range: error f. floating point: error a. nn missing: 1. out of range: error c. floating point: decimal part truncated. description this command starts executing a program. when the command is received, the controller first compiles the program, checking for errors similar to the cp command. if an error is encountered, the compilation stops and the controller reports the type of error found. if no error is found, the con- troller executes the program line by line or according to the flow control instructions. during program execution, only commands that ask for information or that stop the motion are allowed. any of the following commands will terminate a program: ab, ap, mf, rs and st. the easiest way to stop program execu- tion is by using the ap command, the other ones have wider effects. ex command is capable to execute subroutines (program without ex com- mand inside, integrated in the main program) returns none. errors a unknown message code. c parameter out of limits. f program number incorrect. g program does not exist. i unauthorized command in programming mode. see appendix a for additional list of programming errors. rel. commands ap abort program. cp compile program. example 1ep | program 1 edition (main program). 1pa10, 2pa10 | displacement of two axis. 2ex | execute the program 2 . 3ex | execute the program 3. 4ex | execute the program 4. or | origine search for all of axis. qp | quit main program. 2ep | program 2. sb | set bits. 1as"this " | define string #1. 2as"is " | define string #2. 1cs$s2 | concatenate string #1 and string #2. ds$s1"a string" | display on screen. free datasheet http:// edh0162en1040 06/99 3.52 fa define the tangent angle for the first point usage imm pgm mip syntax fann or fa? parameters description nn [double] tangent angle value at first point of trajectory. range nn 0.0 to <360.0. units nn degrees. defaults nn missing: 0. out of range: error x. description this command defines to the controller what will be angle of the tangent at the first point. this value is necessary if you want to start a new trajectory with the start tangent angle other than 0. so this command is enabled only when the number of elements of trajectory is zero. note on nt command, the controller assumes that the angle of the first tan- gent is 0. returns none. errors d unauthorized execution. s communication time-out. x trajectory: first angle definition error. rel. commands nt start definition of a new trajectory. example nt | start a new trajectory. fa45.0 | define first tangent angle is 45 ? . MM4005 ex execute a program (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. ds$s1$s3 " !" | display on screen. wt3000 | wait for 3 seconds. qp | quit the program 3. 4ep | program 4. 1pr-20, ws | displacement of axe 1. 2pr-20, ws | displacement of axe 2. cb | clear bits. wt1000 | wait for 1 second. qp | quit the program 4. this is a string | displayed on the controller ? s screen. this is a value: 99.99 ! | displayed on the controller ? s screen. free datasheet http:// 3.53 edh0162en1040 06/99 MM4005 fb label function key usage imm pgm mip syntax xxfbaa parameters description xx [int] function key number. aa [cha ? ne] label to be displayed. range xx 1 to 4. aa 0 to 6 characters. units xx none. aa none. defaults xx missing: error o. out of range: error o. floating point: error a. aa missing: clears the selected function key label. out of range: truncates label to the first 6 characters. description this command allows the user to define a label for a function key. using the fd or wf command will display the use-defined function keys. for the xx value, the four function keys are numbered from 1 to 4, from left to right. note the command is valid only in programming mode, where the function keys are not used by the normal operation of the controller. returns none. errors a unknown message code. j command authorized only in programming mode. o variable number out of range. rel. commands fc clear function key line. fd display function keys. wf wait for function key. example 3xx | clear program #3 from memory, if any. 3ep | activate program mode and enter following commands as program #3. 4fbstop | define custom label for function key #4 as stop. | | | 7wf | display the custom function key label(s) (stop), wait for a valid function key to be pressed and put its ascii code in variable #7. fc | clear function key display line. | | | free datasheet http:// edh0162en1040 06/99 3.54 MM4005 fc clear function key line usage imm pgm mip syntax fc 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. note the command is valid only in programming mode, applying only to the custom-defined function keys, not the ones used by the normal operation of the controller. returns none. errors a unknown message code. j command authorized only in programming mode. rel. commands fb label function key. fd display function keys. wf wait for function key. example 3xx | clear program #3 from memory, if any. 3ep | activate program mode and enter following commands as program #3. 4fbstop | define custom label for function key #4 as stop. | | | 7wf | display the custom function key label(s) (stop), wait for a valid function key to be pressed and put its ascii code in variable #7. fc | clear function key display line. | | | free datasheet http:// 3.55 edh0162en1040 06/99 MM4005 fd display function keys usage imm pgm mip syntax fd 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. note the command is valid only in programming mode, applying only to the custom defined function keys, not the ones used by the normal operation of the controller. returns none. errors a unknown message code. j command authorized only in programming mode. rel. commands fb label function key. fc clear function key line. wf wait for function key. example 3xx | clear program #3 from memory, if any. 3ep | activate program mode and enter following commands as program #3. 4fbstop | define custom label for function key #4 as stop. | | | fd | display the custom function key label(s) (stop). | | | fc | clear function key display line. free datasheet http:// edh0162en1040 06/99 3.56 MM4005 fe set maximum following error usage imm pgm mip syntax xxfenn parameters description xx [int] axis number. nn [float] maximum allowed following error. range xx 1 to 4. nn 2 x encoder resolution to maximum device travel. units xx none. nn preset units in setup mode. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the maximum allowed following error for an axis. this error is defined as the difference between the real position and the theoret- ical position of a motion device. the real position is the one reported by the position sensing device (encoder, scale, etc.) and the theoretical posi- tion is calculated by the controller each servo cycle. if, for any axes and any servo cycle, the following error exceeds the preset maximum allowed following error, the controller stops motion on all axes and turns power off to all motors. the command can be sent at any time but it has no effect until the uf (update filter) is received. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands tf read filter parameters. uf update servo filter. xf read maximum following error. example 3fe0.1 | set maximum following error for axis #3 to 0.1. | | | 3uf | update pid filter; only now the fe command takes effect. free datasheet http:// 3.57 edh0162en1040 06/99 MM4005 ff set maximum master-slave following error usage imm pgm mip 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. range xx 1 to 4. nn 2 x axis encoder resolution to maximum axis travel. units xx none. nn preset units in setup mode. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the maximum allowed master-slave following error for a slave axis. this error is defined as the difference between the position error of master axis and is divided by master-slave reduction ratio position error of the slave axis. the position error of an axis is defined as the differ- ence between the theoretical position and the real position of this axis. if, for any axes and any servo cycle, the master-slave following error exceeds the preset maximum allowed master-slave following error, the controller stops motion on all axes and turns power off to all motors. returns if the sign ? takes place of the nn value, this command reportes the actu- al value of the maximum allowed master-slave following error. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands fe set maximum following error. example 3ff0.1 | set maximum allowed master-slave following error for axis #3 to 0.1 units. | | | 3ff? | read maximum master-slave following error of axis #3. 3ff0.1 | controller tells the value of this parameter. free datasheet http:// edh0162en1040 06/99 3.58 MM4005 ft set output frequency usage imm pgm mip syntax ftnn parameters description nn [float] desired frequency. range nn 0 and 0.01 to 5000. units nn hz. defaults nn missing: 0. out of range: error d. non-increment: rounded to nearest frequency increment (see table). description this command controls the output signal on pin 24 of the 25-pin auxiliary connector. the nn parameter represents the frequency of the output sig- nal. setting nn to 0 disables the frequency generator. the output has an open collector configuration and a frequency range and resolution shown in the following table: f (hz) ? f (hz) (output frequency) (frequency resolution) 0.01 - 20 0.001 20 - 250 0.010 250 - 500 0.020 500 - 1000 0.100 1000 - 2500 0.500 2500 - 5000 1.000 note for the hardware definition of the frequency generator port, please see appendix b, connector pinouts, auxiliary connector. returns none. errors d unauthorized execution. rel. commands none. example ft218.24 | set an output frequency of 218.240 hz on pin 24 of the auxiliary con- nector. . free datasheet http:// 3.59 edh0162en1040 06/99 MM4005 gq set global trace mode usage imm pgm mip syntax gqnn or gq? parameters description nn [int] number of samples. range nn 0 to nmax (1500 to 4000). ? reading of the nmax value. units nn none. defaults nn missing: error c. out of range: error c. floating point: decimal part truncated. description this command sets the global trace mode. if the command is sent with the nn set between 1 and 4000, the controller starts immediately recording in memory the theoretical position, the actual position of all axes and the 4 analog inputs. the number of samples stored is the one specified by nn and the sample interval is the one set by the sq command. to read the recorded trace data use the tq command. to disable the global trace mode set nn to 0. note since it starts executing immediately, the best use of this command is in the same line of program with the displacement for better control of exe- cution delays. returns if the sign ? takes place of nn , this command reports the number of possi- ble max. points in global trace mode. errors c parameter out of limits. rel. commands nq read global acquisition nr. sq set global sample rate. tq read global trace data. xq read global sample rate. example sq0.002 | set global trace sample period to 2 msec. gq500 , 2pr5, 2ws | set global trace mode for 500 data points, perform a motion of 5 units on axis #2 and wait for stop. tq | read global trace data. free datasheet http:// edh0162en1040 06/99 3.60 MM4005 gr set master-slave reduction ratio usage imm pgm mip 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. range xx 1 to 4. nn 0.0001 to 10000. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: 1.0. out of range: error c. description this command sets the master-slave reduction ratio for a slave axis. the displacement of the slave axis is the one of the master axis multipled by this coefficient. note use the gr command carefully. the slave axis will also have its speed and acceleration in the same ratio than the position. be careful that the ratio used for the slave axis doesn t cause overflow of this axis parameters (speed, acceleration), especially with ratios greater than 1. note if the cd command is used in conjunction with the ss command and gr command, the slave axis cycle value must be equal to the master axis cycle value multiplied by the master-slave reduction ratio. returns if the sign ? takes place of the nn value, this command reportes the actu- al value of the master-slave reduction ratio. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands ss set master-slave mode. example 2gr100 | set master-slave ratio for axis #2 to 100. | | | 2gr? | read master-slave reduction of axis #2. 2gr100 | controller tells the value of this parameter. free datasheet http:// 3.61 edh0162en1040 06/99 MM4005 ie if i/o input is equal usage imm pgm mip syntax xxienn parameters description xx [int] i/o input bit number. nn [int] i/o input bit or byte state. range xx 0 to 8. nn 0 to 1 or 0 to 255. units xx none. nn none. defaults xx missing: 0. out of range: error e. floating point: error a. nn missing: error c. out of range: error c. floating point: error c. description this command is one of the flow control instructions, enabling a condition- al execution of a command line depending on the state of an i/o input bit. it must be placed at the beginning of the command line of which execution it controls. if the selected bit xx has the specified state nn , all following com- mands on that line are executed. if xx is set to 0 or missing, the test is per- formed on the entire i/o input byte and then nn could have a value from 0 to 255, representing the byte value to compare it with. as described in the command syntax paragraph, a line is defined as all commands between two line terminators. even though the command can be used on a line in immediate mode, its real value is inside a program. returns none. errors a unknown message code. c parameter out of limits. e incorrect i/o channel number. l command not at the beginning of a line. rel. commands oe test i/o output. example 3ie0 , 1pa2.34 | if i/o input bit #3 is low, move axis #1 to position 2.34. free datasheet http:// edh0162en1040 06/99 3.62 kc abort command line usage imm pgm mip syntax kc parameters none. description this command stops a program or a command line in execution. on recep- tion of this command, the controller will finish executing the command in progress, abort execution of the remaining ones and return to the immedi- ate mode. returns none. errors none. rel. commands ab abort motion. st stop motion. mf motor off. mo motor on. example kc | finish executing command in progress and abort the remaining com- mands. MM4005 jl jump to label usage imm pgm mip syntax xxjl parameters description xx [int] label number. range xx 1 to 100. units xx none. defaults xx 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. this is a flow control command that alters the normal sequential flow of a program. it must be used in conjunction with a dl com- mand which defines a label. returns none. errors a unknown message code. j command authorized only in programming mode. k undefined label. n incorrect label number. rel. commands dl define label. example 3dl | define label number 3. | | | 2yl20, 3jl | if variable 2 is less than 20, jump to label 3. free datasheet http:// 3.63 edh0162en1040 06/99 MM4005 kd set derivative gain usage imm pgm mip syntax xxkdnn parameters description xx [int] axis number. nn [float] derivative gain factor kd. range xx 1 to 4. nn 0 to 1. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the derivative gain factor kd of the pid closed loop. it is active for any motion device that has been selected to operate in closed loop, including those driven by stepper motors. the command can be sent at any time but it has no effect until the uf (update filter) is received. see the servo tuning section on how to adjust the pid filter parameters. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands ki set integral gain. kp set proportional gain. uf update servo filter. xd read derivative gain factor. example 3kd0.01 | set derivative gain factor for axis #3 to 0.01. | | | 3uf | update pid filter; only now the kd command takes effect. free datasheet http:// edh0162en1040 06/99 3.64 MM4005 ki set integral gain usage imm pgm mip syntax xxkinn parameters description xx [int] axis number. nn [float] integral gain factor ki. range xx 1 to 4. nn 0 to 1. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the integral gain factor ki of the pid closed loop. it is active for any motion device that has been selected to operate in closed loop, including those driven by stepper motors. the command can be sent at any time but it has no effect until the uf (update filter) is received. see the servo tuning section on how to adjust the pid filter parameters. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands kd set derivative gain. kp set proportional gain. uf update servo filter. xi read integral gain factor. example 3ki0.01 | set integral gain factor for axis #3 to 0.01. | | | 3uf | update pid filter; only now the ki command takes effect. free datasheet http:// 3.65 edh0162en1040 06/99 MM4005 kp set proportional gain usage imm pgm mip syntax xxkpnn parameters description xx [int] axis number. nn [float] proportional gain factor kp. range xx 1 to 4. nn 0 to 1. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the proportional gain factor kp of the pid closed loop. it is active for any motion device that has been selected to operate in closed loop, including those driven by stepper motors. the command can be sent at any time but it has no effect until the uf (update filter) is received. see the servo tuning section on how to adjust the pid filter parameters. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands kd set derivative gain. ki set integral gain. uf update servo filter. xp read proportional gain factor. example 3kp0.01 | set proportional gain factor for axis #3 to 0.01. | | | 3uf | update pid filter; only now the kp command takes effect. free datasheet http:// edh0162en1040 06/99 3.66 MM4005 ks set saturation level of integral factor in position loop pid corrector usage imm pgm mip syntax xxksnn or xxks? parameters description xx [int] axis number. nn [float] new saturation level of integral factor. ? read the actual saturation level. range xx 1 to 4. nn 0 to 1. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the saturation level of integral factor of the pid posi- tion closed loop. this is evaluated in nn (0 to 1) times of the maximum pos- sible level of ouput signal. the command can be sent at any time but it has no effect until the uf (update filter) is received. returns if the sign ? takes place of the nn value, this command reportes the actu- al saturation level (0 to 1 times) of integral factor of the pid position closed loop. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands kd set derivative gain. ki set integral gain. kp set proportional gain. uf update servo filter. example 3ks0.5 | set integral saturation factor for axis #3 to 0.5. | | | 3uf | update pid filter; only now the ks command takes effect. 3ks? | display actual value of ks. 3ks0.5 | controller tells the value. free datasheet http:// 3.67 edh0162en1040 06/99 MM4005 lp list program usage imm pgm mip syntax xxlp parameters description xx [int] program number. range xx 1 to 127. units xx none. defaults xx 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). during the transmission no other command should be sent to the controller. to read a program from the non-volatile memory, first use the mp com- mand to download its content in ram. returns program listing. errors a unknown message code. f program number incorrect. g program does not exist. i unauthorized command in programming mode. rel. commands mp download eeprom to ram. example mp | copy programs from eeprom to ram. 3lp | list program number 3. 1pa0 | program listing. | | | free datasheet http:// edh0162en1040 06/99 3.68 MM4005 lt extended list of the trajectory usage imm pgm mip syntax xxlt parameters description xx [int] element number. range xx 1 to 100. units xx none. defaults xx missing: 0. out of range: error c. description this command retrieves from the controller the extended form of an ele- ment of trajectory. note when the element number is 0 or absent, all elements of the trajectory will be listed. returns the returned value is dependent of the element type and is as follow, when element is: (lx): xxltaa, x=xx, y=yy, a=tt (ly): xxltbb, x=xx, y=yy, a=tt (mx, my): xxltcc, x=xx, y=yy, a=tt (cx, cy): xxltdd, x=xx, y=yy, a=tt, r=rr, b=ss, s=ww (cr, ca): xxltee, x=xx, y=yy, a=tt, r=rr, b=ss, s=ww where: aa line (x, ). bb line (y, ). cc line (x, y). dd arc (x, y). ee arc (r, ). xx x end position of the element. yy y end position of the element. tt angle of the tangent at the end position. rr radius of the circle. ss start angle for a circle. ww sweep angle for a circle. errors c parameter out of limits. s communication time-out. rel. commands xt tell number of elements in the trajectory. xe tell the last element. example nt | clear trajectory. cr10 | define radius of an arc of circle = ? (r, ca90 | define sweep angle an build an arc of circle = ? (r, 1lt | extended list of a trajectory. 1lt, arc (r, free datasheet http:// 3.69 edh0162en1040 06/99 MM4005 lx define x position and build a line segment = (lx, tangent) usage imm pgm mip syntax lxnn parameters description nn [double] x coordinate to reach with a line segment. range nn -1.0 e 12 to 1.0 e 12 . units nn preset units in setup mode. defaults nn missing: error c. out of range: error c. description this command defines to the controller to build an element of trajectory of the type: line segment = (lx, tangent). returns none. errors c parameter out of limits. h calculation overflow. s communication time-out. v too long trajectory. y trajectory: line (x, y). line expected. [ trajectory: line (x, ) or line (y, ) impossible. e trajectory: units not translationnal or not identical. rel. commands ly define y position and build a line segment = (ly, tangent). xe tell the last element. example nt | clear trajectory. fa45.0 | define input tangent = 45 ? . lx10 | define and build line segment = ? (10.0, 45.0 ? ). xe | tell last element. xe, line (x, free datasheet http:// edh0162en1040 06/99 3.70 MM4005 ly define y position and build a line segment = (ly, tangent) usage imm pgm mip syntax lynn parameters description nn [double] y coordinate to reach with a line segment. range nn -1.0 e 12 to 1.0 e 12 . units nn preset units in setup mode. defaults nn missing: error c. out of range: error c. description this command defines to the controller to build an element of trajectory of the type: line segment = (ly, tangent). returns none. errors c parameter out of limits. h calculation overflow. s communication time-out. v too long trajectory. y trajectory: line (x, y). line expected. e trajectory: units not translationnal or not identical. [ trajectory: line (x, ) or line (y, ) impossible. rel. commands lx define x position and build a line segment = (lx, tangent). xe tell the last element. example nt | clear trajectory. fa45.0 | define input tangent = 45 ? . ly10 | define and build line segment = ? (10.0, 45.0 ? ). xe | tell last element. xe, line (y, free datasheet http:// 3.71 edh0162en1040 06/99 MM4005 mc set manual mode usage imm pgm mip syntax mc 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. to exit the manual jog mode, press the quit function key. the manual jog mode can be terminated remotely by using the st or ab commands. turning the motor power off from the front panel or using the mf com- mand also exits the manual jog mode. note if the display was disabled by using the rd command, it will be re- enabled as long as the manual mode is active. attention if the motor power is off when the command is issued, it will turn it on and then enter the manual jog mode. returns none. errors d unauthorized execution. rel. commands mf motor off. ml set local mode. mr set remote mode. st stop motion. example mc | enter manual jog mode. mf motor off usage imm pgm mip syntax xxmf parameters description xx [int] axis number. description this command should be used as an emergency stop. on reception of this command, the controller stops motion on the indicated axis with a fast deceleration and then turns motor power off. if xx is missing, the con- troller stops motion on all axes the command can be also used to turn the motors off when a manual adjustment of the stage is desired. returns none. errors none. rel. commands ab abort motion. mo motor on. st stop motion. example mf | stop all motion and turn motor off. free datasheet http:// edh0162en1040 06/99 3.72 MM4005 mh set manual velocity usage imm pgm mip syntax xxmhnn parameters description xx [int] axis number. nn [float] manual jog high velocity value. range xx 1 to 4. nn 1e 6 to the programmed velocity value in setup mode . units xx none. nn preset units in setup mode/second. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the manual jog high velocity value of an axis (from front panel or joystick). this is the high speed manual jog mode, activated by simultaneously pressing the center key with a direction key. the manual jog low speed is 1/10 of the high speed. the manual jog high speed can also be changed from the front panel setup menu. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands dm read manual velocity. example 2mh4.5 | set axis #2 manual jog high velocity to 4.5. 2dm | read manual jog high velocity of axis #2. 2dm4.5 | controller returns a manual velocity value of 4.5 units/sec. free datasheet http:// 3.73 edh0162en1040 06/99 MM4005 ml set local mode usage imm pgm mip syntax ml 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. note if the ml command is issued while a program or a motion is in progress, the controller will first abort the program and stop all axes, similarly to a st command, before switching to local mode. returns none. errors d unauthorized execution. rel. commands mc set manual mode. mr set remote mode. example ml | set local mode. mo motor on usage imm pgm mip syntax xxmo parameters description xx [int] axis number. description this command turns motor power on for the indicated axis. if xx is missing, all axes are turned power on. it is equivalent to the front panel motor button. caution if the motor power is turned off by the controller detecting a fault condi- tion, before turning the power back on, make sure that the cause of the fault is corrected. returns none. errors none. rel. commands ab abort motion. mf motor off. st stop motion. example mo | turn power on to all motors. on free datasheet http:// edh0162en1040 06/99 3.74 mr set remote mode usage imm pgm mip syntax mr parameters none. description this command activates the remote mode. in this mode all function keys and the keypad on the front panel are disabled. the front panel still dis- plays motion and status information but only the power and motor power buttons remain active. not recommended for use in programming mode. note if the mr command is issued while a program or a motion is in progress, the controller will first abort the program and stop all axes, similarly to a st command, before switching to remote mode. returns none. errors d unauthorized execution. rel. commands mc set manual mode. ml set local mode. example mr | set controller in remote mode. MM4005 mp download eeprom to ram usage imm pgm mip syntax mp 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. returns none. errors i unauthorized command in programming mode. rel. commands lp list program. xx erase program. sm save program. example mp | copy programs from non-volatile memory to ram. free datasheet http:// 3.75 edh0162en1040 06/99 MM4005 ms read motor status usage imm pgm mip syntax xxms parameters description xx [int] axis number. range xx 0 to 4. units xx none. defaults xx 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. each bit of the status byte represents a particular axis parameter, as described in the following table: meaning for bit # function 01 0 axis in motion no yes 1 motor power on off 2 motion direction negative positive 3 right (+) travel limit not tripped tripped 4 left (-) travel limit not tripped tripped 5 mechanical zero signal low high 6 not used default 7 not used default the byte returned is in the form of an ascii character. converting the ascii code to binary will give us the status bits values. note for a complete ascii to binary conversion table, see appendix f, ascii table. returns xxmsaa or xx 1 msaa 1 , xx 2 msaa 2 , xx 3 msaa 3 , xx 4 msaa 4 xx, xx 1 , xx 2 , xx 3 , xx 4 axis number. aa, aa 1 , aa 2 , aa 3 , aa 4 ascii character representing the status byte. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands ts read controller status. tx read controller activity. example 2ms | read motor status byte for axis #2. 2mse | controller returns character e, or ascii character 101; converting 101 to binary we get 01100101 which has the following meaning: axis in motion, motor power on, motion direction positive, no limits tripped and mechanical zero high. free datasheet http:// edh0162en1040 06/99 3.76 MM4005 mt move to travel limit switch usage imm pgm mip syntax xxmtnn parameters description xx [int] axis number. nn type of limit. range xx 1 to 4. nn + or . units xx none. nn none. defaults xx missing: error b. out of range: error b. nn missing: error c. 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. however, with this command, reaching the travel limit is the desired function so other motions will not be stopped and an error message will not be generated. note it is recommanded to set the velocity of the stage to not more than 10% of its maximum velocity when using this command to avoid mechanical damage. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands mv infinite movement. example 1mt+ | move axis #1 to positive limit. 3mt- | move axis #3 to negative limit. free datasheet http:// 3.77 edh0162en1040 06/99 MM4005 mv infinite movement usage imm pgm mip syntax xxmv+ or xxmv- parameters description xx [int] axis number. + displacement in positive direction. - displacement in negative direction. range xx 1 to 4. units xx none. defaults xx missing: error b. out of range: error b. floating point: error a. description this command starts an infinite movement with the velocity predefined by va command. to stop movement, use st command. note while a motion is in progress, care should be taken not to reverse direc- tion of motion. when this command is received, the controller verifies if it will produce a change of direction. if so, it will refuse the execution and set error code d. note if the axis was previously defined as a synchronized axis, mv command do not generate a motion. for synchronized axes use se command to execute a motion.note note using of the this command is possible only after setting of a periodic cycle (cd command) and only for rotary stages. returns none. errors a unknown message code. b incorrect axis number. d unauthorized execution. rel. commands ac set acceleration. mt move to travel limit switch. pa move to absolute position. pr move to relative position. st stop motion. va set velocity. example 2va8 | set velocity of axis #2 to 8 units/sec. 2cd360 | set cycle value to 360 ? and activate the mode. 2mv+ | move axis #2 with velocity of 8 units/sec. st | stop motion. free datasheet http:// edh0162en1040 06/99 3.78 MM4005 mx define x position for a line segment = (mx, my) usage imm pgm mip syntax mxnn parameters description nn [double] x coordinate to reach with a line segment. range nn -1.0 e 12 to 1.0 e 12 . units nn preset units in setup mode. defaults nn missing: error c. out of range: error c. description this command defines to the controller x position to reach with an ele- ment of trajectory of the type: line segment = (mx, my). returns none. errors c parameter out of limits. s communication time-out. v too long trajectory. y trajectory: line (x, y). line expected. z trajectory: line (x, y). too big discontinuity. e trajectory: units not translationnal or not identical. rel. commands my define y position and build a line segment = (mx, my). xe tell the last element. example nt | clear trajectory. mx10 | define x position of a line segment = ? (x, y). my10 | define y position an build a line segment = ? (x, y). xe | tell last element. xe, line (x, y), 10, 10, 45 | controller tells the built element. free datasheet http:// 3.79 edh0162en1040 06/99 MM4005 my define y position and build a line segment = (mx, my) usage imm pgm mip syntax mynn parameters description nn [double] y coordinate to reach with a line segment. range nn -1.0 e 12 to 1.0 e 12 . units nn preset units in setup mode. defaults nn missing: error c. out of range: error c. description this command defines to the controller the y position to reach and tells to the controller to build an element of trajectory of the type: line segment = (mx, my). returns none. errors c parameter out of limits. s communication time-out. v too long trajectory. y trajectory: line (x, y). line expected. z trajectory: line (x, y). too big discontinuity. e trajectory: units not translationnal or not identical. rel. commands mx define x position for a line segment = (mx, my). xe tell the last element. example nt | clear trajectory. mx10 | define x position of a line segment = ? (x, y). my10 | define y position an build a line segment = ? (x, y). xe | tell last element. xe, line (x, y), 10, 10, 45 | controller tells the built element. free datasheet http:// edh0162en1040 06/99 3.80 MM4005 nb set trajectory element where the generation of pulses starts usage imm pgm mip 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. range nn 1 to 100. units nn none. defaults nn missing: 1. out of range: error c. description this command sets number of trajectory element where the generation of pulses commences. the generation of pulses is started immediately in the beginning of this element. note as the total element number of a trajectory may be inferior than 100 and the value of nb must be the value of ne the total element number, this value of nb will be reexamined in ns and et commands. returns if the sign ? takes place of the nn value, this command reportes the num- ber of trajectory element where the generation of pulses commences. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands ne set trajectory element where the generation of pulses ends. ni set step (curvi-linear distance) between synchronisation pulses. nn set number of synchronisation pulses to generate. example nb3 | generation of pulses starts at the beginning of the element #3. nb? | read element number where the generation of pulses starts. nb3 | controller tells the value. free datasheet http:// 3.81 edh0162en1040 06/99 MM4005 ne set trajectory element where the generation of pulses ends usage imm pgm mip 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. range nn 1 to 100. units nn none. defaults nn missing: 1. out of range: error c. description this command sets number of trajectory element where the generation of pulses ends. the generation of pulses is ended immediately in the end of this element. note as the total element number of a trajectory may be inferior than 100 and the value of nb must be the value of ne the total element number, this value of ne will be reexamined in ns and et commands. returns if the sign ? takes place of the nn value, this command reportes the num- ber of trajectory element where the generation of pulses ends. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands nb set trajectory element where the generation of pulses starts. ni set step (curvi-linear distance) between synchronisation pulses. nn set number of synchronisation pulses to generate. example ne4 | generation of pulses ends at the end of the element #4. ne? | read element number where the generation of pulses ends. ne4 | controller tells the value. free datasheet http:// edh0162en1040 06/99 3.82 MM4005 ni set step (curvi-linear distance) between synchronisation pulses usage imm pgm mip syntax ninn or ni? parameters description nn [long] new value of step between pulses. ? read step. range nn 2 * max {x and y axis encoder resolution}. units nn current unit. defaults nn 0 or missing: no pulse is generated. out of range: error c. description this command sets the value of step between pulses to generate between the elements defined by nb and ne. if nn is default or zero, the generation of pulses of synchronisation is disabled. this value of ni will be reexamined in et command. note because ni and nn are complement commands, the last entered ni com- mand value replaces all of precedently entered ni or nn commands one. returns if the sign ? takes place of the nn value, this command reportes the step between synchronisation pulses to generate. 0 means that no pulse is gen- erated. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands nb set trajectory element where the generation of pulses starts. ne set trajectory element where the generation of pulses ends. nn set number of synchronisation pulses to generate. example ni0.5 | set step between pulses to 0.5 unit. ni? | read number of pulses to generate. ni0.5 | controller tells the value. free datasheet http:// 3.83 edh0162en1040 06/99 MM4005 nn set number of synchronisation pulses to generate usage imm pgm mip 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 nn 2 to 2147385345. units nn none. defaults nn 0 or missing: no pulse is generated. out of range: error c. description this command sets the number of synchronisation pulses to generate between the elements defined by nb and ne. if nn is default or zero, the generation of pulses of synchronisation is disabled. the possible maximum value of nn is mpn (maximum pulse number) that will be examined in et command. note because ni and nn are complement commands, the last entered nn com- mand value replaces all of precedently entered ni or nn commands one. returns if the sign ? takes place of the nn value, this command reportes the num- ber of synchronisation pulses to generate between the elements defined by nb and ne. 0 means that no pulse is generated. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands nb set trajectory element where the generation of pulses starts. ne set trajectory element where the generation of pulses ends. ni set step (curvi-linear distance) between synchronisation pulses. example nn11 | set number of pulses to 11. nn? | read number of pulses to generate. nn11 | controller tells the value. free datasheet http:// edh0162en1040 06/99 3.84 MM4005 np set decimal digits number of position display usage imm pgm mip syntax xxnpnn or xxnp? parameters description xx [int] axis number. nn [int] new value of displayed resolution. range xx 1 to 4. nn 1 to mdr (maximum display resolution). units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: default value of actual unit. out of range: error c. description this command sets new value of number of digits after the decimal point of on screen displayed position values. the mdr value, dependant on the actual unit, is described below: unit mm m in min in dg gr rad mrd rd inc mdr 637416 66310 to restore the default value of the actual unit, use xxnp. note this command returns an error code if the actual unit is inc. returns if the sign ? takes place of the nn value, this command reportes the num- ber of decimal digits after the decimal point of on screen displayed posi- tion values. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands sf set axis mechanical motion device. sn set axis displacement units. example 1sfutm100cc0.5ha | set mechanical driver to utm100cc0.5ha. 1snmi. | set unit to minch. 1np4 | set position displayed precision to 4. free datasheet http:// 3.85 edh0162en1040 06/99 MM4005 nq read global acquisition nr. usage imm pgm mip syntax nq 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. returns nqnn nn number of acquired samples. errors s communication time-out. rel. commands gq set global trace mode. sq set global sample rate. tq read global trace data. xq read global sample rate. example sq0.005 | set global trace sample period to 5ms. gq1000 | enable trace mode for axis #2 and acquire 1000 samples. 2pr0.2, 3pr1 | start a relative motion on axis #2 and axis #3. nq | read the number of samples acquired. nq157 | controller reports 157 global trace samples acquired. nq | read the number of samples acquired. nq342 | controller reports 342 global trace samples acquired. ws, nq | wait for stop and read the number of samples acquired. nq1000 | controller reports 1000 global trace samples acquired. free datasheet http:// edh0162en1040 06/99 3.86 MM4005 ns allow generation of pulses on interpolation usage imm pgm mip syntax ns 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. if not, pulses are generated and at every moment where a pulse is generated, the x and y axis positions are stocked in the global trace buffer and can be reread by tq command. the pulses are generated on pin 12 of the 25-pin auxiliary connector with a pulse width of about 5 sec. note this command, if successful, erases effect of the global trace mode prece- dently defined by any gq command. note this command, if used, must precede immediately et command. returns none. errors d unauthorized execution. f synchronization pulses generation impossible. rel. commands nb set trajectory element where the generation of pulses starts. ne set trajectory element where the generation of pulses ends. ni set step (curvi-linear distance) between synchronisation pulses. nn set number of synchronisation pulses to generate. example nt, fa90 | initialisation. cr10, ca 5 | element 1. ca350 | element 2. ca5 | element 3. nb2 | set pulses start to element 2. ne2 | set pulses end to element 2. nn21 | 21 pulses will be generated within element 2. vv5 | set trajectory velocity to 5 units/sec. ns | allow generation of pulses on interpolation. et | execute trajectory with generation of pulses. tq | read stocked data. free datasheet http:// 3.87 edh0162en1040 06/99 MM4005 nt start definition of a new trajectory usage imm pgm mip syntax nt 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. returns none. errors d unauthorized execution. s communication time-out. rel. commands el erase the last element of trajectory. lt extended list of the trajectory. xe tell the last element. example nt | reset current trajectory. oa set home search acceleration usage imm pgm mip syntax xxoann parameters description xx [int] axis number. nn [int] acceleration value. range xx 1 to 4. nn 1e -6 to the programmed value in setup mode. units xx none. nn preset units in setup mode/sec 2 . defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the acceleration and deceleration portion of the veloci- ty profile generator for home search. all subsequent home search accelera- tions and decelerations will be executed with the new value. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands oh set home search high velocity. ol set home search low velocity. or search for home. example 3oa50 | set home search acceleration to 50 units/sec 2 for axis #3. free datasheet http:// edh0162en1040 06/99 3.88 MM4005 oe test i/o output usage imm pgm mip syntax xxoenn parameters description xx [int] i/o output bit number. nn [int] i/o output bit or byte state. range xx 0 to 8. nn 0 to 1 or 0 to 255. units xx none. nn none. defaults xx missing: 0. out of range: error e. floating point: error a. nn missing: error c. out of range: error c. floating point: decimal part truncated. description this command is one of the flow control instructions, enabling a condition- al execution of a command line depending on the state of an i/o output bit. it must be placed at the beginning of the command line of which execution it controls. if the selected output bit xx has the specified state nn , all fol- lowing commands on that line are executed. if xx is set to 0 or missing, the test is performed on the entire i/o output byte and then nn could have a value from 0 to 255, representing the byte value to compare it with. as described in the command syntax paragraph, a line is defined as all commands between two line terminators. even though the command can be used on a line in immediate mode, its primary use is inside a program. returns none. errors a unknown message code. c parameter out of limits. e incorrect i/o channel number. l command not at the beginning of a line. rel. commands ie if i/o input is equal. example 3oe0 , 1pa2.34 | if i/o output bit #3 is low, move axis #1 to position 2.34. free datasheet http:// 3.89 edh0162en1040 06/99 MM4005 oh set home search high velocity usage imm pgm mip syntax xxohnn parameters description xx [int] axis number. nn [float] home search velocity. range xx 1 to 4. nn 0.000001 to maximum motion speed defined in setup . units xx none. nn units/sec. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the high velocity of the home search algorithm of the selected axis. for a detailed description of the home search routine see the home search paragraph in the motion control tutorial section. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands do read home search velocity. or search for home. example 3oh10 | set home search high velocity of axis #2 to 10 units/sec. free datasheet http:// edh0162en1040 06/99 3.90 MM4005 ol set home search low velocity usage imm pgm mip syntax xxolnn parameters description xx [int] axis number. nn [float] low velocity value. range xx 1 to 4. nn 1e -6 to maximum motion speed defined in setup mode . units xx none. nn preset units in setup mode/sec. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the desired value for low absolute velocity used during home search. for a detailed description of the home search routine see the home search paragraph in the motion control tutorial section. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands oa set home search acceleration. oh set home search high velocity. or search for home. example 3ol5 | set home search low velocity to 5 units/sec to axis #3. free datasheet http:// 3.91 edh0162en1040 06/99 MM4005 or search for home usage imm pgm mip syntax xxornn parameters description xx [int] axis number. nn [int] home search position option. range xx 0 to 4. nn 0 to 2. nn = 0 : move to zero position instead of origin search. nn = 1 : search mechanical zero and encoders top zero. nn = 2 : search mechanical zero, but do not search encoders top zero. units xx none. nn none. defaults xx missing: 0. out of range: error b. floating point: error a. nn missing: 1. out of range: error c. description this command executes a home search routine on the axis specified by xx . if xx is missing or set to 0, a home search is initiated sequentially on all installed axes, in the order specified in the general setup utility on the front panel. for details on how to set the home search axes sequence see the system setup paragraph of the introduction section. for a detailed description of the home search routine see the home search motion profile section in the motion control tutorial section. note there is a maximum allowed time for this command to execute, defined in the front panel general setup menu. if the motion device does not find the home position in the specified time, the controller stops the search and turns motor power off. note this command should be executed once every time the power is turned on or the controller is reset by using the rs command. there is no need to issue this command in any other case since the controller always keeps track of position, even when the motor power is off. returns none. errors a unknown message code. b incorrect axis number. c param ? tre hors limites. rel. commands dh define home. oh set home search high velocity. sh set home preset position. example 3or1 | perform a search of mechanical zero and encoders top zero, on axis #3. free datasheet http:// edh0162en1040 06/99 3.92 MM4005 pa move to absolute position usage imm pgm mip syntax xxpann parameters description xx [int] axis number. nn [float] absolute position destination. range xx 1 to 4. nn any position within the software travel limits. units xx none. nn defined motion units. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command initiates an absolute motion. when received, the selected axis xx will move, with the predefined acceleration and velocity to the absolute position specified by nn . note if the motor power is turned off, mo command which turns motor power on is executed before pa commmand, except if the controller has detect- ed a fault condition. note even though the command is accepted while a motion is in progress, care should be taken not to reverse direction of motion. when this com- mand is received, the controller verifies if it will produce a change of direction. if so, it will refuse the execution and set error code d. note if the axis was previously defined as a synchronized axis, pa command will only set the destination but not generate a motion. for synchronized axes use se command to execute a motion. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands ac set acceleration. pr move to relative position. st stop motion. va set velocity. example 3va8 | set velocity of axis #2 to 8 units/sec. 3pa12.34 | move axis #3 to absolute position 12.34. free datasheet http:// 3.93 edh0162en1040 06/99 usage imm pgm mip 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 . range xx 1 to 4. nn min. logical allowed position to max. logical allowed position. units xx none. nn preset units in setup mode. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: 0. out of range: error c. description this command sets start position of generation of pulses of synchronisa- tion for an axis. the command can be sent at any time but it has no effect until the ps com- mand is received. returns if the sign ? takes place of the nn value, this command reportes the start position of generation of pulses of synchronisation for xx numbered axis. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands pe set end position of generation of pulses of synchronisation. pi set step of generation of pulses of synchronisation. example 2pb-10 | set start position for axis #2 to -10 units. | | | 2pb? | actual value of pb ? 2pb-20 | controller tells the actual value. | | | 2ps | update pb, pe, pi and allow pulses. | | | 2pb? | actual value of pb ? 2pb-10 | controller tells the actual value. MM4005 pb set start position of generation of pulses of synchronisation free datasheet http:// edh0162en1040 06/99 3.94 MM4005 pe set end position of generation of pulses of synchronisation usage imm pgm mip 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 . range xx 1 to 4. nn min. logical allowed position to max. logical allowed position. units xx none. nn preset units in setup mode. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: 0. out of range: error c. description this command sets end position of generation of pulses of synchronisation for an axis. the command can be sent at any time but it has no effect until the ps com- mand is received. returns if the sign ? takes place of the nn value, this command reportes the end position of generation of pulses of synchronisation for xx numbered axis. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands pb set start position of generation of pulses of synchronisation. pi set step of generation of pulses of synchronisation. example 2pe10 | set end position for axis #2 to 10 units. | | | 2pe? | actual value of pe ? 2pe20 | controller tells the actual value. | | | 2ps | update pb, pe, pi and allow pulses. | | | 2pe? | actual value of pe ? 2pe10 | controller tells the value. free datasheet http:// 3.95 edh0162en1040 06/99 MM4005 pi set step of generation of pulses of synchronisation usage imm pgm mip 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 . range xx 1 to 4. nn 2 x coder precision to maximum allowed travel . units xx none. nn preset units in setup mode. defaults xx missing: error b. out of range: error b. floating point: error a. nn 0 or missing: stop generation of pulses. out of range: error c. description this command sets step of generation of pulses of synchronisation for an axis. if nn is default or zero, the generation of pulses of synchronisation is disabled. the command can be sent at any time but it has no effect until the ps com- mand is received. the minimum value of step: the displacement of stage within t base will be verified in ps command. returns if the sign ? takes place of the nn value, this command reportes the step of generation of pulses of synchronisation for xx numbered axis. 0 means that no pulse is generated. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands pb set start position of generation of pulses of synchronisation. pe set end position of generation of pulses of synchronisation. example 2pi0.1 | set step of pulses for axis #2 to 0.1 unit. | | | 2pi? | actual value of pi ? 2pi0.5 | controller tells the actual value. | | | 2ps | update pb, pe, pi and allow pulses. | | | 2pi? | actual value of pi ? 2pi0.1 | controller tells the value. free datasheet http:// edh0162en1040 06/99 3.96 MM4005 pr move to relative position usage imm pgm mip syntax xxprnn parameters description xx [int] axis number. nn [float] relative motion increment. range xx 1 to 4. nn any value that will not cause exceeding the software limits. units xx none. nn defined motion units. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command initiates a relative motion. when received, the selected axis xx will move, with the predefined acceleration and velocity, to a relative position nn units away from the current position. note if the motor power is turned off, mo command which turns motor power on is executed before pr commmand, except if the controller has detect- ed a fault condition. note even though the command is accepted while a motion is in progress, care should be taken not to reverse direction of motion. when this com- mand is received, the controller verifies if it will produce a change of direction. if so, it will refuse the execution and set error code d. note if the axis was previously defined as a synchronized axis, pr command will only set the destination but not generate a motion. for synchronized axes use se command to execute a motion. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands ac set acceleration. pa move to absolute position. st stop motion. va set velocity. example 3va8 | set velocity of axis #3 to 8 units/sec. 3pr2.34 | move axis #3 2.34 units away from the current position. free datasheet http:// 3.97 edh0162en1040 06/99 MM4005 ps allow generation of pulses on motion usage imm pgm mip syntax xxpspp parameters description xx [int] axis number. pp [int] auxiliary parameter. range xx 0 to 4. pp 0 to 3. units xx none. pp none. defaults xx missing: error b. out of range: error b. floating point: error a. pp missing: 0. description this command verifies the correctness of data enterred by pb, pe and pi before allow generation of pulses for an axis. if a condition is not satisfied, the generation of pulses is disabled and the command returns an error. if nof, pulses are generated in the course of axis displacement. at every moment where a pulse is generated: if pp = 0 or missing: actual position of xx axis is stocked in the axis trace buffer and can be reread by tt command. if pp = 1: actual positions of all axis are stocked in the global trace buffer and can be reread by tq command. if pp = 2: actual positions are not stocked. if pp = 3 this command is used on-line (axis in mouvement) to update pb, pe or pi commands that are newly entered. the pulses are generated on pin 11 of the 25-pin auxiliary connector with a pulse width of about 5 sec. note this command, if successful, erases the effect of trace mode precedently defined by tm command if pp = 0 or missing, or the effect of trace mode precedently defined by gq command if pp = 1. note this command, if used with pp 3, must precede immediately pa, pr or se command. note the starting and ending axis motion must be out of the interval defined by pb and pe commands. returns none. errors a unknown message code. b incorrect axis number. d unauthorized execution. f synchronization pulses generation impossible. free datasheet http:// edh0162en1040 06/99 3.98 pt calculate necessary time for axis displacement usage imm pgm mip syntax xxptnn parameters description xx [int] axis number. nn distance of displacement. range xx 0 to 4. nn float. units xx none. nn actual unit. defaults xx missing: error b. out of range: error b. nn missing: error c. out of range: error c. description this command calculates the necessary time for the displacement of axis # xx of distance nn . returns the necessary time (seconds) for displacement of axis # xx of distance nn . errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands none. example 1pt20 | calculate the time for axis #1 displacement of 20 units. 1pt1.25 | controller returns value in seconds. MM4005 ps allow generation of pulses on motion (cont.) rel. commands pb set start position of generation of pulses of synchronisation. pe set end position of generation of pulses of synchronisation. pi set step of generation of pulses. example 1pb-20 |set start position for axis #1 to -20 units. 1pe0 | set end position for axis #1 to 0 units. 1pi2 | set step to 2 units. 1pa-50 | displacement without generation of pulses. 1ps | allow generation of pulses. 1pa50 | displacement with generation of pulses. 1pb10 | new pb. 1pe30 | new pe. 1pi1 | new pi. 1wp5 | wait the axis #1 for 5 units. 1ps3 | update pb, pe, pi. tt | read data. free datasheet http:// 3.99 edh0162en1040 06/99 MM4005 pw save parameters usage imm pgm mip syntax xxpw parameters description xx [int] axis number. range xx 0 to 4. units xx none. defaults xx 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. if the axis specifier xx is not present or set to 0, parameters of all axes will be saved. for a list and description of the axis parameters that are stored in non- volatile memory see the system setup paragraph of the introduction sec- tion. note since this command is equivalent to making changes in setup mode, it is valid only when motor power is turned off. if the command is issued when the motor power is on, the controller will ignore it and report error d. note before saving, make sure that the new set of parameters is correct and safe to use. also, it is good practice to verify that the parameter saving procedure worked properly by issuing the tb or te command after- wards. returns none. errors a unknown message code. b incorrect axis number. d unauthorized execution. u failure while accessing the eeprom. rel. commands all device, motion and filter parameter setting commands. example 2kd0.02, 2uf | set kd parameter of axis #2 to 0.02 and update filter. | | verify the new parameter is working fine. | 2pw | save parameters of axis #2 to non-volatile memory. te | read error register. te@ | controller returns a no error code. free datasheet http:// edh0162en1040 06/99 3.100 MM4005 qp quit program mode usage imm pgm mip syntax qp 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 i unauthorized command in programming mode. rel. commands ep edition of program. xx erase program. example 3xx | clear program #3 from memory. 3ep | activate program mode and enter following commands as rogram 3. | | | 3qp | end entering program number 3 and quit programming mode. 3cp | compile program number 3. 3cp@ | controller confirms compilation of program number 3 without any errors. free datasheet http:// 3.101 edh0162en1040 06/99 MM4005 qw save general parameters usage imm pgm mip syntax qw 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. note during the execution of this command, the communication (ieee / rs232) is broken off. note since this command is equivalent to making changes in setup mode, it is valid only when motor power is turned off. if the command is issued when the motor power is on, the con- troller will ignore it and report error d. note before saving, make sure that the new set of parameters is correct and safe to use. also, it is good practice to verify that the parameter saving procedure worked properly by issuing the tb or te command afterwards. returns none. errors a unknown message code. d unauthorized execution. rel. commands pw save parameters. example cmm0b19200 | set rs-232-c liaison with 19200 baud. | | verify the new parameter is working fine. | qw | save general parameters non-volatile memory. te | read error register. te@ | controller returns a no error code. free datasheet http:// edh0162en1040 06/99 3.102 MM4005 ra read analog input usage imm pgm mip syntax xxra parameters description xx [int] analog port number. range xx 0 to 4. units xx none. defaults xx 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). the read value, included between -10 and +10, is reported to the pc in floating format and is the direct tension. if xx is missing or set to 0, the controller returns the values found in all four a/d converters, successively. note for the hardware definition of the analog input port, please see appendix b, connector pinouts, remote control connector. returns xxrann or xx 1 rann 1 , xx 2 rann 2 xx, xx1, xx2 analog port number. nn, nn 1 , nn 2 analog port value, in ascii format. note the value sent for each not connected analog port is not significative. errors a unknown message code. e incorrect i/o channel number. s communication time-out. rel. commands rb read i/o input. example 1ra | read value of analog port #1. 1ra4.500 | controller returns a value of 4.5 v, read for analog port #1. free datasheet http:// 3.103 edh0162en1040 06/99 MM4005 rb read i/o input usage imm pgm mip syntax xxrb parameters description xx [int] i/o bit number. range xx 0 to 8. units xx none. defaults xx 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. if the bit specifier xx is missing or set to 0, the controller returns the values for all 8 bits. the return is a decimal number in ascii format representing the i/o byte. to find the values of each bit, the number must be converted to binary. note for the hardware definition of the i/o port, please see appendix b, connector pinouts, gpio connector. returns xxrbnn, 0rbnn 1 , or rbnn 2 xx i/o bit number. nn i/o bit value, 0 or 1. nn 1 , nn 2 i/o byte value, 0 to 255 in ascii format. errors a unknown message code. e incorrect i/o channel number. s communication time-out. rel. commands ra read analog input. example 0rb | read all 8 bits of the i/o input port. rb209 | controller returns a value of 209, which converted to binary gives us the following i/o input port status: bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 11010001 free datasheet http:// edh0162en1040 06/99 3.104 MM4005 rd disable display refresh usage imm pgm mip syntax rd 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. while this command is active, the display shows only the following mes- sage: position display disabled . to exit this mode and re-enable the display refresh, use the re command. the display is also re-activated while waiting for a key with wk command, at the end of a program, when the local mode is selected with the ml com- mand or while the manual jog mode is active. when the controller exits the manual jog mode, the display returns to its previous state, enabled or dis- abled. note the command is not allowed in local mode or manual jog mode. returns none. errors d unauthorized execution. rel. commands mc set manual mode. ml set local mode. mr set remote mode. re enable display refresh. example sp0.002 | set trace period to 2 ms. 2tm2000 | set trace mode for axis #2 and 2000 data points. 2pr0.1, ws | perform a motion of 0.1 units on axis #2 and wait for stop. rd | disable display refresh for faster communication throughput. 9tt | read trace sample #9. | | controller returns trace data. | re | enable front panel display refresh. free datasheet http:// 3.105 edh0162en1040 06/99 MM4005 re enable display refresh usage imm pgm mip syntax re 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 set manual mode. ml set local mode. mr set remote mode. rd disable display refresh. example sp0.002 | set trace period to 2 ms. 2tm2000 | set trace mode for axis #2 and 2000 data points. 2pr0.1, ws | perform a motion of 0.1 units on axis #2 and wait for stop. rd | disable display refresh for faster communication throughput. 9tt | read trace sample #9. | | controller returns trace data. | re | enable front panel display refresh. free datasheet http:// edh0162en1040 06/99 3.106 MM4005 ro read i/o output usage imm pgm mip syntax xxro parameters description xx [int] i/o bit number. range xx 0 to 8. units xx none. defaults xx 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. if the bit specifier xx is missing or set to 0, the controller returns the values for all 8 bits. the return is a decimal number in ascii format representing the i/o output byte. to find the values of each bit, the number must be con- verted to binary. note for the hardware definition of the i/o port, please see appendix b, connector pinouts, gpio connector. returns xxronn, 0ronn 1 , or ronn 2 xx i/o output bit number. nn i/o output bit value, 0 or 1. nn 1 , nn 2 i/o output byte value, 0 to 255 in ascii format. errors a unknown message code. e incorrect i/o channel number. s communication time-out. rel. commands cb clear i/o outputs bits. sb set i/o output bits. so set i/o output byte. tg toggle i/o output bits. example ro | read the i/o output port. ro209 | controller returns a value of 209, which converted to binary gives us the following i/o output port status: bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 11010001 free datasheet http:// 3.107 edh0162en1040 06/99 MM4005 rp repeat command line usage imm pgm mip syntax rpnn parameters description nn [int] number of times to repeat command line. range nn 1 to 2147385345. units nn none. defaults nn missing: 1. out of range: 1 or 2147385345 (forced in range) floating point: decimal value truncated. description this command is a flow control instruction that repeats the execution of a command line nn number of times. it must be placed at the end of a com- mand line that has to be repeated. the line must have at least one more command on it, separated by a command separator. if the nn parameter is missing or set to a value less than 1, the command line is executed one time, similar to a nn value of 1. note any command placed on a line after rp is ignored, without issuing an error. note be careful when using flow control commands, specially nested ones. avoid mixing different type of flow control commands on the same line. as in other programming languages, improper loops and loop mixings could generate undesirable results. returns none. errors r command cannot be at the beginning of a line. rel. commands wg while variable is greater. wh while input is equal. wl while variable is less. wy while variable is different. example 3pa0 | move axis #3 to position 0. 2pr.1, ws, 3pa10, ws, 3pa0, ws, rp20 | make a relative move of 0.1 units on axis #2, wait for all motion to stop, move axis #3 to position 10, wait for all motion to stop, move axis #3 back to 0, wait to stop; repeat the entire cycle 20 times. free datasheet http:// edh0162en1040 06/99 3.108 rs reset controller usage imm pgm mip syntax rs parameters none. description this command should be used in emergency cases only. on reception of this command, the controller stops motion on all axes, turns motor power off and performs a controller reset, similar to a power off/on reset. note be very careful in using this command. it is equivalent to a power off/on cycle and should not be used in normal operation. returns none. errors none. rel. commands ab abort motion. mf motor off. st stop motion. example rs | reset controller. MM4005 rq generate service request (srq) usage imm pgm mip syntax rqnn parameters description nn [int] interrupt number. range nn 0 to 31. units nn none. defaults nn missing: error c. out of range: error c. description this command generates an interrupt service request to the host comput- er. the parameter nn is used to identify the rq command which generated the interrupt. upon receiving the interrupt, the host computer interrupt service routine should perform an ieee-488 serial poll or send the ts com- mand and read the response. if the interrupt was a result of the rq com- mand, then bit 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. errors c parameter out of limits. rel. commands ts tell status. example 2pr200, ws, 1pr100, ws, rq | generate interrupt when rq command is encountered. free datasheet http:// 3.109 edh0162en1040 06/99 MM4005 sb set i/o output bits usage imm pgm mip syntax xxsbnn parameters description xx [int] i/o bit number. nn [int] i/o bit mask. valeurs xx 0 to 8. nn 0 to 255. units xx none. nn none. defaults xx missing: 0. out of range: error e. floating point: error a. nn missing: 255. out of range: error c. floating point: decimal part truncated. description this command sets one to all output bits of the i/o port. if xx is specified between 1 and 8, the nn mask must be missing and then the selected bit will be set. if xx is missing or set to 0 and nn is between 1 and 255, the controller will set all bits corresponding to the mask. for example, if nn is 140, the equiva- lent binary mask is 10001100 which means that i/o output bits number 3, 4 and 8 will be set (remember that i/o bits are numbered from 1 to 8). if xx is missing or set to 0 and nn is not specified, the controller sets all 8 bits. this is equivalent to setting xx to 0 and nn to 255. note remember that having an open collector configuration, a set bit means a conducting transistor. using a pull-up resistor, a set output bit will mea- sure a logic low, thus making the output port be the reverse logic type. note for the hardware definition of the i/o port, please see appendix b, connector pinouts, gpio connector. returns none. errors a unknown message code. e incorrect i/o channel number. rel. commands cb clear i/o outputs bits. ro read i/o output. so set i/o output byte. tg toggle i/o output bits. example sb224 | set i/o output port bits number 6, 7 and 8 high. free datasheet http:// edh0162en1040 06/99 3.110 MM4005 sc set control loop type usage imm pgm mip syntax xxscnn parameters description xx [int] axis number. nn [int] loop type. range xx 1 to 4. nn 0 or 1. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command defines the type of motion control loop of an axis. if para- meter nn is set to 0, the selected axis xx is set to operate in open loop. if nn is set to 1, the axis will operate in closed loop. note because this is a setup instruction, do not use it when motor power is on. if sent during a motion or when motors are on, the controller will refuse the execution and set error code d. note avoid using this comand in normal operation. it was intended to be used only for factory testing or very specialized applications. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands tc read control loop type. example mf | turn power off to the motors. 3sc0 | set axis #3 to operate in open loop. free datasheet http:// 3.111 edh0162en1040 06/99 MM4005 sd speed scaling usage imm pgm mip syntax sdnn parameters description nn [float] percentage of velocity. range nn 0.001 to 100. units nn none (percentage). defaults nn 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. the nn parameter represents the percentage of the nominal value all velocities will be reduced to. the command is identical to the speed scaling parame- ter in the general setup menu. using the sd command will actually modify the speed scaling percentage value. note the motions affected are the ones initiated by pa and pr, issued in immediate mode or inside a program. note this command is useful to reduce the speed of execution of a complex motion program for the purpose of observing and troubleshooting it. returns none. errors c parameter out of limits. rel. commands va set velocity. example sd25 | execute all following motions at 1/4 of the programmed velocity. 2ex1 | execute program #2 at the reduced velocity. sd100 | restore velocities to nominal values. free datasheet http:// edh0162en1040 06/99 3.112 MM4005 se start synchronized motion usage imm pgm mip syntax se 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. use this command to execute coordinated (synchronized) motions on multi- ple axis, also defined as linear-interpolated motions. these simultaneous multi-axes motions generate a straight line in the defined coordinate system. note when the axes synchronization feature is no longer needed, terminate it by using the sy command and returning the axes to the default non-syn- chronized mode. returns none. errors d unauthorized execution. rel. commands sy axis synchronization. example 2sy1 | define axis #2 as synchronized. 4sy1 | define axis #4 as synchronized . 2pa12 | set axis #2 destination. 4pa7.3 | set axis #4 destination. se | start synchronized motion on the two axes. 2sy0 | define axis #2 as non-synchronized. 4sy0 | define axis #4 as non-synchronized. free datasheet http:// 3.113 edh0162en1040 06/99 MM4005 sf set axis mechanical motion device usage imm pgm mip 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) p = 1 : home position on opposite motor side (+end-of- travel) ? read the actual mecanical device name. note /p takes effect only with motion devices with switchable home position (mechanical zero), such as families: mtm, utm, em, default. range xx, nn 1 to 4. units xx, nn none. defaults xx missing: error b. out of range: error b. floating point: error a. description this command set a new unit to an axis. all controller concerned parame- ters will be recalculed to adapt for the new mecanical motion device. if xxsfnn ( nn takes place of name ), this command copies all configuration properties (device name, device units, parameters, ...) of the axis #nn to the axis #xx . note the sf command must be used carefully. all axis parameters are replaced by the new specified stage parameters. note this command must be used when motor power is off, to avoid a dis- placement at the time of the stage modification. note after use of the sf command, it is necessary to execute a home search routine on the axis with new parameters. returns if the sign ? takes place of name, this command reportes the name of the actual mecanical motion device installed in the controller. errors a unknown message code. b incorrect axis number. g mechanical familly name incorrect. rel. commands ta read motion device. examples 2sf3 | copy parameters from axis #3 to axis #2. 2sfutm100cc1hl or 2sfutm100cc1hl/0 | set utm100cc1hl mechanical device parameters of axis #2 with centered home position. 2sf? | read mechanical device name of axis #2. 2sfutm100cc1hl | controller returns the name. 2sfutm100cc1hl/-1 | set utm100cc1hl mechanical device parameters of axis #2 with home position on opposite motor side. free datasheet http:// edh0162en1040 06/99 3.114 MM4005 sh set home preset position usage imm pgm mip syntax xxshnn parameters description xx [int] axis number. nn [float] home position preset. range xx 1 to 4. nn any value within the software travel limits. units xx none. nn defined motion units. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command defines the value that is loaded in the position counter when home is found. the factory default for this value for all motion devices is 0. this means that, unless a new value is defined with sh or in the front panel setup mode, when a home search is initiated using the or command or from the front panel, the home position will be set to 0. note the change takes effect only when a subsequent home search routine is performed. note when sh is set to a non-zero value and a home search is performed, new values are calculated for the software limits to correct for the zero origin change. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands dh define home. or search for home. pw save parameters. example 3tp | read position on axis #3. 3tp0.000 | controller returns position 0.000 for axis #3. 3sh11 | set home position for axis #3 to 11 displacement units. 3or | perform a home search on axis #3. 3tp | read position on axis #3. 3tp11.000 | controller returns position 11.000 for axis #3 at home. free datasheet http:// 3.115 edh0162en1040 06/99 MM4005 sl set left travel limit usage imm pgm mip syntax xxslnn parameters description xx [int] axis number. nn [float] left (negative) software travel limit. range xx 1 to 4. nn -2147483647 x encoder resolution to min (home value set by sh or current position or destination (if in motion)) . units xx none. nn defined motion units. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command defines the value for the negative (left) software travel limit. it should be used to restrict travel in the negative direction to protect the motion device or its load. for instance, if traveling full range, a stage could push its load into an obstacle. to prevent this, the user can reduce the allowed travel by chang- ing the software travel limit. since a motion device must be allowed to find its home position, the home switch and/or sensor must be inside the travel limits. this means that both positive and negative travel limits cannot be set on the same side of the home position. a more obvious restriction is that the negative limit cannot be greater than the positive limit. if any of these restrictions is not met, the controller will return error c. note if the command is issued for an axis in motion, the new limit should not be set inside the current travel. if the motion in progress could reach the new desired software limit, the command is not accepted and the controller returns error d. note be careful when using this command. the controller does not know the real hardware limits of the motion device or application. always set the software lim- its inside the hardware limits (limit switches). in normal operation, a motion device should never hit a limit switch. if you want to change the software limits, note that the values selected in remote mode can t exceed the values selected in local mode (already available as a stan- dard parameter of the stage). if you want to increase these limits: ? do care about the hardware limits. ? use the local mode, from the front panel. returns if the sign ? takes place of the nn value, the controller returns the value of the negative (left) software travel limit for # xx axis. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands or search for home. sr set right travel limit. example 1sl-41.4 | set negative software travel limit of axis #1 to -41.4 units. 1sl? | reading of the negative software travel limit of axis #1. 1sl-41.4 | the controller returns the value of the negative software travel limit. note always, the stage position must be inside the interval set by the software limits free datasheet http:// edh0162en1040 06/99 3.116 MM4005 sm save program usage imm pgm mip syntax sm 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. returns none. errors i unauthorized command in programming mode. rel. commands cp compile program. ep edition of program. mp download eeprom to ram. qp quit program mode. example 3xx | clear program #3 from memory. 3ep | activate program mode and enter following commands as program #3. | | | qp | end entering program and quit programming modee. 3cp | compile program #3. 3cp@ | controller confirms compilation of program #3 with no errors . sm | save all program from ram in non-volatile memory. free datasheet http:// 3.117 edh0162en1040 06/99 MM4005 sn set axis displacement units usage imm pgm mip syntax xxsnname or xxsn? parameters description xx [int] axis number. name name of displacement unit to set. ? read the actual displacement unit. range xx 1 to 4. units xx none. defaults xx missing: error b. out of range: error b. floating point: error a. description this command set a new unit to an axis. all controller concerning parame- ters will be recalculed to adapt for the new unit. the standard names of units are following: translation groupe: mm, m, in., min, in and inc. rotation groupe: dg., gr., rad, mrd, rd and inc. returns if the sign ? takes place of name, this command reportes the name of the actual unit used in the controller. errors a unknown message code. b incorrect axis number. c unit not translational or incorrect. d unit not rotationnal or incorrect. rel. commands tn read displacement units. example 2snum | set unit of axis #2 to m. 2sn? | read unit of axis #2. 2snum | controller returns axis #2 unit. 2tn | read unit of axis #2. 2tnum | controller returns axis #2 unit. free datasheet http:// edh0162en1040 06/99 3.118 MM4005 so set i/o output byte usage imm pgm mip syntax sonn parameters description nn [int] i/o bit mask. range nn 0 to 255. units nn none. defaults nn missing: 0. out of range: error c. floating point: decimal part truncated. description this command sets all output bits of the i/o port. the nn parameter is the mask to be used in setting the i/o output port. for example, if nn is 140, the equivalent binary mask is 10001100 which means that i/o output bits num- ber 3, 4 and 8 will be set and output bits number 1, 2, 5, 6 and 7 will be cleared (remember that i/o bits are numbered from 1 to 8). note remember that having an open collector configuration, a set bit means a conducting transistor. using a pull-up resistor, a set output bit will mea- sure a logic low, thus making the output port be the reverse logic type. note for the hardware definition of the i/o port, please see appendix, connector pinouts, gpio connector. returns none. errors c parameter out of limits. rel. commands cb clear i/o outputs bits. ro read i/o output. sb set i/o output bits. tg toggle i/o output bits. example so224 | set i/o output port bits number 6, 7 and 8 and clear bits 1, 2, 3, 4 and 5. free datasheet http:// 3.119 edh0162en1040 06/99 MM4005 sp set trace sample rate usage imm pgm mip syntax spnn parameters description nn [float] trace sample period. range nn 0.0003 to 9. units nn seconds. defaults nn missing: 0.0003. out of range: nearest range limit. non-increment: rounded to nearest increment. description this command sets the sample period for the trace function. refer to the trace command tm for the description on how to use the trace mode. note the sampling is done in increments of the servo loop cycle. since the servo cycle is not exactly 0.0003 sec, use the xs command to read the actual trace sample interval used. returns none. errors c parameter out of limits. rel. commands tm set trace mode. xs read trace sample rate. example sp0.002 | set trace period to 2 ms. xs | read actual trace period. xs0.002001374478 | controller returns actual trace period. 2tm500 | set trace mode for axis #2 and 500 data points. 2pr0.1, ws | perform a motion of 0.1 units on axis #2 and wait for stop. tt | read trace data. free datasheet http:// edh0162en1040 06/99 3.120 MM4005 sq set global sample rate usage imm pgm mip syntax sqnn parameters description nn [float] trace sample period. range nn 0.0003 to 9 . units nn seconds. defaults nn missing: 0.0003. out of range: nearest range limit. non-increment: rounded to nearest increment. description this command sets the sample period for the global trace function. the global trace mode is similar to the trace mode but it samples all four axes in the same time. refer to the global trace command gq for the description on how to use the global trace mode. note the sampling is done in increments of the servo loop cycle. since the servo cycle is not exactly 0.0003 sec, use the xq command to read the actual global trace sample interval used. returns none. errors c parameter out of limits. rel. commands gq set global trace mode. xq read global sample rate. example sq0.002 | set global trace period to 2 ms. xq | read actual global trace period. xq0.002001374478 | controller returns actual global trace period. 2gq500 | set global trace mode for axis #2 and 500 data points. 2pr0.1, 3pr0.1, ws | perform a motion of 0.1 units on axis #2 and #3 and wait for stop. tq | read global trace data. free datasheet http:// 3.121 edh0162en1040 06/99 MM4005 sr set right travel limit usage imm pgm mip syntax xxsrnn parameters description xx [int] axis number. nn [float] right (postive) software travel limit. range xx 1 to 4. nn max (home value set by sh or current position or destina- tion (if in motion)) to 2147483647 x encoder resolution . units xx none. nn defined motion units. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command defines the value for the positive (right) software travel limit. it should be used to restrict travel in the positive direction to protect the motion device or its load. for instance, if traveling full range, a stage could push its load into an obstacle. to prevent this, the user can reduce the allowed travel by chang- ing the software travel limit. since a motion device must be allowed to find its home position, the home switch and/or sensor must be inside the travel limits. this means that both positive and negative travel limits cannot be set on the same side of the home position. a more obvious restriction is that the negative limit cannot be greater than the positive limit. if any of these restrictions is not met, the controller will return error c. note if the command is issued for an axis in motion, the new limit should not be set inside the current travel. if the motion in progress could reach the new desired software limit, the command is not accepted and the controller returns error d. note be careful when using this command. the controller does not know the real hardware limits of the motion device or application. always set the software lim- its inside the hardware limits (limit switches). in normal operation, a motion device should never hit a limit switch. if you want to change the software limits, note that the values selected in remote mode can t exceed the values selected in local mode (already available as a stan- dard parameter of the stage). if you want to increase these limits: ? do care about the hardware limits. ? use the local mode, from the front panel. returns if the sign ? takes place of the nn value, the controller returns the value of the positive (right) software travel limit for # xx axis. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands or search for home. sl set left travel limit. example 1sr41.4 | set positive software travel limit of axis #1 to 41.4 units. 1sr? | reading of the positive software travel limit of axis #1. 1sr41.4 | the controller returns the value of the positive software travel limit. note always, the stage position must be inside the interval set by the software limits free datasheet http:// edh0162en1040 06/99 3.122 MM4005 ss set master-slave mode usage imm pgm mip syntax xxssnp or xxss? parameters description xx [int] axis number to define. n [int] axis number of the master axis. p [int] following mode: theoretical/real position. ? read number of the master axis that this axis slaved to. range xx 1 to 4. n 1 to 4. p 0 or 1. units xx none. n none. p none. defaults xx missing: error b. out of range: error b. floating point: error a. n missing: 0 (defined as master). out of range: error c. p missing: 0. out of range: error c. description this command sets the master-slave mode. this defines nn numbered of the master axis that xx numbered axis belongs to. if n is zero or default, the xx axis is defined as master. if p is zero or default, the xx axis must follow the theoretical position of its master axis. if p = 1, it follows the real position of its master. note if the cd command is used in conjunction with the ss command and gr command, the slave axis cycle value must be equal to the master axis cycle value multiplied by the master-slave reduction ratio. note the slave axis motor power may be turned on (mo command) or turned off (mf command) only if p = 1. returns if the sign ? takes place of the nn value, this command reportes the number of the master axis that xx numbered axis slaved to (if 0: the axis is master). errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands gr set master-slave reduction ratio. ff set maximum master-slave following error. example 2ss1 | set axis #2 to be slave of axis #1. | | | 2ss? | read master axis of axis #2. 2ss1 | controller tells the master of this axis. free datasheet http:// 3.123 edh0162en1040 06/99 MM4005 st stop motion usage imm pgm mip syntax xxst parameters description xx [int] axis number. valeurs xx 0 to 4. units xx none. defaults xx 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. if xx is a valid axis number, only motion on that axis will be stopped. a motion interrupted with this command will stop using the programmed acceleration/deceleration for each axis. this is the preferred motion termi- nation method. note this command does not terminate a program. it only stops the motion in progress and permits execution of the rest of the command line or pro- gram. returns none. errors a unknown message code. b incorrect axis number. rel. commands ab abort motion. mf motor off. example 2pa40 | move axis #2 to absolute position 40. 2st | stop motion on axis #2. free datasheet http:// edh0162en1040 06/99 3.124 MM4005 sy axis synchronization usage imm pgm mip syntax xxsynn parameters description xx [int] axis number. nn [int] synchronization code. valeurs xx 1 to 4. nn 0 or 1. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. floating point: error c. description this command defines if an axis should perform all subsequent motions as independent or synchronized moves. when two or more axes perform a synchronized motion, the load travels on a straight line in the defined coor- dinate system. this type of motion is also referred to as linear interpolation. if the nn parameter is set to 0, the specified xx axis is defined as indepen- dent, non-synchronized. if nn is set to 1, the axis is defined as synchronized and all motion commands (using pa and pr) will not be executed until the se command is received. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands se start synchronized motion. example 2sy1 | define axis #2 as synchronized. 4sy1 | define axis #4 as synchronized. 2pa12 | set axis #2 destination. 4pa7.3 | set axis #4 destination. se | start synchronized motion on the two axes. 2sy0 | define axis #2 as non-synchronized. 4sy0 | define axis #4 as non-synchronized. free datasheet http:// 3.125 edh0162en1040 06/99 MM4005 ta read motion device usage imm pgm mip syntax xxta parameters description xx [int] axis number. valeurs xx 1 to 4. units xx none. defaults xx missing: error b. hors limite: error b. floating point: error a. 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. returns name of installed motion device. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands none. example 1ta | ad the name of motion device installed on axis #1. 1tautm50pp0.1 | controller returns the name utm50pp0.1. free datasheet http:// edh0162en1040 06/99 3.126 MM4005 tb read error message usage imm pgm mip syntax tbaa parameters description aa [char] error code character, in ascii format. range aa @ to u . units aa none. defaults aa missing: reads current error. out of range: controller returns message unknown error code. description this command reads the error code and the associated message. if the aa parameter is missing, the controller reports the existing error. if aa is a valid error code, the controller returns the error message associated with that code. the error code is one ascii character and the message is the description of the error associated with it. note when an error is read using tb or te, the error buffer is cleared. this means that an error can be read only once, with either command. if tb is used only for translating an error code by supplying the aa parameter, the existing error in the buffer is not cleared. note the controller returns only the last error that has occurred. if more than one error has occurred since the last reading, only the last one is report- ed and the rest are lost. returns tbaabb aa error code character. bb error description. errors s communication time-out. rel. commands te read error code. example tb | read error message. tb@ no error | controller returns no error. 5pa12.3 | move axis #5 to position 12.3. tb | read error message. tbb axis number not correct | controller returns error code and description. free datasheet http:// 3.127 edh0162en1040 06/99 MM4005 tc read control loop type usage imm pgm mip syntax xxtc parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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). note the controller can operate both stepper and dc motors in closed or open loop. while the stepper motors operate fine in both modes, for normal operation, dc motors should not be used in open loop. returns xxtc nn xx axis number. nn loop type: 0 = open loop. 1 = closed loop. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands sc set control loop type. example 1tc | read the type of control loop used on axis #1. 1tc 1 | controller reports closed loop for axis #1. free datasheet http:// edh0162en1040 06/99 3.128 MM4005 td read error line of program usage imm pgm mip syntax td 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. returns tdaaa aaa program error line. errors s communication time-out. rel. commands tb read error message. te read error code. example 1ep | program #1. | | | 5or | an error generating line. | | | qp | end of program. 1ex | execute program #1, an error will occur. td | read program error line. td5or | controller returns error line. tb | read error message buffer. tbb axis number missing or not correct | error message. free datasheet http:// 3.129 edh0162en1040 06/99 MM4005 te read error code usage imm pgm mip syntax te 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. note the error reported is the last one that has occurred. if more than one error has occurred since the last reading, only the last one is reported and the rest are lost. note for a complete listing and description of all error codes see appendix a, error messages. returns teaa aa error code character. errors s communication time-out. rel. commands tb read error message. example te | read error message . te@ | controller returns no error. 5pa12.3 | move axis #5 to position 12.3. te | read error message . teb | controller returns error code b meaning incorrect axis number. free datasheet http:// edh0162en1040 06/99 3.130 MM4005 tf read filter parameters usage imm pgm mip syntax xxtf parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. it is equivalent to sending xp, xi, xd and xf, with the exception that the return comes on a single line. note the command reads the value actually used in the servo loop. if the pid parameters are modified but the digital filter has not been updated by sending an uf, the command will still read the old values. returns xxtf, xxxpnn 1 , xxxinn 2 , xxxdnn 3 , xxxfnn 4 xx axis number. nn 1 proportional gain factor. nn 2 integral gain factor. nn 3 derivative gain factor. nn 4 maximum acceptable following error. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands xf read maximum following error. xd read derivative gain factor. xi read integral gain factor. xp read proportional gain factor. example 2tf | read filter parameters of axis #2. 2tf, 2xp0.07, 2xi0.001, 2xd.05, 2xf0.12 | controller returns the following digital filter parameters for axis #2: kp = 0.07 ki = 0.001 kd = 0.05 fe = 0.12 units. free datasheet http:// 3.131 edh0162en1040 06/99 MM4005 tg toggle i/o output bits usage imm pgm mip syntax xxtgnn parameters description xx [int] i/o bit number. nn [int] i/o bit mask. range xx 0 to 8. nn 0 to 255. units xx none. xx none. defaults xx missing: 0. out of range: error e. floating point: error a. nn missing: 255. out of range: error c. floating point: decimal part truncated. description this command toggles one to all output bits of the i/o port. if xx is speci- fied between 1 and 8, the nn mask must be missing and then the selected bit will be inverted. if xx is missing or set to 0 and nn is between 1 and 255, the controller will toggle all bits corresponding to the mask. for example, if nn is 140, the equivalent binary mask is 10001100 which means that i/o output bits num- ber 3, 4 and 8 will be inverted (remember that i/o bits are numbered from 1 to 8). if xx is missing or set to 0 and nn is not specified, the controller toggles all 8 bits. this is equivalent to setting xx to 0 and nn to 255. returns none. errors a unknown message code. e incorrect i/o channel number. rel. commands cb clear i/o outputs bits. ro read i/o output. sb set i/o output bits. so set i/o output byte. example 0ro | read all 8 bits of the i/o output port. 0ro209 | controller returns 209, which converted to binary means: bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 11010001 tg224 | toggle bits number 6, 7 and 8 of the i/o output port . 0ro | read all 8 bits of the i/o output port. 0ro49 | controller returns 49, which converted to binary means: bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 00110001 free datasheet http:// edh0162en1040 06/99 3.132 MM4005 th read theoretical position usage imm pgm mip syntax xxth parameters description xx [int] axis number. range xx 0 to 4. units xx none. defaults xx missing: 0. out of range: error b. floating point: error a. description this command reads the theoretical position and the instantaneous real position. if the axis specifier xx is missing or set to 0, the controller returns the desired position for all axes. the command could be sent at any time but its primary use is while a motion is in progress. the command is useful in determining the following error of a motion device by comparing the theoretical position to its real position. returns xxthnn or xx 1 thnn 1 , xx 2 thnn 2 , xx 3 thnn 3 , xx 4 thnn 4 xx, xx 1 , xx 2 , xx 3 , xx 4 axis number. nn, nn 1 , nn 2 , nn 3 , nn 4 theoretical position, in pre-defined units. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands tp read actual position. example 3tp, 3th | read real and theoretical position on axis #3. 3tp 5.322 | controller returns real position 5.322 for axis #3. 3th 5.323 | controller returns theoretical position 5.323 for axis #3. free datasheet http:// 3.133 edh0162en1040 06/99 MM4005 tl read left travel limit usage imm pgm mip syntax xxtl parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. this is the value set by the sl command or in the front panel setup menu. note the software travel limit values are automatically changed when a home position is forced at a new location, or if the home preset value is modified. this is done to maintain the travel limits fixed relative to the physical location of the limit switches and mechanical stops. by doing so, the motion device is protected from damage due to a hardware stop. returns xxtlnn xx axis number. nn negative software travel limit. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands sl set left travel limit. example 3tl | read left software travel limit on axis #3. 3tl14.5 | controller returns left software travel limit 14.5 units. free datasheet http:// edh0162en1040 06/99 3.134 MM4005 tm set trace mode usage imm pgm mip syntax xxtmnn or xxtm? parameters description xx [int] axis number. nn [int] number of samples. range xx 1 to 4. nn 0 to nmax. ? reading of the nmax value. units xx none. nn none. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. floating point: decimal part truncated. description this command sets the trace mode for an axis. if the trace mode is activated by setting nn between 1 and 4000, the controller will start recording in mem- ory the theoretical and the actual position of the specified axis, starting with the execution of every pa or pr motion command. the number of samples stored is the one specified by nn and the sample interval is the one set by the sp command. to read the recorded trace data use the tt command. to disable the trace mode issue the tm command with nn set to 0. note once the trace mode is enabled, the controller will record data every time a pa or pr command is sent for the specified axis. when tt is issued, only the last set of data is returned. to avoid unnecessary cpu overhead, after the desired measurement is completed, disable the trace mode by issuing the command with a 0 for the nn parameter. returns if the sign ? takes place of nn , this command turns the possible max. num- ber of points in trace mode tm. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands sp set trace sample rate. tt read trace data. xn read number of acquisitions. example sp0, 002 | set trace sample period to 2 ms . 2tm500 | set trace mode for axis #2 and 500 data points. 2pr0.1, ws | perform a motion of 0.1 units on axis #2 and wait for stop. tt | read trace data. free datasheet http:// 3.135 edh0162en1040 06/99 MM4005 tn read displacement units usage imm pgm mip syntax xxtn parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. the units are defined in the setup menu of the front panel. returns xxtnaa xx axis number. aa displacement units; two or three ascii characters. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands none. example 1tn | read the type of displacement units used on axis #1. 1tnmm | controller reports mm for axis #1. free datasheet http:// edh0162en1040 06/99 3.136 MM4005 tp read actual position usage imm pgm mip syntax xxtp parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. if the axis specifier xx is missing or set to 0, the controller returns the actual position of all axes. if xx is a number between 1 and 4, the controller returns the actual position of that axis. returns xxtpnn or xx 1 tpnn 1 , xx 2 tpnn 2 , xx 3 tpnn 3 , xx 4 tpnn 4 xx, xx 1 , xx 2 , xx 3 , xx 4 axis number. nn, nn 1 , nn 2 , nn 3 , nn 4 actual position, in pre-defined. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands th read theoretical position. example 3tp, 3th | read real and theoretical position on axis #3. 3tp 5.322 | controller returns real position 5.322 for axis #3. 3th 5.323 | controller returns theoretical position 5.323 for axis #3. free datasheet http:// 3.137 edh0162en1040 06/99 MM4005 tq read global trace data usage imm pgm mip syntax xxtqnn parameters description xx [int] number of samples to read. nn [int] 0 (or missing) or 1. range xx 0 to number of samples set by gq command. nn 0 or 1. units xx none. nn none. defaults xx missing: 0. out of range: error c. floating point: error a. nn missing: 0. out of range: error c. description this command reads the global trace data stored in global trace mode. the global trace mode is enabled by gq command and defined by sq and gq commands. if xx is a number different than 0 and in range, the controller returns the values for that sample number. if xx is 0, the controller returns all samples stored in the global trace buffer. if nn = 0 or missing, the controller returns the values of theoretical and real positions stored in the global trace buffer. if nn = 1, the controller returns the values of theoretical and real positions, and in addition, the values of analog inputs stored in the global trace buffer at the moment of theoretical and real positions acquisition. returns xxtq xxtq, 1thnn 1 , 1tpnn 2 , 2thnn 3 , 2tpnn 4 , 3thnn 5 , 3tpnn 6 , 4thnn 7 , 4tpnn 8 xxtq1 xxtq, 1thnn 1 , 1tpnn 2 , 2thnn 3 , 2tpnn 4 , 3thnn 5 , 3tpnn 6 , 4thnn 7 , 4tpnn 8 , 1rann 9 , 2rann 10 , 3rann 11 , 4rann 12 xx sample number. nn 1 , nn 3 , nn 5 , nn 7 theoretical position of axes 1, 2, 3 and 4 respectively. nn 2 , nn 4 , nn 6 , nn 8 actual position of axes 1, 2, 3 and 4 respectively. nn 9 , nn 10 , nn 11 , nn 12 analog values of inputs 1, 2, 3 and 4 respectively. note if xx is set to 0 in the tq command, all samples are returned (starting with number 1), each one on a separate line. errors a unknown message code. c parameter out of limits. d unauthorized execution. s communication time-out. rel. commands gq set global trace mode. nq read global aquisition nr. sq set global sample rate. free datasheet http:// edh0162en1040 06/99 3.138 tr read right travel limit usage imm pgm mip syntax xxtr parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx missing: error b. out of range: error b. floating point: error a. description this command reads the right software travel limit, the motion soft limit in the positive direction. this is the value set by the sr command or in the front panel setup menu. note the software travel limit values are automatically changed when a home position is forced at a new location, or if the home preset value is modified. this is done to maintain the travel limits fixed relative to the physical location of the limit switches and mechanical stops. by doing so, the motion device is protected from damage due to a hardware stop. returns xxtrnn xx axis number. nn positive software travel limit. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands sr set right travel limit. example 3tr | read left travel limit on axis #3. 3tr14.5 | controller returns right software travel limit 14.5 units. MM4005 tq read global trace data (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 . 9tq | read global trace sample #9. 9tq, 1th1.002, 1tp1.001, 2th1.034, 2tp1.033, 3th5.002, 3tp5.001, 4th1.402, 4tp1.401 | controller returns global trace data for sample #9. 9tq1 | read global trace sample #9 with analog inputs reported. 9tq, 1th1.002, 1tp1.001, 2th1.034, 2tp1.033, 3th5.002, 3tp5.001, 4th1.402, 4tp1.401, 1ra0.1, 2ra1, 3ra0, 4ra0 | controller returns global trace data for sample #9. free datasheet http:// 3.139 edh0162en1040 06/99 MM4005 ts read controller status usage imm pgm mip syntax ts 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 bit low bit high 0 axis #1 motor state stationary in motion 1 axis #2 motor state stationary in motion 2 axis #3 motor state stationary in motion 3 axis #4 motor state stationary in motion 4 motor power on off 5 not used default 6 not used default 7 ieee srq interruption status (sent by rq command) no yes note if bit #7 is high after sending ts command, it toggles low automatically. the byte returned is in the form of an ascii character. converting the ascii code to binary will give the status bits values. note for a complete ascii to binary conversion table see appendix f, ascii table. returns tsaa aa ascii character representing the status byte. errors a unknown message code. s communication time-out. rel. commands ms read motor status. tx read controller activity. example ts | read controller status byte. tsf | controller returns character f, or ascii character 70; converting 70 to binary we get 01000110 which has the following meaning: axis #1 not moving, axis #2 in motion, axis #3 in motion, axis #4 not moving and motor power is on. free datasheet http:// edh0162en1040 06/99 3.140 MM4005 tt read trace data usage imm pgm mip syntax xxtt parameters description xx [int] sample number to read. range xx 0 to number of samples set by tm command. units xx none. defaults xx missing: 0. out of range: error c. floating point: error a. description this command reads the trace data stored in trace mode. the trace mode is enabled by tm command and defined by sp and tm commands. if xx is a number different than 0 and in range, the controller returns the values for that sample number. if xx is 0, the controller returns all samples stored in memory. returns xxtt, thnn 1 , tpnn 2 xx sample number. nn 1 theoretical position. nn 2 actual position. note if xx was set to 0 in the tt command, all samples are returned (starting with number 1), each one on a separate line. errors a unknown message code. c parameter out of limits. d unauthorized execution. s communication time-out. rel. commands sp set trace sample rate. tm set trace mode. xn read number of acquisitions. example sp0.002 | set trace period to 2 ms. 2tm500 | set trace mode for axis #2 and 500 data points. 2pr0.1, ws | perform a motion of 0.1 units on axis #2 and wait for stop. 9tt | read trace sample #9. 9tt, th1.002, tp1.001 | controller returns for trace sample #9 theoretical position 1.002 and real position 1.001 units. free datasheet http:// 3.141 edh0162en1040 06/99 MM4005 tu read encoder resolution usage imm pgm mip syntax xxtu parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. the encoder resolution is defined in the setup menu on the front panel. the units are the pre-defined displacement units in the setup menu. returns xxtunn xx axis number. nn encoder resolution, in predefined displacement units. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands none. example 3tu | read encoder resolution for axis #3 . 3tu0.0001 | controller returns an encoder resolution of 0.0001 units. free datasheet http:// edh0162en1040 06/99 3.142 MM4005 tx read controller activity usage imm pgm mip syntax tx 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 bit high 0 program is running no yes 1 command line is executing no yes 2 manual jog mode active no yes 3 remote mode active no yes 4 trajectory is executing no yes 5 not used default 6 not used default 7 not used default the byte returned is in the form of an ascii character. converting the ascii code to binary gives the status bit values. note for a complete ascii to binary conversion table see appendix f, ascii table. returns txaa. aa ascii character representing the status byte. errors a unknown message code. s communication time-out. rel. commands ms read motor status. ts read controller status. example tx | read controller activity register. txj | controller returns character j, or ascii character 74; converting 74 to binary we get 01001010 which has the following meaning: controller is in remote mode and is executing a command line. free datasheet http:// 3.143 edh0162en1040 06/99 MM4005 tx1 read controller extended status usage imm pgm mip syntax tx1 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 traffic on the communication (otherwise you can use several commands ts, ms to get the same information) and simplifies the development of the user s software. returns tx1w 1 w 2 a 1 a 2 b 1 b 2 c 1 c 2 d 1 d 2 w 1 w 2 controller s task status (2 characters). a 1 a 2 axis #1 (2 characters). b 1 b 2 axis #2 (2 characters). c 1 c 2 axis #3 (2 characters). d 1 d 2 axis #4 (2 characters). meaning for bit # function for w 1 bit low bit high 0 controller power on off 1 executing a command line no yes 2 executing a program no yes 3 executing a x-y trajectory no yes 4 not used default ------- 5 reduced communication no yes 6 not used default 7 not used default meaning for bit # function for w 2 bit low bit high 0 manual jog no yes 1 manual jog with joystick no yes 2 joystick is present no yes 3 searching for home no yes 4 display refresh enable disable 5 local / remote mode local remote 6 not used default 7 not used default reduced communication this indicates that the controller is doing some tasks (e.g.: jog from local mode) that allows only reporting or safety external commands to be exe- cuted. free datasheet http:// edh0162en1040 06/99 3.144 meaning for bit # function for a 1 b 1 c 1 d 1 bit low bit high 0 axis is connected yes no 1 axis motor power on off 2 axis idle yes no 3 axis is moving no yes 4 axis in permanent motion no yes 5 following error no yes 6 not used default 7 not used default meaning for bit # function for a 2 b 2 c 2 d 2 bit low bit high 0 axis is referenced to home yes no 1 limit swich - is actived no yes 2 limit swich + is actived no yes 3 constant speed phase no yes 4 axis is synchronized no yes 5 not used default 6 not used default 7 not used default errors a unknown message code. s communication time-out. rel. commands ts read controller status. tx read controller activity. example tx1 | read controller extended status. tx1@@@@@@@@@@ | controller returns value. MM4005 tx1 read controller extended status (cont.) free datasheet http:// 3.145 edh0162en1040 06/99 MM4005 ty read a variable usage imm pgm mip syntax xxty parameters description xx [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats). units xx none. defaults xx missing: error o. out of range: error o. floating point: error a. description this command reads the value of a variable. if the variable was not previ- ously defined with the ys command, the controller returns value 0. note the controller allows 100 variables. they are not identified by a name but by a number as a parameter for different commands. returns xxtynn xx variable number. nn variable value. errors a unknown message code. o variable number out of range. s communication time-out. rel. commands ys initialize variable. all variable manipulation commands. example 17ty | read variable #17. 17ty28 | controller returns value 28 for variable #17. free datasheet http:// edh0162en1040 06/99 3.146 MM4005 uf update servo filter usage imm pgm mip syntax xxuf parameters description xx [int] axis number. range xx 0 to 4. units xx none. defaults xx 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. this assures that the parameters are loaded simultaneously and without problems. if the axis specifier xx is missing or set to 0, the controller updates the fil- ters for all axes. if xx is a number between 1 and 4, the controller updates only the filter for the specified axis. returns none. errors a unknown message code. b incorrect axis number. rel. commands fe set maximum following error. kd set derivative gain. ki set integral gain factor. kp set proportional gain. example 3kp0.05 | set proportional gain factor of axis #3 to 0.05. 3kd0.07 | set derivative gain factor of axis #3 to 0.07. 3uf | update servo loop of axis #3 with the new parameters. free datasheet http:// 3.147 edh0162en1040 06/99 MM4005 uh wait for i/o high usage imm pgm mip syntax xxuh parameters description xx [int] i/o bit number. range xx 0 to 8. units xx none. defaults xx 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. it is level, not edge sensitive, which means that at the time of evaluation, if the specified i/o bit xx is high already, the program will continue executing. if the bit specifier xx is missing or set to 0, the program will wait for all bits to be high. note the command can be placed on a line by itself or with other commands. if placed on a line with other commands, they will be executed with a minimal delay after the i/o bit goes high. returns none. errors a unknown message code. e incorrect i/o channel number. j command authorized only in programming mode. l command not at the beginning of a line. rel. commands ul wait for i/o low. example 7uh , 3pa12.3 | wait while bit #7 of the i/o input port becomes high and then move axis #3 to position 12.3 units and continue the rest of the program. free datasheet http:// edh0162en1040 06/99 3.148 MM4005 ul wait for i/o low usage imm pgm mip syntax xxul parameters description xx [int] i/o bit number. range xx 0 to 8. units xx none. defaults xx 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. it is level, not edge sensitive which means that at the time of evaluation, if the specified i/o bit xx is low already, the program will con- tinue executing. if the bit specifier xx is missing or set to 0, the program will wait for all bits to be low. note the command can be placed on a line by itself or with other commands. if placed on a line with other commands, the advantage is that they will be executed with a minimal delay after the i/o bit goes low. returns none. errors a unknown message code. e incorrect i/o channel number. j command authorized only in programming mode. l command not at the beginning of a line. rel. commands uh wait for i/o high. example 7ul , 3pa12.3 | wait while bit #7 of the i/o input port becomes low and then move axis #3 to position 12.3 units and continue the rest of the program. free datasheet http:// 3.149 edh0162en1040 06/99 MM4005 va set velocity usage imm pgm mip syntax xxvann parameters description xx [int] axis number. nn [float] velocity value. range xx 1 to 4. nn 1 e -6 to the programmed value in setup mode . units xx none. nn preset units in setup mode/second. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the velocity value for an axis. its execution is immedi- ate, meaning that the velocity is changed when the command is processed, even while a motion is in progress. note avoid changing the velocity during the acceleration or deceleration peri- ods. for better predictable results, change velocity only when the axis is not moving or when it is moving with a constant speed. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands ac set acceleration. pa move to absolute position. pr move to relative position. example 2dv | read desired velocity of axis #2. 2dv10 | controller returns a velocity value of 10 units/sec. 2pa15 | move to absolute position 15. wt500 | wait for 500 ms . 2va4 | set axis #2 velocity to 4 units/sec. 2dv | read velocity of axis #2. 2dv4 | controller returns a velocity value of 4 units/sec. free datasheet http:// edh0162en1040 06/99 3.150 MM4005 vb set base velocity (stepper motor only) usage imm pgm mip syntax xxvbnn parameters description xx [int] axis number. nn [float] velocity value. range xx 1 to 4. nn 0 to maximum motion speed defined by the va com- mand. units xx none. nn preset units in setup mode/second. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error c. description this command sets the start/stop velocity for stepping motors only. the allowed start/stop velocity must be less than or equal to the velocity set with the va command. note this command is available only for stepper motors. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands pa move to absolute position. pr move to relative position. va set velocity. example 2vb10 | set start/stop velocity for axis#2 to 10 units/sec. free datasheet http:// 3.151 edh0162en1040 06/99 MM4005 ve read controller version usage imm pgm mip syntax ve parameters none. description this command reads the controller model and version. note when asking for technical support with the motion control system or when reporting a problem, having the controller type and version enables us to help you fix the problem fast. use this command to deter- mine the controller type and in particular, the firmware version. returns ve MM4005 controller version xx.yy xx.yy version and release number. errors s communication time-out. rel. commands none. example ve | read controller model and version. ve MM4005 controller version 1.52 | controller returns model MM4005 and version 1.52. free datasheet http:// edh0162en1040 06/99 3.152 MM4005 vs define the vector acceleration on trajectory (trajectory acceleration) usage imm pgm mip syntax vsnn or vs? parameters description nn [double] desired trajectory acceleration. range nn >0 to max trajectory acceleration (mta). units nn units/sec 2 . defaults nn missing: mta. out of range: error c. description this command defines the vector acceleration on trajectory that the con- troller uses to start and stop execution of the trajectory. in association with the trajectory velocity this will define the necessary time to reach the trajectory velocity. note the controller calculates automatically mta for the trajectory to execute (set of trajectory elements entered before this command) one time this command is entered and limits the vector acceleration to mta if the parameter entered is greater than mta. it is then pratical to read mta just before this command with help of the command xu1 and to read assigned trajectory acceleration after this command with help of the command vs? or xu. in fact, mta is defined as the minimum value of maximum allowed x assigned axis and y assigned axis accelerations. returns if the sign ? takes place of the nn value, this command reportes the actu- al trajectory acceleration value. errors c parameter out of limits. s communication time-out. rel. commands vv define the vector velocity on trajectory (trajectory velocity). xu tell the vector acceleration on trajectory (trajectory acceleration). example xu1 | read mta. xu10.0 | controller tells mta. vs8 | define 8 units/sec 2 as trajectory acceleration. xu | read trajectory acceleration. xu8.0 | controller tells assigned trajectory acceleration. free datasheet http:// 3.153 edh0162en1040 06/99 MM4005 vv define the vector velocity on trajectory (trajectory velocity) usage imm pgm mip syntax vvnn or vv? parameters description nn [double] desired trajectory velocity. range nn >0 to max trajectory velocity (mtv). units nn units/sec. defaults nn missing: mtv. out of range: error c. description this command defines the vector velocity on trajectory that the controller uses to start and stop execution of the trajectory. in association with the trajectory acceleration this will define the necessary time to reach the tra- jectory velocity. note the controller calculates automatically mtv for the trajectory to execute (set of trajectory elements entered before this command) one time this command is entered and limits the trajectory velocity to mtv if the para- meter entered is greater than mtv. it is then pratical to read mtv just before this command with help of the command xv1 and to read assigned trajectory velocity after this command with help of the com- mand vv? or xv. in fact, mtv is defined as the minimum value of minimum value of maximum allowed x assigned axis and y assigned axis velocities and of minimum value of all trajectory arc elements maximum allowed contouring velocities, that are calculated as square of product of maximum allowed trajectory acceleration (mta) with arc element contouring radius ( (mta * radius)). returns if the sign ? takes place of the nn value, this command reportes the actu- al trajectory velocity value. errors c parameter out of limits. s communication time-out. rel. commands vs define the vector acceleration on trajectory (trajectory acceleration). xv tell the vector velocity on trajectory (trajectory velocity). example xv1 | read mtv. xv20 | controller tells mtv. vv5 | define 5 units/sec as trajectory velocity. xv | read trajectory velocity. xv5.0 | controller tells trajectory velocity. free datasheet http:// edh0162en1040 06/99 3.154 MM4005 wa wait usage imm pgm mip syntax wann parameters description nn [int] wait time (delay). range nn 0 to 1073741824. units nn milliseconds. defaults xx 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. this means that the controller will wait nn milliseconds before exe- cuting the next command. note even though this command can be executed in immediate mode, its real value is as a flow control instruction inside programs. note this command is identical to wt. both exist only for program compati- bility reasons with other controllers. returns none. errors none. rel. commands wt wait. example 6ul, wa400 , 2pa2.3 | wait for i/o input bit #6 to go low, wait an additional 400 ms and then move axis 2 to position 2.3 units. free datasheet http:// 3.155 edh0162en1040 06/99 MM4005 we end while loop usage imm pgm mip syntax we 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. note to be accepted, we must be placed on a different line than wg, wh, wl or wy. to improve program clarity, it is recommended to place the we on a separate line. note all while loop commands (wg, wh, wl and wy) must be terminated with a we command. returns none. errors j command authorized only in programming mode. rel. commands wg while variable greater than value. wh while i/o input is equal. wl while variable is less. wy while variable is different. example 2ys0 | initialize variable #2 to 0. 2wy10, 2ya1 | open first while loop: while variable #2 is different than 10, add 1 to variable #2. 5wh1, 3pr1.2, ws | open second while loop: while i/o input bit #5 is high, move axis #3 incremental 1.2 units and wait for stop. we | end second while loop. we | end first while loop. free datasheet http:// edh0162en1040 06/99 3.156 MM4005 wf wait for function key usage imm pgm mip syntax xxwf parameters description xx [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats). units xx none. defaults xx missing: error o. out of range: error o. floating point: error a. description this command interrupts the execution of a program and waits for user input. when the command is executed, the controller displays the function key labels assigned with fb and waits for a valid function key to be pressed. a valid function key is one that has been labeled previously. when a valid function key is pressed, the controller beeps shortly to acknowl- edge the entry, places the ascii code of the key in the specified xx variable and continues program execution. key ascii variable pressed code value 1 st (left) a 65 2 nd b66 3 rd c67 4 th (right) d 68 returns none. errors a unknown message code. j command authorized only in programming mode. o variable number out of range. rel. commands fb label function key. fc clear function key line. fd display function keys. example 3xx | clear program #3 from memory, if any. 3ep | activate program mode and enter following commands as program #3. 4fbstop | define custom label for function key #4 as stop. | | | 7wf | display the custom function key label(s) (stop), wait for a valid function key to be pressed and put its ascii code in variable #7. fc | clear function key display line. | | | free datasheet http:// 3.157 edh0162en1040 06/99 MM4005 wg while variable is greater usage imm pgm mip syntax xxwgnn parameters description xx [int] variable number. nn [int] comparison value. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: 0. out of range: error c. description this command starts a while loop based on a variable s value. while the selected variable xx is greater than the nn value, all following commands up to the corresponding we are executed. the loop is repeated until the test becomes false. at that point, program execution continues with the line immediately following the we command. returns none. errors a unknown message code. c parameter out of limits. j command authorized only in programming mode. l command not at the beginning of a line. o variable number out of range. rel. commands we end while loop. wh while i/o input is equal. wl while variable is less. wy while variable is different. example 5ys30 | initialize variable #5 to 30. 5wg18 | while variable #5 is greater than 18 repeat next commands. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya-1 | subtract 1 from variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.158 MM4005 wh while i/o input is equal usage imm pgm mip syntax xxwhnn parameters description xx [int] i/o input bit number. nn [int] i/o input bit or byte state. range xx 0 to 8. nn 0 to 1 or 0 to 255. units xx none. nn none. defaults xx missing: error e. out of range: error e. floating point: error a. nn missing: 0. out of range: 1 for a bit, error c for a byte. description this command starts a while loop based on the state of an i/o input bit or byte. while the state of the selected i/o input bit xx is equal to nn , all fol- lowing commands up to the corresponding we are executed. the loop is repeated until the test becomes false. at that point, the program executed continues with the line immediately following the we command. if xx is set to 0 or missing, the test is performed on the entire i/o input byte and then nn could have a value from 0 to 255, representing the byte value to compare it with. note if the command is set to look for a bit by specifying xx between 1 and 8, a non-zero value for the nn parameter will be considered as a 1 and the while loop will execute until the i/o bit becomes low. returns none. errors a unknown message code. c parameter out of limits. e incorrect i/o channel number. j command authorized only in programming mode. l command not at the beginning of a line. rel. commands we end while loop. wg while variable greater than value. wl while variable is less. wy while variable is different. example 5wh1 | while i/o input bit #5 is high, repeat next commands . 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. we | end while loop. free datasheet http:// 3.159 edh0162en1040 06/99 MM4005 wi wait for a trajectory (curvi-linear) length usage imm pgm mip syntax winn parameters description nn [double] trajectory length to wait for. range nn 0 to trajectory total length . units nn x axis actual unit. defaults nn missing: error c. out of range: error c. description this command stops the execution of the program up to when the defined by wi trajectory length is reached. note this is a command used in phase of execution and its place is always after et command. if the value defined by wi is superior than the trajec- tory total length or by error after trajectory stop the trajectory execution do not reach the desired length, the command execution breaks and returns an error. note this command must be used in a program. returns none. errors c parameter out of limits. d unauthorized execution. rel. commands none. example nt | initialisation. lx10 | element 1. lx30 | element 2. lx40 | element 3. vv5 | set trajectory velocity to 5 units/sec. et | trajectory execution with generation of pulses. wi10 , 5sb | at the realized length of 10 units, set i/o ouput bit #5. wi30 , 5cb | at the realized length of 30 units, reset i/o ouput bit #5. free datasheet http:// edh0162en1040 06/99 3.160 MM4005 wk wait for key usage imm pgm mip syntax wkaa parameters description aa [str] string to be displayed, in ascii format. range aa 1 to 14 characters. units aa none. defaults aa missing: null string; clears the line. out of range: only first 14 characters are used. description this command stops the execution of a program. when it is executed, the specified message aa is displayed in the middle of line 5 and the menus on line 6 offer two choices: quit and exec. if the function key corresponding to quit is pressed, program execution is terminated. if exec is pressed, the program continues execution. returns none. errors j command authorized only in programming mode. rel. commands wa wait. wp wait for position. ws wait for motion stop. wt wait. example wkcontinue ? | top program and display on line #5 the string continue ? . 3pa1.2 | m ove axis #3 to position 1.2 units . in this example, line five of the front panel will display continue ? until quit or exec is pressed. free datasheet http:// 3.161 edh0162en1040 06/99 MM4005 wl while variable is less usage imm pgm mip syntax xxwlnn parameters description xx [int] variable number. nn [int] comparison value. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: 0. out of range: error c. floating point: decimal part truncated. description this command starts a while loop based on a variable s value. while the selected variable xx is less than the nn value, all following commands up to the corresponding we are executed. the loop is repeated until the test becomes false. at that point, the program executed continues with the line immediately following the we command. returns none. errors a unknown message code. c parameter out of limits. j command authorized only in programming mode. l command not at the beginning of a line. o variable number out of range. rel. commands we end while loop. wg while variable is greater than value. wh while i/o input is equal. wy while variable is different. example 5ys0 | initialize variable #5 to 0. 5wl18 | while variable #5 is less than 18 repeat next commands. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.162 MM4005 wn wait for a element of trajectory usage imm pgm mip syntax wnnn parameters description nn [int] number of trajectory element to wait for. range nn 0 to element total number of the trajectory . units nn none. defaults nn missing: error c. out of range: error c. description this command stops the execution of the program up to the beginning of the execution of the defined by wn numberred element of the trajectory. note this is a command used in phase of execution and its place is always after et command. if the value defined by wn is superior than the total number of element of the trajectory or by error after trajectory stop the trajectory execution do not reach the desired element, the command exe- cution breaks and returns an error. note this command must be used in a program. returns none. errors c parameter out of limits. d unauthorized execution. rel. commands none. example nt, fa90 | initialisation. cr10, ca5 | element 1. ca350 | element 2. ca5 | element 3. vv5 | set trajectory velocity to 5 units/sec. et | trajectory execution with generation of pulses. wn2 , 5sb | at the beginning of element 2, set i/o ouput bit #5. wn3 , 5cb | at the beginning of element 3, reset i/o ouput bit. free datasheet http:// 3.163 edh0162en1040 06/99 MM4005 wp wait for position usage imm pgm mip syntax xxwpnn parameters description xx [int] axis number. nn [float] position to wait for. range xx 0 to 4. nn starting position to destination of axis number xx . units xx none. nn preset units in setup mode. defaults xx missing: error b. out of range: error b. floating point: error a. nn missing: error c. out of range: error d. description this command stops the program execution until a position is reached. the program continues executing the immediate following commands only after axis xx reaches position nn . note make sure that position nn is inside the travel of axis xx. the controller cannot always detect if a value is outside the travel range of an axis to flag the error, especially in a complex motion program. returns none. errors a unknown message code. b incorrect axis number. c parameter out of limits. d unauthorized execution. rel. commands wa wait. wk wait for key. ws wait for motion stop. wt wait. example 2pa-10, ws | move axis #2 to position -10 units and wait for stop . 2pa10, 2wp0 , 3pa5 | move axis #2 to position 10 units, wait for axis #2 to reach position 0 and then move axis #3 to position 5 units. free datasheet http:// edh0162en1040 06/99 3.164 MM4005 ws wait for motion stop usage imm pgm mip syntax xxwsnn parameters description xx [int] axis number. nn [int] delay after motion is complete. range xx 0 to 4. nn 0 to 1073741824. units xx none. nn milliseconds. defaults xx missing: 0. out of range: error b. floating point: error a. nn missing: 0. out of range: 0. floating point: decimal part truncated description this command stops the program execution until a motion is completed. the program is continued only after axis xx reaches its destination. if xx is not specified, the controller waits for all motion in progress to end. if nn is specified different than 0, the controller waits an additional nn millisec- onds after the motion is complete and then executes the next commands. note there are a few milliseconds of delay between execution of different command lines. if you need precise delays, place the critical commands on the same line immediately following ws. note to terminate an excessively large delay, turn the motor power off and on. returns none. errors a unknown message code. b incorrect axis number. rel. commands wa wait. wk wait for key. wp wait for position. wt wait. example 2pa10, 2ws500 , 3pa5 | move axis #2 to position 10 units, wait for axis #2 to reach destina- tion, wait an additional 500ms and then move axis #3 to position 5 units. free datasheet http:// 3.165 edh0162en1040 06/99 MM4005 wt wait usage imm pgm mip syntax wtnn parameters description nn [int] wait time (delay). range nn 0 to 1073741824. units nn milliseconds. defaults nn missing: 0. out of range: nearest range limit. floating point: decimal part truncated. non-increment: rounded to nearest increment. description this command causes the controller to pause for a specified amount of time. this means that the controller will wait nn milliseconds before exe- cuting the next command. note even though this command can be executed in immediate mode, its real value is as a flow control instruction inside programs. note this command is identical to wa. both exist only for program compati- bility reasons with other controllers. returns none. errors none. commandes associes wa wait. example 6ul, wt400 , 2pa2.3 | wait for i/o input bit #6 to go low, wait an additional 400 ms and then move axis 2 to position 2.3 units. free datasheet http:// edh0162en1040 06/99 3.166 MM4005 wy while variable is different usage imm pgm mip syntax xxwynn parameters description xx [int] variable number. nn [int] comparison value. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: 0. out of range: error c. description this command starts a while loop based on a variable s value. while the selected variable xx is different than the nn value, all following commands up to the corresponding we are executed. the loop is repeated until the test becomes false. at that point, the program executed continues with the line immediately following the we command. returns none. errors a unknown message code. c parameter out of limits. j command authorized only in programming mode. l command not at the beginning of a line. o variable number out of range. rel. commands we end while loop. wg while variable is greater than value. wh while i/o input is equal. wl while variable is less. example 5ys0 | initialize variable #5 to 0. 5wy18 | while variable #5 is different than 18 repeat following commands up to the next we command. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// 3.167 edh0162en1040 06/99 MM4005 xa tell the current maximum allowed angle of discontinuity usage imm pgm mip syntax xa parameters none. description this command retrieves from the controller the current maximum allowed discontinuity angle. returns xann nn maximum discontinuity angle. errors s communication time-out. rel. commands ad define the maximum allowed angle of discontinuity. example xa | tell maximum discontinuity angle. xa0.001 | controller returns 0.001 ? . free datasheet http:// edh0162en1040 06/99 3.168 MM4005 xb read backlash compensation usage imm pgm mip syntax xxxb parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. returns xxxbnn xx axis number. nn backlash compensation in use. errors a unknown message code. b incorrect axis number. rel. commands ba set backlash compensation. example or | perform a home search on all installed axes. 1ba0.0012 | set backlash compensation of axis #1 to 0.0012 units . 2ba0.0008 | set backlash compensation of axis #2 to 0.0008 units. | | | 1xb | read backlash compensation of axis #1. 1xb0.0012 | controller returns axis #1 backlash compensation of 0.0012 unit. 2xb | read backlash compensation of axis #2. 2xb0.0008 | controller returns axis #2 backlash compensation of 0.0008 units. free datasheet http:// 3.169 edh0162en1040 06/99 MM4005 xd read derivative gain factor usage imm pgm mip syntax xxxd parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx missing: error b. out of range: error b. floating point: error a. description this command reads the derivative gain factor of an axis. note the command reads the value actually used in the servo loop. if the pid parameters are modified using the kd command but the digital filter has not been updated by sending an uf, the command will still read the old value. returns xxxdnn xx axis number. nn derivative gain factor. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands kd set derivative gain. tf read filter parameters. uf update servo filter. example 2xd | rad derivative gain factor of axis #2. 2xd0.05 | controller returns a derivative gain factor of 0.05. free datasheet http:// edh0162en1040 06/99 3.170 MM4005 xe tell the last element usage imm pgm mip syntax xe parameters none. description this command retrieves from the controller the informations of the last defined element. returns xeaa, bb, cc, dd aa type of element: line (x, ), or line (y, ), or line (x, y), or arc (x, y), or arc (r, ). bb x end position of the element. cc y end position of the element. dd angle of the tangent at the end position. errors s communication time-out. rel. commands xt tell number of elements in the trajectory. lt extended list of the trajectory. example nt | clear trajectory. fa45.0 | define initial tangent angle = 45 ? . lx10 | define and build line segment = ? (10.0, 45.0 ? ). xe | tell last element. xe, line (x, free datasheet http:// 3.171 edh0162en1040 06/99 MM4005 xf read maximum following error usage imm pgm mip syntax xxxf parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. note the command reads the value actually used in the servo loop. if the pid parameters are modified using the fe command but the digital filter has not been updated by sending an uf, the command will still read the old value. returns xxxfnn . xx axis number. nn maximum allowed following error. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands fe set maximum following error. tf read filter parameters. uf update servo filter. example 2xf | read maximum acceptable following error for axis #2 . 2xf0.2 | controller returns a maximum following error of 0.2 units. free datasheet http:// edh0162en1040 06/99 3.172 MM4005 xh read home preset position usage imm pgm mip syntax xxxh parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. note see the motion control tutorial section for a description of the home search algorithm. returns xxxhnn . xx axis number. nn home preset position. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands sh set home preset position. or search for home. example 2xh | read home preset position for axis #2. 2xh8.2 | controller returns a home preset position of 8.2 units. free datasheet http:// 3.173 edh0162en1040 06/99 MM4005 xi read integral gain factor usage imm pgm mip syntax xxxi parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx 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. if the pid parameters are modified using the ki command but the digital filter has not been updated by sending an uf, the command will still read the old value. returns xxxinn xx axis number. nn integral gain factor. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands ki set integral gain factor. tf read filter parameters. uf update servo filter. example 2xi | read integral gain factor of axis #2. 2xi0.005 | controller returns an integral gain factor of 0.005. free datasheet http:// edh0162en1040 06/99 3.174 MM4005 xl delete one line of program usage imm pgm mip syntax xxxlnn parameters description xx [int] program number. nn [int] line number. range xx 1 to 127. nn 1 to 32767 . units xx none. nn none. defaults xx missing: error f. out of range: error f. nn missing: the last line. out of range: error c. floating point: error a. description this command deletes the line # nn of xx numberred program. if nn is default, the command deletes the last line of this program. note this command is useful for modifying an existing program without delete it. returns none. errors a unknown message code. c parameter out of limits. d unauthorized execution. f program number incorrect. i unauthorized command in programming mode. rel. commands ep edition of program. qp quit program mode. example 1lp | liste program #1. 1pa10 | ws | 1pr10 | ws | or | program #1 is listed. 1xl2 | delete the line #2 of program #1. 1xl | delete the last line of program #1. 1lp | liste program #1. 1pa10 | 1pr10 | ws | program #1 is now listed. free datasheet http:// 3.175 edh0162en1040 06/99 MM4005 xm read available memory usage imm pgm mip syntax xxxm parameters description xx [int] program number. range xx 0 to 127. units xx none. defaults xx missing: 0. out of range: error f. description if xx = 0 or missing this command reads the amount of unused program memory. the controller has 30720 bytes of non-volatile memory available for permanently storing programs. this command reports the amount not used. if xx 1 and xx 127 this command reports the length of the program num- ber xx . if the returned value is 0, the program does not exist. note the controller is saving programs in their original format, thus using one byte per character. returns xxxmnn nn returned value, in bytes. errors s communication time-out. rel. commands lp list program. mp download eeprom to ram. sm save program. xx erase program. example xm | read available program memory. xm29873 | controller returns 29873 bytes of available program memory. 1xm | read the length of the program number #1. 1xm15 | the length of program #1 is 15 bytes. 100xm | read the length of the program number #100. 100xm0 | the program #100 does not exist. free datasheet http:// edh0162en1040 06/99 3.176 MM4005 xn read number of acquisitions usage imm pgm mip syntax xn 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. returns xnnn nn nnumber of acquired samples. errors s communication time-out. rel. commands none. example sp 0.005 | set trace sample period to 5 ms. 2tm1000 | enable trace mode for axis #2 and acquire 1000 samples . 2pr0.2 | start a relative motion on axis #2 and the acquisition process . xn | read the number of samples acquired . xn157 | controller reports 157 trace samples acquired. xn | read the number of samples acquired. xn342 | controller reports 342 trace samples acquired. 2ws, xn | wait for stop and read the number of samples acquired. xn1000 | controller reports 1000 trace samples acquired. free datasheet http:// 3.177 edh0162en1040 06/99 MM4005 xp read proportional gain factor usage imm pgm mip syntax xxxp parameters description xx [int] axis number. range xx 1 to 4. units xx none. defaults xx missing: error b. out of range: error b. floating point: error a. description this command reads the proportional gain factor of an axis. note the command reads the value actually used in the servo loop. if the pid parameters are modified using the kp command but the digital filter has not been updated by sending an uf, the command will still read the old value. returns xxxpnn xx axis number. nn proportional gain factor. errors a unknown message code. b incorrect axis number. s communication time-out. rel. commands kp set proportional gain. tf read filter parameters. uf update servo filter. example 2xp | read proportional gain factor of axis #2. 2xp0.005 | controller returns an proportional gain factor of 0.005. free datasheet http:// edh0162en1040 06/99 3.178 MM4005 xq read global sample rate usage imm pgm mip syntax xq 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. note the returned value may differ slightly from the one preset with the sq command because it reflects the real clock used for the timer. for that reason, the sample period is reported with at least 10 decimal points. returns xqnn nn real global trace sample period, in seconds. errors s communication time-out. rel. commands gq set global trace mode. sq set global sample rate. example sq0.005 | set global trace sample period to 5 ms. gq1000 | enable global trace mode and acquire 1000 samples . 2pr0.2 | start a relative motion on axis #2 and the acquisition process . xq | read the global trace sample period. xq0.005003436196 | controller returns the real sample rate, in seconds. free datasheet http:// 3.179 edh0162en1040 06/99 MM4005 xs read trace sample rate usage imm pgm mip syntax xs 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. note the returned value usually differs from the one preset in the sp com- mand because it reflects the real clock used for the timer. for that rea- son, the sample period is reported with at least 10 decimal points. returns xsnn xx real trace sample period, in seconds. . errors s communication time-out. rel. commands sp set trace sample rate. tm set trace mode. example sp0.005 | set global trace sample period to 5 ms. gq1000 | enable global trace mode and acquire 1000 samples . 2pr0.2 | start a relative motion on axis #2 and the acquisition process . xs | read the global trace sample period. xs0.005003436196 | controller returns the real sample rate, in seconds. xt tell number of elements in the trajectory usage imm pgm mip syntax xt parameters none. description this command retrieves from the controller the number of valid elements that have been loaded into the trajectory. returns xtnn nn number of elements. errors s communication time-out. rel. commands at tell the element number under execution. lt extended list of the trajectory. example nt | reset trajectory buffer. xt | read number of elements. xt0 | controller returns 0. free datasheet http:// edh0162en1040 06/99 3.180 MM4005 xu tell the vector acceleration on trajectory (trajectory acceleration) usage imm pgm mip syntax xunn parameters description nn [int] 0 or 1 . defaults nn missing: 0. description this command retrieves from the controller the current trajectory accelera- tion or max trajectory acceleration (mta). returns xuaa aa the current trajectory acceleration if nn missing or 0, aa = mta if nn greater or equal 1. errors s communication time-out. rel. commands vs define the vector acceleration on trajectory (trajectory acceleration). xv tell the vector velocity on trajectory (trajectory velocity). example vs10 | define 10 units/sec 2 as trajectory acceleration. xu1 | read mta. xu20.0 | controller tells mta. xu | read trajectory acceleration. xu10.0 | controller tells trajectory acceleration. free datasheet http:// 3.181 edh0162en1040 06/99 MM4005 xv tell the vector velocity on trajectory (trajectory velocity) usage imm pgm mip syntax xvnn parameters description nn [int] 0 or 1 . defaults nn missing: 0. description this command retrieves from the controller the current trajectory velocity or max trajectory velocity (mtv). returns xvaa aa the current trajectory velocity if nn missing or 0, aa = mtv if nn greater or equal 1. errors s communication time-out. rel. commands vv define the vector velocity on trajectory (trajectory velocity). xu tell the vector acceleration on trajectory (trajectory acceleration). example vv5 | define 5 units/sec as trajectory velocity. xv1 | read mtv. xv10.0 | controller tells mtv. xv | read trajectory velocity. xv5.0 | controller tells trajectory velocity. free datasheet http:// edh0162en1040 06/99 3.182 MM4005 xx erase program usage imm pgm mip syntax xxxx parameters description xx [int] program number. range xx 0 to 127. units xx none. defaults xx 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. it does not erase programs stored in the non-volatile memory. if xx is missing or set to 0, all programs in ram will be erased. note on power up, the controller automatically loads all programs stored in non-volatile memory into ram. if a program is erased using the xx com- mand, to run the same program number, a new one must be created or the old one downloaded from non-volatile memory using the mp com- mand returns none. errors a unknown message code. f program number incorrect. i unauthorized command in programming mode. rel. commands lp list program. mp download eeprom to ram. example 3xx | clear program #3 from memory. 3ep | activate program mode and enter following commands as program #3. | | | 3qp | end entering program #3 and quit programming mode. 3cp | compile program #3. 3cp@ | controller confirms compilation of program #3 without any errors. free datasheet http:// 3.183 edh0162en1040 06/99 MM4005 ya add to variable usage imm pgm mip syntax xxyann parameters description xx [int] variable number. nn [int] value to add. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: 0. out of range: error c. floating point: decimal part truncated. description this command adds a value to a variable. it is useful for creating loops in a program. the value may be positive or negative. note if, at any time the operation will cause the variable value to go out of range, error h (unauthorized execution) is generated. returns none. errors a unknown message code. c parameter out of limits. h calculation overflow. j command authorized only in programming mode. o variable number out of range. rel. commands ty read a variable. ys initialize variable. example 5ys30 | initialize variable #5 to 30. 5wg18 | while variable #5 is greater than 18 repeat next commands. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya-1 | subtract 1 from variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.184 MM4005 yb negate variable usage imm pgm mip syntax xxyb parameters description xx [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats) . units xx none. defaults xx missing: error o. out of range: error o. floating point: error a. description this command negates the value of a variable. after executing this com- mand, the value of variable xx takes the opposite sign. returns none. errors a unknown message code. o variable number out of range. rel. commands ty read a variable. ys initialize variable. example 3xx | clear program #3 from memory, if any. 3ep | activate program mode and enter following commands as program #3. 7ys3 | initialize variable #7 to 3. 7ya2 | add 2 to variable #7; the new value for the variable is 5. 7yb | negate variable #7; the new value for the variable is -5. | | | free datasheet http:// 3.185 edh0162en1040 06/99 MM4005 yc add variables usage imm pgm mip syntax xxycnn parameters description xx [int] variable number. nn [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats) . nn 1 to 100 (integers) and 101 to 120 (floats) . units xx none. nn none. defaults xx missing : error o. out of range: error o. floating point: error a. nn missing: error o. out of range: error o. floating point: decimal part truncated. description this command adds the values of two variables. variable xx is added to variable nn and the result placed in variable xx . if the result is outside the -32767 to 32767 variable range, the operation is not performed and error h is generated. returns none. errors a unknown message code. c parameter out of limits. h calculation overflow. o variable number out of range. rel. commands ya add to variable. ys initialize variable. example 5ys0 | initialize variable #5 to 0. 2ys6 | initialize variable #2 to 6. 5wy18 | while variable #5 is different than 18 repeat next commands. 5ye10, 5yc2 | if variable #5 is equal to 10, add variable #2 to variable #5; the value of variable #5 becomes 16. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.186 MM4005 yd divide variables usage imm pgm mip syntax xxydnn parameters description xx [int] variable number. nn [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats). nn 1 to 100 (integers) and 101 to 120 (floats). units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error o. out of range: error o. floating point: decimal part truncated. description this command divides the values of two variables. variable xx is divided by variable nn and the result placed in variable xx . if variable nn is zero, the operation is not performed and error h is generated. the decimal part of the division result is truncated. returns none. errors a unknown message code. c parameter out of limits. h calculation overflow. o variable number out of range. rel. commands ya add to variable. yc add variables. ys initialize variable. example 5ys5 | initialize variable #5 to 5. 2ys9 | initialize variable #2 to 9. 1yr3 | load analog port #3 value into variable #1 . 3yy1 | copy variable #1 in variable #3. 3ya-32 | subtract 32 from variable #3. 3ym5 | multiply variable #3 with variable #5. 3yd2 | divide variable #3 by variable #2; if variable #1 represents a tem- perature measured in degrees fahrenheit, variable #3 will be the equivalent temperature in degrees celsius. free datasheet http:// 3.187 edh0162en1040 06/99 MM4005 ye if variable is equal usage imm pgm mip syntax xxyenn parameters description xx [int] variable number. nn [int] comparaison value. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error c. out of range: error c. description this command will allow execution of a command line based on a vari- able s value. if the selected variable xx is equal to the nn value, all follow- ing commands on that line are executed. the command must be at the beginning of a line and it applies only to that command line. note even though this command can be executed in immediate mode, its real value is as a flow control instruction inside programs. returns none. errors a unknown message code. c parameter out of limits. l command not at the beginning of a line. o variable number out of range. rel. commands ya add to variable. yg if variable is greater. yl if variable is less. ys initialize variable. example 5ys0 | initialize variable #5 to 0. 5wy18 | while variable #5 is different than 18 repeat next commands. 5ye10 , 2pr2.6, ws | if variable #5 is equal to 10, move axis #2 incremental 2.6 units and wait for stop. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.188 MM4005 yf scale variable usage imm pgm mip syntax xxyfnn parameters description xx [int] variable number. nn [int] scaling factor. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error c. out of range: error c . description this command scales the values of a variable. the value of variable xx is multiplied by the constant nn and the result placed in variable xx . if the value of nn is zero, the operation is not performed and error h is generat- ed. if the result of the multiplication is outside the -32767 to 32767 range, the operation is not performed and error h is generated. the decimal part of the multiplication result is truncated. returns none. errors a unknown message code. c parameter out of limits. h calculation overflow. o variable number out of range . rel. commands ya add to variable. yd divide variable. ys initialize variable. example 1yr3 | load analog port #3 value into variable #1. 3yy1 | copy variable #1 in variable #3. 3ya-32 | subtract 32 from variable #3. 3yf0.5555556 | multiply variable #3 by 0.5555556; if variable #1 represents a tem- perature measured in degrees fahrenheit, variable #3 will be the equivalent temperature in degrees celsius. free datasheet http:// 3.189 edh0162en1040 06/99 MM4005 yg if variable is greater usage imm pgm mip syntax xxygnn parameters description xx [int] variable number. nn [int] comparison value. range xx 1 to 100 (integers) and 101 to 120 (floats) . nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error c. out of range: error c. description this command allows execution of a command line based on a variable s value. if the selected variable xx is greater than the nn value, all following commands on that line are executed. the command must be at the begin- ning of a line and it applies only to that command line. note even though this command can be executed in immediate mode, its real value is as a flow control instruction inside programs. returns none. errors a unknown message code. c parameter out of limits. l command not at the beginning of a line. o variable number out of range. rel. commands ya add to variable. ye if variable is equal. yl if variable is less. ys initialize variable. example 5ys0 | initialize variable #5 to 0. 5wy18 | while variable #5 is different than 18, repeat next commands. 5yg10 , 2pr2.6, ws | if variable #5 is greater than 10, move axis #2 incremental 2.6 units and wait for stop. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.190 MM4005 yk read key to variable usage imm pgm mip syntax xxyk parameters description xx [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats). units xx none. defaults xx missing: error o. out of range: error o. floating point: error a. description this command reads the front panel keys and if one is pressed, it places its ascii code in variable xx . if no key is pressed at the time of testing, the variable is set to zero. the following table lists all possible values returned. key ascii variable pressed code value none none 0 048 149 250 351 452 553 654 755 856 957 -45 .46 1 st (left) a 65 2 nd b66 3 rd c67 4 th (right) d 68 returns none. errors a unknown message code. o variable number out of range. rel. commands yw wait and read key. example 5ys0 | initialize variable #5 to 0. 5wl1 | while variable #5 is less than 1, repeat next commands . 4yk | read keys and place code variable #4. 4ye49, 1pr-0.1 | if key 1 is pressed, move axis #1 -0.1 units incrementally. 4ye51, 1pr0.1 | if key 3 is pressed, move axis #1 0.1 units incrementally. 4ye48, 5ys1 | if key 0 is pressed, set variable #5 to 1 to end loop. we | end while loop. . 9 8 7 6 5 4 3 2 1 0 free datasheet http:// 3.191 edh0162en1040 06/99 MM4005 yl if variable is less usage imm pgm mip syntax xxylnn parameters description xx [int] variable number. nn [int] comparison value. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error c. out of range: error c. description this command will allow execution of a command line based on a vari- able s value. if the selected variable xx is less than the nn value, all follow- ing commands on that line are executed. the command must be at the beginning of a line and it applies only to that command line. note even though this command can be executed in immediate mode, its real value is as a flow control instruction inside programs. returns none. errors a unknown message code. c parameter out of limits. l command not at the beginning of a line. o variable number out of range. rel. commands ya add to variable. ye if variable is equal. yg if variable is greater. ys initialize variable. example 5ys0 | initialize variable #5 to 0. 5wy18 | while variable #5 is different than 18 repeat next commands . 5yl10 , 2pr2.6, ws | if variable #5 is less than 10, move axis #2 incremental 2.6 units and wait for stop . 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop . 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.192 MM4005 ym multiply variables usage imm pgm mip syntax xxymnn parameters description xx [int] variable number. nn [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats). nn 1 to 100 (integers) and 101 to 120 (floats). units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error o. out of range: error o. floating point: decimal part truncated. description this command multiplies the values of two variables. variable xx is multi- plied by variable nn and the result placed in variable xx . if the result is out of the -32767 to 32767 range, the operation is not performed and error h is generated. returns none. errors a unknown message code. h calculation overflow. o variable number out of range. rel. commands yc add variables. yd divide variables. yf scale variable. ys initialize variable. example 5ys5 | initialize variable #5 to 5. 2ys9 | initialize variable #2 to 9. 1yr3 | load analog port #3 value into variable #1. 3yy1 | copy variable #1 in variable #3. 3ya-32 | subtract 32 from variable #3. 3ym5 | multiply variable #3 with variable #5. 3yd2 | divide variable #3 by variable #2; if variable #1 represents a tem- perature measured in degrees fahrenheit, variable #3 will be the equivalent temperature in degrees celsius. free datasheet http:// 3.193 edh0162en1040 06/99 MM4005 yn if variable is different usage imm pgm mip syntax xxynnn parameters description xx [int] variable number. nn [int] comparison value. range xx 1 to 100 (integers) and 101 to 120 (floats). nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: 0. out of range: error c. description this command allows execution of a command line based on a variable s value. if the selected variable xx is different than the nn value, all following commands on that line are executed. the command must be at the begin- ning of a line and it applies only to that command line. note even though this command can be executed in immediate mode, its real value is as a flow control instruction inside programs. returns none. errors a unknown message code. c parameter out of limits. l command not at the beginning of a line. o variable number out of range. rel. commands ye if variable is equal. yg if variable is greater. yl if variable is less. ys initialize variable. example 5ys0 | initialize variable #5 to 0. 5wy4 | while variable #5 is different than 4 repeat next commands . 5yn1 , 2pr2.6, ws | if variable #5 is different than 1, move axis #2 incremental 2.6 units and wait for stop . 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop . 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.194 MM4005 yo send a value to an user analog port usage imm pgm mip syntax xxyonn parameters description xx [int] analog output port number. nn [float] value to send out. range xx 1 to 4 . nn -10.0 to 10.0 . units xx none. nn none. defaults xx missing: 0. out of range: error e. floating point: error a. nn missing: error c. out of range: error c. description this command writes value to an user analog port. the output value will be limited between -10.0 and 10.0. if xx missing, this command writes output value to all of analog output port (1 to 4). if nn absolute value is bigger than 10 ( nn >10 or nn <-10), nn will be limited between -10 and 10. note for the hardware definition of the analog input port, please see appendix, connector pinouts, remote control connector. returns none. errors a unknown message code. c parameter out of limits. e incorrect i/o channel number. q unauthorized command. rel. commands am set analog input mode. yr read a value from an user analog port and affect variable. example 2ys0 | initialize the variable #2 to zero. 2wl10 | while the variable #2 is smaller than 10. 1pr2, ws | displacement of 2 units, wait for stop. 1yo$y2 | send the value of variable #2 to analog port number 1. 2ya1 | variable #2 is incremented. we | end of loop. free datasheet http:// 3.195 edh0162en1040 06/99 MM4005 yp set theoretical position in variable usage imm pgm mip syntax xxypnn parameters description xx [int] axis number. nn [int] float variable. range xx 1 to 4. nn 101 to 120. units xx none. nn none. defaults xx missing: error b. out of range: error b. nn missing: error c. out of range: error c. description this command sets the current theoretical position in the desired y float variable. returns none. errors b incorrect axis number. c parameter out of limits. rel. commands yq set current position in y variable. example 1yp101 | set the theoretical position of the axis #1 in the float variable #101. free datasheet http:// edh0162en1040 06/99 3.196 MM4005 yq set current position in variable usage imm pgm mip syntax xxyqnn parameters description xx [int] axis number. nn [int] float variable. range xx 1 to 4. nn 101 to 120. units xx none. nn none. defaults xx missing: error b. out of range: error b. nn missing: error c. out of range: error c. description this command sets the current position in the desired y float variable. returns none. errors b incorrect axis number. c parameter out of limits. rel. commands yp set theoretical position in y variable. example 2yq110 | set the current position of the axis #2 in the float variable #110. free datasheet http:// 3.197 edh0162en1040 06/99 MM4005 yr read a value from an user analog port and affect variable usage imm pgm mip syntax xxyrnn parameters description xx [int] analog port number. nn [int] variable number. range xx 1 to 4. nn 1 to 100 (integers) and 101 to 120 (floats). units xx none. nn none. defaults xx missing: 0. out of range: error e. floating point: error a. nn missing: error c. out of range: error c. description this command reads an user analog port and saves the value in a variable. the selected port xx is read and the value is loaded in variable nn . note for the hardware definition of the analog input port, please see appendix, connector pinouts, remote control connector. returns none. errors a unknown message code. c parameter out of limits. o variable number out of range. rel. commands ra read analog input. example 5ys0 | initialize variable #5 to 0. 5wl18 | while variable #5 is less than 18 repeat next commands . 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop . 1yr101 | load analog port #1 value into float variable #101. 5ya1 | #5 is incremeted of 1. we | end while loop. free datasheet http:// edh0162en1040 06/99 3.198 MM4005 ys initialize variable usage imm pgm mip syntax xxysnn parameters description xx [int] variable number. nn [int] initializing value. range xx 1 to 100 (integers) and 101 to 120 (floats) . nn -32767 to 32767. units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error c. out of range: error c. description this command initializes a variable. when this command is received, the specified variable xx is initialized to nn value. note always initialize a variable before using it. at power up or after running other programs, the value of a variable may be unknown. returns none. errors a unknown message code. c parameter out of limits. o variable number out of range. rel. commands ty read a variable. example 5ys0 | initialize variable #5 to 0 . 5wy18| while variable #5 is different than 18 repeat next commands. 3pr1.2, ws | move axis #3 incremental 1.2 units and wait for stop. 5ya1 | add 1 to variable #5. we | end while loop. free datasheet http:// 3.199 edh0162en1040 06/99 MM4005 yv read value from keyboard in a variable usage imm pgm mip syntax xxyvmessage param ? tres description xx [int] variable number. message prompt message. value xx 1 to 100 (integers) and 101 to 120 (floats). message 1 to 15 characters. units xx none. message none. defaults xx missing: error o. out of range: error o. floating point: error a. message out of range: 15 characters. description this command read a value from the keyboard and places it in the variable xx . if xx = from 1 to 100, the value is entered as an integer. else if xx = from 100 to 120, the value is entered as a float. if message exists, message is displayed in the value line, else the message y[xx] = takes place. the length of message should not bigger 15 characters, otherwise message will be truncated. returns none. errors a unknown message code. o variable number out of range. rel. commands ty read a variable. yk read key to variable. yw wait and read key. example 5yvvalue is: | enter a value in the variable #5. 3ex | execute the program #3. free datasheet http:// edh0162en1040 06/99 3.200 MM4005 yw wait and read key usage imm pgm mip syntax xxyw parameters description xx [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats). units xx none. defaults xx missing: error o. out of range: error o. floating point: error a. description this command waits for a front panel key to be pressed and places its ascii code in variable xx . the following table lists all possible values returned. key ascii variable pressed code value none none 0 048 149 250 351 452 553 654 755 856 957 -45 .46 1 st (left) a 65 2 nd b66 3 rd c67 4 th (right) d 68 returns none. errors a unknown message code. j command authorized only in programming mode. o variable number out of range. rel. commands yk read key to variable. example 5ys0 | initialize variable #5 to 0. 5wl1 | while variable #5 is less than 1, repeat next commands . 4yw | wait for any key and place its code in variable #4. 4ye49, 1pr-0.1 | if key 1 is pressed, move axis #1 -0.1 units incrementally . 4ye51, 1pr0.1 | if key 3 is pressed, move axis #1 0.1 units incrementally . 4ye48, 5ys1 | if key 0 is pressed, set variable #5 to 1 to end loop. ws, we | wait for all motion to stop; end while loop. . 9 8 7 6 5 4 3 2 1 0 free datasheet http:// 3.201 edh0162en1040 06/99 MM4005 yy copy variable usage imm pgm mip syntax xxyynn parameters description x x [int] variable number. nn [int] variable number. range xx 1 to 100 (integers) and 101 to 120 (floats). nn 1 to 100 (integers) and 101 to 120 (floats). units xx none. nn none. defaults xx missing: error o. out of range: error o. floating point: error a. nn missing: error o. out of range: error o. floating point: decimal part truncated. description this command copies the values of one variable to another. the value of variable nn is copied to variable xx . after execution, both variables will have the same value. returns none. errors a unknown message code. o variable number out of range. rel. commands yc add variables. yd divide variables. ym multiply variables. ys initialize variable. example 5ys5 | initialize variable #5 to 5. 2ys9 | initialize variable #2 to 9. 1yr3 | load analog port #3 value into variable #1. 3yy1 | copy variable #1 in variable #3. 3ya-32 | ssubtract 32 from variable #3 . 3ym5 | multiply variable #3 with variable #5. 3yd2 | divide variable #3 by variable #2; if variable #1 represents a tem- perature measured in degrees fahrenheit, variable #3 will be the equivalent temperature in degrees celsius. free datasheet http:// edh0162en1040 06/99 3.202 MM4005 zp zero position usage imm pgm mip syntax xxzp parameters description xx [int] variable number. range xx 0 to 4. units xx none. defaults xx 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. if xx is not specified, the zeroing operation will be per- formed on all axes. note because the mechanical system must be protected regardless of the zero position, the positive and negative software limits are recalculated to stay in the same place in space. returns none. errors a unknown message code. b incorrect axis number. d unauthorized execution. rel. commands dh define home. or search for home. sh set home preset position. example 3pa1.23 | move axis #3 to position 1.23 units. 3tr | read positive software travel limit of axis #3. 3tr50.000 | controller returns positive travel limit 50 units for axis #3. 3zp | set current position of axis #3 to 0. 3tp | read real position of axis #3. 3tp0.000 | controller returns real position 0 for axis #3. 3tr | read positive software travel limit of axis #3. 3tr48.770 | controller returns positive travel limit 48.77 units for axis #3. free datasheet http:// 3.203 edh0162en1040 06/99 MM4005 zt read axis/general parameters configuration usage imm pgm mip syntax xxztnn parameters description xx [int] axis number. nn type of report: 0 : axis configuration. 1 : general configuration. range xx 0 to 4. nn 0 or 1. units xx none. defaults xx missing: 0. out of range: error b. nn missing: 0. out of range: error c. description this command reports the MM4005 axis/general parameters configuration that is found in the menu or . if xx 0: reports the parameters configuration of the axis # xx . if xx = 0 (missing) and nn = 0 (missing): reports the parameters configu- ration of all of axes. if xx 0 and nn = 1: reports the general parameters configuration. note it is recommanded to save the controller axes/general parameters config- uration in a computer file to avoid the parameters loss when an electri- cal accident occurs, or when the firmware is upgraded. returns controller axis/general parameters configuration. errors a unknown message code. b incorrect axis number. c parameter out of limits. rel. commands none. example 1zt | read axis #1 parameters configuration. zt | read all of axes parameters configuration. zt1 | read general parameters configuration. axe u qit 1: 2: 3: 4: m r m t u50c 1 . m z u160 c0 m u ut 100 1 . c pp0 . s smn eu etup gen . 80pp c0 1 gen. setup menu axes setup menu free datasheet http:// edh0162en1040 06/99 3.204 MM4005 4-axis motion controller/driver free datasheet http:// section 4 motion control tutorial free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 4.1 edh0162en1040 ?06/99 MM4005 4-axis motion controller/driver table of contents section 4 ? motion control tutorial 4.1 motion systems ......................................................................................4.3 4.2 specification definitions........................................................................4.4 4.2.1 following error ............................................................................4.4 4.2.2 error..............................................................................................4.5 4.2.3 accuracy.......................................................................................4.5 4.2.4 local accuracy ............................................................................4.6 4.2.5 resolution ....................................................................................4.6 4.2.6 minimum incremental motion ...................................................4.7 4.2.7 repeatability ................................................................................4.8 4.2.8 backlash (hysteresis) .................................................................4.8 4.2.9 pitch, roll and yaw .....................................................................4.9 4.2.10 wobble........................................................................................4.10 4.2.11 load capacity ............................................................................4.10 4.2.12 maximum velocity ....................................................................4.11 4.2.13 minimum velocity .....................................................................4.11 4.2.14 velocity regulation ...................................................................4.12 4.2.15 maximum acceleration.............................................................4.12 4.2.16combined parameters ...............................................................4.12 4.3 control loops .......................................................................................4.13 4.3.1 pid servo loops ........................................................................4.13 p loop.........................................................................................4.14 pi loop........................................................................................4.14 pid loop .....................................................................................4.15 4.3.2 feed-forward loops .................................................................4.15 4.4 motion profiles .....................................................................................4.17 4.4.1 move ...........................................................................................4.17 4.4.2 jog ...............................................................................................4.18 4.4.3 home search ..............................................................................4.18 4.5 encoders................................................................................................4.21 4.6 motors ...................................................................................................4.23 4.6.1 stepper motors..........................................................................4.24 advantages.................................................................................4.28 disadvantages............................................................................4.28 4.6.2 dc motors ..................................................................................4.28 advantages.................................................................................4.29 disadvantages............................................................................4.29 4.7 drivers ...................................................................................................4.29 4.7.1 stepper motor drivers..............................................................4.29 4.7.2 dc motor drivers ......................................................................4.31 free datasheet http:// edh0162en1040 06/99 4.2 MM4005 4-axis motion controller/driver free datasheet http:// 4.3 edh0162en1040 06/99 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. fig. 4.1 ?typical motion control system. its major components are: controller an electronic device that receives motion commands from an operator directly or via a computer, verifies the real motion device position and gen- erates the necessary control signals. driver an electronic device that converts the control signals to the correct format and power needed to drive the motors. motion device an electro-mechanical device that can move a load with the necessary specifications. cables needed to interconnect the other motion control components. controller driver x-y stage 4.1 free datasheet http:// edh0162en1040 06/99 4.4 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. we mentioned this to make a point: a component is only as good as the system lets (or helps) it to be. for this reason, when discussing a particular system performance specifi- cation, we will also mention which components affect performance the most and, if appropriate, which components improve it. specification definitions people mean different things when referring to the same parameter name. to establish some common ground for motion control terminology, here are some general guidelines for the interpretation of motion control terms and specifications. as mentioned earlier, most motion control performance specifications should be considered system specifications. when not otherwise specified, all error-related specifications refer to the position error. the servo loop feedback is position-based. all other velocity, accelera- tion, error, etc. parameters are derived from the position feedback and the internal clock. to measure the absolute position, we need a reference, a measuring device, that is significantly more accurate than the device tested. in our case, dealing with fractions of microns (0.1 m and less), even a stan- dard laser interferometer becomes unsatisfactory. for this reason, all factory measurements are made using a number of high precision inter- ferometers, most of them connected to a computerizes test station. to avoid unnecessary confusion and to more easily understand and troubleshoot a problem, special attention must be paid to avoid bundling discrete errors in one general term. depending on the applica- tion, some discrete errors are not significant. grouping them in one gen- eral parameter will only complicate the understanding of the system performance in certain applications. 4.2.1 following error the following error is not a specifications parameter but, because it is at the heart of the servo algorithm calculations and of other parameter defini- tions, it deserves our attention. as will be described later in the control loops paragraph, a major part of the servo controller s task is to make sure that the actual motion device fol- lows as close as possible an ideal trajectory in time. you can imagine hav- ing an imaginary (ideal) motion device that executes exactly the motion profile you are requesting. in reality, the real motion device will find itself deviating from this ideal trajectory. since most of the time the real motion device is trailing the ideal one, the instantaneous error is called following error. to summarize, the following error is the instantaneous difference between the actual position as reported by the position feedback device and the ideal position, as seen by the controller. a negative following error means that the load is trailing the ideal motion device. 4.2 free datasheet http:// 4.5 edh0162en1040 06/99 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. 4.2.3 accuracy the accuracy of a system is probably the most common parameter users want to know. unfortunately, due to its perceived simplicity, it is also the easiest to misinterpret. the accuracy is a static measure of a point-to-point positioning error. starting from a reference point, we command the controller to move a cer- tain distance. when the motion is completed, we measure the actual dis- tance traveled with an external precision measuring device. the difference (the error) represents the positioning accuracy for that particular motion. because every application is different, we need to know the errors for all possible motions. since this is practically impossible, an acceptable com- promise is to perform the following test. starting from one end of the travel, we make small incremental moves and at every stop we record the position error. we perform this operation for the entire nominal travel. when finished, the error data is plotted on a graph similar to fig. 4.2. fig. 4.2 position error test. the difference between the highest and the lowest points on the graph is the maximum possible error that the motion device can have. this worst- case number is reported as the positioning accuracy. it guaranties the user that for any application, the positioning error will not be greater than this value. a b position max. error error 0 free datasheet http:// edh0162en1040 06/99 4.6 MM4005 motion control tutorial 4.2.4 local accuracy for some applications, it is important to know not just the positioning accuracy over the entire travel but also over a small distance. to illustrate this case, fig. 4.3-a and fig. 4.3-b show two extreme cases. fig. 4.3-a high accuracy for small motions. fig. 4.3-b low accuracy for small motions. both error plots from fig. 4.3-a and fig. 4.3-b have a similar maximum error. but, if you compare the maximum error for small distances, the sys- tem in fig. 4.3-b shows significantly larger values. for application requires high accuracy for small motions, the system in fig. 4.3-a is definitely pre- ferred. local error is a relative term that depends on the application; usually no local error value is given with the system specifications. the user should study the error plot supplied with the motion device and determine the approximate maximum local error for the specific application. 4.2.5 resolution 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. a b position max. error error 0 a b position max. error error 0 free datasheet http:// 4.7 edh0162en1040 06/99 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. the cause for this is in the mechanics. fig. 4.4 effect of stiction and elasticity on small motions. fig. 4.4 shows how excessive stiction and elasticity between the encoder and the load can cause the motion device to deviate from ideal motion when executing small motions. the effect of these two factors has a random nature. sometimes, for a small motion step of the motor, the load may not move at all. other times, the accumulated energy in the spring will cause the load to jump a larger dis- tance. the error plot will be similar to fig. 4.5. fig. 4.5 error plot. once the minimum incremental motion is defined, the next task is to quan- tify it. this is more difficult for two reasons: one is its random nature and the other is in defining what a completed motion represents. assume that we have a motion device with a 1 m resolution. if every time we command a 1 m motion the measured error is never greater than 2%, we will probably be very satisfied and declare that the minimum incremental motion is better than 1 m. if, on the other hand, the measured motion is sometimes as small as 0.1 m (a 90% error), we could not say that 1 m is a reliable motion step. the difficulty is in drawing the line between acceptable and unacceptable errors when performing a small motion step. the most common value for the maximum acceptable error for small motions is 20%, but each application ultimately has its own stan- dards. one way to solve the problem is to take a large number of measurements (a few hundred at minimum) for each motion step size and present them in a format that an operator can use to determine the minimum incremental motion by its own standards. error (motion increments) 1 1 position motion steps load motor/encoder elasticity stiction free datasheet http:// edh0162en1040 06/99 4.8 MM4005 motion control tutorial 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. 4.2.7 repeatability repeatability is the positioning variation when executing the same motion profile. assuming that we have a motion sequence that stops at a number of different locations, the repeatability is the maximum variation in posi- tion all targets when the same motion sequence is repeated a large number of times. it is a relative, not absolute, error between identical motions. 4.2.8 backlash (hysteresis) for all practical purposes, hysteresis and backlash have the same meaning for typical motion control systems. the term hysteresis has an electro- magnetic origin while backlash comes from mechanical engineering. both describe the same phenomenon: the error caused by approaching a point from a different direction. all parameters discussed up to now that involve the positioning error assumed that all motions were performed in the same direction. if we try to measure the positioning error of a certain target (destination), approaching the destination from different directions could make a significant differ- ence. in generating the plot in fig. 4.2 we said that the motion device will make a large number of incremental moves, from one end of travel to the other. if we command the motion device to move back and stop at the same loca- tions to take a position error measurement, we would expect to get an iden- tical plot, superimposed on the first one. in reality, the result could be similar to fig. 4.7. motion step size (in resolution increments) relative error 100% 80% 60% 40% 20% 1 2 3 4 5 6 7 8 9 10 11 free datasheet http:// 4.9 edh0162en1040 06/99 MM4005 motion control tutorial 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. to justify a little more why we call this error hysteresis, lets do the same graph in a different format (fig. 4.8). plotting the real versus the ideal posi- tion will give us a familiar hysteresis shape. fig. 4.8 real vs ideal position. 4.2.9 pitch, roll and yaw these are the most common angular error parameters for linear translation stages. they are pure mechanical errors and represent the rotational error of a stage carriage around the three axes. a perfect stage should not rotate around any of the axes, thus the pitch, roll and yaw should be zero. the commonly used representation of the three errors is shown in fig. 4.9. pitch is rotation around the y axis, roll is rotation around the x axis and yaw around the z axis. fig. 4.9 pitch, yaw and roll motion axes. pitch yaw roll x zy real position trajectory (ideal position) ideal plot real plot + position 0 hysteresis error free datasheet http:// edh0162en1040 06/99 4.10 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. when it rides up and down on the lead screw pitch, we call that pitch. and, when the carriage deviates left or right from the straight direction (on an imaginary y trajectory), we call it yaw. fig. 4.10 pitch, yaw and roll. 4.2.10 wobble this parameter applies only to rotary stages. it represents the deviation of the axis of rotation during motion. a simple form of wobble is a constant one, where the rotating axis generates a circle (fig. 4.11). fig. 4.11 wobble. a real rotary stage may have a more complex wobble, where the axis of rotation follows a complicated trajectory. this type of error is caused by the imperfections of the stage machining and/or ball bearings. 4.2.11 load capacity there are two types of loads that are of interest for motion control applica- tions: static and dynamic loads. the static load capacity represents the amount of load that can be placed on a stage without damaging or excessively deforming it. determining the load capacity of a stage for a particular application is more complicated than it may first appear. the stage orientation and the distance from the load to the carriage play a significant role. for a detailed description on how to calculate the static load capacity, please consult the motion con- trol catalog tutorial section. screw pitch roll pitch yaw free datasheet http:// 4.11 edh0162en1040 06/99 MM4005 motion control tutorial the dynamic load capacity refers to the motor s effort to move the load. the first parameter to determine is how much load the stage can push or pull. in some cases the two values could be different due to internal mechanical construction. the second type of dynamic load capacity refers to the maximum load that the stage could move with the nominal acceleration. this parameter is more difficult to specify because it involves defining an acceptable follow- ing error during acceleration. 4.2.12 maximum velocity the maximum velocity that could be used in a motion control system is determined by both motion device and driver. 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. 4.2.13 minimum velocity the minimum velocity usable with a motion device depends on the motion control system but also on the acceptable velocity regulation. first, the controller sets the slowest rate of motion increments it can make. the encoder resolution determines the motion increment size and then, the application sets a limit on the velocity ripple. to illustrate this, take the example of a linear stage with a resolution of 0.1 m. if we set the velocity to 0.5 m/sec, the stage will move 5 encoder counts in one second. but a properly tuned servo loop could move the stage 0.1 m in about 20 ms. the position and velocity plots are illustrated in fig. 4.12. fig. 4.12 position, velocity and average velocity. the average velocity is low but the velocity ripple is very high. depending on the application, this may be acceptable or not. with increasing velocity, the ripple decreases and the velocity becomes smoother. this example is even more true in the case of a stepper motor driven stage. the typical noise comes from a very fast transition from one step position to another. the velocity ripple in that case is significantly higher. in the case of a dc motor, adjusting the pid parameters to get a softer response will reduce the velocity ripple but care must be taken not to nega- tively affect other desirable motion characteristics. 1 s position velocitymoy average velocity free datasheet http:// edh0162en1040 06/99 4.12 MM4005 motion control tutorial 4.2.14 velocity regulation in some applications, for example scanning, it is important for the velocity to be very constant. in reality, there are a number of factors besides the controller that affect the velocity. as described in the minimum velocity definition, the speed plays a signifi- cant role in the amount of ripple generated, specially at low values. even if the controller does a perfect job by running with zero following error, imperfections in the mechanics (friction variation, transmission rip- ple, etc.) will generate some velocity ripple that can be translated to velocity regulation problems. depending on the specific application, one motor technology can be pre- ferred over the other. as far as the controller is concerned, the stepper motor version is the ideal case for a good average velocity regulation because the motor inherently follows precisely the desired trajectory. the only problem is the ripple caused by the actual stepping process. the best a dc motor controller can do is to approach the stepper motor s performance in average velocity regulation, but it has the advantage of sig- nificantly reduced velocity ripple, inherently and through pid tuning. if the dc motor driver implements a velocity closed loop through the use of a tachometer, the overall servo performance increases and one of the biggest beneficiary is the velocity regulation. usually only higher end motion control systems use this technology and the 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. 4.2.15 maximum acceleration the maximum acceleration is a complex parameter that depends as much on the motion control system as it does on application requirements. for stepper motors, the main concern is not to loose steps (or synchronization) during the acceleration. besides the motor and driver performance, the load inertia plays a significant role. for dc motor systems the situation is different. if the size of the following error is of no concern during the acceleration, high maximum acceleration values can be entered. the motion device will move with the highest natural acceleration it can (determined by the motor, driver, load inertia, etc.) and the errors will be just a temporary larger following error and a velocity over- shoot. in any case, special consideration should be given when setting the acceler- ation. though in most cases no harm will be done in setting a high accelera- tion value, avoid doing so if the application does not require it. the driver, motor, motion device and load undergo maximum stress during high accel- eration. 4.2.16 combined parameters very often a user looks at an application and concludes that he needs a cer- tain overall accuracy. this usually means that he is combining a number of individual terms (error parameters) into a single one. some of this com- bined parameters even have their own name, even though not all people mean the same thing by them: absolute accuracy, bi-directional repeatability, etc. the problem with these generalizations is that, unless the term is well defined and the testing closely simulates the application, the numbers could be of little value. free datasheet http:// 4.13 edh0162en1040 06/99 MM4005 motion control tutorial the best approach is to carefully study the application, extract from the specification sheet the applicable discrete error parameters and combine them (usually add them) to get the worst-case general error applicable to the specific case. this method not only offers a more accurate value but also gives a better understanding of the motion control system perfor- mance and helps pinpoint problems. also, due to the integrated nature of the MM4005 system, many basic errors can be significantly corrected by an other component of the loop. backlash, accuracy and velocity regulation are just a few examples where the controller can improve motion device performance. control loops when talking about motion control systems, one of the most important questions is the type of servo loop implemented. the first major distinction is between open and closed loops. of course, this is of particular interest when driving stepper motors. as far as the dc servo loops, the pid type is by far the most widely used. the MM4005 implements a pid servo loop with velocity feed-forward for both dc and stepper-motor motion devices. it is not just a static closed loop, when the motion is stopped, but a fully dynamic one. the basic diagram of a servo loop is shown in fig. 4.13. besides the com- mand interpreter, the main two parts of a motion controller are the trajec- tory generator and the servo controller. the first generates the desired trajectory and the second one controls the motor to follow it as closely as possible. fig. 4.13 servo loop. 4.3.1 pid servo loops the pid term comes from the proportional, integral and derivative gain fac- tors that are at the basis of the control loop calculation. the common equation given for it is: k p e + k i e dt + k d de dt where k p = proportional gain factor. k i = integral gain factor. k d = derivative gain factor. e = instantaneous following error. command interpreter trajectory generator motion controller servo controller driver motor encoder 4.3 free datasheet http:// edh0162en1040 06/99 4.14 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. the following paragraphs explain the pid components and their operation. 4.3.1.1 p loop lets start with the simplest type of closed loop, the p (proportional) loop. the diagram in fig. 4.14 shows its configuration. fig. 4.14 p loop. every servo cycle, the actual position, as reported by the encoder, is com- pared to the desired position generated by the trajectory generator. the difference e is the positioning error (the following error). amplifying it (multiplying it by k p ) generates a control signal that, converted to an ana- log signal, is sent to the motor driver. there are a few conclusions that could be drawn from studying this circuit: the motor control signal, thus the motor voltage, is proportional to the following error. there must be a following error in order to drive the motor. higher velocities need higher motor voltages and thus higher following errors. at stop, small errors cannot be corrected if they don t generate enough voltage for the motor to overcome friction and stiction. increasing the k p gain reduces the necessary following error but too much of it will generate instabilities and oscillations. 4.3.1.2 pi loop to eliminate the error at stop and during long constant velocity motions (usually called steady-state error), an integral term can be added to the loop. this term integrates (adds) the error every servo cycle and the value, multiplied by the k i gain factor, is added to the control signal (fig. 4.15). fig. 4.15 pi loop. x k p x k i e trajectory generator motion controller servo controller driver motor encoder e e trajectory generator motion controller servo controller driver motor encoder x k p free datasheet http:// 4.15 edh0162en1040 06/99 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. unfortunately, the integral term also has a negative side, a severe de-stabi- lizing effect on the servo loop. in the real world, a simple pi loop is usually undesirable. 4.3.1.3 pid loop the third term of the pid loop is the derivative term. it is defined as the dif- ference between the following error of the current servo cycle and of the pre- vious one. if the following error does not change, the derivative term is zero. fig. 4.16 pid loop. fig. 4.16 shows the pid servo loop diagram. the derivative term is added to the proportional and integral one. all three process the following error in their own way and, added together, form the control signal. the derivative term adds a damping effect which prevents oscillations and position overshoot. 4.3.2 feed-forward loops as described in the previous paragraph, the main driving force in a pid loop is the proportional term. the other two correct static and dynamic errors associated with the closed loop. taking a closer look at the desired and actual motion parameters and at the characteristics of the dc motors, some interesting observations can be made. for a constant load, the velocity of a dc motor is approximately pro- portional with the voltage. this means that for a trapezoidal velocity profile, for instance, the motor voltage will have also a trapezoidal shape (fig. 4.17). fig. 4.17 trapezoidal velocity profile. time desired velocity motor voltage x k p x k i x k d de dt e trajectory generator motion controller servo controller driver motor encoder e free datasheet http:// edh0162en1040 06/99 4.16 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 vff factor and feed it to the motor driver. if the scaling is done properly, the right amount of voltage is sent to the motor to get the desired velocities, without the need for a closed loop. because the signal is derived from the velocity pro- file and it is being sent directly to motor driver, the procedure is called velocity feed-forward. of course, this looks like an open loop, and it is (fig. 4.18). but, adding this signal to the closed loop has the effect of significantly reducing the work the pid has to do, thus reducing the overall following error. the pid now has to correct only for the residual error left over by the feed-forward sig- nal. fig. 4.18 pid loop with feed-forward. there is an other special note that has to be made about the feed-forward method. the velocity is approximately proportional to the voltage and only for constant loads. but this is true only if the driver is a simple voltage amplifier or current (torque) driver. a special case is when the driver has its own velocity feedback loop from a tachometer (fig. 4.19). fig. 4.19 tachometer-driven pidf loop. x k p x k i x k d x k vff de dt e trajectory generator motion controller servo controller driver motor encoder tachometer e x k p x k i x k d x k vff de dt e trajectory generator motion controller servo controller driver motor encoder e free datasheet http:// 4.17 edh0162en1040 06/99 MM4005 motion control tutorial the tachometer is a device that outputs a voltage proportional with the velocity. using its signal, the driver can maintain the velocity to be propor- tional to the control signal. if such a driver is used with a velocity feed-for- ward algorithm, by properly tuning the kvff parameter, the feed-forward signal could perform an excellent job, leaving very little for the pid loop to do. 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 velocity. the results are similar to a tachometer feedback but at a fraction of a cost. the drawback is that each motor type needs a specially tuned driver card but, because it is designed to work in a pre-defined system using known motion devices, its operation is totally transparent to the user. all driver cards are pre-tuned and clearly labeled and no adjustments are required (or allowed). motion profiles when talking about motion commands we refer to certain strings sent to a motion controller that will initiate a certain action, usually a motion. there are a number of common motion commands which are identified by name. the following paragraphs describe a few of them. 4.4.1 move a move is a point-to-point motion. on execution of a move motion com- mand, the motion device moves from the current position to a desired des- tination. the destination can be specified either as an absolute position or as a relative distance from the current position. when executing a move command, the motion device will accelerate until the velocity reaches a pre-defined value. then, at the proper time, it will start decelerating so that when the motor stops, the device is at the cor- rect position. the velocity plot of this type of motion will have a trape- zoidal shape (fig. 4.20). for this reason, this type of motion is called a trapezoidal motion. fig. 4.20 trapezoidal motion profile. the position and acceleration profiles relative to the velocity are shown in fig. 4.21. time desired velocity 4.4 free datasheet http:// edh0162en1040 06/99 4.18 MM4005 motion control tutorial fig. 4.21 position and acceleration profiles. besides the destination, the acceleration and the velocity of the motion (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. 4.4.2 jog when setting up an application, it is often necessary to move a devices manually while observing motion. the easy way to do this without resort- ing to specialized input devices such as joysticks or track-wheels is to use simple push-button switches. this type of motion is called a jog. when a jog button is pressed the selected axis starts moving with a pre-defined velocity. the motion continues only while the button is pressed and stops immediately after its release. the MM4005 offers two jog speeds. the high speed is programmable and the low speed is ten times smaller. the jog acceleration is also ten times smaller than the programmed maximum acceleration values. 4.4.3 home search home search is a specific motion routine that is useful for most types of applications. its goal is to find a specific point in travel relative to the mounting base of the motion device very accurately and repeatably. the need for this absolute reference point is twofold. first, in many applica- tions it is important to know the exact position in space, even after a power-off cycle. secondly, to protect the motion device from hitting a trav- el obstruction set by the application (or its own travel limits), the con- troller uses programmable software limits. to be efficient though, the software limits must be placed accurately in space before running the application. to achieve this precise position referencing, the MM4005 motion control system executes a unique sequence of moves. first, lets look at the hardware required to determine the position of a motion device. the most common (and the one supported by the MM4005) are incremental encoders. by definition, these are encoders that can tell only relative moves, not absolute position. the controller keeps track of position by incrementing or decrementing a dedicated counter according to the information received from the encoder. since there is no absolute position information, position zero is where the controller was powered on (and the position counter reset). position acceleration time desired velocity free datasheet http:// 4.19 edh0162en1040 06/99 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. if the motion device is using a linear scale as position encoder, the home switch is usually placed on the same scale and read with the same accuracy. if, on the other hand, a rotary encoder is used, the problem becomes more complicated. to have the same accuracy, a mark on the encoder disk could be used (called index pulse) but because it repeats itself every revolution, it does not define a unique point over the entire travel. an origin switch, on the other hand, placed in the travel of the motion device is unique but not accurate (repeatable) enough. the solution is to use both, following a search algorithm. fig. 4.22 origin switch and encoder index pulse. an origin switch (fig. 4.22) separates the entire travel in two areas: one for which it has a high level and one for which it is low. the most important part of it is the transition between the two areas. also, looking at the origin switch level, the controller knows on which side of the transition it current- ly is and which way to move to find it. the task of the home search routine is to identify one unique index pulse as the absolute position reference. this is done by first finding the origin switch transition and then the very first index pulse (fig. 4.23). fig. 4.23 slow-speed origin switch search. so far, we can label the two motion segments d and e. during d the con- troller is looking for the origin switch transition and during e for the index pulse. to guarantee the best accuracy possible, both d and e segments are performed at a very low speed and without a stop in-between. also, during e the display update is suppressed to eliminate any unnecessary overhead. the routine described above could work but has one problem. using the low speeds, it could take a very long time if the motion device happens to start from the opposite end of travel. to speed things up, we can have the motion device move fast in the vicinity of the origin switch and then per- form the two slow motions, d and e. the new sequence is shown in fig. 4.24. origin switch e d motion encoder index pulse origin switch encoder index pulse free datasheet http:// edh0162en1040 06/99 4.20 MM4005 motion control tutorial fig. 4.24 high/low-speed origin switch search. motion segment b is performed at high speed, with the pre-programmed home search speed. when the origin switch transition is encountered, the motion device stops (with an overshoot), reverses direction and looks for it again, this time with half the velocity (segment c). once found, it stops again with an overshoot, reverses direction and executes d and e with one tenth of the programmed home search speed. in the case when the motion device starts from the other side of the origin switch transition, the routine will look like fig. 4.25. 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. caution the home search routine is a very important procedure for the position- ing accuracy of the entire system and it requires full attention from the controller. do not interrupt or send other commands during its execu- tion, unless it is for emergency purposes. e d c a b origin switch encoder index pulse motion origin switch e d c encoder index pulse b motion free datasheet http:// 4.21 edh0162en1040 06/99 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). fig. 4.26 encoder quadrature output. the output has two signals, commonly known as channel a and channel b. some encoders have analog outputs (sine - cosine signals) but the digital type are more widely used. both channels have a 50% duty cycle and are out of phase by 90 . using both phases and an appropriate decoder, a motion controller can identify four different areas within one encoder cycle. this type of decoding is called x4 (or quadrature decoding), mean- ing that the encoder resolution is multiplied by 4. for example, an encoder with 10 m phase period can offer a 2.5 m resolution when used with a x4 type decoder. physically, an encoder has two parts: a scale and an read head. the scale is an array of precision placed marks that are read by the head. the most commonly used encoders, optical encoders, have a scale made out of a series of transparent and opaque lines placed on a glass substrate or etched in a thin metal sheet (fig. 4.27). fig. 4.27 optical encoder scale. the encoder read head has three major components: a light source, a mask and a detector (fig. 4.28). the mask is a small scale-like piece, having iden- tically spaced transparent and opaque lines. a b 1234 4.5 free datasheet http:// edh0162en1040 06/99 4.22 MM4005 motion control tutorial 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. 4.29). fig. 4.29 single-channel optical encoder scale and read head assembly. the detector signal is similar to a sine wave. converting it to a digital wave- form, we get the desired encoder signal. but, this is only one phase, only half of the signal needed to get position information. the second channel is obtained the same way but from a mask that is placed 90% out of phase rel- ative to the first one (fig. 4.30). detector light source free datasheet http:// 4.23 edh0162en1040 06/99 MM4005 motion control tutorial fig. 4.30 two-channel optical encoder scale and read head assembly. there are two basic types of encoders, linear and rotary. the linear encoders, also called linear scales, are used to measure linear motion directly. this means that the physical resolution of the scale will be the actual positioning resolution. this is their main drawback since technologi- cal limitations prevent them from having better resolutions than a few microns. to get higher resolutions in linear scales, a special delicate cir- cuitry must be added, called scale interpolator. other technologies like interferometry or holography can be used but they are significantly more expensive and need more space. the most popular encoders are rotary. using gear reduction between the encoder and the load, significant resolution increases can be obtained at low cost. but the price paid for this added resolution is higher backlash. in some cases, rotary encoders offer high resolution without the backlash penalty. for instance, a linear translation stage with a rotary encoder on the lead screw can easily achieve 1 m resolution with negligible backlash. note for rotary stages, a rotary encoder measures the output angle directly. in this case, the encoder placed on the rotating platform has the same advantages and disadvantages of the linear scales. 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. the most common ones are rotary but in some applications, linear motors are preferred. though the MM4005 can drive both stepper and dc linear motors, the standard motion device family supports only rotary motors. 4.6 free datasheet http:// edh0162en1040 06/99 4.24 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. in order to make a motion, another phase must be energized which, in turn, will find a new stable point, thus making a small incremental move - a step. fig. 4.31 stepper motor operation. fig. 4.31 shows the basics of a stepper motor. when the winding is ener- gized, the magnetic flux will turn the rotor until the rotor and stator teeth line up. this is true if the rotor core is made out of soft iron. regardless of the current polarity, the stator will try to pull-in the closest rotor tooth. but, if the rotor is a permanent magnet, depending on the current polarity, the stator will pull or push the rotor tooth. this is a major distinction between two different stepper motor technologies: variable reluctance and permanent magnet motors. the variable reluctance motors are usually small, low cost, large step angle stepper motors. the permanent magnet technology is used for larger, high precision motors. the stepper motor advances to a new stable position by means of several stator phases that have the teeth slightly offset from each other. to illus- trate this, fig. 4.32 shows a stepper motor with four phases and, to make it easier to follow, it is drawn in a linear fashion (as a linear stepper motor). fig. 4.32 four-phase stepper motor. the four phases, from a to d, are energized one at a time (phase a is shown twice). the rotor teeth line up with the first energized phase, a. if the current to phase a is turned off and b is energized next, the closest rotor tooth to phase b will be pulled in and the motor moves one step for- ward. if, on the other hand, the next energized phase is d, the closest rotor tooth is in the opposite direction, thus making the motor to move in reverse. phase c cannot be energized immediately after a because it is exactly between two teeth, so the direction of movement is indeterminate. to move in one direction, the current in the four phases must have the fol- lowing timing diagram: abcda free datasheet http:// 4.25 edh0162en1040 06/99 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. these steps are called full steps. they are the largest motion incre- ment the stepper motor can make. running the motor in this mode is called full-stepping. what happens if we energize two neighboring phases simultaneously (fig. 4.34)? fig. 4.34 energizing two phases simultaneously. both phases will pull equally on the motor will move the rotor only half of the full step. if the phases are always energized two at a time, the motor still makes full steps. but, if we alternate one and two phases being activat- ed simultaneously, the result is that the motor will move only half a step at a time. this method of driving a stepper motor is called half-stepping. the advantage is that we can get double the resolution from the same motor with very little effort on the driver s side. the timing diagram for half-step- ping is shown in fig. 4.35. fig. 4.35 timing diagram, half-stepping motor. now, what happens if we energize the same two phases simultaneously but with different currents? for example, lets say that phase a has the full cur- rent and phase b only half. this means that phase a will pull the rotor tooth twice as strongly as b does. the rotor tooth will stop closer to a, somewhere between the full step and the half step positions (fig. 4.36). a 12345678 b c d abcda a b c d free datasheet http:// edh0162en1040 06/99 4.26 MM4005 motion control tutorial fig. 4.36 energizing two phases with different intensities. the conclusion is that, varying the ratio between the currents of the two phases, we can position the rotor anywhere between the two full step loca- tions. to do so, we need to drive the motor with analog signals, similar to fig. 4.37. fig. 4.37 timing diagram, continuous motion (ideal). but a stepper motor should be stepping. the controller needs to move it in certain known increments. the solution is to take the half-sine waves and digitize them so that for every step command, the currents change to some new pre-defined levels, causing the motor to advance one small step (fig. 4.38). fig. 4.38 timing diagram, mini-stepping. this driving method is called mini-stepping or micro-stepping. for each step command, the motor will move only a fraction of the full step. motion steps are smaller so the motion resolution is increased and the motion rip- ple (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. however, mini-stepping comes at a price. first, the driver electronics are significantly more complicated. secondly, the holding torque for one step is reduced by the mini-stepping factor. in other words, for a x10 mini-step- ping, it takes only 1/10 of the full-step holding torque to cause the motor to have a positioning error equivalent to one step (a mini-step). to clarify a little what this means, lets take a look at the torque produced by a stepper motor. for simplicity, lets consider the case of a single phase being energized (fig. 4.39). a b c d a b c d abcda free datasheet http:// 4.27 edh0162en1040 06/99 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 more teeth misalignment exists, the larger the generated torque. fig. 4.40 external force applied. if the misalignment keeps increasing, at some point, the torque peaks and then starts diminishing again such that, when the stator is exactly between the rotor teeth, the torque becomes zero again (fig. 4.41). fig. 4.41 point unstable point. this is an unstable point and any misalignment or external force will cause the motor to move one way or another. jumping from one stable point to another is called missing steps, one of the most critiqued characteristics of stepper motors. the torque diagram versus teeth misalignment is shown in fig. 4.42. the maximum torque is obtained at one quarter of the tooth spacing, which is equivalent to one full step. fig. 4.42 torque and tooth alignment. torque free datasheet http:// edh0162en1040 06/99 4.28 MM4005 motion control tutorial this torque diagram is accurate even when the motor is driven with half-, mini- or micro-steps. 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 advantages stepper motors are primarily intended to be used for low cost, micro- processor controlled positioning applications. due to some of their inher- ent characteristics, they are preferred in many industrial and laboratory applications. some of their main advantages are: low cost full-step, open loop implementation. no servo tuning required. good position lock-in. no encoder necessary. easy velocity control. retains some holding torque even with power off. no wearing or arcing commutators. preferred for vacuum and explosive environments. 4.6.1.2 disadvantages some of the main disadvantages of the stepper motors are: could loose steps (synchronization) in open loop operation. requires current (dissipates energy) even at stop. generates higher heat levels than other types of motors. moves from one step to another are made with sudden motions. large velocity ripples, especially at low speeds, causing noise and possi- ble resonances. load torque must be significantly lower than the motor holding torque to prevent stalling and missing steps. limited high speed. 4.6.2 dc motors a dc motor is similar to a permanent magnet stepper motor with an added internal phase commutator (fig. 4.43). fig. 4.43 dc motor. applying current to phase b pulls in the rotor pole. if, as soon as the pole gets there, the current is switched to the next phase (c), the rotor will not stop but continue moving to the next target. repeating the current switching process will keep the motor moving continuously. the only way to stop a dc motor is not to apply any current to its windings. due to the permanent magnets, reversing the current polarity will cause the motor to move in the opposite direction. of course, there is a lot more to the dc motor theory but this description gives you a general idea on how they work. a few other characteristics to n s abcde free datasheet http:// 4.29 edh0162en1040 06/99 MM4005 motion control tutorial keep in mind are: for a constant load, the velocity is approximately proportional to the voltage applied to the motor. for accurate positioning, dc motors need a position feed-back device. constant current generates approximately constant torque. if dc motors are turned externally (manually, etc.) they act as genera- tors. 4.6.2.1 advantages dc motors are preferred in many applications for the following reasons: smooth, ripple-free motion at any speed. high torque per volume. no risk of loosing position (in a closed loop). higher power efficiency than stepper motors. no current requirement at stop. higher speeds can be obtained than with other types of motors. 4.6.2.2 disadvantages some of the dc motor s disadvantages are: requires a position feedback encoder and servo loop controller. requires servo loop tuning. commutator may wear out in time. not suitable for high vacuum application due to the commutator arcing. hardware and setup are more costly than for an open loop stepper motor (full stepping). drivers motor drivers must not be overlooked when judging a motion control sys- tem. 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. the driver hardware is one driver card per axis that installs easily in the rear of the controller. each card has an end-plate with the 25 pin d-sub motor connector and an identifying label. always make sure that the motor specified on the driver card label match- es the label on the motion device. there are important advantages to having an integrated controller/driver. besides reducing space and cost, integration also offers tighter coordina- tion between the two units so that the controller can more easily monitor and control the driver s operation. driver types and techniques varying widely, in the following paragraphs we will discuss only those implemented in the MM4005. 4.7.1 stepper motor drivers driving a stepper motor may look simple at first glance. for a motor with four phases, the most widely used type, we need only four switches (tran- sistors) controlled directly by a cpu (fig. 4.44). 4.7 free datasheet http:// edh0162en1040 06/99 4.30 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. 4.45). fig. 4.45 current build-up in phase. when the pulse rate is fast, the current does not have time to reach the desired value before it is turned off and the total torque generated is only a fraction of the nominal one (fig. 4.46). fig. 4.46 effect of a short on time on current. how fast the current reaches its nominal value depends on three factors: the winding s inductance, resistance and the voltage applied to it. the inductance cannot be reduced. but the voltage can be temporarily increased to bring the current to its desired level faster. the most widely used technique is a high voltage chopper. if, for instance, a stepper motor requiring only 3v to reach the nominal cur- rent is connected momentarily to 30 v, it will reach the same current in only 1/10 of the time (fig. 4.47). phase on nominal current current free datasheet http:// 4.31 edh0162en1040 06/99 MM4005 motion control tutorial fig. 4.47 motor pulse with high voltage chopper. 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. it can drive the following motors: motor mode current voltage (a) (v) ue16pp half-step 0.2 30 ue31pp full-step 0.4 30 the other type of driver card is the mm78pp. it is designed to drive four phase permanent magnet motors using a x10 mini-stepping technique. the different configurations are for the following motors: motor mode current voltage (a) (v) ue41pp x10 mini-step 0.8 30 ue62pp x10 mini-step 1.6 60 ue63pp x10 mini-step 2.2 60 4.7.2 dc motor drivers there are three major categories of dc motor drivers. the simplest one is a voltage amplifier (fig. 4.48). fig. 4.48 dc motor voltage amplifier. m e vn control signal 10 v phase on nominal current free datasheet http:// edh0162en1040 06/99 4.32 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. the controller does all the work in trying to minimize the following error but load variations make this task very diffi- cult. the second type of dc motor driver is the current driver, also called a torque driver (fig. 4.9). fig. 4.49 dc motor current driver. in this case, the control signal voltage defines the motor current. the dri- ver constantly measures the motor current and always keeps it proportion- al to the input voltage. this type of driver is usually preferred over the previous one in digital control loops, offering a stiffer response and thus reduces the dynamic following error. but, when the highest possible performance is required, the best choice is always the velocity feedback driver. this type of driver requires a tachome- ter, an expensive and sometimes difficult to add device (fig. 4.50). fig. 4.50 dc motor velocity feedback driver. the tachometer, connected to the motor s rotor, outputs a voltage directly proportional with the motor velocity. the circuit compares this voltage with the control signal and drives the motor so that the two are always equal. this creates a second closed loop, a velocity loop. motions per- formed with such a driver are very smooth at high and low speeds and have a smaller dynamic following error. general purpose velocity feedback drivers have usually two adjustments: tachometer gain and compensation (fig. 4.51). m t e v = velocity control signal 10 v m e in control signal 10 v free datasheet http:// 4.33 edh0162en1040 06/99 MM4005 motion control tutorial fig. 4.51 dc motor tachometer gain and compensation. the tachometer gain is used to set the ratio between the control voltage and the velocity. 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. this circuit measures the applied voltage and current, adjusts for the motor s resistance and back-emf, and outputs a voltage proportional to the velocity. to guarantee the best setup, no adjustments are available on board. each driver card is configured with fixed components for a particular motor and is identified as such with a label on the panel. this means that a driver card can be used only with the specified motor. another motor, even one with similar parameters, will not work properly and could cause serious oscillations. the voltage and current marked on the label are not the actual values used by the motor. they represent the limits set by the driver and often the motor uses only a fraction of them. the MM4005 uses two types of dc motor drivers, one for low-power motors and one for high-power motors. the first one is called mm16cc and can drive the following small motors: motor current voltage (a) (v) ue16cc 0.1 12 ue17cc 0.22 12 ue31cc 0.15 24 ue33cc 0.3 24 the second type of driver card is the mm78cc, used for larger dc motors: motor current voltage (a) (v) ue404cc 124 ue404s 324 ue511cc 248 ue511s 2.7 48 m t e v = velocity control signal 10 v tachometer gain compensation free datasheet http:// edh0162en1040 06/99 4.34 MM4005 motion control tutorial free datasheet http:// section 5 trajectory functions tutorial free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 5.1 edh0162en1040 ?06/99 MM4005 4-axis motion controller/driver table of contents section 5 ? trajectory functions tutorial 5.1 definition of terms ................................................................................5.3 5.1.1 trajectory.....................................................................................5.3 5.1.2 trajectory element .....................................................................5.3 5.1.3 trajectory vector........................................................................5.3 5.1.4 vector velocity ............................................................................5.3 5.1.5 vector acceleration ....................................................................5.3 5.2 trajectory description and conventions............................................5.4 5.3 geometric conventions.........................................................................5.4 5.4 defining trajectory elements ...............................................................5.5 5.4.1 defining lines ..............................................................................5.6 5.4.2 defining arcs................................................................................5.6 5.5 programming a trajectory....................................................................5.8 5.6 trajectory element parameters ...........................................................5.9 5.7 trajectory-specific commands ..........................................................5.10 5.7.1 trajectory setup commands ...................................................5.10 5.7.2 trajectory elements definition commands...........................5.10 5.7.3 reporting commands ...............................................................5.10 5.7.4 trajectory synchronization commands ................................5.10 5.7.5 execution of a trajectory.........................................................5.10 free datasheet http:// MM4005 4-axis motion controller/driver edh0162en1040 06/99 5.2 free datasheet http:// 5.3 edh0162en1040 06/99 MM4005 4-axis motion controller/driver section 5 trajectory functions tutorial 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. 5.1.2 trajectory element a segment of a trajectory that can be defined by a simple geometric shape, in our case a line or an arc of circle. 5.1.3 trajectory vector the tangent to the trajectory in any particular point. 5.1.4 vector velocity the linear velocity (the speed) along the trajectory during its execution. 5.1.5 vector acceleration the tangential linear acceleration used to start and end a trajectory. (acceleration and deceleration are equal by default). 5.1 free datasheet http:// edh0162en1040 06/99 5.4 MM4005 trajectory functions tutorial 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. this means that the controller can have only one trajectory ready to be executed. once one trajectory is started, it executes in background allowing the other axes and peripherals to work independently and simultaneously. each trajectory must have a beginning and an end. endless (infinite) trajectories are not allowed. the size of a trajectory is limited to 100 trajectory elements. this value is arbitrary and should satisfy most complex applications. the trajectory definition process must ensure a continuous motion path to avoid any excessive accelerations and shocks that could damage the stages. the line segments are true linear interpolations: y = ax + b the arc segments must be true arc of circles: (x - x 0 ) 2 + (y - y 0 ) 2 = r 2 a trajectory is always defined relative to the pre-defined stage units. to avoid confusion, it is recommended to use same units of displacement on both axes. each trajectory is defined relative to its starting point. thus, every start- ing point has the coordinates 0, 0. all trajectories start executing from the current x and y positions. to execute a trajectory from a desired location, the two axes correspond- ing to x and y must be moved using the standard point-to-point com- mands (pa, pr, ). before executing a trajectory, the controller verifies if its definition does infringe on any pre-defined motion rules (excessive tangent discontinu- ity, excessive acceleration, travel limits, ). trajectories can be defined in both immediate and program mode. geometric conventions the coordinate system is an x-y orthogonal system. any valid motion axis can be assigned to be the x or y axis. after executing a trajectory, new axes can be assigned to x or y axis. the origin of the x-y coordinate system is in the lower left corner, with positive values up and to the right. all angles are measured in degrees, represented as floating points num- bers. angle origin and sign follow the trigonometric convention: positive angles are measured counter-clockwise. 5.3 5.2 free datasheet http:// 5.5 edh0162en1040 06/99 MM4005 trajectory functions tutorial defining trajectory elements 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. the elements are seamed together automatically and the entire trajectory is verified before execution to guarantee its definition conforms to all rules. fig. 5.1 ?trajectory example. figure 5.1 shows a trajectory example. every trajectory must have an entry angle defined. if the first element is an arc of circle, the entry angle is the tangent to the first point of the arc. each element defined is identified by a number, starting from 1. the refer- ences for synchronizing external events with the trajectory execution are the starting and ending points of these elements. line and arc elements can be sequenced in any order. arcs can be followed by arcs or lines and lines by arcs or other lines. an arc is automatically placed by the controller such that its entry angle corresponds to the exit angle of the preceding element to insure the continuity of the trajectory. but, when defining a line by its x-y end point, this responsibility falls on the user. the end coordinates of the new line must be chosen such that the angle it defines is identical to the exit angle of the previous trajectory element. since we are dealing with a coordinate system with finite resolution - the encoder resolu- tion - getting a perfect match of the two angles is not always possible. for this reason, a window of acceptable angle mismatch is defined, called maximum angle discontinuity . this new parameter is measured in degrees and has a range of 0.001 to 10 . a trajectory can thus theoretically be build out of straight lines that have less than 10 angle difference, as shown in figure 5.2. fig. 5.2 contouring with lines only. this practice is not recommended since each angle of discontinuity corre- sponds to an instantaneous velocity change on both axes, which repre- sents an infinite acceleration. the result is a shock (jerk) felt by the stages and the load and a temporary following error pulse. the larger the angle of discontinuity, the larger the jerk and the following error will be. special consideration must be given to both of these effects when increasing the maximum discontinuity angle from its 0.001 default value. 1 2 3 4 5 arcs lines entry angle 5.4 free datasheet http:// edh0162en1040 06/99 5.6 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 trajectory elements. 5.4.1 defining lines there are two ways to define a line of a trajectory. the first one is to speci- fy the x-y end coordinates (the starting point is always the end point of the previous element). this is the most common procedure found in the indus- try (fig. 5.3). fig. 5.3 line to x-y. as described previously, when using this method the user must make an extra effort in making sure the maximum discontinuity angle is not exceeded. a second mode of defining a straight line in a trajectory is illustrated in figure 5.4. fig. 5.4 line to x or y. using the previous element s exit angle (tangent), the controller can execute a line to the specified x coordinate (fig. 5.4-a) or y coordinate (fig. 5.4-b). this method simplifies the programming job and guaranties the best trajec- tory elements fit. 5.4.2 defining arcs arcs can also be defined in two different ways. the first one is more conven- tional, where a radius and the sweep angle will define the arc (fig 5.5). fig. 5.5 arc defined with radius and angle. x 5.4-a y 5.4-b x, y free datasheet http:// 5.7 edh0162en1040 06/99 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. the second method of defining an arc is to specify the x-y coordinates of the end point. using the exit angle of the previous element, the controller will determine the unique arc that fits the parameters (fig. 5.6). fig. 5.6 arc defined with end point. this automatic mode of describing an arc can simplify the process of geo- metrically defining a trajectory, significantly reducing the programming time. a particular application is in approximating an irregular path (fig. 5.7). fig. 5.7 contouring with arcs. by specifying an entry angle and a number of x-y coordinates, the con- troller will automatically perform a circular interpolation that closely approximates the desired trajectory. x, y free datasheet http:// edh0162en1040 06/99 5.8 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. | define trajectory. | et | execute trajectory. trajectory definition commands and other controller commands can be intermixed. even though the controller will extract the appropriate com- mands to build the trajectory, for the clarity of the program this prac- tice is not recommended. nt | start new trajectory definition. | define trajectory. | | other commands. | | define trajectory. | | other commands. | et | execute trajectory. a trajectory can be defined once and executed any number of times. to allow this feature, all trajectories are defined relative to the starting point. nt | start new trajectory definition. | define trajectory. | et | execute trajectory. | xxpann | move to new trajectory start location. et | execute trajectory. during the trajectory execution, the designated axes are unavailable for point-to-point commands. once a trajectory is defined, it can be edited by deleting the last element and inserting or appending new elements. nt | start new trajectory definition. | define trajectory. | et | execute trajectory. | el | erase last trajectory element.. lxnn | add new trajectory element (line to nn). xxpann | move to new trajectory start location. et | execute same trajectory at new location. 5.5 free datasheet http:// 5.9 edh0162en1040 06/99 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. 2ax | assign axis #2 to the x coordinate. 4ay | assign axis #4 to the y coordinate. | define trajectory. | xxpann | move axis #2 to absolute position 10. et | execute trajectory. before executing a trajectory, the controller verifies, among other things, if the defined geometry will cause, at any time, any axes to exceed the individual maximum allowed velocities or accelerations. if so, it will calculate the highest acceptable vector velocity and use it dur- ing the execution. the actual vector velocity that will be used can be queried remotely. nt | start new trajectory definition. vv20 | set vector velocity to 20 units/s. | define trajectory. | et | execute trajectory. xv | read actual vector velocity in use. xv12.736 | controller returns actual vector velocity used. only one trajectory can be defined and be active at a time. nt command erases any old trajectory and starts defining a new one. any new trajec- tory-specific command will be added or affect the existing defined tra- jectory and will be active at the next execution. trajectory element parameters both line and arc parameters can be entered using different commands. most differences are in the type and number of parameters used to describe one trajectory element. many commands require only the mini- mum number of commands that geometrically define one element. the controller always calculates and keeps track of all element parameters. using the lt command, the complete set of trajectory element parameters can be listed. this is an excellent tool in developing and debugging com- plex trajectories. 5.6 free datasheet http:// edh0162en1040 06/99 5.10 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. xx ax assign a physical axis as x geometric axis. xx ay assign a physical axis as y geometric axis. fa nn define the tangent angle for the first point. nt start definition of a new trajectory. 5.7.2 trajectory elements definition commands ca nn define sweep angle and build an arc of circle = (cr, ca). cr nn define radius for anarc of circle = (cr, ca). cx nn define x position to reach with an arc of circle = (cx, cy). cy nn define y position to reach and build an arc of circle = (cx, cy). el erase the last element of trajectory. lx nn define x position and build a line segment = (lx, tangent). ly nn define y position and build a line segment = (ly, tangent). mx nn define x position for a line segment = (mx, my). my nn define y position and build a line segment = (mx, my). 5.7.3 reporting commands at tell the element number under execution. xx lt extended list of the trajectory. xa tell the current maximum allowed angle of discontinuity. xe tell the current element. xt tell number of elements in the trajectory. xu nn tell the vector acceleration on trajectory (trajectory acceleration). xv nn tell the vector velocity on trajectory (trajectory velocity). 5.7.4 trajectory synchronization commands nb nn set trajectory element where the generation of pulses starts. ne nn set trajectory element where the generation of pulses ends. ni nn set step (curvi-linear distance) between synchronisation pulses. nn nn set number of synchronisation pulses to generate. ns allow generation of trajectory. wi nn wait for a trajectory (curvi-linear) length. wn nn wait for a element of trajectory. 5.7.5 execution of a trajectory el erase the last element of trajectory. et execution of trajectory. vs nn define the vector acceleration on trajectory (trajectory acceleration). vv nn define the vector velocity on trajectory (trajectory velocity). 5.7 free datasheet http:// section 6 feature descriptions tutorial free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 6.1 edh0162en1040 ?06/99 MM4005 4-axis motion controller/driver table of contents section 6 ? feature descriptions tutorial 6.1 synchronizing events to motion ..........................................................6.3 6.1.1 pulses synchronized to one axis..............................................6.3 6.1.2 pulses synchronized to a trajectory........................................6.5 6.1.3 synchronizing events to trajectory elements ........................6.6 6.1.4 synchronizing events to trajectory position..........................6.7 6.2 synchronized axes (electronic gearing) ............................................6.8 6.3 automatic program execution on power-on: eo command or from the front panel .......................................................................................6.9 6.4 continuous motion: mv command......................................................6.9 6.5 automatic displacement units change: sn command or from the front panel ............................................................................................6.10 6.6 stage type selection: sf command or from the front panel .........6.11 6.7 reading parameters with ? ..............................................................6.11 6.8 error reporting: td command ..........................................................6.13 6.9 integral gain saturation limit: ks command ...................................6.13 6.10 program editing: ep command ..........................................................6.13 6.11 firmware updates ................................................................................6.13 6.12 joystick..................................................................................................6.14 6.13 changing the display precision: np command or from the front panel ................................................................................................................6.15 6.14 periodic display mode: cd command or from the front panel.....6.15 6.15 $ parameter........................................................................................6.16 6.16 asynchronous acquisition: aq command .......................................6.17 6.17 executing sub-routines in a program: ex command......................6.18 6.18 load communications mode: cm command ...................................6.19 6.19 analog input/output: am, ra, yo, yr commands ..........................6.19 6.20 default mode: s-curve profile...........................................................6.20 6.21 integrator factor saturation level in position pid loop corrector: ks command.........................................................................................6.21 free datasheet http:// MM4005 4-axis motion controller/driver edh0162en1040 06/99 6.2 free datasheet http:// 6.3 edh0162en1040 06/99 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. it is available on the auxiliary connector (25-pin d-sub) at pin 11. four commands are available to define and use this signal. xx pb nn defining and reading the signal starting position. xx pe nn defining and reading the signal ending position. xx pi nn defining and reading the step of the synchronizing signal. xx ps start the signal generation. where: xx axis number (from 1 to 4). nn position (absolute), in displacement units. the pb, pe and pi commands define the synchronized signal while the ps initiates it. the best location for the ps command is just before pa or pr. the signal is terminated at the position indicated by pe or at the end of the motion when the effect of the ps command is canceled. the necessary conditions for generating the signal, verified by ps, are: the start position defined by pb must be reached before the stop posi- tion defined by pe. the value set with pi must be greater or equal to the smallest servo step. this is the displacement made by an axis during one servo sam- pling period: smallest servo step = velocity * t base where t base = 0.25 or 0.3 msec, depending on the processor. if not, ps will not generate a sig- nal and will return an error. in this case, the smallest servo step can be determined by using the command xxpi?. if ps command is executed successfully, xxpi? will return the previously entered value, not the smallest servo step. if any of these conditions is not satisfied, ps command is not executed and it will return an error code. note to know the exact value of the servo sampling period (t base ) of the con- troller, send the command sq0 and the, the command sq?. the con- troller will return sq value. this value will be the exact sampling period of the controller, in seconds. 6.1 free datasheet http:// edh0162en1040 06/99 6.4 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. the step should be 1 (current units). 1pb-10, 1pe10, 1pi1 | defining the signal. 1pa-20 | motion without any signal generation. 1ps, 1pr40 | motion with signal generation between position -10 and 10, with a step of 1 units. tt | position reading for each pulse generated. 1pr60 | motion without any signal generation. note during a motion with synchronized signal generation, the real and theoreti- cal position corresponding to each pulse is recorded in the position buffer. this information can be read back using the tt command. to make the buffer available and avoid any conflicts, the ps command terminates and clears any settings made by a tm command. to use the trace mode after a motion with synchronized signals, the tm command must be re-initiated. a pulse is generated when the selected axis reaches the specified position, as follows: axis position = pb + (n * pi), where axis position [pb pe]. the position accuracy of the generated pulse (the difference between the theoretical position pb + n * pi and the real position) depends on the veloc- ity of the selected axis as follows: maxerror = (t base * velocity)/2 obviously, this value cannot be smaller than the encoder resolution. thus, if the calculated maxerror < encoder resolution, then maxerror = encoder resolution. example for a velocity of 20 mm/sec and t base = 300 sec: maxerror = (3 * 10 -4 * 20)/2 = 3 m this pulse location uncertainty will exist for every pulse generated but it is not cumulative. note the pulse location uncertainty is no longer significant if the pulse inter- val (pi) is set to greater than ten times this error. thus, the recommend- ed value for pi is: pi min recommended = 5 * t base * velocity free datasheet http:// 6.5 edh0162en1040 06/99 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: nb nn defining and reading the trajectory element number where the signal should start. the pulses are generated immediately when this element starts executing. ne nn defining and reading the trajectory element number where the signal should stop. the pulses will stop immediately when this element finishes executing. ni nn defining and reading the distance (the step) on the trajectory between synchronizing pulses. nn nn defining and reading the number of pulses (number of steps + 1) that are generated in a symetric geometric fashion. ns start generating the signal. the nb, ne, ni and nn commands provide the necessary data to define the signal generation while the ns command enables it. the correct location for the ns command is right before the et command. the pulses are termi- nated at the location specified by the ne command or at the end of the tra- jectory where the ns command s effect ends automatically. the necessary conditions (verified by et) to generate the signal are: values defined by nb and ne must be less than or equal to the total number of trajectory elements. the value of nb must be less than that of ne. the number of pulses to generate must be greater than 2 and less than or equal to the maximum pulse number. if not, et will replace the desired number of pulses with the maximum pulse number and return the appropriate error code. in this case, the maximum pulse number value can be read by the ni? command. if the desired number of pulses is smaller than the maximum pulse number, ni? returns the specified value. the maximum pulse number (mpn) is defined as follows: mpn = cptl/[max (2 * max (encoder resolution of axis x and axis y) and (trajectory velocity * t base )] cptl (curvilinear pulsed trajectory length) = sum of all trajectory ele- ment lengths between nb and ne. note the starting position and the ending position of the axis must be outside the interval defined with nb and ne commands without forget accelera- tion and deceleration ranges. example: generate 11 pulses on a trajectory starting with element number 2 and end- ing with element number 3: nt | start defining a new trajectory. lx10 | create element #1. cr10, ca90 | create element #2. ly20 | create element #3. cx10, cy30 | create element #4. nb2, ne3, ni10.1, nn11 | start pulses on element #2, end on element #3 generate 11 pulses (10 steps), each 0.1 unit. free datasheet http:// edh0162en1040 06/99 6.6 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. the ns command thus terminates the effect of a previously entered gq command. to enable the global trace mode after a trajectory with syn- chronized pulses, the gq command must be re-issued. a pulse is generated automatically as soon as the trajectory execution reaches position: pulse position = pos(nb) + (n * step) with stage position [nb ne] where: step = cptl/(ni - 1) the position accuracy of the generated pulse (the difference between the theoretical position pos(nb) + n * step and the real position where the pulse is generated) depends on the trajectory velocity as follows: maxerror = 0.707 * (t base * trajectory velocity) this value cannot be smaller than the encoder resolution of x or y axis. if maxerror < encoder resolution of x axis. then maxerror = encoder resolution of x axis. if maxerror < encoder resolution of y axis. then maxerror = encoder resolution of y axis. example for a trajectory velocity of 20 mm/sec and t base = 300 sec: maxerror = 0.707 * (3 * 10 -4 * 20) = 4.24 m this position uncertainty exists for every pulse generated but is not cumu- lative. 6.1.3 synchronizing events to trajectory elements controller operations and functions can be synchronized to the execution of a trajectory element. this is achieved by using the wnnn command. the nn parameter represents the trajectory element number to synchro- nize with. at the beginning of this element, one or more secondary con- troller activities could be initiated. example increase the trajectory velocity starting with element number 2 and reduce it with element number 4. 1xx | erase program #1 (if exists). 1ep | start program entry mode. nt | start new trajectory definition. lx10 | trajectory element #1. cr10, ca90 | trajectory element #2. ly20 | trajectory element #3. cx10, cy30 | trajectory element #4. lx0 | trajectory element #5. cx0, cy0 | trajectory element #6. vv5 | set trajectory velocity to 5 mm/sec. et | execute trajectory. free datasheet http:// 6.7 edh0162en1040 06/99 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. 1ex | execute program #1. 6.1.4 synchronizing events to trajectory position controller operations and functions can also be synchronized to the trajec- tory position. this is achieved by using the winn command. here, nn represents the trajectory position to synchronize with. when the trajectory length executed reaches the value specified by nn, one or more secondary controller activities could be initiated. example increase the trajectory velocity when the trajectory reaches position 5 and reduce the velocity when it reaches position 24. 2xx | erase program #2 (if exists). 2ep | start program entry mode. nt | start new trajectory definition. lx10 | trajectory element #1. cr10, ca90 | trajectory element #2. ly20 | trajectory element #3. cx10, cy30 | trajectory element #4. lx0 | trajectory element #5. cx0, cy0 | trajectory element #6. vv5 | set trajectory velocity to 5 mm/sec. et | execute trajectory. wi5, vv10 | starting with trajectory position 5 set velocity to 10 mm/sec. wi24, vv5 | starting with trajectory position 24 set velocity to 5 mm/sec. qp | end program entry mode. 2sm | save program in non-volatile ram. 2ex | execute program #2. free datasheet http:// edh0162en1040 06/99 6.8 MM4005 feature descriptions tutorial synchronized axes (electronic gearing) certain applications require to synchronize the motion of two or more axes. in this case, one or more axis precisely follow the motion of another one. 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. in a group of synchronized axes there is only one master and one or more slaves. the slaves always follow the motion of the master. all commands to a group of synchronized axes (from the front panel, through commands or through programs) is done by addressing only the master axis. no communication with the slave axes is allowed. determining the master-slave relationship can be done on the front panel ( ), through remote com- mands (xxssnn command) or through a program. a master axis is defined as an independent axis. it could have one or more slave axes or, as a particular case, none (default). a slave axis belongs to a unique master axis, in effect losing its identity. it will duplicate the behavior of its master. consequently, two master axes cannot have the same slave. by default (standard MM4005 configuration) all axes are declared mas- ters. however, each time a master-slave system is defined, its character- istics are saved in the non-volatile memory. on each consequent power-on, the controller will remember the latest configuration. the motion of a master axis is limited by its own travel limits. a slave axis is limited both by its own and its master s limits. if in the course of the motion a slave axis encounters its own travel limits, the emergency stop procedure is initiated and all motion will stop. the following three commands are needed to define and operate a master- slave motion system: xx ss nn defining and reading the master-slave status of an axis. xx gr nn defining and reading the electronic gear ratio between the master and the slave (by default = 1.0), using the following formula: displacement of the slave axis = gr * displacement of the master axis. gr can be a positive or negative number but not zero. xx ff nn defining and reading the maximum master-slave tracking error. if this tracking error is exceeded, the emergency stop procedure is initiated and all motors are turned . the tracking error (tk_err) is calculated as follows: tk_err = absolute value (pos_err_master - (pos_err_slave/gr)) where: pos_err_master position error of the master axis. pos_err_slave position error of the master axis. gr electronic gear ratio. off gen. setup motor off 6.2 free datasheet http:// 6.9 edh0162en1040 06/99 MM4005 feature descriptions tutorial automatic program execution on power-on: eo command or from the front panel when the power is turned on, after the initialization, the MM4005 controller can start executing a specified stored program a pre-defined number of times. this function can be setup on the front panel ( ), or through the remote command eo (automatic execution on power on). the status of this mode can be read with the eo? command. 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. 1pa40 | move axis #1 to absolute position 40 mm. qp | exit program edit mode. 1sm | save program in non-volatile memory. 1eo | execute program #1 one time on power-on. continuous motion: mv command some applications require that one or more axes be moved continuously. this usually applies to rotary axes where the limit switches can be eliminated. a continuous (infinite) motion is defined with the mv command and is gov- erned by the following rules. the mv command starts a motion on the selected axis. the velocity is set by the usual xxvann command. the command format is: xx mv + for motion in positive direction. xx mv - for motion in negative direction. where: xx axis number. an infinite motion works in the background, without affecting the operation of the other axis. in a master-slave system, if the master axis starts an infinite motion, the slave axis will also execute an infinite motion with the pre-defined velocity ratio (gr). the st command stops an infinite motion. to solve the overflow display problem inherent to an infinite motion, the cd command allows the user to set a periodic cycle to the position counter. defining, for example, a cycle of 360 for a rotary stage will reset the position counter every time it reaches 360 in the positive direction. in the negative direction, instead of counting negative values when 0 position is reached, the counter is set to 360 . note using of the mv command (infinite movement) is possible only after set- ting of a periodic cycle (cd command) and only for rotary stages. 6.4 on gen. setup motor off 6.3 free datasheet http:// edh0162en1040 06/99 6.10 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. the motion will be performed using the default or the last pre- set units. there are two ways to change the units of an axis: from the front panel ( ) or remotely through the sn command. this command has the following format: xx sn name where: xx axis number. name unit name, in ascii format. the automatic unit change means that, when the unit of an axis (mm, m, ) is being modified, all its parameters (increment, speed, ) are automatical- ly recalculated. to allow this unit change, the stages must be classified in two distinct categories, depending on the type of motion: translation and rotation. when the unit of a stage is modified, all its parameters (increment value, travel, velocity, acceleration, limits, ) are recalculated automatically. this allows an user to convert, for example, a stage defined in the metric system (mksa) to the english system by simply changing the units of mea- sure to inch. if, for any reason, the user does not want to use any displacement units, the motion and all its parameters can be directly referenced to the encoder increments. this special unit is identified with the inc symbol. the units are grouped by the type of motion as follows: translation: mm, m, inch, minch, inch and inc. rotation: deg, grad, rad, mrad, rad and inc. unit changes are allowed only within the same group. a unit change request from mm to deg, for example, is not accepted. note all programs written for a different unit than the one selected on the controller will not be executed correctly. to avoid this problem, define the desired unit for a stage, enter the choice in the controller s configura- tion and do all programming using that unit. modif. axis setup 6.5 free datasheet http:// 6.11 edh0162en1040 06/99 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 through the sf command. this command has the format: xx sf name where: xx axis number. name stage name (model), in ascii format. to read the selected stage model for an axis, use the xxsf? or xxta com- mands. to allow the MM4005 to operate with non-standard stages or motors (not included in the MM4005 firmware database), the following stage categories are available: translation: default-pp-t for stepper motors. default-cc-t for dc motors. rotation: default-pp-r for stepper motors. default-cc-r for dc motors. in the default category, to allow the use of a larger selection of motors and encoders, the encoder/motor resolution is extended to 10e -6 . reading parameters with ? the MM4005 controller is using a complex set of command, that some users will try to partially memorize. one way to reduce this effort is to com- bine setting and reading parameter commands by using the ? sign. every command that is setting a parameter can return the previously set value by replacing the parameter with a question mark (?). this eliminates the need for a separate set of query commands. example 1kp0.01 | set the proportional gain factor (kp) of axis #1 to 0.01. 1kp? | read the proportional gain factor (kp) of axis #1. current firmware version supports the ? option for the following com- mands: ac , ad , am , as , ax , ay , ba , cd , cm , cs , eo , fa , fe , ff , ft , gq , gr , kd , ki , kp , ks , mh , nb , ne , ni , nn , np , oh , pb , pe , pi , sf , sh , sl , sn , sp , sq , sr , ss , tm , va , vs , vv , ys . 6.7 select axis setup 6.6 free datasheet http:// edh0162en1040 06/99 6.12 MM4005 feature descriptions tutorial the following is a listing of commands that accept the ? option and their older equivalent (still active): xx ac ?xx da partial equivalence ad ? xa total equivalence xx am ? no equivalence am ? no equivalence xx as ? no equivalence ax ? no equivalence ay ? no equivalence xx ba ?xx db total equivalence xx cd ? no equivalence xx cs ? no equivalence cm ? no equivalence eo ? no equivalence fa ? no equivalence xx fe ?xx xf total equivalence xx ff ? no equivalence xx ft ? no equivalence gq ? no equivalence xx gr ? no equivalence xx kd ?xx xd total equivalence xx ki ?xx xi total equivalence xx kp ?xx xp total equivalence xx ks ? no equivalence xx mh ?xx dm total equivalence nb ? no equivalence ne ? no equivalence ni ? no equivalence nn ? no equivalence xx np ? no equivalence xx oh ?xx do total equivalence xx pb ? no equivalence xx pe ? no equivalence xx pi ? no equivalence pb ? no equivalence pe ? no equivalence pi ? no equivalence xx sf ?xx ta total equivalence xx sh ?xx xh total equivalence xx sl ?xx tl no equivalence xx sn ?xx tn total equivalence sp ? xs total equivalence sq ? xq total equivalence xx sr ?xx tr no equivalence xx ss ? no equivalence tm ? no equivalence xx va ?xx dv partial equivalence vs ? xu total equivalence vv ? xv total equivalence xx ys ?xx ty total equivalence attention the following command are not equivent: xxsl? and xxsr? display left and right logical margins in relation to mechanical origin, while xxtl? and xxtr? take back the left and right logical margins in relation to floating origin (logical). example 1or | search the mecanical origin. 1pr10 | moving of 10 mm. 1zp | floating origin to 10 mm of the mechanical origin. 1tl | left margin in relation to the floating origin. 1tl-60 | 1tr | right margin in relation to the floating origin. 1tr40 | 1sl? | left margin in relation to the mechanical origin. 1tl-50 | 1sr? | right margin in relation to the mechanical origin. 1tr50 | free datasheet http:// 6.13 edh0162en1040 06/99 MM4005 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. in both cases, the controller stores the error type and the user can read it with the tb command. to help even more in troubleshooting a motion program, the MM4005 con- troller also stores the line which caused the error. using the td command, the user can list the bad or the offending program line. integral gain saturation limit: ks command the pid servo filter has been extended to include user control over the integral gain saturation limit. the xxksnn command can be used to set the integral gain saturation limit for each axis. the nn parameter range is expressed between 0 and 1, and represents the saturation level reduction. program editing: ep command the ep (enter program mode) command accepts a nn parameters that allows the user to insert command lines anywhere inside an existing pro- gram. the xl command offers the capability to erase a specific command line. using the two commands, a program can be edited with a dumb terminal, without having to download it to an external computer/editor. firmware updates the firmware updates of MM4005 will no longer erase the user program section of the non-volatile ram. only controller setup parameters will be changed, motion programs will stay intact, if both buttons and are pressed at the moment of power on. 0 6.11 6.10 6.9 6.8 free datasheet http:// edh0162en1040 06/99 6.14 MM4005 feature descriptions tutorial 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. the joystick is connected to the MM4005 via the 15-pin d-sub remote control output (the joystick connector replaces the 15-pin d-sub short circuit connector on the rear panel of the MM4005). fig. 6.1 ?MM4005 joystick. po the potentiometer to manipulate one or two axes simultaneously. the further the potentiometer is moved from its center the more rapidly the axis/axes move. px slide switch to reverse the x axis direction. py slide switch to reverse the y axis direction. pxy slide switch to exchange the x and y axes directions. orig. button to start an origin search cycle. manu. button to select two axes that will be linked to the action of the joystick. initial state: no axis is chosen (led l1 and l2 are off). if the button is pressed, the joystick goes to state 1. state 1: axes 1 and 2 are chosen (led l1 is on). if the button is pressed again, the joystick goes to state 2. state 2: axes 3 and 4 are chosen (led l2 is on). if the button is pressed, the joystick returns to the initial state (the leds are off). mot. off equivalent to the motor button on the MM4005. mot. on equivalent to the motor button on the MM4005. the corresponding messages are displayed when the joystick goes to state 1 (axes 1 and 2) and state 2 (axes 3 and 4). in state 1 or 2, the potentiome- ter can be used to manipulate the axes. note in remote mode (mr command), using of the joystick is not permitted by default. to use it in remote mode, send mc command after mr command. on off rc4000 orig. manu. m o t . 3&4 1&2 on off po px py pxy l1 manu. l2 mot. off mot. on orig. 6.12 free datasheet http:// 6.15 edh0162en1040 06/99 MM4005 feature descriptions tutorial changing the display precision: np command or from the front panel the xxnpnn command or the menu from the front panel ( ) lets you modify the display resolution for the chosen units. choosing another unit cancels the previous np command and resets the display precision to the default value adapted to the new units. the correct procedural sequence is: choose the mechanical family corresponding to the mechanism used. choose the display units desired. choose the display precision desired. the maximum nn value for the chosen units is defined in the following table: unit mm m in. min in dg. gr. rad mrd rd inc mdr 637416 66310 the np command can be executed during axis movement. to return to the default precision for the current units, execute xxnp(noth- ing). if the current units are inc (encoder increment), there are no digits after the decimal point. the np command, therefore, does not operate with the inc units (only for inc) for which it returns an error code. periodic display mode: cd command or from the front panel the periodic display can be set up from the front panel ( ), if the axis chosen is rotational) or remotely using the xxcdnn command. if the cd command is executed with xx the axis number and nn the period (in the current units), then the axis is displayed periodically. several characteristics should be taken into consideration: from the start point, the displacement distance is divided into several periods of the same length given by nn. during the movement (and for each period) the displayed position val- ues progress from zero to nn according to the following rules: if nn > 0 : + positive motion: start: zero, end: nn, periodically. + negative motion: start: nn, end: zero, periodically. if nn < 0 : + positive motion: start: nn, end: zero, periodically. + negative motion: start: zero, end: nn, periodically. this command is especially useful with the mv+, mv- commands, how- ever, it acts on all the various motions (pa, pr, manual, joystick, etc.). this mode is always present in the non-volatile memory of the con- troller. to disable this mode, execute xxcd(nothing). modify axis setup 6.14 modify axis setup 6.13 free datasheet http:// edh0162en1040 06/99 6.16 MM4005 feature descriptions tutorial $ 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. the integer variables (-32767 to 32767 ) are indicated by $ynn . nn 1 to 100. the floating point variables (-1.7 e304 to +1.7 e304 ) are indicated by $ypp . pp 101 to 120. commands that use the $ynn variables: ac , ad , am , aq , as , ca , cb , cd , cr , cs , cx , cy , da , ds , dv , dy , ed , eo , ep , ex , fa , fb , fc , fd , fe , ff , ft , gq , gr , ie , kd , ki , kp , ks , lx , ly , mh , mx , my , nb , ne , ni , nn , np , oe , oh , pa , pb , pe , pi , pr , ps , rp , sb , sc , sd , sh , sl , so , sp , sq , sr , ss , sy , tg , tm , va , vs , vv , wa , wg , wh , wi , wl , wn , wp , ws , wt , wy , xl , xu , xv , ya , yc , yd , ye , yf , yg , yl , ym , yn , yo , yr , ys , yy . commands that use the $snn variables: as , cs , ds , sf , sn , wk . example 1 1as"this " | affects "this " in variable s1 (s1 = "this "). 2asis | affects "is" in variable s2 (s2 = "is"). 3as" " | affects " " in variable s3 (s1 = " "). 1cs $s2 | concatenate s2 to s1 (s1 = "this is"). 1cs $s3 | concatenate s3 to s1 (s1 = "this is "). 1cs"a string" | concatenate "a string" to s1. ds $s1 | contents of variable s1. this is a string | displayed on the controller s screen. example 2 2ys0 | initialize the variable #2 to zero. 2wl10 | while the variable #2 is less than 10. 1pr2, ws | move 2 units, wait for stop. 1yo $y2 | send the value of variable #2 to analog port number 1. 2ya1 | variable #2 is incremented. we | end of loop. 6.15 free datasheet http:// 6.17 edh0162en1040 06/99 MM4005 feature descriptions tutorial 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. where: xx axis number from 1 to 4. nn 0 or 1 nn = 0 : without pulse. nn = 1 : with pulse. example gq0 | initialize of global trace buffer. nt, fa90 | initializing trajectory. cr10, ca5 | element 1. ca350 | element 2. ca5 | element 3. vv5 | set trajectory velocity to 5 units/sec. et | displacement with generation of pulses. wn2, aq | at the beginning of element 2, axis positions are recorded without synchronization pulse. wn3, aq1 | at the beginning of element 3, axis positions are recorded with a synchronization pulse. 6.16 free datasheet http:// edh0162en1040 06/99 6.18 MM4005 feature descriptions tutorial 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. example | ********* program 1 (main program) ********* 1ep | enter program 1. 1pa10, 2pa10 | two-axis movement. 2ex | execute program 2. 3ex | execute program 3. 4ex | execute program 4. or | origin search on all axes. qp | quit main program. | **************** program 2 **************** 2ep | enter program 2. sb | set bits. 1as"this " | define string # 1. 2as"is " | define string # 2. 1cs$s2 | concatenate string # 1 and string # 2. ds$s1"a string" | display on screen. wt3000 | wait for 3 seconds. qp | quit program 2. | **************** program 3 **************** 3ep | enter program 3. 3as"a value: " | define string # 3. 101ys99.99 | define value # 101. 3cs$y101 | concatenate string # 3 and value # 101. ds$s1$s3 " !" | display on screen. wt3000 | wait for 3 seconds. qp | quit program 3. | **************** program 4 **************** 4ep | enter program 4. 1pr-20,ws | axis 1 movement. 2pr-20,ws | axis 2 movement. cb | clear bits. wt1000 | wait for 1 second. qp | quit program 4. this is a string | display on controller screen. this is a value: 99.99 ! | display on controller screen. 6.17 free datasheet http:// 6.19 edh0162en1040 06/99 MM4005 feature descriptions tutorial load communications mode: cm command the MM4005 is equipped with a cm command that can remotely modify the communications mode, as well as its parameters. for further details, refer to the description of the cm command (section 3). 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. xx yr nn xx [integer] analog port number. 1 to 4. nn [integer] variable number. 1 to 100 (integer variables) and 101 to 120 (float variables). the yo command lets you send a value to an analog output port. xx yo nn xx [integer] analog port number. 1 to 4. nn [float] sent value. the ra command is used to return the value, entered by a port, to the computer. xx ra xx [integer] analog port number. 1 to 4. the am command lets you adjust the voltage level of each analog input. xx am nn xx [integer] analog port number. 1 to 4. nn [integer] analog input mode. 0 to 3. nn = 0 or missing : + or - 10 volt tension input range. nn = 1 : + or - 5 volt tension input range. nn = 2 : 0 to 10 volt tension input range. nn = 3 : 0 to 5 volt tension input range. 6.19 6.18 free datasheet http:// edh0162en1040 06/99 6.20 MM4005 feature descriptions tutorial default mode: s-curve profile two types of profiles exist: trapezoid and s-curve. trapezoid or s-curve the scurve type avoids abrupt variations in speed during axis movement, consequently it improves the movement quality. a : temporary acceleration a max : maximum acceleration a av : average acceleration value set from the front panel of the controller ( acceleration menu) a av = a max /2 advantage gives smooth acceleration in the acceleration phase (start) and in deceler- ation (stop), thereby avoiding severe jolts to the mechanisms during these events (start/end). modify axis setup v t parabola 2 a a av a max t t da dt parabola 1 6.20 free datasheet http:// 6.21 edh0162en1040 06/99 MM4005 feature descriptions tutorial 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. the ks parameter (0 to 1) controls the integrator saturation level in the pid loop. an excessive value of ks implies the delayed effect on the controller reaction to the command. conversely, too small of a value eliminates the integrator action. the optimal value is from 0.5 to 0.9. 6.21 free datasheet http:// edh0162en1040 06/99 6.22 MM4005 feature descriptions tutorial free datasheet http:// section 7 servo tuning free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 7.1 edh0162en1040 ?06/99 MM4005 4-axis motion controller/driver table of contents section 7 ? servo tuning 7.1 servo tuning principles ........................................................................7.3 7.1.1 hardware requirements ............................................................7.3 7.1.2 software requirements ..............................................................7.3 7.2 tuning procedures.................................................................................7.4 7.2.1 axis oscillation............................................................................7.4 7.2.2 increasing performance..............................................................7.5 following error too large .........................................................7.5 errors at stop (not in position) ................................................7.5 following error during motion..................................................7.6 7.2.3 points to remember ...................................................................7.6 free datasheet http:// edh0162en1040 06/99 7.2 MM4005 4-axis motion controller/driver free datasheet http:// 7.3 edh0162en1040 06/99 MM4005 4-axis motion controller/driver section 7 servo tuning servo tuning principles the MM4005 controller uses a pid servo loop with feed forward. servo tuning sets the kp, ki and kd, and feed-forward parameters of the digital pid algorithm, also called the pid filter. tuning pid parameters requires a reasonable amount of closed-loop sys- tem understanding. you should first review the control loops paragraph in the motion control tutorial section and, if needed, consult additional servo control theory books. 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. to achieve the best dynamic performance possible, the system must be tuned for your specific application. load, acceleration, stage orientation and performance requirements all affect how the servo loop should be tuned for best results. 7.1.1 hardware requirements tuning is best accomplished when the system response can be measured. this can be done with external monitoring devices but this can introduce errors. the MM4005 controller avoids this problem by offering a trace capability. when trace mode is activated, the controller can record real and desired positions simultaneously. these are the basic pieces of information that the controller uses to calculate the pid filter. the sample interval can be as fast as the servo update cycle (0.0005s) and the total number of samples can be up to 4000 points. with these powerful capabilities, there is no need for additional hardware to perform servo tuning. 7.1.2 software requirements the MM4005 controller offers two types of trace capabilities. one is a sin- gle axis trace mode supported by the sp, xs, tm, xn and tt commands and the other is a global trace mode in which all axes are sampled. this is controlled by the sq, xq, gq, nq and tq commands. the two modes are completely independent. performance data for tuning can be acquired in two ways: you could write custom software using the commands mentioned or use the nmcservo newport software that has all the necessary functions, including plotting performance and saving the results. for a detailed description of the nmcservo software and its operation please review nmc softwares user s manual. 7.1 free datasheet http:// edh0162en1040 06/99 7.4 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. if the value is 1, the parameter has the highest gain possible. if the value is 0, the specified parameter is dis- abled. acceleration plays a significant role in the magnitudes of the following error and the overshoot, especially at start and stop. asking the controller to change the velocity instantaneously amounts to an infinite acceleration which, since it s physically impossible, causes large following errors and overshoot. use the smallest acceleration the application can tolerate to reduce overshoot and make tuning the pid filter easier. note in the following descriptions, it is assumed that some kind of nmcservo software is being used to capture the response of the servo loop during a motion step command and to visualize the results. 7.2.1 axis oscillation if the axis oscillates, this indicates that the gain kp may be too large. start by reducing the proportional gain factor kp by one order of magnitude (e.g. 0.2 to 0.02) and making ki and kd equal to zero. note remember that the default values are conservative enough to guarantee oscillation-free operation. you can always reload them through in the axis setup menu on the front panel by re-selecting the motion device you are using. if the oscillation does not stop, reduce kp again. note the first step should be sufficient to eliminate the oscillation. if not, it may indicate the existence of other problems, usually with the hardware (wiring, etc.). when the axis stops oscillating, the system response is probably very soft. the following error may be quite large during motion and non-zero at stop. you should continue tuning the pid with the steps described in the next paragraph. 7.2 free datasheet http:// 7.5 edh0162en1040 06/99 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. depending on the performance starting point and the desired outcome, here are some guidelines for further tuning. 7.2.2.1 following error too large this is the case of a soft loop. it is especially common if you just performed the steps in 7.2.1. the proportional gain kp is probably too low and ki and kd are zero. start by increasing kp by a factor of 1.5 to 2. continue this operation while monitoring the following error until it starts to exhibit excessive ringing characteristics (more than 3 cycles after stop.) to reduce the ringing, add some damping by increasing the kd parameter. start with a kd value one order of magnitude smaller than kp. increase it by a factor of 2 while monitoring the following error. as kd is increased, the overshoot and the ringing decrease almost to zero. note remember that if the acceleration is set too high, the overshoot cannot be completely eliminated with kd. if kd is further increased, at some point the oscillation will reappear, usual- ly at a higher frequency. avoid this by keeping kd at a high enough value, but not so high as to reintroduce oscillations. next add more gain. increase the kp value by 50% at a time until signs of excessive ringing appear again. alternatively increase kd and kp until kd cannot eliminate the overshoot and ringing at stop. this indicates kp is larger than its optimal value and should be reduced. ultimately, optimal values for kp and kd depend on the stiffness of the loop and how much ringing the application can tolerate. 7.2.2.2 errors at stop (not in position) if you are satisfied with the dynamic response of the pid loop but the motion device does not always stop accurately, modify the integral gain factor ki. as described in the motion control tutorial section, this term of the pid reduces the following error to near zero. unfortunately it can also contribute to oscillation and overshoot. always change this parameter carefully and in conjunction with kd. note ks (0 to 1) controls the saturation level of ki integral factor of the pid position closed loop. a excessive value of ks implies the delayed effect on the controller reaction towards processus to command. conversely, a too little value eliminates the integrator action. the optimal value varies between 0.5 and 0.9. start, if possible, with a value for ki that is at least two orders of magnitude smaller than kp. increase its value by 50% at a time and monitor the over- shoot and the final position at stop. free datasheet http:// edh0162en1040 06/99 7.6 MM4005 servo tuning if intolerable overshoot develops, increase the kd factor. continue increas- ing ki and kd alternatively until an acceptable loop response is obtained. if oscillation develops, immediately reduce the ki. remember that any finite value for ki will eventually reduce the error at stop. it is simply a matter of how much time is acceptable for your applica- tion. in most cases it is preferable to wait a few extra milliseconds to stop in position rather than have overshoot or run the risk of oscillations. 7.2.2.3 following error during motion this is caused by a ki value that is too low. follow the steps in the previous paragraph, keeping in mind that it is desirable to increase the integral gain factor as little as possible. 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. use the lowest acceleration the application can tolerate. smaller accel- eration generates less overshoot. use the default values provided with the system for all standard motion devices as a starting point. use the minimum value for ki that gives acceptable performance. the integral gain factor can cause overshoot and oscillations. free datasheet http:// section 8 appendices free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 8.1 edh0162en1040 ?06/99 MM4005 4-axis motion controller/driver table of contents section 8 ? appendices a error messages.......................................................................................8.3 error list .................................................................................................8.3 b ieee-488 link characteristics ...............................................................8.6 ieee-488 functions supported by MM4005 controller......................8.6 ieee-488 function subsets ....................................................................8.7 srq using ................................................................................................8.7 c connector pinouts .................................................................................8.9 labeling conventions ............................................................................8.9 power inhibition connector (9-pin d-sub)..........................................8.9 remote control connector (15-pin d-sub) .......................................8.10 auxiliary connector (25-pin d-sub) ...................................................8.11 gpio connector (37-pin d-sub)..........................................................8.13 rs-232c interface connector (9-pin d-sub) ......................................8.14 rs-232c interface cable.......................................................................8.15 ieee488 interface connector (24-pin)................................................8.16 motor interface connector (25-pin d-sub) .......................................8.17 pass-through board connector (25-pin d-sub) ...............................8.18 d motion program examples..................................................................8.19 e troubleshooting guide........................................................................8.27 f decimal/ascii/binary conversion table...........................................8.30 g factory service .....................................................................................8.33 introduction ..........................................................................................8.33 obtaining service .................................................................................8.33 service form .........................................................................................8.35 free datasheet http:// edh0162en1040 06/99 8.2 MM4005 4-axis motion controller/driver free datasheet http:// 8.3 edh0162en1040 06/99 MM4005 4-axis motion controller/driver a error messages the MM4005 controller continually verifies the actions of the motion control system and the operator. 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. to better understand error-handling, keep in mind the following points: reading the error with te or tb clears the error buffer. the controller stores only the last error encountered. once an error is detected, it is stored until read or replaced by a new error. the error read represents an error that could have happened at any time since the last read. for faster communication throughput, use the te command to read only the error code. use the tb command to read an existing error or to translate an error code. a.1 error list the following is a list of all error message codes and their descriptions: 01 a unknown message code. 02 b incorrect axis number. 03 c parameter out of limits. 04 d unauthorized execution. 05 e incorrect i/o channel number. 06 f program number incorrect. 07 g program does not exist. 08 h calculation overflow. 09 i unauthorized command in programming mode. 10 j command authorized only in programming mode. 11 k undefined label. 12 l command not at the beginning of a line. 13 m program is too long. 14 n incorrect label number. 15 o variable number out of range. 16 p number of we commands does not match the number of open loops. 17 q unauthorized command. 18 r command cannot be at the beginning of a line. 19 s communication time-out. 20 t error during home search cycle. 21 u failure while accessing the eeprom. 22 v too long trajectory. 23 w trajectory: to big discontinuity angle. free datasheet http:// edh0162en1040 06/99 8.4 MM4005 appendix a error messages 24 x trajectory: first angle definition error. 25 y trajectory: line (x, y) line expected. 26 z trajectory: line (x, y) too big discontinuity. 27 [ trajectory: line (x, ) or line (y, ) impossible. 28 \ trajectory: arc expected. 29 ] trajectory: arc (r, ) radius is too small. 30 ^ trajectory: arc (r, ) radius is too big. 31 _ trajectory: arc (r, ) sweep angle is too small. 32 ` trajectory: arc (x, y) circle is too small. 33 a trajectory: arc (x, y) circle is impossible. 34 b trajectory: trajectory is empty. 35 c unit not translational or incorrect. 36 d unit not rotationnal or incorrect. 37 e trajectory: units not translationnal or not identical. 38 f sync. pulses generation impossible. 39 g mechanical familly name incorrect. 40 h trajectory: execution exceeds physical or logical limits. besides the standard screens available on the front panel display, there are a number of error screens that appear only in special error conditions. fig. a.1 ?error screen (english). fig. a.2 error screen (french). the screen in fig. a.1 (english version) or fig. a.2 (french version) appears if the battery-backed non-volatile memory is corrupted. this will result in a loss of all data in this memory and the controller will request the operator to perform a complete setup procedure on the front panel. note under certain conditions, you may need to erase the non-volatile memo- ry and load the default parameters. this is accomplished simultaneously pressing the minus key and the period key on the keypad during the power-up sequence. this will initiate a setup procedure. the error message shown in fig. a.3 appears on power-up if the ieee488 is detected to be malfunctioning. under this condition, only the rs-232 inter- face can be used. . o e n uhpu o t cont i nuer ur ce a r a pes er rmt ? ur er s e r pye ky s cont i nue ao t n a r a prser r mt er o e free datasheet http:// 8.5 edh0162en1040 06/99 MM4005 appendix a error messages 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. fig. a.4 error screen, depressed key during start-up. during program creation or modification, the screen shown in fig. a.5 could appear if the command line being edited exceeds the 110 character limit. the last command entered will be lost but the rest of the line is retained and can be saved. (the xxxx represents the actual command line being edited). fig. a.5 error screen, command line too long. the second type of error message that is available during program creation or modification is shown in fig. a.6. it will appear when the non-volatile memory allocated to program storage becomes full. the last line entered (xxxx ) will be lost but the rest of the program is saved. fig. a.6 error screen, program memory full. a pmisoolong rt or . . . x *x x xxx x . . . x x ..x . g s e r pye ky s cont i nue ao t n a mnd i le noolong ct om . . . x *x x xxx x . . . x x ..x . . . . x x ..x . . . .xx x xx s e r pye ky s cont i nue ao t n x b y e ker r or ar o d t i n iza il aer rr o in o i t e4 88 e ie s e r pye ky s cont i nue ao t n free datasheet http:// edh0162en1040 06/99 8.6 MM4005 4-axis motion controller/driver b ieee-488 link characteristics note in order to meet fcc emission limits for a class b device, you must use a double shielded ieee-488 cable. operating this equipment with a single shielded cable may cause interference to radio and television reception in residential areas. note comply to ieee standard digital interface for programmable instrumentation. ansi/ieee std. 488 - 1978. this norm is commonly called ieee-488. b.1 ieee-488 functions supported by MM4005 controller mnemonic definition support atn attention yes dcl device clear yes eoi end or identify yes eol end of line yes get group execute trigger no gtl go to local no ifc interface clear yes lad listen address yes llo local lockout no osa other secondary address no ppc parallel pol configure no ppd parallel poll disable no ppe parallel poll enable no ppu parallel poll unconfigure no ren remote enable no sdc selected device clear yes spd serial poll disable no spe serial poll enable yes srq service request yes tad talk address yes tct take control no unl unlisten yes unt untalk yes free datasheet http:// 8.7 edh0162en1040 06/99 b.2 ieee-488 function subsets this controller support the many gpib function subsets, as listed bellow. some of the listings described subsets that the controller does not support. c0 (controller). the MM4005 can not control other devices. t5 (talker). the MM4005 becomes a talker when the cic (controller in charge) sends its tad (talker address) with the atn (attention) line asserted. it ceases to be a talker when the cic (controller in charge) sends another device s tad (talker address) with atn (attention) asserted. l4 (listener). the MM4005 becomes listener when the cic (controller in charge) sends its lad (listener address) with the atn line asserted. the MM4005 does not have listen only capability. sh1 (source handshake). the MM4005 can transmit multiline messages accros the gpib. ah1 (acceptor handshake). the MM4005 can receive multiline messages accros the gpib. 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. pp0 (parralel poll). the MM4005 has no parallel poll capability. it does not respond to the following interface messages: ppc, ppd, ppe and ppu. the MM4005 does not send out a message when the atn (attention) and eoi (end or identify) line are asserted. dc1 (device clear). the MM4005 responds to the dcl (device clear) and, when made listener, the sdc (selected device clear) interface message. dt0 (device trigger). the MM4005 does not support get (group execute trigger) interface message. e2 (electrical). the MM4005 uses tristate buffers to provide optimal high- speed data transfer. b.3 srq using the ni488.2 user manual for windows from national instruments, in the gpib programming techniques chapter describes the use of serial polling as follow (page 7-5): serial polling you can use serial polling to obtain specific information from gpib devices when they request service. when the gpib srq line is asserted, it signals the controller that a service request is pending. the controller must then determine which device asserted the srq line and respond accordingly. the most common method for srq detection and servicing is serial poll. this section describes how you can set up your application to detect and respond to service requests from gpib devices. service requests from ieee-488 devices ieee-488 devices request service from the gpib controller by asserting the gpib srq line. when the controller acknowledge the srq, it serial polls each open device on the bus to determine which device requested service. any device requesting service returns a status byte with bit 6 set and then unasserts the srq line. devices not requesting service return a status byte with bit 6 cleared. manufacturers of ieee-488 devices use lower order bits to communicate the reason for the service request or to summarize the state of the device. MM4005 appendix b ieee-488 link characteristics MM4005 appendix b ieee-488 link characteristics free datasheet http:// edh0162en1040 06/99 8.8 service requests from ieee-488.2 devices the ieee-488.2 standard redefined the bit assignments in the status byte. in addition to setting bit 6 when requesting service, ieee-488.2 devices also use two other bits to specify their status. bit 4, the message availiable bit (mav), is set when the device is ready to send previously queried data. bit 5, the event status bit (esb), is set if one or more of the enabled ieee-488.2 events occurs. these events include power-on, user request, command error, execution error, device-dependant error, querry error, request con- trol and operation complete. the device can assert srq when esb or mav is set, or when a manufacturer-defined condition occurs. also on page 7-7, national instruments give an example on how to conduct a serial poll: srq and serial polling with ni-488 device functions the following example illustrates the use of the ibwait and ibrsp functions in a typical srq servicing situation when automatic serial polling is enabled. #include "decl.h" char getserialpollresponse (int devicehandle) { char serialpollresponse = 0; ibwait (devicehandle, timo | rqs); if (ibsta & rqs) { printf ("device asserted srq.\n"); /* use ibrsp to retrieve the serial poll response. */ ibrsp (devicehandle, &serialpollresponse); } return (serialpollresponse); }" 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). after that you can use the ibrd command to retreive the data from the MM4005. MM4005 appendix b ieee-488 link characteristics MM4005 appendix b ieee-488 link characteristics free datasheet http:// 8.9 edh0162en1040 06/99 MM4005 4-axis motion controller/driver c connector pinouts c.1 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. i ? input. o ? output. warning the company assumes no responsability for the use of any util labelled pin. c.2 power inhibition connector (9-pin d-sub) this connector is provided for the wiring of one or more remote emergency stop switches or start switches. they will have the same effect as the front panel motor or motor buttons. the minimum rating for the switches should be 50 ma at 24 v and the maxi- mum contact resistance should be less than 100 ? . pin # description 1 n.c. 2 util start, switches must be self release push buttons. wire the switch contacts normally opened. the other side of the switch should be connectd to dgnd. if more than one switch is installed, they should be connected in parallela. 3 i emergency stop, must always be connected to dgnd dur- ing normal controller operation. an open circuit is equiva- lent to pressing motor on the front panel. wire the switch contacts normally closed. if more than one switch is installed, they should be connected in series 4 n.c. 5 n.c. 6 dgnd 7 dgnd 8 dgnd 9 n.c. off on off free datasheet http:// edh0162en1040 06/99 8.10 MM4005 appendix c connector pinouts c.3 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. pin # description 1 dgnd 2 i } for normal operation connect pins 2 and 3 together.an open circuit is equivalent to pressing the motor on the front panel. 3 o 4 util 5 util 6 util 7 util 8 util 9 dgnd 10 dgnd 11 util 12 util 13 util 14 util 15 util warning newport assumes no responsability for the use of any other remote controller. off free datasheet http:// 8.11 edh0162en1040 06/99 MM4005 appendix c connector pinouts c.4 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. the logic outputs are open-collector type and are rated for maximum 30 v and 40 ma (fig. c.2). to drive logic input, they require a pull-up resistor. the analog inputs and outputs have 12 bits resolution. the analog inputs are multi-range, software programmable. the available ranges are 10v, 5v, 0-10v, 0-5v. see the ra and am commands for more programmation details. in all cases, analog inputs must be below 10 v. the impedance of the converter inputs is typically 10kohms. the maxi- mum input current is 300a. the maximum offset error is 10 lsb, and the maximum gain error is 10 lsb. the input characteristics of the analog inputs are in fig. c.1. the value of 1 lsb depends of the used range: 1 lsb is: 20 v / 4096 5 mv for the 10 v range. 1 lsb is: 10 v / 4096 2.5 mv for the 5 v range and 0-10 v range. 1 lsb is: 5 v / 4096 1.25 mv for the 0-5 v range. fig. c.1 equivalent circuit of an analog input. the analog outputs range is 10 v. the maximum offset error is 200 mv, and the maximum gain error is 10 lsb. the output setting time is typically 6 sec. these outputs are voltage outputs (output current less than 1 ma), so to use them properly, they must be connected to an impedance higher than 10 kw. 1 lsb is: 20 v / 4096 5 mv. pin # description 1 dgnd 2 n.c. 3 util 4 util 5 util 6 util 7 util 8 n.c. 9 n.c. 10 o a low signal indicates that motor power is on. 11 o pulse synchronized to one axis, see pb, pe, pi and ps com- mands. 12 o pulse synchronized to a trajectory, see nb, ne, ni, nn and ns commands. 13 dgnd 14 i analog input 1. 15 i analog input 2. 16 i analog input 3. in 10 ? a/d converter typ. 10 k ? 100 nf off free datasheet http:// edh0162en1040 06/99 8.12 MM4005 appendix c connector pinouts 17 i analog input 4. 18 dgnd 19 o analog output 1. 20 o analog output 2. 21 o analog output 3. 22 o analog output 4. 23 dgnd 24 o output frequency, defined by the ft command. 25 dgnd note remember that an i/o output bit set means that the transistor is con- ducting, thus appearing to be low . free datasheet http:// 8.13 edh0162en1040 06/99 MM4005 appendix c connector pinouts c.5 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. all inputs are optocoupled and are configured as a led in series with a 1k ? resistor connected to the +12 v line (fig. c.2). pin # description 1 n.c./+12 v (1) 2 +12 v, 25 ma 3 +5 v,100 ma 4 i digital port input 1. 5 i digital port input 2. 6 i digital port input 3. 7 i digital port input 4. 8 i digital port input 5. 9 i digital port input 6. 10 i digital port input 7. 11 i digital port input 8. 12 o digital port output.1. 13 o digital port output.2. 14 o digital port output.3. 15 o digital port output.4. 16 o digital port output.5. 17 o digital port output.6. 18 o digital port output.7. 19 o digital port output.8. 20 dgnd (2) 21 dgnd (2) 22 dgnd (2) 23 dgnd (2) 24 dgnd (2) 25 dgnd (2) 26 dgnd (2) 27 dgnd (2) 28 dgnd (2) 29 dgnd (2) 30 dgnd 31 dgnd 32 dgnd 33 dgnd 34 dgnd 35 dgnd 36 dgnd 37 dgnd 1) if optocoupling feature is activated, pin 1 outputs +12vdc. needs factory service to change. 2) if optocoupling feature is activated, pin is for external ground. needs factory service to change. free datasheet http:// edh0162en1040 06/99 8.14 MM4005 appendix c connector pinouts optoisolated inputs parameter symbol min. max. units low level input voltage v il 05v high level input voltage v ih 11 12 v input current low i il -5 -10 ma pulse width 1 servo cycle input low to high tp lh 10 sec input high to low tp hl 10 sec logical outputs parameter symbol min. max. units low level output voltage v ol 01v high level output voltage v oh 30 v output current low i il -40 ma pulse width 1 servo cycle output low to high tp lh 1 sec output high to low tp hl 1 sec to assure good use and performances of the MM4005, respect these maxi- mum ratings. fig. c.2 equivalent circuits for the digital input and output ports. c.6 rs-232c interface connector (9-pin d-sub) the rs-232 c interface uses a 9-pin sub-d connector. the back panel connector pinout is shown in fig. c.3. fig. c.3 rs-232c connector pinout. 1 2 3 4 5 6 7 8 9 internal connections in 1 k ? led +12 v output input out 30 v max. 40 ma max. free datasheet http:// 8.15 edh0162en1040 06/99 MM4005 appendix c connector pinouts c.7 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. fig. c.4 shows a simple pin-to-pin cable with 9 conductors. fig. c.4 conductor, pin-to-pin rs-232c interface cable. if you want to use a three conductor cable, you must use a cable config- ured as in fig. c.5 to get the same hardware handshake override. fig. c.5 conductor rs-232c interface cable. if your computer or terminal uses a 25-pin connector for the rs 232c inter- face, you can use an off-the-shelf 25 to 9-pin adapter and one of the two cables described above. if you do not wish to add an adapter, you can use an off-the-shelf 9 to 25-pin rs-232c cable or build one like in fig. c.6. 1 2 3 4 5 6 7 8 9 9-pin d-sub femal connector on computer side 1 2 3 4 5 6 7 8 9 9-pin d-sub femal connector on controller side 1 2 3 4 5 6 7 8 9 9-pin d-sub femal connector on computer side 1 2 3 4 5 6 7 8 9 9-pin d-sub femal connector on controller side free datasheet http:// edh0162en1040 06/99 8.16 MM4005 appendix c connector pinouts 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. c.7. fig. c.7 3-conductor, 9-pin to 25-pin rs-232c interface cable. c.8 ieee488 interface connector (24-pin) the ieee488 connector has a standard configuration, shown in fig. c.8. fig. c.8 ieee488 connector definition. 13 14 15 16 17 18 19 20 21 22 23 24 dio5 dio6 dio7 dio8 ren gnd gnd gnd gnd gnd gnd sig. gnd pin # dio1 dio2 dio3 dio4 eoi dav nrfd ndac ifc srq atn shield 1 2 3 4 5 6 7 8 9 10 11 12 8 3 2 20 7 6 4 5 25-pin d-sub femal connector on computer side 1 2 3 4 5 6 7 8 9 9-pin d-sub femal connector on controller side 8 3 2 20 7 6 4 5 25-pin d-sub femal connector on computer side 1 2 3 4 5 6 7 8 9 9-pin d-sub femal connector on controller side free datasheet http:// 8.17 edh0162en1040 06/99 MM4005 appendix c connector pinouts c.9 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. pin # stepper motor dc motor unipolar bipolar 5-phase 1 phase 1 phase 1 + phase 1 + tacho generator 2 phase 1 phase 1 + phase 1 + tacho generator 3 phase 2 phase 1 phase 2 tacho generator 4 phase 2 phase 1 phase 2 tacho generator 5 phase 3 phase 2 + phase 3 + motor 6 phase 3 phase 2 + phase 3 + motor 7 phase 4 phase 2 phase 4 motor 8 phase 4 phase 2 phase 4 motor 9 common n.c. phase 5 n.c. phase 3-4 10 n.c. n.c. n.c. n.c. 11 c ommon n.c. phase 5 n.c. phase 1-2 12 n.c. n.c. n.c. n.c. 13 mechanical mechanical mechanical mechanical zero zero zero zero 14 shield shield shield shield ground ground ground ground 15 encoder index encoder index encoder index encoder index pulse i pulse i pulse i pulse i 16 limit switch limit switch limit switch limit switch ground ground ground ground 17 + end-of-travel + end-of-travel + end-of-travel + end-of-travel 18 end-of-travel end-of-travel end-of-travel end-of-travel 19 encoder encoder encoder encoder channel a channel a channel a channel a 20 encoder encoder encoder encoder channel b channel b channel b channel b 21 encoder encoder encoder encoder power: +5 v power: +5 v power: +5 v power: +5 v 22 encoder encoder encoder encoder ground ground ground ground 23 encoder encoder encoder encoder channel /a channel /a channel /a channel /a 24 encoder encoder encoder encoder channel /b channel /b channel /b channel /b 25 encoder index encoder index encoder index encoder index pulse /i pulse /i pulse /i pulse /i free datasheet http:// edh0162en1040 06/99 8.18 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 1 ground 2 n.c. 3 mechanical zero 4 end-of-travel 5 + end-of-travel 6 driver fault signal 7 encoder channel a 8 encoder channel b 9 index pulse i 10 pulse command (1) 11 direction command (1) 12 10 v analog input (2) 13 n.c. 14 0 v encoder supply 15 driver inhibition command 16 n.c. 17 n.c. 18 n.c. 19 encoder channel /a 20 encoder channel /b 21 index pulse /i 22 0 v logic 23 0 v logic 24 n.c. 25 reference for 10 v analog input 1) stepper motor driver. 2) dc motor driver. fig. c.9 diff. output type. fig. c.10 open collector output type. fig. c.11 ttl input type. 0 v logic ttl input power supply trigger 4k7 74ls06 or 74ls07 0 v logic o.c. ouput mc3487 vx ouput vx ouput free datasheet http:// 8.19 edh0162en1040 06/99 MM4005 4-axis motion controller/driver d motion program examples when learning a new computer language, there is no substitute for actually writing some real programs. 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. example 1 the first example is a simple two-axes program that will generate the trian- gle shown in fig. d.1. fig. d.1 triangle pattern. make sure there is no other program in memory with the same name (num- ber). if you are operating the controller from a remote computer, start by issuing the xx command for that program number. then, enter the pro- gramming mode by using the ep command. if you enter the program from the front panel, ignore these two and the qp commands. 1xx erase program #1, if it exists. 1ep enter programming mode and store all entries as program #1. 1va4 set velocity of axis #1 to 4 mm/sec. 1pa10,1ws move axis #1 to absolute position 10 mm; wait for axis #1 to complete motion. 2va4 set velocity of axis #2 to 4 mm/sec. 2pa5,2ws move axis #2 to absolute position 5 mm; wait for axis #2 to complete motion. 2va2 change velocity of axis #2 to 2 mm/sec. 1pa0,2pa0 move axis #1 to absolute position 0 mm and axis #2 to absolute position 0 mm. 1qp end of program; quit programming mode. 0, 0 10, 0 10, 5 start axis #1: 10 mm axis #2: 5 mm free datasheet http:// edh0162en1040 06/99 8.20 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. but, if you would measure very accurately the precision of this diagonal line, you would notice some errors due to imperfect start synchronization and an incorrect acceleration ratio. in other words, we achieved this dual- axes motion with two independent single-axis motions. to eliminate these motion errors, we need to use the axes synchronization (linear interpolation) feature. the improved program will have the follow- ing listing: 2xx erase program #2, if it exists. 2ep enter programming mode and store all entries as program #2. 1va4 set velocity of axis #1 to 4 mm/sec. 1pa10,1ws move axis #1 to absolute position 10 mm; wait for axis #1 to complete motion. 2va4 set velocity of axis #1 to 4 mm/sec. 2pa5,2ws move axis #2 to absolute position 5 mm; wait for axis #2 to complete motion. 1sy1,2sy1 declare axes #1 and #2 synchronized. 1pa0,2pa0,se,ws set axis #1 destination to 0 mm and axis #2 destina- tion to 0 mm; start synchronous motion; wait for motion to complete. 1sy0,2sy0 declare axes #1 and #2 non-synchronized. 2qp end of program #2; quit programming mode. notice that there is no need to set the velocities before the synchronized (interpolated) motion. the controller automatically calculates them to get the best accuracy possible, without exceeding the pre-set individual velocities. also, when finished with an interpolated motion, always return the axes to the non-synchronized mode. 0, 0 10, 0 10, 5 free datasheet http:// 8.21 edh0162en1040 06/99 MM4005 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. fig. d.2 glue dispensing pattern. notice that there is no need to set the velocities before the synchronized (interpolated) motion. the controller automatically calculates them to get the best accuracy possible, without exceeding the pre-set individual veloci- ties. also, when finished with an interpolated motion, always return the axes to the non-synchronized mode. fig. d.3 overlapping axis acceleration/deceleration. assuming that the desired velocity is 4 mm/sec, we need to calculate the acceleration and the positions where one axis starts decelerating and the other accelerating. we know that an axis must travel 2 mm before reaching a velocity of 4 mm/sec. velocity = ? distance ? time = ? distance time velocity acceleration = ? velocity = ? velocity velocity time ? distance since the velocity starts from zero, ? velocity = velocity. acceleration = velocity 2 = 42 = 8 mm/sec 2 ? distance 2 velocity time axis #1 axis #1 axis #2 14 mm 10 mm r 2 mm free datasheet http:// edh0162en1040 06/99 8.22 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. the motion we decide to perform is shown in fig. d.4. fig. d.4 desired motion result. the program will have the following listing: 3xx erase program #3, if it exists. 3ep enter programming mode and store all entries as program #3. cb clear all output i/o bits; set all bits to zero. 1pa0,2pa0,ws move axes #1 and #2 to absolute position 0 mm; wait for all axes to complete motion. 1va4,2va4 set velocity of axes #1 and #2 to 4 mm/sec. 1ac8,2ac8 set acceleration of axes #1 and #2 to 8 mm/s 2 . 1pa14 move axis #1 to absolute position 14 mm. 1wp2,3sb wait for axis #1 to reach position 2 mm; set bit #3. 1wp12,2pa10 wait for axis #1 to reach position 12 mm; start axis #2 and move to position 10 mm . 2wp8,1pa0 wait for axis #2 to reach position 8 mm; start axis #1 and move to position 0 mm. 1wp2,2pa0 wait for axis #1 to reach position 2 mm; start axis #2 and move to position 0 mm. 2wp2,1pa4 wait for axis #2 to reach position 2 mm; start axis #1 and move to position 4 mm. 1wp2,3cb wait for axis #1 to reach position 2 mm; clear bit #3. 3qp end of program #2; quit programming mode. axis #1 axis #2 r 2 mm 14, 0 0, 0 14, 10 0, 10 free datasheet http:// 8.23 edh0162en1040 06/99 MM4005 appendix d motion program examples 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. the result will be similar to fig. d.5. fig. d.5 . the solid lines show the actual pen trajectory. next, we need to select a coordinate system. for simplicity, lets make the lower left corner of the trajectory the origin (zero), as shown in fig. d.6. fig. d.6 . we decide to make the symbol 13 mm high and 17.5 mm wide. but, using a pen with a 0.5 mm wide tip, the actual trajectory must be shrunk to 12.5 17 mm. to control the pen up and down we will use bit #8 of the i/o output port, where logic high means pen down. first, we need to make sure that there is no other program in memory with the same name (number). we do this by listing the program number select- ed or just by erasing it with the xx command. assuming that this program is being edited on a computer and then down- loaded to the controller, we also need to send the commands to enter and terminate the programming mode. y axis #2 axis #1 x 0 free datasheet http:// edh0162en1040 06/99 8.24 MM4005 appendix d motion program examples 4xx erase program #4, if it exists. 4ep store all following entries as program #1. cb 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. 8sb set i/o bit #8 high; this brings the pen down. 2pr-12.5,ws,1pr0.5,ws,2pr12.5,ws,1pr0.5,ws,rp2 make four relative motions by sequentially incrementing axis #1 and #2; wait for each motion to stop; repeat the cycle (command line) two times. 2pa10,ws move axis #2 to 10 mm and wait for motion complete. 1ys0 initialize variable #1; set its value to zero. 1sy1,2sy1 declare axes #1 and #2 synchronized. 1wl8 start a while loop; repeat the following commands while variable #1 is less than 8. 1pr0.5,2pr-0.596,se,ws set relative destination of axis #1 at 0.5 mm and of axis #2 at -0.596 mm away from current position; start synchronous motion; wait for motion to complete. 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. 1pr0.5,2pr-0.596,se,ws set relative destination of axis #1 at 0.5 mm and of axis #2 at -0.596 mm away from current position; start synchronous motion; wait for motion to complete. 2pr-3,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. we end while loop . 1pa10.35,2pa0,se,we set destination of axis #1 to 10.35 mm and of axis #2 to 0 mm; start synchronous motion; wait for motion to complete . 1pa10.5,se,ws set destination of axis #1 to 10.5 mm; start synchro- nized axis; wait for motion to complete. 2pa2.979,se,ws set destination of axis #2 to 2.979 mm; start synchro- nized axis; wait for motion to complete. 1pr0.5,2pr-0.596,se,ws set relative destination of axis #1 at 0.5 mm and of axis #2 at -0.596 mm away from current position; start motion; wait for motion to complete. free datasheet http:// 8.25 edh0162en1040 06/99 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. 2pa1.788,se,ws set destination of axis #2 to 1.788 mm; start synchro- nized axis; wait for motion to complete. 1pr0.5,2pr-0.596,se,ws set relative destination of axis #1 at 0.5 mm and of axis #2 at -0.596 mm away from current position; start synchronous motion; wait for motion end. 2pa0,se,ws set destination of axis #2 to 0 mm; start synchro- nized axis; wait for motion to complete. 1pa12.5,se,ws set destination of axis #1 to 12.5 mm; start synchro- nized axis; wait for motion to complete. 2pa0.596,se,ws set destination of axis #2 to 0.596 mm; start synchro- nized axis; wait for motion to complete. 1pa13,2pa0,se,ws set destination of axis #1 to 13 mm and of axis #2 to 0 mm; start motion; wait for motion to complete. 1sy0, 2sy0 declare axes #1 and #2 non-synchronized. 8cb set i/o bit #8 low; this will lift the pen up. 1pa17,ws move axis #1 to 17 mm; start synchronized axis; wait for motion to complete. 8sb set i/o bit #8 high; this brings the pen down. 2pr12.5,ws,1pr-0.5,ws,2pr-12.5,ws,1pr-0.5,ws,rp2 make four relative motions by sequentially incrementing axis #1 and #2; wait for each motion to stop; repeat the cycle (com- mand line) two times. 2pa2.5,ws move axis #2 to 2.5 mm and wait for motion com- plete. 1ys0 initialize variable #1; set its value to zero. 1sy1, 2sy1 declare axes #1 and #2 synchronized. 1wl8 start a wile loop; repeat the following commands while variable #1 is less than 8. 1pr-0.5,2pr0.596,se,ws set relative destination of axis #1 at -0.5 mm and of axis #2 at 0.596 mm away from current position; start motion; wait for motion to complete . 2pr-3,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 . 1pr-0.5,2pr0.596,se,ws set relative destination of axis #1 at -0.5 mm and of axis #2 at 0.596 mm away from current position; start synchronous motion; wait for motion to com- plete . free datasheet http:// edh0162en1040 06/99 8.26 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. we end while loop. 1pa6.65,2pa12.5,se,ws set destination of axis #1 to 6.65 mm and of axis #2 to 12.5 mm; start synchronous motion; wait for motion to complete. 1pa6.5, se,ws set destination of axis #1 to 6.5 mm; start synchro- nized axis; wait for motion to complete. 2pa9.521,se,ws set destination of axis #2 to 9.521 mm; start synchro- nized axis; wait for motion to complete. 1pr-0.5,2pr0.596,se,ws set relative destination of axis #1 at -0.5 mm and of axis #2 at 0.596 mm away from current position; start synchronous motion; wait for motion to complete. 2pa12.5,se,ws set destination of axis #2 to 12.5 mm; start synchro- nized axis; wait for motion to complete. 1pa5.5,se,ws set destination of axis #1 to 5.5 mm; start synchro- nized axis; wait for motion to complete. 2pa10.712,se,ws set destination of axis #2 to 10.712 mm; start syn- chronized axis; wait for motion to complete. 1pr-0,5,2pr0.596,se,ws set relative destination of axis #1 at -0.5 mm and of axis #2 at 0.596 mm away from current position; start synchronous motion; wait for motion to complete. 2pa12.5,se,ws set destination of axis #2 to 12.5 mm; start synchro- nized axis; wait for motion to complete. 1pa4.5,se,ws set destination of axis #1 to 4.5 mm; start synchro- nized axis; wait for motion to complete. 2pa11.904,se,ws set destination of axis #2 to 11.904 mm; start syn- chronized axis; wait for motion to complete. 1pa4,2pa12.5,se,ws set destination of axis #1 to 4 mm and of axis #2 to 12.5 mm; start synchronous motion; wait for motion to complete. 8cb set i/o bit #8 low; this will lift the pen up. 1sy0,2sy0 declare axes #1 and #2 non-synchronized. 4qp end of program; quit programing mode. free datasheet http:// 8.27 edh0162en1040 06/99 MM4005 4-axis motion controller/driver 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. fixing the problem should include not only correcting the effect (blown fuse, limit switch. etc.) but also the cause of the failure. analyze the problem carefully to avoid repeating it in the future. the following is a list of the most probable problems and their cor- rective actions. use it as a reference but keep in mind that in most cases a perceived error is usually an operator error or has a simple solution. problem stand-by red led does not come on cause corrective action rear power switch turned off turn on the main power switch located on the power entry mod- ule in the rear of the unit. a physically pre- sent axis is declared uncon- nected bad connection turn power off and verify the motion device cable connection. bad component turn power off and swap motor cable with another axis (if cables are identical) to locate the prob- lem. contact newport for cable replacement or motion device service. unplugged power cord plug the power cord in the appropriate outlet. observe all caution notes and procedures described in the system setup section. blown fuse replace the line fuse as described in the system setup section. beware that the fuse blows only when a serious prob- lem arises. if fuse blows again, contact newport for service. no electrical power verify with an adequate tester or another electrical device (lamp, etc.) that the power is present in the outlet. if not, contact an elec- trician to correct the problem. free datasheet http:// edh0162en1040 06/99 8.28 MM4005 appendix e troubleshooting guide problem cause corrective action faultry origin or index signals carefully observe and record the motion sequence by watching the manual knob rotation, if avail- able. with the information col- lected, call newport for assistance. home search not completed time-out too short verify the home search time-out is set correctly. if the home search velocity was changed, the time-out must be increased. move command not executed software travel limit the software travel limit in the specified direction was reached. if limits are set correctly, do not try to move past them. incorrect para- meters verify that all relevant parame- ters (pid, velocity, etc.) are set properly. motor excessively hot incorrect con- nection verify that the motion device is connected to the correct driver card, as specified by the labels. system perfor- mance below expectations incorrect con- nection verify that the motion device is connected to the correct driver card, as specified by the labels. incorrect para- meters verify that all relevant parame- ters (pid, velocity, etc.) are set properly. the axis does not move incorrect con- nection verify that the motion device is connected to the correct driver card, as specified by the labels. incorrect para- meters verify that all relevant parame- ters (pid, velocity, etc.) are set properly. the motor green led does not stay on on limit switch tripped execute a home search routine or move the axis in manual mode (jog). make sure that the limit switch was not tripped by a seri- ous problem. executive fol- lowing error verify that teh motion device installed is connected to the proper driver card. verify that all setup parameters correspond to the actual motion device installed. verify that the load specifica- tions for the motion device are not being exceeded. free datasheet http:// 8.29 edh0162en1040 06/99 MM4005 appendix e troubleshooting guide note many other type of problems are detected by the controller and reported on the display and/or in the error register. consult appendix a for a com- plete list and description. problem cause corrective action no remote commu- nication wrong line make sure that the computer and the controller use the same line terminator. wrong commu- nication port verify that the controller is set to communication on the left port rs-232-c or ieee-488. wrong commu- nication para- meters verify that all communication parameters match between the computer and the controller. free datasheet http:// edh0162en1040 06/99 8.30 MM4005 4-axis motion controller/driver number ascii binary (decimal) code code 0 null 00000000 1 soh 00000001 2 stx 00000010 3 etx 00000011 4 eot 00000100 5 enq 00000101 6 ack 00000110 7 bel 00000111 8 bs 00001000 9 tab 00001001 10 lf 00001010 11 vt 00001011 12 ff 00001100 13 cr 00001101 14 so 00001110 15 si 00001111 16 dle 00010000 17 dc1 00010001 18 dc2 00010010 19 dc3 00010011 20 dc4 00010100 21 nak 00010101 22 syn 00010110 23 etb 00010111 24 can 00011000 25 em 00011001 26 eof 00011010 27 esc 00011011 28 fs 00011100 29 gs 00011101 30 rs 00011110 31 us 00011111 32 space 00100000 33 ! 00100001 34 00100010 35 # 00100011 36 $ 00100100 37 % 00100101 38 & 00100110 39 00100111 40 ( 00101000 41 ) 00101001 42 * 00101010 43 + 00101011 44 , 00101100 45 - 00101101 46 . 00101110 47 / 00101111 48 0 00110000 49 1 00110001 50 2 00110010 51 3 00110011 52 4 00110100 53 5 00110101 54 6 00110110 55 7 00110111 56 8 00111000 57 9 00111001 58 : 00111010 59 ; 00111011 60 < 00111100 61 = 00111101 62 > 00111110 63 ? 00111111 64 @ 01000000 65 a 01000001 66 b 01000010 67 c 01000011 68 d 01000100 69 e 01000101 70 f 01000110 71 g 01000111 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. to also help in working with the i/o port related commands, the table is extended to a full byte, all 256 values. number ascii binary (decimal) code code free datasheet http:// 8.31 edh0162en1040 06/99 MM4005 appendix f decimal / ascii / binary conversion table 72 h 01001000 73 i 01001001 74 j 01001010 75 k 01001011 76 l 01001100 77 m 01001101 78 n 01001110 79 o 01001111 80 p 01010000 81 q 01010001 82 r 01010010 83 s 01010011 84 t 01010100 85 u 01010101 86 v 01010110 87 w 01010111 88 x 01011000 89 y 01011001 90 z 01011010 91 [ 01011011 92 \ 01011100 93 ] 01011101 94 ^ 01011110 95 _ 01011111 96 01100000 97 a 01100001 98 b 01100010 99 c 01100011 100 d 01100100 101 e 01100101 102 f 01100110 103 g 01100111 104 h 01101000 105 i 01101001 106 j 01101010 107 k 01101011 108 l 01101100 109 m 01101101 110 n 01101110 111 o 01101111 112 p 01110000 113 q 01110001 114 r 01110010 115 s 01110011 116 t 01110100 117 u 01110101 118 v 01110110 119 w 01110111 120 x 01111000 121 y 01111001 122 z 01111010 123 { 01111011 124 | 01111100 125 } 01111101 126 ~ 01111110 127 01111111 128 10000000 129 10000001 130 10000010 131 10000011 132 10000100 133 10000101 134 10000110 135 10000111 136 10001000 137 10001001 138 10001010 139 10001011 140 10001100 141 10001101 142 10001110 143 10001111 144 10010000 145 10010001 146 10010010 147 10010011 148 10010100 149 10010101 150 10010110 151 10010111 152 10011000 153 10011001 154 10011010 155 10011011 156 10011100 157 10011101 158 10011110 159 10011111 160 10100000 161 10100001 162 10100010 163 10100011 164 10100100 165 10100101 166 10100110 167 10100111 number ascii binary (decimal) code code number ascii binary (decimal) code code free datasheet http:// edh0162en1040 06/99 8.32 MM4005 appendix f decimal / ascii / binary conversion table 168 10101000 169 10101001 170 10101010 171 10101011 172 10101100 173 10101101 174 10101110 175 10101111 176 10110000 177 10110001 178 10110010 179 10110011 180 10110100 181 10110101 182 10110110 183 10110111 184 10111000 185 10111001 186 10111010 187 10111011 188 10111100 189 10111101 190 10111110 191 10111111 192 11000000 193 11000001 194 11000010 195 11000011 196 11000100 197 11000101 198 11000110 199 11000111 200 11001000 201 11001001 202 11001010 203 11001011 204 11001100 205 11001101 206 11001110 207 11001111 208 11010000 209 11010001 210 11010010 211 11010011 212 11010100 213 11010101 214 11010110 215 11010111 216 11011000 217 11011001 218 11011010 219 11011011 220 11011100 221 11011101 222 11011110 223 11011111 224 11100000 225 11100001 226 11100010 227 11100011 228 11100100 229 11100101 230 11100110 231 11100111 232 11101000 233 11101001 234 11101010 235 11101011 236 11101100 237 11101101 238 11101110 239 11101111 240 11110000 241 11110001 242 11110010 243 11110011 244 11110100 245 11110101 246 11110110 247 11110111 248 11111000 249 11111001 250 11111010 251 11111011 252 11111100 253 11111101 254 11111110 255 11111111 number ascii binary (decimal) code code number ascii binary (decimal) code code free datasheet http:// 8.33 edh0162en1040 06/99 MM4005 4-axis motion controller/driver g factory service g.1 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. any problem that cannot be resolved should be referred to newport corporation or your newport representative for assistance. g.2 obtaining service to obtain information about factory service, contact newport corporation or your newport representative. please have the following information available: 1 instrument model number (MM4005). 2 instrument serial number. 3 firmware version number. 4 description of the problem. if the instrument is to be returned for repair, you will be given a return authorization number, which you should refer to in your shipping docu- ments. please fill out the service form on the next page and return the com- pleted form with your system. free datasheet http:// edh0162en1040 06/99 8.34 MM4005 4-axis motion controller/driver free datasheet http:// 8.35 edh0162en1040 06/99 service form your local representative tel. : fax: name: compagny: adress: country: p.o. number: item(s) being returned: model #: description: reasons of return of goods (please list any specific problems): return authorization #: (please obtain prior to return of item) date: phone number: fax number: serial #: free datasheet http:// edh0162en1040 06/99 8.36 free datasheet http:// section 9 index free datasheet http:// MM4005 4-axis motion controller/driver free datasheet http:// 9.1 edh0162en1040 ?05/99 MM4005 4-axis motion controller/driver section 9 index $ parameter ..................................6.16 ? parameter ..................................6.11 a abort ............................................................ command line ................................3.62 motion.............................................3.16 program ..........................................3.20 absolute moves ...................................2.34 multiple axes .................................2.35 single axis ......................................2.35 absolute position move to...............3.92 acceleration .........................................2.24 on trajectory define the vector ..3.152 on trajectory tell the vector...3.180 maximum ........................................4.12 read desired ..................................3.35 set....................................................3.17 vector ...............................................5.3 accuracy.................................................4.5 local..................................................4.6 acquisition .................................................. asynchronous................................6.17 axis positions ................................3.21 actual position ............................................ in variable set ...........................3.196 read ..............................................3.136 add ............................................................... to variable ....................................3.183 variables .......................................3.185 address ieee-488 ..............................2.12 affect string..........................................3.22 allow generation of .................................... pulses on interpolation.................3.86 pulses on motion ...........................3.97 analog input ................................................ mode set ......................................3.19 output.............................................6.19 read ..............................................3.102 angle ............................................................. and build an arc of circle = (cr, ca) define sweep........................3.26 for the first point define the tan- gent..................................................3.52 of discontinuity define the maxi- mum allowed..................................3.18 of discontinuity tell the current maximum allowed .......................3.167 arcs defining .......................................5.6 assign a physical axis as ........................... x geometric axis ............................3.23 y geometric axis ............................3.24 asynchronous acquisition.................6.17 automatic .................................................... displacement units change .........6.10 program execution on power-on ...........................................................6.9 automatical execution on power on .........................................................3.47 auxiliary connector ...................1.14, 8.11 axes (electronic gearing) synchronized ...................................6.8 axis..........................................................1.6 displacement units set.............3.117 general parameters configuration read ..............................................3.203 home sequence ............................2.14 infinite movement .........................2.36 mechanical motion device set .......................................................3.113 modules ..........................................1.13 number selection ..........................2.17 number incorrect .........................8.3 oscillation ........................................7.4 parameters modifying................2.18 positions acquisition ....................3.21 setup ...............................................2.16 synchronization...........................3.124 b backlash................................................2.28 compensation read..................3.168 compensation set .......................3.25 hysteresis.........................................4.8 base velocity set.............................3.150 baud rate .............................................2.12 bits stop.............................................2.14 blank spaces ..........................................3.7 buffer communication .......................3.6 c cable rs-232c interface ...................8.15 calculate necessary time for axis dis- placement.......................................3.98 calculation overflow .............................8.3 capacity load ...................................4.10 change communication mode ...........3.29 changing the display precision.........6.15 clear ............................................................. function key line ............................3.54 i/o outputs bits..............................3.27 combined parameters ........................4.12 command .................................................... authorized only in programming mode .................................................8.3 cannot be at the beginning of a line 8.3 format...............................................3.7 in programming mode unauthorized ...........................................................8.3 language set ....................................2.9 line....................................................3.7 line creation..................................2.39 line abort.....................................3.62 line repeat.................................3.107 lines..................................................3.6 list - alphabetical..........................3.13 list by category...............................3.8 not at the beginning of a line .........8.3 summary...........................................3.8 syntax ...............................................3.7 unauthorized ................................8.3 commands................................................... to define a trajectory ....................3.11 to execute a trajectory..................3.12 to help geometric definition of a tra- jectory.............................................3.12 reporting .....................................5.10 common function keys......................1.17 communication ...................................2.11 buffer.................................................3.6 mode change ..............................3.29 principles..........................................3.6 protocol ............................................3.4 time-out .........................................2.10 time-out.............................................8.3 communications mode load ..........6.19 compile program.................................3.30 computer interfaces ...........................1.10 concatenate two strings.....................3.32 conditions storage ...........................1.10 configuration .............................................. controller .........................................2.7 display ............................................1.16 hardware ..........................................3.4 connecting motion devices ...............1.21 connector.................................................... gpio .......................................1.13, 8.13 ieee-488 ..........................................1.14 motor interface ..............................8.17 pass-through board .....................8.18 pinouts..............................................8.9 power inhibition .....................1.14, 8.9 remote control.....................1.14, 8.10 rs-232c ..................................1.14, 8.14 continuous motion................................6.9 control ......................................................... and sequencing flow..................3.10 loop ................................................2.20 loop type read..........................3.127 loop type set .............................3.110 free datasheet http:// edh0162en1040 05/99 9.2 MM4005 index loops ..............................................4.13 motion and position........................3.8 stepper motor..................................1.9 controller ...............................................1.6 activity read .............................3.142 configuration ...................................2.7 extended status read...............3.143 reset .............................................3.108 responses ........................................3.6 status read................................3.139 version read .............................3.151 conventions and definitions ...............1.5 copy variable .....................................3.201 cpu type .................................................1.9 creating a program .............................2.38 creation command line ..................2.39 cycle value and activate periodic dis- play mode set..............................3.28 d dc motor ..............................................4.28 control ..............................................1.9 drivers ............................................4.31 decimal digits number of position dis- play set ........................................3.84 decimal/ascii/binary conversion table. 8.30 default.......................................................... devices verifying........................1.22 mode ...............................................6.20 define ........................................................... home ...............................................3.37 label.................................................3.38 radius for anarc of circle = (cr, ca)...................................................3.31 sweep angle and build anarc of cir- cle = (cr, ca) ..............................3.26 the maximum allowed angleof dis- continuity .......................................3.18 the tangent angle for the first point .........................................................3.52 the vector acceleration on trajectory .......................................................3.152 the vector velocity on trajectory .......................................................3.153 x position and build aline segment = (lx, tangent) ...............................3.69 x position for aline segment = (mx, my)..................................................3.78 x position to reach with anarc of cir- cle = (cx, cy) ..............................3.33 y position and build aline segment = (ly, tangent) ...............................3.70 y position and build aline segment = (mx, my) .....................................3.79 y position to reach and build anarc of circle = (cx, cy) .....................3.34 defining........................................................ arcs ...................................................5.6 lines..................................................5.6 trajectory elements........................5.5 definition of terms................................5.3 definitions ................................................... conventions and .............................1.5 specification.....................................4.4 symbols and.....................................1.5 delete one line of program...............3.174 derivative gain ............................................ factor read ................................3.169 set....................................................3.63 device motion .....................................1.6 digital filter parameters........................3.9 dimensions...........................................1.10 disable display refresh .....................3.104 displacement units read ...............3.135 display ..................................................1.10 display a variable ................................3.44 configuration .................................1.16 function keys.........................1.16, 3.55 functions.........................................3.11 organization...................................1.16 program error ................................3.45 refresh disable..........................3.104 refresh enable...........................3.105 resolution ......................................2.29 strings on screen ...........................3.42 status ..............................................1.17 structure.........................................1.18 zero .................................................2.32 divide variables .................................3.186 download eeprom to ram ...............3.74 drivers ..................................................4.29 stepper motor................................4.29 e editing program ................................6.13 edition of program ..............................3.48 eeprom....................................................... failure while accessing the ............8.3 to ram download.......................3.74 element ........................................................ number under execution tell the.... 3.23 parameters trajectory.................5.9 trajectory.........................................5.3 elements definition commands trajectory.......................................5.10 emergency language reset .................2.9 enable display refresh ......................3.105 encoder...................................................1.6 increment .......................................2.21 resolution read.........................3.141 encoders...............................................4.21 end ............................................................... position of generation of pulsesof synchronisation set ...................3.94 while loop ....................................3.155 erase............................................................. the last element of trajectory ......3.46 program ........................................3.182 error ........................................................4.5 at stop (not in position) ................7.5 code read ..................................3.129 during home search cycle ..............8.3 during motion following .............7.6 following ..........................................4.4 line of program read................3.128 list.....................................................8.3 maximum ........................................2.28 message read ...........................3.126 messages ..........................................8.3 reporting........................................6.13 too large following.....................7.5 events to...................................................... motion synchronizing..................6.3 trajectory elements synchronizing ...........................................................6.6 trajectory position synchronizing ...........................................................6.7 execute a program ..............................3.51 executing sub-routines in a program ..6.18 execution of ................................................ of a trajectory ...............................5.10 of trajectory ...................................3.50 on power-on automatic program 6.9 program ..........................................2.35 unauthorized ...................................8.3 extended list of the trajectory ...........3.68 f factor saturation level in position pid loop corrector integrator.........6.21 factory service ....................................8.33 failure while accessing the eeprom..8.3 feed-forward loops ...........................4.15 filter parameters read ...................3.130 firmware updates ...............................6.13 first .............................................................. jog .....................................................2.4 move..................................................2.5 power on ........................................1.21 flow control and sequencing.............3.10 following error ......................................4.4 during motion ..................................7.6 too large .........................................7.5 read ................................................3.36 read maximum ............................3.171 format command ...............................3.7 front panel description......................1.15 function..................................................1.9 function key...........................................1.6 common .........................................1.17 display ...................................1.16, 3.55 line clear......................................3.54 label................................................3.53 wait for .........................................3.156 functions ..................................................... display ............................................3.11 status ..............................................3.11 fuses .....................................................1.10 g gain saturation limit integral.........6.13 general......................................................... concepts.........................................2.38 mode selection ................................3.8 parameters save .......................3.101 setup .................................................2.7 free datasheet http:// 9.3 edh0162en1040 05/99 MM4005 index generate service request .................3.108 geometric conventions ........................5.4 global ........................................................... acquisition nr. read ...................3.85 sample rate read ......................3.178 sample rate set .........................3.120 trace data read.........................3.137 trace mode set ............................3.59 gpio connector ..........................1.13, 8.13 ground post .........................................1.14 h hardware ..................................................... configuration ...................................3.4 requirements...................................7.3 home .......................................................1.6 define ..............................................3.37 motion devices ................................2.4 preset ..............................................2.25 preset position read ................3.172 preset position set ...................3.114 search .............................1.6, 2.30, 4.18 search acceleration set .............3.87 search cycle error during............8.3 search for .......................................3.91 search high velocity set ............3.89 search low velocity set ..............3.90 search velocity read..................3.40 sequence axis .............................2.14 speed...............................................2.23 time-out .........................................2.10 type ................................................2.19 hysteresis backlash ...........................4.8 i i/o ................................................................ channel number incorrect...........8.3 functions.........................................3.10 high wait for..............................3.147 input is equal if ...........................3.61 input is equal while .................3.158 input read .................................3.103 low wait for ...............................3.148 output bits set ..........................3.109 output bits toggle ....................3.131 output byte set .........................3.118 output read...............................3.106 output test..................................3.88 outputs bits clear.......................3.27 ieee-488 ....................................................... address...........................................2.12 connector.......................................1.14 function subsets .............................8.7 functions supported by MM4005 controller .........................................8.6 interface............................................3.4 interface connector (24-pin)........8.16 link characteristics ........................8.6 rs-232-c or .......................................3.6 srq used ........................................2.12 if ................................................................ i/o input is equal ...........................3.61 variable is different .....................3.193 variable is equal ..........................3.187 variable is greater .......................3.189 variable is less .............................3.191 immediate mode ..................................1.12 incorrect ...................................................... axis number......................................8.3 i/o channel number ........................8.3 label number ....................................8.3 increasing performance........................7.5 increment .................................................... encoder...........................................2.21 motor ..............................................2.21 index pulse .............................................1.6 infinite movement ...............................3.77 axis..................................................2.36 stop axis.........................................2.37 initialize variable ...............................3.198 integral gain................................................. factor read ................................3.173 saturation limit .............................6.13 set....................................................3.64 integrator factor saturation level in position pid loop corrector........6.21 interface....................................................... connector ieee-488 ....................8.16 ieee-488 ............................................3.4 rs-232-c ............................................3.4 selecting the.....................................3.3 utility ..............................................1.10 interfaces .................................................... computer........................................1.10 remote..............................................3.3 j jog ..................................................1.6, 4.18 first ...................................................2.4 manual ............................................2.30 joystick .................................................6.14 jump to label........................................3.62 kd .........................................................2.27 key ................................................................ to variable read........................3.190 wait for .........................................3.160 keypad numeric ...............................1.16 ki .........................................................2.26 kp .........................................................2.26 ks .........................................................2.27 l label............................................................. define ..............................................3.38 function key....................................3.53 number incorrect .........................8.3 undefined .........................................8.3 labeling conventions ...........................8.9 language...................................................... selection ...........................................2.8 set command ................................2.9 last element tell the.......................3.170 length word......................................2.14 lines defining......................................5.6 list program.........................................3.67 load.............................................................. capacity..........................................4.10 communications mode.................6.19 local............................................................. accuracy...........................................4.6 mode ...............................................1.11 mode operating in......................2.29 mode programming in ...............2.37 mode remote commands in .....1.12 mode set ......................................3.73 loop ............................................................. control ............................................2.20 creation while...........................2.42 end while .....................................3.155 p.......................................................4.14 pi......................................................4.14 pid ...................................................4.15 loops ........................................................... control ............................................4.13 feed-forward .................................4.15 pid servo ........................................4.13 m manipulation variable......................3.11 manual ......................................................... jog ...................................................2.30 mode set ......................................3.71 speed...............................................2.23 velocity read...............................3.39 velocity set ..................................3.72 master-slave ................................................ following error set maximum .........................................................3.57 mode definition ....................2.15, 3.12 mode set ....................................3.122 reduction ratio set .....................3.60 maximum ..................................................... acceleration ...................................4.12 error................................................2.28 following error set......................3.56 position...........................................2.25 speed...............................................2.22 velocity...........................................4.11 mechanical familly name incorrect ...........................................................8.4 memory........................................................ program ..........................................1.10 read available..............................3.175 menu ............................................................ motor on.....................................1.19 structure.........................................1.17 message code unknown ....................8.3 messages error ...................................8.3 minimum...................................................... incremental motion.........................4.7 position...........................................2.24 velocity...........................................4.11 MM4005 controller ................................1.6 mode ............................................................ definition master-slave.....2.15, 3.12 immediate.......................................1.12 local .............................................1.11 periodic display.............................6.15 remote..........................................1.12 xon/xoff ......................................2.13 modes of operation ............................1.11 free datasheet http:// edh0162en1040 05/99 9.4 MM4005 index modifying..................................................... a program .......................................2.43 axis parameters.............................2.18 modules axis.....................................1.13 motion.......................................................... and position control .......................3.8 axes number of.............................1.9 device................................................1.6 device compatibility .......................1.9 device parameters...........................3.9 device selection ............................2.17 device read ...............................3.125 motion ....................................................... abort ...............................................3.16 continuous .......................................6.9 draw ..................................................3.6 minimum incremental.....................4.7 profiles............................................4.17 prog ...................................................3.6 program examples ........................8.19 servo .................................................3.6 stop ...............................................3.123 stop wait for .............................3.164 suite ..................................................3.5 systems.............................................4.3 term..................................................3.5 type ................................................2.19 motor ........................................................... increment .......................................2.21 interface connector ......................8.17 off ..................................................3.71 off menus......................................1.18 on ......................................................2.3 on....................................................3.73 on/off..............................................1.15 status read..................................3.75 type ................................................2.19 motors...................................................4.23 move...............................................1.6, 4.17 to absolute position ......................3.92 to relative position ........................3.96 to travel limit switch .....................3.76 first ................................................2.5 movement infinite.............................3.77 moves........................................................... absolute..........................................2.34 relative ...........................................2.32 multiple........................................................ axes absolute move......................2.35 axes relative move .......................2.34 driving using rs-232-c addressable multiply variables........................3.192 n name incorrect mechanical familly ...........................................................8.4 negate variable ..................................3.184 number ........................................................ of acquisitions read.................3.176 of motion axes .................................1.9 of we commands does not match the number of open loops ..............8.3 out of range variable....................8.3 selection axis..............................2.17 numeric keypad ..................................1.16 o obtaining ..................................................... service ............................................8.33 operating..................................................... conditions.......................................1.10 in local mode.................................2.29 modes .............................................1.10 operation modes of..........................1.11 organization display........................1.16 origin ......................................................1.6 switch................................................1.6 oscillation axis ...................................7.4 output frequency set........................3.58 overflow calculation ..........................8.3 p p loop ...................................................4.14 parameter out of limits .........................8.3 parameters .................................................. combined .......................................4.12 digital filter.......................................3.9 motion device ..................................3.9 save .................................................3.99 special motion .................................3.9 trajectory definition .......................3.8 with "?" reading..........................6.11 parity.....................................................2.13 pass-through board connector 8.18 periodic display mode........................6.15 periodicity ............................................2.20 pi loop ..................................................4.14 pid1 . 6 loop ................................................4.15 servo loops ...................................4.13 pitch, roll and yaw ...............................4.9 points to remember..............................7.6 position........................................................ and build aline segment = (lx, tan- gent) define x..............................3.69 and build aline segment = (ly, tan- gent) define y .............................3.70 and build aline segment = (mx, my) define y ...............................3.79 for aline segment = (mx, my) define x...........................................3.78 maximum ........................................2.25 minimum.........................................2.24 read desired ..................................3.41 to reach and build anarc of circle = (cx, cy) define y........................3.34 to reach with anarc of circle = (cx, cy) define x ................................3.33 wait for .........................................3.163 zero ...............................................3.202 power ........................................................... inhibition connector..............1.14, 8.9 on automatical execution on ....3.47 on first.........................................1.21 on program automatical execution on.....................................................2.16 requirements..................................1.10 stand-by..........................................1.15 switch/entry module ....................1.14 precision changing the display .........................................................6.15 profile type ..........................................2.16 profiles motion..................................4.17 program ....................................................... abort ...............................................3.20 compile...........................................3.30 creating a .......................................2.38 delete one line of.........................3.174 does not exist...................................8.3 editing.............................................6.13 edition of ........................................3.48 erase .............................................3.182 error display ...............................3.45 execute a ........................................3.51 execution........................................2.35 is too long.........................................8.3 list...................................................3.67 memory...........................................1.10 mode quit..................................3.100 modifying a.....................................2.43 number incorrect ............................8.3 save ...............................................3.116 programming...............................1.10, 3.10 a trajectory......................................5.8 in local mode.................................2.37 mode command authorized only in ...........................................................8.3 proportional gain........................................ factor read ................................3.177 set....................................................3.65 pulses on interpolation allow genera- tion ..................................................3.86 pulses on motion allow generation..3.97 pulses synchronized to a trajectory..6.5 pulses synchronized to one axis........6.3 q quick ............................................................ start...................................................2.3 program mode .............................3.100 r radius for anarc of circle = (cr, ca) define ..............................................3.31 read ............................................................. a value from an user analog portand affect variable ..............................3.197 a variable ......................................3.145 actual position .............................3.136 analog input .................................3.102 available memory ........................3.175 axis / general parameters configura- tion ................................................3.203 backlash compensation..............3.168 control loop type.........................3.127 controller activity........................3.142 controller extended status.........3.143 controller status ..........................3.139 controller version........................3.151 derivative gain factor..................3.169 desired acceleration .....................3.35 desired position.............................3.41 desired velocity .............................3.43 displacement units......................3.135 free datasheet http:// 9.5 edh0162en1040 05/99 MM4005 index encoder resolution......................3.141 error code.....................................3.129 error line of program ..................3.128 error message ..............................3.126 filter parameters..........................3.130 following error ...............................3.36 global acquisition nr. ....................3.85 global sample rate .......................3.178 global trace data..........................3.137 home preset position..................3.172 home search velocity....................3.40 i/o input........................................3.103 i/o output .....................................3.106 integral gain factor ......................3.173 key to variable .............................3.190 left travel limit .............................3.133 manual velocity .............................3.39 maximum following error...........3.171 motion device ..............................3.125 motor status...................................3.75 number of acquisitions...............3.176 proportional gain factor .............3.177 right travel limit...........................3.138 theoretical position.....................3.132 trace data .....................................3.140 trace sample rate.........................3.179 value from keyboard in a variable .......................................................3.199 reading parameters with "?"..............6.11 rear panel description .......................1.13 regulation velocity ..........................4.12 relative ........................................................ move multiple axes....................2.34 move single axis.........................2.33 moves..............................................2.32 position move to.........................3.96 remote....................................................1.6 commands in local mode .........1.12 control connector................1.14, 8.10 interfaces..........................................3.3 mode ...............................................1.12 mode set ......................................3.74 repeat command line .......................3.107 repeatability ..........................................4.8 reporting commands .........................5.10 reset controller .................................3.108 resolution ..............................................4.6 display ............................................2.29 responses controller.........................3.6 rs-232-c ....................................................... addressable mode multiple connector.......................................1.14 interface............................................3.4 or ieee-488?......................................3.6 interface cable...............................8.15 interface connector ......................8.14 s safety considerations ...........................1.3 saturation level of integral factorin posi- tion loop pid corrector set .......3.66 save .............................................................. general parameters .....................3.101 parameters .....................................3.99 program ........................................3.116 scale variable .....................................3.188 scaling speed .....................2.9, 2.22, 3.111 search for home ..................................3.91 selecting the interface ..........................3.3 selection ...................................................... language...........................................2.8 stage type ......................................6.11 send a value to an user analog port3.194 separator ................................................3.7 service form ........................................8.35 servo ............................................................ filter update ..............................3.146 tuning principles ............................7.3 set ................................................................ acceleration....................................3.17 actual position in variable..........3.196 analog input mode.........................3.19 axis displacement units ..............3.117 axis mechanical motion device .3.113 backlash compensation................3.25 base velocity ................................3.150 control loop type.........................3.110 cycle value and activate periodic display mode..................................3.28 decimal digits number of position display ............................................3.84 derivative gain ...............................3.63 end position of generation of puls- esof synchronisation.....................3.94 global sample rate .......................3.120 global trace mode..........................3.59 home preset position..................3.114 home search acceleration ............3.87 home search high velocity ...........3.89 home search low velocity ............3.90 i/o output bits .............................3.109 i/o output byte ............................3.118 integral gain ...................................3.64 left travel limit .............................3.115 local mode ......................................3.73 manual mode .................................3.71 manual velocity .............................3.72 master-slave mode ......................3.122 master-slave reduction ratio........3.60 maximum following error.............3.56 maximum master-slave following error ................................................3.57 number of synchronisation pulses to generate ..........................................3.83 output frequency...........................3.58 proportional gain...........................3.65 remote mode..................................3.74 right travel limit...........................3.121 saturation level of integral factorin position loop pid corrector .........3.66 start position of generation of puls- esof synchronisation.....................3.93 step (curvi-linear distance)between synchronisation pulses ................3.82 step of generation of pulses of syn- chronisation ...................................3.95 theoretical position in variable .3.195 trace mode ...................................3.134 trace sample rate.........................3.119 trajectory elementwhere the genera- tion of pulses ends ........................3.81 trajectory elementwhere the genera- tion of pulses starts ......................3.80 velocity .........................................3.149 setup ............................................................ axis..................................................2.16 commands trajectory ...............5.10 system.............................................1.20 single axis ................................................... absolute move ...............................2.35 relative move ................................2.33 software requirements ........................7.3 softwares ................................................3.4 special motion parameters ..................3.9 specification definitions.......................4.4 specifications.........................................1.9 speed............................................................ home ..............................................2.23 manual ............................................2.23 maximum ........................................2.22 scaling...........................2.9, 2.22, 3.111 srq using ...............................................8.7 stage........................................................1.6 type selection ...............................6.11 stand-by power .................................1.15 start.............................................................. definition of a new trajectory ......3.87 position of generation of pulsesof synchronisation set ...................3.93 synchronized motion ..................3.112 status ........................................................... display ............................................1.17 functions ........................................3.11 step............................................................... between synchronisation pulses set....................................................3.82 of generation of pulses of synchroni- sation set .....................................3.95 stepper motor............................................. control ..............................................1.9 drivers ............................................4.29 stepper motors ....................................4.24 stop .............................................................. axis infinite movement .................2.37 bits ..................................................2.14 errors at ...........................................7.5 motion...........................................3.123 storage conditions ..............................1.10 string ............................................................ affect ...............................................3.22 strings .......................................................... concatenate two............................3.32 on screen display .......................3.42 structure...................................................... display ............................................1.18 menu ...............................................1.17 sub-routines in a program executing6.18 symbols and definitions .......................1.5 synchronization.......................................... axis................................................3.124 axes (electronic gearing) ..............6.8 commands trajectory ...............5.10 free datasheet http:// edh0162en1040 05/99 9.6 MM4005 index motion start ..............................3.112 pulses generation impossible ........8.4 pulses to generate set number of . 3.83 synchronizing ............................................. events to motion .............................6.3 events to trajectory elements ......6.6 events to trajectory position ........6.7 syntax command................................3.7 system setup........................................1.20 systems motion ..................................4.3 t tell................................................................ number of elements in the trajectory .......................................................3.179 the current maximum allowed angle- of discontinuity............................3.167 the element number under execu- tion ..................................................3.23 the last element ...........................3.170 the vector acceleration on trajectory .......................................................3.180 the vector velocity on trajectory.3.181 terminator ....................................2.11, 3.7 terminology ...........................................1.6 terms definition of.............................5.3 test i/o output ....................................3.88 theoretical ................................................... position in variable set ............3.195 position read ............................3.132 time for axis displacement calculate necessary........................................3.98 time-out....................................................... communication ......................2.10, 8.3 home ..............................................2.10 toggle i/o output bits.......................3.131 too long trajectory ...............................8.3 trace ............................................................. data read...................................3.140 mode .................................................3.9 mode on trajectory .......................3.12 mode set ....................................3.134 sample rate read ......................3.179 sample rate set .........................3.119 trajectory...............................................5.3 arc (r, ) radius is too big ..............8.4 arc (r, ) radius is too small ..........8.4 arc (r, ) sweep angle is too small8.4 arc (x, y) circle is impossible........8.4 arc (x, y) circle is too small ...........8.4 arc expected ....................................8.4 commands to define a ..................3.11 commands to execute a ...............3.12 commands to help geometric defini- tion of a...........................................3.12 definition parameters .....................3.8 description and conventions ........5.4 element .............................................5.3 element parameters........................5.9 elements definition commands ..5.10 elements defining.........................5.5 elementwhere the generation of erase the last element of ..............3.46 length wait for a .......................3.159 pulses ends set ...........................3.81 elementwhere the generation of exe- cution exceeds physical or logical limits .................................................8.4 execution of ...................................3.50 execution of a ................................5.10 extended list of the3.68 pulses starts set.................................................3.80 first angle definition error ..............8.4 line (x, ) or line (y, ) impossible ..8.4 line (x, y) line expected ................8.4 line (x, y) too big discontinuity ....8.4 programming a ................................5.8 pulses synchronized to a ...............6.5 setup commands...........................5.10 specific commands.......................5.10 start definition of a new ...............3.87 synchronization commands ........5.10 tell number of elements in the..3.179 to big discontinuity angle...............8.3 too long............................................8.3 trace mode on...............................3.12 trajectory is empty..........................8.4 type ...................................................1.9 units not translationnal or not iden- tical....................................................8.4 vector ...............................................5.3 wait for a element of...................3.162 travel limit ................................................... read left........................................3.133 read right .....................................3.138 set left ...........................................3.115 set right ........................................3.121 switch move to ...........................3.76 troubleshooting guide.......................8.27 tuning procedures................................7.4 type trajectory ...................................1.9 u unauthorized .............................................. command..........................................8.3 command in programming mode ..8.3 execution ..........................................8.3 undefined label......................................8.3 unit ............................................................... not rotationnal or incorrect...........8.4 not translational or incorrect ........8.4 units ......................................................2.18 change automatic displacement.6.10 unknown message code .......................8.3 update servo filter.............................3.146 updates firmware ............................6.13 utility interface ....................................1.10 v value............................................................. from an user analog portand affect variable read a .........................3.197 from keyboard in a variable read .......................................................3.199 to an user analog port send a .3.194 variable ........................................................ add to ...........................................3.183 copy ..............................................3.201 display a .........................................3.44 initialize ........................................3.198 is different if ..............................3.193 is different while ......................3.166 is equal if ...................................3.187 is greater if ................................3.189 is greater while.........................3.157 is less if ......................................3.191 is less while...............................3.161 manipulation ..................................3.11 negate ...........................................3.184 number out of range .......................8.3 read a ...........................................3.145 scale ..............................................3.188 variables ...................................................... add ................................................3.185 divide ............................................3.186 multiply.........................................3.192 vector .......................................................... acceleration .....................................5.3 trajectory.........................................5.3 velocity.............................................5.3 velocity ........................................................ maximum ........................................4.11 minimum.........................................4.11 on trajectory define the vector .......................................................3.153 on trajectory tell the vector...3.181 read desired ..................................3.43 regulation ......................................4.12 set..................................................3.149 vector ...............................................5.3 verifying default devices ...................1.22 w wait ..........................................3.154, 3.165 and read key.................................3.200 for a element of trajectory .........3.162 for a trajectory length.................3.159 for function key............................3.156 for i/o high ...................................3.147 for i/o low.....................................3.148 for key ...........................................3.160 for motion stop ............................3.164 for position...................................3.163 weight ...................................................1.10 while ............................................................ i/o input is equal .........................3.158 loop creation ................................2.42 variable is different .....................3.166 variable is greater .......................3.157 variable is less .............................3.161 wobble..................................................4.10 word length ........................................2.14 x xon/xoff mode..................................2.13 z zero .............................................................. display ............................................2.32 position.........................................3.202 free datasheet http:// i edh0162en1040 05/99 command description imm pgm mip MM4005 command list by category general mode selection xx cd nn set cycle value and activate periodic display mode cm [nn] change communication mode mc set manual mode [xx] mf motor off ml set local mode mo motor on mr set remote mode qw save general parameters rs reset controller motion and position control ab abort motion [xx] dh define home xx mt nn move to travel limit switch [xx] or [nn] search for home xx pa nn move to absolute position xx pr nn move to relative position se start synchronized motion [xx] st stop motion [xx] zp zero position trajectory definition parameters xx ac nn set acceleration xx da pp read desired acceleration [xx] df read following error [xx] dp read desired position xx dv pp read desired velocity xx mv + or - infinite movement sd nn speed scaling [xx] th read theoretical position [xx] tp read actual position xx va nn set velocity xx vb nn set base velocity (stepper motor only) 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 xx ol nn set home search low velocity xx pa nn move to absolute position xx pb nn set start position of generation of pulses of synchronisation xx pe nn set end position of generation of pulses of synchronisation xx pi nn set step of generation of pulses of synchronisation xx ps pp allow generation of pulses on motion xx pt nn calculate necessary time for axis displacement xx sh nn set home preset position xx sy nn axis synchronization xx xh read home preset position trace mode xx aq nn axis positions acquisition gq nn set global trace mode nq read global acquisition nr. sp [nn] set trace sample rate sq [nn] set global sample rate xx tm nn set trace mode [xx] tq [nn] read global trace data [xx] tt read trace data xn read number of acquisitions xq read global sample rate xs read trace sample rate digital filter parameters xx fe nn set maximum following error xx kd nn set derivative gain xx ki nn set integral gain xx kp nn set proportional gain xx ks nn set saturation level of integral factor in position loop pid corrector [xx] pw save parameters xx tf read filter parameters [xx] uf update servo filter xx xd read derivative gain factor xx xf read maximum following error xx xi read integral gain factor xx xp read proportional gain factor motion device parameters xx ba [nn] set backlash compensation xx sc [nn] set control loop type xx sf name set axis mechanical motion device xx sl nn set left travel limit xx sn name set axis displacement units xx sr nn set right travel limit xx ta read motion device xx tc read control loop type xx tl read left travel limit xx tn read displacement units xx tr read right travel limit xx tu read encoder resolution xx xb read backlash compensation [xx] zt [nn] read axis/general parameters configuration 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 [xx] ro read i/o output [xx] sb [nn] set i/o output bits so [nn] set i/o output byte [xx] tg [nn] toggle i/o output bits xx yo nn send a value to an user analog port xx yr nn read a value from an user analog port and affect variable programming ap abort program xx cp compile program xx eo nn automatical execution on power on xx ep nn edition of program xx ex [nn] execute a program xx lp list program mp download eeprom to ram qp quit program mode sm save program xx xl nn delete one line of program xm read available memory [xx] xx erase program <$flow control and sequencing xx dl define label [xx] ie nn if i/o input is equal xx jl jump to label kc abort command line [xx] oe nn test i/o output rp [nn] repeat command line rq nn generate service request (srq) [xx] uh wait for i/o high [xx] ul wait for i/o low wa [nn] wait we end while loop xx wf wait for function key xx wg [nn] while variable is greater xx wh [nn] while i/o input is equal wk [aa] wait for key xx wl [nn] while variable is less xx wp nn wait for position [xx] ws [nn] wait for motion stop wt [nn] wait xx wy [nn] while variable is different xx ye [nn] if variable is equal xx yg [nn] if variable is greater xx yl [nn] if variable is less xx yn [nn] if variable is different xx yw wait and read key 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 add variables xx yd nn divide variables xx yf nn scale variable xx yk read key to variable xx ym nn multiply variables xx yp nn set theoretical position in variable xx yq nn set current position in variable xx ys [nn] initialize variable xx yv read value from keyboard in a variable xx yy nn copy variable display functions xx ds [nn] display strings on screen xx dy nn display a variable xx fb [aa] label function key fc clear function key line fd display function keys xx np nn set decimal digits number of position display rd disable display refresh re enable display refresh status functions ed nn display program error [xx] ms read motor status tb [aa] read error message td read error line of program te read error code ts read controller status tx read controller activity tx1 read controller extended status ve read controller version commands to define a trajectory ad nn define the maximum allowed angle of discontinuity xx ax assign a physical axis as x geometric axis xx ay assign a physical axis as y geometric axis ca nn define sweep angle and build an arc of circle = (cr, ca) cr nn define radius for anarc of circle = (cr, ca) cx nn define x position to reach with an arc of circle = (cx, cy) cy nn define y position to reach and build an arc of circle = (cx, cy) el erase the last element of trajectory fa nn define the tangent angle for the first point lx nn define x position and build a line segment = (lx, tangent) ly nn define y position and build a line segment = (ly, tangent) mx nn define x position for a line segment = (mx, my) my nn define y position and build a line segment = (mx, my) nt start definition of a new trajectory commands to execute a trajectory et 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 wn nn wait for a element of trajectory commands to help geometric definition of a trajectory at tell the element number under execution xx lt extended list of the trajectory xa tell the current maximum allowed angle of discontinuity xe tell the last element xt tell number of elements in the trajectory xu nn tell the vector acceleration on trajectory (trajectory acceleration) xv nn tell the vector velocity on trajectory (trajectory velocity) master-slave mode definition xx ff nn set maximum master-slave following error xx gr nn set master-slave reduction ratio xx ss np set master-slave mode trace mode on trajectory nb nn set trajectory element where the generation of pulses starts ne nn set trajectory element where the generation of pulses ends ni nn set step (curvi-linear distance) between synchronisation pulses nn nn set number of synchronisation pulses to generate ns allow generation of pulses on interpolation command description imm pgm mip free datasheet http:// edh0162en1040 05/99 ii MM4005 command list alphabetical command description imm pgm mip command description imm pgm mip ab abort motion xx ac nn set acceleration ad nn define the maximum allowed angle of discontinuity xx am nn set analog input mode ap abort program xx aq nn axis positions acquisition xx as nn affect string at tell the element number under execution xx ax assign a physical axis as x geometric axis xx ay assign a physical axis as y geometric axis xx ba [nn] set backlash compensation ca nn define sweep angle and build an arc of circle = (cr, ca) [xx] cb [nn] clear i/o outputs bits xx cd nn set cycle value and activate periodic display mode cm [nn] change communication mode xx cp compile program cr nn define radius for anarc of circle = (cr, ca) xx cs nn concatenate two strings cx nn define x position to reach with an arc of circle = (cx, cy) cy nn define y position to reach and build an arc of circle = (cx, cy) xx da pp read desired acceleration [xx] df read following error [xx] dh define home xx dl define label xx dm read manual velocity xx do read home search velocity [xx] dp read desired position xx ds [nn] display strings on screen xx dv pp read desired velocity xx dy nn display a variable ed nn display program error el erase the last element of trajectory xx eo nn automatical execution on power on xx ep nn edition of program et execution of trajectory xx ex [nn] execute a program fa nn define the tangent angle for the first point xx fb [aa] label function key fc clear function key line fd display function keys xx fe nn set maximum following error xx ff nn set maximum master-slave following error ft nn set output frequency gq nn set global trace mode xx gr nn set master-slave reduction ratio [xx] ie nn if i/o input is equal xx jl jump to label kc abort command line xx kd nn set derivative gain xx ki nn set integral gain xx kp nn set proportional gain xx ks nn set saturation level of integral factor in position loop pid corrector xx lp list program xx lt extended list of the trajectory lx nn define x position and build a line segment = (lx, tangent) ly nn define y position and build a line segment = (ly, tangent) mc set manual mode [xx] mf motor off xx mh nn set manual velocity ml set local mode mo motor on mp download eeprom to ram mr set remote mode [xx] ms read motor status xx mt nn move to travel limit switch xx mv + or - infinite movement mx nn define x position for a line segment = (mx, my) my nn define y position and build a line segment = (mx, my) nb nn set trajectory element where the generation of pulses starts ne nn set trajectory element where the generation of pulses ends ni nn set step (curvi-linear distance) between synchronisation pulses nn nn set number of synchronisation pulses to generate xx np nn set decimal digits number of position display nq read global acquisition nr. ns allow generation of pulses on interpolation nt start definition of a new trajectory xx oa nn set home search acceleration [xx] oe nn test i/o output xx oh nn set home search high velocity xx ol nn set home search low velocity [xx] or [nn] search for home xx pa nn move to absolute position xx pb nn set start position of generation of pulses of synchronisation xx pe nn set end position of generation of pulses of synchronisation xx pi nn set step of generation of pulses of synchronisation xx pr nn move to relative position xx ps pp allow generation of pulses on motion xx pt nn calculate necessary time for axis displacement [xx] pw save parameters qp quit program mode qw save general parameters [xx] ra read analog input [xx] rb read i/o input rd disable display refresh re enable display refresh [xx] ro read i/o output rp [nn] repeat command line rq nn generate service request (srq) rs reset controller [xx] sb [nn] set i/o output bits xx sc [nn] set control loop type sd nn speed scaling se start synchronized motion xx sf name set axis mechanical motion device xx sh nn set home preset position xx sl nn set left travel limit sm save program xx sn name set axis displacement units so [nn] set i/o output byte sp [nn] set trace sample rate sq [nn] set global sample rate xx sr nn set right travel limit xx ss np set master-slave mode [xx] st stop motion xx sy nn axis synchronization xx ta read motion device tb [aa] read error message xx tc read control loop type td read error line of program te 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 xx tn read displacement units [xx] tp read actual position [xx] tq [nn] read global trace data xx tr read right travel limit ts read controller status [xx] tt read trace data xx tu read encoder resolution tx read controller activity tx1 read controller extended status xx ty read a variable [xx] uf update servo filter [xx] uh wait for i/o high [xx] ul wait for i/o low xx va nn set velocity xx vb nn set base velocity (stepper motor only) ve read controller version vs nn define the vector acceleration on trajectory (trajectory acceleration) vv nn define the vector velocity on trajectory (trajectory velocity) wa [nn] wait we end while loop xx wf wait for function key xx wg [nn] while variable is greater xx wh [nn] while i/o input is equal wi nn wait for a trajectory (curvi-linear) length wk [aa] wait for key xx wl [nn] while variable is less wn nn wait for a element of trajectory xx wp nn wait for position [xx] ws [nn] wait for motion stop wt [nn] wait xx wy [nn] while variable is different xa tell the current maximum allowed angle of discontinuity xx xb read backlash compensation xx xd read derivative gain factor xe tell the last element xx xf read maximum following error xx xh read home preset position xx xi read integral gain factor xx xl nn delete one line of program xm read available memory xn read number of acquisitions xx xp read proportional gain factor xq read global sample rate xs read trace sample rate xt tell number of elements in the trajectory xu nn tell the vector acceleration on trajectory (trajectory acceleration) xv nn tell the vector velocity on trajectory (trajectory velocity) [xx] xx erase program xx ya [nn] add to variable xx yb negate variable xx yc nn add variables xx yd nn divide variables xx ye [nn] if variable is equal xx yf nn scale variable 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 xx yo nn send a value to an user analog port xx yp nn set theoretical position in variable xx yq nn set current position in variable xx yr nn read a value from an user analog port and affect variable xx ys [nn] initialize variable xx yv read value from keyboard in a variable xx yw wait and read key xx yy nn copy variable [xx] zp zero position [xx] zt [nn] read axis/general parameters configuration free datasheet http:// w-x?hg ?@@@@@@6x?f?w&@)xf?w2@@@@@@@ ?@f?i/xfw&@@@)x?ew.m?g ?@gv/x??w&@(?'@)x?w.yh ?@e@6x??v/ko&@(y?v'@)t.y??w2@@@@@ ?@e3@)xen@@@(ye?v'@(yew&@@@@@@ ?@ev'@)x?j@@@h?fs(y??w&@(mf ?3l??v'@)?&@@@l?e?w.yew&@(y?f ?v/xev'@@@(mi/xew.y??w&@@hew2@@ v/x??v'@@?ev/ko.yew&@@@l?w.me ?v/xev'@)x??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)k? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@@@ w&@(y?e?n@(y??j@@(yew&h?f?@@@ *@@?f?j(yew&@@h??w&@l?e?w&@@@ v'@)x?ew.y??w.mi'l?w.mi/xew&@(mi ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??v'@)xev/x?e w.y?n@@@(yew.mi/xe?@@)x??v/ke ?w.yej@@(y??w.yev/ko&@@@)xev4@@ ?7h??w&@(yew.y?e?n@@@(?'@)x?f ?@ew&@(y??w&uf?j@@@h?v'@)kf ?@e7@(yew&@)x?ew&@@@lev'@@@@@@ ?@e@@h??w.r'@)x?w&@(mi/x??n@@@@@@ ?@e@@ew.y?v'@)?&@(y??v/xe@@f ?@e@@e7he?v'@@@(yfn1e@@f ?@e@@e@?fn@@@h?f?@e@@e@@ ?@e@@e@?f?@@@l?f?@e@@e@? w-x? w-x? w-x? w-x? w-x? w-x? w-x? w-x? w-x?hg @@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@@@@@@@6xf?w&@)xgw2@@@@@@ i/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mhfi/x?ew&@@@)x?e?w.mg ?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?hf?v/x?w&@(?'@)xew.y?g @@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@@@@@6xev/t&@(y?v'@)ko.yew2@@@@ @@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@@@@@@)x??s@@(ye?v'@@(y??w&@@@@@ ?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?f?i'@)ko&@@u?fn@(yew&@(m?e v'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yhv'@@@@(r/xfj(y??w&@(yf @6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@@6x??v'@@@h?v/x??w.yew&@@h??w2@ ?i/xev'@@l??v/ko.y??w&@@@l?w.m??i/xev'@@l??v/ko.y??w&@@@l?w.m??i/xev'@@l??v/ko.y??w&@@@l?w.m??i/xev'@@l??v/ko.y??w&@@@l?w.m??i/xev'@@l??v/ko.y??w&@@@l?w.m??i/xev'@@l??v/ko.y??w&@@@l?w.m??i/xev'@@l??v/ko.y??w&@@@l?w.m??i/xev'@@l??v/ko.y??w&@@@l?w.m??i/x v'@@l??v/ko.y??w&@@@l?w.m? v/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.yfv/x??v'@)xev'@hew&@@@@)t.ye ?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?f?s)xev'@)x??v'l?w&@@@@@@@h?e w&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?fw&@)x??v'@)xev/t&@(m??@@@l?e ?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(yej@@@)xe?w&@(r/xev'@)x??v'@(y j@@@)xe o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k?o&@(y?v/x??s(r/xes(y??w.mi'@)k? @@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@@@(ye?v/ko.y?n)ko.yew.y??v'@@@ @@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@@@gn@(yej@@(y??w&hfv'@@ @@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@@@)xfj(y??w&@@hew&@lg@@ 4@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@@@@@)x??w.yew.mi'l?w.mi/x?ew&@( ?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(m?i'@)ko.y??w&uev/t&u??v/x?w&@(y v'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y?ev'@@@hew&@)x??v'@)xev/t&@(y? ?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(yf?n@@@??o&@(r/xev'@)x??v'@(ye ?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?f?j@@@@@@@(y?n)x??v'@)xev'u?e w.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xfw.r'@@@@(yej@)xev'@)x??v/xe ?o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k??o.y?n@@@(y??w.mi/x??n@@)xev/k? @0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@@0y??j@@(yew.y??v/x?j@@@)x??v4@ w&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xhw&@(y??w&hfv/t&@@@@)xf ?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?f?o&@(yew&@lf?s@@(mi'@)k?e @@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@@@@@@(y??w&@@)x?ew&@@u??v'@@@@@ @@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@@@@@0yew.mi'@)x?w&@(r/xev4@@@@ ?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?hf?w.yev'@)?&@(y?v/x?g o.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/khfo.y?e?v'@@@(ye?v/kg @@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@@@@@@@0ygv'@(y?fv4@@@@@@ ?v+y ?v+y ?v+y ?v+y ?v+y ?v+y ?v+y ?v+y ?v+yhg ?w-x @@@@@@@6x?fw&@)x?f?w2@@@@@@? ?i/xe?w&@@@)xfw.m?f@? v/x?w&@(?'@)x??w.yg@? @@@@@6x??v/t&@(y?v'@)ko.y??w2@e@? @@@@@@)xev'@(y?ev'@@@hew&@5e@? i'@)x??v'uf?n@@@l?w&@(ye@? ?v'@)xev/x?e?j@@@)?&@(y??j5? @@6xen@@)x??v/xew.mi'@@@(yew.y? i/x?j@@@)xev/ko.ye?@@(y??w.ye ?v/t&@@@@)x??n@(y??w&@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?o&@(y?v/xev'u??w.r'uew.mi'@)xe @@@(y?ev/x??v/ko&h?v/ko.yev'@)x? @@@?f?n)xev'@@l??v'@h?e?v'@)x @@@)x?e?j@)x??n@@)xev'l?f?@@, mi'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@(y??w&@l??v'@@@@(r/x?e o.y??w&@@?ew.mi/xev'@@@h?v/xe @@0yew&@@@)ko.yev/x??v'@@lev/x? ?w&@(?'@@@h?e?v/xev'@)x??n1? o&@(y?n@@@l?fs)x??v'@)xe@? @@@@@@(yej@@@)xe?w&@)xev'@1e@? @@@@@@h??w.mi'@)x?w&@(r/x??n@@e@? @@ew.y??v'@)?&@(y?v/xe@@e@? @@e7hfv'@@@(y?en1e@@e@? @@e@@e@?f?n@@@hf?@e@@e@? ?@e@@e@?f?j@@@?f?@e@@e@? ?@e@@e@?f?7@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fn@@@@?f?@e@@e@? ?@e@@e@?f?@@@@lf?@e@@e@? ?@e@@e3lfj@@@@)x?ej5e@@e@? ?@e@@ev/x??w&@(?'@)x?w.ye@@e@? ?@e@@l??v/ko&@(y?v'@)t.y??j@@e@? ?@e3@)xes@@@(ye?v'@(yew&@5e@? ?@ev'@)ko&@@@h?fs(y??w&@(ye@? ?3l??v'@@@@@@@l?e?w.yew&@(y??j5? ?v/xev'@@@@?i/xew.y??w&@@hew.y? v/x??v'@@@ev/ko.yew&@@@l?w.ye ?v/xev'@@l??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ?w&@(yev/ko.y?n)ko.y??w.ye?v'@)x w&@(y?e?n@(y??j@@(yew&h?f?@@, *@@?f?j(yew&@@h??w&@l?e?w&@(y v'@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?v'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??n@@)xev/x?e w.y?n@@@(yew.mi/xe@@@)x??v/xe ?w.yej@@(y??w.yev/k?@@@@)xev/x? ?7h??w&@(yew.y?e?n@@@@@@@)x??n1? ?@ew&@(y??w&uf?j@@@(mi'@)xe@? ?@e7@(yew&@)x?ew&@@@uev'@1e@? ?@e@@h??w.r'@)x?w&@(mi/x??n@@e@? ?@e@@ew.y?v'@)?&@(y??v/xe@@e@? ?@e@@e7he?v'@@@@hfn1e@@e@? ?@e@@e@?fv'@@@?f?@e@@e@? ?@e@@e@?f?n@@@?f?@e@@e@? @@e@@e@?f?j@@@lf?@e@@e@? @@e3lfw&@@@)x?ej5e@@e@? @@ev/x??w&@(?'@)x?w.ye@@e@? @@@@@@l??v/ko&@(y?v'@)t.y??j@@e@? @@@@@@)xen@@@(ye?v'@(yew&@5e@? i'@)x?j@@@h?fs(y??w&@(ye@? ?v'@)?&@@@l?e?w.yew&@(y??j5? @@6xev'@@@(mi/xew.y??w&@@hew.y? i/x??v'@@?ev/ko.yew&@@@l?w.ye ?v/xev'@)x??v'@h??w&@@@@)t.y?e n)x??v'@)xev'l?w&@(mi'@@uf j@)xev'@)x??v/t&@(yes@@)x?e ?w&@@)x??v'@)xev'@(y??w.r'@)xe w&@(mi/xes(r/x??s(yew.y?v'@)x? ko&@(yev/ko.y?n)ko.y??w.ye?v'@)x @@@(y?e?n@(y??j@@(yew&h?f?@@, @@@?f?j(yew&@@h??w&@l?e?w&@(y @@@)x?ew.y??w.mi'l?w.mi/xew&@(y? ?i'@)x?w.yew&u??v/t&uev/ko&@(ye v'@)t.y??w&@)xev'@)x??v'@@(y?e ?v'@@uew&@(r/x??v'@)xev'@hf s@@)ko&@(y?n)xev'@)x??v'lf ?w.r'@@@@(y??j@)x??v'@)xev/x?e o.y?n@@@(yew.mi/xe?@@)x??v/xe @@0yej@@(y??w.yev/ko&@@@)xev/x? ?w&@(yew.y?e?n@@@(?'@)x??n1? o&@(y??w&uf?j@@@h?v'@)xe@? @@@@@@(yew&@)x?ew&@@@lev'@1e@? @@@@@0y??w.r'@)x?w&@(mi/x??v4@e@? w.y?v'@)?&@(y??v/xg@? ?o.ye?v'@@@(yfv/k?f@? @@@@@@@0y?fv'@(y?f?v4@@@@@@? ?v+y ?w-x ?w-x ?w-x ?w-x ?w-x ?w-x ?w-x ?w-x ?w-xhg @@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@@@@@@@6xgw&@)x?fw2@@@@@@ i/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mhfi/x?e?w&@@@)xe?w.mg ?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?hf?v/xew&@(?'@)x?w.y?g @@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@@@@@6xev/ko&@(y?v'@)t.yew2@@@@ @@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@@@@@@)x??v'@@(y?ev'@@u??w&@@@@@ ?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?f?i'@)xev'@hf?s@@)ko&@(m?e v'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yhv'@)x??v'lfw.r'@@@@(yf @6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@@6x??n@@)xev/x??w.y?n@@@(y??w2@ ?i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m??i/x?j@@@)x??v/ko.y??j@@(yew.m? v/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.yfv/t&@@@@)xen@(yew&@(y??w.ye ?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?f?n@@@@@@@)x?j(y??w&@(yew&u?e ?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xf?j@@@??i'@)t.yew&@(y??w&@)xe w&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x?ew&@@@lev'@(y??w&@(yew.r'@)x? ?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)k?o&@(mi/x??v'uew.r'u??w.y?v'@)x 2@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@@@@@(y??v/xev/ko&h?v/ko.y?ev'@) @@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@@@(yfn)x??v'@@lev'@hg@@ @@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@@@gj@)xen@@)x??v'lfw&@@ @@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@@@)xe?w.mi/x?j(mi/xev/x??w&@@@ i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m?i'@)x?w.y??s)t.yes)x??v/ko&@(m? ?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)xen@@@(ye?v'@)t.yew&@(y??w&@)x n@@@(ye v'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?fv'@(y??w&@(yew.r'@)k??@@@h?e ?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?f?s(yew&@(y??w&h?v'@@@@@@@l?e w.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xfw.y??w&@(yew&@lev'@@@@(r/xe ?o.yew&@@h??w.mi/x??v'@@@h?v/k??o.yew&@@h??w.mi/x??v'@@@h?v/k??o.yew&@@h??w.mi/x??v'@@@h?v/k??o.yew&@@h??w.mi/x??v'@@@h?v/k??o.yew&@@h??w.mi/x??v'@@@h?v/k??o.yew&@@h??w.mi/x??v'@@@h?v/k??o.yew&@@h??w.mi/x??v'@@@h?v/k??o.yew&@@h??w.mi/x??v'@@@h?v/k??o.y w&@@h??w.mi/x??v'@@@h?v/k? @0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@@0y??w&@@@l?w.y??v/xev'@@l??v4@ w&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xhw&@@@@)t.yfn)x??v'@)xf ?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?f?o&@(mi'@@u?fj@)xev'@)k?e @@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@@@@@@(y??s@@)xe?w&@@)x??v'@@@@@ @@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@@@@@0yew.r'@)x?w&@(mi/xev4@@@@ ?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?hf?w.y?v'@)?&@(yev/x?g o.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/khfo.y?ev'@@@(y?e?v/kg @@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@@@@@@@0yf?v'@(ygv4@@@@@@ v+y? v+y? v+y? v+y? v+y? v+y? v+y? v+y? v+y?hg ?@e@@e@?f?@@@h?f?@e@@e@? ?@e@@e@?fj@@@l?f?@e@@e@@ ?@e@@e3le?w&@@@)xfj5e@@f ?@e@@ev/x?w&@(?'@)x??w.ye@@f ?@e@@l??v/t&@(y?v'@)ko.y??j@@@@@@ ?@e3@)xev'@(y?ev'@@@hew&@@@@@@ ?@ev'@)x??v'uf?n@@@l?w&@(mf ?3l??v'@)xev/x?e?j@@@)?&@(y?f ?v/xen@@)x??v/xew.mi'@@@(yew2@@ v/x?j@@@)xev/ko.ye?@@(y??w.me ?v/t&@@@@)x??n@(y??w&@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)ko *@@?f?n)xev'@@l??v'@h?e?v'@@@ v'@)x?e?j@)x??n@@)xev'l?f?@@@ ?v'@)xew.mi/x?j(mi/x??v/xe?w&@@@ v'@)ko.yes)t.y??s)xev/x?w&@(m? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@(y??w&@l??v'@@@@(r/x?e w.y??w&@@?ew.mi/xev'@@@h?v/ke ?w.yew&@@@)ko.yev/x??v'@@lev4@@ ?7h??w&@(?'@@@h?e?v/xev'@)x?f ?@ew&@(y?n@@@l?fs)x??v'@)kf ?@e7@(yej@@@)xe?w&@)xev'@@@@@@ ?@e@0y??w.mi'@)x?w&@(r/x??v4@@@@@ ?@gw.y??v'@)?&@(y?v/xh ?@f?o.yfv'@@@(y?ev/k?g ?@@@@@@0y?f?v'@(yf?v4@@@@@@@ v+y?hg ?@e@@e@?fj@@@1?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@@hf?@e@@e@? ?@e@@e@?fj@@@@?f?@e@@e@? ?@e@@e3le?w&@@@@lfj5e@@e@? ?@e@@ev/x?w&@(?'@)x??w.ye@@e@? ?@e@@l??v/t&@(y?v'@)ko.y??j@@e@? ?@e3@)xev'@(y?ev'@@@uew&@5e@? ?@ev'@)x??v'uf?n@@@)ko&@(ye@? ?3l??v'@)xev/x?e?j@@@@@@@(y??j5? ?v/xen@@)x??v/xew.m?@@@@(yew.y? v/x?j@@@)xev/ko.ye@@@(y??w.ye ?v/t&@@@@)x??n@(y??j@@(yew.y?e s@@(mi'@)x?j(yew&@(y??w&hf ?w&@@uev'@)t.y??w&@(yew&@lf w&@(r/x??v'@(yew&@(y??w&@@)x?e ?w&@(y?v/xev'u??w.r'uew.mi'@)xe w&@(y?ev/x??v/ko&h?v/ko.yev'@)x? *@@?f?n)xev'@@l??v'@h?e?v'@)x v'@)x?e?j@)x??n@@)xev'l?f?@@, ?v'@)xew.mi/x?j(mi/x??v/xe?w&@(y v'@)ko.yes)t.y??s)xev/x?w&@(y? ?v'@@(y??w&@(yew&@)x??v/t&@(ye n@(yew&@(y??w.r'@)xes@@(y?e j(y??w&@(yew&h?v'@)ko&@@uf ?w.yew&@@h??w&@l??v'@@@@(r/x?e w.y??w&@@@ew.mi/xev'@@@h?v/xe ?w.yew&@@@@?o.yev/x??v'@@lev/x? ?7h??w&@@@@@@@h?e?v/xev'@)x??n1? ?@ew&@(mi'@@@l?fs)x??v'@)xe@? ?@e7@(yes@@@)xe?w&@)xev'@1e@? ?@e@@h??w.mi'@)x?w&@(r/x??n@@e@? ?@e@@ew.y??v'@)?&@(y?v/xe@@e@? ?@e@@e7hfn@@@@(y?en1e@@e@? ?@e@@e@?f?@@@(yf?@e@@e@? MM4005 4-axis motion controller/driver ec declaration of conformity we declare that the accompanying product, identified with the mark, meets all relevant requirements of directive 89/336/eec for electro-magnetic compatibility. compliance was demonstrated to the following specifications: emission: radiated and conducted emission per en 50081-1 ?esidential, commercial and light industry?standard. immunity: radiated and conducted immunity per en 50082-2 ?esidential, commercial and light industry?standard and per iec 1000-4-5 ?urge immunity standard. alain danielo vp european operations zone industrielle 45340 beaune-la-rolande, france free datasheet http:// |
Price & Availability of MM4005
![]() |
|
|
All Rights Reserved © IC-ON-LINE 2003 - 2022 |
[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy] |
Mirror Sites : [www.datasheet.hk]
[www.maxim4u.com] [www.ic-on-line.cn]
[www.ic-on-line.com] [www.ic-on-line.net]
[www.alldatasheet.com.cn]
[www.gdcy.com]
[www.gdcy.net] |