version

62
This document contains a list of bug fixes and added features to the U500 Software and Libraries. It is me ant as a guide to track problems and fixes as they occur. Version 3.12 Aug 30, 1993  Fixed: 1) Axis 2 and 3 miss Feedback trap error flags  New Features:  1) MEssage command, added serial port output  2) GEar command added  3) CAm table added  4) Add TACH feedback to PID loop by setting Kd=0 Version 3.13 Sept 1, 1993  Fixed:  1) If axis calibration data size is more than 128 points, UNIDEX 500  fails to update calibration table.  2) Fix servo loop calculation truncation error  New Features:  1) Added MEssage command to C-Libraries ( NOT BASIC Libraries ) Version 3.14 Sept 14, 1993  Fixed:  1) MEssage command, %s case can't handle hex data (A..F)  2) MEssage command, input to variable doesn't work correctly  3) Improve circular (G2/G3) contour path  4) Axis calibration data file error, data point 196 and up offset by 2  word in memory  5) When motion distance >= 2^23, U500 makes extra move  6) Fail to acknowledge some fault condition  7) Fix INdex (G0) deceleration overshoot problem  8) Fix Contour (G1/G2/G3) invert-sin ramp type deceleration problem  9) If all axes feedback device set to non-encoder type, all input line  show 0 state  10) If feedback device is resolver, home cycle is not working properly  New Features:  1) Modify MEssage command for C-Libraries ( NOT BASIC )  Return 126 if the command is taken, check message_where bit 8 for input or not  2) Added Borland C 3.1 Library U500CB.LIB  3) For TACH feedback, Kp will be scaled by 256 and Ki will be scaled by 4096 internally Version 3.15 Sept 21, 1993  Fixed:  1) If Axis name ( XYZU ) is more than 1 letter (XX XB ...) system hangs  2) UMfo command misinterpret to U axis distance  3) Index motion (G0) If motion distance = 0, system hangs Version 3.16 Oct 4, 1993  Fixed:  1) For Library commands, current axes position doesn't offset by relative position register, so after SOftware HOme (G92), current  position still references hardware home only.

Upload: ramjoce

Post on 15-Oct-2015

