This document summarizes the bug fixes and new features for multiple versions of U500 Software and Libraries. It lists fixes and additions for issues related to axis feedback, motion commands, libraries, and more. Each version includes details of specific fixes and new capabilities added to improve performance and functionality.
Download as TXT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
257 views
Version
This document summarizes the bug fixes and new features for multiple versions of U500 Software and Libraries. It lists fixes and additions for issues related to axis feedback, motion commands, libraries, and more. Each version includes details of specific fixes and new capabilities added to improve performance and functionality.
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 62
This document contains a list of bug fixes and added features to the
U500 Software and Libraries. It is meant 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. 2) For INdex (G0), if motion distance less than max ac/de rate system lock-out 3) For contour motion (G1/G2/G3), if feedrate is too high, and motion distance 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 to configure 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 from 20 to 200
3) Add new command to update PLC_BIT P0xnnnnnn for 24 bits data or 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 treated as 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 ELSE WHILE ENDWHILE AND OR 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 param file will default to 0. The file is NOT modified until saved from parameter window. Fixed Interface: 1) Memory Leak during display updates New Features: 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 motors and 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 and Lowpass 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 will perform 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 X64 If each axis is open loop stepper, whether encoder verification is enable or disable 3) Parameter X42 added case 3 drive 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 increase efficiency. 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 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 Aerotech
Version 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 Khz Avg 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 displaying yes / 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 axis 1-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
dac channel : display channel 1-8 2) Enhance Command Interrupt function for multi-boards interrupt daisy 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. Axis will not servo properly( for LensGen 200 spndle axis only ) 2) Freerun, multiple axis; Flags get destroyed after first freerun stop. Subsequent free run stops cause the commanded velocity to 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 reset a) Made pulse 250ms b) 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 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 automatically reset 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: 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 crash the 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/x53 increase 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 will not 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=$01 b) 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 software absolute and relative positions with SERVO COMMAND POSITION instead of SERVO ACTUAL (ENCODER) POSITION 2) Add servo command position to C/BASIC Libraries Case 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: 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 joystick mode out of a limit, the motion is not smooth due to the normal error processing sequence. Fixed by ignoring the normal error processing 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 and 65536 vectors for linear motors. Linear motors are specified by setting the number of electical cycles / rev parameter to "1". 2) Change utility program "U500DIAG.EXE" to display 32 bit machine position. 3) Add handwheel operation when all four axes are resolvers. New case added 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 if between 1 and 4 ( encoder counter ). Hall signals are still fixed for 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 before PLC CLose, this command will stay inside PLC buffer, and executed each time PLC scan to this command. If PLC EN/DI appear after PLC CLose, this code won't stay inside PLC buffer, It becomes a control instruction. 6) Add PLC command : for PLC condition checking commands , IF..ELSE..ENDIF and WHILE..ENDWHILE, User can combine them in the same PLC program, also nest each command indefinitely 7) Add DWell on event command : for better communication between PLC and QUEUE buffer, add dwell on event command DWell ( G4 ) In=0/1 ; dwell when INput bit n (0-15) .eq. to 0 or 1 DWell ( 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)", 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 this command to enable A/D data fetch ( set en_disable to != 0x0 ) or disable 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 of the 4 A/D data. set atd_number to 0, 1, 2, 3 to read A/D channel 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 data Example: V0=$AD1 ;read A/D channel #1, then put result in V0 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) data of 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 Window
Version 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 two digit number "AB". If A is not specified, axis calibration is done to 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 be homed. A maximum of 256 points are allowed for ortho. correction. The sample distance must be greater that 256 encoder counts. Example: An axis number of "21" represents correction to axis 2 based on the position of axis 1. Correction to axis 2 will begin when axis 1 completes a home cycle and axis par 115 is "yes". 2) Fix axis cal bug. Sometimes axis cal checksum routine would enable calibration 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 until all faults are acknowledged. ( #23,X:<SERVOSTAT ) 8) G23/G8 mode, deceleration will be sinusoidal if programmed. 9) If move is too short to ramp up to speed, G8 will still blend moves. 10) Circular move will occasionally generate huge error. LIBRARIES: 1) add LZR2100 general parameters... 090 : LZR2100 board 1 - PC I/O address (hex) 091 : LZR2100 board 1 - parameter file name 092 : LZR2100 board 2 - PC I/O address (hex) 093 : LZR2100 board 2 - parameter file name (NOTE: these parameters are not supported by the U500 or LZR2100 yet!!) 2) add "C" library support for parameters 91,93 in function... SHORT aer_read_param(SHORT which); add case 16 : 8.3 ASCII file name Version 3.35.00 March 2, 1995 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 ) 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 FINISH TE 1 ; ENABLE TARGET TRACKING DRIVE 1 TP 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. 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 variables VAR WRITE #,#,... -- writes current value of variable to open file ( # = 0 to 255 ) VAR WRITE ALL -- writes values of all 256 variables to file VAR 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),numsample s 2) Added general parameters 90 - 97. 90, 92, 94, 96: A/D channel 1-4 joystick deadband in A/D counts default = 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 are entered non-zero. ) 3) Added part rotation... ROT X,Y,45 ; start part rotation - rotate XY plane by 45 degrees ROT 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 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. 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 = 0 Axis 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 axes SCF 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 cannot be 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 check value= value of bit number ( 0 or 1 ) New aer_send() error codes added: 25 = iSBX addressed must be the same 26 = Incorrect iSBX address 4) Fix writing of defaults for case 4 of parameters ( x06, x07, x22, 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 No 19 300 150 21 Yes No 37 300 150 39 Yes No 55 300 150 57 Yes No 73 300 150 75 Yes No x04 5 25 x05 12 25 x07 500 0 x08 256 100 x10 1000 2000 x17 5120 440 x19 1000 4000 x46 80 70 x47 40 35 x49 2000 10000 x55 ffff,ffff,31ff ffff,ffff,319f (no soft limits)
x56 ffff,fff0,af87 ffff,fff0,ef87 (add E-stop) x63 12800 4000 x65 5 1 x73 Yes No x74 Yes No x77 0 750 7) Fix bug added in v4.03. Overflow error will occur if using G2 or G3 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 bits where 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 inputs if $pso,06=0 :label ; if bit 6 of pso inputs is low jump to label if $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) 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.234e12 v1=4.4e-5 me 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 where inputbit = 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 where inputbit = 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 of label. 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 program steps. 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 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. Works only 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 x256 2 pos+vel Kpos on only when vel cmd = 0 x256 3 parallel Kpos on only when vel cmd = 0 x256 4 pos+vel none x65536 5 parallel none x65536 6 pos+vel Kpos on only when vel cmd = 0 x65536 7 parallel Kpos on only when vel cmd = 0 x65536 Parallel loop does not support dual loop mode. Vff should no 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 move axis 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 <= 1 step. FIRMWARE: 1) Fix Irms current rounding problem. Causes early Irms fault. 2) Clear pid loop torque output buffer during disable. ( used in scope window ) 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 normally open" 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 generated current 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 default value 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 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 try to 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 firmware as specified by the argument, the default firmware file is pcpso.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_command This function is identical to WAPIAerScopeCommand. d) aer_scope_dump This 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 Integer This function is identical to aer_initialize_u500. b) WAPIAerInitializePSO Lib "WINAER.DLL" (ByVal lpsFirm As String) As I nteger 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, ByVal bank as integer, ByVal data as long) as integer WAPIAerIOWriteBit( ByVal brdaddr as integer, ByVal bank as integer, ByVal bitnum as integer, ByVal highlow as long) as integer
arguments: brdaddr = address of u500 board bank = 0 for 8 outputs of u500 card 1-4 for banks 1-4 of encoder card data = data to be output or bitnum = bit number to change highlow = 0 to set bit low, 1 to set bit high return code: 0 = OK <>0 error These functions set output bits on the u500 card or on the 4EN encoder 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 Long WAPIAerIOReadBit 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 board bank = 0 for 8 outputs of u500 card 1-4 for banks 1-4 of encoder card bitnum = 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 reading individual bit. These functions read input bits on the u500 card or on the 4EN encoder 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 4 val = value of output bit = bit number to set highlow = 0 sets bit low, 1 sets bit high b) IN# or IN#,bit,bit,... 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 4 bit = 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 MR addr = same as MR data = data to be written mode = AND if anding data OR if oring data otherwise overwrite data Example: mw y,0x1a,6 ;writes a 6 to memory location 0x1a in Y memory space (this is the location of the 8 outputs) mw y,0x1a,1,or ;set bit 0 of the outputs and does not affect 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 only from "C" interface. 3) Fix G8/sine ramp bug. U axis velocity profile stops during decel then generates 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: 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 Options screen. If checked, abort will occur when the fault acknowledge key is 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) or a 2 digit number for orthogonality correction, with the first digit being the axis to be corrected and the second digit is the axis to which the correction is based. ( Ex: 23 = axis 2 is corrected based on the position of axis 3 ). * The second long is the distance in machine steps between correction values. ncalpoints = number of calibration points (does not include the first 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. 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 the U500 when running programs in IM mode. It will display the last 8 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) 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 255 Example: 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.0 to 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 <condition> 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 statement. Syntax: GO LINE ## sets program to line number ## 6) Fix Invalid Propery Value in Axis Tuning screen related to displaying 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 motion is 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 axis y,-# - 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 mode This command changes the contouring mode of the U500. This command is used to turn on enhanced G8 mode. The original contouring mode blends moves together using by combining deceleration of one move with the acceleration of the next move. The new mode does not. It requires that the last move is preceeded 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 filter on the specified axis. The time constant of the filter is given in milliseconds. The primary use of the filter is to smooth a trajectory that constists of non-tangential moves in G8 (velocity profiling) mode. The filter should also be used in the new contouring mode if feedhold or MFO is desired. A low filter value ( 10 ms ) is sufficient in these cases. A filter time constant of 0 turns the filter completely off. A parameter setting of 1 dissipates the filter contents 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 argument to the aer_scope_command, returns the return code of the aer_scope_command into the specified variable. Example: v0=cs 0x40000+1 ;sets timebase to 1 ms v0=cs 0xb0000+7500 ;sets "long" number of samples v0=cs 0xc0000 ;collect data :here v0=cs 0xd0000 ;return number of points to collect if 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. 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, will assume 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) (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 using metric 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 DOS to 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 clear and 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. Installation disks 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 bug in the 16 bit printer driver HP LaserJet 4/4M that will not print the 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. 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 prope rly. 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 firing of 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 truncation if position values are large. 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 worked on 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 characters bug 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 if the 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: 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 message when 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 function key labels and if displaying messages, program does not get loaded into list box. FIRMWARE: LIBRARIES: 1) (W32) Changed CM 1 to blend steady state moves <= 10 ms into accel or decel. 2) (W32) MDI immediate commands are not affected by WAIT mode. Always execu 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 set to 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 - prese rve 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 th e 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 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 ) <---- axis 1 ---0 *--*--*--*--*--+ 0 | a *--*--*--*--*--+ | x *--*--*--*--*--+ | i *--*--*--*--*--+ | s *--*--*--*--*--+ V 2 :ORTHO 21 ; correct straightness of axis 1 by moving axis 2 200000 ; sample distance of axis 1 1250000 ; sample distance of axis 2 ( between rows ) 10 ; number of points per row x x x x x x x x x x ; row 1 data x x x x x x x x x x ; row 2 data x x x x x x x x x x ; ... :END 2) Fix queue status if executing "QU IN" command. LIBRARIES: PCPSO: V5.03 Date: 3/13/98 MMI/TOOLKIT/MMIW32: FIRMWARE: 1) MSET command was not clearing "commutation valid" flag. (see V420) 2) AC motor with resolver was not working properly due to a change made in v4.22 gantry mode. LIBRARIES: 1) (32) Decoding of error messages in WIN50032.DLL returning incorrect message: "Error in DLL". This bug was added in v5.02. 2) (32) Notch filter parameter "default" not working properly. PCPSO: V5.04 Date: April 15, 1998 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 the error 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 the quick 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 OK plInfo[0] = firmware version plInfo[1] = parameter base address plInfo[2] = plane 1 base address plInfo[3] = plane size plInfo[4] - [9] = spare 5) (32) Added extra functions for the calldll command. Commands added: LOADDLL and FREEDLL. These calls are required only to keep the dll 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 automatical ly 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 se t 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 on G8/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 prog ram. 14) (32) Added scope trigger command. This command is used to queue the tr iggering of collecting data. This command is used in place of the aerq_scope_command with arg ument 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 ) 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 check status between scope_command and scope_dump. requires firmware change but 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 new x25 Kpos 1000 50 x26 Ki 10000 5000 x27 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. 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 no t 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 min and 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. 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 feed back. 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 -> 2047 0V -> 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 axi s. 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 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 current plane 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 comm ands ) 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 cha nge 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. 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 ( uni ts ) (opt.) min minimum motor movement in negative direction ( uni ts ) (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 47 90 (AIN3) J12-6 (JOYSTICK) J12-6 48 89 (AIN4) J12-3 (JOYSTICK) J12-3 12) Add bit #2 to general parameter 99 to scan optional 12 bit A/D. The A/D value will be display in the diagnostic window also. 13) (16 bit) Fix CM 1 bug where deceleration ramp is inverted. 14) "SUB :%Vn" will search local program, global sub, then all other program for label defined by Vn. PCPSO: 1) See PSOT abort command. DRIVER: 1) Add PSOT abort command. 2) send_gpa protocol used for iSBX/AD/VEL interrupt. LABVIEW: V5.10 Date: April 23, 1999 MMI/TOOLKIT/MMIW32: 1) Added FFT utility to Axis Tuning Window. 2) Added parameter editor utility to calculate low pass and notch filter coefficients. 3) Fixed Run Time Error when cursors used with the torque data displayed wh ile using auto-tune. 4) When the sc command was used, torque data was collected by default, desp ite other choices for the auxilliary data. 5) Added the "-i" command line option to the MMI and the stand alone parame ter editor. When this option is used, the parameter editor contains the option of cr eating a new default parameter file. 6) The System Options now allow the specification of the setup and calibrat ion files for the LZR board. 7) Added the 'goto line number' option in the program editor. FIRMWARE: 1) Add bit #2 to general parameter #500. If set, the UINT will generate a PC bus interrupt. Previously, a PC bus interrupt was generated by default. 2) Fix gantry mode ( gen prm #7,8,9,10 ) . If slave axis hits a limit, would not fault acknowledge. Also if feedforward not on during home, axes would not land on markers. 3) Add "SLAVE Flags,SlaveAxis,MasterAxis,SlaveDist,MasterDist,Ramptime, [.. .] command. ( see word doc ) 4) Axis would not remain calibrated if disabled and moved. 5) SLEW C command not working for U500CN.JWP. 6) LVDT command would hang up for any axis other than X (axis 1). LIBRARIES: 1) Fix bug with axis mapping: If an axis is un-mapped, it will overwrite the first axis in CM 1. 2) Add "PARallel=a" command, where a is degrees. If the U500 is in G8 mode and CM 1, the U500 will switch to G9 mode if the angle between contour moves (G1,G2,G3) is greater than that specifed by this command. 3) Add "WAIT QUEUE n" command. This sets max number of commands in queue. 4) Cutter comp stops after first move. Bug added in V5.09. 5) Add ABS optional argument to scale factor command. This will update the scale factor but not reset the reference position. "SCF ABS Xn...". ABS must appear after SCF. 6) Add IRQ {on|off} command to generate a queued PC bus interrupt request. 7) Fix bug in cutter comp: Error occasionally occurs if two consecutive moves are the same. 8) SOFTWARE POSITION command automatically does checkstatus. 9) Changed axis parameter x73 "Enable vel/accel feedforward during home" default from no to yes. 10) Add axis parameter #85. If yes, joystick direction will be reversed. 11) Added functions to create default parameter files. Also added function to check if a parameter value was equal to the default value. 12) The registry functions can now read and write the base address and time out value for the LZR driver. PCPSO: 1) Implement "PSOD,7 <#pulses>, <distance>". Defines number of pulses to generate for and integer machine distance. 2) PSOT,4... and PSOT,6 can now be given without stopping tracking. Example: PSOT,4,0,0,10,100 ; setup vel tracking mode 100steps/ms max vel PSOF,3,X,Y ; enable tracking G1 G8 X10 F100 ; motion commands PSOT,6,0,10,0,1000 ; tell PSO to ramp analog output down in 1000 steps G1 G9 X1 ; last move in sequence 3) Change interrupt structure and velocity tracking code. 10khz and gpb commands are highest level. DRIVER: 1) Change abort function. Abort no longer delays for 100ms minimum. LABVIEW: V5.11 Date: 12/10/99 MMI/TOOLKIT/MMIW32: 1) PCI FPGA Setup tab added in System Options. 2) Scope window overlaps 2-d position command and position feedback. 3) Scope window updates scale factors after every reset. 4) Added code to support multiple program execution. 5) Program editor Undo buffer cleared after loading another program or quitting the editor. 6) Second diagnostics window was added. Currently available only when usin g PCI card. FIRMWARE: 1) Modified in position bit for U500CN.jwp firmware. Now checks feedback velocity to make sure < 1 count. 2) Error mapping not working if home direction is + (CW). 3) Slave command would not ramp up properly if UINT was not used. 4) Firmware uses 12 bit A/D for joystick if bit #2 of prm #99 is set. ( requires hardware option (ADC12) ) 5) MFO now works in continous freerun mode (again). 6) Add bit #3 to general prm #500 ( interrupt setup code ). If set (prm=8), U500 will scan the encoder sample latch at 1ms rate and write to internal circular buffer. U500PCI/U511 only!! DO NOT USE WITH BIT #1 SET (prm=2)!!!!! 7) Encoder verification mode not working. Bug added in V5.09. 8) Scope_command/scope_dump sequence can now be interrupted. 9) Analog input data format in diagnostic window changed so that -8388608 = -10V ; 8388607 = +10V. For 0-5V 8 bit A/D's, the value rea d is 0 = 0V, 4194303 = +5V. 10) Added "U500PCI.JWP" for U500PCI card firmware. 11) "POSITION TO GO" display shows wrong values in CM0. LIBRARIES: 1) Feed time not working for CM 0. ( Still does not work for CM 1 ) 2) Save Status command added. Syntax: SS var,type where, var = PLC variable to save status to type = status type to save (0=input bus) Presently, only command SS 0,0 is fuctional. The input bus is saved to memory location Y:1be1. The command is not incorporated with the PLC variables yet. 3) PSOC,0 command was not getting sent the the U500/PSO. 4) Adjust feedrate for every G0 move to preserve acceleration more closely. 5) Add "$XCP", etc. ( servo command position ) 6) Allow negative and > 360 degree angles in mset function. 7) Slew mode waits for cancel before executing next command. "SLew C" is now a real time command ( not queued ). 8) Added "QUeue X > or < a" command. Queue will wait until specified axis position is greater ( or less than ) than "a". The position "a" is in current programming units and is referenced to the hardware home position. 9) New commands for U500PCI... a) FIRE / WINDOW : single axis pulse output b) DUAL : dual axis pulse output c) ANALOG : analog output prop to velocity / position d) POSITION : set output when multiple axes are in position. e) DAC 9,10 10) Added code to support multiple program execution. PCPSO: 1) Re-enable SCI interrupt in PSOF,0 (in case it was turned off by PSOC,4) 2) Fix pulse train output. Would not generate pulses after the first sequen ce. DRIVER: 1) Add NT,95,98 support for U500PCI card. LABVIEW: 1) Added example VI that waits for a move to complete V5.12 Date:8/8/00 MMI/TOOLKIT/MMIW32: 1) M Codes could not work until a program was loaded. 2) Fixed auto-run program bug. 3) Fixed bug with COM commands. 4) Diag2 position display for axis 5-8 was incorrect 5) Added Variable Watch Window 6) U500 registry editor allows selection of PCI or ISA registry entries. 7) MMI can now run a command line executable on Reset. 8) Added labels that can be included in the global subroutine file to redef ine MMI command buttons. 9) 'Skey Get' command did not wait for the soft key to be pressed. 10) Fixed bug with the Frequency Response tool in the Axis Tuning Window. FIRMWARE: 1) Internal ESTOP fault mask could not be cleared once set. Setting the ESTOP fault mask bit to 0 will now disable ESTOP for all axes. ESTOP fault mask bit must now be set for all axes to allow estop to be recognized. 2) Memory mapping problem created in V5.11. "Long scope" function would overwrite internal queue data. 3) PCI: "start", "sd n" commands would cause card to reset. 4) PCI: Joystick not working. 5) PCI: Add support for FPGA #2 position / velocity feedback. 6) ISA/PCI: Code re-organization for future PCI enhancements. 7) Limit to marker / home offset moves can now run at 65Mhz max command. ( feedhold no longer works during home cycle and pnt-pnt freerun ) 8) Add support for axis 5-8 as ABCD ( Enable/Disable/Freerun only ) . ABCD axes are CLK/DIR only axes. "ENable A/B/C/D", "DIsable A/B/C/D", "FReerun A/B/C/Dspeed,dist,accel" speed [machine steps/sec] distance [machine steps] accel [machine steps/msec/msec ] 9) Add support for PCI card gearing. Encoder channels 5-8 can be used as master. "GE 1,C5" 10) Add HALT mask operation. 11) Add filter to ANALOG vector tracking output voltage. 12) "IOn bit,state" command would affect all bits in bank. Fixed diag2 display for bank ABC setup as outputs. 13) PCI: AUX output bit works for 8x3 IO port (P4). Set axis prm 54 to 9-16 port 0, 17-24 port 1, 25-32 port 2. Port must be set as output using IOSET command. LIBRARIES: 1) Fix open driver function for Win98 ISA card. 2) Fixes bug with "loaddll" command 3) Allow axis names "XYZU" in "ER" ( error mask ) command in addition to 0123. 4) Added radius argument to G2/G3 command. Syntax: G2 Xxx Yyy Rrr where rr is radius of the circle. The curve created will be the shortest arc that connects the two points. If the radius value is negative, the longer of the two arcs will be traced. Ex: G2 X3 Y4 R5 G3 X10 Y7 R-12 5) Fixed cutter comp bug. Turn off cutter comp if final move does not require motion. 6) Four axis G0 command would not work. 7) PCI: Add "SEGMENT ARRAY xyzu startidx numseg" command. Execute "numseg" 1msec segments from on board U500PCI PLUS/ULTRA array starting at "startidx". One to four axes may be specifed. 8) PCI: Add "TOGGLE" argument to "FIRE" command. This mode generates contin ous pulse output at specified pulse width. 9) Increase number of variables from 256 to 10000. 10) Added EC "environmental comp" command for using LZR1100 directly with U5 00 analog inputs. 11) When using scf or ec command, the read_position function now returns the non-scaled position. 12) Add "aerq_plane_ready" function to indicate when plane 1-4 can accept an other command. 13) Add "system" command. This command allows the U500 to launch another ex ecutable program. Ex: system "c:\user\custom.exe" 14) The aerq_readadc and WAPIAerReadAtd functions now return the A/D voltag e as type double. 15) Add "pause enable/disable command" PCPSO: DRIVER: LABVIEW: 1) The ReadAtd function in u500cin.vi now returns the A/D voltage as typ e double. V5.13 Date: 12/4/00 MMI/TOOLKIT/MMIW32: 1) Added graphical display of the A/D channels. 2) RMS values of the torque in the axis scope window were not calculated co rrectly. 3) When the MMI starts, the device driver version is compared to the dll ve rsions. If a PCI card is used, a utility shows the steps to update the driver in Win2k an d Win98. 4) Installation can now install the U500 manual from the installation CD. 5) Program execution would not preserve the selected auto/single mode when the program was restarted. 6) Added Program Fault Mask to System Options. A program can now run despi te selected fault conditions. Useful when running a PLC type program in a certain task. FIRMWARE: 1) Fix gear command ( again ). Internal gear memory was not being initializ ed properly. 2) MSET commutation initialization generates feedback fault if halls are not present, it should not. 3) Fix QU POS internal check for new status format. 4) (PCI) Current commands glitch if axis time base is set to 2 or greater OR gantry mode 29-32. 5) (PCI) Home cycle would not work correctly if UINT occurs during marker s earch. ( This situation was caused by excessive noise on the UINT input) 6) Axis calibration was not turning off for gantry slave axis (37-40). 7) Gantry mode 37-40 for U500ISA - the slave axis could be off after homing by the amount of the master axis position error. 8) Filter E stop input. Input must be active for 10msec before generating an Estop fault. 9) All abort actions would use the "switch to mechanical stop" parameter x10 if set. Now only limit faults use this. 10) MemWrite subroutine changed so that DSP saturation logic would not occur . 11) DAC offset for ICMDA1-4 did not work when servo loop active. 12) Add bit #8 to parameters x40 and x41 ( pos/vel feedback setup code ) to invert feedback polarity. ( set to 256 ) 13) Add bit #9 to parameter x40 (pos feedback setup code) to read limits on pos feedback channel rather than vel feedback channel. ( set to 512 ) 14) Axis 2,3,4 would not switch to low current and recirculation mode. 15) Improvements to Index move (PCI only). LIBRARIES: 1) Add read status "RS(n)" command. This corresponds to the function "aerq_read_status()" function when "n" is the index. 2) Add "RM x,y" command to read misc. data from U500. "x" is command, "y" is offset ( axis, plane, etc ). 3) Added text mode to the VAR command. Variable values can be read and wri tten in ASCII format. 4) EC command can now accept command line parameters if analog voltage inpu ts aren't used. 5) (U500 ISA/ PCPSO) Added $PSO command to read the status of the 8 inputs on the PSO card. Ex: V0 = $PSO 6) ARRAY command would not load to DSP array correctly. 7) Added the cubic command This function is used to generate a motion segme nt based on the following cubic equation pos = a*t^3 + b*t^2 + c*t Ex: cubic axis dist,a,b,c Ttime PCPSO: DRIVER: 1) Win2k ISA driver support added. Need to use u500isa.inf to install. 2) Fixed problem with 2k PCI when "ABORT ON INPUT BIT" is used. PC would l ock up. LABVIEW: 1) ProgInfo example VI added to show how to call U500 library functions with out using the code interface node. //***************************************************************************** V5.14 Date: 5/03/01 ( parameter file size is now 1789 bytes, was 1757 ) MMI/TOOLKIT/MMIW32: 1) Add new axis parameter x86: "Enable software limit on input" If input condition is true, software limits function normally. If input condition is false, software limits are defeated. 0 = off prm value input checked 0 off 1-8 input 1-8 high 9-16 input 9-16 high 17-24 output 1-8 high 25-32 8x3 IO bank A 33-40 8x3 IO bank B 41-48 8x3 IO bank B 49-56 home limit axis 1-8 ( 1-4 for ISA ) ( hardware level ) 57-64 CW limit axis 1-8 ( 1-4 for ISA ) ( hardware level ) 65-72 CCW limit axis 1-8 ( 1-4 for ISA ) ( hardware level ) A negative entry will result in a TRUE condition if the input is low. 2) Add new axis parameter x87: "Axis abort on input" Individual axis abort on input condition. Abort will clear when input clears. Position must be updated to PC when done. 0 = off. ( see axis prm x86 for inputs ) 3) MSET not working properly for commutation initialization. 4) Add bits to general prm #99: #4 = 1 display axis 5-8 command pos in diagnostic 2 window #5 = 1 display axis 5-8 in scope window 5) Changed BOARD command so that it is affected by a WAIT ON. Board would change immediately in an MMI program even if preceded by a W AIT ON. 6) Added two menu choices under the Tools menu. Fiber Command Setup and Fiber Align Vision Interface. Both are used for fiber alignment. 7) Changed FIBER routine commands. Routine calls no longer take arguments.
Parameters are set beforehand by using the FIBER SETPARAM command. 8) Scope Window now automatically updates the gains for a gantry slave axis with the gains for the master axis. 9) Added Analog Input Voltage monitor screen to the MMI. 10) Cursor values for the A/D input plots in the scope window were incorrect . 11) Add "ABORT AD n,threshold_voltage,flags" command, where n = A/D channel 0(off), 1-8 > threshold, -(1-8) < threshold threshold_voltage = abort at this voltage and sample position flags = 0 (optional,reserved) 12) "Program Setup" Tab added to System Options. The autoexec program (.prg file) is still specified in the "Default" Tab. Only the file labeled "Auto-Run" Program will exec ute on initialization if the the "Auto-run" or "Silent Auto-run" option is checked. FIRMWARE: 1) Add support for axis 5-8 ACCELERATION/INDEX/G0/ERRORMASK. Also aerq_checkstatus2() library commands. 2) Change PSO commands to execute at 1msec rate maximum. 3) Fault Acknowledge would not always clear faults. 4) U500PCI - update firmware to support RDP card. 5) DWell command would not work properly at 8388 second rollover. 6) Ortho output on slave axis not working. Last worked in V5.11. 7) Fix abort. If decel occured faster than 4 msec, library command position would not match servo command position. 8) PCI: All A/Ds are scanned at 1/4 msec. 9) Aux output bit not working properly. LIBRARIES: 1) MCODE - would skip command after M code. 2) Change "RM x,y" command y argument from 0-3 to 1-4 scale. See "readmisc. doc". PCPSO: 1) Pulses would stop firing ocassionally. DRIVER: 1) Add support for axis 5-8 status. 2) Windows 98 ISA driver is now A WDM driver "u500isa.sys". u500isa.vxd is obsolete. 3) Windows 95 is no longer supported 4) Windows 98 ISA and PCI registry entry location has changed. (no longer i n the vxd folder) See WAPI or QLIB programming help file.
LABVIEW: 1) Added U500Fiber.llb that holds all VI's specific to Fiber-Align Applicat ions. 2) Added U500,GetErrMsg VI in u500w32.llb to return ASCII error messages. //****************************************************************************** V5.15 Date: 8/22/01 ( parameter file size is now 1949 bytes, was 1789 ) MMI/TOOLKIT/MMIW32: 1) Continuous scan mode type added for Fiber Alignment routine Spiral FINE. 2) Graphical Data Collection Utility added for SpiralFine and SpiralRough Search Routines 3) "Disable Task Mask" added to Program Setup Tab in System Options to allow tas ks 2, 3, and 4 to be disabled. 4) Scope Window would not accept "text-box" gain changes for gantry axes. 5) GPIB command set added for IEEE 488.2 communication. 6) Added Parameter Editor utility to set up parameters 99 Option Board Setup Cod e and 501 User Interrupt Setup Code. 7) Fixed bug in Scope Window when displaying position command or feedback values greater than the limit of the "single" data type. 8) Utility added to replaces any "SPLINE" blocks in the input program with a series of "CUBIC" commands. The cubic curves pass smoothly through each of the given spline knots by internally calculating the required cubic spline coefficients. This utility is installed in the u500\mmi\utility\ d irectory. The uility name is spline.exe. An example program is listed in splin e-input.prg. The file README-SPLINE.txt contains directions on using the utilit y. FIRMWARE: 1) Dual loop mode: limits do not come in on the proper channel. 2) After a limit FAultacknowledge, the non-limit axes would not accept comma nds. 3) SEgment ARray command would not work for more than one axis. 4) For aborts that take less than 4 msec, internal buffers get out of sequen ce and require an additional abort. 5) FAultack causes loss of command position if move is given immediately aft er. 6) "ABORT AD n,V,flags", add bit #0 to flags to cause continous scanning of A/D channel and logging of max ( or min ) convertor value found. ( flags = 1 ) 7) Add case 18 to RM ( read misc ) to read max ( min ) A/D convertor value from "ABORT AD n,V,flags" 8) Gantry slave axis ( 41-44 ) would not track ortho correction properly with the DY command. 9) In gantry mode 41-44 during home cycle, one of the axes may not execute the home offset properly. Most likely to occur on ISA card. 10) Position grabbing interrupt did not work after a home cycle in gantry mode (41-44). 11) For encoder gantry slave axis, position may not be 0 after reset (ISA onl y). 12) Update encoder FPGA design to hit marker more accurately at high speeds. 13) Increase commutation precision for systems with # electrical cycles > 1. LIBRARIES: 1) ABort now turns off velocity profiling ( for CM 1 ). 2) FIRE SET command did not work since V5.14 . 3) Contour move: When specifying feedrate in steps/min, proper feedrate was not calculated. 4) Allow user to define variable as "#define v0 VariableName". This command should be at the top of a user program and is only valid within a prog ram. Single character names are not allowed. Use in MEssage command is OK. 5) Axes mapping to drive now works properly using parameters. 6) Increase length of string that can processed by the MMI from 256 characte rs to 512. 7) Change general parameters 3,4,5,6 to accept axis names up to 14 characte rs. If axis name is not XYZU, name must be greater than 1 character long. 8)Add second notch filter axis prm #88. This parameter consists of 5 numbers N0,N1,N2,D1,D2 separated by commas which are the coefficients of the filter numerator (N) and denominator (D). 9) MFO adjustment could not be made while a program was executing if Cutter Radius Compensation was on. 10) Contouring Mode Parameter now defaults to 1. 11) Fiber Routines can now accept power input from either an A/D input or a G PIB input. 12) Added whole-window parameter to Fiber Hillclimb routine to search the entire window. 13) Error codes changed in libraries such that there are no longer separate types of error codes for WAPIAerInitialize and WAPIAerSend. All functio ns will be return error codes that can be decoded by either the WAPIErro rtoAscii or the qlib_errortoascii functions. 14) Fixed error in Environmental Compensation function --- humidity calculati ons were incorrect. PCPSO: DRIVER: 1) (PCI) Added extra error checking to reads of the status registers. 2) (PCI) Now uses a registry entry to control whether the PCI driver will service an interrupt. The registry entry is: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Serv ices\U500\Parameters\Board n\Interrupt This entry is created by the installation program. If the value of this entry is 0, the driver will not service interrupts. If it is non-zero, it will. The number does not have to be the interrupt number assigned to t he card, it is just used as a flag. LABVIEW: 1) Fiber Alignment VI's updated to use library changes. FIBER/GPIB Example VI added. //****************************************************************************** V5.16 Date: 1/25/02 MMI/TOOLKIT: 1) Fixed Bug In Parameter File Comparator Program 2) Abort Button now aborts motion on all active boards 3) Fixed Diagnostic Window Display of Long Axis Names 4) Parameter Editor would not print parameters by number, only by tab group 5) Axis Tuning Window Would not work for axes with names longer than 1 charac ter. 6) Fixed Bug with FFT Window Axis Select 7) Could not execute subroutines from the MDI Line, (subroutines do work with in a program) 8) Message Command would not output text to the printer correctly. 9) Added Fiber Alignment Simulation to the Fiber Parameter Editor Screen. Al so added options to save and load the parameters to and from separate fiber ini files. They no longer need to be included within u500win.ini. 10) Changed Notch Filter Calculator in the Parameter Editor. Can now specify a notch depth. 11) Added option in Fiber Data Display to move to a position on the graph. FIRMWARE: 1) Increased 2D error map buffer size from 4096 to 16384 points total. = 73x73 square grid of points (U500PCI only) . 2) 2D error map data could be corrupted if G0 is run and total data size is greater than 3072 points (PCI). 3) Max distance between points in 2D error map table increased from 8,388,607 (2^23) to 2,147,483,647 (2^31). (U500PCI only) . 4) Software limit scaling incorrect from command line. Was converting to program steps and sending directly. Command line argument should be in units with this fix. 5) Increased G0 internal feedrate to 24.24 and freerun/jog feedrate to allow higher speeds when axis scale factor is small (PCI only). 6) Change 2D error mapping so that if 3rd axis (Z) is homed while in the calibration grid, it will remain calibrated. Also now tracks the outer edges of the table more closely. 7) Remove CM1 MFO adjust added in V5.06. Causes problems for long moves. 8) Add new cases to RM command to case 20: return global fault mask for axis specified. This corresponds to axis parameter x55 - Global Fault Mask. Example: "V0=RM 20,1" ; x axis global fault mask case 21: return DSP's X: memory base address of internal axis fault buf fer. This buffer is always located in DSP "X:" memory . Example: "V0=RM 21,1" ; read axis 1 X: memory address. case 22: return 0 if axis calibration is not active 1 if axis calibration is active Example: "V0=RM 22,1" ; read axis calibration flag for X axis axis argument 1-4 for axis cal, 5-8 for ortho correction. case 23: return state of primary output bus bits 0-7 ( axis arg is ign ored ) case 24: return 8x3 io bus direction setting: ( axis arg is ign ored ) bit #0: 0 = input, 1 = output ( PORT 0 ) bit #1: 0 = input, 1 = output ( PORT 1 ) bit #2: 0 = input, 1 = output ( PORT 2 ) case 25: return current FIRE ARRAY location 0-65535 case 15: ( additions ) bit #6: CW limit hardware status ( mapped to feedback channe l ) bit #7: CCW limit hardware status ( mapped to feedback channe l ) bit #8: HOME limit hardware status ( mapped to feedback channe l ) case 26: returns PID loop output (current command) for the specified ax is. To convert to volts, multiply by (10/8388608). Example: V0 = RM 26,1 ; read PID current command fo r axis 1 V0 = V0 * 10/8388608 ; convert to volts 9) Gear command can now slave mulitple axes to master channels c1-c4/c5-c8. Example: GEAR 1,C5 ; axis 1 slaved to U500PCI counter 5 GEAR 2,C6 ; axis 2 slaved to U500PCI counter 6 10) Axis abort does not work ( axis prm x87 ). 11) Gantry mode 29-32 ( current slave ) can be setup to use master's hall sig nals if primary feedback setup code ( axis prm x40 ) bit #10 is 1. ( add 1024 to set ) 12) Display Servo command (DS): If axis is a gantry master, the slave's current cmd wil be averaged in also. Scaling is now required when displaying current cmd."10" gives maximum output of 10V, same scaling as axis scope window. 13) Change axis parameter #21 from Max overshoot % to "In position time (msec )". The axis position error must be less than the in position deadband for specified number of msec before in position status is true. Previous default value of 30% ( 2516582 ) results in 0 msec internally. 14) (PCI) Added loop transmission firmware tool. "LT master,slave,a/d channel,a/d scale,dac1,dac2" master = 0 off or 1-4/XYZU slave = 0 none, 1-4/XYZU ( slave axis if gantry ) a/d channel = input disturbance channel (1-8) +/-10V max a/d scale = scaling of analog input, range = 0-1 dac1 = d/a ouptut channel before disturbance 1-10 dac2 = d/a output channel after disturbance 1-10 15) Analog command would not work if min (start) voltage was greater than max (end) voltage. ( for ramp down ) Also eng/metric scaling did not work properly. 16) (PCI) "FIRE ARRAY index,numpoints" : if numpoints = 0, the array will wrap around to index 0 after executing index 65535. if numpoints < 0 then array will return to 0 after specified # of points and not stop. Ex: "FIRE X PULSE 1000 SET 0 ARRAY 0,-4 ON" will repeat first 4 array distances continously. 17) (PCI) Add firmware / FPGA support for U500pci RevB. (not in production ye t) 18) Acceleration feedforward command was sent to the servo loop during an abort (limit), it now does not. 19) Add bit #7 to general prm #99 ( set to 128 ) to make scope collect data a t 1/4 msec. The scope time base still is displayed in msec however. LIBRARIES: 1) Fiber - Added limit and "return to start" parameters to Fast Align Functio ns, 2) Fiber - Added Centroid algorithm. 3) Fiber - On all threshold or edge_value fiber parameters, removed restricti on for the parameter value to be greater than zero. This allows parameter values to be negative wh en specifying dB for GPIB meters. 4) Allow fire/window/dual commands to select encoder channels 5-8 as ABCD. Arguments are always in machine steps when ABCD is used (no units). 5) Increase program execution speed in DLL thread. 6) Add "TOGGLE N" option to fire command. If N is specified, the U500PCI will generate N output pulses. If N is not specified, the TOGGLE command wor ks as before in continous mode. 7) Wait ON/ALL now automatically checks bit #23 of read_status(5) for 0 ( ready for new command ). PCPSO: 1) Would not fire for 3 axes. DRIVER: LABVIEW: 1) Fiber - FastAlign VI's missing parameters. 2) Added Centroid VI //****************************************************************************** V5.17 Date: 7/23/02 MMI/TOOLKIT: 1) Fiber Parameter Editor: GeoCenter Values were not saved correctly. Centr oid Parameter "Return To Start" was not displayed. 2) Fiber Data Display window would crash if negative input voltage values we re used. 3) Added Rs232 Terminal Window. MMI can recieve commands from a Com Port. 4) MMI software can now run on a computer that does not have a U500 card. W hen the software is started and a card is not found, it will prompt the user to enter demo mode. Th is mode allows viewing of all software screens, include the axis scope window and the parameter editor. No commands can be accepted and no programs can be run in this mode. 5) Fiber commands entered from the MDI line will no longer cause the MMI to wait until the fiber routine has finished execution. Control is returned immediately to the MMI so it ca n update position and accept commands while the fiber routine is executing. 6) Added commands to trigger the Fiber Data Collection Display from the MMI: Fiber Data SPROUGH/SPFINE ; starts data collection for the spiral rough or spiral fine routines Fiber Data Stop ; stops the active data collection 7) Added Fault Handling support for the MMI. If any axis has an error condi tion, and the global subroutine file has the label :_FAULTS , the commands directly following the label will be executed. The jump is done as a "GOTO", so a return statement following the _FAULT S label will not direct program flow back to the point before the fault occured. However, a GOTO comman d can be used after the :_FAULTS label to direct program flow to another program or to another label in t he global subroutine file. If a global subroutine is not specified, or it the _FAULTS label is not prese nt, no added fault handling will occur. 8) Parameter file Comparer Utility now saves the results to a text file. U se the "Save As" Option from the File Menu. FIRMWARE: 1) U500ISA - keep position during reset ( gen prm #1 ) did not work. 2) U500ISA - Could not read iSBX inputs. 3) Add support for "PHase" command. 4) If current output clamp occurs at time base other than 4khz, current outp ut glitches after hitting max current. This only happens if more than one axis is enabled. 5) Add delay in servo loop for axes updating < 4Khz to minimize beating of subsequent axes. 6) Could not use SA and SD on the same move ( CM 1/2 ). Only the second one would work. 7) Added target position, feedrate, and SA/SD to CM 2 command packet. 8) Increase divide table to 32 so that commutation can go up to 32 cycles pe r rev. 9) U500PCI: commutation was off by up to 60 degrees when commutating from ha ll channels 5-8 or from another axes' encoder channel (1-4). 10) U500PCI: Analog inputs (12 bit ) do not work properly if one or more axes are configured as amp type stepper (case 2,3,4) . 11) Add general parameter 99, bit #10. When set, and FPGA2 is configured as velocity feedback, the firmware will read encoder channel 5-8 positions. These position will be displayed in the diagnostic 2 window and can be read using aerq_read_position2() with argument "axis" = 8..11 for channel s 5..8 respectively. 12) Increased ramp angle increment resolution for CM 1 sine ramp moves. Veloc ity command no longer glitches if ramp times are long ( >= 500 msec ). Firmware is not backward compatible with this change! 13) U500PCI: Increased 2D error map table size from 16384 to 65536. Also allo w two tables at the same time. If two tables are present, each ta ble can only contain 32768 points. 14) U500ISA: SLEW C command would cause random errors due to stack problem in firmware. 15) U500PCI: Ultra PSO changes/enhancements: ( see install DOCs ) added optional +/- argument to firing distance added optional "offtime" and "numpulses" to PULSE command "TOGGLE n" sytnax no longer supported, use PULSE command arguments to generate "n" pulses. SINGLE argument added to trigger one pulse event. "QUEUE PSO" command support added to U500PCI-ULTRA PSO to wait for pulse train complete. 16) Added 1-d and 3-d Centroid alignment routines. LIBRARIES: 1) Helix motion wouldn't work if LINEAR argument was used. Had to use G1. 2) The aerq_init or or WAPIAerInitialize functions could not be called more than once in an application without closing and opening the board pointer before the function call. 3) If an axis was named other than X,Y,Z, or U, axis motion may not occur when using contour mode 1. 4) GeoCenter Fiber Alignment Routine did not work in absolute coordinates. 5) MMI programs would occasionally lock-up when collecting data and running a fiber alignment routine. 6) When using cutter compensation on a helical move, extra linear motion was added to the end of the move. 7) Add "PHase axis,angle" command where axis = XYZU or 1-4 and angle is betw een -360 and 360 degrees. This command dynamically adds (or subtracts) the specified amount of phase from the commutation angle. This is a queued command. Added Qlib command "aerq_phase_adjust()" also. 8) Added squareMode parameter to the GeoCenter routine. If this parameter i s set to 1, this causes a raster scan in the axis 1 direction only. Axis 2 edge values are found from the data collected during the first raster scan. In this mode, the scan_lines parameter is not used. The n umber of rows and columns of geocenter data is found by the (scan_size/scan_increment ) + 1. 9) Could not run programs that sent commands to multiple U500 boards when th ose boards were configured with long axis names. 10) Contour mode 1 with sinusoidal ramp, on last move of a G8 profile would execute ramp down at 1.6 times the progammed time. 11) Add "QUEUE PSO" command to halt queue until PSO busy flag to clears. The PSO sets its busy flag when executing "PSOF,2,N". 12) Added aerq_fiber_set_sleep_mode function to allow the user to set a sleep interval that fiber routines use while waiting for each motion segment to complete. A longer sleep inter val will free more CPU time but may increase the algorithm's execution time. 13) The qlb32bc5.lib file for Borland C++ was updated. It previously did not support new functions added to the dll. The win32bc5.lib file is no longer installed with the software. The win5 0032.dll can be directly imported into a Borland project. 14) FastAlign algorithms did not find the peak input value if there were both positive and negative input values. 15) If G1 axis move distance is less than one machine step but greater than 0 and in contour mode 1, a windows exception could be generated. 16) FIRE and WINDOW comammds now round to nearest integer machine step if distances are in units. Fractional machine steps were previously trunca ted. 17) Add "RND()" function to U500 ASCII language. Rounds to the nearest intege r. PCPSO: DRIVER: LABVIEW: 1) FiberExample.VI and FiberSetGPIBParam.vi were not properly setting the de vice number. LabVIEW Fiber alignments would not work using GPIB. //****************************************************************************** V5.18 Date: 9/23/02 MMI/TOOLKIT: 1) Added TCP/IP Server Window. The U500 can connect with up to 10 TCP/IP c lients. 2) When exiting the System Options window with a program loaded, the progra m would be replaced with the default program specified in the System Options. 3) Added 3 Visual Basic examples to the u500\mmi\example\vb directory. They demonstrate how to build a sample RS232 CLient, TCP/IP Client, and a Fiber Align Project. 4) Silent AutoRun Programs would remap the function keys.
FIRMWARE: 1) The velocity command glitches to 0 during a fault acknowledge when multiple axes are in a limit. 2) There was a possibility of invalid axis calibration data when positioned near the end of the calibration table. 3) Added support for the data download and execution of "rotary axis calibration." ( see library command below ) 4) Add "SEgment" option to the ANALOG command to allow sample time base to be extended from 1 msec. Product of velocity and sample time must equate to 1 count per sample or greater, other wise the analog output will remain at its minimum value. If SE is ommitted, the sample time is 1 msec, as before. Example: "ANALOG STEPS X VEL 10000 DAC 8,0,10 SE 10" ; 10 msec sample t ime. 5) Add "abort on estop" feature. If ESTOP bit is set in ABORT and DISABLE fault masks, axis will decel before disabling. 6) Add bit #11 to general prm #99. If set to 1, 2d error mapping correction will be removed from axes when outside the table. LIBRARIES: 1) Axis rollover (parameters 011, 012, 013, and 014) would not work properly when bit 24 of the rollover value was set. 2) Added support for "rotary axis calibration." This allows the axis calibration table to always roll over at a set distance (the rollover distance). The format of a rotary axis calibration file is: :ROTARY Axis # (1-4) Sample Distance In Machine Steps (>256) Rollover Distance In Machine Steps Absolute Machine Step Correction Data :END 3) Add optional OFF argument to SCOPE command so that scope will not pop-up. Used for better synchronized data collection when using the CS command. PCPSO: DRIVER: 1) Installation now provides ISA and PCI device drivers for Windows XP. Lo cated in the winXPISA and winXPPCI directories on the installation CD. LABVIEW: 1) VI's have all been upgraded. They are now only compatible with LabVIEW 6 and higher. 2) Added example for using the array mode fire command for the U500 PCI. //****************************************************************************** V5.19 Date: 3/14/03 MMI/TOOLKIT: 1) Programs could not be run in "Messages" mode. 2) "Abort" button in the scope window would not abort an active program. FIRMWARE: 1) Make AUTOFOCUS available for all U500PCI version. For U500ISA requires ultra version. 2) If "ANALOG OFF" command is issued when analog tracking is not active, t he next ANALOG command will not work. The one after that will however. 3) Added support for DUAL command additions (see library section). 4) Scanned position capture mode would return incorrect position on occass ion, off by 65536 counts. 5) Window counters now invert counting direction if axis parameter 11 is n o. i.e. "+ move is CW" is false. This makes tracking display and window counter have the same polarity. (U500PCI + PSO only). 6) Add case 27 to RM command to read U500PCI inputs 3-0B. RM 27,n where n = -1 reads inputs as 4 bit parallel word = 0-3 read individual input bits, return 0/1 Example: V0 = RM 27,0 ; read bit 0 Example: V0 = RM 27,-1 ; read in3-0B as 4 bit parallel word 7) Add bits 11-8 to OU command to set U500PCI output 3-0B. 8) Gantry mode slave axis position command would occur 1/4 msec before master axis command during the marker search portion of the home cycle. This would cause axes to fight especially on very rigid gantries. 9) Fix FIRE array mode when only two points were specified. Firing would not turn off after the second point. LIBRARIES: 1) Assigning variables in exponential format with negative exponents did no t work. (i.e V106 = 1.257e-4) 2) Added DUAL command [optional arguments] "DUAL PULSE ontime[,offtime,numpulses] [SINGLE/TOGGLE]" ontime is pulse on time in usec (opt.) offtime is pulse off time in usec (opt.) numpulses is number of pulses to generate at each trigger even t SINGLE generates a software "trigger" event ( numpulses wil l be output ) TOGGLE generates a continuous stream of pulses. turn off wi th "DUAL OFF" see "DUAL PSO enhancements in v519.doc" for more info. 3) Added bounds checking on "ontime","offtime", and "count" arguments for FIRE PULSE command. ( Single axis PSO ). 4) Part rotation did not work when cutter comp was on. 5) Add "QUEUE AXISFLAG XYZU mask" command. This command halts the current plane until the condition specified by "mask" is true for the axes spec ified. One to four axes may be specified. The following mask bits may be combi ned. mask = bit #0 (1) wait for axis enable bit #1 (2) wait for axis disabled bit #2 (4) wait for axis velocity command == 0 (stopped) bit #3 (8) wait for axis velocity command != 0 (moving) bit #4 (16) wait for axis in position ( does not check enable, o r velocity command status) bit #5 (32) wait for axis not in position (""") 6) Add "QUEUE OUTPUT bit#,hi_low,..." command. Halts the current plane until specified outputs match the specified state. 7) Now distributing qlb32bc.lib and win32bc.lib. These allow Borland C V ersion 5 and Borland C++ Builder 6 users to link with the QLIB and WAPI libraries. Examples are in the u 500\mmi\example\Borland directory. PCPSO: DRIVER: 1) Driver now stores axis positions as 64-bit quantities. Version 5.19 Dr ivers must now be used only with 5.19 or higher versions of qlb50032.dll and win50032.dll. LABVIEW: 1) Added new example VI for program execution using the WAPIAerRunProgram function. 2) Upgraded u500demo.vi. Can now run complete programs from this VI. MXH: //****************************************************************************** V5.20 Date: 1/12/04 MMI/TOOLKIT: 1) Scope window will display data correctly when the 0.25ms sampling mode is enabled with parameter 99. 2) Using variables with the message command did not work correctly when usin g multiple tasks. 3) When using German/French Windows settings, numeric values used with the m essage display command would always be truncated to integer values. FIRMWARE: 1) Add bit #6 to axis parameter 78 "Servo loop type". If set ( add 64 ) the axis position will not be sampled during a user interrupt (UINT) event. The internal array will resize as follows: bit #6 cleared array size ----------------------------------------------------- 4 axes (all) 4096 4 axis positions are collected 3 axes 5461 3 axis positions are collected 2 axes 8192 2 axis positions are collected 1 axes 16384 1 axis positions are collected aerq_posgrab_read_array_size() return value will adjust per the above table. aerq_posgrab_read_position() will still return 4 positions with "0" in the defeated axes. 2) Resolver dual loop mode did not work for PCI card. Also when using a reso lver, only one feedback setup code per axis should be set to 5 ( dynamic swit ching mode ). 3) Limit did not work with resolver feedback. 4) Cable interlock may be defeated by "MW Y,0x0A,0x800000,OR" command. This is for demo purposes only and is NOT recommended for normal operation. 5) Gantry bug during homing. The home offset move could be skewed betwen the master and slave by one msec. This does not always occur. Also abort during gantry marker search can cause axis skew, this problem has not been corrected. 6) Stepper encoder scaling routine output is now blocked if axis is disabled . 7) (U500ISA only) DSP memory overlap problem may cause UINT malfunction. 8) FPGA for two axis firing did not work in x2 encoder decode mode. 9) Add UINT capability for U500PCI base. 10) Add bit #11 ( 2048 ) to axis prm 40 to allow clk/dir input rather than s in/cos. "sin" input becomes "clk" input - rising edge active. "cos" input becomes "dir" input - 25nsec setup time before rising clk ed ge, 0 hold. 11) Firmware changed so that PSO WINDOW counter always matches diagnostic window polarity. Now takes into account axis prm x82 and axis prm x40. 12) AXIS 5-8 would ignore (home direction) limit after homing sequence. 13) AXIS 5-8 would allow + or - freerun commands when either limit is active . Now only freerun command away from limit will execute. LIBRARIES: 1) Updated aerq_posgrab_read_position function to return double precision position data to avoid rollover problem around 2^31 machine count. 2) The FIRE, WINDOW, and DUAL commands did not correctly decode the D2 argument. 3) Axis 5-8 FReerun commands could cause the MMI to stop executing the program. 4) Added WAPIAerSetSecondaryAxisPosition and aerq_set_secondary_axis_position fu nctions that will change the value of position registers for Axis 5 - 8. PCPSO: DRIVER: 1) Fixed the U500 ISA driver for Windows 98. ISA cards would not initialize in Win 98. 2) ISA driver in Windows 2000/XP did not communicate with the PC-PSO card. LABVIEW: MXH: //****************************************************************************** V5.21 Date: 3/17/04 MMI/TOOLKIT: 1) The Axis Tuning window did not correctly load plots that were generated and s aved in previous versions of software. Now all plots from previous versions are supported. FIRMWARE: 1) Axis 5-8 freerun commands can now be commanded in velocity mode. Previously these commands also required a specified move distance. FR A10000,1 ; velocity mode - freerun axis A at 10000 counts/sec and acc eleration rate of 1 FR A10000,1000,1 ; distance mode - freerun axis A 1000 counts at 10000 counts /sec and acceleration rate of 1 2) Single axis firing when used with array mode and window mode, would incorrect ly load the first and second array values immediately into the firing counter. LIBRARIES: 1) Un-commanded "CUBIC" command axes could have random command position register values. 2) The WAPIAerWaitForInterrupt/aerq_wait_for_interrupt functions did not properl y reset the interrupt event. This only allowed one interrupt event change to be seen unless the user manually c alled the ResetEvent function. 3) Added a new parameter, "mode", to the aerq_freerun2 function. If mode = 0, ve locity mode is used and the "dist" argument is ignored. (See FIRMWARE Note 1) AERERR_CODE aerq_freerun2(BOARD *pb, short axis, double feedrate, long dist, double accel, short mode ) PCPSO: DRIVER: 1) Changed Windows 2000/XP PCI device driver interrupt handler for compatibility with dual processors (ACPI Multiprocessor HAL's). LABVIEW: MXH: //****************************************************************************** V5.22 Date: 4/12/04 MMI/TOOLKIT: 1) The Axis Tuning window could not display position error when position values exceeded 2^31. 2) The Help Menu Item would not always find the correct path for the help file.
3) When choosing default programs from the System Options windows, messages mode could be inadvertenly activated. FIRMWARE: 1) V5.21 firmware change 2.) caused single axis firing to be nonfunctional in al l cases except window mode. Now fixed. PCPSO: DRIVER: 1) The Windows NT ISA driver did not initialize properly. LABVIEW: MXH: