Contents
Cirrus Link Resources
Cirrus Link Website
Contact Us (Sales/Support)
Inductive Resources
Ignition User Manual
Knowledge Base Articles
Inductive University
Forum
Click here for Using the Opto 22 SNAP PAC Driver Module tips.
The Driver module is designed to scan either:
For best performance, we strongly recommend you use the stPublicListOfStrategyTags table to get tags.
For help using PAC Control, see the PAC Control User's Guide (available from the Opto 22 website).
For each tag to be scanned, create a string element following the OptoScript Syntax and tag naming standard.
IMPORTANT: Index number 0 (zero) must be the last item initialized in the OptoScript block
/* If the tag begins with an ' or a /, the tag is ignored. Important! Initialize the first table element (at Index 0) last (because a blank string in Index 0 tells the driver that the string table has not yet been initialized). */ stPublicListOfStrategyTags[0] = ""; stPublicListOfStrategyTags[1] = "f32.MyFloat.rw"; stPublicListOfStrategyTags[2] = "i64.MyInt64.rw"; stPublicListOfStrategyTags[3] = "s.MyString.rw"; stPublicListOfStrategyTags[4] = "t.MyTimer.rw"; stPublicListOfStrategyTags[5] = "i32b.MyBool.rw"; stPublicListOfStrategyTags[6] = "i32t.MyInt32Table[0-9].rw"; stPublicListOfStrategyTags[7] = "i64t. MyInt64Table [0-20].rw"; stPublicListOfStrategyTags[8] = "f32t.MyFloatTable[10-19].rw"; stPublicListOfStrategyTags[9] = "st. MyStringTable [0-9].rw"; stPublicListOfStrategyTags[10] = "dio.MyDiscreetPoint"; stPublicListOfStrategyTags[11] = "aio. MyAnalogPoint.rw"; stPublicListOfStrategyTags[12] = "i32te.MyInt32TableElement[5].rw"; stPublicListOfStrategyTags[13] = "i32tebp.MyInt32TableElementBitPick [9].2.rw"; stPublicListOfStrategyTags[14] = "i64tebp. MyInt64TableElementBitPick [5].8.rw"; stPublicListOfStrategyTags[16] = "i32bp.MyInt32BitPick.1.rw"; // Remember, initialize index 0 last! stPublicListOfStrategyTags[0] = "i32.Int32.rw";
In the OptoScript block, you:
stPublicListOfStrategyTags[<index number>] = "<modified tag name>";
stPublicListOfStrategyTags[1] = "s.MyStringVariable";
To construct the tag name, see Naming Standard.
In the OptoScript block, you reference PAC Control tags using a pre-defined naming standard that consists of the tagís:
Notes
/i32.MyIntVariable.rw 's.MyStringVariable
Naming standard: <OptoScript data type code>.<PAC Control tag name>[<index number or range>].<bit location>.< writeable attribute>
Examples:
Data type description | Ignition data type | Data type code | Example tag name for OptoScript block | Example tag name for OptoScript block (writeable tag) | Notes | Ignition will display tag name as: |
---|---|---|---|---|---|---|
32-bit integer | Int4 | i32 | i32.MyIntVariable |
| MyIntVariable__i32 | |
64-bit integer | Int8 | i64 | i64.MyLongVariable |
| MyLongVariable__i64 | |
32-bit float | Float4 | f32 | f32.MyFloatVariable |
| MyFloatVariable__f32 | |
32-bit integer as a SCADA Boolean | Boolean | i32b | i32b.MyIntVariable |
| MyIntVariable__i32b | |
String | String | s | s.MyStringVariable | PAC Controllers support only 7-bit ASCII | MyStringVariable__s | |
Up or Down timer | Float4 | t | t.MyUpTimer | t.MyUpTimer | Only read-only | MyUpTimer__t |
32-bit integer table element as a SCADA int4 | Int4 | i32te | i32te.My32BitIntegerTable[3] | i32te.My32BitIntegerTable[3].rw |
| My32BitIntegerTable__3_i32te |
32-bit integer table | See i32te. | i32t | i32t.My32BitIntegerTable[0-9] | i32t.My32BitIntegerTable[0-9].rw | Module will provide individual elements. i32tMyInteger[11-9] (backward index range) | My32BitIntegerTable__0_9_i32t |
64-bit integer table element as a SCADA int8 | Int8 | i64te | i64te.My64BitIntegerTable[302] | i64te.My64BitIntegerTable[302].rw |
| My64BitIntegerTable__302_i64te |
64-bit integer table | See i64te. | i64t | i64t.My64BitIntegerTable[0-35] | i64t.My64BitIntegerTable[0-35].rw | Module will provide individual elements. "_auto" will be appended to the tag’s item ID. | My64BitIntegerTable__0_35_i64t |
32-bit float table element as a SCADA float4 | Float4 | f32te | f32te.My32BitFloatTable[11] | f32te.My32BitFloatTable[11].rw |
| My32BitFloatTable__11_f32te |
32-bit float table | See f32te. | f32t | f32.MyFloatTable[0-20] | f32.MyFloatTable[0-20].rw | Module will provide individual elements. "_auto" will be appended to the tag’s item ID. | MyFloatTable__0_20_f32 |
String table | See stte. | st | st.MyStringTable[0-32] | st.MyStringTable[0-32].rw | PAC Controllers support only 7-bit ASCII Module will provide individual elements. | MyStringTable__0_32_st |
String table element as a SCADA string | String | stte | stte.MyStringTable[6] | stte.MyStringTable[6].rw | PAC Controllers support only 7-bit ASCII | MyStringTable__6_stte |
Analog input or output state | Float4 | aio | aio.MyAnalogPoint |
| MyAnalogPoint__aio | |
Discrete input or output state | Boolean | dio | dio.MyDiscretePoint |
| MyDiscretePoint__dio | |
Bit-pick of a 32-bit integer variable | Boolean | i32bp | i32bp.My32BitIntegerVariable.31 |
| My32BitIntegerVariable__31_i32bp | |
Bit-pick of a 64-bit integer variable | Boolean | i64bp | i64bp.MyLongVariable.0 |
| MyLongVariable__0_i64bp | |
Bit-pick of a 32-bit integer table element | Boolean | i32tebp | i32tebp.My32BitIntegerTable[3].2 | i32tebp.My32BitIntegerTable[3].2.rw |
| My32BitIntegerTable__3_2_i32tebp |
Bit-pick of a 64-bit integer table element | Boolean | i64tebp | i64tebp.My64BitIntegerTable[302].6 | i64tebp.My64BitIntegerTable[302].6.rw |
| My64BitIntegerTable__302_6_i64tebp |
TIP: If you canít find a tag, check the following:
* The strategy is running in PAC Control.
* You correctly entered the tag name in the stPublicListOfStrategyTags table.
* After making changes to the table, you restarted the Driver module in Ignition and waited for its status to change to Connected.
For more information, see the Ignition Logs.
If the Driver module canít find the stPublicListOfStrategyTags table in the strategy, it automatically retrieves the strategyís inventory of all driver-supported tags in their native format. This means that PAC Control's object inventory will not match Ignitionís object inventory. (For example, a 32-bit integer in PAC Control may be used as a number, a bitmask, and a zero/non-zero Boolean value.) For performance reasons, we strongly discourage scanning all tags.