====== Script Tags ====== Script Tags provide a highly configurable way to define calculation and event raising tags. Script tags can be written in: * C# * FLEE (Fast Lightweight Expression Evaluation) - [[https://github.com/mparlak/Flee/wiki/Examples|more info]] ===== Script Tag Templates ===== A number of pre-configured script tags exist to perform the following functions: ==== Calculations ==== * **Accumulator Calculator** \\ Calculates the accumulated result of a monitored process tag for a given period (e.g. a day). * **Aggregation Calculator** \\ Periodically calculate an aggregation of a process tag. * **Average Calculator** \\ Periodically calculates the average value of a process tag. * **Delta Calculator** \\ Calculates the delta between the value of two input tags. * **Delta with Offset Calculator** \\ Calculates the delta between the value of two input tags, then applies an offset. * **Energy Based Availability Calculator** \\ Energy-Based Availability (EBA) is the ratio of actual to expected energy production. * **Gas Velocity Calculator** \\ Calculates gas velocity using flow rate and pressure. * **Normalized Deviation Calculation** \\ Calculates the normalized deviation of a process value. * **Ratio Calculator** \\ Calculates the ratio and between two input tags. * **Time Based Availability Calculator** \\ Time-Based Availability (TBA) is an energy expression denoting the ratio of a time-period (e.g. a day) when power is available. It does not discriminate the cause of downtime (e.g. a deliberate stop for maintenance, no/low wind conditions). * **Time Based Delta Calculator** \\ Monitors the rate of change of a process tag over a time period. * **Turbine Status** \\ A turbine has three basic power-production states: 1. Power; 2. No Wind; 3. No Power. * **Turbulence Intensity Calculator** \\ Turbulence Intensity (TI) is a measurement of wind speed turbulence. It is the ratio of wind speed StdDev to Mean. * **Turbulence Intensity Forecast Calculator** \\ Turbulence Intensity Forecast (TI) is an measurement of wind speed turbulence derived from forecasted Wind and Gust Speed (rather than observed wind speed variance). * **Unit Converter** \\ Convert process value from one unit to another. ==== Sensor Quality Checks ==== * **Bad Data Detection** \\ Data quality check that raises alert if monitored tag returns NaN or has a 'bad' status. * **Channel Deviation Detection** \\ Checks for deviation in output from a sensor with two data channels. An alert indicates that one or both of the channels is unreliable. The method is to regularly compare Channel A and Channel B and check if difference is within acceptable instrument error tolerance. Default configuration is to check 24hr average difference 4 times per day. * **Flatline Detection** \\ Script tag that checks for flatlining data (i.e. process tags where the tag may be updating regularly, but the sensor value is not changing). * **Frozen Signal Detection** \\ Script tag that periodically ensures that newer values are being received for a tag. ==== Process Data Alerts ==== * **Equipment Running Status Monitor** \\ Monitors the running status of a piece of equipment and triggers and resets events when the status changes. * **Fleeting Excursion Monitor** \\ Script tag template for monitoring sensors such as acoustic sand probes that can generate fleeting excursions. * **Hi/Lo Limit Monitor** \\ Performs a Hi/Lo limit monitor check. * **Limit Monitor** \\ Script tag that periodically monitors a process tag value against a limit using MIN/MAX aggregated data. \\ //Use the FleetingExcursionMonitor template if you require a high degree of accuracy.// * **Limit Monitor 1 Precondition** \\ Limit monitor that will only trigger or reset an excursion event if a precondition tag value check is met. * **Limit Monitor 2 Precondition** \\ Limit monitor that will only trigger or reset an excursion event if two precondition tag value checks are met. * **Limit Monitor 3 Precondition** \\ Limit monitor that will only trigger or reset an excursion event if three precondition tag value checks are met. * **Logic Gate Alert** \\ An alert that can be used to summarise the status of multiple alerts using an AND or OR operator. * **Time Based Delta Monitor** \\ Monitors the rate of change of a process tag over a time period. * **Value Change Monitor** \\ Monitors a tag and emits an event every time the value of the tag changes. ==== Troubleshooting ==== The Data Core Admin UI shows information related to the processing of an individual Script Tag via the "Info" and "Additional Properties" icons. {{ :data_core:scripttags-00.png?400 |}} The Data Core API also exposes information related to all Script Tags for a data source. * [DataCoreAdminUrl]/datacore/api/diagnostics/scripting/[dataSourceName]