This OPC UA ObjectType represents an AutoID Device. It defines all methods and properties required for any kind of AutoID Device in general, e.g. methods for controlling the scan operation or the mechanism to load a configuration file to the reader. However, the object is an abstract definition in terms of the actual AutoID technology, i.e. there are no properties or methods which rely on specific features or technologies.
Figure 6 shows an overview for the AutoIdDeviceType with its Properties and the base type DeviceType. It is formally defined in Table 7.
Figure 6 – AutoIdDeviceType overview
There are several options to start the scanning of AutoID Identifiers like transponders or codes. The access to the different options requires that the OPC UA Client and the user are authorized to access the requested information.
Option 1: The reader starts the scanning when the Client calls the Scan Method. The operation stops according to the termination conditions specified in the Settings parameter of the Method. The scanned data will be the result of the method call. The Settings parameter has the DataType ScanSettings. The DataType is defined in 9.3.7. Only the OPC UA Client calling the Method receives the scanned data.
Option 2: The reader will throw Events at each time a transponder or code has been detected. The scan operation starts when the client calls the ScanStart Method. The operation stops according to the termination conditions specified in the Settings parameter of the Method, or if the client calls the ScanStop Method. The scanned data is delivered through the Events. Every OPC UA Client subscribed for Events will receive the scanned data.
Option 3: The reader will throw Events at each time a transponder or code has been detected. The scan operation is controlled by the reader itself, e.g. by a trigger button. In this case, none of the scan Methods has to be called. The scanned data is delivered through the Events. Every OPC UA Client subscribed for Events will receive the scanned data.
Option 4: The reader starts the scanning when the Client writes True to the Variable ScanActive. The scan result is provided through the Variable LastScanData. The configuration is provided through the parameters in the FunctionalGroup ScanSettings. The simple option has several limitations and is only used with OPC Clients limited to Data Access functionality. Additional Scan result information can be provided via Variables like LastScanTimestamp, LastScanAntenna and LastScanRSSI, where the last two Variables are only offered by the RfidReaderDeviceType. OPC UA does not ensure a consistent delivery of a list of Variable Values. An OPC UA Server shall set all Variable SourceTimestamps and the value of the LastScanTimestamp Variable with a consistent value if the Variables Values are updated. An OPC UA Client must ensure that it has a constent set of Values. The Client can use the DataChangeFilter STATUS_VALUE_TIMESTAMP_2 to receive updates for all Variables to verify if all necessary information is available or a Client can subscribe only for one Variable like LastScanData and then read the related Variables including a verification of the SourceTimestamp.
Depending on the AutoID Device capabilities, the Scan, ScanStart and ScanStop Methods are optional. If none of these methods are implemented, option 3 or 4 has to be supported. See also 10.1 for the definition of the different AutoID Device Profiles.
The AutoIdDeviceType is formally defined in Table 7.
Table 7 – AutoIdDeviceType Definition
Attribute |
Value |
||||
BrowseName |
AutoIdDeviceType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of DeviceType defined in OPC 10000-100. |
|||||
HasComponent |
Object |
RuntimeParameters |
|
FunctionalGroupType |
Optional |
HasComponent |
Object |
IOData |
|
FunctionalGroupType |
Optional |
HasComponent |
Object |
Diagnostics |
|
FunctionalGroupType |
Optional |
|
|
|
|
|
|
HasComponent |
Method |
Scan |
|
|
Optional |
HasComponent |
Method |
ScanStart |
|
|
Optional |
HasComponent |
Method |
ScanStop |
|
|
Optional |
HasComponent |
Method |
GetDeviceLocation |
|
|
Optional |
|
|
|
|
|
|
HasComponent |
Variable |
ScanActive |
Boolean |
BaseDataVariableType |
Optional |
HasComponent |
Variable |
LastScanData |
BaseDataType |
BaseDataVariableType |
Optional |
HasComponent |
Variable |
LastScanTimestamp |
UtcTime |
BaseDataVariableType |
Optional |
|
|
|
|
|
|
HasProperty |
Variable |
DeviceInfo |
String |
PropertyType |
Optional |
HasComponent |
Variable |
DeviceLocation |
Location |
LocationVariableType |
Optional |
HasProperty |
Variable |
DeviceLocationName |
String |
PropertyType |
Optional |
HasProperty |
Variable |
DeviceName |
String |
PropertyType |
Mandatory |
HasComponent |
Variable |
DeviceStatus |
DeviceStatusEnumeration |
BaseDataVariableType |
Mandatory |
HasProperty |
Variable |
AutoIdModelVersion |
String |
PropertyType |
Mandatory |
|
|
|
|
|
|
GeneratesEvent |
ObjectType |
AutoIdScanEventType |
Defined in 7.2. |
||
GeneratesEvent |
ObjectType |
AutoIdLogEntryEventType |
Defined in 7.9. |
||
GeneratesEvent |
ObjectType |
AutoIdAccessEventType |
Defined in 7.10. |
||
GeneratesEvent |
ObjectType |
AutoIdPresenceEventType |
Defined in 7.12. |
The AutoIdDeviceType ObjectType is an abstract type and cannot be used directly.
Table 8 – AutoIdDeviceType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType TypeDefinition |
Others |
||
|
|||||||
RuntimeParameters |
HasComponent |
Variable |
CodeTypes |
UInt32[] MultiStateDiscreteType |
O |
||
RuntimeParameters |
HasComponent |
Object |
ScanSettings |
FunctionalGroupType |
O |
||
|
|
|
|
|
|
||
|
HasComponent |
Variable |
Duration |
Duration BaseDataVariableType |
O |
||
|
HasComponent |
Variable |
Cycles |
Int32 BaseDataVariableType |
O |
||
|
HasComponent |
Variable |
DataAvailable |
Boolean BaseDataVariableType |
O |
||
|
HasComponent |
Variable |
CodeType |
CodeTypeDataType BaseDataVariableType |
O |
||
|
|
|
|
|
|
||
Diagnostics |
HasComponent |
Object |
Logbook |
FunctionalGroupType |
O |
||
Diagnostics |
HasComponent |
Object |
LastAccess |
FunctionalGroupType |
O |
||
Diagnostics |
HasComponent |
Variable |
Presence |
UInt16 BaseDataVariableType |
O |
||
|
|
|
|
|
|
||
|
HasComponent |
Variable |
LogColumns |
String BaseDataVariableType |
O |
||
|
HasComponent |
Variable |
LastLogEntry |
String BaseDataVariableType |
O |
||
|
|
|
|
|
|
||
|
HasComponent |
Variable |
Client |
String BaseDataVariableType |
O |
||
|
HasComponent |
Variable |
Command |
String BaseDataVariableType |
O |
||
|
HasComponent |
Variable |
Identifier |
BaseDataType BaseDataVariableType |
O |
||
|
HasComponent |
Variable |
Timestamp |
UtcTime BaseDataVariableType |
O |
This FunctionalGroup is used to organize runtime configuration parameters and Methods. All standard or vendor specific runtime parameters of AutoID Devices shall be exposed below this FunctionalGroup. FunctionalGroups can be nested. The runtime parameters may be also exposed in other parts of the AutoID Device OPC UA Server Address Space.
The FunctionalGroupType is defined in OPC 10000-100.
Predefined parameters for this FunctionalGroup are defined in Table 8 and described below.
The parameter CodeTypes allows the user to determine the supported and to select the configured code types. It is used to expose the list of supported code types.
The Value of the Variable contains the currently selected types as a number. The assigned code type Strings are defined in 9.1.3.
CodeTypes can contain the predefined values or vendor specific values.
The ScanSettings FunctionalGroup shall be provided if the ScanActive Variable is supported for the control of the scan behaviour. It contains the following parameters (defined in Table 8):
- Parameter Duration specifies the duration of the scan operation in milliseconds. The value 0 is infinite. It is one of the termination conditions for the scan operation. The termination conditions are related to each other. If one of the conditions is fulfilled, the scan operation is stopped.
- Parameter Cycles specifies the duration of the scan operation in ‘number of scan cycles’. The value 0 is infinite. It is one of the termination conditions for the scan operation. The termination conditions are related to each other. If one of the conditions is fulfilled, the scan operation is stopped.
- If parameter DataAvailable is True, the scan operation is completed as soon as scan data is available. If DataAvailable is False, only the other termination conditions are used.
- Parameter CodeType specifies the format of the LastScanData Variable Value as string. The CodeTypeDataType and the predefined format strings are defined in 9.1.3.
This FunctionalGroup is used to organize IO data from sensors and actuators connected to the AutoID Device. All vendor or configuration specific IO data of AutoID Devices shall be exposed below this FunctionalGroup. FunctionalGroups can be nested. The IO data may also be exposed in other parts of the AutoID Device OPC UA Server Address Space.
An IO data point is represented by an OPC UA Variable Value. OPC UA Clients can read and write Variable Values depending on the AccessLevel of the Variable. Values can also be monitored for changes.
The FunctionalGroupType is defined in OPC 10000-100.
This FunctionalGroup is used to organize diagnostic data from the AutoID Device. All diagnostics data of AutoID Devices shall be exposed below this FunctionalGroup. FunctionalGroups can be nested. The diagnostics data may also be exposed in other parts of the AutoID Device OPC UA Server Address Space.
A diagnostics point is represented by an OPC UA Variable Value. OPC UA Clients can read the Variable Values. Values can also be monitored for changes.
The FunctionalGroupType is defined in OPC 10000-100.
Predefined parameters for this FunctionalGroup are defined in Table 8 and described below.
Presence identifies if there currently is seen an AutoID Identifier (e.g. a code or a transponder) by the device. If supported by a device, it may show the concrete number of AutoID Identifiers.
The Logbook FunctionalGroup shall be provided if Logging values are supported for diagnostic purposes. Its predefined parameters are defined in Table 8 and described in the following list:
- Parameter LogColumns specifies the column headings of the Logbook.
- Parameter LastLogEntry specifies the last entry of the Logbook.
The LastAccess FunctionalGroup shall be provided if values for the last AutoID Identifier access are supported for diagnostic purposes. Its predefined parameters are described in the following list:
- Parameter Client specifies the client application (interface) which was the originator of the AutoID Identifier access.
- Parameter Command specifies executed command, including the Scan command. Dependend on the kind of the client application, the names of the commands may vary. When the client application is an OPC UA Client, the names shall correspond to the command names used within this specification, e.g. “ReadTag” for the execution of the ReadTag command.
- Parameter Identifier specifies the AutoID Identifier which was accessed by the command. The DataType can be one of the DataTypes defined in the ScanData Union defined in 9.4.2. Due to the use case for limited OPC UA Clients, the DataType is normally String or ByteString.
- Parameter Timestamp specifies the point of time the AutoID identifier (e.g. a transponder) was accessed by the command.
The Last Access Variable Values belong together logically. OPC UA does not ensure a consistent delivery of a list of Variable Values. Thus, there are several limitations and the Last Access Variables should only used with OPC Clients limited to Data Access functionality. It is recommended that complex applications use the AutoIdAccessEvents or RfidAccessEvents.
An OPC UA Server shall set all Variable SourceTimestamps with a consistent value if the Variables Values are updated. An OPC UA Client must ensure that it has a constent set of Values. The Client can use the DataChangeFilter STATUS_VALUE_TIMESTAMP_2 to receive updates for all Variables to verify if all necessary information is available or a Client can subscribe only for one Variable like Timestamp and then read the related Variables including a verification of the SourceTimestamp.
This method starts the scan process of the AutoID Device synchronous and returns the scan results.
The duration of the scan process is defined by the termination conditions in the Settings parameter. A Client shall not set all parameters to infinite for the Scan Method. The values for infinite are defined in the ScanSettings DataType definition in 9.3.7. An additional setting to consider is the TimeoutHint used for the Call Service.
Signature
Scan (
[in]ScanSettings Settings
[out]ScanResult [] Results
[out]AutoIdOperationStatusEnumerationStatus
);
Argument |
Description |
Settings |
Configuration settings for the scan execution. The ScanSettings DataType is defined in 9.3.7. |
Results |
Results of the scan execution. The ScanResult DataType is defined in 9.3.8. |
Status |
Returns the status of the scan operation. The AutoIdOperationStatusEnumeration DataType is defined in 9.2.1. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
There is already a scan active |
Bad_InvalidArgument |
The scan setting contained an invalid value like infinite duration. |
|
Other OPC UA status codes defined for the Call Service in OPC 10000-4. |
This method starts the scan process of the AutoID Device asynchronous. The scan results are delivered through Events where the EventType is a subtype of the AutoIdScanEventType defined in 7.2. There is a subtype defined for each concrete AutoID Device types.
The scan process is stopped through the Method ScanStop or if one of the termination conditions in the Settings parameter is fulfilled.
In addition, the scanning stops if the Client closes the Session, or if a new configuration file is stored within the AutoID Device. There might be other conditions depending on technology or device manufacturer.
Signature
ScanStart (
[in]ScanSettings Settings
[out]AutoIdOperationStatusEnumerationStatus
);
Argument |
Description |
Settings |
Configuration settings for the scan execution. The ScanSettings DataType is defined in 9.3.7. |
Status |
Returns the status of the scan start operation. The AutoIdOperationStatusEnumeration DataType is defined in 9.2.1. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
There is already a scan active |
|
Other OPC UA status codes defined for the Call Service in OPC 10000-4. |
This method stops an active scan process of the AutoID Device.
Signature
ScanStop ( );
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
There is no scan active. |
This method returns the location of the AutoID Device.
Signature
GetDeviceLocation (
[in]LocationTypeEnumerationLocationType
[out]Location Location
);
Argument |
Description |
LocationType |
The type of location information to return. The LocationTypeEnumeration DataType is defined in 9.2.3. |
Location |
The location of the AutoID Device. The Location DataType is defined in 9.4.1. |
Method Result Codes
ResultCode |
Description |
|
Standard OPC UA status codes defined for the Call Service in OPC 10000-4. |
This OPC UA Variable allows simple applications to trigger the scan process. Simple appications involve OPC UA Clients that are limited to Data Access functionality.
The scan is triggered by writing True to the Variable Value. The behaviour of the scan is defined by the parameters in the ScanSettings FunctionalGroup defined in 9.3.7. The Value of the Variable is changed back to False by the Server if the scan is stopped according to the ScanSettings. The Client can stop the scan by writing False to the Variable Value.
The write permission can be limited to one Client. OPC 10000-3 and OPC 10000-5 define capabilities to enforce this limit with Roles and RolePermissions. Roles can be limited to a single OPC UA Application.
The scan result is provided through the Variable LastScanData. Further restrictions for this simple mechanism are described for the Variable LastScanData.
This OPC UA Variable represents the last scanned AutoID Identifier. The DataType can be one of the DataTypes defined in the ScanData Union defined in 9.4.2. Due to the use case for limited OPC UA Clients, the DataType is normally String or ByteString.
The Variable can be provided for simple applications where OPC UA Clients are limited to Data Access functionality. Such OPC UA Clients are typically limited to built-in DataTypes like String or ByteString too. The use of this Variable implies the following restrictions.
- Only one AutoID Identifier can be delivered for a scan.
- The frequency of scans is limited to the sampling interval set by the OPC UA Client.
- The delivery of scan results depends on the MonitoredItem settings or Read behaviour of the OPC UA Client.
It is recommended that complex applications use scan Methods and Events.
This OPC UA Variable of DataType UtcTime belongs to the Variable LastScanData and represents the point of time the last AutoID Identifier was scanned. The value of this Variable shall be equal to the SourceTimestamp of the Variable LastScanData.
The Variable can be provided for simple applications where OPC UA Clients are limited to Data Access functionality. Such OPC UA Clients are typically limited to built-in DataTypes like UtcTime. The use of this Variable implies the following restrictions.
- Only one AutoID Identifier can be delivered for a scan.
- The frequency of scans is limited to the sampling interval set by the OPC UA Client.
- The delivery of scan results depends on the MonitoredItem settings or Read behaviour of the OPC UA Client.
It is recommended that complex applications use scan Methods and Events.
This OPC UA Property of DataType String represents an AutoID Device additional information, which can be used freely for device management purposes.
This OPC UA Variable of DataType Location represents the AutoID Device location as Union of different coordinate systems and the related units. The DataType Location is defined in 9.4.1. The VariableType LocationVariableType is defined in 8.1.
The variable can be set during commissioning for fixed-mounted readers or can be updated automatically for mobile readers. The aim is to give the actual position where a specific scan event has been created.
This OPC UA Property of DataType String represents a user defined name of the AutoID Device location.
This variable can be used to assign a real name to the AutoID Device, e.g. “Gate 21”. It allows a device-independent event description in higher IT levels.
This OPC UA Property of DataType String represents the AutoID Device name, which can be used freely for device management purposes.
This OPC UA Property of DataType DeviceStatusEnumeration represents the AutoID Device status. The DeviceStatusEnumeration is defined in 9.2.2.
This OPC UA Property of DataType String represents the AutoID Information Model version. The version string for this specification version is “1.00”.