Improvements and bug fixes V12.0.61.u6 (build 06)

for D2000 V12.0.61.u6 (build 06)

**************** Improvements ****************
**************** 27.4.2020 ********************

D2D-5322 KOM
The functionality of the ""Check Receive Length"" parameter for I/O tags reading binary Modbus registers using functions 1 (Read Coils) and 2 (Read Discrete Inputs) has been corrected.

D2D-5274 EDA
Logging information about access to EDA vectors has been extended by computer name.

D2D-5275 EDA
Access rights to EDA vectors can now be defined using computer name mask.

D2D-5311 CNF, KOM
A new communication protocol Siemens SIMATIC 3964 (R) CW (Control Web)  has been implemented for serial communication with Siemens Simatic S5 and S7 PLCs. This protocol was implemented to migrate Control Web to D2000 technology.

D2D-5151 KOM
In the OPC UA protocol, the ""Client Type"" parameter has been added which can be set to the ""Secure"" option. This mode supports advanced authentication, encryption, and message signing capabilities.

D2D-5487 CNF, KOM
In IEC 62056-21: 2002 Serial protocol, new parameters have been added that allow more flexible configuration of data reading from profiles:
- Profile Read Mode (standard/block reading + variants with sending password P1)
- Profile Read Block Length (block size for block reading)
- Profile Read Formatted Execution (specification of special command)

D2D-5146 KNL
When importing XML files, the D2000 Server can also import an object that has been renamed ( item in the  section was changed) and references itself (i.e. it contains a reference in the  section with the old name and somewhere else - e.g. in the calculation if it is a calculated point, is the old object name).

D2D-5234 CNF, KOM
In the IEC 870-5-101 Server protocol, the DataClass parameter has been added to control whether the server is sending data as Class1 (default), Class2, Class1/2. Another option is to send replies to commands as Class1 data and all other data as Class2 data.

D2D-5272 ARC
The Tell command REOGANIZE has been enhanced so thatn a tablespace can be specified. Now it is possible to move a table to a specific tablepace on the PostgreSQL platform.

D2D-5283 CNF, KOM
Support for hexadecimal notation of Selector in the address of the I/O tag  was implemented in the LonTalk protocol . The hexadecimal Selector begins with a ""#"", e.g. #1AD.

D2D-5271 KOM
Remia KME protocol has been extended to support reading of generic instant data. These can be of different types (BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, FLOAT, DFLOAT, RTD). A new protocol parameter ""Generic Actual Data Object ID"" has been implemented to activate the functionality. The address of the I/O tags for generic instant data starts with ""GA"".
The possibility of reading from the event logs has also been added. A new protocol parameter ""Generic Event Object ID"" has been implemented to activate the functionality. The address of the I/O tag that activates reading from the event log is ""RECNR"".

D2D-5287 KOM
In the OPC UA protocol, an option to specify multiple hosts separated by a comma or semicolon in the line configuration has been added, similar to the TCP and UDP line configuration.

D2D-5332 ARC
The calculation of archive objects for the archive with depositories has been optimized. If an archive object has never had a value, when calculating archive objects which depend on it , the archive will not try to read the value from the depositories, even if they are available.

D2D-5391 KOM
Support for writing to array items has been implemented in the OPC UA Client protocol. Only one item can be written at a time; via the output I/O tag with the ""Array Index"" set to a single value.

D2D-5321 HI
AutoCompletteList adapts list width to entryFiled width. A horizontal scroll bar has been added to the list.

D2D-5153 EDA
The IP address of EDA Server is detected automatically from computer name, if it's not set using /EDAH parameter.

D2D-5212 EDA
Detection of connection drops using PostgreSQL database has been improved and is now more reliable.

D2D-5237 ESL, EVH, System
A new asynchronous interface for external functions has been created. Simultaneously with it, a new version of helper library for development of external functions has been released.

D2D-5437 CNF, KOM
In the IEC 62056-21: 2002 Serial protocol, a new ""Time Date Mode"" parameter has been implemented that extends the date and time writing capabilities (necessary e.g. for Schrack LZQJ)

D2D-5328 KNL, CNF, KOM
The Honeywell C-Bus protocol, which was only supported on the ""Honeywell C-Bus"" link (a proprietary ISA card was required), was supported on the Serial / SerialOverUDP lines using either a KPX02 communication computer or an RS-485 port computer directly.

