BSAP OPC Items

Ā Table Of Contents

Standard Items

SeeĀ Device Standard Items.

Protocol Items


Valid BSAP items are defined by the program that the device is running.

  • Only the list and array numbers that are implemented by the program will exist within the device.
  • Signals can have any name that the programmer gives them, following certain rules.
  • These rules differ for Network 3000 devices, which use ACCOL, and ControlWave devices, which don't.
  • The RTU Type in the Device tab determines which set(s) of rules will be used by ACM to validate items.

Rules for Network 3000 ACCOL Signal Names

  • ACCOL signal names have three parts that are separated by periods: Base.Extension.Attribute
  • The maximum length of the Base is 8 characters.
  • The Base must contain at least one character and start with '#' or a letter.
  • Other characters in the Base must be letters or numbers.
  • The maximum length of the Extension is 6 characters.
  • The Extension may be empty, but the periods that separate it from the Base and Attribute must still be included.
  • The characters in the Extension must be letters or numbers.
  • The maximum length of the Attribute is 4 characters.
  • The Attribute may be empty, but the period that separates it from the Extension must still be included.
  • The characters in the Extension must be letters or numbers.

Rules for ControlWave Signal Names

  • The maximum length of a ControlWave signal name is 128 characters.
  • A ControlWave signal name must start with a letter, or an underscore, or the string "@GV.".
  • Other characters in the name must be letters, numbers, underscores, or periods.
  • Some ControlWave devices also support signal names that use the Network 3000 ACCOL format.

Templates for BSAP Items in OPC Browse

If an Item Browse File is configured in the Device tab, OPC browse will display item names from the file.Ā  If not (or if certain types of items are not included in the Item Browse File), the template names will be displayed instead (or as well).

Select the template of the same type as the item you want to poll, then edit it to match the actual valid item name.

Analog Signal Names

ItemData TypeDescription
BASE..
BASE.EXT.
BASE..ATT
BASE.EXT.ATT
R4

These items are templates for analog signals that follow the Network 3000 ACCOL naming conventions. See the Rules for Network 3000 ACCOL Signal Names listed above.

Analog signal values are 4-byte floats.

To identify a signal name item as being an analog, do not use the &L or &S modifier. If the data type is incorrectly identified (that is, if the analog signal name format is used for a logical signal or string signal), the value will be converted. See the section below on BSAP OPC Items#Item Conversions.

CTRLWAVE_ITEMR4This item is a template for analog signals that follow the ControlWave naming conventions. See the Rules for ControlWave Signal Names listed above.

Logical Signal Names

ItemData TypeDescription
BASE..&L
BASE.EXT.&L
BASE..ATT&L
BASE.EXT.ATT&L
BOOL

These items are templates for logical signals that follow the Network 3000 ACCOL naming conventions. See the Rules for Network 3000 ACCOL Signal Names listed above.

Logical signal values are 1-byte boolean values (0 or 1).

To identify a signal name item as being a logical, use the &L modifier. If the data type is incorrectly identified (that is, if the &L modifier is used for an analog signal or string signal), the value will be converted. See the section below on BSAP OPC Items#Item Conversions.

An '!' may be added after the &L modifier (for example, BASE.EXT.ATT&L!) to invert the boolean value.

CTRLWAVE_ITEM&LBOOLThis item is a template for logical signals that follow the ControlWave naming conventions. See the Rules for ControlWave Signal Names listed above.

String Signal Names

ItemData TypeDescription
BASE..&S
BASE.EXT.&S
BASE..ATT&S
BASE.EXT.ATT&S
STRING

These items are templates for string signals that follow the Network 3000 ACCOL naming conventions. See the Rules for Network 3000 ACCOL Signal Names listed above.

String signal values are strings of up to 64 characters.

To identify a signal name item as being a string, use the &S modifier. If the data type is incorrectly identified (that is, if the &S modifier is used for an analog signal or logical signal), the value will be converted. See the section below on BSAP OPC Items#Item Conversions.

CTRLWAVE_ITEM&SSTRINGThis item is a template for string signals that follow the ControlWave naming conventions. See the Rules for ControlWave Signal Names listed above.

