Adapter Categories
Below are the categories of adapters available in the GSF TSL with brief descriptions of each. Adapters are available on our GitHub, and links to the various repositories are provided.
Computational Adapters
The following computational adapters have been developed over the years by GPA for processing real-time streaming synchrophasor data. All adapters are included with all GPA time-series products, e.g., openPDC and openHistorian.
Some recently added adapters, e.g., the Bulk Sequence Calculator, will auto-configure itself, creating output measurements as needed based on existing configuration.
- Angle Difference - (action) calculates an angle difference from time-series inputs taking into account wrapping.
- Average Frequency (area) - (action) calculates an average frequency from validated time-series inputs.
- Impedance - (action) calculates impedance outputs from a configured set of time-series inputs.
- Power - (action) calculates a single set of P/Q/S values from configured time-series inputs.
- Power Stability - (action) calculates a standard deviation of power useful simple oscillation detection from time-series inputs.
- Reference Angle - (action) creates a virtual angle from several time-series input angles that can be used as a reference angle.
- Reference Magnitude - (action) creates a virtual reference angle magnitude from several time-series input magnitudes.
- Sequence Values - (action) calculates a single set of sequence values (+/-/0) from configured time-series inputs.
- Sequence Values (bulk) - (action-collection) uses to calculate bulk sequence values (+/-/0) based on system configuration.
- Frequency Excursion - (action) detects a frequency excursion from a configured set of time-series inputs.
- Loss-of-Field - (action) detects loss-of-field from a configured set of time-series inputs.
Other Computational Adapters:
- Average Frequency (one second) - (action) calculates average of the input frequencies over each full second.
- Power (bulk) - (action-collection) calculates bulk P/Q/S values based on configured phasor mappings from time-series inputs.
Dynamic Calculator Adapters
The dynamic calculation adapters are used to process expressions using the Fast Lightweight Expression Evaluator (FLEE).
In the case of the database and e-mail notification adapters, the format will be to create a boolean expression based on incoming time-series measurements such that when the expression evaluates to True
, the database operation will execute or the e-mail notification will be sent.
See the following documentation on FLEE expressions: FLEE wiki examples
- Email Notification - (action) sends an e-mail when time-series values trigger a Boolean expression as
True
. - Dynamic Calculator - (action) produces a new time-series value based on a user equation (expression) from time-series inputs.
- Database Notification - (action) executes a database operation when time-series values trigger a Boolean expression as
True
.
Phasor Protocol Adapters
The following phasor protocol adapters form the foundation of allowing a time-series application to consume, produce and operate on streaming synchorphasor data from a measurement perspective. Mapping of frames of synchrophasor data to and from measurements happens in the Phasor Measurement Mapper and the Base Concentration Adapter, both of which operate on most any synchorphasor protocol, e.g., IEEE C37.118.
General Phasor Protocol Adapters:
- Base Calculation Adapter - (action) used as a base adapter to maps phasor signal types for any common phasor-based action adapter.
- Base Concentration Adapter - (action) used as a base adapter for any common phasor protocol to create a concentrated output stream.
- IEEE C37.118 Services - (facile-action) handles common phasor operations, such as requesting a config frame.
- Phasor Measurement Mapper - (action) maps phasor protocol values to time-series measurements from any source phasor device.
Specific Phasor Protocol Adapters:
- BPA PDC Output Stream - (action) takes time-series values and create a BPA PDC based output stream.
- IEEE C37.118 Output Stream - (action) takes time-series values and create an IEEE C37.118 based output stream.
- IEC 61850 Output Stream - (action) takes time-series values and create an IEC 61850-90-5 based output stream.
Testing Adapters
The testing adapters are available to developers and users experimenting with time-series framework to produce various kinds of data feeds for the purposes of scaling a system for stress testing or validating adapter development under various conditions. The adapters also include a time-synchronization adapter that will take incoming data, e.g., from a GPS-time synchronized PMU, and use the incoming data to set the local clock -- this is useful for computers in lab environments where hardware clock synchronization options many not be available and NTP based-synchronization options are not accurate enough.
- Monatonic Value Generator> - (input) creates slowing incrementing random time-series input values.
- Random Input Value - (input) creates random time-series input values.
- Random Values as Frames - (input) creates random time-synchronized time-series input values.
- Set Input Flags - (filter) updates flags for any incoming time-series input values.
- Synchronize Local Clock - (facile-action) synchronizes the local clock based on timestamps of specified time-series input values.
- Virtual Action Adapter - (action) creates a virtual action adapter for testing purposes.
- Virtual Input Adapter - (input) creates a virtual input adapter for testing purposes.
- Virtual Output Adapter - (output) creates a virtual output adapter for testing purposes.
Database/Historian Adapters
These adapters provide production quality connectivity options to commericial historians, e.g., OSIsoft PI and eDNA, as well as providing options to push data into RDBMS and time-series databases. Do keep in mind that the time-series framework combined with high-volume, streaming synchrophasor data can quickly overwhelm these types of data archive systems. If you are experimenting with time-series archival systems, we suggest you take a look at GPA's openHistorian 2.0 which was explicitly designed for this kind of high-speed data.
- ADO Input Adapter - (input) used to import time-series values from any RDBMS.
- ADO Output Adapter - (output) used to export time-series values to any RDBMS.
- MySQL Input Adapter - (input) used to import time-series values from a MySQL database.
- MySQL Output Adapter - (output) used to export time-series values from a MySQL database.
- Kafka Time-Series Consumer - (input) used to import time-series values from a Kafka database.
- Kafka Time-Series Producer - (output) used to export time-series values to a Kafka database.
- PI Output Adapter - (output) used to synchronize metadata and export time-series values to OSI-PI historian instance.
- PI Input Adapters (PB) - (input) used to import historical time-series values, e.g., for play-back, from an OSI-PI historian instance.
- PI Input Adapters (RT) - (input) used to import real-time (on-change) time-series values from an OSI-PI historian instance.
- OH 1.0 Input Adapter (Local) - (input) used to import time-series data from a local (file set) instance of the openHistorian v1.0.
- OH 1.0 Output Adapter (Local) - (output) used to export time-series data to a local (file set) instance of the openHistorian v1.0.
- OH 1.0 Input Adapter (Remote) - (input) used to import time-series data from a remote (socket) instance of the openHistorian v1.0.
- OH 1.0 Output Adapter (Remote) - (output) used to export time-series data to a remote (socket) instance of the openHistorian v1.0.
Other Database/Historian Adapters:
- InfluxDB Output Adapter - (output) used to export time-series values to an InfluxDB instance.
- eDNA Output Adapter - (output) used to synchronize metadata and export time-series data to an eDNA historian instance.
- Archivist Output Adapter - (output) used to export time-series data to the Archivist historian.
Data Quality Monitoring Adapters
Products like the openPDC use the data quality adapters to monitor and alarm on data quality issues in streaming time-series data, covering a variety of common quality issues with streaming data, e.g., data flat-line scenarios (i.e., streaming but value is fixed) and out-of-range issues.
- Alarm Adapter - (facile-action) used generate alarms based on time-series data.
- Alarm State Flagger - (filter) used to generate new measurement quality flags based on alarm states.
- Best Value Selector - (action) used to produces a new signal by selecting the best values from a time-series values.
- Flatline Test - (action) used test time-series values to determine if values have flat-lined.
- Range Test - (action) used test time-series values to determine if values satisfy a range condition.
- State Flags Transfer Adapter - (filter) used to transfers flags to / from time-series values.
- Device Statistic Adapters - (facile-action) used to monitor and report device alarm states based on time-series input values.
File Operation Adapters
Time-series operations as it relates to files include options for reading and writing values that can be mapped to measurements in the GSF Time-Series Library. Existing options include an ICCP style adapter which will drop a file periodically with a configured set of measurements in a format consumable by many ICCP systems in use with SCADA deployments, providing a simple way to get calculations or other external time-series data into SCADA.
- CSV Export Adapter - (output) exports time-series values to CSV files on a schedule with a fixed format of
Timestamp,ID,Value
. - CSV Import Adapter - (input) imports time-series values from CSV files on a schedule and fixed format of
Timestamp,ID,Value
. - CSV Input Adapter - (input) imports time-series values from CSV files in highly-customizable fashion with column mappings.
- CSV Output Adapter - (output) exports time-series values to a CSV formated:
Signal ID,Measurement Key,Timestamp,Value
.
- File Block Reader - (facile-action) used to read and transport file data via time-series framework (e.g., over STTP).
- File Block Writer - (output) used to receive and write file data via time-series framework (e.g., over STTP).
- EPRI File Exporter - (action) used to export calculated time-series values to formats used by EPRI analysis applications.
- EPRI File Importer - (input) used to import calculated time-series values from formats used by EPRI analysis applications.
- EPRI Metric Importer - (input) used to import time-series statistic values from formats used by EPRI analysis applications.
- Metadata Export - (facile-action) exports system metadata to a file for transport as time-series data chunks (e.g., over STTP).
- Metadata Import - (facile-action) imports system metadata from a file-based transport as time-series data chunks (e.g., over STTP).
Other File Operation Adapters:
- COMTRADE File Exporter - (action) used to export time-series values to COMTRADE file.
- ICCP File Exporter - (action) used to save time-series data a file suitable for ICCP import / SCADA.
- FTP Reader - (facile-action) used to read and download files using FTP.
Publish/Subscribe Adapters
The following adapters are used to transfer streaming data using publish-subscribe data transfer protocols that have been optimized for exchanging streaming time series style data, such as synchrophasor data that is used in the electric power industry, over Internet Protocol (IP). The protocols, e.g., STTP/IEEE 2664, support transferring both real-time and historical time series data at full or down-sampled resolutions. These types of protocols have benefits that are realized at scale when multiplexing very large numbers of time series data points at high speed, such as, hundreds of times per second per data point.
Ideal use cases for protocols like STTP include those that need to securely exchange large numbers of continuously measured data.
- STTP (IEEE 2664) Publisher - (action-collection) used to publish time-series data using the Streaming Telemetry Transport Protocol.
- STTP (IEEE 2664) Subscriber - (input) used to subscribe to time-series data using the Streaming Telemetry Transport Protocol.
- GEP Publisher - (action-collection) used to publish time-series data using the Gateway Exchange Protocol.
- GEP Subscriber - (input) used to subscribe to time-series data using the Gateway Exchange Protocol.
Additional Adapters
The remaining adapters include various options for processing time-series data, including receiving time-series measurements from DNP3 and Modbus.
- Azure Event Hub - (output) exports time-series values to an Azure event hub for cloud based analysis.
- DNP3 - (input) uses to import time-series values from a DNP3 data source.
- Modbus Poller - (input) import time-series values from a Modbus data source.
- WAV Audio Input Adapter - (input) used to read audio data from a WAV file for export as time-series data.
- Audio Input Adapters - (input) used to sample audio data from a microphone for export as time-series data.