IEC104

IEC104

This Datastream module defines the configuration needed to read data from an Iec104 device.

To access source code click here.

Dependencies

This module requires the following modules:

  • IEC104 Comms: Provide an implementation of IEC104 Master that the datastream module needs to connect with the devices.
  • Scada Tables: Provide the information of the data to read from the iec104 device (ASDU type, address, datastreamID).

Configuration

To configure IEC104 Datastream module, a file named es.amplia.oda.datastreams.iec104.cfg must be created with the next parameters:

  • initialPollingTime: Required parameter. Indicates the time in seconds that pass between the start of the bundle and the first Interrogation Command sent.

  • pollingTime: Required parameter. Indicates the time in seconds between Interrogation Command executions. Every x seconds after the initial Interrogation Command, an Interrogation Command is sent to the iec104 device to retrieve data.

  • qualityBitsMask: Optional parameter. Indicates the mask the quality bits of the values received must comply to consider the values as valid. It is an array of four characters that follow this order :

        qualityBitsMask = valid topical substituted blocked
    

    The characters can be ‘0’ (false), ‘1’ (true) or ‘*’ (either). If we don’t specify this parameter, by default all values received are valid (it is applied a mask with four bits as ‘*’). If the value doesn’t comply with the mask, it is discarded.

  • qualityBitsNotify: Optional parameter. Indicates if we want to send a notification when a value is discarded by its quality bits. Default value is false.

  • deviceId: Required parameter. Indicates the information needed to connect with device in the next format:

        deviceId=ipAddress;port;commonAddress
    

es.amplia.oda.datastreams.iec104.cfg will have a similar format to:

initialPollingTime=1000
pollingTime=10000
qualityBitsMask=1100
qualityBitsNotify=true
devicejj2=127.0.0.1;2404;1

It is possible to define N devices with the format:

initialPollingTime=1000
pollingTime=10000
qualityBitsMask=1100
qualityBitsNotify=true
devicejj1=127.0.0.1;2404;1
devicejj2=127.0.0.1;2404;2
devicejj3=127.0.0.2;2404;1