===================================================================== README: ioControl Version R7.0c 1-5-2006 ===================================================================== Maximize the Notepad window to read this file more easily. Contents: ========= New Features, Enhancements, Bug Fixes, and other notes Uninstallation of this Product How to Get Help ===================================================================== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + New Features, Enhancements and Bug Fixes: ----------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOTE: See the release notes for the SNAP Ultimate I/O firmware for changes at the firmware level. For Version R7.0c (1-5-2006) : Bug Fixes: ---------- [PRO] KB 49424 - The "Set Analog Load Cell Fast Settle Level" and "Set Analog Load Cell Filter Weight" commands change to the "Set All Target Address States" and "Get Target Address State" commands, respectively, when OK is clicked from the Add Instruction dialog window. Also, the code will not compile. For Version R7.0b (12-22-2005) : Bug Fixes: ---------- [PRO] ioControl would crash when opening an OptoControl strategy that called a subroutine. When exporting I/O units, it was possible that the incorrect IP address would be written to the OTG file. This was most likely to happen after previously importing the configuration from an ioManager-generated OTG file. For Version R7.0a (12-19-2005): New Features: ------------- [PRO] Added the ability to import OptoControl strategies. [PRO] Added support for serial mistic brains. [PRO] Added secondary target addresses for Ethernet-based I/O units. [PRO] Added I/O units, digital points, analog points, and pointer tables as possible passed-paramater types for subroutines. Pointer variables were added as a possible local variable type for subroutines. Added support for the following modules (see also R6.1c): SNAP-AIARMS-i SNAP-AIVRMS-i Enhancements: ------------- Added an option to control if the active block is always visible when stepping through a chart. The behavior was changed in R5.1a. This option lets you choose old or new behavior. The option is under Configure -> Options -> Debugger. When exporting a chart or copying blocks, items only within OptoScript blocks are now included. Bug Fixes: ---------- When entering debug mode, existing breakpoints in the control engine were not being displayed in ioControl. KB 1428 - When inspecting an action block while in Online mode, the AND/OR operators would incorrectly appear as an option within the window. These operators are only for a Condition block. KB 48089 - In the Edit PID Loop dialog, the range checking for forced output values was incorrect. KB 47922 - In commands, ioControl would allow the user to enter an integer literal that was out of range. A -13 overflow error would occur when the strategy was downloaded to a controller. Invalid numberic literals could be entered in the Add Instruction dialog. ioControl would crash if an ActiveX control was not loaded. The dialogs affected are View PID Loop and Inspect Table, both in the debugger. When stepping through OptoScript blocks whith 'case' statements, the 'break' keyword had incorrect line information. For Version R6.1c (7-28-2005): New Features: ------------- Added support for the following modules: SNAP-AOA-23-i SNAP-AIMA2-i modules. SNAP-AILC module. Added the following commands: Set Analog Load Cell Fast Settle Level Set Analog Load Cell Filter Level Enhancements: ------------- UIO now supports up to 32 PID loops. For Version R6.1a (2-14-2005): New Features: ------------- Added support for new HDD modules. Bill of Materials tool. Added the following commands: Get HDD Module States Get HDD Module On-Latches Get HDD Module Off-Latches Get & Clear HDD Module On-Latches Get & Clear HDD Module Off-Latches Get All HDD Module States Get All HDD Module On-Latches Get All HDD Module Off-Latches Get & Clear All HDD Module On-Latches Get & Clear All HDD Module Off-Latches Clear HDD Module On-Latches Clear HDD Module Off-Latches Get HDD Module Counters Get & Clear HDD Module Counters Get & Clear HDD Module Counter Set HDD Module from MOMO Masks Turn On HDD Module Point Turn Off HDD Module Point Enhancements: ------------- Bug Fixes: ---------- In the ioControl debugger, when changing the value of a string variable or string table element, strange behavior could happen if another application (such as ioDisplay) was also communicating with the control engine's host port. The following OptoScript for/next loop would execute once, when it should not have looped at all. This would result with x being 1 when it should be 0. x = 0; for n = 0 to -1 step 1 x = x + 1; next For Version R6.0b: Bug Fixes: ---------- In the debugger, if an analog point's XVAL was out of range, it was not possible to change the IVAL. You would get an error that the XVAL was not valid. This bug was introduced in version 5.0. In the debugger, in binary view mode, it was not possible to change the bits of an integer 64 variable. When adding or editing analog temperature points, the dialog showed their units as being Celsius, even if the I/O unit was set Fahrenheit. This was a display problem and did not affect the compiler or debugger. When copying a block from a chart into a subroutine, it was possible to copy types that are not allowed in subroutines. This included pointer variables, pointer tables, and PID loops. This would causes various types of strange behavior, including items showing up at the top of the strategy tree and problems when running the strategy on a device. ioControl will now check for this when pasting blocks into a subroutine. I/O units, points and charts were already being checked. The following commands did not allow points which were on a Mixed 64 I/O unit: Calculate & Set Analog Gain Calculate & Set Analog Offset Get & Clear Analog Maximum Value Get & Clear Analog Minimum Value Get Analog Maximum Value Get Analog Minimum Value IVAL Set Analog Point Set Analog Filter Weight Set Analog Gain Set Analog Offset Set Analog TPO Period For Version R6.0a (10-1-2004): New Features: ------------- Added subroutines to allow greater flexibility in building flowcharts. Added the following commands: Set Analog Filter Weight Float Valid? Get Available File Space Enhancements: ------------- I/O units may now share an IP address if their ports are different. Bug Fixes: ---------- Digital points in slot #63 with the watchdog turned on no longer cause an overflow error when downloading the strategy. Using timers with mathematical and comparison commands now reliably returns accurate results. Some mathematic and comparison results were sometimes inaccurate when used in Action and Condition blocks with commands such as Add, Subtract, Divide, Multiply, Maximum, Minimum, Equal?, Greater Than or Equal?, Greater?, Less?, Less Than or Equal?, Not Equal?. I/O unit watchdog timeout values are now sent to I/O units only when configured to do so. ioControl no longer negatively affects mouse behavior in other running applications, as it sometimes did previously. The effect was noticed with a two-wheel mouse, but could have cuased other problems, too. A PID loop with a setpoint type coming from aother PID's output is now correctly compiled. ioControl no longer tends to lock up while inspecting PID loops with unplugged input points. A new version of the iPlotLibrary.ocx plot control fixed the problem. The "Command Help" button in an OptoScript dialog box will now reliably bring up the Command Reference Help, even if the command is completely highlighted. The I/O Unit Inspect dialog now correctly displays all bits from the last letter in the version. For instance, an Ethernet I/O unit with a R3.0q kernel was displayed as "R3.0a". The following commands now compile correctly when using D64-type brains as a parameter. Read Number from I/O Unit Memory Map Write Number to I/O Unit Memory Map Numeric Table Element Bit Test Get I/O Unit as Binary Value Bit Clear Bit Rotate Bit Set Bit Test Bit On? Bit Off? The IVAL Set Analog Point command now compiles correctly when an integer is used as the source value. Using the AddMessageToQueue command in an OptoScript block no longer causes a download error. For Version R5.1b (2-11-2004): Bug Fixes: ---------- It was not possible to add PID loops to Ethernet I/O units created in pre-5.1 versions of ioControl. This version will both fix and prevent the problem. A bug fix in R5.1a regarding 'for' loops with a negative step was not correct. The command "Convert Number to Hex String" didn't work correctly for Integer 64s. For Version R5.1a (12-1-2003): New Features: ------------- PID loops Added support for the SNAP-ENET-S64 product, known in ioControl as SNAP Mixed 64 Simple I/O. Added the following commands: Copy Current Error to String Add Message to Queue Get Severity of Current Error Get PID Input Get PID Current Input Get PID Setpoint Get PID Current Setpoint Get PID Feed Forward Get PID Output Get PID Gain Get PID Tune Integral Get PID Tune Derivative Get PID Feed Forward Gain Get PID Max Output Change Get PID Min Output Change Get PID Input Low Range Get PID Input High Range Get PID Output Low Clamp Get PID Output High Clamp Get PID Scan Time Get PID Forced Output When Input Under Range Get PID Forced Output When Input Over Range Get PID Mode Get PID Configuration Flags Get PID Status Flags Set PID Input Set PID Setpoint Set PID Feed Forward Set PID Output Set PID Gain Set PID Tune Integral Set PID Tune Derivative Set PID Feed Forward Gain Set PID Max Output Change Set PID Min Output Change Set PID Input Low Range Set PID Input High Range Set PID Output Low Clamp Set PID Output High Clamp Set PID Scan Time Set PID Forced Output When Input Under Range Set PID Forced Output When Input Over Range Set PID Mode Set PID Configuration Flags Disable Communication to PID Loop Enable Communication to PID Loop PID Loop Communication Enabled? Set Simple 64 I/O Unit from MOMO Masks IVAL Set Simple 64 I/O Unit from MOMO Masks Enhancements: ------------- Info and warning messages have been added to the error queue. The Add Module dialog has been improved. Dialogs in the Configurator now know if a change has actually been made when the OK button is used to close the dialog. This should help prevent many cases of inadvertently making a change that would then require a download before entering Debug mode. In the debugger, the "Step Line" and "Step Block" buttons have been replaced with "Step In", "Step Over", and "Step Out" buttons. The "Command Help" button in the OptoScript dialog is now smarter. Keyboard and mouse standard shortcuts were added: When a block is selected, the F2 key brings up the Name Block dialog. When a flowchart window is selected, holding the CTRL key while scrolling the mouse wheel will change the zoom setting. While stepping through a chart, if the active step block is not visible, it will be scrolled into view. Added the ability to clamp analog output points. When archiving a strategy to a control engine and then uploading the archive back to a PC with ioTerm, you can now go directly into debug mode without downloading. Resolved several issues with idle session timeouts. Bug Fixes: ---------- In a flowchart, making multiple object selections with the Shift key was not working. Some combo boxes in the Find and Replace dialogs were not wide enough to show all of their content. For SNAP-AOA-23 and SNAP-AOV-25 modules, the "Custom..." scaling button was incorrectly enabled in the Edit Analog Point dialog. Communication Handles were not being created when Action and/or Condition blocks were pasted between strategies. In watch windows, pointer variables were not displaying properly. When opening a chart window, it was possible that it would be placed outside of the viewable area. String Tables with long initialization strings could cause download errors. String Tables using the "Initialize on strategy download" option were not being initialized correctly. In OptoScript blocks, some float literals were being truncated when compiled. For instance, 5.335004e-7 was being truncated to 0.000001. In OptoScript blocks, 'for' loops with a negative step did not work properly. They did one less iteration than they should. Adding I/O points on-the-fly would not work if a type-mismatch occurred. For Version R5.0a (8-1-2003): New Features: ------------- Added support for the SNAP-UP1-M64 product, known in ioControl as SNAP Mixed 64 Ultimate I/O. Two new communication handle drivers: "file" and "ftp". Added the following command(s): Get Type From Name Get Value From Name Send Communication Handle Command Transfer N Characters Convert IP Address String to Integer 32 Convert Integer 32 to IP Address String Erase Files in Permanent Storage Save Files To Permanent Storage Load Files From Permanent Storage Set Mixed 64 I/O Unit from MOMO Masks IVAL Set Mixed 64 I/O Unit from MOMO Masks Bug Fixes: ---------- In some situations, unnecessary downloads were being required when changing to debug mode. To reproduce: 1. Download a strategy 2. Go to Config mode 3. Change a chart (like adding an empty block) 4. Go to Debug mode. It will do a normal download 5. Go to Config mode 6. Close the strategy 7. Open the strategy 8. Go to Debug mode. It will require a download, even though it shouldn't. For Version R1.0d (4-4-2003): Bug Fixes: ---------- Duplicate variables could be created in the strategy database when removing a variable from two or more charts and then deleting the variable. ===================================================================== For Version R1.0c (8-15-2002): New Features: ------------- Added the following command(s): Get End-Of-Message Terminator Set End-Of-Message Terminator Clear Communication Receive Buffer Compare Strings Move to Numeric Table Elements Move to String Table Elements Added the ability to make a "control engine download file". This makes it easy to download a compiled strategy for a specific control engine using ioTerm. Enhancements: ------------- Object selection and interaction using the mouse is now much closer to Windows standards. In the debugger, controller busy errors will now be retried several times before posting a message. In the debugger, the error field in the status bar is now highlighted red and will display the Inspect Controller dialog when clicked. An "A_" is no longer prepended to the beginning of a name when naming an object. The name will be checked either when the focus has changed or the dialog is closed. When adding an I/O unit, Ultimate I/O is now the default, not Ethernet I/O. The time it takes to record a variable or I/O name change has been decreased in large strategies that have charts without OptoScript blocks. The time it takes to initialize a table has been greatly improved. Bug Fixes: ---------- Pointer variables using the "Initialize on strategy download" option were not being properly initialized. In strategies that have OptoScript blocks, the Find and Replace dialogs were occasionally having problems and showing the "Could not open OptoScriptTemp.txt for the OptoScript compiler" error message. OptoScript blocks with unterminated comment blocks (i.e. /* and */ ) would cause the OptoScript lexical analyzer to enter an incorrect state, causing unexpected behavior. When moving an I/O point referenced in an OptoScript block to a different location, the reference count for the item would become incorrect. The debugger's string table inspect dialog was not properly displaying tables that were wider than 127 characters. Focusing issues in the "Add Instruction" dialog have been addressed. The Find and Replace dialogs were not finding instances of communication handles in OptoScript blocks. When using the Replace All button in the Replace dialog to replace items in OptoScript blocks, neither the old or new items would have their reference counts updated. ===================================================================== For Version R1.0b (11-21-2001): New Features: ------------- Added an "Inspect Communication Variable" dialog for inspecting communication handles in the debugger. Added a "Command Help" button to the OptoScript editor dialog. Added a "Strategy Information" menu item for displaying the open strategy's file name and path. Added the following commands: Receive String Table Receive Pointer Table Transmit String Table Transmit Pointer Table Get Pointer From Name Enhancements: ------------- The "Inspect Control Engine" dialog has been improved. The "Persistent RAM" and "Revision Time" fields are new. The "Inspect Control Engine" dialog now uses a different method for determining the communications loop time. It now displays the time taken for one single transaction, rather than several. The "Move Numeric Table to Numeric Table" command now checks for valid table lengths and indexes. Automatically saving a strategy to flash memory after making an online change has been enabled. The commands "Receive Numeric Table" and "Transmit Numeric Table" now support Integer 64 Tables. Bug Fixes: ---------- The "Move To" feature in the "Configure I/O Points" dialog was incorrectly allowing points to be moved to the wrong location. The "Select Continue Block Destination" dialog was not showing OptoScript blocks. Syntax errors in OptoScript code involving a table would not display the correct error line number. String assignments in OptoScript would not work correctly if the same item was on both sides of the assignment operator. It was possible to copy or import a chart with a name that already existed in the strategy database. Importing charts with I/O units in them could lead to multiple I/O units having the same address. An added I/O unit will now have an initial IP address of 0.0.0.0. When importing charts or copying block, I/O points that needed to be added were not being added in the proper location. When importing charts, integer 64 variables and tables were not being matched correctly. In the debugger, setting a string variable or table element to be empty would cause the control engine to lock up. Any OptoScript or Instruction dialogs opened because of line stepping were not being automatically closed when leaving the debugger. The command "Get Nth Character" was returning a -42 error for a string with non-printable characters even though the index was valid. The command "Convert IEEE Hex String to Number" was not always returning the correct value. For example, the manual uses the example of 418E666 converting to 17.8, but the command was returning 18 instead. ===================================================================== Release Notes For Version R1.0c: Known Issues: ------------- + Problems with attempting to manually enable an I/O unit that is currently unavailable (e.g. no connection or power off). ===================================================================== Uninstallation of this Product: ------------------------------ A utility is provided to uninstall this product. The utility will remove all registry entries and files previously installed. Exceptions to this are: - Previously configured control engines are not removed from the registry. - The installation directory tree is not removed if any user-created files exist in it. - The program folder or group is not removed if any icons have been added by the user. ====================================================================== How to Get Help --------------- If you have any questions about this product, contact Opto 22 Product Support Monday through Friday, 8 a.m. to 5 p.m., Pacific Time. E-mail: support@opto22.com Phone: 800/TEK-OPTO (835-6786) 951/695-3080 Fax: 951/695-3017 Bulletin Board (BBS): via the Internet at http://bbs.opto22.com via dialup modem at 951/695-1367 (24 hours a day, 7 days a week) When accessing the BBS via dialup modem, use the following modem settings: - No parity, 8 data bits, 1 stop bit - ASCII or ANSI display protocol - Baud rates up to 28,800 - Z-modem protocol for uploads and downloads Please provide the following information about your system to the Product Support engineer: - Version of this product - PC configuration (type of processor, speed, memory, operating system) - A complete description of your hardware system, including: - jumper configuration - accessories installed (such as daughter cards) - type of power supply - types of I/O units installed - third-party devices installed (e.g., barcode readers) - Controller firmware version - Any specific error messages seen ===================================================================== Visit our web site at http://www.opto22.com =====================================================================