Supported variable configurations for the Hach WIMS Direct Server-Side Interface to Trihedral VTScada
To configure a variable to hold values from Trihedral VTScada, select System Setup > Edit/View Variables in the Hach WIMS Client and select the Interface tab.
Then click Interface To radio button. The drop down box next to the option is now enabled, click the drop down arrow and choose the Trihedral VTScada interface name (name given when configuring the interface).
Now you are ready to configure a signal tag from the Trihedral VTScada Historian. The Tag name and a statistic are all that are mandatory.
- This is the tag name. The ? symbol (question mark) will allow you to browse the Historian database for tag names. An explanation of the browser can be found in Using Interface Browser Q12394. You can specify frequency of data points in seconds by appending the value to the end of the TAG and seperated with a colon. For example if we need to specify data points every 60 seconds for AI001, we would enter AI001:60. This will override any overall settings in the Q12363 interface under Source Configuration > Advanced Options.
- This is a listing of all the statistics supported by this interface. This includes the following statistics for a specified time period:
NOTE: All statistics return a BLANK when no data is found, except where otherwise noted. Be aware that when data is filtered, it is possible to return a BLANK.
STATISTIC |
DESCRIPTION |
|
AVERAGE |
Take the average of the data points |
|
AVERAGEZERO |
Take the average of the data points, return zero (0) if result is BLANK. |
|
TOTAL |
Take the sum total of all values |
|
TOTALZERO |
Take the sum total of all values, return zero (0) if result is BLANK. |
|
MINIMUM |
Get the minimum value |
|
MAXIMUM |
Get the maximum value |
|
FIRST |
Get the first value |
|
LAST |
Get the last value |
|
DIFF |
Calculate the difference between the first and last values. If the first value is larger than the second then it will perform the following calculation: (10 ^ (Ceil(LOG(first_value) / LOG(10)))) - first_value + last_value
Ceil will cause the value to round up
NOTE: When working with a customer it was noticed that as the date span for a query using :Interpoloated, was increased, the interpolated values changed slighty. This did not occurr when using other fields like :Average. This caused the DIFF Statistic to report incorrect numbers. To change the field the interface is querying see Q12406. |
|
RANGE |
Calculate the absolute value of the difference between the minimum and maximum values |
|
INVENTORY |
Return the total use based on a tank level signal. For example, the level is 10 feet at midnight and slowly goes down to 2 feet at 2:00 PM, then gets filled to 15 feet and slowly goes down to 8 feet at midnight. The inventory function would return ((10 - 2) + (15 - 8)) = 15. |
|
TIMEGT(x) |
Counts the number of values greater than the given number (x). If left unspecified it will use zero (0). |
|
TIMELT(x) |
Counts the number of values less than the given number (x). If left unspecified it will use zero (0). |
|
TIMEEQ(x) |
Counts the number of values equal to the given number (x). If left unspecified it will use zero (0). |
|
CYCLE(x) |
Counts the number of times a value cycles to a particular number (x). |
|
COUNT |
Counts the number of data points. |
|
MINTIME |
Returns the time of the minimum value as a text value, sets numeric value to 1 (one). |
|
MAXTIME |
Returns the time of the maximum value as a text value, sets numeric value to 1 (one). |
|
The interface query for a tagname of AI001, getting a daily values for Aug 8, 2009 is:
select s.Value:TimeofMin as sTimeStamp, s.Value:Interpolated as sValue from AI001:60 WHERE s.Value:TimeofMin >= #8/8/2009# and s.Value:TimeofMin < #8/9/2009# and s.Value is not null
NOTE: We use TimeofMIN instead of Timestamp due to the way timestamp is stored when data is not logged. Example:
Example Data changed to 0 at 7:50 and to 1 at 7:59
Timestamp |
Value:TimeofMin |
Value |
7:50 |
7:58 |
0 |
7:59 |
7:59 |
1 |
7:59 |
8:00 |
1 |
7:59 |
8:01 |
1 |
The records returned from the query are then loaded into an array and the statistic is calculated.
- This is the value to multiply the result by when using parameter variable types. Commonly used to convert from one unit base to another. For example to convert gallons per minute (GPM) to gallons per day (GPD), set the scale factor to 1440 (1440 minutes per day).
- All three fields must have numeric values or the word None (as shown). The Low Range and High Range will crop data from the source. For example to eliminate negative numbers from a particular tag, set the Low Range to 0 (zero) - this will get any values equal to or greater than 0 (zero). The Deadband is used for the statistic Inventory and will elliminate noise levels up to the value specified. For example, if you enter .5 next to Deadband, any value change of .5 or less, will be ignored.
- Start Time will set the beginning of the time slot for this variable.
- Stop Time will set the ending time for the time slot.
- Same Day as Start is only used by daily variables and it means the stop time is on the same day as the start time.
- Day After Start is also only used by daily variables and it means the stop time is a day after the start time.
- Node Tag Field is the signal tag to filter by from the GE Fanuc Proficy Historian. You can find tag names using the ? the same way you found the signal tag above.
- The second field is the filter operator drop down. This includes the following:
SYMBOL |
DESCRIPTION |
< |
Less than, true if the value returned is less than the filter value |
> |
Greater than, true if the value returned is greater than the filter value |
= |
Equal to, true if the value returned is equal to the filter value |
<= |
Less than or equal to, true if the value returned is less than or equal to the filter value |
>= |
Greater than or equal to, true if the value returned is greater than or equal to the filter vaue |
<> |
Not equal, true if the value returned is not equal to the filter value |
- The last field is the filter value. The value returned from the filter tag is compared to this value.