Release Notes D2000 Server 21.0.70.u6

Improvements and bug fixes for D2000 V21.0.70.u6 (build 06)

**************** Improvements ****************

An expression ?[]:[] was considered invalid when combined with a string.
For example:

TEXT _SchemeName
_SchemeName := {_SchemeName = """"} ? [""""] : [""]""]

D2D-6186 ARC
Several optimizations have been implemented in the D2000 Archive process in order to increase speed on Linux (using unixODBC) and Windows platforms. In addition to these optimizations, we recommend recompiling unixODBC (see D2000 documentation).

D2D-6191 KOM
The MQTT protocol has been extended with minor improvements. Last Will sending and Retain have been added to the protocol parameters.

D2D-6193 KOM
In the Modbus Client protocol, the passive mode has been added. In this mode, due to the nature of the Modbus protocol, it is necessary to receive both requests and responses.

D2D-6251 CNF
Incorrect display of a text value in a tooltip in the ESL debugger. For example, the value ""&&&"" was displayed incorrectly.
Within the watch window, the value was displayed correctly.

D2D-5715 CNF, KOM
The Omron FINS communication protocol was newly implemented in the D2000 KOM process.

D2D-5788 EDA
Functional vector is new, special type of EDA vectors, that uses vector read parameters (interval and step) as parameters of vector calculation.

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).

Support for structured variables with zero rows has been added.

New values of time-related system objects (""Year"", ""Month"", ""Day"", ""WeekDay"", ""Hour"", ""Min"", ""Sec"", ""SysTime"") are now generated more reliable. No value is skipped, even if the system is under high load.

D2D-6248 CNF, KOM
Support for the ""MOXA IP Serial Library"" line was added to the ""IEC 62056-21:2002 Serial"" protocol.

D2D-6220 KOM
In the D2000 KOM process (Windows, Linux, Raspberry Pi), support for IPv6 was added for these lines:
TCP/IP-TCP Redundant
SerialOverUDP Device Redundant
SerialOverUDP Line Redundant
SerialOverUDP System&Line Redundant
RFC2217 Client
The ability to specify IPv6 addresses in the SV._System_NetStatus system structure has also been added.

D2D-5683 CNF, KOM
In the Siemens SIMATIC S7 ISO on TCP protocol, the possibility of communication with redundant PLCs has been added. Several line parameters for secondary PLC configuration have been added.

D2D-5718 KOM
Support for communication with a device Siemens Microbox (model IPC427C) has been implemented in the ""Siemens SIMATIC S7 ISO on TCP"" protocol. The support is based on ignoring empty answers.

D2D-5825 KNL, CNF
Column filtering allows you to use extended syntax (for example: C [^ o] *).

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

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-5943 CNF, KOM
A new parameter ""AcceptReplyToBroadcast"" has been added to the M-Bus protocol. It allows the processing of a specific station's response to broadcast address 254. The default value of the parameter is True (the response to the broadcast is received from any address).

D2D-5930 KNL
- Added parameter for D2000 server process - XmlGitSharedRepoInRedundancy - that allows write to GIT repository for system in redundant mode only from HOT server

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

D2D-6013 HI
No more valid setting in HI has been removed (old ctrl windows)

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

D2D-6019 CNF
Copying of browsing results has been improved in the OPC UA protocol. In addition to copying objects in the current branch of the OPC UA tree (Ctrl+C), copying of all traversed branches of the tree and objects in them (Ctrl+Shift+C) was implemented. The ""Copy tags"" and ""Copy all"" buttons with this functionality have also been added.

D2D-5911 CNF
Support for deleting objects in the D2000 CNF via the DELETE key has been added.

D2D-6069 ESL
Conditional assignment (:?=) makes sense especially when changing the values of objects within DODM, which prevents unnecessary activities that follow the assignment.

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.

D2D-6035 KOM
A new command RELOAD has been implemented in the D2000 KOM process. It is used for internal deletion and recreation of the configuration of the station and I/O tags, or of the line/stationI/O tags. It is usable after configuration changes that the D2000 KOM process does not have implemented dynamically and that previously required a restart of the D2000 KOM process.
So far the implementation has been tested for IEC-101, IEC-104, ICCP/TASE-2, OPC, OPC UA, Modbus Client, and Modbus Server protocols.

D2D-5936 ARC
In the D2000 Archive process, the ability to compress depositories on the PostgreSQL platform has been added. Compression decreases the size of the depositories by one order of magnitude.

D2D-5991 CNF, KOM
The ""Max Hist Read 1min"" and ""Max Hist Read Others"" parameters have been added to the ESC8816 protocol, allowing you to set the maximum depth for reading historical data (standard 1 hour for 1-minute averages and 30 days for others).

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-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-6153 KOM
On the lines of the categories ""SerialOverUDP Device Redundant"", ""SerialOverUDP Line Redundant"" and ""SerialOverUDP System&Line Redundant"", the option to enter the device address * or ALL has been added. Then incoming packets from all devices are processed, but writing is not supported. The feature can be used, for example, by the Generic User Protocol.

D2D-6165 KOM
In the Siemens SIMATIC S7 ISO on TCP protocol, the possibility of working with variables of the DATE type (2-byte number indicating the number of days since 1.1.1990) has been added.

D2D-6194 KOM
A new ""Bool Mask"" parameter has been added to the Modbus Client protocol. Allows you to specify the bitmask that is applied when assigning integer registers to the Di/Dout I/O tags, and allows only specific bits to be considered.

D2D-6209 KOM
In the MQTT protocol, the possibility of addressing a station (Topic) using a regular expression has been added. It is also possible to interpret the data (Payload) as a JSON string and address individual data items by the I/O tags.

D2D-6218 KOM
In Generic User Protocol, the support for server mode on TCP/IP-TCP line was added. In this mode, the D2000 KOM process is waiting on the defined port for a TCP client connection.
In addition, the ""Character Encoding"" parameter has been implemented, which allows you to set the text encoding when sending and receiving data.

D2D-6261 KOM
In the Ethernetl/IP protocol, destination structure support has been added when reading encapsulated PCCC messages (does not apply to elements in Input and Output files).

D2D-6200 ARC
The D2000 Archive process has added the ability to configure chained reads from derived statistical archives. If the archive being read has a small archiving depth and older data is required, the D2000 Archive can continue reading from the derived statistical archive. Since there may be several different statistical archives (and only some statistical functions have the nature of source data), the ChainedReadPrio parameter can be used to define their priorities, e.g. F_WGAVG,F_AVG,F_TIMESLICE,F_MAX,F_MIN.

D2D-6267 ARC
The support for %GetCurrentRow function for structured computed archives has been added to the D2000 Archiv process.

D2D-6205 ARC
Optimization of recurrent recalculations (RECALC) has been implemented in the D2000 Archive process. The optimization works if the isochronous cache is enabled and the recalculation interval is completely covered by the cache. The computed values are compared with the original cached data. If they are identical, no deletion or insertion of data is performed.

D2D-6268 ARC
In GETARCHARR, GETARCHCOL, GETARCHROW, GETARCHARR_TO_CNT functions, the behavior for resampling with period > 1 day has been fixed. For such a period, the time has been aligned to a multiple of the period since January 1, 1972. That has been changed - the start time of timeFromIdent_TmA is used directly.

D2D-5921 KOM
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-5693 CNF, KOM
In the D2000 system, a possibility to enter the addresses of stations and I/O tabs in hexadecimal format using the # character (e.g. #3f) has been implemented in the following protocols:
A list of affected protocols:
ABB Elektro,
Advantech ADAM 4000,
AMiT Atouch32 DB-Net,
Contal CR,
CSV Import,
Datalogger ESC8800,
Datalogger ESC8816,
Diamo-L KOS/SOS,
HOPF Mains Voltage Analysis Board 7515,
Hydrolab DATASONDE 4a TTY,
ID-Innovations RFID ASCII Protocol,
IEC-101 (master/slave/balanced),
IEC-104 (client/server),
Incos/VUVT PMEL 04,
KMZ Lite Protocol,
KMZ Protocol,
MODBUS Circutor CVMk,
Orange GDEP,
Paufex DIRAS,
Paufex DIRAS-B,
Remia E3,
Servomex XENTRA 4900,
Transcon DAP 128TC,
ZPA INMAT 64/65,

D2D-6215 CNF, KOM
In addition to HDLC, other link-level protocols were supported within the DLMS/COSEM protocol: TCP/UDP Wrapper, Gateway protocol, and their combination.