26 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/25/2018 Version

    1/62

    This document contains a list of bug fixes and added features to theU500 Software and Libraries. It is meant as a guide to track problemsand fixes as they occur.

    Version 3.12 Aug 30, 1993

    Fixed: 1) Axis 2 and 3 miss Feedback trap error flags New Features: 1) MEssage command, added serial port output 2) GEar command added

    3) CAm table added 4) Add TACH feedback to PID loop by setting Kd=0

    Version 3.13 Sept 1, 1993

    Fixed: 1) If axis calibration data size is more than 128 points, UNIDEX 500

    fails to update calibration table. 2) Fix servo loop calculation truncation error New Features: 1) Added MEssage command to C-Libraries ( NOT BASIC Libraries )

    Version 3.14 Sept 14, 1993

    Fixed: 1) MEssage command, %s case can't handle hex data (A..F) 2) MEssage command, input to variable doesn't work correctly 3) Improve circular (G2/G3) contour path 4) Axis calibration data file error, data point 196 and up offset by 2

    word in memory 5) When motion distance >= 2^23, U500 makes extra move 6) Fail to acknowledge some fault condition 7) Fix INdex (G0) deceleration overshoot problem 8) Fix Contour (G1/G2/G3) invert-sin ramp type deceleration problem 9) If all axes feedback device set to non-encoder type, all input line

    show 0 state

    10) If feedback device is resolver, home cycle is not working properly New Features: 1) Modify MEssage command for C-Libraries ( NOT BASIC )

    Return 126 if the command is taken,check message_where bit 8 for input or not

    2) Added Borland C 3.1 Library U500CB.LIB 3) For TACH feedback, Kp will be scaled by 256 and

    Ki will be scaled by 4096 internally

    Version 3.15 Sept 21, 1993

    Fixed:

    1) If Axis name ( XYZU ) is more than 1 letter (XX XB ...) system hangs 2) UMfo command misinterpret to U axis distance 3) Index motion (G0) If motion distance = 0, system hangs

    Version 3.16 Oct 4, 1993

    Fixed: 1) For Library commands, current axes position doesn't offset by

    relative position register, so after SOftware HOme (G92), currentposition still references hardware home only.

  • 5/25/2018 Version

    2/62

    2) For INdex (G0), if motion distance less than max ac/de rate systemlock-out

    3) For contour motion (G1/G2/G3), if feedrate is too high, and motiondistance too short, cause incorrect motion

    4) HOme more than 1 axis, system hangs 5) Increase RMS Current trap accuracy 6) Freerun command would output a large error during deceleration at

    feedrates > 2.9 Mhz 7) Stepper current command glitch in one phase in the CW direction 8) Increase internal Ki,Kp resolution New Features:

    1) Change UMFO from block-to-block command to real-time command

    Version 3.17 Oct 8, 1993

    Fixed: 1) Circular command (G2/G3) doesn't work in release 3.15, 3.16

    Version 3.18 Oct 25, 1993

    Fixed: 1) Absolute mode accumulates position error 2) Installation running out of memory on some machines New Features:

    1)

    Version 3.19 Nov 5, 1993

    Fixed Libraries: 1) Libraries aer_abort function cause rel/abs position error Fixed Interface: 1) Fixed decimal display( # of decimals not being displayed properly ) 2) Open Param/Config files from project in diff directory was

    not working New Features: 1) Added aer_open_param, aer_open_config, aer_check_initz to Libraries

    Version 3.20 Nov 15, 1993

    Fixed Libraries: 1) Axis calibration is on, display shows axis position + correction,

    fixit to show actual position only 2) Primary/Secondary feedback setup codes 2&3 for primary/secondary

    feedback channels 9-16 (RDP1,RDP2) are wrong. Fix Firmware toconfigure properly

    Fixed Interface: 1) Open Param/Config files without initializing board 2) Calculate the scale factor

    New Features:

    1) Added new command CInt ON/OFf 2) New aer_reset_intr for C Libraries 3) aer_read_status(5) in Bit 22 to indicate that interrupt has been set

    Version 3.21 Nov 22, 1993

    New Features: 1) Added Parameter X62 "Servo Loop update rate"

    2) Parameters 138/139/238/239/338/339/438/439 : max. setting increase

  • 5/25/2018 Version

    3/62

    from 20 to 200

    3) Add new command to update PLC_BIT P0xnnnnnn for 24 bits dataor Pn,m,n,m... where n= 0 to 23 bit location, m=0/1

    4) Add PLC function

    command name PLC, need at least 3 letters, ( so PL will be treatedas PLane )

    PLC ON ;convert this plane queue buffer to PLC buffer, ready to

    accept PLC program

    PLC OFf ;resume this plane queue buffer, no more PLC program

    PLC ENable 0-31/ALl ;enable PLC program 0-31, or all of them

    PLC DIsable 0-31/ALl ;disable PLC program 0-31, or all of them

    PLC FRee 0-31/ALl ;free ( erase from memory ) PLC program 0-31, or all of them

    PLC OPen 0-31 ;open PLC program 0-31 for editing

    PLC CLose ;close PLC program currently open for editing

    PLC conditional statements :IF ENDIF

    ELSEWHILE ENDWHILE

    ANDOR

    PLC conditions : I0 - I15 : 16 input line P0 - P23 : 24 PLC bit PO0 - PO3 : 1/2/3/4 axes machine steps F100 - F115 : 1st axis fault condition

    F200 - F215 : 2nd axis fault condition F300 - F315 : 3rd axis fault condition F400 - F415 : 4th axis fault condition = equal to > great than < less than

    Version 3.22 Dec 9, 1993 Fixed Libraries: 1) PLC Function:

    " WHILE " condition statement doesn't work

    2) PLC function :

    " AND " / " OR " condition statement doesn't work

    3) New parameters added to system that do NOT appear in old paramfile will default to 0. The file is NOT modified until savedfrom parameter window.

    Fixed Interface: 1) Memory Leak during display updates

    New Features:

  • 5/25/2018 Version

    4/62

    1) Changed scaling of "P" term when used with in tachometer mode.The "P" term now carries 16 times more weight than before.

    2) MC (Motor Communication) command, now disables position, velocity,

    and integral traps automatically. It also works with brush motorsand can be used to output constant torque.

    Miscellaneous: 1) Removed Axis Parameters X21( max overshoot ),

    X30( current output scale ). NOT USED

    2) Added UTILITY for generating U500 coefficients for Notch andLowpass Filters( NFLTER.EXE, LPFLTER.EXE )

    Version 3.23 Dec 21, 1993 C-Library Enhancements: 1) Speed up aer_initialize 2) Reduced hardware set time form 1 sec to .25 sec 3) Added aer_adjust_motion function:

    int aer_adjust_motion( long double ax1,long double ax2,long double ax3,

    long double ax4);

    Send real-time motion adjust data to each axis, U500 willperform this motion on top of the motion already on progress

    return: 0 successful, 0 no 4) SOftware LImit did not work

    New Features: 1) Add new parameter X63

    If each axis is open loop stepper, what is the micro step / rev

    2) Add new parameter X64If each axis is open loop stepper, whether encoder verification

    is enable or disable

    3) Parameter X42 added case 3drive is stepper, with current re-circulate option

    Interface: 1) Increased program size from 500 Bytes to 2K Bytes 2) Fixed Axis Display for Remapping Axis

    Version 3.25 Feb 15, 1994 Firmware: 1) Fix 3.24 RDP Read problem. V3.24 does not inhibit the 2S80 tracking

    conventions. The result will be a noisy servo and/or vel/pos traps.

    2) Re-code Freerun and backlash compensation routines to increaseefficiency. 1 shot freerun ac/de now x1 instead of x2.

    3) Add stepper encoder verification, scaling, and correction routines. 4) Y,Z,U Calibration bug fix 5) Add Axis param x65 "Stepper encoder correction speed(microsteps/ms)" 6) Add General param 15 "PSO Mailbox dual port ram base address" 7) Add General param 16 "PSO Command dual port ram base address" 8) Axis Parameter x62 range from (1-100) to (1-32000) 9) Firmware recognizes aer_adjust_motion(...) 10) V3.24 does not contain support for new stepper parameters x63, x64

  • 5/25/2018 Version

    5/62

    as released in v3.23 11) Axis param x44 max range increased from 23 bits to 48 bits 12) Increase commutation resolution from 256 vectors/electrical cycle to

    65,536 vectors/electrical cycle

    Libraries: 1) C and BASIC to respond correctly to "BO #" command 2) C Library - aer_read_param: add return value 14 for 2int Hex Number 3) C Library - Add decoding error #22, PSO Mailbox Full 4) Added Library variable for current software version:

    double ver_500;

    DLL's NOW AVAILABLE For More Information Call AerotechVersion 3.26 Feb 18, 1994

    C-LIBRARIES RENAMED: U500C.LIB -> U500MS6.LIB U500CP.LIB -> U500MS7.LIB U500CB.LIB -> U500BC31.LIB

    Firmware:1) Gearing is available at ALL levels

    2) Axis enable resets commutation vector for AC servo motors

    Libraries - Enhancements: 1) Increase PC-DSP Speed

    Avg frequency = 100 KhzAvg Command Transfer Time ~= .300 usec

    Libraries - NOTES: 1) aer_read_param valid return value is 0..15

    Interface: 1) Fixed Axis Param x44. Was unable to edit in Parameter Edit field 2) Diagnostic Window CW, CCW, and Home Limits now properly displayed 3) Diagnostic Window Encoder Count fixed

    4) Contour Feedrate parameter (76) in Param Edit field was displayingyes / no as the value

    5) Param x65 displayed in Param Edit

    New Features: 1) Add command to output real time servo infos on DAC channel

    COMMAND SYNTAX: "DS ax#,case,scale,dac_channel"

    ax # : servo axis1-4 ( X,Y,Z,U )0 stop all display

    case : display data"PC" - pos command = 0"PA" - actual position = 1"PE" - pos error = 2"VC" - vel cmd = 3"VA" - velocity actual = 4"VE" - vel error = 5"TQ" - torque command = 6

    scale : volts / bit, 0 to 10v

  • 5/25/2018 Version

    6/62

    dac channel : display channel 1-8

    2) Enhance Command Interrupt function for multi-boards interruptdaisy chain capability

    COMMAND SYNTAX: "CI ON/OFf,n,m"

    ON/OFf : PC bus interrupt after command finish

    n: set bus interrupt line on input "n" low

    ( 0,1-16 ) 0 kill, 1-16 = input 0-15

    m: set output bit "m" low along with pc interrupt ( 0,1-8 ) 0 kill, 1-8 = output 0-7

    Version 3.26.10 Feb 25, 1994

    Interface: 1) Fixed Axis Param x31 to save proper # sig digits in ParamEdit 2) Program Menu "Run" Option changed to "Load"

    Version 3.26.20 March 18, 1994

    Firmware: 1) Hall Effect as position feedback( channel 25-28 ) bug fix. Axiswill not servo properly( for LensGen 200 spndle axis only )

    2) Freerun, multiple axis; Flags get destroyed after first freerunstop. Subsequent free run stops cause the commanded velocityto goto 0.

    Interface: 1) Program Line - With GOTO FILE statement and comment not being parsed

    correctly: GOTO {FILE} {COMMENT} GOTO XXXXXXXX.PRG ;Some Comment

    2) Feedhold( Pause Button - F11 ) changes text from Pause to Resume

    Depending on current state. 3) Paremeters in Setup were 0's before initializing.

    Utilities: 1) ASCPRM.EXE to work with Param changes( x44, x63, x64, x65 )

    Installation: 1) INSTALL.EXE program size reduced 2) MANINST.BAT (Manual Installation) added to disk

    Version 3.27 April 5, 1994

    Firmware:

    1) Fix hardware reseta) Made pulse 250msb) Enable watchdog when board is taken out of reset. - This eliminates the timeout/blinking LED program seen with some CPU's

    2) Fix Modulo machine step parameter. 3) G2/G3 move - Y axis velocity error.

    Libraries: 1) aer_checkstatus bug. Would feedback false data under certain

  • 5/25/2018 Version

    7/62

    conditions. 2) GEAR command - Added new channel for iSBX. ( Not yet implemented

    in firmware )

    Interface: 1) Fix Edit Parameter bug before initializing board ( Project file

    must be present ) 2) About Box now displays full internal version number (i.e. 3.26.30)

    Version 3.28 April 22, 1994 Firmware:

    1) GEAR command - Modified for iSBX Counter Board as master.GEar n,S1,a,b 2) Joystick/Handwheel - Axis will NOT move past a limit if encountered

    Libraries: 1) PC I/O Bus interface loop count increased before Bus Timeout 2) Libraries modified for 32 Bit compilation.

    OS/2 Libraries available: WATCOM C/C++ 32 Bit v9.5 & v10.0

    Version 3.28.10 April 26, 1994 Firmware: 1) Joystick fixed to work at speeds below 1000 steps/sec

    Version 3.29.10 May 17, 1994 Firmware: 1) GAin command sent incorrect N1/N2/S1/S2 notch filter coeff. 2) Fix PSOC,3,xxx,xxx command problem 3) Fix PSOf,3,X,Y,Z,U command problem 4) Fix PSOf,4,N,X,Y,Z,U command problem 5) Fix PSOf,5,N,X,Y,Z,U command problem

    New Features: Firmware: 1) Replace PSO parameter #15 to :

    PSO mailbox dual_port ram base address = , default is 0x0d800

    2) Replace PSO parameter #16 to :PSO-HOST and PC interface address = , default is 0x0

    3) If parameter #15 & #16 not 0, and there is PCPSO firmfare called"PCPSO.FRM" inside the same sub-dir as U500 DSP firmfire called"U500.JWP", then each time user reset U500, will automaticallyreset PCPSO, if reset sucessful, feedback 0 , otherwise =11 PCPSO time out =12 PCPSO firmware i.d. doesn't match

    =13 PCPSO checksum error =14 PCPSO communication fail

    Libraries: 4) Add PSO large array function call

    SHORT aerq_psodlarray( SHORT board, long _far *data,

    long timeout, long nPoints )

    Version 3.30.00 Firmware: 1) GEar function, slave axis only move 1/2 the desired distance, when*

    ratio is less than 1

    Version 3.30.10 July 18, 1994 Firmware:

  • 5/25/2018 Version

    8/62

    1) For commands, such as feedrate, G70/71, G8/9, G23/24 ,after handled by firmware, still show inside the queue buffer

    2) If ramping type set to non-linear case, abort function will crashthe next contour motion (G1/2/3)

    Libraries: 1) "C" quick library function "async_motion" misses endpoint in negative

    direction.

    New Features:

    Firmware: 1) Parameter 130/230/330/430"current output scale (1-100)%", no longer needed Change to"current scale (6th gain, 0-8388607)", to handle special application which 6th servo gain

    2) Parameter x36/x46/x47/x48/x53increase resolution from 0-100% to 0.0000-100.0000%4 digits after decimal point

    3) Change operation of "in-position" bits in library.Active when Command Vel=0 and Pos Error < Deadband

    Interface: 1) Highlight color changed from Light Blue to Cyan 2) Software version now displayed in TitleBar 3) Abort Button No longer asks if you are sure while running

    a parts program.

    Version 3.31.00 Aug 1, 1994 Firmware: 1) Fix conversion (Scale factor) truncation problem... If scale

    factor has integer part and move distance is > 2^23, move willnot complete.

    2) Add iSBX General purpose language

    a) $00-$0F - iSBX 1 Addresses$10-$1F - iSBX 2 Addresses

    8/16 Bit Data Ex. $00=125

    v0=$01b) Bit Address $00n where n=Bit # 0-15(F) Ex. v0=$103 -> Read Bit 3 (result 0,8)

    $110=1 -> Set Bit 0 3) Parameters x06 (Home Offset) and x07 (Home switch to Marker)

    now +-48 Bit number

    Libraries:

    1) Abort and Software Position commands update Front-End softwareabsolute and relative positions with SERVO COMMAND POSITIONinstead of SERVO ACTUAL (ENCODER) POSITION

    2) Add servo command position to C/BASIC LibrariesCase 12/13/14/15 for Axes 1/2/3/4

    3) Add System Variable$XFP/$YFP/$ZFP/$UFP - RealTime Position FeedBack$XCP/$YCP/$ZCP/$UCP - RealTime Command position

    Interface:

  • 5/25/2018 Version

    9/62

    1) Fixed interface so that it works with PSO card(PSOD, PSOM, PSOP)

    Version 3.32.00 Sept. 12, 1994 Firmware (Fixes): 1) Change limit operation when under handwheel ( gear ) or joystick

    modes of operation. If axis is moving under handwheel or joystickmode out of a limit, the motion is not smooth due to the normalerror processing sequence. Fixed by ignoring the normal errorprocessing code for this case.

    2) FREERUN command does not run at less than 1 step/ms for all

    feedrates due to a round off problem. 3) Fix 1020 command loop modulo and commutation modulos. (internal bug) 4) Fix hall effect commutation algorithm. Generates illegal vectors if

    phase offset is not 0 degrees. 5) Modify commutation offset to shift hall signals in 60 degree

    increments. 6) U500 resets under certain sequence of PSO commands 7) Tracking display function cause velocity command error by blocking

    out servo loop interrupt.

    Firmware (Changes): 1) Change commutation algorithm for AC motors to save processor time.

    Update rate is lowered to 2Khz. Commutation table resolution is

    256 vectors / electrical cycle for rotary motors and65536 vectors for linear motors. Linear motors are specified bysetting the number of electical cycles / rev parameter to "1".

    2) Change utility program "U500DIAG.EXE" to display 32 bit machineposition.

    3) Add handwheel operation when all four axes are resolvers. New caseadded for slaveing to on-board encoder counters "C1" to "C4".

    SYNTAX: "GEAR a,Cn,d,e" where a: master axis (no change)

    n: on board encoder channel 1-4 (NEW) d: (optional) slave integer ratio (no change) e: (optional) master integer ratio (no change)

    4) Change hall effect inputs to track feedback channel setting ifbetween 1 and 4 ( encoder counter ). Hall signals are still fixedfor inductosyn feedback.

    5) Add PLC command : PLC EN/DIsable plc# can be a command too.During PLC program editing, if PLC EN/DI command appear beforePLC CLose, this command will stay inside PLC buffer, and executed eachtime PLC scan to this command. If PLC EN/DI appear after PLC CLose,this code won't stay inside PLC buffer, It becomes a controlinstruction.

    6) Add PLC command : for PLC condition checking commands ,IF..ELSE..ENDIF and WHILE..ENDWHILE, User can combine them inthe same PLC program, also nest each command indefinitely

    7) Add DWell on event command : for better communication between PLCand QUEUE buffer, add dwell on event command

    DWell ( G4 ) In=0/1 ; dwell when INput bit n (0-15) .eq. to 0 or 1DWell ( G4 ) Pn=0/1 ; dwell when PLC bit n (0-23) .eq. to 0 or 1

    8) Add parameters #166/266/366/466 for each axis:"AC motor phase advance, base speed (mach steps/ms)", parameters #167/267/367/467 for each axis:" base speed advance(degrees)",

  • 5/25/2018 Version

    10/62

    parameters #168/268/368/468 for each axis:" phase speed (mach steps/ms)",parameters #169/269/369/469 for each axis:" phase speed advance(degrees)",

    9) Add parameter #170/270/370/470 for each axis :"Drive fault signal normally open(yes/no)" (default is normally open)

    10) Modification of LVdt command : old: LVdt axis_#,channel_#,CW/CCW ;speed will be home speed new: LVdt axis_#,channel_#,CW/CCW,speed1,speed2 if speed1 or speed2 .eq. 0, will use home speed for search speed1 and speed2 are in machine steps/ms

    CNC.EXE Software 1) Feedrates can now be changed in Jog window. 2) The Home button now works within the Jog window. 3) Axis enabled state is now correctly indicated by their checkboxes

    with more than one axis active.

    Version 3.33.00 Jan. 2, 1995

    FIRMWARE bug fixes: 1) CAM FREE function doesn't work right 2) CAM MASTER & SLAVE function didn't wait for master axis

    come to in-position before set up initial position. Cause slave

    to axis miss position. 3) Fix glitch in SPLINE operation.

    FIRMWARE changes: 1) Change hall effect inputs to follow velocity feedback channel

    if encoder channel 1-4. 2) Reduce overhead time for motion trajectory generator software

    NEW "C" library commands: 1) SHORT aer_set_atd( SHORT en_disable );

    In order to read U500 on board QUAD_A/D converter, use thiscommand to enable A/D data fetch ( set en_disable to != 0x0 ) ordisable A/D data fetch ( set en_disable == 0x0 ) the reason for

    this is to reduce U500 firmware overhead. 2) long aer_read_atd(SHORT atd_number);

    after function call 1) set to enable, use this to read any ofthe 4 A/D data. set atd_number to 0, 1, 2, 3 to read A/Dchannel 0, 1, 2, 3 one at a time

    3) SHORT aer_set_velocity_timebase(long minisec);set axis velocity scan time base, from 1 to 2^24 minisecond

    4) SHORT aer_set_velocity_tracking(SHORT axis_number, SHORT en_disable);enable or disable each axis velocity tracking function. axis_number : 0/1/2/3 for axis 1/2/3/4. en_disable : 0 for disable, 0 for enable

    5) long double aer_read_velocity(SHORT axis_number);read each axis velocity ( with timebase defined, & tracking enable )

    axis_number : 0/1/2/3 for axis 1/2/3/4.

    NEW user commands: 1) Enhance "ENable" and "DIsable" commands to work with ADC tracking

    ( see "aer_set_atd()" C function )Example: EN X Y AD ;enable axes X & Y, also start A/D data fetch

    DI AD ;disable A/D data fetch 2) Add system variables :

    $AD0, $AD1, $AD2, $AD3 for A/D channel 0/1/2/3 dataExample: V0=$AD1 ;read A/D channel #1, then put result in V0

  • 5/25/2018 Version

    11/62

    3) "AF n,m,null,db,gain,vlim,plim"Front end prototype for AUTO FOCUS function.**** NOT implemented in firmware. DO NOT use !!!! ****

    4) "DUmp filename.ext"where filename.ext contains binary format long (32 bit) dataof X/Y/Z/U 1ms move. U500 will pass 4 axes long data(only 24 bits) to servo loop. completely bypasses all traj.generator routines.

    INTERFACE 1) Axis display fixed for 'mapped' axes

    Version 3.33.10 INTERFACE 1) (CNC.EXE) Jog Distance and Feedrates were not being mapped

    properly in Jog WindowVersion 3.34.00 Feb. 7, 1995 FIRMWARE: 1) Add axis orthogonality correction table. same format as axis

    calibration except for axis number. axis number can now be a twodigit number "AB". If A is not specified, axis calibration is doneto axis B. If A and B are specified, A is the axis to be corrected,and B is the position dependent axis. Correction will not

    begin until the B axis is homed. The A axis does not need to behomed. A maximum of 256 points are allowed for ortho.correction. The sample distance must be greater that 256 encodercounts.

    Example: An axis number of "21" represents correction to axis 2based on the position of axis 1. Correction to axis 2 will beginwhen axis 1 completes a home cycle and axis par 115 is "yes".

    2) Fix axis cal bug. Sometimes axis cal checksum routine would enablecalibration when the data was not vaild.

    3) Gantry: enable / disable slave when master is enabled / disbaled. 4) Fix Integrator clamp routine added in v3.33. Integrator clamp

    could cause random servo faults on "next" axis. X->Y, Y->Z, Z->U 5) Fix top feedrate trap value. clamp value was in 16.8 format. 6) Add PSO command to wait for "PSOF,2,n" (fire n sets of pulses) to

    finish. Command "PSOF,2,0" will wait for previous "PSOF,2,n"command to finish.

    7) Change "abort" function. will not clear que block out bit untilall faults are acknowledged. ( #23,X:

  • 5/25/2018 Version

    12/62

    FIRMWARE:1) Fix axis calibration bug added in previous software. Will not work if home direction is CW.2) Remove INTEGRAL clamp parameter functionality from servo loop. Intergator will clamp if torque output clamps or saturates.3) Scale factor bug added in previuos software. Will generate large velocity command with some scale factors.4) Implement axis parameter x10 - "limit to mechanical stop". Used to calulate the decel rate such that the axis will decel within the specified number of machine steps. Will use the max ac/de parameter if it is greater than

    this rate. 0 will defeat this function.5) Change default AC motor phase angle to match the POWERFLEX amplifier with a commutation phase offset of 0 degrees. (previously needed 300)6) Add axis parameter x71 - "Orthogonality correction table enabled" default = "no". ( see version 3.34 ) This parameter allows Ortho correction to be enabled without axis cal. The axis must be homed first.7) FOR REV B ONLY Add axis parameter x72 - "2-D error mapping" (default = no) . This parameter will be used on the Unidex 500 Rev B boards and is currently not implemented.

    LIBRARY:1) Add PSO dual ported ram interface functionality to DLL's.

    2) Add axis parameters x71, x72. (see above)

    V3.35.10 March 27,1995 ( CUSTOMER SPECIFIC RELEASE )

    LIBRARIES:1) Add target tracking functions to user interface...

    "TE axis" - enable target tracking on single axis 1-4. will not enable if axis is in fault condition. multiple axes can be enable by repeating the command.

    "TD axis" - disable target tracking mode on single axis 1-4

    and return to normal.

    "TP axis,pos,vel,filter" - set tracking position for single axis

    where: axis = axis number 1-4

    pos (machine steps ) target position for the specified axis. this position is with respect to the hardware home position and is in machine steps.

    vel ( machine steps / second ) max speed at which the axis will move to get to the target position.

    filter ( 0 - 1 ) exponential ramping filter. a value of 1 will produce no ramping effect. values close to 0 will produce long ramp times.

    ( typical values = .01 to .001 )

  • 5/25/2018 Version

    13/62

    Example: Enable target tracking for X axis and move to target position. ( assumes "X" is mapped to drive 1 )

    ENABLE X ;HOME X ;WA ON ; WAIT FOR HOME TO FINISHTE 1 ; ENABLE TARGET TRACKING DRIVE 1TP 1,1000,1000,.01 ; SET TARGET POSITION, AXIS WILL MOVE HERE... ;

    ... ;TD 1 ; DISABLE TARGET TRACKING FOR DRIVE 1

    /*****************************************************************************/

    Initial Release of Windows Based TOOLKIT and MMI software packages.

    V4.00 Date: April 18, 1995

    LIBRARIES: 1) Changed SOFTWARE LIMIT command to adjust for conversion factor. 2) Conversion factor parameters (x00 and x01) defaults = "1.0".

    FIRMWARE: 1) Resolver dual loop bugs :a) commutation does not intialize properly if resolver is is used for velocity loop.b) dynamic switching does not work properly for resolver velocity loop. ( added accel calc to velocity fetch routine )

    2) Axis calibration bug. Firmware used "sample distance" as table size. 3) Added parameters x73 ( Enable vel/accel feedforward during home cycle ) and x74 ( Use home limit during home cycle ), both defaults = "yes". 4) Modify gantry home cycle. Axes now do independent home cycles. 5) Increase axis calibration maximum useable range. Ok for rotary inductosyn with 65536*360 counts / rev, calibrated every 10 degrees.

    V4.01 Date: June 16, 1995

    LIBRARIES: 1) CVI command added, truncates values to integer.

    Example: v0 = CVI(v0) v1 = CVI(v7*12.54)

    2) Fixed position rollover problem for positions requiring more than 32 bits.

    3) Changed default values of fault mask parameters, new defaults: x55 Error Mask FAULT ffff,ffff,31ff x56 Disable axis ffff,fff0,af87

    x59 Halt queue ffff,fff0,8e00 x60 Abort motion ffff,ffff,9e78

    4) Changed parameter file editing, copy of parameter file can be created this copy of the parameters exists as parameters for board 6.

    MMI: 1) COM functions listed in Appendx E of the manual are now functional. The command COM SET _STATUS_ is changed slightly, in CNC the argument was just a number, in MMI it is a user variable.

  • 5/25/2018 Version

    14/62

    Example: CNC: COM SET _STATUS_ 23 ;status saved in V23 MMI: COM SET _STATUS_ V23 ;status saved in V23

    2) ME CO command fixed.

    3) Added VAR commands, this command saves and restores U500 variables.VAR OPEN filename -- opens file to store and retrieve vars from.VAR READ #,#,#,... -- read variable from the open file and sends

    the value to the card. ( # = 0 to 255)VAR READ ALL -- reads all 256 variablesVAR WRITE #,#,... -- writes current value of variable to open

    file ( # = 0 to 255 )VAR WRITE ALL -- writes values of all 256 variables to fileVAR CLOSE -- closes open variable file

    4) Fixed multiple board bug. After initializing all boards, the axis

    display for the first board was using parameters from the last board initialized. 5) Axis display can show different number of decimal places for axes on different planes. 6) Joystick digitizing with two boards is fixed. 7) Parameter editor creates copy of parameters ( using new library

    functions). This solves problem of overwriting parameter files when editing parameters of one board, while libraries set to a different

    board.

    FIRMWARE: 1) Circle command end point error. Negative correction at end of move

    can cause error of 2^24. 2) Fix Scale Factor internal bug. Internal representation of data was

    wrong, lower fraction not in .23 format. 3) If two consecutive decel motions overlap in G8, U500 will miss position. Internal sign correction was missing ( see move.asm, CISGCD ) 4) Fix backlash compensation routine. If axis cal and backlash are on, the tracking display shows an incorrect axis position. Also modify to allow "large" backlash correction values. 5) Remove "old" DOS software tune functions to make fimware file smaller.

    6) Change commutation offset operation for resolver mode. Add internal phase angle correction in 16 bit degrees. ( MSET bug initial release )

    V4.02 Date: July 25, 1995

    LIBRARIES: 1) Added autotuning: AT command added, motor identification routine added.

    AT axis,startfreq,amplitude,startcycles,numfreq,sampletime(ms),numsamples 2) Added general parameters 90 - 97.

    90, 92, 94, 96: A/D channel 1-4 joystick deadband in A/D countsdefault = 0 --> 16 A/D bits

    91, 93, 95, 97: A/D channel 1-4 center position

    default = 0 --> 127 ( parameter values of 0 are converted into internal default values of

    16 and 127. These default values are changed if parameters areentered non-zero. )

    3) Added part rotation...ROT X,Y,45 ; start part rotation - rotate XY plane by 45 degreesROT X,Y,0 ; turn off part rotation

    Part rotation begins when the "ROT" command is given with a non-zero rotation angle. All moves are rotated with respect to the point when

  • 5/25/2018 Version

    15/62

    rotation was turned on. Rotation continues until the ROT command is given with a zero rotation angle. ( Added new file "U500ROT.C" to library )

    MMI: 1) Added auto tuning. 2) Calculates expressions for IF conditions and LOOP repetitions properly. 3) On-line help added. 4) Fixed IM command, not required to be in first column. 5) Fixed ME FI command, output string shortened from 256 chars to length of string.

    6) Enables/Disables the appropriate function keys upon leaving the password screen when the password is required.

    FIRMWARE: 1) Fix MSET bug in V4.01. ( 6-22-95 ) 2) Add Primary Position Feedback Channel cases 29-32 for encoder gantry operation. This corresponds to axis 1-4 actual feedback. To make axis 3's servo loop identical to axis 1's, set axis 3's feedback channel to 29. Axis 3's servo loop will use the EXACT same velocity command and feedback that axis 1 used. All servo loop parameters and traps should be set the same. All motion and home parameters are based on the master axis. (6-22-95) 3) Invert polarity of scope torque for auto-tune. Makes more sense too.

    4) Fix V4.01 firmware release dates 6-16-95 and 6-22-95. DSP fast interrupts cause SR register corruption. This can cause random errors in trajectory generator software. Causes position, velocity or runaway in servo and missed position / runaway in stepper systems. (7-19-95)

    V4.03 Date: Sept. 6, 1995

    MMI/TOOLKIT: 1) Print option added to Axis Tuning Screen. 2) Velocity and Distance to go displays added to the Axis Positions window. 3) Fixed password on startup, if no password required, no options will be disabled. (MMI)4) In password, Desktop Config access level now enables/disables ability

    to change axis position display options. (MMI) 5) Removed decimal point when displaying steps. 6) Added hall effect inputs to diagnostic screen. 7) Globally defined subroutine file added. Defined in the System Options

    menu, syntax is identical to any subroutine. (MMI) 8) User defined M-Code file added. M-Code replacement is limited to one command. Syntax: M## "replacement command" (MMI)

    Ex.In M-Code file:

    M23 "ou 1"M24 "$in0"

    In U500 program:IF M24=1 :LABEL

    M23 9) Fix bug: Using Jog + and Jog - Function keys jog axis is same

    direction if parameter x12, + Jog is CW, is set to no. (MMI)

    LIBRARIES: 1) Relative and absolute position registers changed to save machine steps rather than program steps. 2) Position registers fixed to avoid negative numbers when axis rollover is used. 3) Added cutter radius compensation commands, G40-G44 for ULTRA only.

  • 5/25/2018 Version

    16/62

    G40 - cutter comp off. next command is move off of part.G41 - cutter comp on left, next command is move on to part.G42 - cutter comp on right, next command is move on to part.G43 - define cutter comp radius. ex. "G43 R.1".G44 - define cutter comp axes. ex. "G44 X Y".

    New error codes returned from aer_send()104 - CRC buffer full, too many commands between contours. 23 - CRC has been enabled without specifing axes. 24 - CRC has been enabled without specifing tool radius.

    ( Added "U500CRC.C" to DOS library to do cutter comp ) ( Drafting: Add cutter comp CAD drawings to next manual rev. )

    4) Added parameters:General parameter 98: Safe zone output bit (0,1-8), default = 0Axis parameters x75: Safe zone - limit (mach. steps), default=0

    x76: Safe zone + limit (mach. steps), default=0 5) Overriding scale factor command added.

    SCF X2 Y.5 -- sets scaling of x to twice programmed distance, y axis to half of programmed distance

    SCF X1 Y1 -- turns off scaling for x and y axesSCF Z-1 U1 -- produces mirror image

    FIRMWARE: 1) BUG - When all axes are in target tracking mode, commands not decoded

    from loop queue properly. Change IDX16 operation. 2) BUG - If a limit fault acknowledge cycle is aborted, the fault cannotbe cleared. (CHECK_ABORT)

    3) Make decell smoother during abort motion. (IDX10 and IDX12) 4) Implement SAFE ZONE function. Output bit specified by general parameter # 98, will be set low when all axes are in their specified safe zone. Axes must be enabled and homed first. An axis' safe zone function is defeated by setting the + and - limits to zero. The safe zone function is turned off by setting the safe zone output bit to zero. 5) Fix bug added in V402 for tach systems. Polarity of amplifier output was inverted for auto tuning function. Was not changed for tach loop.

    V4.04 Date: Oct. 18, 1995

    LIBRARIES: 1) Fix three digit m-codes interpreted as last two digits ( M102 no

    longer decoded as M02 ).

    2) Added axis parameter x77: Home/limit switch debounce (steps) range: 0-8388607, default=0

    3) Added iSBX arguments to QUEUE INPUT command. Syntax: QU IN,$nn,value ;$nn=address of iSBX, value is bit

    pattern to wait until

    QU IN,$nnb,value,$nnb,value$nn = address of iSBX, must be same for all arguments within a command b = bit number to checkvalue= value of bit number ( 0 or 1 )

    New aer_send() error codes added:25 = iSBX addressed must be the same26 = Incorrect iSBX address

    4) Fix writing of defaults for case 4 of parameters ( x06, x07, x22,

  • 5/25/2018 Version

    17/62

    x23, x75, x76)

    5) Tab character no longer recognized as part of a label.

    6) Default values for some parameters changed. Param # Old default New Default

    2 Yes No19 300 15021 Yes No37 300 15039 Yes No

    55 300 15057 Yes No73 300 15075 Yes Nox04 5 25x05 12 25x07 500 0x08 256 100x10 1000 2000x17 5120 440x19 1000 4000x46 80 70x47 40 35

    x49 2000 10000x55 ffff,ffff,31ff ffff,ffff,319f (no soft limits)

    x56 ffff,fff0,af87 ffff,fff0,ef87 (add E-stop)x63 12800 4000x65 5 1x73 Yes Nox74 Yes Nox77 0 750

    7) Fix bug added in v4.03. Overflow error will occur if using G2 orG3 motion with non-adjacent axes ( Ex. X and Z ).

    8) Added ability to read PSO inputs.Syntax: $PSO - reads all inputs (32 bits)

    $PSO,xx,... - reads specific input bitswhere xx is the hex bit value 00 to 1f

    Note: current implementation only uses 8 input bits ( 00 - 07 )Ex:

    v0=$pso ; v0 = value of all pso inputsif $pso,06=0 :label ; if bit 6 of pso inputs is low

    jump to labelif $pso,05,00=65 :label ;jump if bits 0 and 5 are high

    9) Fix overwriting reprogrammed function key F3 with Abort or Pause.

    10) MMI now allows programs greater than 32767 lines (using IM command).

    FIRMWARE:

    1) Fix RMS current error bug. If servo sample time is not .25 ms, RMS trap value will be off.

    2) Fix iSBX general bit output function ($00n-$0Fn, $10n-$1Fn) bug. could not clear individual bit outputs. (9/21/95)

  • 5/25/2018 Version

    18/62

    V4.05 Date: Nov. 27, 1995

    MMI/TOOLKIT:

    1) Fix remapping of axes in Jog screen and joystick digitizing screen.

    2) Fix overflow if no axes selected in Axis tuning screen.

    3) Added LZR reset option screen to System Options screen.

    LIBRARIES:

    1) Added iSBX input functionality to PLC.

    Syntax: $nn - byte input or $nnb - bit input

    nn = isbx address 00-0f - isbx chip select 0, address 0-f 10-1f - isbx chip select 1, address 0-f

    b = specifies bit number for test (0-7)Ex:

    IF($000=1)THEN ; check bit #0 = 1; cs0, address 0 ...IF($137=0)THEN ; check bit #7 = 0; cs1, address 3

    ...IF($00=0x1f)THEN ; check byte = 0x1f (bits 7-5 0, #4-0 1) ...IF($00=31)THEN ; same as above except in decimal ...

    2) Exponentials added to variables and message display commands.Ex.-

    v0=1.234e12v1=4.4e-5me di "%ev0" ; displays v0 in exponential format

    3) Changed default parameters:

    Param # Old default New Default x18 100 1000 x20 12000 655360

    4) Added filtering of velocity and torque to autotuning.

    FIRMWARE:

    1) Added firmware support for iSBX library inputs

    2) Changed amplifier fault scan rate. Was 2 ms changed to 1/4 ms.

    PSO:

    1) Fixed "PSOM" bug. Bit mapped firing used wrong internal register.

    V4.06 Date: February 8, 1996

    MMI/TOOLKIT: 1) Added pause command, valid in MMI only. Syntax: PAUSE ON,inputbit,bitstate

    PAUSE OFF

  • 5/25/2018 Version

    19/62

    whereinputbit = input bit number 0 - 15 or valid

    isbx input bit $000 to $127 bitstate = bit value to send pause 0 or 1

    After a PAUSE ON command is issued, when the inputbit goes to

    the bitstate value, the pause state of the board is toggled. The PAUSE OFF command stops the scanning of the input bit.

    2) isbx argument added to INT command. Syntax: INT nCNC, nLevel, nInputBit, nOnOff, Label

    nInputBit can be 0 - 15 (16 input bits) or $000 - $127 (isbx inputs)

    3) Added cycle command, valid in MMI only. Syntax: CYCLE ON,inputbit,bitstate

    CYCLE OFF

    whereinputbit = input bit number 0 - 15 or valid

    isbx input bit $000 to $127 bitstate = bit value to send cycle start 0 or 1

    After a CYCLE ON command is issued, when the inputbit goes to the bitstate value, the cycle start command is issued. The CYCLE OFF command stops the scanning of the input bit.

    4) Fixed bug: comment directly following label parsed as part oflabel.

    LIBRARIES:

    1) Changed for Windows 32 bit compatability.

    2) U500.H now includes the file COMPILER.H.

    3) Fixed G2/G3 bug: complete circle sometimes not executed.

    4) Relative and absolute position registers stored in programsteps.

    5) Fixed overflow error if General Parameters 3-6 (Axis mapping) set to 0.

    FIRMWARE:

    1) Modify firmware to allow MSET to initialize commutation. If the axis is enabled while an MSET command is active, commuation will start from the MSET angle. The MSET angle should be 90

    degrees. The value of the phase offset parameter ( #x45 ) does not matter.

    Example: ER 0,0,0X98 ; defeat all faults except limits EN X ; enable axis MSET 1,1,90 ; send open loop vector DW 2000 ; wait for axis to settle EN X ; will restart commutation ER 0,0,0X31FF ; enable desired faults

  • 5/25/2018 Version

    20/62

    2) Change interrupt levels: UINT_N (IRQA) level 2 ( disabled ) SERVO LOOP level 1 HOST / IRQB level 0

    3) Set axis acceleration to minimum value (.004 steps/ms/ms)if 0 is commanded.

    4) Add alternate PID loop and axis parameter x78 to turn it on. Worksonly on RevC. boards or greater.

    parameter x78 ( x =1..4 )

    bit #0 0 = pos+vel loop (current) 1 = parallel loop (new)

    #1 0 = Kpos always on 1 = Kpos on when vel cmd = 0

    #2 0 = vff scaling is 256 1 = vff scaling is 65536

    #3..23 reserved

    parameter type Integrator/Position loop control Vff scaling---------------------------------------------------------------------------default 0 pos+vel none x256

    1 parallel none x2562 pos+vel Kpos on only when vel cmd = 0 x2563 parallel Kpos on only when vel cmd = 0 x2564 pos+vel none x655365 parallel none x655366 pos+vel Kpos on only when vel cmd = 0 x655367 parallel Kpos on only when vel cmd = 0 x65536

    Parallel loop does not support dual loop mode. Vff shouldno longer be set to 256. It should be set to 0 if not used.

    5) Fix software limit bug. May take multiple "FAULTACK's" to moveaxis off of software limit.

    PCPSO: Firmware update to fix PSO firing problem. Would sometimes miss a firing point due to an interal interrupt.

    V4.07 Date: February 21, 1996

    MMI/TOOLKIT:

    LIBRARIES: 1) Fix bug added v4.06: Truncation of moves

  • 5/25/2018 Version

    21/62

    PCPSO:

    V4.08 Date: March 15, 1996

    MMI/TOOLKIT: 1) Changed parameter x12 name from "+ Jog is CW" to " + Jog same

    direction as + Move".

    2) Changed parameter x70 name from "Drive fault signal normallyopen" to "Drive fault signal active low"

    LIBRARIES: 1) Added axis parameters:

    x79 Primary current command offset (mV) default = 0 x80 Secondary current command offset (mV) default = 0

    These parameters provide a dc offset to the generatedcurrent commands.

    2) Added axis parameter: x81 Home marker search speed (machine steps/ms) default = 0

    This parameter changes the speed at which an axis searches

    for the home marker after hitting the home limit. The defaultvalue of 0 will search at same speed as before this parameter.

    FIRMWARE:

    PCPSO:

    V4.09 Date: March 27, 1996

    MMI/TOOLKIT: 1) Fixed Jog screen: allow decimal point for Y, Z, U feedrates.

    2) (MMI only) Fixed Jog +/- problem when using function keys F5 and F6.

    3) (MMI only) Fixed abort within jog screen and INT command:abort no longer set outputs when called by either of these functions.

    LIBRARIES: 1) Axis remapping fixed to work properly with cutter compensation,

    parts rotation, and overriding scale factor (SCF command).

    2) Increased low end feedrate clamp.

    FIRMWARE:

    1) BUG FIX : 3/21/96 Only affects axes in gantry mode:

    slave axis' Kpos gets cleared after home cycle completes.

    PCPSO: 1) PSOT,4 bug fix: If a PSOT,4 is issued while in velocity tracking

    mode, an error can occur. Fixed in 4-5-96 release.

    V4.10 Date: May 3, 1996

  • 5/25/2018 Version

    22/62

    MMI/TOOLKIT: 1) Added ability to have PSO firmware file in different directory

    than the U500 firmware file. PSO firmware added to project file.

    LIBRARIES: 1) Added functions: SLIB:

    a) aer_initializeU500(char *config, char *program, char *parameter)This function initializes the U500 only and does not tryto initialize the PSO, the return codes and arguments are

    identical to the aer_initialize function.b) aer_initialize_pso(char *firmware)This function initializes the PSO card using the firmwareas specified by the argument, the default firmware file ispcpso.frm.Return codes: 0: PSO initialized 11: PSO timeout 12: PSO firmware ID does not match 13: PSO checksum error 14: PSO communications failure 15: U500 not initialized 16: parameters not set for PSO board

    c) aer_scope_commandThis function is identical to WAPIAerScopeCommand.

    d) aer_scope_dumpThis function is identical to WAPIAerScopeDump.

    DLL:a) WAPIAerInitializeU500 Lib "WINAER.DLL" (ByVal lpsConfig As String, B

    yVal lpsFirm As String, ByVal lpsParam As String) As IntegerThis function is identical to aer_initialize_u500.

    b) WAPIAerInitializePSO Lib "WINAER.DLL" (ByVal lpsFirm As String) As Integer

    This function is identical to aer_initialize_pso.

    2) Added parameters:General Parameters: 99 Option board setup code ( Advanced motion tab )

    default = 0 range = 0 to 8388607 bit #0 - scan 4EN I/O #1 - scan ISBX encoder port

    500 User interrupt setup code ( Advanced motion tab )default = 0 range = 0 to 8388607 bit #0 - abort all axis motion on UINT_N #1 - UINT_N always enabled

    Axis Parameters: x82 Encoder multiplication ( Motor feedback tab )

    default = 0 range = 0 to 8388607

    3) Added functions for 4EN encoder board. a) short AER_LIBENTRY aer_iowrite( short brdaddr, short bank, long data );

    short AER_LIBENTRY aer_iowritebit( short brdaddr, short bank,short bitnum, long highlow );

    WAPIAerIOWrite Lib "WINAER.DLL" (ByVal brdaddr as integer,

  • 5/25/2018 Version

    23/62

    ByVal bank as integer, ByVal data as long) as integerWAPIAerIOWriteBit( ByVal brdaddr as integer, ByVal bank as integer,

    ByVal bitnum as integer, ByVal highlow as long) as integerarguments:

    brdaddr = address of u500 boardbank = 0 for 8 outputs of u500 card

    1-4 for banks 1-4 of encoder carddata = data to be output orbitnum = bit number to change

    highlow = 0 to set bit low, 1 to set bit highreturn code:0 = OK0 error

    These functions set output bits on the u500 card or on the 4ENencoder card.

    b) long AER_LIBENTRY aer_ioread( short brdaddr, short bank,short *error );

    long AER_LIBENTRY aer_ioreadbit( short brdaddr, short bank,short bitnum, short *error );

    WAPIAerIORead Lib "WINAER.DLL" ( ByVal brdaddr as integer,ByVal bank as integer, error as integer) as LongWAPIAerIOReadBit Lib "WINAER.DLL" (ByVal brdaddr as integer,

    ByVal bank as integer, ByVal bitnum as integer,error as integer ) as long

    arguments:

    brdaddr = address of u500 boardbank = 0 for 8 outputs of u500 card

    1-4 for banks 1-4 of encoder cardbitnum = bit number to change*error = pointer to error code

    0 = OK

    1 = communications port busy 2 = error sending address 3 = error reading MSW of result 4 = error reading LSW of result

    return code:value of input port, either entire bank or 0/1 if readingindividual bit.

    These functions read input bits on the u500 card or on the 4ENencoder card.

    4) Added commands: a) OE# val or OE# bit,highlow,bit,highlow,...

    This command sets output bits on either the u500 card or the 4EN encoder card. arguments:

    # = 0 for u500 card (OE0 command same as OU command) 1-4 for 4EN card banks 1 to 4val = value of outputbit = bit number to sethighlow = 0 sets bit low, 1 sets bit high

    b) IN# or IN#,bit,bit,...

  • 5/25/2018 Version

    24/62

    This command reads the inputs of the U500 card or the 4EN encoder card. IN0 is similar to $INP command, however, the IN0 command reads the inputs directly, the $INP command

    input value is updated with a check_status call. arguments:

    # = 0 for u500 card 1-4 for 4EN card banks 1 to 4bit = 0-23 for bit number to read

    c) MR mtype,addr This command reads the value of a memory location.

    arguments:mtype = X, Y, or L for X, Y, or L memory space.addr = address within memory space to read.

    Example:v0=mr x,0xb ;this reads the data at address 0xb from

    X memory space and places the value in v0 (this is the location of the 16 inputs)

    d) MW mtype,addr,data(,mode) This command writes a data value to a memory location. The mode argument indicates whether to overwrite the existing memory data, AND the new data with the previous data, or OR the new data with the previous data. arguments:

    mtype = same as MRaddr = same as MRdata = data to be writtenmode = AND if anding data

    OR if oring dataotherwise overwrite data

    Example:mw y,0x1a,6 ;writes a 6 to memory location 0x1a in Y

    memory space (this is the location of the8 outputs)

    mw y,0x1a,1,or ;set bit 0 of the outputs and does notaffect the other bits.

    e) Bitwise AND and OR functions have been added to the math functions. Bitwise AND operator is &, bitwise OR is | Examples: v0=2|1 ;v0=3, the bitwise or of 2 and 1 v0=0xf&0x2 ;v0=2, the bitwise and of hex F and 2

    FIRMWARE:

    1) Added support for 4EN encoder board. Can only be used for velocity feedback. Setup as channels 5-8. Currently does not support hall inputs. ( Can use as position feedback channel for debug but does not read

    limits , etc. ) 2) Added encoder capture interrupt "UINT_N" functionality. See files

    "ENCCAPT.DOC" and "ENCCAPT.C" files for more details. Available onlyfrom "C" interface.

    3) Fix G8/sine ramp bug. U axis velocity profile stops during decel thengenerates a large spike at end of move.

    4) Added 4EN card I/O support. 5) Added UINT_N option support. 6) Changed ISBX encoder card software to work with new parameter #99. Fixed

    marginal bus timing requirements thru software.

    PCPSO:

  • 5/25/2018 Version

    25/62

    V4.11 Date: July 30, 1996

    MMI/TOOLKIT: 1) Fixed multiple board Axis letter display in tracking display window.

    2) "Abort motion on Fault Acknowledge" check box added to System Optionsscreen. If checked, abort will occur when the fault acknowledge keyis hit.

    3) Added 2 Axis X-Y plotting to the Axis Scope window.

    4) (MMI only) M-codes functional from the MDI window.

    5) (MMI only) Added command:SC Scope Collect command This command is used to tell the scope window to collect one set of data. This is identical to selecting "Collect one set of data" from the Trigger menu of the Axis scope screen. The scope window must be open for this command

    to work.Syntax: SC no arguments

    LIBRARIES: 1) Added command to download axis calibration data from a file.Syntax: CAL filename where filename is the file containing the axis calibration data, the file should be in the same format as any other U500 axis cal file

    2) Added function to download axis calibration data directly.

    SHORT aer_download_caldata( long *caldata, short ncalpoints ) WAPIAerDownloadCaldata( caldata as long, ByVal ncalpoints as integer) as integer

    arguments:caldata = address of start of calibration data, each value should

    be stored as a long (only 24 bits used).* The first long is the axis to be calibrated (1,2,3,or 4) ora 2 digit number for orthogonality correction, with the firstdigit being the axis to be corrected and the second digit isthe axis to which the correction is based. ( Ex: 23 = axis 2is corrected based on the position of axis 3 ).

    * The second long is the distance in machine steps betweencorrection values.

    ncalpoints = number of calibration points (does not include thefirst two long values)

    return code: 0 = OK 0 = error

    3) Re-added iSBX functions removed in v4.10.

    4) Changed parameter x82 Encoder multipication to allow negative integers.

    5) (Watcom only) Fixed compiler error with function aer_is_open.

  • 5/25/2018 Version

    26/62

    6) Target Tracking functions made available as user functions. SLIB:

    short aer_targettrack_enable( short axis )Function in manual as targetrack_enable.

    short aer_targettrack_disable( short axis )Function in manual as targetrack_disable.

    short aer_targettrack_position( short axis, long tarpos,double adjvel, double lpcoeff )

    Function in manual as targetrack_position. DLL:

    short WAPIAerTargetTrackEnable( short axis )Same as aer_targettrack_enable. short WAPIAerTargetTrackDisable( short axis )

    Same as aer_targettrack_disable. short WAPIAerTragetTrackPosition( short axis, long tarpos,

    double adjvel, double lpcoeff )Same as aer_targettrack_position.

    FIRMWARE: 1) Modify orthogonality correction operation... Multiple axes can now be linked to the same master axis.

    Example: :START

    31 ;; correct axis 3 based on position of axis 1 1 2 3 4 5... :END :START 41 ;; correct axis 4 based on position of axis 1 1 2 3 4 5... :END

    2) REVC Firmware not sending proper brake status info to diagnostic window. 3) Axis may not stop completely at the home switch. This can occur if ac/de rate is low and feedrate is high. Added software flag to fix bug. 4) Add firmware to allow the scope function to collect up to 7500 samples per axis of actual position or command position. This feature is available with the U500 ULTRA only using the C

    libraries.

    PCPSO:

    V4.12 Date: October 8, 1996

    MMI/TOOLKIT:

    1) (MMI only) Program window now displays the commands sent to theU500 when running programs in IM mode. It will display the last8 commands executed.

    2) Fixed installation program, did not install WINPRM.DLL properly.

    V4.11 setup program changed on 8-26-96.

    3) (MMI only) Subroutines can be called from MDI window. The subroutines that can be called are any subs defined in the global subroutine file or any subroutine in the current program.

    A subroutine call can be made only if there is a program presently loaded.

    4) (MMI only) Message command functional from the MDI window.

  • 5/25/2018 Version

    27/62

    5) Restart button resets the program to the original starting program.

    6) Abort always occurs on a Fault Acknowledge.

    7) Variable labels accepted for branching (subroutine and goto commands).Syntax:

    SU :%v### GO :%v###

    where ### is a U500 variable 0 through 255Example: v25=700

    su :%v25 ; program execution will jump to label :700

    :700 me di "program jumped to here" return

    LIBRARIES: 1) Writing default parameters for yes/no parameter type fixed. No longer overwrites several parameters or writes no for yes defaults.

    2) Re-added parameter x30, Notch Filter N0. default=0, range = -4.0to 4.0. On Servo Loop tab.

    3) Fixed lock up due to zero distance move with specified feedtime.

    FIRMWARE: 1) Add new position feedback case 33..36 for axis1..4 spindle. Same as 25..28 except uses standard hall sequence ( no "000" "111" state ). 2) Added new trajectory generator routines. Not supported in lib/dll yet. 3) Change Kpos * Perr to increase fractional resolution. 4) Fix ramp command, would not decrement # actions in queue. 5) Change queue decoding scheme for modal commands...

    lin/sin ramp, eng/met, rounding, g8/g9 next command is decoded from same plane before executing motion routine. This allows mode changes for new contouring routines without breaks in motion profile. Also changed "start n" command to continue decoding

    on same plane. 6) Fixed contour/index feedrate, # commands in queue. Could generate negative

    command count in queue.

    PCPSO:

    V4.13 Date: October 25, 1996

    MMI/TOOLKIT: 1) Change tabwidth in parameter screen when fonts are different sizes.

    2) INT command, when in global subroutine file, will be valid for all programs being run.

    3) Ability to jump into a subroutine from an IF statement added. Syntax:

    IF SU :label jumps as a subroutine to :label

    4) Execute button for MDI window now executes subroutines and message commands.

    5) Added ability to jump to a line number in a program with the GOTO

  • 5/25/2018 Version

    28/62

    statement. Syntax:

    GO LINE ##sets program to line number ##

    6) Fix Invalid Propery Value in Axis Tuning screen related todisplaying 100 points.

    LIBRARIES:

    FIRMWARE:

    1) Homing problem. If limit switch debounce distance is 0, axis may take a long time to decel when moving out of limit. 2) V4.12 queue decodeing change not working properly. Contour moves

    with feedrates specified may not execute properly if motionis queued.

    PCPSO:

    V4.14 Date: December 12, 1996

    MMI/TOOLKIT/MMINT: 1) Fix Cycle and Pause commands, bit value of 0 or 1 may be checked incorrectly

    2) Abort key in Axis Tuning screen will stop program execution.

    LIBRARIES: 1) Modified gantry parameters, 7-10, to allow for inversion of the command sent to the slave axis.

    Syntax:y,# - current syntax, slave axis # to master axisy,-# - invert the command sent to slave axis #

    2) Added General Parameters:31, 49, 67, 85 : "Contouring Mode" for planes 1 - 4 default = 0, on "Advanced Motion" tab.

    3) Added Command: Contouring Mode command (CM). Syntax: CM # - # = 0 for original contouring mode

    = 1 for new contouring modeThis command changes the contouring mode of the U500.This command is used to turn on enhanced G8 mode. The originalcontouring mode blends moves together using by combiningdeceleration of one move with the acceleration of the next move.The new mode does not. It requires that the last move ispreceeded by a G9 ( velocity profiling off ) if in G8 mode.

    4) Added Axis Parameter, x83, "Filter Time Constant (ms)"

    default = 0, on "Servo Loop" tab.

    5) Added Command: Filter Time Constant (FL). Syntax: FL X#,Y#,Z#,U# - # is filter time constant in ms.

    This command is used in conjunction with the new contouring mode,the argument is in ms. This command activates an exponential filteron the specified axis. The time constant of the filter is given inmilliseconds. The primary use of the filter is to smooth a

  • 5/25/2018 Version

    29/62

    trajectory that constists of non-tangential moves in G8 (velocityprofiling) mode. The filter should also be used in the new contouringmode if feedhold or MFO is desired. A low filter value ( 10 ms ) issufficient in these cases. A filter time constant of 0 turns thefilter completely off. A parameter setting of 1 dissipates the filtercontents with no filter affect. If you do not plan to use the filter,the time / parmaeter should be set to 0.

    6) Added Axis Parameter, x84, "Aux output active high"default = YES, on "Traps" tab.

    7) New command added: CS Command Scope command This command works identically to calling the

    aer_scope_command function from the libraries.Syntax:

    v#=CS #### where #### is the cmd argumentto the aer_scope_command, returns the return codeof the aer_scope_command into the specified variable.

    Example:v0=cs 0x40000+1 ;sets timebase to 1 msv0=cs 0xb0000+7500 ;sets "long" number of samplesv0=cs 0xc0000 ;collect data

    :herev0=cs 0xd0000 ;return number of points to collectif v0>0 :here

    8) Cutter compensation: Full circle bug. Would sometimes pick the wrong intersection of line and circle.

    FIRMWARE: 1) Change feedback channel #25-28 to use 0,1,1,0,-1,-1 commutation

    sequence. Also requires a 000/111 hall sequence.(10-28-96)

    2) Fix PLC "F" (fault) case. Fault status was latched forever. 3) Change firmware for new parameter format 7-10.

    4) Add support for new axis parameter x84. "AUX OUTPUT active high ?" Setting this parameter to no inverts the polarity of the axis AUX output bit.PCPSO:

    V4.15 Date: January 27, 1997

    MMI/TOOLKIT/MMIW32:

    1) Fix execution of entire program when subroutine call made from MDI window.

    2) Modified program printing to fix problem of multiple page printing

    with a dot matrix printer.

    3) (W32) UMFO command fixed.

    4) (W32) Plane 4 mapping corrected.

    5) Multiple HALT commands can be sent. (HALT and START command added to 32 bit version).

    6) (W32) Fix parameter file printing.

  • 5/25/2018 Version

    30/62

    7) (16 bit) Only one instance of 16 bit application can be run at one time.

    8) Initial release of Windows 95 driver.

    LIBRARIES: 1) Target tracking disable bug, always disables the X axis.

    2) Fix Cutter Compensation bug. When two moves are at an angle slightly over 180 degrees, a full circle could be generated

    at the intersection. This is due to rounding. Any move less than 3 program counts will now be added to previous move.

    3) Fix cutter compensation bug with NEW CONTOURING mode ( CM 1 ).

    Improper sync of G8/G9 mode with compensated moves.

    4) Fix new contouring mode bug with "+ Move CW" parameter and part rotation.

    5) Fix variables within FL command.

    FIRMWARE:

    V4.16 Date: April 19, 1997

    MMI/TOOLKIT/MMIW32: 1) (W32) Fix calculate scale factor in parameter editor.

    2) (W32) Install fix added. Previous versions of MMI software could generate "Error 31037", this is due to error registering DLL's, specifically OLEPRO32.DLL and OLEAUT32.DLL

    3) (W32) Fix 'transfer parameters between planes' utility.

    4) (W32) Fix IM program bug greater than 32767 lines.

    5) (W32) SOFTWARE POSITION command does not work properly.

    6) Autotune amplitude changed from machine steps to user units.

    7) (W32) MMI will check if board is initialized on startup, willassume using parameter file of current project.

    8) Saving plot file now saves the current gains and a comment.

    LIBRARIES: 1) Changed point to point move (G9) in new contouring mode. Preserves

    programmed acceleration (Feed/ramp). Used to always ramp to

    programmed Feedrate.

    2) Removed GEAR "house_keeping" function. Was keeping gear function from executing until previous commands were finished, even in different plane.

    3) (W32) CM 1 , skips next block

    4) (W32) Add null pointer check to "execprgblk()"

  • 5/25/2018 Version

    31/62

    5) (W32) Can now define an M function as a SUBroutine call.

    6) (W32) U500 BASE will not accept G1/LInear command.

    7) (W32) fix G92 multi plane operation. Would clear all axes if no argument was given, regardless of current plane.

    8) (W32) Update enable flags in software_initialize.

    9) (W32) Fix axis CW/CCW limit parameters.

    10) (W32) Fix new contour mode, english circles calculated usingmetric scale factor.

    FIRMWARE: 1) Improve new contouring mode (CM 1) interpolation of 1ms to .25 ms. Now

    does 1st order interpolation.

    2) Add feedback channel case 37-40. Reads command position from channel 0-3 for 37-40. Encoder feedback from default channel.

    Example: Axis Parameter 338 = 37 ==> Axis 3 reads position command from channel 1. Encoder feedback from channel 3 counters.

    PCPSO: 1) Fix PCPSO problem. "PSOF,0" does not turn off the firing output

    in all cases.

    2) Setup REVA dsp firmware to output 20Mhz encoder sample frequency.To use, remove JP45,46,47,48, install JP52.

    3) Added aer_DSPMemRead / aer_DSPMemWrite functionality to PSO firmware.Base address is PSO base address. Can also use DSPDUMP.EXE from DOSto look at PSO memory.INPUT BUS ADDRESS = Y:0xFFE0 bits 0-7 ( read )OUTPUT BUS ADDRESS = Y:0xFFE0 bits 0-15 ( write )

    ( dont overwite bits 23-16, use DSPMEMAND and DSPMEMOR to clearand set bits )

    V4.17 Date: May 15, 1997

    MMI/TOOLKIT/MMIW32: 1) (32) New installation program. Customer parameters, configuration,

    and calibration files should be copied onto disk 4. Installationdisks are now the same for 95 and NT.

    2) (32) Fix isbx commands within INT, PLC, CYCLE and PAUSE commands.

    3) (16/32) New printing of axis tuning plots. (NOTE: There is a bugin the 16 bit printer driver HP LaserJet 4/4M that will not printthe tuning display.)

    FIRMWARE: 1) "START plane" command not working. Bug added in V4.15 firmware.

    LIBRARIES: 1) (16/32) Cutter compensation bug. If DSP buffer fills, incorrect

    motion path can be generated.

  • 5/25/2018 Version

    32/62

    2) (32) iSBX commands functional.

    3) (16/32) Modify NEW CONTOUR mode. If ramp time is set to 0, no ramping wil occur.

    4) (32) Add helicoil/2-circle capability to command decoder.

    5) (32) "NEXT" command not working properly. Command(s) following could get missed.

    6) (32) Added syntax checking of MESSAGE command.

    7) (32) DAC command not returning runtime error code.

    PCPSO:

    V4.18 Date: June 10, 1997

    MMI/TOOLKIT/MMIW32: 1) (32) Interrupt structure updated when jumping between programs.

    2) (16) Fix autotuning, display in mm or inches, value in machine steps.

    FIRMWARE:

    LIBRARIES: 1) (32) Fix axis mapping. drive 0 = "1,Y" 1 = "2,X" case did not work properly.

    Qlib functions should be called as "AXIS1-AXIS4". Axis registers are mapped as drive 0-3.

    2) (32) Fix G8 sync problem with cutter comp. 3) (16/32) Fix feedrate sync problem with cutter comp. 4) (32) If in CM 1, G9, short move, feedrate not correct

    for circle. Bug added in v4.16 with accel rate clamp. 5) (32) Spline mode: specified time "T" was not modal. If a time value

    is given, all following seqments will be executed in that time until

    a new time is given or a feedrate is specified.PCPSO:

    V4.19 Date: July 31, 1997

    MMI/TOOLKIT/MMIW32: 1) (32) Fix invalid property value in Axis Scope window if range of

    data is large.

    2) (16/32) Added "PSOF,0" command to the Abort key to stop the firingof the PSO.

    3) (32) Startup project and ini file default to installation directory

    rather than the desktop when run from the Start Menu.

    4) (16/32) Change AT command to work in program units. Allows axis as number 1-4 or XYZU.

    5) (16/32) Changed GEar command to allow C5,C6,C7,C8 as master (4EN board)

    6) (16/32) Position Error values calculation changed to avoid truncationif position values are large.

  • 5/25/2018 Version

    33/62

    FIRMWARE: 1) AT command uses axis parameter #11, "+ move is CW ?" 2) Added support for gear on 4en board. 3) Fault acknowledge did not work properly if axis was disabled.

    LIBRARIES: 1) (32) PSO dual-port ram functions added to device driver.

    2) (32) Fix Software Position command, previously command only workedon X axis.

    3) (32) User program not closed properly. Could cause MMI error "Could not open file xxxx".

    4) (32) Autotuning for axis 3 and 4 now works.

    PCPSO:

    V4.20 Date: September 9, 1997

    MMI/TOOLKIT/MMIW32: 1) (16/32) Save ASCII data from plot, velocity and position errors now

    can be non-integer.

    2) (16/32) COM functions fixed. Overflow error fixed if COM SET_TIMEOUT_ value set too high. Multiple terminating charactersbug fixed.

    FIRMWARE: 1) Home cycle accel / decel rate always uses axis parameter #16. Previously

    programmed accel "AC Xn..." was used. 2) Modify MSET command. If the axis is enabled when in mset, the U500 will

    continue to track the commutation vectors when the axis is disabled.Subsequent MSET functions are not necessary ( but still can be used ).MSET 1,0,0 will clear the tracking mode.

    WARNING: If the encoder power is lost and the motor shaft is turned,

    the commutation will not be preserved! This is also true ifthe maximum tracking rate of the feedback device is exceeded.

    Example: ER 0,0,0 ; turn off faults GA X KPOS0 KI0 KP0 ; set gains to 0 EN X ; enable axis MS 1,1,90 ; set commutation alignment vector GA X KPOS? KI? KP? ; restore gains EN X ; re-enable axis, ER 0,0,0xFF319F ; restore global fault mask ... ; DI X ; commutation still tracking

    ... ; ... EN X ; commutation preserved

    3) Added bit #21 feedhold status to aer_read_status(5). ( Bit #23 = GPB full, bit #22 = PC bus interrupt generated )

    4) Could not fault acknowledge ESTOP or INTERLOCK fault due to change made in V419.

    5) Increase PSO access time due to pal change on PSO.

    LIBRARIES:

  • 5/25/2018 Version

    34/62

    1) (W32) Plane 4 metric flag was wrong in internal buffer. 2) (W32) Slew command mapping was wrong.

    PCPSO:

    V4.21 Date: September 29, 1997

    MMI/TOOLKIT/MMIW32: 1) (32) Fix overflow if frequency of autotuning set to less than 1.

    2) (32) Fix error when saving gains from Axis Tuning window.

    3) (32) Upgraded FarPoint Tab control to get rid of warning messagewhen opening a parameter file: "License file not found..."

    FIRMWARE: 1) Multiple axes would not move out of limit. Also FAULTACK would

    cause other axes to not respond to commands.

    LIBRARIES: 1) (32) SOftware POsition did not work for any axis other than X.

    PCPSO:

    V4.22 Date: November 4, 1997

    MMI/TOOLKIT/MMIW32:FIRMWARE:

    LIBRARIES: 1) (32) Fix MS and MC command to work on axes 3 and 4. 2) (32) Add :%Vn GOTO and SUB support. GOTO will search current program.

    SUB will search current program first then search global subroutine file if present. If the label is not found, an error message will

    be gerenated. 3) (32) Changed version tracking calls for the device driver and qlib.

    Now they return major and minor version instead of a AER_VERSION struct. Also QLB50032 and WIN50032 dll versions can be viewed in "properties".

    4) (32) Device driver - removed kernel call for time delay KeDelayExecutionThread(), use internal function. Could cause problem running multiple threads.

    PCPSO:

    V4.23 Date: December 3, 1997

    MMI/TOOLKIT/MMIW32:

    1) (32) Increased program execution speed by adding checks of functionkey labels and if displaying messages, program does not get loadedinto list box.

    FIRMWARE:

    LIBRARIES: 1) (W32) Changed CM 1 to blend steady state moves

  • 5/25/2018 Version

    35/62

    te as if wait is off.

    3) (W32) Added math checking on move distances and feedrates. Maximum move is 2,147,483,647 program steps.

    4) (W32) Added support for PSOS ( pso scaling ) commands... PSOS,0 - scaling off PSOS,1 - scaling on PSOS,2,Xa,Yb,Zc,Dd - set scale factors a,b,c,d

    5) (W32) Fix plane in WAPIGetUbj function to correct display of feedrate in status windows of MMI.

    6) (NT) Removed interrupt information for the PSO from the device driver.

    Fixes crash of NT when PSO address is set in registry. 7) Fixed parameters 3-6 "Axis n map to plane as X-U". When parameter setto 0, return value previously was "none".

    PCPSO: 1) Added decode support for PSOS scaling, still need kernal support (RBR).

    V5.00 Date: January 20, 1998

    ( Software REV levels changed to match up U511 and U500 )

    MMI/TOOLKIT/MMIW32: 1) Add general parameter #501 to define input to abort. 0 = none, 1-16 are

    u500 primary inputs. When input goes high, all axes will ramp to stop at max ac/de rate. 2) Changed Auto Enable window in System Options screen from axes X - U

    to 1 - 4. Problem caused during re-mapping of axes. 3) Fixed parameter editor, previously would cause occasional crash of

    U500 software when in NT. 4) (32) Auto execute program fixed.

    FIRMWARE: 1) Add GPB59/5A for 24.24 feedrate and internal ramp time 2) Add axis status bit #9 aer_read_status(1-4) and aer_read_status(5)

    bit #20 to indicate abort input active. See new parameter #501. 3) Smooth axis cal output. Correction is generated at every 8ms. Every 1ms

    +/- 1 count is sent to servo loop. 4) Added SA,SD support.

    LIBRARIES: 1) (W32) add new DSP case for 24.24 feedrate - CM 1 only 2) (W32) modify feedrate/ramptime if CM 0/G9 to keep profile smooth - preserve accel 3) (W32) fix feedtime if CM 1/G9 or CM 0/G9. 4) (W32) Add new plane trigger commands. "SAn" and "SDn" where n is the

    plane to start 1-4. SA starts the specifed plane after the accel of the

    move. SD starts the specifed plane at the decel of the move.

    Example: plane 2 ; Assumes Y in plane 2, X in plane 1 halt ; g1 y10 ; will not execute until decel of x move plane 1 ; g1 x10 f1000 sd2 ; start plane 2 at decel point of x move

    PCPSO:

    V5.01 Date: February 5, 1998

  • 5/25/2018 Version

    36/62

    MMI/TOOLKIT/MMIW32:FIRMWARE:LIBRARIES: 1) (NT) Fix multiple board device driver crash added in v5.00.

    PCPSO:

    V5.02 Date: February 27, 1998

    MMI/TOOLKIT/MMIW32: 1) (32) Added CALLDLL function for the ability to call any DLL function

    from a parts program. See the installed file CALLDLL.DOC.2) (16/32) Modified Axis Scope screen to take into account the "+ move is CW" parameter. 3) (16/32) Set outputs on abort due to input bit high according to

    parameter 501.

    FIRMWARE: 1) Add multirow ortho table. ( not fully supported yet )

  • 5/25/2018 Version

    37/62

    MMI/TOOLKIT/MMIW32:FIRMWARE: 1) Bit #3 of servo loop parameter x78 used to do 1 cycle velocity

    averaging (add 8 to parameter to activate). 2) Global abort input would clear if another abort was given and the

    abort input was in the inactive state. 3) Add encoder gantry feedback channels 41-44. Will read command position

    from channel 1-4 respectively. Feedback is from own encoder cahnnel. Marker search during home cycle is seperate as are home offsets.

    LIBRARIES:

    1) (16/32) Fix moves of < 1 mach. step in CM 1. 2) (32) Cutter comp and part rotation was not working due to new commands added in V5.00. ( 24.24 Feedrate, ramptime, SA,SD commands )

    3) (32) Added function WAPIAerGetQlibError. This function returns theerror message of the previous quick library command.

    Syntax: AERERR_CODE WAPIAerGetQlibError( char *psErr ) Return: quick library error code number

    *psErr = pointer to a string that will be filled with thequick library error message.

    4) (32) Added function to return firmware info. Syntax: AERERR_CODE aerq_get_firmware_info( BOARD *pb, long *plInfo ) Arguments: *pb - address to board pointer

    *plInfo - address of array of 10 longs. This number of longs

    is set by constant NUM_FIRMWARE_INFO. Return: 0 if OKplInfo[0] = firmware versionplInfo[1] = parameter base addressplInfo[2] = plane 1 base addressplInfo[3] = plane sizeplInfo[4] - [9] = spare

    5) (32) Added extra functions for the calldll command. Commands added: LOADDLL and FREEDLL. These calls are required only to keep thedll loaded between calldll commands.

    Syntax:v## = LOADDLL "dllname"

    Argument: dllname = name of dll to load

    Returns:handle of open dll into v##. This handle used in freedll call.

    Syntax:v## = FREEDLL v##

    Argument: v## = variable containing handle returned from loaddll call.

    Returns 0.

    PCPSO:

    DRIVER_NT:

    1) Added more diagnostics to the device driver. See "qlib_ex5.c"

    for usage.

    V5.05 Date: June 18, 1998

    MMI/TOOLKIT/MMIW32: 1) Recalculation of autotune gains performed when BW or damping changed,

    without requiring retuning. 2) (32) The configuration file is obsoleted. The calibration file name

    replaces the config file name in the project. Upgrades will automatically

  • 5/25/2018 Version

    38/62

    replace the config file name with the cal file name in the project. 3) (32) Registry editor tools added (u500reg.exe). 4) (32) SC command is now a queued command. No need for a WAIT ON before it. 5) (16) Software initialization available if board is already initialized.

    The parameter file should be the command line argument and is used to set

    up the software and libraries.

    FIRMWARE: 1) Add trigger command.

    2) Add command vector to enable scope_dump interrupt. Should be called from scope_dump routine.

    LIBRARIES: 1) Changed CM 1 to handle short moves better. 2) Allow ramp time to be set to 0. 3) Added TRIgger command , "TRI 1,2,3,4" to trigger planes. This is a realtime non-queued command. Also changed libraries to allow all planes to be halted. 4) Add "REF XYZU" command to move axis to its marker. Executes like a home

    cycle. Software positions / hardware positions are cleared. 5) Changed servo loop default parameter values. 6) (32) Added command to read parameter values from current parameter file.

    Syntax: v## = prm(xxx)where ## is variable number xxx is parameter number

    This command only works for parameters that return numeric values.The yes/no parameters will return 1 for yes, 0 for no.

    7) (32) Added command to read the current gains from the U500 card.Syntax: v## = gain axislet gaintype

    where ## is variable number axislet = X, Y, Z, or U gaintype = KPOS, KI, KP, VFF, or AFF

    Ex: v0 = gain x kp ;returns kp value of x axis

    8) added command vector for scope dump

    9) (w32) added trigger accel / decel commands as standard 10) (w32) added NOMAPPING def for future firmware versions 11) (w32) changed contour routine to modify ramp time and feedrate even onG8/G23 moves (for CM 0) 12) Add aerq_pso_mem_read/write commands to access PSO memory directly

    ( qlib's only ). 13) (w32) Fixed bug with UMFO command. Would not execute next block in program. 14) (32) Added scope trigger command. This command is used to queue the triggering of collecting

    data. This command is used in place of the aerq_scope_command with argument dwCmd = SCMDENABLE.

    Function: AERERR_CODE AER_LIBENTRY aerq_scope_trigger(BOARD *pb);

    PCPSO: 1) Add "PSOC,4,low,high" command. This command will fire a pulse ( PSOP,4

    mode only ) when the specified axis is within the window defined by "low" and "high". These values are in machine steps and are referenced to the point where firing was enabled ( with the PSOF,3 command ).

    EXAMPLE: PSOD,0,100 ; fire every 100 machine steps PSOP,4,1000 ; define pulse width ( 1000usec = 1ms )

  • 5/25/2018 Version

    39/62

    PSOC,4,10000,100000 ; define window in machine steps PSOF,3,X ; start tracking

    DRIVER: 1) Add trigger command. 2) (W32) Minimize time wasted in driver if buffer is full. 3) (W32) Add command vector to scope_dump to fix problem when calling checkstatus

    between scope_command and scope_dump. requires firmware changebut is backwards compatible.

    V5.06 Date: July 14, 1998

    MMI/TOOLKIT/MMIW32: 1) (32) Fix GO LINE command for IM programs. 2) (32) Added data collection of inputs and outputs in Axis Scope window.

    FIRMWARE: 1) Adjust MFO in CM 1 to reduce the end of move glitch when not set to 100%. 2) Encoder gantry modes now enable/disable based on either axis. 3) Add case aux case 3 and 4 to scope routines for collecting inputs and

    outputs.

    LIBRARIES: 1) Some parameter default values have been changed:num name old newx25 Kpos 1000 50x26 Ki 10000 5000x27 Kp 600000 100000

    2) Add "EF" command to specify ending feedrate of a G8 contour move. This only works in CM 1. EX: G1 G8 X10 F1000 EF500

    3) Add "WAIT ON/ALL [mask]" option. "mask" is the readstatus(5) AND mask. Program flow will not continue until ( readstatus(5) & mask == 0 ). WAIT ON/ALL default operation changed to only wait in the current plane. EX: "WAIT ON 0xfff10" waits for all planes and axis 1 in pos.

    4) Fix invalid error code from VAR READ/WRITE calls. 5) (32) Add SYNC command. This is a queued command that will wait for

    the duplicate buffer to finish. This is useful for G8/G23 mode.

    PCPSO: 1) Add diagnostic call, returns:

    +0..3 axis encoder positions. +4 input bits +5 ADC value ( note: this is option hardware ) +6 output bus value +7..11 spare ( 0's )

    NOTE: The diagnostic data is only updated when the PSO is not tracking!!!

    DRIVER: 1) Add PSO diagnostic calls. 2) Re-write checkstatus routine to use a HOST COMMAND vector instead of

    GROUPA sequence. 3) Change scope and memory read functions to use new send_gpa function.

    V5.07 Date: August 10, 1998

    MMI/TOOLKIT/MMIW32: 1) (32) Fix 2-axis plot bug added in v5.06.

  • 5/25/2018 Version

    40/62

    2) Fix changing of auto-execute program. 3) (32) Two options to auto-execute programs: Autorun or Silent Autorun.

    Autorun: normal program execution mode. Silent: program execution window not visible.Programs will be run on software startup (if board init) and reset.

    FIRMWARE: 1) u500cn.jwp - abort does not stop execution of PLC. PLC execution does not

    set checkstatus "busy" bits. 2) Add "DY axis time kpos " command. EX: "DY X 20 1"

    3) BUG: Encoder gantry mode 29-32, 37-40,41-44. If axes are disabled, moved, then re-enabled, slave axis may have a torque offset.

    4) Software limits will not activate during home cycle. 5) Increase speed of limit fault acknowledge. Will move out of limit

    at power on home feedrate. 6) If the U500 is controling steppers and servos, the stepper update rate

    will be 4Khz instead or 8Khz. Servo interrupt could be missed due to read of TCSR before RTI.

    LIBRARIES: 1) HALT/START were not affected by wait mode. A problem could occur if the following sequence was used...

    WA ON HALT ... ; would wait here for ever.

    2) Add support for helix interpolation in CM1. G1 command MUST follow G2/G3.

    EX: "G2 X0 Y0 I1 J0 G1 Z3.14 U3.14 F1200"

    PCPSO: 1) Bug added in V5.05 - PSOD command would not work due to diagnostic

    subroutine. Diag sub moved to 10Khz interrupt. Will be called if the PC diagnostic routine is run. This will degrade tracking performance and should only be used for diagnostic purposes.

    DRIVER: 1) Add minimum number of checkstatus tries in addition to the timer.

    V5.08 Date: October 22, 1998

    MMI/TOOLKIT/MMIW32:

    FIRMWARE: 1) Fixed bug in U500CN.JWP file. During accel/decel, interpolation to servo

    loop could cause audible noise. 2) Axis can be homed based on the marker by setting axis parameters 8

    and 77 to 0. The marker must be pulse width extended to .5ms minand tied to the home limit input.

    3) Gantry mode 29-32: If servo update is less than 4Khz, the slave servo loop's current will ramp up over time.

    4) Do zero order interpolation in U500CN version if either velocity is 0.

    LIBRARIES: 1) (W32) MEssage strings can now contain the reserved characters "(", ")" and "'". 2) (16) Fixed Contour mode 1 bug added in v5.04, fixed cutter comp

    bug added in v5.07.

  • 5/25/2018 Version

    41/62

    PCPSO: 1) Fix bug added in V5.06 - PSOF,3 would not work for more than 1 axis

    ie. PSOF,3,X,Y would not work.

    DRIVER:

    LABVIEW: 1) (32) Fixed truncation of decimal numbers when running German version

    of NT/95.

    V5.09 Date: 2/12/99

    MMI/TOOLKIT/MMIW32:1) MMI code upgraded to Visual Basic 6 .

    2) Fix COM SEND "V(%L)###" command (truncating variable to int). 3) When the 'Cancel' button on the input variable dialog box is

    pressed the program execution now changes to Single Step mode. 4) Fixed Run-Time Error when using Password option. 5) Added search/replace options for program editor. 6) If collecting one set of data or collecting data continuously,

    in the scope window, the command queue is not checked. 7) Printer Dialog Window added when printing from the Axis Scope

    window.

    FIRMWARE: 1) DY command not working for slave axis. 2) CM 1 now is smoother before decel. 3) Would only decode first index feedrate given in a G0/INdex command. 4) Add feedback cases 45-48 for optional 12 bit A/D convertor position feedback.

    channel U500 P1 DR500 BB501 45 96 (AIN1) J13-25 (MISC.IO) TB1-4 46 95 (AIN2) J13-24 (MISC.IO) TB1-3 47 90 (AIN3) J12-6 (JOYSTICK) J12-6 48 89 (AIN4) J12-3 (JOYSTICK) J12-3

    This feedback position is absolute w.r.t. voltage...

    +10V -> 20470V -> 0

    -10V -> -2048 5) Axis Cal/Backlash/ortho/2-d ortho/3-d error mapping - use un corrected

    command position. This keeps routines form interacting. 6) Encoder gantry: tracking display does not show corrections for slave axis. 7) Adjust scope positions during home cycle so there is no spike on display. 8) Max segment size internally limited to 10 ms to save firmware space. 9) Fix bug that may cause an axis to home in the wrong direction under

    certain circumstances. 10) iSBX/AD/Velocity host interrupt changed so that DSP will not wait

    for data. Could cause 0 velocity if NT driver gets swapped out.LIBRARIES: 1) Add :MULTI 3D error map table decoding. Cal files can also now contain comments in data area.

    :MULTI 1 2 ; input axes 1 2 3 ; output ( corrected axes ) 10000 10000 ; sample distance (row col) 0 0 ; offset from home to start of table 5 ; number of points per row

  • 5/25/2018 Version

    42/62

    1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 ; correction data in groups of ... ; three (XYZ) (XYZ) ... :END

    2) Add QU POS 1 [,2,3,4] command. Halts current queue until specified axes are in position. ( pos err < prm x35, axis is enabled, vcmd == 0 )

    EX: QU POS 1,2,3 ; wait for axis 1,2,3 to come into position

    3) Add "ACcel PLane=a" command. Where "a" is maximum acceleration in UNITS/SEC/SEC or STEPS/SEC/SEC. This will limit the acceleration during linear and circular moves by lowering the feedrate and

    adjusting the ramptime. One block look ahead is used to slow down before a circle or final move in a G8 sequence. This command works for contour mode 1 (CM1) only. Setting "a" to 0 will turn this function off. Look ahead is done only in the MMI or with the "::" command.

    EX: AC PL=1000 ; set acceleration at 1000 mm/sec/sec for currentplane

    4) Contour moves are now passed as "blockmove" structure. This keeps better sync when doing cutter comp. Also feedrate, g8/g9, ramptime, rounding, and traj type are passed along in blockmove structure. They are not sent to the U500 individually. Circle

    centers are kept as double.

    5) Add PSO velocity tracking abort command. ( Aborts PSOT,4 and PSOT,5 commands )

    Syntax: "ABORT PSOT,endvoltage,msec,flags,outmask,outdata" Where:

    endvoltage - DAC output will end up at this voltage after ramp (volts)

    msec - number of milliseconds to ramp to "endvoltage" flags - #0 kill laser at beginning of ramp

    - #1 " " " end of ramp - #2 set outputs at beginning of ramp

    - #3 " " " end of ramp - if all bits are 0, the laser fire output and output

    bits - wil not be changed.

    outmask - defines output bits to change, bits #15-0 =1 to change

    outdata - defines output pattern bit #15-0

    Note: This is a realtime, non-queued command sent directly to the PSO board from the PC.

    6) Adjust circle center if the starting and ending radii are not the same. The average radius is used. The start and end points are preserved. This fixes some problems in cutter comp which generate a wrong

    direction circle due to programming errors. 7) Modify cutter comp to keep fractional centers and endpoints internally.

    This fixes problems when moves are almost tangent. Could generate a circle in the wrong direction.

    8) Better error checking for WHILE/ENDWHILE, IF-THEN-ELSE-ENDIF, and LOOP statements.

    9) Add intrinsic corner rounding mode. Will command a circle between linear (g1) moves only. Moves must be greater than two times the programmed radius. Look ahead is done only in the MMI or with the "::" command.

  • 5/25/2018 Version

    43/62

    G25 X Y R1 ; define axes and radius G26 ; rounding on G1 moves ... G27 ; rounding off

    10) Two commands can be send in immediate mode, seperated by a double colon "::". This is used to implement one block look ahead using the WAPIAerSend() function. See G25 and AC PL commands. Only the first block is executed, the second block is for look ahead purposes only!

    Syntax "block1 :: block2"

    EX: "G1 G8 X10 F2400 :: G2 X0 Y-2 I0 J-1" "G2 X0 Y-2 I0 J-1 :: G1 G9 X-10" "G1 G9 X-10"

    11) Add auto focus command. Requires 12 bit A/D convertor option.

    AFCO axis,channel,pos,gain,vel[,db,max,min,flags] where: axis XYZU

    channel A/D convertor channel 1-4, or 0 = off pos desired A/D position to track to ( in A/D counts ) gain sets responsiveness of loop ( Like KPOS ) vel maximum motor speed ( units-steps/min-sec )

    (opt.) db dead band in A/D counts (opt.) max maximum motor movement in positive direction ( units )

    (opt.) min minimum motor movement in negative direction ( units )

    (opt.) flags see help file

    Example: "AFCO X,1,0,100,10000,1,1,-1,0" Description: track on analog input #1 with a gain of 100. Maximum correction speed is 1000 mm/min. There is one A/D count of deadband. The encoder will move +/- 1 unit relative to the point where to command was given.

    Note:channel U500 P1 DR500 BB501 45 96 (AIN1) J13-25 (MISC.IO) TB1-4 46 95 (AIN2) J13-24 (MISC.IO) TB1-3