Signal Name Type & Inhibits Items

ItemData TypeDescription

BASE..&T
BASE..&T#
BASE..&Ty
BASE..&TY

BASE.EXT.&T
BASE.EXT.&T#
BASE.EXT.&Ty
BASE.EXT.&TY

BASE..ATT&T
BASE..ATT&T#
BASE..ATT&Ty
BASE..ATT&TY

BASE.EXT.ATT&T
BASE.EXT.ATT&T#
BASE.EXT.ATT&Ty
BASE.EXT.ATT&TY

I2
BOOL
I2
I2

I2
BOOL
I2
I2

I2
BOOL
I2

I2

I2
BOOL
I2
I2

These items are templates for the Type & Inhibits items of signals that follow the Network 3000 ACCOL naming conventions. See the "Rules for Network 3000 ACCOL Signal Names" listed above.

Signal name Type & Inhibits items are set to values determined by the bits of the Type & Inhibits byte when the signal name is polled.

  • &T is an integer containing the value of the whole byte (0 - 256).
  • &T# (where # is a digit from 0 - 7) is a boolean set to true if the value of the bit is 1 and false if the value of the bit is 0.
  • &Ty or &TY is an integer containing the value of bits 0 and 1, which indicates the signal's type (0 = logical, 2 = analog, 3 = string).

The Type & Inhibits byte encodes the following information:

  • Bit 0-1: Signal Type Bits (00 = logical, 10 = analog, 11 = string)
  • Bit 2: Alarm Signal (0 = not alarm, 1 = alarm)
  • Bit 3: Dynamic vs. Constant Signal (0 = dynamic, 1 = constant)
  • Bit 4: Manual Inhibit (0 = enabled, 1 = inhibited)
  • Bit 5: Control Inhibit (0 = enabled, 1 = inhibited)
  • Bit 6: Alarm Inhibit (0 = enabled, 1 = inhibited)
  • Bit 7: Data Reliability (0 = OK, 1 = questionable)

CTRLWAVE_ITEM&T
CTRLWAVE_ITEM&T#
CTRLWAVE_ITEM&Ty
CTRLWAVE_ITEM&TY

I2
BOOL
I2
I2

These items are templates for the Type & Inhibits items of signals that follow the ControlWave naming conventions. See the "Rules for ControlWave Signal Names" listed above.

Analog Array Names

ItemData TypeDescription
#A- An.x.yR4

This item is a template for analog array elements, where n is the array number (1-255), x is the row number (1-65535), and y is the column number (1-65535) of the element.

The protocol driver puts different rows into different messages. If the array is a single dimension array of one column but multiple rows, the column number and the row number can be reversed so the BSAP protocol driver will put the different elements of the array in the same message.

Analog Array Row Names

ItemData TypeDescription
#A-An.xArray of R4s

This item is a template for a row of elements of an analog array, where n is the array number (1-255) and x is the row number (1-65535). The entire row is sent to and from the client as one item.

Logical Array Names

ItemData TypeDescription
#L-An.x.yBOOL

This item is a template for logical array elements, where n is the array number (1-255), x is the row number (1-65535), and y is the column number (1-65535) of the element.

Note

The protocol driver puts different rows into different messages. If the array is a single dimension array of one column but multiple rows, the column number and the row number can be reversed so the BSAP protocol driver will put the different elements of the array in the same message.

Logical Array Row Names

ItemData TypeDescription
#L-An.xArray of BOOLs

This item is a template for a row of elements of an analog array, where n is the array number (1-255) and x is the row number (1-65535). The entire row is sent to and from the client as one item.

List Names

ItemData TypeDescription
#Listn.x
#Listn.x&L
#Listn.x&S
#Listn.x&T
R4
BOOL
STRING
I2 or BOOL

These items are templates for list elements, where n is the list number (1-65535) and x is the number of the element in the list (1-65535). The first element in a list is number 1; the second element is number 2, and so on.

Not using an & modifier indicates that the list element is an analog, which has a 4-byte float value.

Using an &L modifier indicates that the list element is a logical, which has a 1-byte boolean value (0 or 1).Ā  An '!' may be added after the &L modifier (for example, Listn.x&L!) to invert the boolean value.

