The SoftwareUpdateType defines an AddIn which may be used to extend Objects with software update features. All software update options are exposed as references of this AddIn. This way a Client can check for the references of the AddIn to determine which options are provided by a Server. If an option is available, it shall be used as specified.

The SoftwareUpdateType is illustrated in Figure 41 and formally described in Table 70.

image044.png

Figure 41 – SoftwareUpdateType

Table 70 – SoftwareUpdateType definition

Attribute

Value

BrowseName

SoftwareUpdateType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5.

0:HasComponent

Object

Loading

SoftwareLoadingType

O

0:HasComponent

Object

PrepareForUpdate

PrepareForUpdateStateMachineType

O

0:HasComponent

Object

Installation

InstallationStateMachineType

O

0:HasComponent

Object

PowerCycle

PowerCycleStateMachineType

O

0:HasComponent

Object

Confirmation

ConfirmationStateMachineType

O

0:HasComponent

Object

Parameters

TemporaryFileTransferType

O

0:HasComponent

Variable

UpdateStatus

0:LocalizedText

0:BaseDataVariableType

O

0:HasComponent

Variable

VendorErrorCode

0:Int32

0:BaseDataVariableType

O

0:HasProperty

Variable

0:DefaultInstanceBrowseName

0:QualifiedName

0:PropertyType

Conformance Units

DI SU Software Update

The optional Loading Object is of type SoftwareLoadingType, which is abstract. The Object can be one of the concrete sub-types DirectLoadingType (8.4.4), CachedLoadingType (8.4.5) or FileSystemLoadingType (8.4.6). SoftwareLoadingType is formally defined in 8.4.2.

The Loading Object is required for all variations of software installation, it is not required for read or restore of device parameters using the Parameters Object.

The optional PrepareForUpdate Object is of type PrepareForUpdateStateMachineType which is formally defined in 8.4.8.

This optional Installation Object is of type InstallationStateMachineType which is formally defined in 8.4.9.

This optional PowerCycle Object is of type PowerCycleStateMachineType which is formally defined in 8.4.10.

This optional Confirmation Object is of type ConfirmationStateMachineType which is formally defined in 8.4.11.

This optional Parameters Object is of type TemporaryFileTransferType (OPC 10000-5). It may be supported by devices that cannot retain parameters during update. If supported by the SoftwareUpdate AddIn a Client can read the parameters before the update and restore them after the update. This is not a general-purpose backup and restore function. It is intended to be used in the context of software update.

The GenerateFileForRead and GenerateFileForWrite Methods accept an unspecified generateOptions Parameter. This argument is not used, and Clients shall always pass null. Future versions of this specification may define concrete DataTypes.

If the restore of parameters succeeds but the software cannot run properly this should not be treated as an error of the restore. Instead, this should be indicated using the IDeviceHealthType Interface of the device / component.

This optional localized string provides status and error information for the update. This may be used whenever a long running update activity can provide detailed information to the user or when a state machine wants to provide error information to the user.

A Server may provide any text it wants to show to the operator of the software update. Important texts are the error messages in case anything went wrong, and the installation or preparation could not complete. These messages should explain what happened and how the operator could resolve the issue (e.g. “try again with a different version”). During preparation and installation, it is good practice to inform the operators about the current action to keep them patient and waiting for the completion. Also, if the installation gets stuck this text would help to find out the reason.

The UpdateStatus may be used together with the PrepareForUpdateStateMachineType (8.4.8), the InstallationStateMachineType (8.4.9) and for CachedLoadingType (8.4.5), DirectLoadingType (8.4.4) and FileSystemLoadingType (8.4.6) it may be used during the transfer of the Software Package.

The optional VendorErrorCode Property provides a machine-readable error code in case anything went wrong during the transfer, the installation or the preparation. Comparable to an error message in UpdateStatus this Variable can provide additional information about the issue. The VendorErrorCode is an additional information for a Client. It is not required for normal operation and error handling.

The value 0 shall be interpreted as no error.

The VendorErrorCode may be used together with the PrepareForUpdateStateMachineType (8.4.8) for prepare and resume, in the InstallationStateMachineType (8.4.9) during the installation. For CachedLoadingType (8.4.5), DirectLoadingType (8.4.4) and FileSystemLoadingType (8.4.6) it may be used during the transfer of the Software Package.

The DefaultInstanceBrowseName Property – defined in OPC 10000-3 – is required for the AddIn model as specified in 8.3.11. It is used to specify the BrowseName of the instance of the SoftwareUpdateType. It always has the value “SoftwareUpdate”.

Table 71 – SoftwareUpdateType Attribute values for child Nodes

Source Path

Value

0:DefaultInstanceBrowseName

SoftwareUpdate