D2D-5392 KOM
In the Modbus protocol, the ""standard"" version of the 8-byte little endian format   < B8>  was supported using the modifier ""D"" in the address of the I/O tag . Until now, only the format  was supported using the ""d"" modifier.

D2D-5454 HI
Functions %HI_SetBrowserAutoRefresh and %HI_GetBrowserAutoRefresh are also available in the HIX version.

D2D-5226 HI
The new function %HI_LNG_SetCurrLngIdx (IN INT _lngIdx) allows you to change the current user language in the D2000 HI process.

D2D-5224 HI
In IEC104 client protocol a new parameter ""Interrogation By Broadcast Address"" has been implemented.
If the parameter is True, then the process D2000 KOM sends ASDU 100 [Interrogation Command] resp. ASDU 101 [Counter Interrogation Command] during connection initialisation to a single station with ASDU address 0xFFFF (decimally 65535).
Otherwise, it sends these ASDUs to all stations on the line that have input I/O tags and are not turned off.

D2D-5514 KOM
In AMiT ATOUCH32 DB-Net protocol, optimized matrix readings (INT_MX, LONG_MX type variables) were also supported for Di, Dout I/O tags.
If there are multiple configured /O tags (not only Di, Dout, but also Ci, Co, Ai, Ao) with the same WID and Type, and if the ""Enable Matrix Read"" parameter is enabled on the station, they will all be read by one optimized matrix reading.
At the same time, the crash of the KOM process during matrix reading (variables of INT_MX/LONG_MX types) into Di, Dout I/O tags and writing Dout I/O tags into matrix was corrected.

D2D-5535 HI
Text mode for RFID readers was supported in the HI process. Mode selection is possible by setting the ""RFID parameters"" parameter string.

**************** 1.7.2020 ******************

D2D-5614 KOM
A new parameter /KKVOE has been added to the KOM process. It will cause the values of the I/O tags not to be invalidated after a communication error.

**************** 27.8.2020 ******************

D2D-5653 CNF, KOM
A new data type for I/O tags - CHARARR has been implemented in the Siemens SIMATIC S7 ISO on TCP protocol, which allows working with an array of CHARs as if it were a string (STRING).
BCD and LBCD data types have also been implemented, which enable work with 2-byte and 4-byte BCD coded numbers.

**************** 7.12.2020 ******************

D2D-5783 EDA
VBA interface for EDA has been extended with function for calculation of selected statistic over vector values (EDA_StatVector) and with function calculating sum of vector values in group or scenario (EDA_SumGroupOrScenario).

D2D-5801 KOM
Within the callback calling of  GetPoint/GetFastPoint, the value of PointPar.ppPtVal (of KomUniVal type) was set according to the current value of the I/O tag. This can be used for slow protocols using reading in blocks (e.g. Modbus type) to detect if the Transient flag is set. If so, writing to the I/O tag is in progress and setting the value of the I/O tag due to reading should be avoided.

D2D-5836 CNF,KOM
Support for TCP/IP-TCP line was added to the L&G Toccata protocol

***************** 25.8.2021 ********************

D2D-5866 KOM
Support for DTL format (12-byte date and time with nanosecond accuracy) has been implemented in the ""Siemens SIMATIC S7 ISO on TCP"" protocol.

D2D-6011 CNF,KOM
Support for Moire Labs P1AT/P1AP temperature and pressure sensor has been implemented in the LoRaWAN protocol.

D2D-6024 KOM
In the Modbus Client protocol, it is possible to change the ""Addressing Model"" parameter online (without the need to restart the KOM process).

D2D-6071 KOM
Support for function 23 (Read/Write Multiple registers) has been added in the Modbus Client protocol. This function can be used to write a value. The function has been tested on Lenze i550 frequency inverters.

D2D-6107 KOM
A new LNALTERPATH command has been implemented in the KOM process. It allows switching the communication between the primary and the backup device on lines of type ""SerialOverUDP Device Redundant"", ""SerialOverUDP Line Redundant"", and ""SerialOverUDP System&Line Redundant"". The command also allows querying of the currently used device.