Using an &S modifier indicates that the list element is a string, which has a string value of up to 64 characters.

If the data type is incorrectly identified (for example, if the analog name format is used for a logical signal or string signal), the value will be converted. See the section below on BSAP OPC Items#Item Conversions.

Using an &T modifier indicates a Type & Inhibits item; see the section Signal Name Type & Inhibits Items for a full explanation of these

Extended Items

The BSAP protocol implementation supports the following item names for use by client applications:

ItemData TypeDescription
#ACCOL_VERSIONI4Poll the ACCOL load version number
#LOG_EFM_ITEMSI4Writes status information to the logger for all EFM items.
#LOG_ITEM_LISTI4Writes status information to the logger for all items that have been advised to the device.
#LOG_READ_QUEUEI4Writes status information to the logger for all poll messages in the device read queue.
#LOG_WRITE_QUEUEI4Writes status information to the logger for all poll messages in the device write queue.
#READ_BY_NAMEBOOLForces all items currently being read by address to be read by name (one time).
#REQUEST_NRTBOOLForces a TS/NRT message to be sent at the start of the next poll cycle.
#TEST_VERSIONI4Sets the stored MSD version number to a different value. This will force the MSD version to be reread from the device.
#TIME_HOUR
#TIME_MIN
#TIME_SEC
#TIME_DAY
#TIME_MON
#TIME_YEAR
#TIME_JULIAN_DAY
#TIME_JULIAN_4SEC
#TIME_JULIAN_20MSEC
R4

Poll the system date and time using the RDB extension read date/time message.

Note that:

a) These items are read-only and cannot be used to set the time.

b) Not all BSAP RTUs support this RDB extension message type.

LastArchive1Record/nDATETimestamp of the latest User1 Upload record collected from Meter n.
LastArchive2Record/nDATETimestamp of the latest User2 Upload record collected from Meter n.
LastArchive3Record/nDATETimestamp of the latest User3 Upload record collected from Meter n.
LastArchive4Record/nDATETimestamp of the latest User4 Upload record collected from Meter n.
LastArchive5Record/nDATETimestamp of the latest User5 Upload record collected from Meter n.
LastArchive6Record/nDATETimestamp of the latest User6 Upload record collected from Meter n.
LastArchive7Record/nDATETimestamp of the latest User7 Upload record collected from Meter n.
LastArchive8Record/nDATETimestamp of the latest User8 Upload record collected from Meter n.
LastArchive9Record/nDATETimestamp of the latest User9 Upload record collected from Meter n.
LastArchive10Record/nDATETimestamp of the latest User10 Upload record collected from Meter n.
LastArchive11Record/nDATETimestamp of the latest User11 Upload record collected from Meter n.
LastArchive12Record/nDATETimestamp of the latest User12 Upload record collected from Meter n.
LastArchive13Record/nDATETimestamp of the latest User13 Upload record collected from Meter n.
LastArchive14Record/nDATETimestamp of the latest User14 Upload record collected from Meter n.
LastArchive15Record/nDATETimestamp of the latest User15 Upload record collected from Meter n.
LastArchive16Record/nDATETimestamp of the latest User16 Upload record collected from Meter n.
LastAuditRecordDATETimestamp of the latest Audit Upload record collected from the device.
LastDailyRecord/nDATETimestamp of the latest Daily Upload record collected from Meter n.
LastHourlyRecord/nDATETimestamp of the latest Hourly Upload record collected from Meter n.
LastMinuteRecord/nDATETimestamp of the latest Minute Upload record collected from Meter n.
LastRtuConfigRead/nDATETimestamp of the most recent read of the Meter Configuration for Meter n.
LastTimeSyncDATETimestamp of the last time synch.
LastTimeSyncResultI4Result code for the last time synch: 0 for no error or alarm. Error and alarm result code values are set in the TimeSync object.
MoveArchive1/nI2Move User1 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive2/nI2Move User2 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive3/nI2Move User3 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive4/nI2Move User4 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive5/nI2Move User5 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive6/nI2Move User6 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive7/nI2Move User7 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive8/nI2Move User8 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive9/nI2Move User9 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive10/nI2Move User10 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive11/nI2Move User11 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive12/nI2Move User12 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive13/nI2Move User13 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive14/nI2Move User14 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive15/nI2Move User15 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveArchive16/nI2Move User16 Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveAuditI2Move Audit Upload position pointer: positive value moves backward.
MoveDaily/nI2Move Daily Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveHourly/nI2Move Hourly Upload position pointer for Meter n: positive value moves backward, negative forward.
MoveMinute/nI2Move Minute Upload position pointer for Meter n: positive value moves backward, negative forward.
ResetArchive1/nBOOLReset User1 Upload position pointer for Meter n.
ResetArchive2/nBOOLReset User2 Upload position pointer for Meter n.
ResetArchive3/nBOOLReset User3 Upload position pointer for Meter n.
ResetArchive4/nBOOLReset User4 Upload position pointer for Meter n.
ResetArchive5/nBOOLReset User5 Upload position pointer for Meter n.
ResetArchive6/nBOOLReset User6 Upload position pointer for Meter n.
ResetArchive7/nBOOLReset User7 Upload position pointer for Meter n.
ResetArchive8/nBOOLReset User8 Upload position pointer for Meter n.
ResetArchive9/nBOOLReset User9 Upload position pointer for Meter n.
ResetArchive10/nBOOLReset User10 Upload position pointer for Meter n.
ResetArchive11/nBOOLReset User11 Upload position pointer for Meter n.
ResetArchive12/nBOOLReset User12 Upload position pointer for Meter n.
ResetArchive13/nBOOLReset User13 Upload position pointer for Meter n.
ResetArchive14/nBOOLReset User14 Upload position pointer for Meter n.
ResetArchive15/nBOOLReset User15 Upload position pointer for Meter n.
ResetArchive16/nBOOLReset User16 Upload position pointer for Meter n.
ResetAuditBOOLReset Audit Upload position pointer.
ResetDaily/nBOOLReset Daily Upload position pointer for Meter n.
ResetHourly/nBOOLReset Hourly Upload position pointer for Meter n.
ResetMinute/nBOOLReset Minute Upload position pointer for Meter n.
RetrieveHistoryBOOLRetrieve History
TimeSyncI2Triggers a Time Sync to occur.

