*** R9SETUP REVISION HISTORY*** Version 3.21, 3/10/99: -fixed latest OS loading problem -added Mask Integer module -added I/O module type selection directly from card cage representation Version 3.23, 3/20/99 -directed arccos output to floating data base instead of integer data base Version 3.24, 3/23/99: -fixed problem with speech presenting large numbers Version 3.25, 3/24/99: -altered code to only allow 1st diagnos module to control display contrast...eliminates display contrast oscillation due to multiple loop supply boards Version 3.27, 3/26/99: -fixed bug in 3.25 prohibiting OS load. Version 3.28, 3/31/99: -fixed error in flashdump module that made it write erroneous colon characters in data. Version 3.29, 4/22/99: -added pulse to flow converter Version 3.31, 5/03/99: -Added flow calculation math modules for most flumes and weirs. -DIALER: Reduced required delay for dialer character recognition. -lengthened allowed answer time during ringback call progress detection to 1 minute to accomodate cell phones. -enabled report interruption by keystroke on called phone. Version 3.32, 5/06/99: -changed flash disk software to confirm sectors after writing Version 3.33, 5/07/99: -added module to latch and trigger on status changes Version 3.34, 5/10/99: -doubled module space from 500 to 1000 modules Version 3.35, 5/12/99: -increased from 5 sec to 15 sec the dialer wait time for menu speech messages to complete Version 3.36, 5/26/99: -altered lead/lag controller to go to alternating mode if lead pump number is out of range -fixed flipflop so it could not have both outputs the same state before being clocked -fixed trending to correctly show grid lines when bottom of y-axis is nonzero Version 3.37, 6/03/99: -fixed speech sequencer to prohibit operator numbers outside min and max designated range Version 3.38, 6/08/99: -added 'Clear all memory' option to welcome menu Version 3.39, 6/09/99: -changed LCD 600 sec update to only update user defined displays Version 3.40, 6/16/99: -added RTS/CTS control to modem board RS232 port -added 'pokemany' module Version 3.41, 6/24/99: -altered speech board tone sampling software to eliminate missed characters -altered speech board timing to speed up some some operations on large programs Version 4.01, 6/xx/99: -Changed over to the Delphi 4 compiler for R9Setup. -Altered compiler to use static RAM assignments so that setpoints, table RAM entries, etc. do not get altered by new program loads. RAM assignments remain from first compile of a module until the module is deleted or altered. -Added R9OS version test before loading program to R9. -Added module cloning. -Corrected problem with opening com port that is already open. Version 4.02, 6/04/99: -completed interface to basic file I/O points -added 'Clear all memory' option to welcome menu Version 4.04, 6/17/99: -changed LCD 600 sec update to only update user defined displays -added RTS/CTS control to modem board RS232 port -added 'pokemany' module -corrected error in ladder logic compiler handling of coil/virtual output addressing Version 4.06, 6/24/99: -Fixed error in table compiler -fixed error in speech compiler addressing -altered speech board tone sampling software to eliminate missed characters -altered speech board timing to speed up some some operations on large programs Version 4.07, 6/25/99: -fixed 'getuserinput' module to handle non-numeric entries correctly -fixed table entry to properly regard numeric constants in string lines as strings Version 4.08, 6/30/99: -added 'TotalizeEvent' totalizer/integrator for single events -fixed R9Setup so module type selection windows become invisible when other selection made -Changed display implementation to correctly send to printer ports -Added 'ReadTableRowFloat' module...reads row of table & sends to floating pt data base Version 4.09, 7/15/99: -fixed uninitialized timer in speech that caused some units to miss touchtone characters Version 4.10, 7/16/99: -fixed compiler's inability to handle empty speech tables -added TriggerOnMBWrite module Version 4.11, 7/19/99: -Changed DialMdm send answer tone and carrier if triggered with no phone #. Version 4.12, 7/20/99: -Added characterization table module (math). -Corrected table editor to clear new rows as they are added -Corrected telemetry handler to correctly handle integers with multipliers -Fixed ReadTableRow modules to account for starting register correctly -Changed wallpaper form background so it does not use winproc interface (may be better for Windows NT) Version 4.13, 7/22/99: -corrected ComSetup errors in setting up CPU port 1 Version 4.14, 7/22/99: -placed watchdog updates so main serial port would run at low baud rates. Version 4.15, 7/27/99: -corrected error in table compiler so it does not erroneously store integer constants as strings Version 4.16, 8/04/99: -added overshot gate (weir) flow calculation to math Version 4.17, 8/10/99: -added quiescent polling controller (com) -corrected problem with displaying 10th item on LCD screen line -disabled sleep modules except the 'goto sleep module' after command given to go to sleep Version 4.18, 8/10/99: -fixed ladder problem wherein residual ladder would become part of new program load -modified quiescent polling controller to rearm on reset and to adapt retry timing to blockage rate Version 4.19, 8/25/99: -added paging to autodialer sequencer and dialing functions Version 4.20, 8/30/99: -changed sleep modules to make compatible with new sleep board programming Version 4.22, 9/1/99: -modified event log output to only emit printable characters -modified speech sequencer to correctly give verbal welcome menu on incoming calls between callout events -changed 'TriggerOnBitThenClr' module to not execute if it has no input pointer Version 4.23, 9/2/99: -corrected compiler error where it allocated too little space for triggers Version 4.24, 9/3/99: -altered display compiler to allow decimal point to immediately precede @@@ field. Version 4.25, 9/3/99: -corrected event logger only allocating 1/4 the necessary RAM for log Version 4.26, 9/7/99: -Special version for Gastronics...modified CRC calculation Version 4.27, 9/10/99: -corrected pointer/RAM assignment in event log setup module to inhibit erroneous log dumping to port Version 4.28, 9/17/99: -made cosmetic corrections to R9Setup to delete unnecessary scroll bars and other items -added ability to blank cells in TLM arrays -added automatic installation of System module on R9Setup initiation or NEW -made trigger on SendStrtoPort module edge triggered (will not retrigger if status steady ON) Version 4.29, 9/23/99: -changed speech report compiler to detect references to non-speech boards -added pump up/down controller with on/off delay timer Version 4.30, 10/8/99: -fixed "Clear Cell" addressing error -added mode to EventLogSetup to enable dumping each event as it occurs Version 4.31, 10/12/99: -corrected error in event printing -added check box to preferences in R9SETUP to enable programmer to control alphabetization on compile Version 4.32, 10/19/99: -corrected the "ZeroRam" function to zero ladder coil addresses Version 4.33, 10/19/99: -corrected error in roundoff calculation for negative floats in TLM arrays Version 4.34, 10/24/99: -corrected missing "alarm ack by operator" msg to event logger Version 4.35, 10/25/99: -corrected error in printer initialization Version 4.36, 10/26/99: -added direct readout of DI's from sleep board to "SleepRead" module Version 4.37, 11/01/99: -added numeric to string module Version 4.38, 11/03/99: -corrected round off error in numeric to string module Version 4.39, 11/03/99: -made compiler regard input strings beginning with $ as simple strings, not hex addresses Version 4.40, 11/09/99: -added expanded name presentation to ladder page, and to speech table setup page. -added ability to adjust setpoints by telephone using dialer Version 4.41, 11/17/99: -added "TrigOnChangeMany" module to watch for changes in any of 10 analogs -corrected error in RUG6 communications mode when sending high transmit indices -corrected call progress detection problem in spsequendial module Version 4.42, 11/19/99: -added horizontal bargraph display to LCD -corrected problem in buffer allocation that caused Modbus and R6/R9 com to conflict Version 4.43, 11/23/99: -altered TrigOnRcv module so that, on forwarded messages, will only trigger on final msg -fixed tables to always interpret constants on string lines as strings Version 4.44, 12/02/99: -added LatchString module Version 4.45, 12/08/99: -added additional error checking to SleepRead module for DI's & counts Version 4.46, 12/09/99: -shortened printer stall counter to speed retries after printer stalling Version 4.47, 12/16/99: -fixed error in compiler that made it overwrite a file erroneously if you use the quick popup menu. -added files referenced in manual to embedded file list -added 2 second delay for each '-' character to DialMdm module dialing function Version 4.48, 1/25/2000: -altered font on R9SetupD toolbar to keep button sizes from growing out of visible area -corrected error in FlowContainer keeping it from working if no tank level exists. Version 4.50, 2/09/2000: -added pulse duration input module -added pulse duration output module -added alarm output function to combo card -extended tx buffer size to 4K bytes for serial ports supporting displays. Version 4.51, 2/14/2000: -reworked watch window to minimize polling and add poke mode Version 4.52, 2/18/2000: -modified FlowContainer module to add calculation delay setpoint after pump off detected -also added 10 scan low pass filter to result of calculation -modified SysSetup1 module to correct backlight control in case of missing backlight duration setpoint Version 4.53, 2/23/2000: -fixed speech report grid which would not show reports larger than 19 lines in some cases Version 4.54, 2/28/2000: -fixed problem with R9 reading combo board cal data on top of flash fields in RAM Version 4.55, 3/07/2000: -fixed problem with tx buffer size exceeding entire RAM space -modified data logger module to save time tag before data sample if both triggered on same scan Version 4.56, 3/08/2000: -fixed OrGateLatch so outputs cannot have same state Version 4.57, 3/14/2000: -added pulse generator module -added intrusion sequencer module Version 4.58, 3/17/2000: -corrected compiler to make sure to allocate receive buffer for dual RS232 ports Version 4.59, 4/18/2000: -added FwdPortSwitch module enabling port switching during store & forwarding -added Toggle module -added ReadTableRowString module -added ValueTestValueOut module Version 4.60, 4/25/2000: -changed dialing sequencer to use paging flag as delay before issuing paging tones -corrected QuiescentController to handle zero retries correctly Version 4.61, 4/25/2000: -altered watchdog timer function to disable foreground processes from retriggering watchdog (now only IRQ) -added address range and address outputs to FwdPortSwitch module Version 4.62, 4/30/2000: -added mode 2 to FwdPortSwitch module Version 4.63, 5/06/2000: -added SummingAccum module...summing accumulator -added TrigOnKeyMany and TrigOnKeyManyLog modules...triggers for all numeric keystrokes Version 4.64, 5/09/2000: -fixed problem with speech phrase list not clearing -added ALERT format decoding Version 4.65, 5/23/2000: -altered speech phrase list to correctly handle blank phrases -fixed reversal of TrigOnKeyMany and TrigOnKeyManyLog Version 4.66, 6/08/2000: -fixed Alert failure to handle rainfall correctly -fixed problem with diagnostic values being read improperly -added module name checking to detect edited module names matching existing names. Version 4.67, 6/09/2000: -added auto clear function to AlertRcvStatus module Version 4.69, 6/13/2000: -changed AlertRcvStatus module to clear reception history on auto clear -fixed module name checking to not prohibit saving modules Version 4.70, 7/21/2000: -added event log dumping to DumpLogToFlash module -changed LimitInput module so it works with integers as well as floating point values -added database lists to documentation feature -added database cross referencing to documentation feature -added individual variable cross referencing to main panel -added FlipFlopRS, DelayOn, and DelayOff modules Version 4.71, 8/15/2000: -changed PokeMany and Poke modules to prohibit poking to unspecified destinations -changed datalogger to accept negative values -added LogMany module to log multiple channels with each time tag -fixed bargraph display scrolling problem -added LogMany links to DumpToPort and DumpToFlash modules Version 4.72, 8/16/2000: -altered relay output modules to delay relay control for 3 scans after bootup -modified R9Setup to prohibit disallowed cards for RUG5 rear card locations -improved ALERT resynchronization process Version 4.73, 8/24/2000: -added pulse duration counter initializations -fixed SendStringToPort formatting and handling of negative numbers Version 4.74, 8/25/2000: -further fix on pulse duration output initialization Version 4.75, 9/02/2000: -changed bootup code to force program run if program loaded and intact -added scancount zeroing on run following program load -added table editing to RUG5 code Version 4.76, 9/06/2000: -added analog calibration drivers for RUG5 Version 4.77, 9/13/2000: -modified calibration storage for RUG5 Version 4.78, 9/14/2000: -added StringSwitchByBits module Version 4.79, 9/18/2000: -corrected problem with 4.76-4.78 loading new operating system Version 4.80, 9/21/2000: -changed RUG5 setpoint entry to navigate with arrow keys and start entries with CLR key Version 4.81, 9/26/2000: -added present status output to DiginCount module Version 4.82, 9/29/2000: -added count-up-only filter to SleepRead module DI counters -fixed 'zero' erroneously added to speech report of integer value Version 4.83, 10/02/2000: -further fix on sleep board tip counting -added auto restart after 60 sec if in monitor mode and program tests OK Version 4.84, 10/10/2000: -added MakeString module Version 4.85, 10/20/2000: -changed timer overrange value in QuiescentController Version 4.86, 10/22/2000: -installed change to assure that RUG5 relays stay off during boot up -installed change in boot loader to prohibit NMI for 2 sec after bootup so that unit does not erroneously start up in monitor mode due to transient-induced NMI Version 4.87, 11/13/2000: -added ParseString modules (4) -fixed module type changing when recompiling while module workspace is open -added default delay of 0 seconds to ComSetup if TX delay unspecified Version 4.88, 11/20/2000: -fixed problem prohibiting GetUserValue from storing user entry when used on serial port -improved erroneous sample filter on 16 bit AI card Version 4.89, 11/28/2000: -Added Constant module -Changed compiler to leave compiler result invisible if no compile errors -Widened compiler error window -Fixed bug in AI4/16 sampling that crashed the system in the case of multiple AI4/16 boards -Changed compiler to correctly handle added outputs on modules with RAM already assigned Version 4.90, 12/01/2000: -deleted reference in boot area to unit type -made unit clear R5 relays unconditionally on boot up Version 4.91, 12/07/2000: -changed compiler to make it reassign RAM if it finds insufficient RAM previously assigned to a module -improved RAM assignment determination upon saving module -added GlobalSetpoint and GlobalSetpointSetup modules -added clock synchronization (GlobalRTC) function to RX/TX arrays -added audio carrier detect to ComSetup module -fixed failure of ladder compiler to correctly emit error message/halt when it cannot find a contact's name -added broadcast (address 0) capability, unit accepts data destined for address 0 but does not respond Version 4.92, 1/2/2001: -fixed missing error messages from database search of coil ON/OFF delay variables -added cancel button to compile/file load progress panel -fixed problem with entering special fields (GlobalRTC...) in rcv arrays Version 4.93, 1/12/2001: -reduced by 75% time unit will wait for response from sleep or speech boards -changed status reading code to allow non-statuses in normally closed ladder contacts -modified low level get... modules to speed up pointer fetching -added AND8X2 module -fixed slot 8 relay chatter due to RUG5 display conflict Version 4.94, 1/13/2001: -added CounterUpDnRollover module, up down counter with rollover/rollback Version 4.95, 2/01/2001: -added error message for case of RUG5 with expansion boards -added falling edge trigger to TriggerGen module -fixed error in RUG5 display menu leading to reset after accessing menu -added reset counter that will go to monitor mode if 5 resets accumulated. Cleared on 10th program scan. Version 4.96, 2/11/2001: -added 1st release of BASIC compiler Version 4.97, 2/15/2001: -fixed dialer problem where dialer would append low # messages to high ones after sector 255. -added alert tones to dialer -fixed problem with dialer missing 1st character on 1st phone number dialed after bootup -added ability to control dialer key without dial tone when string phone number is '1'. Version 4.98, 2/22/2001: -added string functions to BASIC compiler Version 4.99, 3/02/2001: -added ability to append strings in 'MakeString' and corrected lack of leading zeroes in floating pt values Version 5.00, 3/08/2001: -improved background AI noise filtering for all 12 bit resolution channels Version 5.02, 4/03/2001: -added bootup clearing of register set by SpeechPlayRecDel module within SpeechDial module -expanded module name checking to include BASIC names -added rung number box to ladder diagram panel -eliminated unnecessary recompile prior to sending pgm to R9 -corrected erroneous change flags when access ladder schematic -added true wireless CRC checking (mode 9) to comsetup and customizer to system setup module Version 5.03, 4/06/2001: -modified TLM array structure to reduce flash space and loading time -added manual contrast control to SystemSetup module Version 5.04, 5/01/2001: -added ability to load programs remotely using a master R5/R9 and any port except dialup 2-wire -added initialization to SequenPoll module to automatically preset subsequencer state and time delay -added ability to run all implemented protocols, including Modbus, on programming port Version 5.05, 5/07/2001: -made port 1 autoswitch to R9 mode if in ascii and receives an R9 message -cleaned up header string installation in flash files -fixed embedded date so year not truncated in storage to flash files Version 5.06, 5/09/2001: -fixed problem with TLM receive arrays returning zero value when integer has multiplier of 1.0 Version 5.07, 5/21/2001: -fixed error in event log display to RUG5 small LCD Version 5.08, 5/23/2001: -enabled negative pager flag entries in SpSequenDial module to trigger pager code without waiting for connect state...negative value specs time in sec from start of dialing to issue of page code Version 5.09, 5/31/2001: -fixed problem with SetDisplay module. -added output to SetDisplay module so pgm can obtain which display is currently active. Version 5.10, 6/04/2001: -altered string parsing modules to correctly handle leading blanks on numeric entries Version 5.11, 6/05/2001: -modified GetStringFromPort to handle CRLF strings appended together -added buffer size input property to ComSetup module Version 5.12, 6/13/2001: -No change Version 5.13, 6/15/2001: -added ability to trigger recalculation in AlertRcvAnalog module without a reception Version 5.14, 6/21/2001: -fixed missing output on SetDisplay module Version 5.15, 6/27/2001: -fixed DumpLogToFlash module overrange output, and failure to dump if LogMany file had only one record Version 5.16, 7/05/2001: -altered RTS on modem's RS232 board to turn on at start of TX delay, off during trailing nulls -increased dialer wait time for certain verbal menu items to accommodate long menu statements -fixed DumpLogToPort to dump if only one record present -altered TrigOnMBWrite to accommodate use of CPU port 1 Version 5.17, 7/16/2001: -added SuccessiveSampleFilter -added ability to embed hex codes to reports/displays (for printers) Version 5.18, 8/23/2001: -added ability for SpSequenDial online flag>1 to be interpreted as delay and command to report without waiting for connection Version 5.19, 8/24/2001: -made QuiescentController latch changes and retransmit on changes that occur between TX and RX -added numeric string version of date/time to ReadRTC module -made display menu and table menu respond to up arrow keys Version 5.20, 9/11/2001: -corrected error in DumpLogToFlash module that resulted in '########' for legitimate values Version 5.21, 9/27/2001: -no changes Version 5.22, 10/03/2001: -added bit 2 flag to ComSetup comflags entry to suppress trailing null on modbus messages Version 5.23, 10/04/2001: -altered RTS timing on modem RS232 port to reply to messages faster and extend to end of message reliably Version 5.24, 10/12/2001: -corrected CTS error introduced in 5.23 to delay TX until CTS present Version 5.25, 10/23/2001: -corrected sleep board reading of quadrature encoders Version 5.26, 10/23/2001: -on ComSetup trigger, disabled RTS, DTR from modem chip, and reset rx & tx buffers Version 5.27, 10/26/2001: -added background debugging aids Version 5.28, 11/02/2001: -removed ability of ctrl K's to halt pgm from any port but programing port -added UnAck output to DigitalAlarmOutput module Version 5.29, 11/05/2001: -corrected problem with integer pointer crossing word boundary in 5.27/5.28 Version 5.30, 11/29/2001: -corrected +1.0 error in polynomial module -set modbus com to resynchronize if invalid function code received Version 5.31, 11/30/2001: -added trigger to GlobalSetpoint to arm for reception only and to accept any age code -added reception counter and 'need to tx' outputs to GlobalSetpoint Version 5.32, 12/12/2001: -made GlobalSetpoint install any more recent received value in global TX buffer Version 5.33, 12/13/2001: -made GlobalSetpoint disarm (set count to 1) on default install or on user manual value entry -corrected error cases when user selects no file in BASIC edit boxes Version 5.34, 12/19/2001: -added SelectByValue module -added OS revision and program title to main running menu Version 5.35, 1/08/2002: -corrected error in handling modbus function code 16 Version 5.36, 1/10/2002: -added code to convert flash file names created by R9 to upper case -made flash file structure correctly copy duplicate FAT table Version 5.37, 1/17/2002: -made compiler force module output names to match module names in order to correct possible editing errors -added BASIC module inputs to search function -added code to prohibit dp in module names -added code to complete station address append to RX array entries on exiting array editing page -made compiler flag as errors duplicate RX array entries -increased display/report line limit from 50 to 100 lines Version 5.38, 1/21/2002: -corrected erroneous reporting of duplicate GlobalSP RX array entries Version 5.39, 2/04/2002: -corrected error in search function for BASIC input variables -increased precision of watch window and setpoint item displays -corrected SlidingRate module's inability to handle negative logged values Version 5.40, 2/06/2002: -added GetFromLogger module to enable sample extraction of any 30 samples in DataLogger module -added SpeechAccess module to give users access to dialer functions for user-defined dialers -added onhook/offhook indication from dialer board...requires dialer revision 5.40 to work -changed display to show '----' for '@@@@' fields with no corresponding database tag Version 5.41, 2/26/2002: -removed onhook/offhook indication from dialer board to maintain backward compatibility -added timer range checking to DelayTimer module to prohibit timer outside range of 0 to SP -in TrigOnRcv, prohibited new reception from clearing old rcv flag, could have caused missed reception Sleep version 5.41, 2/28/2002: -added shift and delay filter to DI's to eliminate bouncing contact counting -added triple register voting on all counters/encoders -altered watchdog to require 0.1 sec. operation and com with R9 when awake for correct operation Dialer version 5.41, 2/28/2002: -cleared ring counter on answer to prohibit re-answering if short connection with user Version 5.42, 3/01/2002: -added watchdog update during watch window response in order to avoid timeout diring watch window replies -narrowed ring count acceptance to avoid erroneous dialer answering Version 5.43, 3/14/2002: -removed count-up filter from sleep DI counter inputs in SleepRead...acted as peak detector Version 5.44, 3/25/2002: -added StringLeftMidRight module -added StringConvert module -altered StringSwitch module to pass strings on each scan rather than wait for index change -fixed problem with GetUserValue starting with keystroke user entered to trigger GetUserValue -added flow totalization and ability to generate pulses based on flow accumulation to PulseToFlow module -altered boot loader to call for OS load if it detects excessive resets (10 resets without at least 100 pgm scans) Version 5.45, 3/28/2002: -fixed WatchWindow not accepting short tags such as R1.1 -improved CRC-secured resynchronization timing (modbus, R9, R6 modes) -switched vacant sectors output of SpeechAccess module to integer as it should have been Version 5.46, 4/03/2002: -added preference item to enable/disable duplicate variable checking in compiler -added ability to specify -1 designating 'self' to destination address in TriggerOnRcv module -added provision to specify register and coil offset addresses in PollModbus module for functions 1,2,3,4 -corrected error in R6 communications mode working improperly at high (>48) addresses Version 5.47, 4/04/2002: -expanded register and coil offset addresses in PollModbus module to include functions 5,6,15,16 Version 5.48, 5/02/2002: -fixed inoperative preset in TrigEveryXSec and TrigEveryXMin modules Version 5.49, 5/10/2002: -fixed problem with inoperative Global RTC and GlobalSP implementation Version 5.50, 5/17/2002: -fixed PollModbus module handling register offset incorrectly (used offset from wrong port) Version 5.51, 6/02/2002: -corrected dump to flash modules to correctly handle FAT12 formatted by W2K and WinXP -added FAT16 compact flash formats to enable operation with up to 512MB CF cartridges (but not FAT32) -added logger indices to DataLogger and LogMany modules for future DumpLogToLog modules Version 5.52, 6/05/2002: -changed keystroke latch to ignore watch window poll that could lead to erroneous TrigOnKey triggers in long programs (>1 sec cycle time) Version 5.53, 6/13/2002: -fixed TrigOnKey problem introduced in 5.52...wouldn't recognize keystrokes from port 1 Version 5.54, 6/20/2002: -installed pointer testing on event log dumping to keep out of range pointers from causing watchdog restart -added ComWatch module to aid in debugging communications -fixed address list in store & forward code that could have caused problem in forwarding through 3rd intermediary address -added code to force AI4/16 channels to raw counts of zero in the event of broken loops Version 5.55, 8/20/2002: -fixed inoperation of combo card relay outputs as pulse duration and alarm outputs Version 5.56, 8/28/2002: -added file type test on reading project file -added recording to user's file of OS revision and date of last save of file -added ability to accept and record user's notes for both overall project and individual modules...NOT BACKWARD COMPATIBLE -added X,Y coordinates to modules for future graphic editing...NOT BACKWARD COMPATIBLE -added expanded cell display box to table presentation -forced written files to have extension '.rgd' to avoid overwriting old customer files and to force EZTLM compatibility -fixed file history not recording files saved with new names Version 5.57, 8/30/2002: -fixed problem with TriggerOnKey and TrigOnKeyMany modules performing multiple triggers on long programs when watch window polling Version 5.58, 9/04/2002: -lengthened delays for access to loop board A/D converter -fixed problem with module description not showing correct description after showing user notes. -deleted terminating nulls from Secomm32 driver messages to make compatible with USB to RS232 modules Version 5.59, 9/18/2002: -Clears keystroke flag shifter to eliminate missed keystrokes -added code to accomodate blank preset volume trigger field in pulse to flow module Version 5.60, 10/02/2002: -to FloatToInt module, added two 2-byte integer outputs...MS word, and LS word of orig. floating point 4 byte value Version 5.61, 10/23/2002: -altered menuing to supress logon/logoff items if security codes not present in system module -added GetStringGP module -added command to assure that modem transmitter is shut off when hang up/key off trigger received in DialMdm module Version 5.62, 11/07/2002: -added 'Trigger Force Answer' input to DialMdm module to enable applications where dialer and modem use same phone line Version 5.63, 12/19/2002: -added code to assure proper dialer sequencing in case of call in during pre-dialing report, or during phone number search Version 5.64, 01/09/2003: -switched to new deployment software...not released Version 5.65, 02/17/2003: -added SequenBatch module to implement table-based batch/test sequences. -corrected error in display of DI's in R9Ddiagnostic.rgd Version 5.66, 03/07/2003: -corrected error in deployment shortcut pointer Version 5.67, 03/27/2003: -added FlowAGA3 module...gas flow calculation module -added SyncToRTC module Version 5.68, 03/31/2003: -fixed Poke and PokeMany modules writing incorrectly to long integer values -fixed BASIC incorrectly writing to long integer values Version 5.69, 04/03/2003: -added LeadLagSeq4 module...leadlag sequencer for 4 pumps with lockout capability -added MismatchLatch module...used to declare and latch pump fail (lockout) Version 5.70, 04/14/2003: -fixed any module reading long integer values Version 5.71, 04/18/2003: -corrected error in writing to flash disk files that led to overwritten clusters and incorrect file length, making Windows refuse to read the file. Version 5.72, 04/19/2003: -fixed SyncToRTC module not handling hour triggers properly -added GetDistantLogMany module to enable dumping LogMany logs from one unit to another -corrected DumpLogToPort showing 6 places right of decimal when zero places specified Version 5.73, 05/27/2003: -changed LeadLagSeq4 module to refrain from designating a locked out pump as lead pump Version 5.74, 06/19/2003: -fixed problem of Modbus master mis-handling replies to status requests -added 'port open' tests to avoid multiple commands to open port in R9Setup Version 5.75, not released Version 5.76, 07/03/2003: -for 12 bit AI channels, disabled background AI low pass filtering in instance when module filter time constant=0.0 -added state output to pulse duration output module, reflecting state of controlled relay Version 5.77, 08/15/2003: -improved detection of non-RUG5/9 programs to assure they are not loadable by accident -fixed mishandling of end of message timing and nulls on modbus polls using dual serial/printer board -added retry of OS test to boot loader after 60 sec. Version 5.78, 08/21/2003: -added EncodeBinaryMessage and DecodeBinaryMessage modules to enable unit to encode/decode foreign protocols used by other devices/instruments -altered DumpLogToPort module so that LogMany dumping that encounters non-timetag in first field of record will not abandon file dump as a consequence Version 5.79, 10/09/2003: -added StringSwitchPriority module to enable display of active alarms from list of corresponding strings -added SendAlertData module to implement ALERT format transmission capability Version 5.80, 11/14/2003: -added Latch32Floats module -added com fail/retry delay to R9Setup preferences so user can slow program loading to units over links with high latency, such as satellite links Version 5.81, 11/18/2003: -corrected error in poke function of GetUserValue module -added test to compiler to find duplicate/missing display numbers on each port Version 5.82, 1/05/2004: -forced TLM special function radio buttons checked to be false on presentation -altered speech reports to allow database variables with numeric characters at start of variable name -added secondary progress gauge to progress panel to show progress within module, TX and RX compile steps -altered table compiler to allow one line tables -changed SpSequenDial hangup watchdog timer from 60 seconds to 600 seconds, made start of report restart hangup watchdog -added code to clear security code flag on speech dialer hang up Version 5.83, 1/22/2004: -fixed problem of module library tabs showing up in user notes panel when user notes panel is opened Version 5.84, 2/11/2004: -resolved conflict between predial timer and hangup timer in speech dialer sequencing. -corrected AI4/16 sampling strategy to guarantee uniform sampling -suspended interrupts during high clock times to AI4/16 A/D converters to eliminate erroneous responses Version 5.85, 2/23/2004: -increased end of message index threshold by 1 for modbus master transmissions and replies of message types 15 and 16 Version 5.86, 3/05/2004: -modified compiler and certain floating point routines to optimize for speed. In testing, R9DDiagnostic runs 9 times as fast as previously. Version 5.87, 3/15/2004: -changed modem transmit function to disable TX tone when using low tones on 2-wire connection Version 5.88, 3/17/2004: -altered transmit RTS shutoff timing generation to avoid effecting simultaneous character receive functions Version 5.89, 4/15/2004: -increased ladder size from 200 to 1000 rungs Version 5.90, 4/20/2004: -corrected error in CharacterizationTable module when used with descending values Version 5.91, 8/10/2004: -in TotalFlow module, added code to clear sample counter and temporary accumulator when preset trigger true -added Alternator module Version 5.92, 8/21/2004: -altered parsing modules to regard multiple blank characters as single delimiter in instance that blank is specified as delimiter -added test to handle blank string length entries in module definition by user Version 5.93, 9/01/2004: -to EncodeBinaryMessage and DecodeBinaryMessage modules, added flag to specify byte order reversal -altered ParseString modules to handle any length incoming string Version 5.94, 10/14/2004: -altered SpeechDial module timing to assure unit will wait for an answer before starting speech report if programmed to do so Version 5.95, 1/15/2005: -fixed error in modbus function 15 reception altering wrong statuses -fixed inability of report generator to handle entries in speech table that start with numeric character -added output to FloatToInteger module that outputs floating point value with MS/LS words (16 bits) swapped from incoming value Version 5.96, 1/17/2005: -fixed inability of trend presentation to handle large horizontal tick scale values Version 5.97, 1/24/2005: -fixed documentation generator to emit RX arrays even if there is no TX array Version 5.98, 2/10/2005: -changed R9Setup to always load the last job loaded when R9Setup was previously shut down unless a file name follows the command to launch R9Setup -added code to R9Setup to load the first file named after the command to launch R9Setup and automatically send it to the attached R5/9 -added code to R9Setup to load the OS if the file name on the command line is 'SendOS' and automatically send it to the attached R5/9 -added code to R9Setup to generate a log file named R9ResultLog showing the history of R9Setup activity, limited to 100 lines -added switch to R9Setup preferences to limit log file to latest session Version 5.99, 2/14/2005: -fixed R9 transmission of corrupted CRC when forwarding R6 protocol message Version 6.00, 2/25/2005: -fixed error in pass-through mode that disabled remote loading if remote had serial board in slot greater than slot 1 Version 6.01, 3/02/2005: -added code to SpSequenDial and SpeechDial to force connected state after dialing if program specifies that reporting to commence after delay from dialing using operator online flag>1 -altered table editor code to suppress non-printing characters when table rows presented -added some error checking in file loading from popup menu Version 6.02, 4/07/2005: -fixed improperly initialized mask in decoding modbus message type 15, preset multiple coils Version 6.03, 6/29/2005: -added touchtone sampling override control to the SpeechAccess module to allow TT sampling while on hook Version 6.04, 8/24/2005: -altered TotalizeTime module to use processor clock rather than RTC for time base Version 6.05, 11/17/2005: -added flag to comflags in ComSetup and code to suppress reply in R9 format if #ReplyRegs=0 (set in Poll module) -added received string length and new char trigger outputs to GetStringFromPort module -added implied delimiter feature to ParseString modules where setting delimiter to zero forces parsing every X characters -altered TotalizeFlow module to use processor clock rather than RTC for time base -added button to re-send the watch table to the RUG5/9 so table entries do not have to be re-entered Version 6.06, 1/17/2006: -altered FlowCipolleti module to correctly calculate rectangular weir flows -added ability to accept table entries as a file specified in the command line following the project configuration file to launch and load automatically Version 6.07, 3/05/2006: -added triggering on modbus messages to TriggerOnRcv module -increased module capability in compiler from 1000 to 2000 modules Version 6.08, 5/22/2006: -corrected TriggerOnRcv to correctly detect modbus receive addresses on modbus master receptions from a slave address Version 6.09, 8/11/2006: -altered handling of timers to use multiple 1.0 ms phases to minimize chance of missing an interrupt Version 6.10, 8/22/2006: -corrected background timers running slowly -added SyncManyValues module Version 6.11, 9/26/2006: -added R9Setup version number to R9Result log file -corrected analog input performing lowpass filtering when filter constant set to zero Version 6.12, 10/26/2006: -corrected quiescent controller error where it would trigger same message twice if change occured while timer running after ack Version 6.13, 12/06/2006: -corrected AI4/16 problem with some channels having zero or blank filter time constants effecting other channels Version 6.14, 1/18/2007: -altered GetStringFromPort module to regard either CR or LF as end of line marker. Version 6.15, 2/08/2007: -added function code 8, diagnostic echo, to modbus functions supported Version 6.16, 5/10/2007: -added ClearMemory function to I/O modules -corrected RUG5 menu on small LCD that gave a start program option when no program was present Version 6.17, 6/26/2007: -added test for blank lockout entries in LeadLagSeq4 module Version 6.18, 7/24/2007: -added address and flag queueing to TrigOnRcv module to improve message detection Version 6.19, 8/03/2007: -increased compact flash compatibility to 2GB -implemented sector read verification to secure compact flash sector reading -added DebugAid (factory applicability only) module Version 6.20, 8/08/2007: -fixed ComWatch module not referencing the correct buffer when CPU board specified as board to watch -made port 1 on CPU revert back to ASCII mode after pass-through program load to remote unit -added command line option to automatically launch R9Setup, pass program to remote unit through master unit, then terminate R9Setup Version 6.21, 9/18/2007: -added code to R9Setup to suspend the local R9 program during remote program loading, then automatically restart local program after remote program started Version 6.22, 9/28/2007: -added to NumericToString module the ability to create hex ASCII output strings in addition to straight ASCII strings Version 6.23, 02/05/2008: -added test for timer<0 to LeadLagSeq4 module and Mismatch module -added ability to send Hex-ASCII strings using SendStringToPort module -changed ComWatch module to clear buffer indices when trigger to clear buffers is asserted -added RTC watchdog to detect and restart RTC if seconds not changing for 5 seconds, or seconds>59 Version 6.24, 03/17/2008: -altered SpSequenDial to block declaration of connected state during timeout after dialout in the case where programmer has designated a delay before welcome message Version 6.25, 03/28/2008: -altered GetStringFromPort to only work if port is in mode 7 -added shadow buffer and associated outputs to ComWatch module Version 6.26, 04/07/2008: -added automatic load/compile/save/terminate option to command line function Version 6.27, 04/25/2008: Not released -added ComFailProcessor module to perform com fail determination and com success calculations -added SequenATPoll sequencer to interface with AT command type modems (serial to ethernet) -fixed setpoint processor so that a displayed setpoint selector number (0-9) out of range will be ignored Version 6.28, 05/01 2008: -added modbus TCP master and slave modes (effects ComSetup and PollModbus modules) -fixed modbus message type 1 so that 1st coil requested is not missed Version 6.29, 05/08/2008: -fixed lcdupdate flags to avoid conflict among ports Version 6.30, 05/30/2008: -fixed TrigOnRcv not triggering on replies to modbus polls -expanded PollModbus offset range from +/-8192 to +/-65535 -increased serial port range in R9Setup to 1..25 Version 6.31, 06/10/2008: not released -added error messages to R9Setup for inconsistent display choices -added ability to calculate R9CRC to SendStringToPort module Version 6.32, 07/25/2008: -added 'rings received' output to SpeechDialAnswer module -added PackValues module to pack multiple analog/integer values to an integer -added UnPackToFloat and UnPackToInt modules to extract values from a packed integer Version 6.33, 09/08/2008: -increased allowed module count per program from 2000 to 5000 -installed test to eliminate 'List index out of bounds' error when R9Setup initializes without a .ini file Version 6.34, 09/17/2008: -increased delay when sampling analog input channels to accommodate greater optoisolator delay Version 6.35, 09/25/2008: -Altered RX function so that if RX array destination address is same as unit address (instead of -1, Us), unit will accept data and reply. Version 6.36, 10/28/2008: -added TX identifier and protocol identifier previously missing from modbus tcp protocol Version 6.37, 10/31/2008: -altered method of generating time ticks so that programs with long cycle times do not have intermittent time stalls in certain modules (e.g., SequencerTimed) Version 6.38, 11/17/2008: -changed compiler so that it does not delete user progrem in RUG5/9 when OS reloaded -altered modbus processing to allow multiple polls in tcp messages -added ConstantList module -corrected long string constant truncation in R9 program load code Version 6.39, 12/02/2008: -added code to support new design of AO4 board (PN 807111, new A/D converter) Version 6.40, 02/18/2009: -increased size of Basic IF statement stack to avoid crash in instances of too many IF statements with errors -corrected improper handling of serial port numbers greater than 9 -fixed problem with RUG5 rebooting in instance where user, when changing a setpoint, hit the CLEAR key immediately followed by the ENTER key -increased foreground watchdog count from 10 to 20 (tenths of a second) Version 6.41, 08/20/2009: -altered AlarmMismatch module to set timer to SP if timer<0 -corrected module editing so that user notes not lost and that change to notes evokes prompt if attempt to abandon module -added ladder coil timers to visible integer database -altered compiler to issue error if attempt to install wrong type input from database or missing module reference -corrected pager touchtone string designation as 'string' in module properties list -added code to detect missing analog board EEPROM and skip analog cal installation if so -increased background watchdog count limit from 10 to 20 Version 6.42, 09/11/2009: -removed special CTRL R resynchronization for port 1 to eliminate conflict with ModbusTCP code Version 6.43, 11/30/2009: -added telemetry array deleting, copying, cloning and importing -corrected erroneous error messages when input variables of unexpected type present in MakeString and SendStringtoPort modules (whose inputs can accept any type of data) -added test of string length specifier in modules to eliminate program crash in event that programmer used database variable for string length input -corrected error in MakeString misregarding '@@@.@@' as pointer to database entry Version 6.44, 01/07/2009: -added spurious interrupt handler to diminish random resets, pointed all unused interrupts except bus errors to default handler -added boot revision readout to main menu -changed compiler to erase user pgm when loading OS Version 6.45, 08/03/2010: -extended telemetry addresses to 65535 -added support for R9 FastDI8 board; DIFastcounter module -fixed problem with erroneous cell entry on next array click after deleting or adding row of telemetry array Version 6.46, 08/18/2010: -changed FastDI8 module outputs to floating point -corrected Modbus error due to expanded address change Version 6.47, 09/07/2010: -added ability to dump logmany modules to TLM channel in compressed format with up to 255 loggers per unit -corrected DumpLogToPort sending statuses at beginning of datafield and in reverse order instead of where designated in module Version 6.48, 09/13/2010: -added CommandSerialDevice module supporting device initialization using strings such as the Hayes command set Version 6.49, 10/18/2010: -added ability for PulseToFlow module to interface with Fast DI8 board Version 6.50, 01/27/2011: -corrected AI module incorrectly handling negative span and offset values Version 6.50.1, 02/25/2020 -R9SetupD GUI optimized to run on Windows10