Release Notes PN 93000464 for the 82000770_F firmware November 23, 2005 INTRODUCTION This is a full release of the firmware (EOS) for the Digi One IAP and Digi One IA RealPort device servers. This product supports various intlligent protocol bridging including the new cross protocol bridging and Ethernet-to-Ethernet bridging. The hardware has isolated ground, DIN-rail mount, and transient surge protection. WARNING: Requires POST 82000779_D or higher. Users of firmware "D" or "D1" *MUST* upgrade their POST Users of firmware "E" or "E1" already have the correct POST installed. SUPPORTED PRODUCTS Digi One IAP Digi One IA RealPort (renamed Digi One IAP with Release "E") ENHANCEMENTS - Added an IA summary to the Industrial Automation web page. - Remote AB Masters can use Typed Rd/Wr and Word Range Rd/Wr to read Modbus slaves. This includes the PLC5 & PLC3 system address, and ASCII addressing. Has been tested with ControlLogix and SLC5/05 issuing PLC3/PLC5 commands. Has not been tested with PLC5. - Setting the slave target=PLC5 causes protocol bridging to send Typed Read/Write (subfunc 68/67) with PLC5 style binary system addresses. Has been tested against ControlLogix and SLC5/05. Has not been tested with PLC5. - Ethernet/IP route or network destination is now forced to ControlLogix-friendly settings, including connect=passive and idletimeout=5sec. - Ethernet/IP route or network destination uses one-half the idletimeout setting as the negotiated CIP Requested-Packet-Interval (RPI). This prevents premature closure of outgoing connections. So for example, a user desiring to poll a remote ControlLogix or NetENI once every 30 seconds should set idletimeout to 60 seconds or more. - Added support for the CSPv4 REMOTE header as sent by SLC5/05 MSG blocks. Previously only supported LOCAL header, which 5/05 did NOT allow setting the SRC/DST bytes in. - Added protocol bridging support for undocumented SLC500 subfunctions 0xA1 and 0xA9 which use 2-address fields instead of the 3-fields of normal 0xA2/AA. RSLinx "Data Monitor" expects to use these. - Per user request, swapped default "Message Source" to be network-based instead of serial-based. - Removed the option to modify a configuration with the IA Web Wizard - this allowed users to break valid configurations. Now, the entire IA configuration is reset every time the wizard is run. - Added support for fixed source and destination bytes in Rockwell protocols. This is required for some DH485/DH+ bridges. These are set by CLI (telnet or serial) access only. - Secure RealPort now allows a user password to be set in both the Digi One IAP and the host driver. This enables strong 128-bit AES encryption with protected authentication. - ASCII Import (Receive Only mode) now allows more than 50 messages to be queued. - IA Custom protocol data buffer size is now user settable. Previously was fixed at 530 bytes regardless of protocol requirements. Now can be set from 32 to 8190 bytes. - ASCII Import is now called just "ascii" since we both import and export to ASCII device. "protocol=ascii_import" is still accepted. - The ASCII driver has been augmented with some new "functions": * writing ASCII to Modbus 4x00Y01 or AB N1Y (where Y=0-9 selects buffer 0-9) works as before to either load a poll string (half duplex) or force an ASCII send (xmt). Reading returns the last data loaded/sent. * NEW: writing ASCII to Modbus 4x01Y01 or AB N2Y (Y=0-9 selects buffer 0-9) loads a FORMAT string such as "depth:%02d". It follows "C" printf style for %d, %x, and %c. At most 4 variables are supported. Supported in both half-duplex and xmt modes; nothing is sent out the ASCII port. Reading returns the last data loaded/sent. * NEW: writing 1 to 4 integers to Modbus 4x02Y01 or AB N3Y (where Y=0-9 selects buffer 0-9) causes the integers to be APPLIED to the format string loaded above and the result to be either sent out the ASCII port (for xmt) or stored in the poll buffer (for half-duplex). Incrementing the address by 1 implies 32-bit integers are being written. So writing four 16-bit integers to AB N34:0 implies these represent four 16-bit integers to format against buffer 4. However, writing four 16-bit integers to AB N34:1 implies they represent two 32-bit integers. Low-Word assumed first for both Modbus and AB protocols - this is consistant with Modicon 984 PLC and Rockwell PLC behavior. * NEW: writing ASCII to Modbus 4x03Y01 or AB N4Y (Y=0-9 selects buffer 0-9) causes an UNCONDITIONAL send of the ASCII out the port with no expectation for a response. This works in ALL modes (rcv, xmt, half-duplex) and can be used to download (as example) large configuration blocks. * reading from Modbus 4x05Y01 or AB N6Y (where Y=0-9 selects buffer 0-9) works as before. It returns the oldest "line" to be received. Remember that the ascii slavetimeout is used to age and discard old "lines" if not set to zero/0. * NEW: reading from Modbus 4x06Y01 or AB N7Y (where Y=0-9 selects buffer 0-9) returns ONLY the newest "line" to be received, discarding all older data. For half-duplex, a poll is sent first. This does not work with xmt mode - all received data is always discarded in xmt mode. * rd/wr of other Modbus or AB ranges is reserved - A test "Report-By-Exception" (or XMIT) handler has been added to the Modbus/RTU serial slave driver. The DOIAP pauses between slave polls to receive potential "Master Requests" initiated by the slave. Just as with a serial Master-attached, the Modbus/RTU "slave address" is used with the ia route table to determine remote destination. Behavior is assumed HALF-DUPLEX and exact behavior of the slave device after a collision where both units try to send a request at the same time is unpredictable. The DOIAP will normally ignore the XMIT request and treat its own request as a timeout. Requirements: 1) port must be set to "type=slave" 2) only 1 slave may be present on the serial line (cannot multi-drop) 3) "fixedaddress" must be set to address of the slave (all other values are assumed to be XMIT transactions) 4) XMIT requests MUST NOT use the fixed address of the slave 5) "lineturndelay" must be set to at least 50 milliseconds to provide a window of opportunity for the XMIT function to send a request. New CLI Commands - Rockwell Protocols: target parameter has been expanded to cif, slc5 and plc5. "target=plc5" means protocol bridging sends Typed Read/Write (subfunc 68/67) with PLC5 style binary system addresses. - Rockwell Protocols: "fixedaddress=(auto|(0-255))" is now valid, allowing users to override the slave (destination) address in the original request. Previously was only supported by Modbus protocols. - Rockwell Protocols: "fixedsource=(auto|(0-255))" is now valid, allowing users to override the zero or temporary source address used by the DOIAP. - Custom Protocol: "buffer=(32-8190)" allows tuning the allocated buffer size. - Modbus/RTU Protocol (slave only): "rbx=(off|half)" enables the serial slave driver to handle XMIT writes between polls (see "Enhancements" above for more details) BUG-FIXES - Fixed connect issue related to socket timing with NetENI Series C. - Fixed issue with UDP/IP Masters. Modbus/UDP (ie: Modbus/TCP format in UDP/IP) now works. So does serial protocols encap in UDP/IP. - Fixed bug where Rockwell master received zero-filled data instead of STS=0x30 when Modbus slave timed out. - Fixed bug where Rockwell master reading more than 89 registers at times caused Digi One IAP to reboot. - Fixed issue against recent change in Wonderware AB/Ethernet (AB/TCP) IOServer which prevented new WW IOServer from connecting to E1. - Fixed issue where active serial Master attached to an unconfigured Digi One IAP prevented reloading the config due to serial port being busy. - Fixed bug in protocol bridging when versions of MicroLogix 1000 that escape the 3 fields of the SLC500 commands. - Cleaned up CPCONF dump to have lines less than 80 characters - Fixed the IA Wizard bug where idletimeout defaulted to checked with a value of zero, which caused an error. Now defaults to unchecked. - Modbus/RTU "echos" caused by cable faults or slave disconnection now are hidden as time-outs. Previously they would be returned as a response to the Master. - Fixed issue where outgoing destination (net slave) connections set to passive ("on-demand") would incorrect attempt to reconnect if the remote end terminated an idle connection before the Digi One IAP did. It now leaves the connection down unless there is more data to send. - Fixed numerous minor bugs related to display of temporary data during the IA Wizard. KNOWN LIMITATIONS - (Relevant ONLY during protocol converstion) PLC5 Typed Rd/Wr and Word Range Rd/Wr are optimized to mimic behavior of ControlLogix, SLC5/05 and MicroLogix 1200 when handling these commands. This means PLC5 as target (slave) should always work, however PLC5 as originator (master) may attempt address combinations that are not understood and could result in unpredictable Modbus responses. - Rockwell users who want to use RSLinx and RSLogix to access serial PLC must enable at least the AB/Ethernet (CSPv4) Net Master; they cannot access solely by Ethernet/IP. This is a limitation in how RSI implements its tools, not the Digi firmware! With only Ethernet/IP active, RSI tools will attempt to issue unsupported PCCC commands which results in a diagnostic failure. ADDITIONAL INFORMATION Switching between 1 and 2 ports ------------------------------- Newer Digi One IAP hardware has a dip-switch that allows switching between 1 and 2 port modes. In 2-port-mode the screw terminal connector is port 1 and the DB9 connector is port 2. It is necessary that the device be power cycled after switching between 1 and 2 port modes. Failure to do so will result in unpredictable device behavior. If you are using Digi's RealPort technology (allows the device's serial ports to appear as if they were on the local computer) it is highly recommended that you reconfigure or reinstall the RealPort driver after switching between 1 and 2 port modes. Failure to do so may result in RealPort not functioning correctly. POST & FIRMWARE UPDATE You can update the POST and/or firmware of your device server either through the device server's web interface or command line interface. NOTE: When updating the firmware of your device server to a new version, please ensure that you are running the most recent POST as well. If you need to update your POST, it must be done BEFORE the firmware update. Please ensure that you are running POST 82000779_D or higher. POST update via the web interface --------------------------------- Log on to the device server's web interface. Go to Administration > Update Firmware. In the From a File section, select POST from the Update list. Click Browse... and navigate to the POST file. Click Open, then click Update. When the update process has finished, click Reboot to restart the device server. POST update via the command line interface ------------------------------------------ This option requires a TFTP server. First, copy the POST image to the TFTP server. Then, log on to the device server's command line interface and update the POST with the following command: boot load-boot=:82000779_D.bin When the update process has finished, restart the device server with the following command: boot action=reset Firmware update via the web interface ------------------------------------- Log on to the device server's web interface. Go to Administration > Update Firmware. In the From a File section, select Firmware from the Update list. Click Browse... and navigate to the firmware file. Click Open, then click Update. When the update process has finished, click Reboot to restart the device server. Firmware update via the command line unterface ---------------------------------------------- This option requires a TFTP server. First, copy the firmware image to the TFTP server. Then, log on to the device server's command line interface and update the firmware with the following command: boot load=:82000770_E.bin When the update process has finished, restart the device server with the following command: boot action=reset HISTORY 2005-02-22: 82000770_E1 - Add support on serial port for Line Turn Around Delay. - Enable import of simple "D" and "D1" configurations into E1 - Added Modbus slave response statistics for serial ports in CLI. - Changed default character timeout for Modbus/ASCII from 50 msec to 1 sec. - Changed default ACK timeout for DF1 from 250 msec to 1 sec. - Can bridge Modbus function 5 (write single bit) to Rockwell protocols. - Can bridge Modbus function 0 (read multiple bits) to Rockwell protocols - Can bridge aligned Modbus function 15 (write multiple bits) to Rockwell - Added better SLC5/MicroLogix bridging; smart use of An file type: 4x00001-4x00250 accesses N7 as Integer, Read or Write 4x00251-4x00500 accesses I1 as Logical Input, Read Only 4x00501-4x00750 accesses S2 as Status, Read Only 4x00751-4x01000 accesses B3 as Binary, Read or Write 4x01001-4x01250 accesses T4 as Timer, Read Only (3 words per timer) 4x01251-4x01500 accesses C5 as Counter, Read Only (3 words per counter) 4x01501-4x01750 accesses R6 as Control, Read Only 4x01751-4x02000 accesses N7 as INT, Read or Write 4x02001-4x02250 accesses F8 as 32-bit FLoat, Rd/Wr (Modicon style Lo/hi word) 4x63251-4x63500 accesses O0 as Logical Output, Read Only All other ranges MUST access AB PLC N or Integer files - Rockwell rd/wr to "F" type tables map to Modbus 4x, assuming Modicon Low-Word/High-Word IEEE float format. - PPP allows use of IP addresses in the Ethernet subnet address range. New CLI Commands - set ia xxx lineturndelay=N, where N is msec from 5 to 65535 or 0 to disable. Default is zero (disabled). This option delays (when appriopriate) a new request following a slave response. If no slave response has been received, it has no delay on a new request. - set ia xxx protocol=df1fd mapping="N9,B13,L20,F210", where datais a comma-separated string of table type over-rides. For example, a Modbus function 3 to file 9 will ASSUME type is N; while a Modbus function 1 to the same file 9 will ASSUME type is B. To force all access to a specific type, use this over-ride. In the above case, both function 1 & 3 will now use type N for file9, while access to file 20 will be 32-bit long and to file 210 32-bit floating point. BUG-FIXES - Fixed memory leak (and crash/reboot) if slavetimeout was incorrectly set to larger than messagetimeout. - Fixed problem where multiple remote slaves at SAME IP address but on different TCP port numbers did not work correctly - Fixed that Modbus BIT functions incorrectly swapped bytes when reading PCCC or Rockwell slaves. - Changing destinations (or "Routes") settings aimed at serial ports fully propagates the changes to the serial port. Changing serial port settings referenced by a destination in any table fully propagates the changes to the serial port. - Fixed memory leak in DF1 serial slave decoder when polled by Modbus master - Fix buffer overflow issue in IA Custom protocol - Fix bug when mixing medium and high priority in net masters - ProxyARP functionality now works as expected for serial PPP links 2004-09-27: 82000770_E - Renamed from "Digi One IA RealPort" to "Digi One IAP" - Supports the following protocols: * Modbus/RTU, Modbus/ASCII, Modbus/TCP, Modbus/UDP * AB/DF1 Full-Duplex, AB/DF1 Half-Duplex, AB/Ethernet (or CSPv4) * Ethernet/IP for PCCC-encapsulation * Omron/Hostlink (and FINS via Hostlink) * Custom (user-defined) as simplex (rcv or xmt only) or half-duplex * ASCII Import - Supports ODVA Ethernet/IP - both UCMM and CM (connected messaging) * Passes Conformance Test A3.4 (Nov-2003) * Supports unconnected messaging (UCMM) * Supports class 3 connected messaging (CM) * Supports PCCC encapsulation via Rockwell's PCCC Object Class (0x67) * Supports PCCC encapsulation by older CPF Data Type 0x91 * ControlLogix MSG block field 'Destination Node' used for DF1 DST byte * enable selection of PCCC class service - Supports a full 64 incoming and 64 outgoing sockets. Each serial or UDP Master reduces this number by 1. This means (for example) two OPC clients can each open 32 sockets to 32 RS-485 slaves, or a serial Master can connect to up to 64 remote IP addresses. - Allows all Master/Clients to route to all Slave/Servers. This means you can now bridge a Modbus/RTU Master application via RealPort thru E1P to standard Modbus/TCP network slaves. Previous releases only supported such "routing" by serial Masters. - Supports up to 64 destination entries (or routes) per table. Previous releases only supported 12. - Supports use of DNS names as destination entries (or routes) in tables. - Supports use of slave address as final octet of IP address of destination entries (or routes) in tables. So a serial Master sending a request to slave 34 could automatically send this to an IP like 192.168.1.34 - Assumes "own" IP for any missing octets in IP address of destination entries (or routes) in tables. So if the Digi One IAP has an IP of 10.20.30.113 and the destination entry says send all messages for slaves 0-255 to remote IP 0.0.0.0, then a serial Master sending to slave 75 will connect to remote IP 10.20.30.75. This reduces the need to hand configure IP addresses. - DF1 Full-Duplex now acts as both a Master and Slave. Thus one can use RSLinx remotely to access the PLC, plus can use MSG blocks within the PLC to send messages to other PLC - Modbus/UDP is supported as Modbus/TCP format in UDP packets. With the ability to "route" between network drivers, this allows the Digi One IAP to bridge Modbus/TCP and Modbus/UDP devices. - Multiple Masters can be defined for the same protocol. Thus you can define a Modbus/TCP master on TCP port 502, and a 2nd one on TCP port 8502. This better supports firewall and VLAN use for security or bandwidth control. - Masters can be defined as Read-Only (Modbus only, other protocols in future). This means any write or unknown commands are blocked. This better supports firewall and VLAN use for security or bandwidth control. - Custom (user-defined) protocol supports new "host list" behavior in Simplex mode. It allows the following 2 behaviors: 1) Many Masters/Clients connect and each sees a copy of serial data received. 2) or the Digi One IAP can act as client, open TCP connections to up to 64 remote IP, and each remote server receives a copy of the serial data received. - ASCII Import protocol allows any Modbus or AB protocol PLC to poll an ASCII device as-if a PLC. - The Digi One IAP can do (as pilot) mapping between Modbus and AB protocols. - Timeouts can now be entered (in the command line) with a time modifier, so 300000 msec can be entered as "5min", "300sec", "300000msec", or 300000. - As a pilot function, the Digi One IAP supports command line options to mimic a Modbus BM85 split route. BM85 users know what this means (ie: slave address 201 could route to IP 192.168.1.20 to slave 1-201 is split to create both the IP and the remote slave address. - Outgoing serial DF1 starts with psuedo-random non-zero TNS. Previous versions restarted with TNS of 1 after every reboot. - Modbus servers (TCP/RTU/ASCII) discard duplicate requests. This usually means client/master is polling FASTER than messagetimeout setting. We delete the older duplicate assuming client is RETRYING and no longer desires response to older request. - On Ethernet/IP client, can specificy 'connection path' for ControlLogix backplane routing within ENB module. - In CLI added "show ia all" to show all 3 config groups, plus can now use '#' character at start of line for comments in scripts. 2003-09-22: 82000770_D1 - Fixed a problem where infinite breaks sent through RealPort were not being sent out the serial port correctly. - Fixed a problem where the Ethernet/IP protocol list identity packet was causing serious problems. - Fixed a problem with the IA userdefined protocol where data between the end delimiter of one message and the start delimiter of the next message was being included in the data stream rather than being thrown away. - Fixed a problem with the command line command "cpconf" where the command would print the values for the IA routes incorrectly. - Added a fix/enhancement to the ABEthernet protocol to reduce some PCCC messages inorder to support PLCs that do not understand the more complex PCCC messages. - Added support for quote characters for IA cli commands. - Fixed trace syslog so that it now sends a properly formed syslog message. 2003-03-24: 82000770_D: - Added support for Digi One IA RealPort hardware that can switch between 1 and 2 port modes (see "ADDITIONAL INFORMATION" section). - Added port buffering feature that allows viewing of serial data. - Changed the behavior of the serial port in IA mode to raise RTS and DTR signals. In particular these signals may be necessary (depending on serial cabling) to properly start/stop some Modicon PLCs. - Added a fix where changing the serial port from IA mode caused the serial port to get into the wrong state. - Added a fix for Modbus RTU broadcasts. The fix adds a delay between sending a Modbus RTU broadcast and the next request. - Fixed a security hole that allowed access to the Web UI without a password. - Fixed a problem where the destination IP address was not getting set correctly with SNMP. - Fixed a problem where the IP ports greater than 9000 were not allowed to be set via the Web UI. - Fixed a problem where turning on altpin turned on forcedcd as well. - Added change so opening a serial port in MIO mode no longer requires the carrier signal (DCD) to be high. - Fixed a problem with the command line trace feature where the trace feature could get in a state where it would no longer print valid trace information. - Modified autoconnect to allow non-numeric DNS names. - Fixed command line "send escape" command. - Fixed mismatch IA statistics in Web UI report page.