G4 Software updates: 11/22/22:Squished bugs that were introduced on Rabbit change: IPR feeds were limited to 150IPM due to sample rate being cut in half but limit left at 100 cts/sample time. Raised the limit to 200cts/packet in IPR mode. In IPR mode, the spindle encoder generates the feedrates, so feed deltas will be twice as big with a 2ms sample rate as they would be with a 1ms rate. IPM deltas are calculated based on the timer on the motherboard, so they are still generated every ms, and the max delta remains at 100. Modified the servo error reset routine. Also had to modify the sequence search routine to ensure that all packets generated in the process of setting up the start at the search point got sent. The packet rate cut was obtained by filtering every other packet generated by the interpolation routine. Placing the filter at the entry to the ethernet send routine saved having to modify the all routines that generated the 1ms deltas, but cutting half of the packets at that point caused the reset signals for servo errors and the sending of individual packets in the search routine to fail. 10/10/22:Overhauled Jog and Auto to work with Rabbit RCM3700 ethernet/cpu module. Added link stats display (press "L") to show # of packets sent and received and completion rate, as well as total # of dropped packets and maximum consecutive packets lost. RCM3700 couldn't process a packet/ms, so Auto now only sends packets every other ms. Also modified packet driver interface to accomodate the use of NDIS2 driver and shims for ethernet controllers that don't have packet drivers, e.g. Realtek. Added parametric debounce times. Default is 20ms, may be modified by DEBOUNCE.TXT file, which simply has the number of milliseconds on the first line of the file. Modified Picker to allow inclusion of full path (including drive letter) in file selection from F5 or F8 prompt. 05/12/20: Fixed bug in Picker.exe:error in constructing path names, resulting in intermittent inability to load files from USB. 01/29/2020:Fixed bug in Auto.exe: Interrupting program during a PLC function would cause parts counter to increment. 11/07/2017:Fixed bug in Auto.exe: G-codes other than G02, G03, or G04 in the plane-switched part of the program would cause instant jump to the position requested in the motion command. 05/10/2017:Fixed bug in picker.exe: Alt-R (go to upload/ download file via rs232) invoked F8 function(load file NAME from rs232). Did not change package version ID due to minor nature of this change. 04/24/2017:moved program,spool, and comment array storage to extended memory. 04/11/2017:Added offset-adjusting ability to m87 function in auto.exe. External indicator can adjust tool offset or workshift depending on parameters. 01/17/2017: Fixed bug in Jog.exe:M91 and M93 inputs were transposed on Alt-I screen Auto.exe-Changed Cycle Repeat counter to decrement even when Cycle Repeat was not active, so that parts that were run from a bar with Cycle Repeat disabled would still be counted against the expected number of parts in the bar. 09/18/2016: Changed Jog.exe and Auto.exe to make backup copies of offset files whenever accessed, and to load offsets from the the backup files if errors are encountered loading offset files. 4/06/2016: Changed servo error reset routine to empty keyboard buffer before restarting. Repeats of Esc key during reset were causing dropouts to DOS. Changes for new VB7009 motherboard: Changed Auto.exe and Jog.exe to get PLC com port parameters from PLCPORT.TXT. If PLCPORT.TXT is not present, PLC port defaults to COM2. Added P3test.exe:checks COM3 for handshake signals and writes PLCPORT.TXT, pointing to COM2 if nothing is on COM3, COM3 if handshake signals are detected there. Changed CNC.BAT to call p3test and to initialize packet driver to select ethernet port for use with 5ax card on new VB7009 motherboard. 3/8/16: Added parts counter preset feature to auto.exe. When parts counter is enabled in F10 screen, user is prompted to enter starting count or press Esc to start at zero. 2/16/16:fixed bug in jog.exe. Pressing Esc when prompted for tool # in toolsetting screen would corrupt screen. 1/29/16:Fixed bug in cycle repeat counter. Counter display update was 1 full cycle behind actual part count. Also Cycle Repeat counter was decrementing even when Cycle Repeat was not active. 1/13/16:Altered Auto.exe to give 15 hrs on lube timer 11/08/15:Fixed bug in Auto.exe: When in default metric mode, offsets would be displayed/ entered as mm until an inch program was run, then the offsets would be displayed/entered as inch values. Changed offset routines so that the offset tables would always use the default units as set in filepath.cfg. 9/11/15:Fixed bugs in auto.exe: Subroutine return pointer stack was overflowing, causing error 9. Reset pointer stack at each program restart. Secondary offsets were being carried across tool changes, causing offsets to stack up. Fixed. 7/24/15:Feedrate override didn't work in incremental moves in Jog.exe. Fixed. Added offset file integrity checks to Jog.exe and Auto.exe. Offset files are read back after they're written, and if they are incomplete or corrupted they will be corrected. 6/24/15:Added ability to input filename from RS232 to picker.exe. details:If file called "scanner.txt" is present com port parameters will be loaded from it. If the file's not there the com parameters default to 2400,n,8,1,rs,cs,ds,cd Pressing F8 in the file picker screen will open the comm channel and wait for input. Pressing Esc while waiting will return to normal pick screen. 12/19/14: Auto.exe was crashing on m97 if not preceded by function that did a wait for plc. Added init of WDT on m97. 8/22/14:Added ability to type program name from keyboard to picker.exe. Pressing F5 brings up program name prompt. 7/03/14:Added lube timer for collet closer lube to Auto.exe. Prompt on Auto screen advises operator to check and fill lube every shift and to press Alt-L to indicate completion. If more than 10 hrs goes by between Alt-L signals, machine puts up warning and won't continue until Alt-L is pressed. 6/17/14:Fixed threading bug which caused servo errors on single-pass cuts >.3" deep. 5/15/14:Fixed bug in auto causing failure if hasvco.txt file is not present; added PLC watchdog timer. If waiton or waitoff statement is not fulfilled within time given in default.wdt, machine will simulate servo error and shut down. If there is no default.wdt file, timeout will be 60 seconds. 4/25/14:Added save/load of vco programs along with tool offsets via F10 screen. VCO files will be saved as "partname.m80" and "partname.m81". 12/12/13:Fixed bug in Jog.exe:Alt-i wouldn't activate input monitor display if in motion stop 10/08/13:Fixed bug in Jog.exe:If door was opened in MDI w/spindle on,spindle would restart when exiting MDI 10/08/13:Fixed bug in Auto.exe-would not load offsets correctly via F10 screen 8/27/13:Auto.exe and Jog.exe modified to give notice of failed PLC communication. 8/16/2013:Cutter comp was only comping .1 as much as it should in metric mode. Changed auto.exe to pass 10x value to cutter comp routine.Found that sectcmp. file was formatted incorrectly for use by omni-chk. Changed jog.exe and auto.exe to format correctly. 8/09/2013:Fixed bug in auto.exe. M19 would not work twice on the same tool sometimes, even with m05 between the two m19 statements. 7/26/13:Added password access control to Auto.exe. Password and options reside in a file called permits.cnc. 1st line is password(not case sensitive) 2nd line:0=lock edit only,1=lock edit and offsets 7/12/13:Fixed problem with auto.exe not setting correct feedrates with metric set as default. Was only recognizing correct metric feedrates when switching from inch to metric. 7/12/13:Fixed problem in parse.exe. Required G71 to recognize metric mode even if filepath.cfg set metric default. 7/12/13:Revised version.exe to reflect current date. 6/20/13:Jog.exe:changed feedrates on incremental moves. Moves<.1" are 1 ipm, .1" is 10 ipm,1" is 20 ipm. 6/17/13:Fixed bug in Auto.exe which caused spindle to start in M03 direction on seq. search even if program called for m04 12/20/12:Auto.exe modified to show comments on tool search page.Added file called version.exe to update package. Version.exe doesn't do anything, but the date of version.exe will be the date of the update. 09/17/12:Fixed bug in Auto.exe. Spindle encoder tracking was limited to 4500 RPM. 09/16/12:Modified Auto.exe so that pressing Esc while waiting for PLC will act like M30 rather than allowing continuation in Single Block mode. 09/05/12:Fixed bug in Auto.exe causing Baumuller c-axis to home incorrectly on 1st M19 after power-up. 08/14/12:Reworked soft e-stop in Jog.exe. Soft e-stop during a MDI move would lockout keyboard until motion stop and Esc were pressed. Fixed bug in Jog.exe causing CA moves to be inaccurate.Reworked servo error reset routine to delay reset,allowing 5ax card to re-initialize before restoring normal screens. 08/13/12:Fixed bug in auto.exe causing program to lock if soft e-stop (guards+inh simultaneously) activated with C axis enabled. Now soft e-stop causes jump to jog. Reworked servo error reset routine to delay reset, allowing 5ax card to re-initialize before restoring normal screens. 05/17/12:Changes to auto.exe: Fixed bug causing program crash when "C" was pressed in offset adjustment screen to clear an offset. Added support for C axis orientation controlled by vision system: User executes M19, then M86. On execution of a M86 command, control sends a ? via RS232 to the camera system.The camera system responds with a text string "CI"+ the amount the part will need to be rotated to be correctly aligned. The correction will be applied to the next M19 command executed. Added support for offset adjustment via slide-mounted gage. M87 issues read command via RS232, gage replies with difference between current position and position read when indicating against a standard.Difference is applied as a G10 workshift to subsequent tool calls. Added tool height compensation to X-C plane switching to allow use of live spindles larger than 1". H value specifies height of tool centerline. Added support for mechanical spindle brake motors. 03/15/12:Added support for mechanical spindle brake to Jog.exe 03/09/12:Switched to a new text editor due to occasional screen blanking when going into edit. 02/03/12:corrected bug in Auto.exe which would cause servo errors if motion stop, then Esc was pressed in constant surface speed mode and program was then restarted. 01/19/12:corrected bug in auto.exe allowing manual collet operation during thread cycle. 12/13/11:revised auto.exe for failure to pickup secondary offsets on same line as feedrates. Also added bounds checking for arrays and trapping for overflow errors. 11/04/11:revised Jog.exe to allow jogging w/misc. cable disconnected for troubleshooting purposes. Pressing Alt-G, then Cycle Start will clear a feedhold caused by the door switch being open and cause the door switch to be ignored until leaving jog mode. 10/14/11:Revised Parse.exe for failure to pick up secondary offsets under certain conditions. 10/11/11:Revised Intro.exe and CNC.bat to allow breaking out to DOS via Ctrl-C at program backup prompt.Revised Jog.exe to eliminate C-axis bug causing C misposition on MDI CA moves over 360 degrees.Revised Updater.bat to copy new CNC.bat file to root directories of C and D drives. 07/29/11:Revised Auto.exe to correct a feedrate problem in CZ plane-switched mode. Feedrate was lower than commanded. 07/13/11:Revised Auto.exe to correct a bug with threading cycle. Z axis was traveling forward as X pulled out at the end of the threading pass. 07/01/11:Revised auto.exe to correct jitter on spindle reversal when tapping.Added M84/M85 commands to disable/enable feed and spindle overrides. M84 disables,M85 enables. M02/M30 or tool calls enable overrides. 07/01/11:Revised Parse.exe to add M84/M85 codes (see auto note above). 06/16/11:Revised Parse.exe to treat M19 as quick C axis home and M88 as slow version. 06/02/11:Revised Auto.exe to accomodate plane switching in the ZC plane. 02/21/11:revised Parse.exe to correct a problem with secondary offset calls. G95 was not recognized on a line with a D value. 02/20/11:revised Auto.exe to correct a problem with secondary offsets. Multiple calls/cancellations caused incorrect application of offsets. 01/26/11:revised Parse.exe to correct a problem with interpretation of G00 in metric mode. Control was setting G00 feed to 300mmpm instead of 7620mmpm. 01/18/11:revised Picker.exe to correct a problem with lines being broken at commas, turning comments into 2 lines and causing complaints from the error- checking software.Rev. note updated 10/14/11:also eliminated option of deleting directory. 01/03/11:revised Auto.exe to allow Coolant key to work whether machine is in cycle or not. 12/30/10:added input monitor function(Alt-I)to Jog.exe. Pressing Alt-I displays status of inputs. Note that the spindle Off/Auto switch is only monitored when the spindle is commanded to be on. Active inputs are displayed as 0, inactive inputs are shown as 1. Also,when door interlock switch opens, Spindle Off/Auto switch is shown as off regardless of its actual condition, and Mot. Stop is shown as on regardless of its actual condition.If guard input is disabled by the presence of the noguards.txt file the guards input will be shown as active(0) whether the door is open or not. 12/29/10:revised Picker.exe. Previously,the prompt displayed when selecting a program directory said to press Del to remove the highlighted item from the list. Now says to press Enter to select, or Del to remove. 12/07/10:revised auto.exe to enable parts catcher key when door is open. Parts catcher key now needs Ctrl key as well to prevent accidental actuation. Also revised door intlk operation so Esc will clear door intlk feedhold after door is closed.(Formerly was only cleared by Cyc. St.). 12/03/10:revised jog.exe to enable parts catcher key when door is open. Parts catcher key now needs Ctrl key as well, to prevent accidental actuation. 11/20/10:Added support for vertical cutoff in auto.exe,jog.exe, and parse.exe.Added quick home function(M88)for Yaskawa C axis in auto.exe and parse.exe. Fixed bug in auto.exe causing glitchy C-axis motion when multiple tool changes are executed with C axis enabled.Fixed bug in auto.exe causing jittery motion when spindle reversed during feed. Modified jog.exe and auto.exe to shut off all m-functions on exit. 7/22/10:modified threading cycle in auto.exe to get faster pullout for use in blunt-start threads 7/09/10:Fixed bug in auto.exe causing memory corruption by extremely long threading cycles. 5/14/10:Fixed bug in auto.exe causing slow feed on retract in drilling cycle in metric mode. Fixed bug in jog.exe causing incorrect position display in metric mode. 4/6/10:Changed auto.exe so that Esc-ing from waiton/waitoff statements in user m-funcs switches to single block mode. 2/23/10:Parts counter display was not clearing when turned off. Fixed in auto.exe. 2/22/10:Changed auto.exe to fix bug with X-less single-pass threading cycle. 2/19/10:Changed auto.exe to fix bug with m91/92/93/94/95 handling of inputs to C axis connector. 2/19/10:Changed parse.exe to allow inclusion of m-funcs(M03/4/5/8/9/17/18/21/22/23/24/27/28) on same line as X/Z move following tool call. 2/10/10:Changed picker.exe to recognize .nc and .cnc file extensions in addition to no ext or .txt Previously changed handling of door interlock inputs Door interlock now is wired to the "motion stop" input instead of the "palm box e-stop" input. Wires for the door interlock switch and the bypass keyswitch need to be moved from tb1-26&27 to tb1-30 and gnd. TB1- 26&27 need to be jumpered together unless there is some other e-stop circuit there. The interlock now behaves as if motion stop and spindle off/auto were both activated. To resume operation after closing the door, the operator needs to hit the cycle start buttons. Machines which have no interlocks need a file called "noguards.txt" in the runfiles directory. It does not matter what is in this file. If the file exists, the control ignores the interlock input. It is better, though sometimes impractical, to jumper the external Motion Stop signal to ground than to use the noguards.txt file to disable the interlock input, since jumpering allows interlocks to be added later just by removing the jumper.