********************** Bugs **********************
**************** 27.4.2020 ********************

D2D-5415 DBM
In the DbManager process, several bugs related to reconnecting to a database after a connection breakdown have been fixed. All errors were related to connections opened by SQL_CONNECT using a connect string (as an alternative to a Database object).

D2D-5145 ESL
XML export from ESL was unified with XML export from CNF as follows:
empty tags are generated as follows: <VHL_ID/>.

D2D-5154 CNF, KOM
In the Johnson Controls N2-Bus protocol, the MaxErrors parameter has been added. If the number of errors in one reading cycle reaches MaxErrors, further I/O tags will not be read. The default value of 0 disables this behavior.

D2D-5163 KNL
An error that could lead to application crash (crash of D2000 Server process)  was fixed. This error could be demonstrated by configuring a archive object with publishing value to structure (if instead of publishing value to a specific structure column - e.g. SV.Test [0] ^ Col1 the value was published into the whole structure - e.g. SV.Test).

D2D-5215 GTW
A bug in the Gateway Server process has been fixed. This bug occurred when deleting objects on the D2000 Server to which the Gateway Server was connected.
If an object that was transmitted by the Gateway Server was deleted, the Gateway Server did not close that object. As a result, it remained in the list of deleted objects on the D2000 Server, and it was not possible to recreate the object with the same name.

D2D-5232 KOM
In the IEC101 server/balanced (secondary) protocols, the checking of FCB bit has been added. If it is the same in two messages received in succession, the previous reply should be repeated to the master according to the standard (the message is considered duplicate).
The discarding of redundant data has been added in the IEC101 client protocol. If a correct response has been received and there is still some data after it (e.g. a duplicated response), it is discarded.

D2D-5233 DBM
A bug in the DBManager process that caused it to crash while executing the SQL_EXEC_PROC action has been fixed. The bug was created on January 17, 2019 by issue ""D2D-4773 Optimizing work with non-text variables"".

D2D-5236 ARC
Functionality of CALCSTATFUNC action when calculating selected statistics for periodic archives was fixed. CALCSTATFUNC gave erroneous results for periodic archives when used to calculate statistics _STAT_F_INTEGRAL, _STAT_F_WGAVG, _STAT_F_GT_TIME, _STAT_F_GE_TIME, _STAT_F_LT_TIME, _STAT_F_LE_TIME, if the end time was in the future. It calculated a result as if  the last valid value of the source periodic archive was valid until the end of the interval. After correction, each value is considered valid only for a period equal to the period of archivation.

D2D-5326 DBM
A crash of DbManager process due to calling SQL_BINDIN without previous SQL_PREPARE was fixed.

D2D-5331 KOM
If a structured control object (default value or output control) was configured for I/O tag, it was not functional after the start of the KOM process. Only the change of its value during the running of the KOM process (or saving of the I/O tag) caused the change of the I/O tag value.
Similar problems could be encountered with evaluating of the I/O tag limits if the limits were configured as structure items.

D2D-5193 EDA
If used after EXIST, EXVEC, EXSCN or EXGRP, invalid database entity has been incorrectly evaluated as existent.

D2D-5428 DBM
An error was fixed in DbManager that caused it to crash when empty operations for PostgreSQL or an unknown database were turned on. At the same time, empty operations for PostgreSQL database were implemented.

D2D-5150 ARC
An error affecting GETARCHVAL action was fixed. This error could cause the GETARCHVAL action to return old values for periodic archives filled from script that have value playback enabled.

D2D-5015 KOM
In the IEC 870-5-104 Sinaut protocol, a new ""Ignore Flagged"" parameter was added. If allows to configure flags (A..H) to cause the value to be discarded. The parameter was required by practice when it was necessary to filter out the values with the ""Non-topical"" flag (mapped into G flag) that came from the communication partner.

D2D-5474 KOM
A bug that led to the KOM process crash has been fixed. The crash occurred after changing the value type of the I/O tag (eg Ci -> Ai), which had the destination structure configured, when a new value arrived.

D2D-5285 KOM
The functionality of the inverted polarity output I/O tag (Dout) has been fixed.
At the same time, the behavior of the output I/O tags in the Modbus Server protocol was corrected. The values of the output I/O tags after the correction correspond to the assigned values and not to the values sent to the communication (these are different if the inverse polarity for Dout is activated or the conversion to technical units for Ao, Co is configured).

