H2-DM1 and H2-DM1E Firmware Revision History
GA Version OS Version Date

Description of Problems / Additions / Changes

  2.0.2 22-Feb-2017

Added a 1 MB RAM File System and a suite of FILE instructions to manage files on the RAM file system. There's also a file system browser in Do-more Designer v2 that is used to mange the contents of RAM file system from the PC running Do-more Designer.

Changed the EMAIL instruction so that it can now include a file attachment from the RAM drive.

Added FILELOG instruction for data logging to a file in the RAM file system.

Added Subroutine code-blocks and the CALL, END and ENDC instructions that are used to run them.

3.0.7   22-Feb-2017 Fixed a problem that would cause the Ethernet port to be come unresponsive.
  1.4.1 21-Sept-2015 Fixed a problem when accessing 125 Registers with Modbus Network Write (MWX) or Modbus Network Read (MRX).
  1.4.0 07-July-2015 Added EIPMSG - Send EtherNet/IP Message instruction to have a Do-more CPU with on-board Ethernet port be EtherNet/IP Explicit Message Client.

Added EtherNet/IP Explicit Message Server setup to the CPU Configuration to have a Do-more CPU with on-board Ethernet port be an EtherNet/IP Explicit Message Server.

Added RX - Do-more Network Read instruction to have a Do-more CPU with on-board Ethernet port read data from other Do-more CPUs with on-board Ethernet ports.

Added WX - Do-more Network Write instruction to have a Do-more CPU with on-board Ethernet port write data to other Do-more CPUs with on-board Ethernet ports.

If the result of a MATH - Calculate Expression is an array reference, you can now enter a full MATH expression for the array Index.

DEVREAD - Read Device Register and DEVWRITE - Write Device Register instructions can now read and write the POP3 Server IP Address and the SMTP Server's Timeout value.

  1.3.2 09-July-2014 The DM1E CPU can now be configured to power up in RUN mode if the onboard battery is missing or if the battery voltage is too low to maintain the retentive memory through a power cycle.

Fixed a buffer overflow problem when using multiple Email instructions.

DNS Lookup instruction will now return an error if the DNS Lookup operation succeeds but the TCP/IP address is

3.0.6   14-May-2014 Made a change to the Watchdog Timer logic to eliminate the potential for spurious watchdog timeouts.
  1.3.0 01-May-2014 If the Onboard Serial port buffer accumulates more than 1023 bytes of data then $SerFifoOverflow (ST17) will be ON. As data continues to flow into the buffer the oldest bytes will be purged. The serial port's RX LED is now more indicative of activity on the port.

If an attempt to change the PLC mode fails then $ModeChngFailed (DST410) will contain the failure code.

If a runtime exception occurs the CPU will store the return address of the last call before the exception in $DebugTrapAddr (DST411). A non-zero value in this location indicates that a runtime exception occurred and this value may be useful to the Do-more Designer developers.

  1.2.0 03-Apr-2014 Added UDCG - Global Up/Down Counter instruction.

Added TMRAG - Global Accumulating Up Timer instruction.

The DEVREAD - Read Device Register and DEVWRITE - Write Device Register instructions can now read and write the String and Numeric parameters in the SMTP Server's configuration.

Added the IPADDR format specifier to the Format Integer (FmtInt) scripting function for use by STRPRINT - Print to String and EMAIL - Send Email instructions.

Added support for Function Code 22 (Mask Write Register) to the Modbus/RTU Server and Modbus/TCP Server.

SUBSCRIB properly handles Swap Bytes of WORD sized element with a range larger than 1.

  1.1.2 30-Oct-2013 Added DST29 ($PLCType).

Added PartNum and SerialNum system strings.

DEVREAD can the serial port configuration at runtime.

DEVWRITE can change the configuration of the onboard serial port and a SERIO module at runtime.

3.0.5 1.1.0 20-Aug-2013 Added Ethernet I/O Master which can use H2-EBC100, T1H-EBC100 and GS-EDRV100 as Ethernet I/O Slaves.

Added Module Configurations for Intelligent Analog modules.

Added ability to enable a Secondary Ethernet Programming TCP/IP port number for use by Do-more Designer.

