|H2-DM1 and H2-DM1E Firmware Revision History|
|GA Version||OS Version||Date||
Description of Problems / Additions / Changes
Fixed a problem that would cause the Modbus/TCP server to fail if the client
impropertly requested more than 125 words in a single request.
A few minor bug fixes but mostly to stay in sync with BRX firmware version.
Added support for the new DURApulse GS4 drive through the GS-EDRV100 as
an Ethernet Remote I/O Master.
This feature also requires Do-more Designer v2.2 and
GS-EDRV100 firmware v6.0.2.
Added the following instructions:
COPY - Copy Data
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.
Fixed a problem that would cause the Ethernet port to be come
Fixed a problem when accessing 125 Registers with Modbus Network Write (MWX)
or Modbus Network Read (MRX).
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.
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 0.0.0.0
Made a change to the Watchdog Timer logic to eliminate the
potential for spurious watchdog timeouts.
If the Onboard Serial port buffer accumulates more than 1023
bytes of data then
(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
(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
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.
Added DST29 ($PLCType).
and SerialNum system strings.
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.
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.
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.
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.
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.
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.