15.3 IEC 61850 Client WCC Lite can be used as a master station to collect data from IEC 61850 compatible server devices such as protection relays. As relays require fast, secure and responsive interfaces, WCC Lite can be considered as a valid option. For additional security a user can use encrypted transmission (TLS) or set up a password. As TCP (TLS) connection can encounter issues and break, automatic reconnection is implemented. After every failed reconnection attempt the fallback delay is doubled starting from 1 second up until 32 seconds. After that connection reestablishment will be attempted every 32 seconds until a successful connection. Acquiring data via report control blocks As per IEC 61850 standard, the report control block controls the procedures that are required for reporting values of data objects from one or more logical nodes to one client. Automatic reporting enables data servers (slave devices) to only send data on its (or its quality) change, thus saving network bandwidth. Instances of report control blocks are configured in the server at configuration time. Report control blocks send information that is defined in their respective datasets. Dataset is a set of data elements grouped to represent some data group. For example, it is a common practice to group measurements and events into different groups. A server restricts access to an instance of a report control block to one client at a time. That client exclusively shall own that instance and shall receive reports from that instance of report control blocks. There are two classes of report control blocks defined, each with a slightly different behavior: buffered-report-control-block (BRCB) - internal events (caused by trigger options data-change, quality-change, and data-update) issue immediate sending of reports or buffer the events (to some practical limit) for transmission, such that values of data object are not lost due to transport flow control constraints or loss of connection. BRCB provides the sequence-of-events (SOE) functionality; unbuffered-report-control-block (URCB) - internal events (caused by trigger options data-change, quality-change, and data-update) issue immediate sending of reports on a best efforts basis. If no association exists, or if the transport data flow is not fast enough to support it, events may be lost. Buffered report control blocks are therefore useful to keep event data, for example, keeping the last known state of a relay switch where a loss of information might lead to a confusion and even financial losses. Unbuffered report control blocks are particularly useful for data which is useful only momentarily, e.g. measurements of voltages, current or power. This information can change frequently and old measurements might not reflect the real state of a substation. To allow multiple clients to receive the same values of data object, multiple instances of the report control classes shall be made available. Buffered report control blocks are usually configured to be used by a specific client implementing a well-defined functionality, for example, a SCADA master. The client may know the ObjectReference of the BRCB by configuration or by the use of a naming convention. Parsing of report control blocks is based on types of Common Data Class (CDC). Some of these types can have more than one data point of interest. Table below shows what data attributes are supported from various Common Data Classes. To select which data attribute should be used a da_value column should be filled with a data attribute name. Common Data Classes consist of data attributes with different Functional Constraints therefore to get the status points of interest correctly the user must fill in a correct value in da_fc column. IEC 61850 Client supported data attributes: Common Data Class Function Constraint Data attributes SPS DPS INS ENS ST stVal ACT ST general phsA phsB phsC neut ACD ST general dirGeneral phsA dirPhsA phsB dirPhsB phsC dirPhsC neut dirNeut MV MX instMag mag CMV MX instCVal cVal SAV MX instMag SPC DPC INC ENC ST stVal BSC ISC ST valWTr APC BAC MX mxVal Some of data attributes are structures themselves, for example, mag attribute is a struct that can hold integer or float values. To select a fitting attribute the user should extend da_value parameter with additional attributes, for example, if float magnitude value is to be selected from MV Common Data Class, da_value column should be filled with mag.f value; if the user intends cVal magnitude value in float format from CMV Common Data Class, da_value should be filled with cVal.mag.f value. See IEC 61850-7-3 for more information about Common Data Classes. To ensure the integrity of configuration, WCC Lite has additional checks implemented at configuration time. If report control block (or its dataset) with a predefined ObjectReference doesn’t exist, it is considered that IEC 61850 Client has not been configured properly or configuration has been changed in either of IEC 61850 devices and cannot be matched, therefore should be considered invalid. Controlling remote equipment via commands The control model provides a specific way to change the state of internal and external processes by a client. The control model can only be applied to data object instances of a controllable Common Data Class (CDC) and whose ctlModel DataAttribute is not set to status - only. Such data objects can be referred to as control objects. If controls are enabled in a IEC 61850 Server device the user can configure controls by filling control_model column in Excel configuration with a control model (direct-with-normal-security, sbo-with-normal-security, direct-with-enhanced-security, sbo-with-enhanced-security) as well as setting functional constraint in da_fc column to CO. Depending on the application, different behaviors of a control object shall be used. Therefore, different state machines are defined. Four cases are defined: Case 1: Direct control with normal security (direct-operate); Case 2: SBO control with normal security (operate-once or operate-many); Case 3: Direct control with enhanced security (direct-operate); Case 4: SBO control with enhanced security (operate-once or operate-many). IEC 61850 standard enables the user to plan command transmission in advance - set the timer when the command should be issued. However, as this possibility is rarely used in practice, it is not implemented as of version v1.8 All issued commands are executed immediately. For more information on control class model, please consult IEC 61850-7-2 standard. If ctlModel is read-only, messages from internal database will be ignored for this point, otherwise a subscribe callback will be launched to handle commands as soon as they are sent. If CDC of a signal does not have means of control, ctlModel parameter is ignored. Originator identification can be attached to a station so that replies to command requests could be forwarded to only one device. To use this functionality a user should select an origin identifier by filling value in Excel configuration, originator column. Originator category is always enforced to tell that remote control command is issued. Configuring datapoints To use IEC 61850 Client in WCC Lite, it has to be configured via an Excel configuration. This configuration contains two Excel sheets where parameters have to be filled in - Devices and Signals tables. Table IEC 61850 Client parameters for Devices tab Parameter Type Description Required Default value (when not specified) Range Min Max name string User-friendly name for a device Yes description string Description of a device No device_alias string Alphanumeric string to identify a device Yes enable boolean Enabling/disabling of a device No 1 0 1 protocol string Protocol to be used Yes IEC 61850 Client host string (IP address format) IP address of server device Yes port integer TCP communication port Yes 102 auth string Authorization type Yes none, password, tls password string Authorization password for server device Yes (for PASSWORD) tls_local_certificate string Local certificate for TLS connection Yes (for TLS) tls_peer_certificate string Certificate authority file for TLS connection Yes (for TLS) tls_private_key string File consisting of private key for TLS connection Yes (for TLS) ied_name string Name of an Intelligent Electronic Device Yes originator string Origin identifier for device No model_filename string Filename of client model uploaded to WCC (must contain .client extension) Yes Table IEC 61850 Client parameters for Signals tab Parameter Type Description Required Default value (when not specified) Range Min Max signal_name string User-friendly signal name Yes device_alias string Device alias from a Devices tab Yes signal_alias string Unique alphanumeric name of the signal to be used Yes enable boolean Enabling/disabling of an individual signal No 1 0 1 log boolean Allow signal to be logged. If log is 0 signal will not be logged. If log is more than 0 signal will be logged No 0 number_type string Number format type Yes BOOLEAN, INT8, INT16, INT32, INT64, INT128, INT8U, INT24U, INT32U, FLOAT32, FLOAT64, ENUMERATED, OCTETSTRING6, OCTETSTRING8, OCTETSTRING64, VISIBLESTRING32, VISIBLESTRING64, VISIBLESTRING65, VISIBLESTRING129, VISIBLESTRING255, UNICODESTRING255, TIMESTAMP, QUALITY, CHECK, CODEDENUM, GENERICBITSTRING, CONSTRUCTED, ENTRYTIME, PHYCOMADDR, CURRENCY, OPTFLDS, TRGOPS ld_instance string Instance of a logical device Yes ln_class string Logical node class type Yes ln_instance integer Instance of a logical node No ln_prefix string, integer Prefix of logical node string No cdc string Common Data Class (CDC) name Yes SPS, DPS, INS, ENS, ACT, ACD, SEC, BCR, HST, VSS, MV, CMV, SAV, WYE, DEL, SEQ, HMV, HWYE, HDEL, SPC, DPC, INC, ENC, BSC, ISC, APC, BAC, SPG, ING, ENG, ORG, TSG, CUG, VSG, ASG, CURVE, CSG, DPL, LPL, CSD, UNDEF data_object string Name of data object in dataset Yes da_value string Name of a data attribute value node Yes da_fc string Functional constrain for data object Yes ST,MX, CO, SP, SE control_model string Model of output control No read-only read-only, direct-with-normal-security, sbo-with-normal-security, direct-with-enhanced-security, sbo-with-enhanced-security dataset string Full object reference of a dataset Yes report_control_block string Full object reference of a report control block Yes intgPd integer Integrity period in milliseconds No 0 It should be noted that ACT and ACD messages can only be parsed from report if either only ‘general’ attribute or all attributes attached to all three phases and neutral can be found in report Device status signals IEC 61850 has an additional signal which can be configured to show communication status. It is used to indicate if the server device has disconnected from client (WCC Lite). To configure such signal for IEC 61850 protocol, job_todo and tag_job_todo fields with string values are required. For IEC 61850 client required parameters for status signal will be: signal_name, device_alias, signal_alias, number_type, job_todo and tag_job_todo. Job_todo value must be device_status and for tag_job_todo there are 4 variations: communication_status, device_running, device_error, uknown_error. Each signal has 4 possible values and are based on the same logic. If signal returns value of 0, it means unknown error has appeared, 1 – device or protocol connection is on and working properly, 2 – device is off or protocol is disconnected, 3 – error or service is down. Configuration Configuration of IEC61850 Client for WCCLite is done via WCC Utility. Elseta WCC Utility has two IEC 61850 selections - IEC 61850 Config and IEC 61850 Excel: IEC 61850 Config is used to create a configuration model file, which IEC 61850 Client service will use to parse reports from the server. IEC 61850 Excel is used to generate excel configuration file which in turn will be used to generated configuration .json via excel-utility. WCC Utility with IEC61850 selections Generate model file To generate IEC 61850 Client model file select “Client” in drop down selection tab. Then select where to output the generated model and upload file with extensions .icd, .scd or .cid. Generate IEC 61850 Client model file Generate excel file To generate IEC 61850 Client excel file select “Client” in drop down selection tab. Then select where to output the generated model upload file with extensions .icd, .scd or .cid. Generate IEC 61850 Client excel file After generating excel file additional configuration information must be written in the devices sheet: A valid host ip address must be provided. An authorization method must be provided (if it is a complex authorization method, additional parameters might be required). Model filename must be provided. The model filename must be exactly the same as that was generated one step earlier (Model filename can include extension, but it is not mandatory). Excel configuration (Devices sheet) In the signals sheet, signals which are not used or needed can be removed. Their information might be modified as well. Signals sheet Important! Information such as ld_instance and other data taken directly from SCD configuration files should not be modified, otherwise access to info of these reports can be broken. Uploading configuration First upload the model configuration file. Uploading model configuration file After uploading the model configuration file it should appear under the DOWNLOAD CONFIGURATION tab. Uploaded IEC 6180 Client configuration file Then upload the excel configuration (same as with every other protocol). Uploading excel configuration After successful configuration upload, both configurations should appear under DOWNLOAD CONFIGURATION tab. If any errors occur during excel upload, fix them along excel utility guidelines. Uploaded configurations IEC 61850 Client command line debugging options iec61850-client -h [ –help ] Show help message -c [–config] arg Configuration file location -V [–version] Show version -d [–debug] arg Set debugging level -r [–redis] Show Redis messages -C [–commands] Show command messages -D [–datasets] Show dataset messages –report Show report messages -R [–readyfile] arg Ready notification file If IEC 61850 Client does not work properly (e.g. no communication between devices, data is corrupted, etc.), a user can launch a debug session from command line interface and find out why link is not functioning properly. To launch a debugging session, a user should stop iec61850-client process by running /etc/init.d/iec61850-client stop and run iec61850-client command with respective flags as was shown above.