=========================================== AM Automation Protocol Suite Modbus Bridge Software Release Notes Copyright 2018 Lantronix Inc. =========================================== --COBOX/LTX Platforms-- Current version is 1.71 Beta (as of 30-Apr-2002) (Released as 1.40 with formal DVT in Jan-2002) AMxxxx.ROM is IAP version with locking key, code = AM (TFTP locks to A*) MODxxxx.ROM is E1M/OEM version - no IAP key, code = 4D (TFTP no locking) CVxxxx.ROM is Schneider Electric version, SWType == 8, code = CV (TFTP locks to CV) --DSTni-LX Platforms (DLX)-- Current version is 2.5.0.0 (as of 25-May-2005) AMDXxxxx.ROM is IAP version with locking key, code = DA (TFTP locks to DA) MODXxxxx.ROM is E1M/OEM version - no IAP key, code = 4E (TFTP locks to 4E) CDxxxx.ROM is Schneider Electric version, SWType == 8, code = CD (TFTP locks to CD) MBGDxxxx.ROM is General Electric version - no IAP key, code = G3 (TFTP locks to G3) --XPort Platform-- Current version is 3.3.0.0RC1 (as of 29-Nov-2012) AMXPXXXX.ROM is IAP version with locking key, firmware code = XM --WiPortG Platform-- Current version is 3.2.0.1RC1 (as of 04-April-2012) AMWPTGxxxx.ROM is IAP version with locking key, firmware code = GA --WiPort Platform-- Current version is 2.5.0.1 (as of 17-August-2005) AMWPTxxxx.ROM is IAP version with locking key, firmware code = WA --WiBox Platform-- AMWBXxxxx.ROM is IAP version with locking key, firmware code = wA --XPress-DR+ Platform-- Current version is 3.0.0.0 (as of 12-May-2006) AMDRxxxx.ROM is IAP version with locking key, firmware code = rA --XPress DR+ Wireless Platform-- Current version is 3.2.0.1 (as of 22-May-2012) AMDRWxxxx.ROM is IAP version with locking key, firmware code = IA --xPico Platform-- Current version is 3.3.0.8 (as of 27-Apr-2018) AMXPCxxxx.ROM is IAP version with locking key, firmware code = PA --xDirect Platform-- Current version is 3.3.0.8 (as of 27-Apr-2018) AMXDxxxx.ROM is IAP version with locking key, firmware code = TA =========================================================== Known issues and out-standing requests: - add auto-adjust to slow down unrealistic message timeouts - add Java/Web pages =========================================================== Version 3.3.0.8 release notes on 27-Apr-2018 Current firmwares: - amxpc_3308.rom (27-Apr-2018) - amxd_3308.rom (27-Apr-2018) Cobos Updates: BUG FIXES: - None. Modbus Updates: FEATURES: - None. BUG FIXES: - Bug 25845 - Telnet password should not be 'seen' by querying record 0 via 77FE - Bug 29907 - 4 byte basic telnet password cannot be read from record 0 History : --------- Version 3.3.0.0 release notes on 06-Mar-2013 Current firmwares: - amxpc3300.rom (06-Mar-2013) - amxd3300.rom (06-Mar-2013) Cobos Updates: BUG FIXES: - Bug ID 17608: common library changes for xdirect need to be 'cleaned up'. Modbus Updates: FEATURES: - None. BUG FIXES: - Bug ID 17727: common library changes for xdirect-IAP need to be 'cleaned up'. - Bug ID 17740: IAP key should not be needed on new xpico and xdirect builds. Version 3.3.0.0RC3 release notes on 06-Feb-2013 Current firmware: amxpc3300RC3.rom(06-Feb-2013) Cobos Updates: - FEATURES None. - BUG FIXES --> Bug ID 17589: remove ECHO port security setting. --> Bug ID 17639: Advanced Modbus Protocol missing settings. --> Bug ID 17489: RTS/CTS Modem Settings for channel 2. Version 3.3.0.0RC2 release notes on 10-Dec-2012 Current firmware: amxd3300RC2.rom (10-Dec-2012) ->xDirect IAP is new product on the Modbus Baseline. Cobos Updates: xDirect IAP 3.3 is ported on Cobos 6.9 baseline(Tag: COBOS_6_9_0_1B2). - FEATURES None. - BUG FIXES None. Version 3.3.0.0RC1 release notes on 29-Nov-2012 Current firmware: amxp3300RC1.rom (29-Nov-2012) Cobos Updates: - FEATURES -->Security setting features are supported on Modbus. - BUG FIXES None. Version 3.3.0.0RC1 release notes on 28-Nov-2012 Current firmware: amxpc3300RC1.rom (28-Nov-2012) ->xPico IAP is new product to the Modbus Baseline. Cobos Updates: Xpico IAP 3.3 is ported on Cobos 6.9 baseline. - FEATURES None. - BUG FIXES None. Version 3.2.0.2RC1 release notes on 05-June-2012 Current firmware: amxp3202RC1.rom (05-June-2012) ->Xport IAP is ported from 2.4.0.0 to 3.2.0.2RC1 and built on Cobos 6.5.0.0(tag UDS1100_6_5_0_0B1). Cobos Updates: - BUG FIXES --> 110216-000021 – UDS1100IAP – UDS drops offline and requires a reboot. --> 20404-000008 – UDS1100 IAP – Drops offline and Requires Reboot. - FEATURES None. - BUG FIXES --> 120404-000027- Web server stops working with the Xport ModBus. Version 3.2.0.0 release notes on 12-May-2009 Current firmware: amdrw_3200.rom (11-May-2009) --> Ported Modbus code to XPress DR+ Wireless on Cobos 6.5.0.0 Current firmware: amwptG_3200.rom (05-February-2007) --> Ported Modbus code to WiPortG and Cobos 6.5.0.0 Cobos Updates: - FEATURES - Disassociate on repeated failure of transmission, scan and search for "new" AP - Addition of "Defaults (In) Wired" option. When used, this would allow the firmware to reset the settings to factory defaults including the network settings and select the Wired Only network mode for operation on restart. A "Defaults (In) Wireless" is also available for CP configuration and will provide the same functionality as in previous "Defaults (In)" wireless mode of operation on restart. - BUG FIXES - C-060427-79577 XPort-03- Sometimes Takes 5 Minutes To Get A DHCP Address - C-060803-83381 XPort-Part Of Record 1 Overwritten When Using SS Command In Mon Mode - C-060807-83529 XPort-03-Web Manager "Error 400" Code Incorrect Should Be "404"--- - C-060920-85283 WiPortG-Using Hub In Bridging Causes Long Lasting Loop Of Messages - C-060728-83149 XPort-03-Applet Sub From XPort Web Server Will Not Load In Browser - C-061002-85801 WiPort - WiPort Resets With Power Management Enabled - C-061018-86460 WiBoxEG-Firmware 6.4.0.0RC6 Monitor Mode Command SA Fails - C-061109-87424 WiPortG - WLAN & EMAIL settings changed via telnet to 9999 are not discarded when option 8 is selected - C-061025-86738 WiPortG-6.3.0.2 Modem Mode Locks Up WiPort - C-061102-87111 WiPort B-Applet Sub Custom Web Server Will Not Load In Browser (Child case to C-060728-83149) - C-061204-88255 XPort - Encryption Fails If All 16 Bytes Of IV Is Not Transmitted - Bug 5343 Datagram 0 loss of serial data with back-to-back messages - Bug CLI issue with EX chip Version 3.1.0.0 release notes (30-October-2006) Current firmware: amdrw_3100.rom only --> Ported Modbus code to XPress DR+ Wireless and Cobos 6.3.0.0 Cobos Updates: - 802.11i with PreShared Keys. Including CCMP encryption. - Monitor mode command: SA. Available in wireless only mode and bridging mode. Scans the air and reports found BSS's. - Monitor mode command: NS. Reports the status of the Ethernet and Wireless interfaces, including current negotiated settings. - TX data rate auto with max setting - WEP passphrase hashing generates all 4 keys. Algorithm as in Linksys WRT54G. - Operational change: Wireless encryption settings changed meaning from fixed to minimum. If TKIP is configured under 802.11i, it will choose the higher CCMP if the AP supports it. If the AP supports only TKIP, that is chosen. If it supports WEP only it will not associate with this setting. - Bug Fixes: - WiPortG: TKIP+WEP64 and TKIP+WEP128 modes not correctly working. - Web Manager access over wired Ethernet in Bridging Mode not available. - Wired Network access in Bridging Mode inoperational if wireless interface is not associated and open. - Ethernet PHY not turned off in Wireless only mode, causing 100mA extra current consumption. - Short preamble capability not advertised when creating adhoc network. - C-051117-73096 Xport-03: Parity Errors with extended ascii at 7O1 - C-060427-79577 Xport-03 sometimes takes 5 minutes to get a DHCP address if 77fe flooding occurs. - C-050303-61010 UDS100 - Bug in TCP Stack - RST connection, takes time to allow SYNs - C-060522-80531 WiPort - Slow TCP Disconnection in v6.1 - C-060327-78241 WiBox E- 6.1.0.1RC1-DSTest Results Failing At Higher Baud For SW & N Flow - C-060725-82989 WiPort G-AdHoc Network With WEP On, Fails Sometimes Version 3.0.0.0 release notes (12-May-2006) Current firmware: amdr_3000.rom only 01) Ported Modbus code to XPress-DR+ and Cobos 6.1.0.1 Cobos Updates: 01) C-040728-51716, C-050221-60400 Xport/All CoBOS-Monitor Mode Command To Display MAC Address For All: new GM command 02) C-050427-63786 WiPort-Wants Range Of Low Power Modes => CPU performance: Low setting added. 26MHz. 03) C-050711-67254 WiPort-Needs SP Setting In SetZone Added For Spain 04) TKIP+WEP selection split into TKIP+WEP64 and TKIP+WEP128 05) 10sec search before creation of Adhoc network when enabled. 06) Canada and Spain added to configurable countries 07) Support for Intel parallel flash 08) Monitor command PI keeps pinging until keyboard hit 09) C-051207-73818 XPort-03 - Opening & Closing Port 9999 Causes XPort Restart 10) C-050829-69577 XPort - XPort-Port 77f0 Locks Up 11) C-050615-66189 XPort - Reboots When Telnet Is Terminated Using Escape Char 12) C-050620-66373 XPort(CoBos) - TCP Packet # Not In Sequence 13) C-050420-63378 XPort - DHCP Discovery TransID Not Random 14) C-050303-61071 Tellermate reported issue with ISN 15) C-051114-72916 WiPort - Enabling WPA Will Cause The Unit to Ignore Setup Records - fixed in upcoming release 16) WiPortB associating with some wireless stations that have mismatching SSID 17) First outgoing connection attempt after bootup fails. Version 2.5.0.1 release notes (27-September-2005) Current firmware: amwpt2501.rom only 01) Fixed the WiPort build to use Bootram.obj in place of Boot.obj so that the code now executes in RAM like standard firmware and HW dependent variables are initialized properly. The old build caused problems in production which required the radio FW to be reloaded. Version 2.5.0.0 release notes (17-August-2005) Current firmware: amwpt2500.rom only 01) Ported Modbus code to WiPort and Cobos 5.8.0.1, added CP pin and WiFi configuration to setup 02) Added feature to read/write WiPort CP pins configured for GPIO over Modbus/TCP 03) Added/fixed Defaults CP pin handling to restore WiFi configuration to factory default Cobos Updates: 01) [C-030701-37368]: DHCP Client FQDN Option (Dynamic DNS Updates) Dynamic DNS Updates are useful in a DHCP environment since they allow the DHCP server assigning the IP address to also communicate with the DNS server on behalf of the client and generate a FQDN entry by which the client (device server) could be reached. The DHCP name configuration that is already available will be used to configure the hostname that will get registered at the DNS server. There is no support for a FQDN to be specific at the device server. The domain will be the default domain in which the DHCP server and the DNS server that it communicates with reside in. 02) Escalation C-040308-46373: XPort/UDS- Reboots When Data Flowing Thru Serial On Bootup Changes have been made to the serial driver to clear out characters received erroneously while the serial port was being initialized, and always check/clear receive errors. 03) Escalation C-040330-47220: XPort-CoBox in General - Reboots With CTRL B On Startup Change has been made so that even if the unit falsely prompts to enter setup mode, because of application's streaming serial data at various speeds, the unit will no longer reboot if a is not received following the prompt. 04) Bug 1220: AutoIP - Default Gateway Issues If the gateway address was configured when AutoIP was used, then subsequent messages sent over the network would be routed to the gateway. This has been corrected such that when using AutoIP to obtain an address, the configured gateway address will be ignored when a network message is sent. Version 2.30 release notes (20-April-2005) XPort only 01) Fixed SNMP support for XPort, built with Cobos 1.8 02) Added 485 transmit enable function to CP1 03) Possible fix for remaining 485 problem where transmitter is turned off too late (beyond 3.5 character times) Version 2.21 BETA release notes (28-July-2004) XPort only 01) Ported Modbus code to XPort and Cobos 1.7, added CP pin configuration to setup Version 2.20 release notes (11-August-2004) 01) DLX platform build with Cobos 5.2 and all previous 485 fixes Version 2.14 BETA release notes (13-July-2004) 01) fixed RS485 2-wire timing for DLX platforms based on SE problem reports, added an auto pause timer and character timeout based on baud rate, the faster DLX platforms need to guarantee a 3.5 character time delay between a slave response and the next command 02) return correct Modbus/TCP address and command values when receiving invalid serial responses 03) for UDS10 and AMD platforms, use DMA on transmit for baud rates higher than 38400 to prevent inter-char gaps that cause false Modbus/RTU end of frame (3.5 char times), reported by SE France 04) Added support for 2 stop bits on AMD/DSTni-LX/EX platforms Version 2.11 BETA release notes (13-Nov-2003) 01) for all, fixed web server interface 02) for all, moved to kernel 5.2 (Released as 2.00 in 05-Nov-2002 for XPress-DR) Version 2.00 BETA release notes (05-Nov-2002) 01) for all, ported to DR2 hardware and 5.1b6 version of kernel. 02) for all, separate firmware codes for LTX and DLX platforms. Version 1.72 BETA release notes (01-Nov-2002) For SE only Corrected gratuitous ARP handling so that the new MAC address is stored to the ARP table. Version 1.71 BETA release notes (30-Apr-2002) For Dave H of UK 01) Add optional serial pause to delay new request after slave response (or delay response after master request). This includes a byte stored in EEPROM - if zero means disabled. This is * by 5ms to get the timeout in range 5-1275. After each Rcv ends, we take a time stamp from sticks - if zero (0) we bump to 1. Then before we transmit we see if some more delay is required. Also, if we fall idle both the IsSlave() and IsMaster() loops have to watch for this timer to expire and set stamp to zero, which means no need to delay. (Released as 1.60 in 28-Mar-2002 for SE/CEV only - was tested by SE) Version 1.61 BETA release notes (29-Mar-2002) For Paul Bennisons Pilot 01) Add optional swap of 4x/0x for 3x/1x for Modicon I/o Scanner Version 1.52 BETA release notes (02-Jan-2002) Interim for SE only 01) for SE's final testing - release candidate for 1.60 (Per David Dogget) Version 1.51 BETA release notes (02-Jan-2002) Interim for SE only 01) for all, move to released 4.5 kernel 02) for IAP, some general changes to Setup Version 1.46 BETA release notes (02-Jan-2002) Interim for SE only 01) for SE, include the patched ARP to auto-adjust ARP table on gratuitous ARP 02) for SE, because of above patch, remove work-around (per v1.38) 03) for SE, add support for command 0x7D (for EXECLOADER.EXE) 04) for SE, make support for command 0x7E (for Modsoft/Concept) exclusive to SE Version 1.45 BETA release notes (08-Nov-2001) Interim for SE only 01) for SE, #ifdef out the HTTP server 02) for SE, #ifdef out the duplicate IP mapping ('host list') for master mode 03) for SE, #ifdef in the older setapr.c test to prevent duplicate IP in table 04) for SE, change code from ZE to CV (think that's easier to remember) 05) for SE, a few minor display changes - remove some unrequired info Version 1.44 BETA release notes (12-Oct-2001) 01) Redo RTS/CTS control - On some hardware touching RTS or CTS breaks RS-485. This is a problem because the CMS OEM using RTS/CTS to control RS-485 turn-around. So I added more "if(HW=X) and/or isRS485" type logic to selectively make those wanting RTS/CTS and those *NOT* wanting it happy. Version 1.43 BETA release notes (08-Oct-2001) 01) Change "telnet startup" to the kernel routine - the old manual loop did not properly ask for a password if present 02) Factory-Default now clears the telnet password (only 4-byte version supported) 03) Enable in non-IAP build (Mas-Attached mode) idle close of out-going socket 04) Enable in non-IAP build (Mas-Attached mode) redundant IP in slave table Version 1.42 BETA release notes (28-Sep-2001) 01) Add support for redundant entries in the Slave IP table 02) Flush pending serial master requests when remote IP will not open 03) Fine-Tune telnet debug trace at port 3000 for cleaner user view Version 1.41 BETA release notes (12-Sep-2001) 01) Fix FL/UDS hardware detection broken by test for CMS on MiniRv2 (coboxtype.c & setpar.c) 02) Setting a Master-Attached socket timeout of 0 did NOT properly keep socket open (mchan.c) 03) Update way TCP sockets closed (FINs) due to newer kernels expectations (mchan.c) 04) Add override for the firmware lock to Schneider Electric CEV (is '^' char at menu in setpar.c) 05) Adjust the ARP table clear to work faster in case of reopen (mchan.c) Note: if socket is reopening, fail-over to new MAC only happens after user-defined MSG timeout or internal TCP socket timeout (which ever is shorter) Note: if socket is active, fail-over to new MAC only happens after user-define 'idle timeout' or internal TCP socket timeout (which ever is shorter) ================================== Version 1.30 was released Version 1.3A BETA release notes 01) verify mod.rom (Code:4D) runs on a old E2 with 128 bytes of EEPROM Version 1.39 BETA release notes 01) verify mod.rom (Code:4D) runs on a Micro/Mini Rv2 acting like a Rv1 Confirm the Setup prompts are correct (remove DCE language, E2 prompts etc) Version 1.38 BETA release notes 01) IMPORTANT CHANGE The Modbus code is now split into several builds: - am.rom is the APS running on EEPROM keyed units ONLY * it will NOT run on CoBox-E1M, CoBox-E2 or DR1-MB units! * It is validated ONLY to run on new DR1(w 512K), UDS10, and CoBox-FL - mod.rom is the OEM/Legacy version (Code: 4D) * it will NOT run on CoBox-FL or UDS10 * validated ONLY to run on DR1 (w 128K), Micro/Mini Rv2 * (not sure about CoBox-E2/E1M or Mini Rv1 - may have to wait until 1.39) 02) Mini Rev2 users - this Modbus assumes LED #2 (CON1:pin 8) is your RTS out for RS-232 or RS-485 line turn-around, and DCD in is your CTS response. 03) Fix an ARP table issue - if a remote IP with active sockets "moves" to a new HW MAC, of course the attempts to reopen the failed sockets to old MAC also fails. The old kernel would keep retrying this old MAC for a long time (10 minutes or more). Now the Modbus code removes any existing ARP table entries for the target IP when a reopen FAILS. This forces a new ARP which causes the NEW MAC of the IP to be recognized in a few scans. 04) Although TCP/IP timeout follows the serial "message timeout", enforce a minimum timeout of 2 sec for the first socket connection. Although once connected, a remote Modbus/TCP server/slave can answer in 50-100 msec, the initial socket open sometimes takes far longer. 05) In "Serial Master-Attached" mode, disabling the use of 0x0A and 0x0B will filter these OUT of the Modbus/TCP responses received. These exceptions will just be discarded and the master see a silence/timeout. This is required as many serial Modbus/RTU masters do not understand these errors and either treat them as unknown-but-successful or some actual halt operation (go off-line). 06) Have fixed RTS/CTS radio modem control on DR1, UDS, CoBox-FL, Micro & Mini Rv2 (& it was NOT easy!). This does not work in v1.2 on any CoBox but the E2/E1M. 07) Performance issues. Be aware that raw thru-put from Modbus/TCP to Serial Modbus/RTU is a difficult thing to measure - there are a lot of system dyanmics involved. I've had lots of people complain about this or that - my max test with v1.2 was 1 Modbus/TCP master polling flat out 2 register of a fast Modbus/RTU slave (an I/O block) at 19.2K was 23-25 polls per second. Consider that at 19.2, an 8 byte request takes 4msec to transmit and a 9 byte response another 5 msec. Yet I've had other people swear they can only manage 2 polls per second from some OPC servers. in 1.38 Beta testing, I was able to create 8 Masters all polling 10 registers each at 500 msec cycles (that's 16 polls per second). So just understand that your results will vary - it depends on how effective your Modbus/TCP master is, what baud rate you use, how fast your slave answers, and many other factors. Version 1.36 & 1.37 BETA release notes 01) Token-Ring Support is removed. For Token-Ring continue using release 1.2 (reclaims 8K of code space) 02) Removed the fixed character timeout of 1 sec for Modbus/ASCII Now uses the same user-settable char time-out as for Modbus/RTU (Users with Modbus/ASCII and WAN/Satellite required LONGER than 1 second) 03) Old char timeout range of 10 to 1275 msec is NOW 10 to 7050 msec. This is the timeout used AFTER the first char is seen to identify the end-of- message (only if the CoBox doesn't understand the Modbus command). (Users with WAN/Satellite required LONGER than 1.2 second at times) 04) Old msg timeout range of 500 to 60,000 msec is NOW 200 to 65000 msec. This is the timeout used: for start of first char, for RTS/CTS response, for TCP reassembly of TCP fragmented Modbus/TCP messages. (Users with fast slaves desired a faster timeout to handle the case of multiple slaves OFF-LINE at once with less impact on overall scan cycle) 05) TCP reassembly timeout now matches msg timeout (old was fixed at 5000 msec) (Users with WAN/Satellite possibly requiring LONGER plus makes more sense as designing for a 1000 msec serial timeout with a 5000 msec TCP timeout is nonsense) 06) Changed behavior in timeout condition (use of Modbus/TCP exception codes) Old design was inconsistant here 0x0B was ALWAYS returned on serial master-attached, but NEVER on network master-attached. This was actually backwards from what most users wanted, plus many users complained as the 0x0B exception was not properly handled by their Modbus/RTU masters. Added user option to have 'MB/TCP exception' returned on timeout or no-response (Expection 0x0A is defined as gateway busy - Transient Error - can try again) (Expection 0x0B is defined as slave unreachable - Hard Error - no use to retry) In 'Master-Attached' 0x0A returned to MB serial master if no socket could open or 0x0B if serial slave address is not in map table In 'Slave-Attached' 0x0B returned to MB/TCP master if no serial response in configured "msg timeout" or a CRC error occurs 0x0B is returned if RTS/CTS is enabled & no CTS or for some reason the Slave address received is invalid (not there). (In Slave-Attached mode currently 0x0A is not returned). DEFAULT is to have this disabled - users who desire it turn it on. PLC programmers using MAST blocks love this exception as it aborts the poll automatically when the slave is off-line without them requiring an external timer in their ladder logic. 07) Add support for 57K (valid for AMD CPU - UDS10, Micro, Mini_v2). Users who select 57K or 115K on hardware which does NOT support this are warned and the baud rate remains unchanged. (Old E2 supported 300..38K + 115K - no 57K) (Old DR1 supported 300..38K only - no 57K or 115K) 08) Trap/suppress use of 2-stop bits on AMD CPU - UDS10, Micro, Mini_v2. Users who select 2-stop bits on hardware which does NOT support this are warned and the settings are forced back to 1-stop bit. 09) Change port media selection PROMPTS to clarify RS-485 2/4-wire selection (Old prompt confused users who selected RS-485 2-wire even for RS-485 4-wire) 10) After accepting Interface param (RS-233/422/485) Warn DR1 users to also set the external switch to match. (Common problem - uses set one or other, but MUST do both) 11) Ready/Yellow LED behavior changed to match LX standard LX, Idle = Solid, active sockets = blink OEM=Schneider, Idle = blink, active = Solid (Users using BOTH standard CoBox and Modbus complained difference confusing) 12) Default port settings 9600,8,N,1 to match LX standard OEM=Schneider, default 9600,8,E,1 (Only Schneider defaults to EVEN parity, other Modbus devices default to NONE) 13) Suppress E2 prompts for DB9/DB25 if is AMD (not DR1 and not E2) (New hardware was confusing firmware prompts) 14) Change E2 prompts for DB9/DB25 to CH1 and CH2 (Prep for day when MiniRv2 with 2 comm ports is used) 15) When in "Master-Attached" mode, special ignore of a first NULL char - some PC apps send an initial null on port open. This is a minor issue, as it usually just caused one false "Bad CRC" error on start-up. However, it also caused the first poll to be lost on some Modbus/RTU master applications. 16) (* APS only feature - non-APS retains old default of pipeline always on *) Add user option to disable Modbus/TCP "pipeline" in Slave Attached mode. The true spec denies this exists, but many OPC servers (including Schneider's) do what SE calls "pipelining". More than 1 distinct Modbus/TCP is queued into the TCP FIFO to increase throughput. The v1.2 and earlier supported this fine, however many users try to PUSH the poll rate faster than the serial link can handle. The results is the pipeline fills up with OLD repeated polls - most of which the OPC server is NO LONGER interested in. This causes the slaves attached to go off-line even though they are working fine. The "problem" is that when users power cycle the CoBox, data comm starts working again so they mistakely assume the CoBox was crashed/faulty & blame Lantronix instead of the true culprit of unsuitable timeout or too fast of polling. Disabling the pipeline is a simple matter of making sure a Modbus/TCP request received from the FIFO is the LAST message there. The DEFAULT is to enable the Pipeline (ie: ignore if MORE data is in FIFO), but the user manual trouble-shooting section should help users understand pipeline/queuing symptoms and when to disable it. 17) When in "Master-Attached" mode, CoBox no longer holds remote TCP ports open "forever". Now it only opens them to talk and allows them to close after a user defined idle time. Default is 10 seconds. 18) When in "Master-Attached" mode, CoBox uses an IP mapping table to convert a Modbus/RTU slave address to a remote IP. Old design only allowed 8 remote IP & held up to 8 sockets open forever. We added a simple option to allow the user to use the Slave address as the 4th Octet of the IP. This means they can now access 255 remote IP on up to 8 subnets. This also simplifies setup as now for 50 remote IP (say 192.168.0.1 to 192.168.0.50), the user only needs to configure the IP 192.168.0.0 in as one entry and access them as slaves 1 to 50. 19) When "Master-Attached" re-enabled the test to verify sequence number. This was for some reason disabled by previous versions, but is super critical to reliable operation. If the TCP/IP link is slow, we may abort/give up waiting for a response, issue a new 2nd request, and - in effect - receive 2 response (the old aborted one and the new 2nd one). The Sequence number is critical to allow the CoBox to discard the old aborted response and recognize that it must STILL wait more for the correct response. Without this verification, CoBox can RETURN wrong response to master (ie: a poll to slave X receives a response from slave Y). 20) When "Slave-Attached" save the request's slave address & command byte to help relably verify the correct response matches (to the best of this crude methods ability) the original request. In RS-232 or RS-485 4-wire mode it is possible for a slow slave to reply while the CoBox is sending a NEW request. While we do flush the rcv buffer etc, we have a race condition where in theory all or part of the last message will make it into the receive buffer and be mistaken as the new response. So we save these 2 bytes to help identify the incorrect response. This is NOT a good enough verify method to "promise" the received response is 100% what we expect Without this verification, CoBox can RETURN wrong response to master (ie: a poll to slave X receives a response from slave Y). This is especially TRUE if the attached slave is really another bridge/gateway used for some other change. 21) If user sets a Message Timeout less than the estimated worst-case Modbus poll time per selected baud rate, user is warned. Estimated worst-case Modbus poll time is defined as the time to send an 8-byte request, wait 50msec for slave processing, and to receive a 255-byte response. Since many small devices may NOT include so much data, the user is not FORCED to the larger timeout ... only must endure the warnings. (This is added as some users set slow baud rates WITHOUT compensating for this in the message timeout & then complained of high error rate or full failure). 22) Trap/suppress use of 7-data bits for Modbus/RTU (required 8-data bits) 23) HTTP web server is enabled - but only a dummy page is included 24) RS-485 2-wire turn-around was tweaked for the DR1, UDS10, and CoBox-FL. The RTS/RS-485 transmitters is turned ON about 1 msec before data starts transmitting. After the last data-bit, the following "turn-around" or delays are seen before the RS-485 transmitter is dropped (times in milliseconds): Baud 1 Char DR1 UDS10 CoBox-FL 300 33.3* 4.5 to 5.5* 3.5 to 4.0* 3.5 to 4.0* 600 16.7 2.5 to 3.0 2.0 to 2.5 2.0 to 2.5 1200 8.3 1.0 to 2.0 1.0 to 1.5 1.0 to 1.5 2400 4.2 0.4 to 0.6 0.6 to 1.0 0.6 to 1.0 4800 2.1 0.3 to 0.5 0.4 to 0.6 0.4 to 0.6 9600 1.0 0.3 to 0.5 0.2 to 0.4 0.2 to 0.4 19200 0.5 0.3 to 0.4 0.2 to 0.4 0.2 to 0.4 38400 0.3 0.3 to 0.5 0.2 to 0.4 0.2 to 0.4 57600 0.2 (not avail) 0.2 to 0.4 0.2 to 0.4 115200 0.1 (not avail) 0.2 to 0.4 0.2 to 0.4 *Note: at 300 baud, the final stop bit takes about 3 msec! If 2 stop bits set, DR1 takes this into account (UDS/FL don't support 2-stop bits)