D2D-5477 HI
Fixed HI crash when Windows time format setting uses more than 12 characters.

D2D-5503 KOM
The following error that occurred on Serial and Moxa IP Serial lines when setting Handhaking = Custom was fixed:
If DTR/DSR handshaking was selected, the DTR setting was dependent not only on the Invert setting but also on whether DTR=0 or DTR=1 (while these settings were disabled in the CNF).
If RTS/CTS handshaking was selected, the RTS setting depended not only on the Invert setting but also on whether RTS=0 or RTS=1 (while these settings were disabled in the CNF).
After correction, the appropriate setting is 1 (ON) or 0 (OFF) if the Invert option is checked.
In practice, these settings were used for older types of converters (eg RS232 / RS485), where the access to the bus was controlled by DTR or RTS signal.

**************** 19.5.2020 ********************

D2D-5571 KOM
An error has been fixed in the IEC 62056-21:2002 Serial protocol, which caused the loss of values at the time of the transition from winter time to summer time (e.g 29.3.2020 at 2:00 am).
The error occurred if the electrometer also sent a winter/summer time flag (characters '0' or '1' at the beginning of the date).

**************** 1.7.2020 ******************

D2D-5592 KOM
The behavior of the I/O tag with an active default value when switching redundancy has been fixed. The incorrect sending of the last telemetric value was fixed - while in the case of an I/O tag with a default value, it was necessary to send the current value, not the telemetric value.

D2D-5627 KOM
A buffer overflow bug was fixed in the Johnson Controls N2-Bus protocol . This error could lead to a KOM process crash if data longer than 1kB was received.

D2D-5644 ARC
The malfunction of the calculated archive object has been fixed. The malfunction (archive object stopped being calculated) occurred with the following sequence:
- an XML import of the archive object was performed (without changing the configuration, i.e. maintaining the modification time)
- the archive object was subsequently edited or an XML import was performed with a configuration change.
Such an archive object stopped being calculated until the archive was restarted.

**************** 27.8.2020 ******************
D2D-5655 KOM
A  bug in the BACnet protocol was fixed. This bug could cause reading of values on a particular BACnet station to stop working.
The error manifested itself on UDP lines in a configuration with a larger number of stations and a higher communication load.

D2D-5679 KOM
A bug was fixed in the IEC-104 Server protocol on the Linux platform, which manifested itself in the fact that after switching KOM redundancy, the process still received one client (despite the fact that it was no longer supposed to listen on the defined TCP port).

D2D-5685 KOM
An error in the OPC protocol was fixed, which could lead to a crash of the KOM process at the start of browsing (depending on the specific OPC server).

**************** 7.12.2020 ******************

D2D-5728 ARC
The following error in the archive has been fixed: if the source for the statistical archive is another statistical or calculated archive with storing of the interval start time, then the calculation was not corrected after calculating the source data for a specific interval. During the first calculation, not all data may have been available yet, after the calculation of the source data, the correction recalculation did not take place. The workaround was to manually trigger the correction calculation with the RECALC tell command. The error only concerned continuously calculated archives.

D2D-5745 ARC
An error in the calculation of on-change calculated archives was fixed in the D2000 Archive. This error could have caused the value not to be calculated. The error occurred if one of the source archived objects was a self-referencing calculated archive.

D2D-5784 ARC
An error in the archive that affected periodic script-filled archives has been fixed. Their local cache was filled when inserting into archives and was never deleted.
If an isochronous cache was configured in the archive, its depth was gradually reduced and subsequently the memory consumed by the archive increased.

D2D-5786 KOM
A bug was fixed in the KOM process that caused it to crash if the I/O tags were deleted, while all stations with a specific protocol on the parent line were turned off from the start of the KOM process.
The error applies to protocols:
ABB SPA bus
BACnet
DNP3
ESC8816
IEC870-5-101
OPC UA Client
OPC XML Data Access 1.01 Client
Siemens SIMATIC S7 ISO on TCP

D2D-5790 KOM
The StOff station status is treated correctly now in several protocols. The current treatment may have caused the communication not to start after the transition from the StOff state:
DNP3
Generic User Protocol
Honeywell PCNM
KNX
OPC UA

