This is the third in a series of blogs about the architecture of SCADA systems. In them I would like to address the important features of SCADA technologies, the presence (or absence) of which affects the functionality, user-friendliness, usability and scalability of these technologies. This blog will be about the values in D2000.
Not all the values are created equal
If we look at programming languages, they natively support simple variables (integer or real number, date, string...). However, control systems working with real time and obtaining values of objects "from outside" (and SCADA/MES are among such systems) have a richer concept of value. By default, the value consists of a triplet (V, T, Q), that is:
- Value - the value itself
- Time – time stamp: when the value was created
- Quality – quality of value: attributes of validity, quality, etc
In addition, different SCADA systems implement various other value attributes. How is it in the Ipesoft D2000?
Values do not exist "by themselves", they are always linked to some D2000 object, or to a local variable of a scheme or script.
The value has a defined type that depends on the type of the object. For example, an input measured point can have a value of the following types (depending on the type of measured point):
- Absolute time-input
- Analog input
- Integer input
- Logical input
- Quaternary input
- Text input
- Time interval-input
Similar types of values also exist for output measured points. Some other objects also have specific types of values (station, alarm, process).
The value itself can be represented as
- Boolean – be careful, in addition to the True and False values, there is also an Oscillate value for the measured points if the input value changes too often.
- Integer – 64-bit integer number.
- Real - 64-bit floating-point number.
- Quaternary state (OFF, ON, TRANS, ERR) – for Quaternary input value type.
- Text – any text value.
- Absolute time – time and date with a millisecond accuracy.
- Relative time – time interval with a millisecond accuracy.
- Alarm value – value of the alarm object (Norm, Alarm, Kvit, Block, UnBlock, NoKvit).
- Station value –status of communication (ON, OFF, COMERR, HARDERR, SIMUL, WAIT).
- Process value – process status (Run, Crash, Stop, WDErr).
- Array – an array of simple values of the same type (objects of the Value Array type working with Historical Values).
- Structure - the value of a Structured variable type object: it is a matrix of simple values, with each column having one of the simple types. In addition, there can be a column of the "object reference" type, i.e. something like a pointer to another D2000 object.
The value time is represented by the Value Time attribute. In addition, there is a time stamp Alarm Time - the time when the last process alarm occurred (an alarm defined directly on the D2000 object) - this can be configured for measured points, calculated points and switches.
As for the quality of the value, it is represented by a set of flags:
- Valid – the value is valid
- Process Alarm – a process alarm is active (e.g. exceeding limits)
- Unacknowledged Alarm – the alarm was not acknowledged by the operator
- Block Alarm – the alarm was blocked by the operator
- Weak – untrustworthy value (e.g. from communication)
- Unacknowledged Value – new value not confirmed by the operator
- Transient – value is being written, communication confirmation has not yet arrived
- Default Value – the value from the communication was replaced by a substitute value
- Manual Value – value entered by the operator or assigned from a script
- Critical Alarm – an active alarm is marked as critical
- Unknown Value – unknown value (after starting the system or after saving the object)
In addition, the value has several other attributes:
- Limits – whether the value is within the configured limits (which can also be dynamic). Accordingly, it has one of the states InLimit, VL_Limit, L_Limit, H_Limit, VH_Limit, LimitsProblem (the last state occurs if the limits are defined dynamically and do not have gradually increasing values).
- Process Alarm Type – type of active process alarm (there are different alarm types for different types of values).
- User Flags – sixteen user-usable flags A, B, C, ... P. They can be used to set and transfer additional user information, or additional information from communication (e.g. specialized flags from the IEC 870-5-104 protocol).
What is important - such a complex object value is distributed and available throughout the Ipesoft D2000 system. Individual attributes can be accessed by, for example, calculated points and scripts, they can be used to configure palettes used for imaging in the D2000 HI (palettes determine colors, visibility, flashing or bitmap displayed depending on defined conditions). The entire value of the object is archived by the D2000 Archive process - it is therefore also possible to retrospectively evaluate whether the value from the communication was set by the operator or whether the operator confirmed the process alarm.
Active and passive objects
Objects that acquire values are referred to as active. Some objects are active naturally:
- The value of the measured point comes from the communication or is set by the operator (or a replacement value can be specified as a constant or as the value of another object).
- The value of the calculated point is the result of the corresponding calculation.
- The value of the user variable is preconfigured or set by the operator.
- The value of the object type alarm corresponds to the state of the alarm.
The values of other objects are, however, less intuitive and can also be related to diagnostics:
- The value of the communication station is related to the state of communication with the given station.
- The value of the communication line is of type Boolean and depends on the type of line (serial line is True if the serial port was successfully opened, UDP line if a UDP socket was successfully created, TCP line if a TCP connection was successfully created, OPC line if it was successfully connected to OPC server and so on).
- The process value corresponds to the state of the process (started, stopped, crashed).
- The value of the database type object corresponds to the number of connections that the D2000 DbManager process created.
- The scheme value corresponds to the number of openings in the D2000 HI process.
- The value of the user object corresponds to the number of user’s present logins (D2000 HI, CNF, GR).
Other objects are without value: database tables, text styles ...
An object of historical value type is passive by default, but can also have a value corresponding to the most recent value (e.g. 5-minute maximum for a statistical archived value).
Object values in the Ipesoft D2000 real-time application server contain a lot of information and flags about the quality of the value, including user-adjustable flags. Such object values are available throughout the system, are archived and can be accessed from the outside via various application interfaces. The values of several types of objects are also used for diagnostics and detection of system status (lines, stations, databases).
November 8, 2023, Ing. Peter Humaj, www.ipesoft.com