Improvements a bug fixes for D2000 V12.2.65.u3 (build 03)
**************** Improvements ****************
A new configuration parameter OldValIgnoreAge lets you ignore values older than the specified time (in hours). The parameter can be set at runtime with the SET_OPTION command. If the debugging category DBG.ARCHIV.IGNORED_VALUES.OLD is enabled, the information about discarded value is logged in the file.
In the D2000 Archiv process, protection of write actions in the script has been improved (UPDATEARCHVAL, INSERTARCHARR). Correct handling of a case where a user tried to write to a structured archive as if it were unstructured (column and row equal to 0) was implemented. When unhandled, this operation could cause the archive to end with an error.
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.
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.
A new parameter /UX was implemented in arcsynchro utility. This parameter enables to synchronize data from older D2000 applications (e.g. pre-UTF8 D2000 version 8.0) without need to upgrade the old archive database. This is convenient e.g. when preparing a migration to a new D2000 version using a different database platform for D2000 Archiv.
In the arcsynchro utility, support for the /STPG parameter was implemented. This parameter allows you to read data from PostgreSQL depositories. The parameter can be used e.g. when migrating PostgreSQL depositories.
The following ESL functions have been implemented: INT %RxFind(TEXT in text, TEXT in regExp, INT in from := 1, INT out endIndex) INT %RxReplaceStr(TEXT in text, TEXT in regExp, TEXT in subStr, INT in from := 1, INT in count := 0)
D2D-5087 CFG SYNCHRO
In the cfgsynchroauto utility the synchronization of OBJLIFE_LOG and OBJLIFE_LOGEXT tables has been improved. Only the rows that have been added or deleted are synchronized. Unchanged rows are not synced.
A watch window has been added in which it is possible to find out the number of the elements in the data container, the key type, the container handle and the name of the event in which the container was created. The window also allows you to view the content of the container (keys and values).
A process configuration dialog has been added to configure the process according to its type. It clearly shows commonly used parameters and enables extended configuration of parameters.
The opening of a configuration dialogue for the configuration of structured variables took too long. Currently, the time for opening is not dependant on the size of the structured variable.
After saving an object in CNF, if unknown objects were used, the user was informed only of the first one. The others were not displayed. Correction extends the number of displayed unknown objects to a maximum of ten.
The following features had been added in the Quick Watch window: -The line with value type of the current expression (Text, Integer, ...). -Now it is able to copy the value of selected line by pressing Ctrl + C.
An ability to copy filtering conditions in dialog for displaying dependencies between objects have been added. Copying can be turned on/off at any time by using the ckechbox.
In the Johnson Controls N2-Bus protocol, support for TCP-IP/TCP line has been added. Multiple names/IP addresses separated by a semicolon or comma can be entered for support of redundant configurations with multiple PLCs or multiple Moxa NPort serial servers in TCP mode.
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.
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.
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.
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)
In the D2000 DBManager process, experimental support was added for PostgreSQL column with binary data (BYTEA type) that stores strings in UTF-8 encoding. Such data can be read into a text column (with a maximum data size of 4000 characters by default, which can be set with an existing DBManager parameter to set the maximum string size - /DBD). A string in UTF-8 encoding must begin with three bytes 0xef 0xbb 0xbf (so called Byte order mark - BOM)
Compiled functions of calculated vectors can be stored in global cache of EDA Server. This, depending on type of calculation, can result in significant speed up of calculations.
EDA-L functions %Replace and %Remove has been improved to support comparison of non-equality against invalid value. Further optimization led up to 15% speed improvement.
The IP address of EDA Server is detected automatically from computer name, if it's not set using /EDAH parameter.
Detection of connection drops using PostgreSQL database has been improved and is now more reliable.
Logging information about access to EDA vectors has been extended by computer name.
Access rights to EDA vectors can now be defined using computer name mask.
Naming of log files has been improved to prevent name conflicts and to be consistent with D2000 process name.
An optional parameter bTrim has been added, which determines, if the returned word has to be trimmed or not.
An additional parameter to remove additional characters from the string edges has been added
It wasn't possible to recognize normal and critical alarm. New attribute was added to allow this.
It is able to access the current values of objects that are loaded within the current page by the actions LST_CREATE, LST_GO_NEXT, ... The action ON CHANGE reacts to changes in object values. When the list is closed, or when page number is changed, only the most recent values are accessible and the ON CHANGE action stops responding to value changes.
The ON CHANGE action allow to watch the changes the local unstructured variable.
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.
We did a speed optimization of opening display palettes.
In the gateway client process (gtwcli), the /NOINV start parameter has been added, affecting behavior in transparent mode. This parameter disables invalidating values of objects that are not found on the side of gateway server.
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.
The new function %HI_LNG_SetCurrLngIdx (IN INT _lngIdx) allows you to change the current user language in the D2000 HI process.
AutoCompletteList adapts list width to entryFiled width. A horizontal scroll bar has been added to the list.
Functions %HI_SetBrowserAutoRefresh and %HI_GetBrowserAutoRefresh are also available in the HIX version.
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-5106 KNL, CNF
The IGNR_CRC parameter has been added to the XML import options. It causes ModifyTime to be used from the XML file, even if the CRC of XML file does not match, i.e. changes were made to the file.
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.
In IEC101 (Master, Client, Balanced) protocols, the ""System Redundancy: Manages A Status Address"" link parameter was added to allow to ignore values from an inactive control system (SystemA or SystemB) on a system-redundant line (SerialOverUDP System&Line Redundant). This parameter copies the behavior of the Telegyr 809 Server protocol parameter with the same name.
In the KOM process, a modification was made for the OPC UA protocol - after changing the I/O tag configuration, a request for reading the current value is generated.
In Modbus Server protocol, support for 32-bit signed/unsigned values (little/big endian) has been added. The configuration of these types is identical to that of the Modbus Client protocol, i.e. L - Unsigned long (4 bytes = 2 registers) - two registers with Address and Address+1 are read, unsigned and transmitted as big-endian Ll - Unsigned long (4 bytes = 2 registers) - two registers with Address and Address+1 are read and transmitted as little-endian, unsigned S - Signed long (4 bytes = 2 registers) - two registers with Address and Address+1 are read, signed and transmitted as big-endian Sl - Signed long (4 bytes = 2 registers) - two registers with Address and Address+1 are read and transmitted as little-endian, signed
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.
Handling of responses for AT+CSQ command was improved in SMS Gateway protocol. Some modems (e.g. Huawei E3372) sent an unexpected multiline response, which D20000 KOM was unable to process and subsequently SMS messages could not be sent.
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"".
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.
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.
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.
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.
Full support for time zones as defined in the Time Zone Database (https://www.iana.org/time-zones) has been added. This includes import, export and conversion of time stamps between various time zones.
Format mask for absolute time can now include UTC offset.
A new type of logical groups has been created. Subgroups of root attribute logical group present values of attribute.
Object information had been extended by UUID of the object and time of the last modification of the object
Adding an atribute for detecting a ""blocking alarm"" which defines if object is blocked.
Implemented new ESL functions for manipulation with JSON format
System Console is now 64-bit process in 64-bit D2000 installation.
Object list can now be sorted using point address.
The system text length limit has been increased from 20 to 30 characters.
The value of a variable defined at the schema level can be defined by an expression.
**************** Bug fixes ****************
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.
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.
The error occurred after switching redundancy so. Periodic calculated points have not been recalculated. The error occurred randomly.
D2D-5052 CFG SYNCHRO
In the cfgsynchro and cfgsynchroauto utilities, a bug was fixed that caused a synchronization error on PostgreSQL platform, if there was a line with ""Local Port"" greater than 32767.
The function returned wrong start of the week for some years. The problem occurred in those years, in which the New year started on Friday, Saturday or Sunday. The problem was fixed.
In the OPC UA protocol, the KOM process crashed when browsing if there were different CNF/KOM architectures (32-bit CNF and 64-bit KOM or vice versa). Patches for both CNF and KOM process must be applied.
An issue was corrected in the Onesoft Devices protocol for SoftControl devices. The error was in processing of the default values of parameters ""Begin of Write Block"" and ""End of Write Block"". Workaround was possible - to change the default parameters 157 resp. 284 to 156 resp. 285.
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.
An error in DbManager when working with DECIMAL and NUMERIC data (eg DECIMAL (20,4)) on MsSql platform has been fixed. The error caused the insert/update operation to return an error (HY104)[Microsoft][ODBC SQL Server Driver]Invalid precision value
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"".
A crash of DbManager process due to calling SQL_BINDIN without previous SQL_PREPARE was fixed.
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).
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.
Vectors, scenarios, and groups used in EDA-L script might have been wrongly cached as non-existent if there was no database connection during script compilation.
In case of database connection failure is global cache automatically disabled to prevent cache inconsistency.
If used after EXIST, EXVEC, EXSCN or EXGRP, invalid database entity has been incorrectly evaluated as existent.
The position of the beginning of the search for substring has been added to the function.
The values in the rows of the structured variable defined in the context of the schema to which the SET BIND action was applied had bad values.
XML export from ESL was unified with XML export from CNF as follows: empty tags are generated as follows: <VHL_ID/>.
The entry OnLostFocus instead of OnSpin was sent when Windows component of the Text entry type preceded the spin button. The OnSpin entry is sent always now.
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.
Popup menu opened after right-clicking was wrongly located. The setting of the scheme segment (when enlarging it) was happening in a different place as was the mouse location.
Correction of an error when the value of the connected variable was set to MyValue (internal identifier of a graphic object) by moving a mouse above the graphic object. The setting is allowed only by clicking on the object.
Fixed HI crash when Windows time format setting uses more than 12 characters.
Fixed calls D2SD.deleteRow(int) and D2SD.deleteRows(int, int) - incorrectly deletes double count of rows.
fixed D2SD.insertRows for an empty structure
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  ^ Col1 the value was published into the whole structure - e.g. SV.Test).
The list of alarms was displayed in the D2000 HI before user login.
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.
In process D2000 KOM, a bug that caused memory leaks when saving lines and stations was fixed.
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.
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).
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.
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.
The interface randomly crashed according to the intensity of usage. The error appeared in the interface on 24th of May, 2018 when functions PrintCurrAllocations and EnableMemDebug were implemented. The error is in R39, R60, R61 versions for objapi.dll after 24th of May, 2018 (including).