D2D-5794 ARC
In the D2000 Archive process, the TrezorReadSinceCreate parameter has been added, which allows you to restrict reading from depositoriess to those depositories that are not older than ""Create Time"" - the time of creation of the respective archive object.

D2D-5815 KOM
A bug was fixed in the KOM process that could cause the occurrence of values with ValType=NaN (but gValType is correct, e.g. Bo) if the I/O tags were configured with process alarms.

D2D-5731 KOM
In the D2000 KOM process, the memory leak that occurred when using text I/O tags in OEM protocols was fixed. A memory leak was inside the callback function PointNewValue.

D2D-5708 KOM
The KomAPI function WriteToLine caused the KOM process to crash if it was called with the parameter Len=0. Sending zero-length data on a TCP line should cause the TCP connection to close.

D2D-5795 KOM
A bug in the Modbus Server protocol was fixed. It could cause clients that connected to the Modbus Server to read incorrect register values after restarting the KOM process.

D2D-5756 KOM
A bug in Modbus Client / Server protocols was fixed. It caused an I/O tag to be ""forgotten"" after editing (or XML import) of another I/O tag that had the same address, differing only in the Modbus function number - e.g. I/O tag with address I3.0 caused malfunctioning of an I/O tag with address I4.0 (register on address 0 in the address spaces Holding register (3) and Input Registers(4)).
In the Modbus Server protocol, the ""forgotten"" I/O tag became Invalid when a new value was written to it.
Workaround: a restart of the KOM process after an I/O tag was edited.

D2D-5821 KOM
Several errors have been fixed in the KOM process that could cause the KOM process to crash in different states (eg when switching redundancy) if stations with different communication protocols were configured on the line.
The error concerned protocols:
BACnet
DNP3
Ethernet/IP
Fisher-Rosemount RS3 SCI
Honeywell Excel C-Bus
OPC Data Access 2.05 & 3.0
OPC Historical Data Access 1.20
OPC XML Data Access 1.01
RFE
SNMP

D2D-5826 KOM
A new ""Read Mode"" parameter has been added to the OPC UA protocol. It allows values to be read by polling (ReadRequest) instead of sending notifications by the OPC UA server. This method of reading values has a higher overhead and is only recommended in case of problems with the standard method of reading.

D2D-5848 ARC
If the calculated archive used the %Arc_GetValue function over the periodic/statistics archive that was calculated on-read and the time used in the %Arc_GetValue function did not match the times for which the source archive was to be calculated, then the %Arc_GetValue function could return bad results.
The fix handles the time specified in the %Arc_GetValue function and adjusts it to the periodicity of the source statistical/calculated archive.
Possible workaround: alignment of time used for the %Arc_GetValue function to a required period.

D2D-5847 ARC
An error in the archive that caused an interval recalculation malfunction (e.g., for the RECALC tell command) was fixed for a calculated archive that did not use other archives in the expression (i.e., a constant computation or a value derived from @EvalTime).
Possible workaround: artificial addition of source archive (e.g. change of expression ""Hour(@EvalTime)"" to ""Hour(@EvalTime) + H.Day - H.Day"").

***************** 25.8.2021 ********************

D2D-5936 ARC
In the D2000 Archive process, the ability to compress depositories on the PostgreSQL platform has been added.

D2D-5915 KOM
A new ""Max Pending Publish Requests"" parameter has been added to the OPC UA protocol, which causes the connection to be closed if the number of unconfirmed consecutive ""Publish request"" messages exceeds this value.

D2D-5921 SYSTEM
The S5TIME data type has been added to the ""Siemens SIMATIC S7 ISO on TCP"" protocol. This is a double-byte time - Simatic S5 format (0.001 - 9990 seconds with variable accuracy 0.01 - 10 seconds).

D2D-5801 KOM
Within the callback calling of  GetPoint/GetFastPoint, the value of PointPar.ppPtVal (of KomUniVal type) was set according to the current value of the I/O tag. This can be used for slow protocols using reading in blocks (e.g. Modbus type) to detect if the Transient flag is set. If so, writing to the I/O tag is in progress and setting the value of the I/O tag due to reading should be avoided.

