7.1.7.3 StartProgram

The StartProgram Method is used when a Client application wants to start running a program based on a ProgramTemplate of a FunctionalUnit. The Properties Argument can be used to provide an optional list of property values when initiating a program run. The listed items represent key-value pairs that conform to the OPC UA KeyValuePair core datatype. The qualified name provided via the key field must match the BrowseName of a Property member in the FunctionalUnit’s SupportedPropertySet.

In contrast to the Start Method, additional fixed properties must also be set.

The signature of this Method is specified below. Table 44 and Table 45 specify the Arguments and AddressSpace representation, respectively.

The Start Method should not be called by a Client with anonymous authentication.

Signature

	StartProgram (
		[in]	0:String	ProgramTemplateId
		[in]	KeyValueType[]	Properties
		[in]	0:String	SupervisoryJobId
		[in]	0:String	SupervisoryTaskId
		[in]	SampleInfoType[]	Samples
		[out]	0:String	DeviceProgramRunId)
Table 44 – StartProgram Method Arguments
Argument Description
ProgramTemplateIdThe unique identifier of the program template used for the program-run. The template must be a member of the ProgramTemplateSet.
PropertiesA Key/Value set for parameterization of the function.
SupervisoryJobIdThe SupervisoryJobId assigned to this program.
SupervisoryTaskIdThe Id of the SupervisoryTask.
SamplesAn array of the SampleInfoType that describes the samples processed in this program-run.
DeviceProgramRunIdThe Id of the created program run.
Table 45 – StartProgram Method AddressSpace Definition
Attribute Value
BrowseNameStartProgram
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArgumentsArgument[5]0:PropertyTypeM
0:HasPropertyVariable0:OutputArgumentsArgument[1]0:PropertyTypeM

DeviceProgramRunId is the internal program identifier assigned by the Device to the program run to generate this result. It is used to identify a Result object and is returned to the Client when the StartProgram Method is called.

SupervisoryJobId is the identifier for the execution of a specific workflow, consisting of one or multiple tasks. It is provided as an Argument of the StartProgram() Method which initiates the program run.

SupervisoryTaskId is the unique identifier of the specific task in the supervisory system to which the result belongs. It is provided as an Argument of the StartProgram() Method which initiates the program run.