Added GSREGRD and GSREGWR instructions to Read and Write parameter data in a GS1, GS2, or GS3 drive through a GS-EDRV100.

The Input Leg of the STRPRINT, STRFIND, STRSUB, STRCMP, and DATAINFO instructions can now be configured as Power Flow Enabled or Edge Triggered.

Added PING, DNSLOOKUP instructions.

The new Gate Array fixed a problem in the Math Stack with writing Real numbers to integer locations if the write operation was the first instruction in $Main.

Fixed a problem in the initial update of the Rate of Change Alarm (ALRATE) instruction.

Added <NUL> character removal to Trim Whitespace (STRTRIM) - in addition to <CR>, <LF>, <TAB>, etc..

Accumulators of Down Timers have a limit of 0; Up Timer Accumulator have a limit of 2,147,483,647; accumulator values will no longer roll over, which were turning off the Timer's .Done bit.

Fixed a problem where the K-Sequence serial protocol would not recognize Slave IDs other than 1.

Improved performance of the handlers for Guest Protocol memory ranges with DirectLOGIC and Modbus slave/server protocols.

Fixed a problem in the validation for Copy Memory (MEMCOPY) instruction.

Better handling of "Termination Scan" between the Enable Task (ENTASK) instruction and corresponding TASK code-block.

  1.0.9 02-Apr-2013 Fixed a problem that only occurs when working with projects that exceed 32Kb in size. The problem was that memory above the 32Kb boundary was not correctly being erased.

Fixed a problem that did not allow the termination logic for a Task to run if the Task completes and is re-enabled on same PLC scan.

Fixed a problem that only allowed external clients access to locations in the DLV range from DLV0 to DLV7777. The range of acceptable requests now correctly extends from DLV0 to DLV37777.

Fixed a problem where the K-Sequence serial server was always using 1 instead of the configured address.

Fixed a problem where the Rate of Change Alarm (ALRATE) instruction did not correctly set the initial state of its data elements.

Fixed a problem that caused the Copy Memory Range (MEMCOPY) instruction validation would fail when bit arrays are used.

Fixed a problem that caused the Copy Memory Range (MEMCOPY) to incorrectly copy structures.

Fixed a problem that caused the Clear Memory (MEMCLEAR) was not working correctly with certain bit ranges

Changed Scale Value (SCALE) instruction to internally use 64-bit math for integers.

Fixed a problem in STREAMOUT, STREAMIN, STRGETB, STRPUTB, PACKETIN, and PACKETOUT instructions which, in certain cases, would cause them to incorrectly perform range checks on array references.

  1.0.7 14-Nov-2012 Fixed a problem when using the F2-02DA-2 or F2-02DA-2L in bipolar data format mode with negative data values.

Fixed a problem in the K-Sequence Server so that writes to BIT locations operate properly.

Fixed a problem in the Memory Configuration if the block size of DLX, DLY or DLC exceeded 1024.

The SCALE - Scale Value instruction now internally uses 64-bit math calculations to minimize math overflows.

Made a change to the backplane interface for the H2-ECOM100 to better support native data types.

  1.0.6 4-Oct-2012 Added $PgmModeRestart (ST15) to distinguish a powering up in Run mode versus a Program mode -to- Run mode transition.

Changes the built-in Program $Main so that it always restarts regardless of whether it powers up in Run mode or goes through a Program mode -to- Run mode transition.

Fixed the KSequence driver handle a problem in accessing KSequence Server memory through an ECOM100.

  1.0.5 24-Sept-2012

Updated the error message for CTAXCFG (CTRIO2 Axis Configuration) instruction.

Fixed problem where attempting to access a memory location in the K-Sequence Server memory (DLX, DLY, DLC, DLV) that is NOT in the current System Configuration would generate a memory access error. For example, if the K-Sequence memory is configured for the range of DLV0 through DLV1777, and a K-Sequence request for DVL2000 is received, a memory access error is generated.

On a Program Mode -to- Run Mode transition the elements in Force table will no longer be set to the values in the force table if the Force table contains entries but the Force table itself has been disabled.

3.0.4 1.0.4 6-Sept-2012 Initial Release