Item Conversions

The BSAP protocol module supports item conversion from logical to analog and from analog to logical, from logical to string and from string to logical, or from analog to string and string to analog. The default signal type is analog (R4).

To tell the protocol module that a signal is a logical value (bool), append anĀ &L to the end of the signal name. To tell the protocol module that a signal is a string value (BSTR), append anĀ &S to the end of the signal name.

If theĀ &L is left off from a logical signal name, the value received from the device will be converted from a logicalĀ 0 to anĀ R4 value ofĀ 0.0, or a logicalĀ 1 will be converted to an analog value ofĀ 1.0 before sending to the client. If theĀ &S is left off from a string signal name, the ASCII string (Ā -999.9, -Ā 9.999e-011 ) received from the device will be converted to an analog value before sending to the client. The analog value received from the client will be converted to its ASCII string equivalent (Ā -999.9, -9.999e-011) before sending to the device.

TheĀ &S is not normally appended to a logical signal name, but if anĀ &S is appended to a logical signal name, the value received from the device will be converted from a logical
1 to an ASCII string value ofĀ On, or an ASCII string value ofĀ On (case insensitive) to a logical value ofĀ 1 before sending to the client. Also, a logicalĀ 0 will be converted to an ASCII string value ofĀ Off, or an ASCII string value ofĀ Off (case insensitive) will be converted to a logical value of 0 before sending to the client.

TheĀ &L andĀ &S are not normally appended to an analog signal name, but if either is, the same conversion described above will occur. It is not necessary to append theĀ &L to a logical array name. It is not valid to append theĀ &S to a logical array name. It is not valid to append theĀ &L orĀ &S to an analog array name. All conversions that apply to signal values also apply to the same type of signal in a list.

For assistance, please submit a ticket via our Support Portal, email autosol.support@autosoln.com or call 281.286.6017 to speak to a support team member.