D2D-6132 KOM
The encapsulation of the PCCC protocol into the Ethernet/IP protocol has been implemented. This will enable Ethernet/IP communication support with SLC 5/05 and PLC5E.
Reading of  I/O tag values and partial writing was supported (see description of parameter ""PCCC Command Set""), working with I/O addresses is not functional.

**************** Bugs ****************

D2D-6049 ESL
Added new color setting entry, set monaco editor colors

D2D-6050 ESL
Fixed token type for character ""^""

D2D-6052 ESL
Added column names suggestions for structured variables

D2D-6053 ESL
Fixed automatic close bracket for ""<""

D2D-6054 ESL
Auto indentation of actions ELSE and ELSIF

D2D-6068 ESL
- Editation of object using links

Fixed syntax highlighting for CALL function

D2D-6133 CNF
Fixed duplication of variables in completion between BEGIN...END

Added suggestion for closing actual function name

D2D-6064 CNF
Fixed closing of whole editor in case of closing one of two tabs

Fixed setting RETURN color

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).

D2D-5723 KNL, CNF, KOM
A new parameter ""Immediate Disconnect"" has been added to the Modbus Client protocol (TCP variant). It permits immediate closure of the TCP connection after reading the station, or after writing. The parameter makes sense on unreliable GPRS lines.

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.

The crash occurred when the dialog for comparing differences was displayed and by moving the mouse cursor from the object type display area to the object list display area.

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:
OPC UA Client
OPC XML Data Access 1.01 Client

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:
Generic User Protocol
Honeywell PCNM

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-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-5676 KOM
A crash of the KOM process in IEC-101 and IEC-104 protocols (client / server), which could occur on redundant lines, was fixed. The bug was present in binaries from 15.6.2020 and later and it was a consequence of the modification of D2D-5619 (implementation of browsing support).

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 same line.
The error concerned protocols:
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

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-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"").

D2D-5831 HI, KNL
A bug was fixed in temporarily blocking system alarms. The alarm configuration with the Block parameter enabled was incorrectly saved during temporary blocking. After automatic unblocking (after the time limit has elapsed), this parameter remained set. As a result, the alarm could not be blocked again (it was necessary to edit the configuration of the Alarm object and unblock it).

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-5927 CNF, EVH
The new value assigned to the index local variable did not appear in the ESL debugger.

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-5980 ESL
If parameter substr was empty, function returned invalid value

D2D-5988 ESL
FIO_Copy delete tmp file if copy operation failed. Updated doc - warning about failing operation if source file is open

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-6045 WBK
D2000_WorkBook did not accept the Windows language setting. Always use Slovak.

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.

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-6033 KOM
An encoding error in the GetVariableAccessAttributes-Response message has been corrected in the ICCP/TASE-2 protocol. The error resulted in a malfunction of the I/O tag with the ""Autodetect"" data type when processing a value with the ""Real"",  ""DiscreteExtended"", or ""RealExtended"" data types.

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.

D2D-6171 HI
forced ACK dialog based on CtrlAckDialog application settings

D2D-6180 CNF, KOM
A proprietary LG PI-485 serial protocol used by LG air conditioners and heat pumps has been implemented. The protocol was deployed to communicate with the LG Therma V heat pump (HU071MR U44).

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 functions PointNewValue, GetPoint, and GetFastPoint.

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-6269 ARC
A bug was fixed in the D2000 Archive process - filters were not working. The bug was introduced in D2D-6205 Recalculation Optimization (RECALC) - binaries from November 12, 2021 and newer.

D2D-6270 ARC
The calculations of the statistical functions ""Number of local maximums/minimums"" have been corrected. The implementation had a bug that caused a monotonically increasing/decreasing series of values to be evaluated as having many minimum/maximums.

D2D-5929 KOM
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 Spool
Contal Card Reader
CSV Import
Echelon LonTalk
Elcor ELGAS Daniel
ESC 8800
ESC 8816
Fisher-Rosemount RS3 SCI
Generic User Protocol
IEC 870-5-104 Sinaut
IEC 870-5-104 TCP
IEC 870-5-104 TCP Server
Incos PM_EL 04
KMZ Protocol
M-Bus Rev. 4.8
MDIS5 Device
Mettler Tolledo Printer
MODBUS Circutor CVMk
MODBUS Telemecanique TSX
Remia E3
Remia KME
Servomex XENTRA
Siemens SIMATIC 3964(R)
SMS Gateway
Transcon DAP 128TC
VONSCH VQfrem 400

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.

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