D2D-5887 CNF
A bug was fixed in CNF that made it impossible to enter a negative UTC offset (in objects of type Database, Historical value, Eval tag and Station).

D2D-5889 DBM
A bug that caused the DB (S) _UPDATE_BLOB action to malfunction on Linux/Raspberry PI platforms was fixed.

D2D-5917 KOM
Communication path flags have been added to the OPC UA Data Access Client protocol. If several IP addresses are configured on the line (communication via several redundant networks, or communication to a redundant OPC UA server), then the FLB flag on the station indicates that an alternative IP address (i.e. the second or next one entered) is used. The FLN, FLO, FLP flags indicate which of the alternative IP addresses is used (if more than 2 IP addresses are configured on the line).

D2D-5814 ESL
Performing a GETARCHSTRUCT, GETARCHROW, or GETARCHCOL action did not free memory. Its size is directly proportional to the number of archive objects that are read.

D2D-5990 CNF,KOM
In the OPC UA protocol, connection establishment was fixed if the OPC server uses a SessionAuthenticationToken of the BYTESTRINGID type.
At the same time, a semicolon was supported in the ID OPC tag in the I/O tag configuration.

D2D-5997 KOM
In the BACnet protocol, the behavior for I/O tags with their own Read/Subscribe period in the event of a communication failure has been fixed. The fix is to prevent the generation of read requests when such requests have already been generated. The fix prevents the queue from being overflowed with requests to read such I/O tags.

D2D-6018 ARC
A bug was fixed in the implementation of the INSERTARCHARR action. If this action was called with an empty structured variable, requests to recalculate dependent archive objects were generated unnecessarily.

D2D-5929 SYSTEM
In multiple protocols, the behavior of changing the address of the I/O tag, which could lead to errors, was corrected. The workaround was a restart of the KOM process. List of affected protocols:
ABB Elektro
Allen-Bradley CSP/PCCC
Allen-Bradley DF1
Allen-Bradley DH485
ALYA MMP
ALYA Spool
ALYA VT200
AMiT ARION
Contal Card Reader
CSV Import
Diamo-L KOS/SOS
Echelon LonTalk
Elcor ELGAS Daniel
ESC 8800
ESC 8816
Fisher-Rosemount RS3 SCI
Generic User Protocol
HYDROLAB DataSonde 4a TTY
IEC 870-5-104 Sinaut
IEC 870-5-104 TCP
IEC 870-5-104 TCP Server
Incos PM_EL 04
KMZ Protocol
KNX
L&G PROFIBUS
M-Bus Rev. 4.8
MDIS5 Device
Mettler Tolledo Printer
MODBUS Circutor CVMk
MODBUS Telemecanique TSX
MT-IND690
PCMBA/IEC870-FT1.2
Remia E3
Remia KME
Servomex XENTRA
Siemens SIMATIC 3964(R)
SMS Gateway
Transcon DAP 128TC
Valmet MODBUS RTU GTW:LIS
VONSCH VQfrem 400
ZPA INMAT64/65

D2D-6078 KOM
An Allen-Bradley CSP/PCC and Allen-Bradley DF1 protocol malfunction was fixed. This malfunction was created by modification D2D-5929 dated 2.3.2021.

D2D-6091 SYSTEM
Invalid EXPORT_CSV for the entire object and row of the structured variable. The action has been wrong in event.exe and in event.dll since 28.04.2021

D2D-6116 KOM
An addressing error has been fixed in the Modbus Client protocol. If there were I/O tags with address X (lower byte) and B (upper byte) on the same address, e.g. X3.27 and B3.27, only one of them worked.
Workaround: change the address from X to Ul and from B to Uu (e.g. Ul3.27 and Uu3.27).
Furthermore, a bug of writing to an I/O tag with address B has been fixed (the writing also affected the lower byte) and the writing to an I/O tag with address X has been implemented.

D2D-6123 KOM
In the BACnet protocol, a bug was fixed that could cause a periodic read or periodic subscribe request to be lost from the timeout queue. Consequently, this action (read/subscribe) stopped being performed periodically.

Your message was successfully sent.

Thank you for submitting the form.

Image Description

Your message was successfully sent.

Thank you for submitting the form.

Image Description

Your message was successfully sent.

Thank you for submitting the form.

Image Description