The OPC Gateway (Protocol converter, Data Manager). Allows the transfer of data between any brand of OPC Servers or between our protocols.
Items to be transferred are placed into groups. The update rate and dead band of each group controls the acquisition rate and percent dead band of all items in that group.


| Group Name | User supplied group name |
|---|---|
| Update Rate | The acquisition rate of all items in this group in milliseconds. |
| Write Delay | Put a delay between each write. |
| Dead Band | Only items whose value are changed by greater than the specified dead band will be transferred. Applies only to items in which the raw low and high values are defined. See addtags for information on how to set the raw low and high values in IOServer. Each brand of OPC Server have its own method of setting the low and high values. |
| Active | Set to 0 to stop this group. |
| Force Initial Update | Set to true, for OPC Server that does not comply with the OPC Standard of sending the initial value. |
| Write on Good Quality Only | Copy to destination only if the quality of source is good. |
| OPC 2 | Force the use of OPC 2.0 even if the OPC 1.0 interface is published by the OPC Server. |
| Allow spaces in OPC Tag | Tags must be bracketed by parenthesis when this option is enabled. |
| Reads | Total number of reads |
| Writes | Total number of writes |
| Items | Number of items |
Each item defines source of the data and the destination of the data.


| Source Expression | When reading from IOServer the OPC Server Name may be omitted. The OPC Server name is anything before the '\' character. Any error detected is appended to this field. \App1\IOServer\Device1.40001 will access itemdID "Device1.40001" in the OPC Server "IOServer" on remote computer "App1" | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Destination ItemID | Write to Destination ItemID whenever the value at Source is changed. Any error detected is appended to this field. | ||||||||||||
| Trigger Expression | Copy Source to Destination only when the trigger is true or if the trigger is not specified. Any error detected is appended to this field | ||||||||||||
| Browse | Browse OPC Servers items.
|
||||||||||||
| Active | Set to 0 to stop this item. | ||||||||||||
| Force Write | Force write to destination even if the value of source or trigger is not changed. | ||||||||||||
| Write Delay | Delay the write by this number of milliseconds. | ||||||||||||
| Value | The last value read. | ||||||||||||
| Time Stamp | The last time data was read. Time stamp information are preserved if the destination Item ID is in IOServer. If the source consist of more than one item, then the newest timestamp is used. | ||||||||||||
| Quality | The last quality of this item. If the destination is a DNP Slave, the .Online of that object will be set to 0/1 if the source quality is bad/good. | ||||||||||||
| Reads | Total number of reads | ||||||||||||
| Writes | Total number of writes |
The Trigger and source expression can be any combination of comparison, logical or arithmetic operation on OPC items from any OPC Server. ItemID must be space separated.
| () | Use to override priority |
| - not | unary operator, negation and logical not |
| * / div mod | multiply, divide, integer divide and modulus |
| - + | plus and minus |
| << >> | left and right shift |
| < <= > >= | comparison |
| = <> | equality and non equality |
| bitand | bitwise and |
| bitxor | bitwise xor |
| bitor | bitwise or |
| and | logical and |
| or | logical or |
abs, acos, asin, atan, ceil, cos, cosh, erf, erfc, exp, factorial, floor,
gamma, j0, j1, log, log10, sin, sinh, sqrt, tan, tanh, y0, y1,
atan2(x,y), jn(n,x), max(x,y), min(x,y), pow(x,y), yn(n,x), rand()
if(cond,x,y) return x if cond is true otherwise return y
quality(itemID) returns the quality of itemID.
Changed(itemID , percentDeadband, low, high) return 1 if itemID have exceeded the percentDeadband, otherwise it returns 0. If percentDeadband is 0, then the timestamp of itemID must be within 3x the group update rate. If low is equal to high, then percentDeadband is the absolute deadband.
Scale(itemID , percentDeadband, rawLow, rawHigh, engLow, engHigh) scales itemID and clamp the value to [engLow, engHigh] within the percentDeadband.
LowPass(itemID , unitPerSecond) apply lowpass filtering. Reject values that changes faster than unitPerSecond
time(itemID , type) return the time information from timeID timestamp.
| type | Time Information returned |
| 0 | Seconds since January 1, 1970 |
| 1 | Year |
| 2 | Month: January is 1 |
| 3 | Day of Week: Sunday is 0 |
| 4 | Day: 1 to 31 |
| 5 | Hour: 0 to 23 |
| 6 | Minute: 0 to 59 |
| 7 | Second: 0 to 59 |
| 8 | Millisecond: 0 to 999 |
| 9 | Milliseconds since midnight |
settime(value , type) set the system time
| type | Value |
| 0 | Seconds since January 1, 1970 |
| 1 | Milliseconds since midnight |
strcmp(str1, str2) return zero if strings are equal, -1 if str1 < str2 or 1 if str1 > str2. Comparison is case insensitive.
strftime(itemID , fmt) return a string formatted according to fmt using the strftime function.
replace(string, old, new) replace all occurrences of old in string with new. Use \t,\r or \n for the tab, carriage return or new line character.
strAdd(string1, string2) return the concatenation of string1 and string2.
strFmt(fmt, n) return a string of value n formatted according to fmt. Use formatting convention of printf.
The last 16 changes of the read items are displayed.

| Time | Time the read value was acquired. |
|---|---|
| Delta (ms) | Time difference from previous read. |
| Read | Value and itemID of read |
| Quality | Quality of read value. |
| Time Stamp | Time stamp of read value. |
| Write | Value and status of write |
| Reserved | Not used. |
Last updated: 12 January 2010