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 troubleshooting tips.
The Opto 22 SNAP PAC Driver module can scan specific tags. This method offers the best performance but requires setup in PAC Control.
To scan all tags, see Opto 22 SNAP PAC Driver Module Configuration.
For help using PAC Control, see the PAC Control User's Guide (available from the Opto 22 website).
In the Strategy tree window, right-click the String Tables folder, and then click Add. The Add Variable dialog box opens. Complete the fields.
Name: Enter the table name: stPublicListOfStrategyTags. The name is case-sensitive.
Description: Optional.
Type: Leave the default (String Table).
Initialization: Select Persistent
Initial Value: Leave the default (blank).
Table Length: Enter a number equal to or greater than the number of tags to import. For example, to import 10 floats and 6 tables, enter a Table Length of 16 or more. (A table variable counts as one tag, despite the number of elements it has.) Note: Ignition Edge has a limit of 500 tags. Ignition Enterprise does not limit the number of tags you can use
String Width: Enter a value of 100.
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 | i32.MyIntVariable.rw |
| MyIntVariable__i32 |
64-bit integer | Int8 | i64 | i64.MyLongVariable | i64.MyLongVariable.rw |
| MyLongVariable__i64 |
32-bit float | Float4 | f32 | f32.MyFloatVariable | f32.MyFloatVariable.rw |
| MyFloatVariable__f32 |
32-bit integer as a SCADA Boolean | Boolean | i32b | i32b.MyIntVariable | i32b.MyIntVariable.rw |
| MyIntVariable__i32b |
String | String | s | s.MyStringVariable | s.MyStringVariable.rw | 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 | aio.MyAnalogPoint.rw |
| MyAnalogPoint__aio |
Discrete input or output state | Boolean | dio | dio.MyDiscretePoint | dio.MyDiscretePoint.rw |
| MyDiscretePoint__dio |
Bit-pick of a 32-bit integer variable | Boolean | i32bp | i32bp.My32BitIntegerVariable.31 | i32bp.My32BitIntegerVariable.31.rw |
| My32BitIntegerVariable__31_i32bp |
Bit-pick of a 64-bit integer variable | Boolean | i64bp | i64bp.MyLongVariable.0 | i64bp.MyLongVariable.0.rw |
| 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 Gateway’s Logs (Status tab > Diagnostics > Logs).