Maximize the Notepad window to read this file more easily. ------------------------------------------- Release Notes: SNAP-LCE Controller Firmware ------------------------------------------- These release notes apply to the following Opto 22 product(s): SNAP-LCE controller ====================================================================== SNAP-LCE Controller Firmware R6.1c September 29, 2005 ------------------------------------------------------------------------------ SNAP-LCE Controller Firmware R6.1c adds support for the following SNAP I/O modules: SNAP-AIARMS-i SNAP-AIVRMS-i SNAP-AILC SNAP-AOA-23-iSRC This update also incorporates the following changes: * Fixed problem where the brain used an incorrect scaling factor, which would cause an incorrect reading from an RTD. * Fixed problem where multiple incoming Modbus packets were not being handled correctly, causing the first packet to sometimes not be received. * Fixed some problems with 64-bit integers where part of a passed-in value was not handled correctly. * Fixed a problem with ioControl timers where they could be set to a very large value, (in the millions of mSec) if the system clock timer rolled over while the timer was active. The system clock tick counter was increased from 32 bits to 64 bits. Now any potential rollover problems would happen after the controller has run for roughly half a billion (584,542,046) years. Previously the timer problem could happen every 49.71 days. * Fixed an Ethernet I/O re-enable problem. If an ethernet I/O unit was powered down then powered back up while a strategy was running, I/O re-enable commands would not send point config information to the brain. Unless the brain had its configuration stored in flash, access to any point would set / get only the IVAL. =============================================================================== SNAP-LCE Controller Firmware B6.1b June 15, 2005 ------------------------------------------------------------------------------ SNAP-LCE Controller Firmware B6.1b was made available briefly as a beta version to a small number of testers, but this version was never formally released. =============================================================================== SNAP-LCE Controller Firmware R6.1a March 16, 2005 Enhancements ------------ * Support for high-density digital input and output modules. Opto 22 high- density digital modules include the SNAP-IDC-32, SNAP-ODC-32-SRC, and SNAP- ODC-32-SNK. Each of these modules provides 32 digital input or digital output points in one SNAP module, for up to 512 digital points in one SNAP rack. For more information on SNAP high-density digital modules, see Opto 22 form 1556, the SNAP High-Density Digital Module data sheet. Bug Fixes --------- * Corrected a problem where the following OptoScript for/next loop used to loop once in error: x = 0; a = 0; b = -1; for n = a to b step 1 x = x + 1; next The same error occured if 'a' was less than 'b' and you were stepping in a negative direction. In these situations it now will not loop. If you are using this type of loop, check your code to make sure it still works. * Corrected a problem where the control engine would reset when using certain parts of ioControl's debugger for too long. * Fixed a problem where the ioControl commands Stop Timer and Continue Timer weren't working for subroutine local variables. * Lifted the restriction on defining new variables and commands after running a strategy containing subroutines. This corrects a problem that occurred when using OptoTerminals that ran programs displaying strings from a strategy that uses any subroutines. * Fixed a problem that occurred when performing a string function that required two strings, (for example, "String Equal?", "Append String to String", "Get Substring", etc.). If the same string was passed as both the source and the destination, one of the string descriptors was inadvertantly left on the data stack. Each time this happened, the data stack would build down, until it reached a point where it would cause a bus error, which would cause the brain to reset. =============================================================================== SNAP-LCE Controller Firmware R6.0d February 15, 2005 Bug Fixes --------- * Fixed a problem where writing to multiple memory map fields at once would sometimes incorrectly process subsequent fields. This behavior resulted in diverse effects. For example, if you changed the stream interval using the ActiveX command SetStreamConfiguration, the new value would be copied into the memory map but the actual stream interval would not change. * Fixed a problem converting float values to 64-bit integers, and 64-bit integer values to floats. This could result in math errors and incorrect values. * Fixed a problem with pointers using SNAP Mixed 64 Simple I/O (SNAP-ENET-S64). Specifically, moving an S64 IO Unit from a pointer table into a pointer variable returned the error “-29 Wrong Object Type”. * Fixed Modbus support to correctly change between degrees F and degrees C. * The ioControl command Set Analog Filter Weight now works correctly. =============================================================================== SNAP-LCE Controller Firmware R6.0c December 22, 2004 Bug Fixes --------- * The number of email messages that can be held in the email queue has been increased from 5 to 128 to reduce the probability that messages are dropped when the queue fills up. * Two string-handling problems with the comm handle "find:" command were fixed. * A problem with initializing comm handles which were configured for "initialize on download" was fixed. With this problem, a situation could occur where a comm handle couldn't be opened or closed; a -47 error (already open) would occur if you tried to open the comm handle, and a -52 error (not yet opened) would occur if you tried to close it. * A serial port problem was corrected where parity and stop bits weren't being initialized properly on open. =============================================================================== SNAP-LCE Controller Firmware R6.0b October 26, 2004 Bug Fixes --------- * A bug preventing the SNAP-LCE controller from sending a BootP request has been fixed. =============================================================================== SNAP-LCE Controller Firmware R6.0a September 27, 2004 ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** The commands Receive String and Transmit/Receive String have changed slightly. If you use these commands, you may need to adjust your strategy’s logic to allow for this change. Previously, Receive String and Transmit/Receive String would return a zero (success) when only part of the transmitted string was received before a timeout. These commands now return an error (-23) in this situation, so you know the entire string was not received. All received characters are still placed in the destination string; to see how many characters were received, use the Get Length command on the destination string. ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** Enhancements ------------ * The control engine firmware has been improved to more efficiently transmit characters via the onboard serial ports (using serial communication handles). * The handling of numeric variables that are too large has been improved. In most cases, ioControl prevents you from entering invalid numeric literal values. If an invalid value does occur (for example, from a strategy created with an earlier version) you will receive a -13 overflow error when trying to download the strategy. In previous versions, some invalid values not corrected by ioControl could be converted to a maximum value for that variable, for example, 3.402823e+038 for a Float Variable, or 2139095039 for an Integer 32 Variable. * The default timeout on TCP communication handles has been increased from one second to four seconds. * Support for Integer 64 variables has been added to several Convert String commands, including Convert Number to Formatted Hex String. * The ioControl message queue in Debug mode is now more robust and includes additional information, such as the IP address of any I/O unit listed. The message queue and the command Copy Current Error to String now also include the subroutine name, if applicable. * In previous firmware versions, communications to an I/O unit were opened only when the unit was enabled. In R6.0a, communications are opened as soon as the strategy is run, whether or not the I/O's "Enable Communication" box is checked. If an I/O unit is unreachable by the controller's network configuration, a -412 error will be placed in the error queue immediately, with no timeout delay. If an I/O unit is configured correctly, but unreachable because of a physical issue (e.g., unit turned off, bad cable, etc.), an error will be received only if you attempt to enable communications to the I/O unit. Bug Fixes --------- * Some commands that did not handle error conditions correctly have been fixed. For example, a command might have given unexpected results when passed a null pointer, an invalid index, an invalid length, or a string not long enough to hold the command's result. In some cases, if the command was called many times, it could cause the control engine to run out of resources and reset. * Some commands that return result codes were returning more or different error codes than those documented for that command. These error codes have been corrected or added to the ioControl Command Reference and the online Help. IMPORTANT: In some cases, these changes to error codes may require a change to your strategy. Instead of checking for a specific error code, we recommend checking for return codes less than zero. All error codes in ioControl are negative numbers. * Several issues with Integer 64 values have been corrected. For example, the command Transmit Numeric Table, when using a Integer 64 table, would mask the four most significant bytes of each Integer 64 element. * The default timeout for FTP communication handles is now 30 seconds, as documented, rather than 30000 seconds. * The Move command now works as documented with respect to Up Timers (the value is changed and the timer immediately starts from zero). In previous versions, a Move (or assignment in OptoScript) would just change the value but not start the timer. * Problems with the following commands have also been corrected: - Write String Table To I/O Unit Memory Map - Read String Table From I/O Unit Memory Map - Get Name of Chart Causing Current Error - Get Name of I/O Unit Causing Current Error * The command Set Analog Filter Weight now correctly sets the weight, rather than setting the point's output value. * The Command Running? condition now functions correctly. * The Transmit Pointer Table and Receive Pointer Table commands now work correctly with TCP communication handles. In previous versions, the Transmit command did not actually place data on the wire, though it returned a zero (success). In some cases the command caused a reboot. * Previous firmware version did not indicate an error if the command Write I/O Unit Configuration to EEPROM failed (e.g. if the I/O unit was not turned on or connected). In R6.0a, errors and warnings are placed in the error queue. Because some I/O units take longer than usual to store configurations to EEPROM (depending on the I/O unit, it could be more than 10 seconds), you may see timeout errors or warnings in the queue, even though the configuration was successfully stored to EEPROM. Whatever method of storing settings you use, it's best to double-check that your parameters were successfully stored. =============================================================================== SNAP-LCE Controller Firmware R5.1g July 30, 2004 Bug Fixes --------- * Corrected a checksum error in LCP terminate-request packets that prevented orphaned PPP links from being correctly terminated at brain powerup or reboot. =============================================================================== SNAP-LCE Controller Firmware R5.1f May 24, 2004 ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** OptoOPCServer R5.0 and earlier is NOT compatible with SNAP-LCE controller firmware R5.1. You must use OptoOPCServer R5.1 or newer with firmware R5.1. ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** Bug Fixes --------- * A command was removed in SNAP-LCE controller firmware 5.1e that was needed by older (1.x) versions of ioDisplay. This command has been added back to firmware 5.1f so these older versions of ioDisplay will still function. * Fixed a problem which prevented the simultaneous use of both on-board serial ports by ioControl. Now both ports can be used at once via communication handles in your ioControl strategy. =============================================================================== SNAP-LCE Controller Firmware R5.1e April 23, 2004 SNAP-LCE controller firmware R5.1e was made available briefly as a beta version to a small number of testers, but this version was never formally released. Bug Fixes --------- * Fixed the analog filter weight configuration. Previously, the command only set the point's output value. * Fixed point watchdog configuration so that watchdog configuration data is always sent. Previously, watchdog configuration was only sent if the point was to be a watchdog; if the point was not a watchdog, nothing was sent. This meant that if a point was configured as a watchdog, then was subsequently configured not to be a watchdog, no configuration was sent. This would leave the point in its previous (watchdog) state. * Fixed a bug that prevented the ioControl command "Send Communication Handle Command" from working. This command is most commonly used with FTP communication handles. * Fixed the ioControl command "Receive N Characters" to return 0 if N = 0. Previously, this behavior wasn't consistent across drivers: for the TCP driver this command would return 0 if N = 0, but for firmware R5.1c & R.1d it would return a -58.) * Fixed "Receive N Characters" to work correctly when N < number of characters ready to be received. For example, previously if you asked for 50 characters but there were only 8 ready to be received, no characters would be received and no error would occur. With this fix, you would receive the 8 characters and an error code of -39 to indicate the 50 characters you requested weren't available. * Fixed several problems with the error queue. Errors were sometimes misreported when inspecting a controller, for example if any errors had been popped off the top. Also fixed errors with custom error messages with "Add Message to Queue" and "Copy Current Error to String". * Fixed some problems with clear latch commands (also min/max for i/o units that support analog), mostly related to incorrect handling of ivals. In some cases we'd try to read/update xvals even though a point was disabled, for example. * Fixed "Convert IP Address String to Integer 32" which wasn't initializing something correctly, sometimes would return an incorrect value. * Fixed "Move Numeric Table to Numeric Table" which wasn't moving anything. =============================================================================== SNAP-LCE Controller Firmware R5.1d March 26, 2004 ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** OptoOPCServer R5.0 and earlier is not compatible with SNAP-LCE controller firmware R5.1. You must use OptoOPCServer R5.1 or newer with firmware R5.1. ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** Bug Fixes --------- * Fixed a problem where persistent string variables were not correctly retained after cycling power to the brain. * Fixed a bug where PPP initialization would sometimes fail. =============================================================================== SNAP-LCE Controller Firmware R5.1c March 19, 2004 ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** OptoOPCServer R5.0 and earlier is not compatible with SNAP-LCE controller firmware R5.1. You must use OptoOPCServer R5.1 or newer with firmware R5.1. ********** IMPORTANT ************ IMPORTANT *********** IMPORTANT *********** Enhancements ------------ * Added COM port support so users can use the built-in COM ports on the SNAP- LCE controller via a strategy. * Added a DNS Update client with PPP interface only. This client updates the hostname-to-IP-address association on a DNS server when the IP address for the local PPP interface changes. Note that this feature does not include the ability to resolve host names to IP addresses. * Added logic to the PPP protocol to allow use of LCP Echo Request/Reply with devices having PPP stacks that don't implement that feature. It now treats a code-rejected LCP Echo Request as a successful reply. Bug Fixes --------- * Fixed a problem where the "Get Pointer From Name" command didn't work for persistent tables. * Fixed a bug related to receiving strings where one character too many would be received under certain conditions. * Fixed a bug where the "delete" command was not properly closing a communication handle for the file driver. This could cause the communication handle to not work correctly if if you tried to use it after using the "delete" command. * Fixed a problem which would affect ioDisplay and the OptoOPCServer trying to retrieve persistent variable data. * Corrected a problem with changing the value of a string when using ioControl's debugger. Symptoms of this problem could include: 1) No change to the string; 2) Only part of the input data would be placed into the string; 3) Too much data would be placed into the string, possibly overwriting other data in memory. * Corrected problem where the "Verify Reverse CRC-16 on String" command wasn't initializing the string starting index, thus causing a potential bus error. * Corrected the CCITT calculation used for the "Verify Reverse CCITT on String" command. * Corrected problem where, if a bad index was passed, "Get Nth Character" was returning error code -42 instead of -12 as stated in the documentation. * Fixed bug using flash memory. If the first of a page of data was already in flash, none of the page was written to flash, causing a failure if the second half of the page differed from what was in flash. This problem was discovered by a customer trying to save a binary file with many 0xFF chars in a row. * Fixed a problem where counters would get cleared by ioControl after an Ethernet timeout. Specifically, counters would be reconfigured, even if already configured correctly, thus clearing any counts already present. =============================================================================== SNAP-LCE Controller Firmware R5.1b February 13, 2004 SNAP-LCE controller firmware R5.1b was made available briefly as a beta version to a small number of testers, but this version was never formally released. =============================================================================== Initial Release SNAP-LCE Controller Firmware R5.1a November 21, 2003 ====================================================================== 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. Email: support@opto22.com Phone: 800-TEK-OPTO (835-6786) 951-695-3080 Fax: 951-695-3017 Web: support.opto22.com 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) - Control engine firmware version - Any specific error messages seen