Release Notes PN 93000464 for the 82000770_E1 firmware Feburary 18, 2005 INTRODUCTION This is a maintenance 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. SUPPORTED PRODUCTS Digi One IAP Digi One IA RealPort With the "E" firmware release, the "Digi One IA RealPort" product has been renamed to "Digi One IAP". ENHANCEMENTS - Add support on serial port for Line Turn Around Delay. This prevents sending a response too soon after receiving the request; or sending a next request too soon after receiving last response. Some devices do not enable their receiver immediately after sending. The Command Line Interface (CLI) syntax for "set ia serial" is the new option "lineturndelay=N", where "N" is a time between 0 milliseconds to 65.535 seconds. Zero (0) is the default and causes no delay. Note that depending on system load, the delay will normally be as set +/- 1 millisecond, but can be larger by up to 5 millisecond. - Enable import of simple "D" and "D1" configurations for: * Modbus or DF1 slave on serial port #1, appropriate Network Masters created, all messages forwarded to serial port #1, port #2 unused * As above, but port #2 is serial Master, all msgs go to serial #1 - Added Modbus slave response statistics for serial ports. Currently is only visible under Telnet "set trace" command. Note that enabling the Telnet "set trace" command impacts system performance, so this should only be used for troubleshooting. * After Slave response, you will see 3 lines as shown below: "00:22:11 IA INFO: mbrtu:CH01 recv resp:123; completed in 114 msec" In this example, message id #123 required 114 milliseconds from time the first byte of request was sent until the last byte of response was received. This *INCLUDES* the serial shift time, so the number will rise dramatically as the baud rate is slowed or as the number of bytes in either the request or the response is increased. "00:22:11 IA INFO: mbrtu:CH01 start of resp min:45 avg:57 max 163 msec" This shows the minimum, maximum, and a running average over the last 20 requests. The time measured does NOT include the serial shift time during either the request nor the response, so this is an estimate of the actual time for the slave to START sending the response. "00:22:11 IA INFO: mbrtu:CH01 complete resp min:109 avg:115 max 172 msec" This shows the minimum, maximum, and a running average over the last 20 requests. The time measured is the SAME as the first message and includes the serial shift time. So in this example, the time 114 has been included into this average. - Changed default character timeout for Modbus/ASCII from 50 msec to 1 sec. User can still change to any value - Changed default ACK timeout for DF1 from 250 msec to 1 sec. User can still change to any value - Added "hook" for remote timing analysis - if Modbus/RTU or ASCII slave decoder is asked to send Request with invalid Modbus function 0x80-FF, then decoder will force a CRC/LRC error to create slv timeout. - Added new support for bridging Modbus function 5 (write single bit) to Rockwell protocols. - Added new support for bridging Modbus function 0 (read multiple bits) to Rockwell protocols even when mis-aligned. - Added new support for bridging Modbus function 15 (write multiple bits) to Rockwell protocols. However, only works with fully aligned words of data. - Added better SLC5/MicroLogix bridging. Previously all Modbus 4x access mapped to INT files. Now support the following: 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. - Enhanced the IA Custom protocol to manage transaction buffers up to 8190 bytes; old maximum was 530 bytes. Includes a new telnet/CLI command "set ia serial range=y buffers=x" where x is 32 to 8190. - Enhanced PPP to allow use of IP addresses in the Ethernet subnet address range. New CLI Commands - set ia xxx protocol=custom buffer=N, where N is 32-8190. This changes the max size of messages accepted by the customer protocol. Default is 530 bytes (which is NOT shown). - 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 KNOWN LIMITATIONS - Due to ControlLogix behavior, a route or network destination of Ethernet/IP to ControlLogix *MUST* be configured for connect=passive and idletimeout=5sec - 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. - Currently, firmware can send Modbus/UDP (ie: Modbus/TCP format in UDP/IP instead of TCP/IP) to network slaves. Creating a Modbus/TCP-in-UDP master will not receive messages. - Currently, firmware can send protocols in UDP/IP to arbitrary ports. So sending Modbus/RTU-in-UCP to port 7001 is fine. However, creating a Modbus/RTU-in-UDP master on port 7001 will not receive messages. This only works if the incoming UDP port is 2101 and the serial port #1 is defined as a Modbus/RTU slave. 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 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.