5.7 Methods

5.7.3 HasOptionalInputArgumentDescription ReferenceType

The HasOptionalInputArgumentDescription ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HasArgumentDescription ReferenceType.
The semantic of the HasOptionalInputArgumentDescription ReferenceType – extends the semantic of the HasArgumentDescription ReferenceType to reference optional input arguments of a Method NodeClass. Optional input arguments shall always follow any non-optional input arguments in the InputArguments array. For example, if a method has 3 arguments with 1 being optional then the 3rd argument shall be the optional one.
There are no additional constraints defined for this ReferenceType.
OPC 10000-4, OPC Unified Architecture - Part 4: Services 
Replace Clause 5.11.2.2 with the following:
5.11.2.2 Parameters 
Table 65 defines the parameters for the Service.
Table – 65 Call Service Parameters
Name | Type | Description |
---|---|---|
Request | ||
requestHeader | RequestHeader | Common request parameters (see 7.28 for RequestHeader definition). |
methodsToCall [] | CallMethodRequest | List of Methods to call. This structure is defined in-line with the following indented items. |
objectId | NodeId | The NodeId shall be that of the Object or ObjectType on which the Method is invoked. In case of an ObjectType the ObjectType or a super type of the ObjectType shall be the source of a HasComponent Reference (or subtype of HasComponent Reference) to the Method specified in methodId. In case of an Object the Object or the ObjectType of the Object or a super type of that ObjectType shall be the source of a HasComponent Reference (or subtype of HasComponent Reference) to the Method specified in methodId. See Part 3 for a description of Objects and their Methods. |
methodId | NodeId | NodeId of the Method to invoke. If the objectId is the NodeId of an Object, it is allowed to use the NodeId of a Method that is the target of a HasComponent Reference from the ObjectType of the Object. |
inputArguments [] | BaseDataType | List of input argument values. An empty list indicates that there are no input arguments. The size and order of this list matches the size and order of the input arguments defined by the input InputArguments Property of the Method. The name, a description and the data type of each argument are defined by the Argument structure in each element of the method’s InputArguments Property. If a Method has optional input arguments, these optional input arguments are indicated by the Method’s DefaultInputValues Property. In this case fewer arguments than the total number of input arguments defined may be passed by the Client. The InputArguments and DefaultInputValues Property are defined in Part 3. |
Response | ||
responseHeader | ResponseHeader | Common response parameters (see 7.29 for ResponseHeader definition). |
results [] | CallMethodResult | Result for the Method calls. This structure is defined in-line with the following indented items. |
statusCode | StatusCode | StatusCode of the Method executed in the server. This StatusCode is set to the Bad_InvalidArgument StatusCode if at least one input argument broke a constraint (e.g. wrong data type, value out of range). This StatusCode is set to a bad StatusCode if the Method execution failed in the server, e.g. based on an exception. |
inputArgumentResults [] | StatusCode | List of StatusCodes corresponding to the inputArguments. This list is empty unless the operation level result is Bad_InvalidArgument. If this list is populated, it has the same length as the inputArguments list. |
inputArgumentDiagnosticInfos [] | DiagnosticInfo | List of diagnostic information corresponding to the inputArguments. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request. |
outputArguments [] | BaseDataType | List of output argument values. An empty list indicates that there are no output arguments. The size and order of this list matches the size and order of the output arguments defined by the OutputArguments Property of the Method. The name, a description and the data type of each argument are defined by the Argument structure in each element of the methods OutputArguments Property. |
diagnosticInfos [] | DiagnosticInfo | List of diagnostic information for the statusCode of the results. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request. |
OPC 10000-5, OPC Unified Architecture - Part 5: Information Model 
Replace Clause 11.7 with the following: