7 OPC UA ObjectTypes

7.1 EncoderChannelType

The EncoderChannelType is the representation of the Encoder Object. Clients gain access to the Encoder Object’s data, properties, error log and configuration settings using an EncoderChannelType Object.

Table 13 – EncoderChannelType Definition
Attribute Value
BrowseNameEncoderChannelType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasPropertyVariableApplicationTag0:String0:PropertyTypeO, RO
0:HasComponentMethodSetApplicationTagO
0:HasPropertyVariableEncoderProfileVersion0:String0:PropertyTypeO, RO
0:HasComponentVariableEncoderChannelStateEncoderChannelStateEnumeration0:BaseDataVariableTypeO, RO
0:HasComponentObjectLock2:LockingServicesTypeO, RO
0:HasComponentVariableNIST_A0:Int160:BaseDataVariableTypeO, RO
0:HasComponentVariableNIST_B0:Int320:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_STW0:UInt160:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_ZSW0:UInt160:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_XIST10:UInt320:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_XIST20:UInt320:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_XIST30:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableSTW2_ENC0:UInt160:BaseDataVariableTypeO, RO
0:HasComponentVariableZSW2_ENC0:UInt160:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_XIST_PRESET_B0:UInt320:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_XIST_PRESET_C0:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableG1_XIST_PRESET_B10:UInt320:BaseDataVariableTypeO, RO
0:HasComponentVariablePosition0:Double0:AnalogUnitRangeTypeO, RO
0:HasComponentVariableVelocity0:Float0:AnalogUnitRangeTypeO, RO
0:HasComponentVariableAcceleration0:Float0:AnalogUnitRangeTypeO, RO
0:HasComponentVariablePositionSensorSignalValue0:Number0:BaseDataVariableTypeO, RO
0:HasComponentVariableTemperature0:Float0:AnalogUnitRangeTypeO, RO
0:HasComponentObjectSensorConfigEncoderSensorConfigTypeO
0:HasComponentObjectAxisConfigEncoderAxisConfigTypeO
0:HasComponentObjectControlConfigEncoderControlConfigTypeO
0:HasComponentObjectLogbookLogbookTypeO
0:HasComponentObjectSensorEncoderSensorTypeM
0:HasComponentObjectProbesEncoderProbesTypeO
0:GeneratesEventObjectTypeEncoderDiagnosisEventType
Conformance Units
PNENC Signals
PNENC Measurement
PNENC Diagnosis Events

Some components of the EncoderChannelType have additional subcomponents which are defined in Table 14.

Table 14 – EncoderChannelType additional Subcomponents
BrowsePath References NodeClass BrowseName DataType TypeDefinition Others
Position0:HasComponentVariableResolution0:Double0:BaseAnalogTypeO, RO
Position0:HasPropertyVariableAbsolutePositionRange0:Range0:PropertyTypeO, RO
G1_XIST10:HasPropertyVariableShiftFactorXIST10:UInt160:PropertyTypeO, RO
G1_XIST10:HasPropertyVariableXIST1PresetControlEncoderPresetControlEnumeration0:PropertyTypeO, RO
G1_XIST20:HasPropertyVariableShiftFactorXIST20:UInt160:PropertyTypeO, RO
Velocity0:HasComponentVariableDamping0:Float0:BaseAnalogTypeO, RO
PositionSensorSignalValue0:HasPropertyVariableSignalTypeEncoderSignalTypeEnumeration0:PropertyTypeO, RO

The Resolution Variable contains the resolution of the Encoder’s Position Variable Value.

The AbsolutePositionRange Variable contains the possible range of absolute position values represented as 0:Range Value.

The ShiftFactorXIST1 Variable contains the Encoder’s G1_XIST1 Standard Signal shift factor.

The XIST1PresetControl Variable contains the Encoder’s configured preset control setting for the G1_XIST1 Signal encoded as EncoderPresetControlEnumeration.

The ShiftFactorXIST2 Variable contains the Encoder’s G1_XIST2 Standard Signal shift factor.

The Damping Variable contains the damping constant associated with the Velocity Variable Value.

The SignalType Variable contains the type of the position sensor’s signal value encoded as EncoderSignalTypeEnumeration.

General Properties

The ApplicationTag Variable contains information determined by configuration or by applications. The Client can change the Value of this Variable by invoking the SetApplicationTag Method.

Before invoking a Method of the EncoderChannelType Object, Clients must gain exclusive write access (“lock” the EncoderChannelType Object) using the Lock Object.

7.1.1 SetApplicationTag Method

This Method sets the Value of the ApplicationTag Variable. The security constraints defined in chapter 6.6 apply.

Signature

	SetApplicationTag (
		[in] 0:String	 ApplicationTag
		);
	
Argument Description
ApplicationTagString containing the desired content of the ApplicationTag Variable.

The Method Result Codes (defined in Call Service) are defined in Table 15.

Table 15 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_InvalidArgumentThe Server is not able to apply the name. The ApplicationTag string may be too long or may contain invalid characters. The server may also reject duplicates.
Bad_LockedThe EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe EncoderChannelType Object is not locked. Clients must lock the EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

The EncoderProfileVersion Variable contains the encoder profile version of the Encoder Object the EncoderChannelType Object represents.

The EncoderChannelState Variable contains the representation of the G1_ZSW Signal as EncoderStateEnumeration.

The Lock Object ensures exclusive Method call for one Client. The Client locks the EncoderChannelType Object by invoking the InitLock Method of the Lock Object. The Client invokes ExitLock to release the lock.

The scope of the lock comprises all components except the EncoderProbeType Objects providing a LatchStart Method. These “controllable” probes have their own Lock Object and Clients shall be able to lock the EncoderProbeType Object separately and to invoke the LatchStart Method although the parent EncoderChannelType Object is locked.

Signal Variables

The following Variables represent the Standard Signals as defined in [ENCP], chapter 5.6.1. The supported Standard Signals are determined by the configured Standard Telegram. The Server shall provide the Variables representing the Standard Signals of the configured Standard Telegram.

The NIST_A Variable represents the “speed actual value” 16-bit signal encoded as 0:UInt16 (See [ENCP], Table 13, Signal No. 6). Mandatory for Class 4 Encoders.

The NIST_B Variable represents the “speed actual value” 32-bit signal encoded as 0:UInt32 (See [ENCP], Table 13, Signal No. 8). Mandatory for Class 2 Encoders.

The G1_STW Variable represents the “Sensor 1 control word” 16-bit signal encoded as 0:UInt16 (See [ENCP], Table 13, Signal No. 9). Mandatory for Class 3 and Class 4 Encoders.

The G1_ZSW Variable represents the “Sensor 1 status word” 16-bit signal encoded as 0:UInt16 (See [ENCP], Table 13, Signal No. 10). Mandatory for Class 3 and Class 4 Encoders.

The G1_XIST1 Variable represents the “Sensor 1 position actual value 1” 32-bit signal encoded as 0:UInt32 (See [ENCP], Table 13, Signal No. 11). Mandatory for Class 3 and Class 4 Encoders.

The G1_XIST2 Variable represents the “Sensor 1 position actual value 2” 32-bit signal encoded as 0:UInt32 (See [ENCP], Table 13, Signal No. 12). Mandatory for Class 3 and Class 4 Encoders.

The G1_XIST3 Variable represents the “Sensor 1 position actual value 3” 64-bit signal encoded as 0:UInt64 (See [ENCP], Table 13, Signal No. 39).

The STW2_ENC Variable represents the “Encoder control word 2” 16-bit signal encoded as 0:UInt16 (See [ENCP], Table 13, Signal No. 80). Mandatory for Class 1, Class2, Class 3 and Class 4 Encoders.

The ZSW2_ENC Variable represents the “Encoder status word 2” 16-bit signal encoded as 0:UInt16 (See [ENCP], Table 13, Signal No. 81). Mandatory for Class 1, Class2, Class 3 and Class 4 Encoders.

The G1_XIST_PRESET_B Variable represents the “Encoder preset control word 31 bit with trigger bit included” signal encoded as 0:UInt32 (See [ENCP], Table 13, Signal No. 82). Mandatory for Class 1 and Class2 Encoders.

The G1_XIST_PRESET_C Variable represents the “Encoder preset control word 64 bit” signal encoded as 0:UInt64 (See [ENCP], Table 13, Signal No. 83).

The G1_XIST_PRESET_B1 Variable represents the “Encoder preset control word 32 bit” signal encoded as 0:UInt32 (See [ENCP], Table 13, Signal No. 84). Mandatory for Class 1 and Class2 Encoders.

Measurement / Actual Values

The Position Variable contains the current Encoder’s position encoded as 0:Double data type. The Position Variable shall be linked to the Signal Variables representing the current position (G1_XIST1, G1_XIST2, G1_XIST3) that are part of the configured Standard Telegram using a 0:RepresentsSameEntityAs Reference.

The Velocity Variable contains the current Encoder’s velocity encoded as 0:Float data type. If a NIST_A or a NIST_B Signal Variable is part of the Information Model, the Velocity Variable shall be linked to the source Signal Variable using a 0:RepresentsSameEntityAs Reference.

The Acceleration Variable contains the currents Encoder’s rate of velocity change encoded as 0:Float data type.

The PositionSensorSignalValue Variable contains the Encoder’s position Signal encoded as numeric data type. Dependent on Encoder resolution and configured Standard Telegram number, the data type may be 0:UInt32 or 0:UInt64.

The Temperature Variable contains the Encoder’s temperature measurement value encoded as 0:Float data type.

Configuration

The SensorConfig Object contains sensor related configuration settings of the Encoder Object. See section 7.8 for details.

The AxisConfig Object contains Encoder axis related configuration settings of the Encoder Object. See section 7.6 for details.

The ControlConfig Object contains control related configuration settings of the Encoder Object. See section 7.7 for details.

Sensor & Probes

The Sensor Object offers Variables and Methods for sensor related preset- and latch control. See section 7.2 for details.

The Probes Object has References to EncoderProbeType Objects offering Variables and Methods for probes related data and latch control. See section 7.3 for details.

Diagnosis

The Logbook Object contains a representation of the Encoder Object’s fault buffer. See section 7.5 for details.

The Server might provide diagnosis data by sending EncoderDiagnosisEventType Events.

7.2 EncoderSensorType

The EncoderSensorType offers Encoder sensor related settings and functions as preset control and latch functionality.

Table 16 – EncoderSensorType Definition
Attribute Value
BrowseNameEncoderSensorType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasComponentMethodPresetControlO
0:HasComponentVariablePositionOffset0:Number0:BaseDataVariableTypeM, RO
0:HasComponentMethodRef1LatchStartO
0:HasComponentVariableRef1LatchActive0:Boolean0:BaseDataVariableTypeO, RO
0:HasComponentVariableRef1LastLatchedPos0:Number0:BaseDataVariableTypeO, RO
0:GeneratesEventObjectTypeEncoderRefLatchEventType
Conformance Units
PNENC Sensor

Clients must lock the parent EncoderChannelType Object before invoking a Method of the EncoderSensorType Object.

7.2.1 PresetControl Method

This Method sets the preset value of the Encoder. The security constraints defined in chapter 6.6 apply.

Signature

	PresetControl (
		[in] 0:Number	 PresetValue
		);
	
Argument Description
PresetValueThe desired preset value to apply.

The Method Result Codes (defined in Call Service) are defined in Table 15.

Table 17 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_InvalidArgumentThe Server is not able to apply the preset value. The preset value may be outside the permissive value bounds.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

The PositionOffset Variable contains the calculated offset belonging to the current preset value of the Encoder.

7.2.2 Ref1LatchStart Method

This Method starts the latch capture function of the Encoder. The security constraints defined in chapter 6.6 apply.

Signature

	Ref1LatchStart (
		);
	

The Method Result Codes (defined in Call Service) are defined in Table 15.

Table 18 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

The Ref1LatchActive Variable contains True if the Ref1 latch is active, otherwise False.

The Ref1LastLatchedPos Variable contains the last latched Ref1 position of the Encoder.

The Server might provide the Client with information about changes of the Ref1 latch data by sending EncoderRefLatchEventType Events.

7.3 EncoderProbesType

Table 19 – EncoderProbesType Definition
Attribute Value
BrowseNameEncoderProbesType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasComponentObject<Probex>EncoderProbeTypeOP
Conformance Units
PNENC Probes

The EncoderProbeType Objects represents the probes provided by the Encoder. There shall be as many EncoderProbeType Objects as are needed to represent all probes provided. The BrowseNames shall be provided as defined by the template string <Probex>, where x is the probe number.

7.4 EncoderProbeType

The EncoderProbeType represents the Encoder’s probe functionality.

Table 20 – EncoderProbeType Definition
Attribute Value
BrowseNameEncoderProbeType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasComponentObjectLock2:LockingServicesTypeO
0:HasComponentMethodLatchStartO
0:HasComponentVariableLatchActive0:Boolean0:BaseDataVariableTypeO, RO
0:HasComponentVariableLastLatchedPos0:Number0:BaseDataVariableTypeM, RO
0:GeneratesEventObjectTypeEncoderProbeLatchEventType
Conformance Units
PNENC Probes

The Lock Object ensures exclusive call of the LatchStart Method for one Client. The Client locks the EncoderProbeType Object by invoking the InitLock Method of the Lock Object. The Client invokes ExitLock to release the lock.

Clients shall be able to lock the EncoderProbeType Object and to invoke the LatchStart Method although the parent EncoderChannelType Object is locked.

7.4.1 LatchStart Method

This Method starts the latch capture function of the represented probe. The security constraints defined in chapter 6.6 apply.

Signature

	LatchStart (
		);
	

The Method Result Codes (defined in Call Service) are defined in Table 15.

Table 21 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_LockedThe EncoderProbeType Object is locked by a different Client’s Session.
Bad_RequiresLockThe EncoderProbeType Object is not locked. Clients must lock the EncoderProbeType Object before invoking a Method.
Bad_UnexpectedErrorThe server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

The LatchActive Variable contains True if the represented probe’s latch is active, otherwise False.

The LastLatchedPos Variable contains the last latched position of the probe.

The Server might provide the Client with information about changes of the probe’s latch data by sending EncoderProbeLatchEventType Events.

7.5 LogbookType

The LogbookType Object provides access to the Encoder’s fault buffer.

Table 22 – LogbookType Definition
Attribute Value
BrowseNameLogbookType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasComponentVariableLogEntriesLogEntryDataType[]0:BaseDataVariableTypeM, RO
0:HasPropertyVariableLogbookSize0:UInt160:PropertyTypeM, RO
0:HasComponentMethodDeleteLogbookO
0:HasComponentMethodGetFilteredLogbookEntriesO
0:HasComponentMethodGetCurrentFaultSituationO
0:HasComponentMethodGetActiveDiagnosisO
0:HasComponentMethodGetHistoricFaultSituationO
0:GeneratesEventObjectTypeLogbookEventType
Conformance Units
PNENC Logbook

The LogEntries array Variable consists of LogEntryDataType structure elements. The array is limited to the maximum size specified by the LogbookSize Property. The array contains LogEntryDataType elements for events and starts with the most recent event (the element with the most recent EventComing timestamp). If the Server maintains different fault situations in its fault buffer (see [PDP] 6.3.8.3 Fault Buffer Mechanism), faults (events) which are still present after an acknowledge generate a new entry in the actual fault situation causing more than one entry with the same EventNumber for one event.

The LogbookSize Property contains the maximum length of the LogEntries array. The actual length of the array may be smaller.

Clients must lock the parent EncoderChannelType Object before invoking a Method of the LogbookType Object.

7.5.1 DeleteLogbook Method

The DeleteLogbook Method clears the LogEntries array and resets the fault buffer of the Encoder Object. The security constraints defined in chapter 6.6 apply.

Signature

	DeleteLogbook (
	);

The Method Result Codes (defined in Call Service) are defined in Table 23.

Table 23 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

7.5.2 GetFilteredLogbookEntries Method

The GetFilteredLogbookEntries Method returns a LogEntries array matching the filter criteria. Method invocation shall be possible for all users (read-only).

Signature

	GetFilteredLogbookEntries (
		[in] 0:Byte					LogbookFilterOptions,
		[in] 0:Byte					FaultSituationNumber
		[in] EventTypeEnumeration 		EventType,
		[in] 0:Int32					EventCode,
		[in] 0:Duration				EventAppearanceInterval,
	[out] LogEntryDataType[] 		FilteredLogEntries
	);
Argument Description
LogbookFilterOptions

Parameter allowing to restrict the returned logbook entries to those having valid EventGoing and/or EventAcknowledged timestamps.

If set to 1 (“GOING” filter), only logbook entries with valid EventGoing timestamp are returned.

If set to 2 (“ACKNOWLEDGED” filter), only entries with valid EventAcknowledged timestamp are returned.

If set to 3, the logic applied is “AND”: only logbook entries meeting both filter criteria are returned.

Set to 0 if no filtering shall be applied.

If a value greater than 3 is passed, the Method Result Code shall be set to Bad_InvalidArgument.

FaultSituationNumberRestricts the returned logbook entries to those with the FaultSituationNumber field equal to this parameter. Passing 255 means “don’t care”.
EventTypeRestricts the returned logbook entries to those with the EventType field equal to this parameter. Passing “UNSPECIFIED” means “don’t care”.
EventCodeRestricts the returned logbook entries to those with the EventCode field equal to this parameter (See Table 69 fault codes). Passing 0 means “don’t care”.
EventAppearanceIntervalTime interval encoded as 0:Duration defined in [OPC 10000-3]. Restricts the returned logbook entries to those appearing within a timespan from the past up to now. The EventComing field of the logbook entries is used for checking this filter. Passing 0 means “don’t care”.
FilteredLogEntriesArray containing the logbook entries matching all filter criteria passed with the first 5 parameters. An empty array is returned if no logbook entry matches the filter criteria.

The Method Result Codes (defined in Call Service) are defined in Table 24.

Table 24 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_InvalidArgumentThe Server is unable to execute the Method due to invalid arguments. For instance, the EventCode passed may be unknown.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

7.5.3 GetCurrentFaultSituation Method

The GetCurrentFaultSituation Method returns all log entries which occurred since the last acknowledge as LogEntries array. Starting with the most recent one, all log entries without valid EventAcknowledged timestamp are returned. Method invocation shall be possible for all users (read-only).

Signature

	GetCurrentFaultSituation (
		[out] LogEntryDataType[] 	CurrentLogEntries
	);
	
Argument Description
CurrentLogEntriesArray containing the log entries occurred since the last acknowledge. An empty array is returned if no logbook entry matches the filter criteria.

The Method Result Codes (defined in Call Service) are defined in Table 25.

Table 25 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

7.5.4 GetHistoricFaultSituation Method

The GetHistoricFaultSituation Method returns a LogEntries array with valid EventGoing field. Method invocation shall be possible for all users (read-only).

Signature

	GetHistoricFaultSituation (
		[in]  0:Byte				FaultSituationNumber,	
	[out] LogEntryDataType[] 	HistoricLogEntries
	);
	
Argument Description
FaultSituationNumberFault situation number the faults belong to. 0 identifies the current situation, 1 the historic situation preceding the current situation, and so on (see explanation below).
HistoricLogEntriesArray containing the log entries with valid EventGoing field entry. An empty array is returned if no logbook entry matches the filter criteria.

The Method Result Codes (defined in Call Service) are defined in Table 26.

Table 26 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_InvalidArgumentThe fault situation specified by FaultSituationNumber does not exist.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

7.5.5 GetActiveDiagnosis Method

The GetActiveDiagnosis Method returns a LogEntries array containing log entries belonging to the current fault situation (log entries with FaultSituationNumber equal to 0) with valid EventComing timestamp, but with missing EventGoing timestamp. The method returns a subset of the entries returned by the GetCurrentFaultSituation Method. Method invocation shall be possible for all users (read-only).

Signature

	GetActiveDiagnosis (
		[out] LogEntryDataType[] 	ActiveDiagnosis
	);
	
Argument Description
ActiveDiagnosisArray containing the log entries with missing EventGoing field entry. An empty array is returned if no logbook entry matches the filter criteria.

The Method Result Codes (defined in Call Service) are defined in Table 25.

Table 27 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

The Server might provide the Client with information about new incidents by sending LogbookEventType Events.

7.6 EncoderAxisConfigType

The EncoderAxisConfigType provides configuration Properties and Variables belonging to the Encoder’s axis and scaling functions.

Table 28 – EncoderAxisConfigType Definition
Attribute Value
BrowseNameEncoderAxisConfigType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasPropertyVariablePositionScalingFactor0:Float0:PropertyTypeO, RO
0:HasPropertyVariableAxisTypeEncoderAxisTypeEnumeration0:PropertyTypeO, RO
0:HasPropertyVariableCodeSequenceEncoderCodeSequenceEnumeration0:PropertyTypeO, RO
0:HasPropertyVariablePresetOrShiftValue0:Float0:PropertyTypeO, RO
0:HasComponentVariableVelocityReference0:Float0:BaseAnalogTypeO, RO
0:HasComponentVariableVelocityDampingTimeConstant0:Float0:BaseAnalogTypeO, RO
0:HasComponentVariableAccelerationDampingTimeConstant0:Float0:BaseAnalogTypeO, RO
0:HasComponentMethodSetAxisConfigO
Conformance Units
PNENC Config Readable
PNENC Config Writable

The PositionScalingFactor Variable contains the Encoder’s position scaling factor.

The AxisType Variable contains the Encoder’s axis type encoded as EncoderAxisTypeEnumeration.

The CodeSequence Variable contains the Encoder’s code sequence setting encoded as EncoderCodeSequenceEnumeration.

The PresetOrShiftValue Variable contains the Encoder’s preset value.

The VelocityReference Variable contains the velocity reference (100% value) for N2/N4 normalised speed actual values (signals NIST_A and NIST_B).

The VelocityDampingTimeConstant Variable contains the Encoder’s velocity damping time constant.

The AccelerationDampingTimeConstant Variable contains the Encoder’s acceleration damping time constant.

7.6.1 SetAxisConfig Method

This Method sets the Value of components of the AxisConfig Object to the desired value. The security constraints defined in chapter 6.6 apply. Clients must also have locked the parent EncoderChannelType Object before invoking the Method.

Signature

	SetAxisConfig (
		[in]	 0:KeyValuePair[] AxisConfigParameters,
		[out] 0:KeyValuePair[] AxisConfigParametersResult
		
	);
	
Argument Description
AxisConfigParametersArray of 0:KeyValuePair structures containing the desired settings. The key field of each structure contains the BrowseName of one component of the AxisConfig Object. The value field contains the desired value to set for this component and must have the same DataType.
AxisConfigParametersResult

Array of 0:KeyValuePair structures. The array shall be empty if successful.

The array shall contain one element for each failed setting and the Result Code shall be Uncertain (See Table 29). The key field of each structure contains the BrowseName of the component of the AxisConfig Object for which the setting failed.

The value field is encoded as EncoderConfigParameterResultEnumeration and contains one of the following values:

INVALID: The value is rejected by the Server.

NOT_SUPPORTED: The component with the specified BrowseName does not exist.

READ_ONLY: The value cannot be changed.

The Method Result Codes (defined in Call Service) are defined in Table 29. The requested changes are applied if a Result Code with severity Good is returned. Otherwise, no Variable is changed.

Table 29 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful. The AxisConfigParametersResult array is empty.
UncertainThe Server is not able to apply the requested changes due to invalid parameters. The AxisConfigParametersResult array is not empty.
Bad_ConfigurationErrorThe set of parameters passed in the AxisConfigParameters array is not consistent.
Bad_InvalidArgumentThe AxisConfigParameters argument array is empty or there are member type mismatches.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

If the desired settings do not deviate from the actual settings, the Method shall do nothing and return Good as result code.

7.7 EncoderControlConfigType

The EncoderControlConfigType Object provides Properties for configuring the alarm channel, the effect of preset functions and the tolerated Sign-Of-Life failures.

Table 30 – EncoderControlConfigType Definition
Attribute Value
BrowseNameEncoderControlConfigType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasPropertyVariableAlarmChannelControlEncoderAlarmChannelControlEnumeration0:PropertyTypeO, RO
0:HasPropertyVariableXIST1PresetControlEncoderPresetControlEnumeration0:PropertyTypeO, RO
0:HasPropertyVariableSignOfLifeFailuresTolerated0:UInt160:PropertyTypeO, RO
0:HasComponentMethodSetControlConfigO
Conformance Units
PNENC Config Readable
PNENC Config Writable

The AlarmChannelControl Variable contains the Encoder’s configured alarm channel setting encoded as EncoderAlarmChannelControlEnumeration.

The XIST1PresetControl Variable contains the Encoder’s configured preset control setting for the G1_XIST1 Signal encoded as EncoderPresetControlEnumeration. If the G1_XIST1 Variable is part of the Information Model, XIST1 preset control setting is always available as Property of the G1_XIST1 Variable.

The SignOfLifeFailuresTolerated contains the Encoder’s configured setting for the number of allowed failures of the master’s sign of life.

7.7.1 SetControlConfig Method

This Method sets the Value of components of the ControlConfig Object to the desired value. The security constraints defined in chapter 6.6 apply. Clients must also have locked the parent EncoderChannelType Object before invoking the Method.

Signature

	SetControlConfig (
		[in]	 0:KeyValuePair[] ControlConfigParameters,
		[out] 0:KeyValuePair[] ControlConfigParametersResult
		
	);
	
Argument Description
ControlConfigParametersArray of 0:KeyValuePair structures containing the desired settings. The key field of each structure contains the BrowseName of one component of the ControlConfig Object. The value field contains the desired value to set for this component and must have the same DataType.
ControlConfigParametersResult

Array of 0:KeyValuePair structures. The array shall be empty if successful.

The array shall contain one element for each failed setting and the Result Code shall be Uncertain (See Table 31). The key field of each structure contains the BrowseName of the component of the ControlConfig Object for which the setting failed.

The value field is encoded as EncoderConfigParameterResultEnumeration and contains one of the following values:

INVALID: The value is rejected by the Server.

NOT_SUPPORTED: The component with the specified BrowseName does not exist.

READ_ONLY: The value cannot be changed.

The Method Result Codes (defined in Call Service) are defined in Table 31. The requested Property changes are applied if a Result Code with severity Good is returned. Otherwise, no Property is changed.

Table 31 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful. The ControlConfigParametersResult array is empty.
UncertainThe Server is not able to apply the requested changes due to invalid parameters. The ControlConfigParametersResult array is not empty.
Bad_ConfigurationErrorThe set of parameters passed in the ControlConfigParameters array is not consistent.
Bad_InvalidArgumentThe ControlConfigParameters argument array is empty or there are member type mismatches.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

If the desired settings do not deviate from the actual settings, the Method shall do nothing and return Good as result code.

7.8 EncoderSensorConfigType

The EncoderSensorConfigType Object provides configuration Properties related to the encoder’s sensor properties and settings.

Table 32 – EncoderSensorConfigType Definition
Attribute Value
BrowseNameEncoderSensorConfigType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5.
0:HasPropertyVariableSensorAbsoluteTypeEncoderSensorAbsoluteTypeEnumeration0:PropertyTypeO, RO
0:HasPropertyVariableConfigTypeEncoderConfigTypeEnumeration0:PropertyTypeO, RO
0:HasPropertyVariableSensorResolutionIncPerRotation0:Integer0:PropertyTypeO, RO
0:HasPropertyVariableSensorResolutionNanometerPerIncrement0:Integer0:PropertyTypeO, RO
0:HasPropertyVariableShiftFactorXIST10:Integer0:PropertyTypeO, RO
0:HasPropertyVariableShiftFactorXIST20:Integer0:PropertyTypeO, RO
0:HasPropertyVariableAbsolutePosLinSupported0:Boolean0:PropertyTypeO, RO
0:HasPropertyVariableAbsolutePosDeterminableRevolutions0:Integer0:PropertyTypeO, RO
0:HasComponentMethodSetSensorConfigO
Conformance Units
PNENC Config Readable
PNENC Config Writable

The SensorAbsoluteType Variable contains the sensor type for absolute Encoders (single-turn or multiturn) encoded as EncoderSensorAbsoluteTypeEnumeration.

The ConfigType Variable contains the configuration type (static or dynamic) of the Encoder encoded as EncoderConfigTypeEnumeration.

The SensorResolutionIncPerRotation Variable contains the number of sensor pulses generated per rotation (rotary Encoders only)

The SensorResolutionNanometerPerIncrement Variable contains the number of nanometers per increment (linear measurement system only).

The ShiftFactorXIST1 Variable contains the Encoder’s G1_XIST1 Standard Signal shift factor. Shall not be provided if not changeable. If the G1_XIST1 Variable is part of the Information Model, the shift factor is always available as Property of the G1_XIST1 Variable.

The ShiftFactorXIST2 Variable contains the Encoder’s G1_XIST2 Standard Signal shift factor. Shall not be provided if not changeable. If the G1_XIST2 Variable is part of the Information Model, the shift factor is always available as Property of the G1_XIST2 Variable.

The AbsolutePosLinSupported Variable contains True if absolute linear positioning is supported by the Encoder, otherwise False.

The AbsolutePosDeterminableRevolutions Variable specifies which absolute position value may be delivered by the sensor. The following table specifies the meaning of the possible Values of the Variable in dependence of the sensor type (See [PDP] Table 105 Subindex 5: “Determinable revolutions”).

Variable Value Rotary Sensors Linear Sensors
0The sensor has no absolute information or may only display values less than one absolute revolution.The sensor has no absolute information (for example standard incremental linear scale).
1The sensor may display exactly one absolute revolution (For example a resolver with 1 pole pair)The sensor delivers absolute position information.
>1Multi-turn sensor (For example, 4 096 is a commonly used value)-

7.8.1 SetSensorConfig Method

This Method sets the Value of Properties of the SensorConfig Object to the desired value. The security constraints defined in chapter 6.6 apply. Clients must also have locked the parent EncoderChannelType Object before invoking the Method.

Signature

	SetSensorConfig (
		[in]	 0:KeyValuePair[] SensorConfigParameters,
		[out] 0:KeyValuePair[] SensorConfigParametersResult
	);
	
Argument Description
SensorConfigParametersArray of 0:KeyValuePair structures containing the desired settings. The key field of each structure contains the BrowseName of one Property of the SensorConfig Object. The value field contains the desired value to set for this Property and must have the same DataType.
SensorConfigParametersResult

Array of 0:KeyValuePair structures. The array shall be empty if successful.

The array shall contain one element for each failed setting and the Result Code shall be Uncertain (See Table 33). The key field of each structure contains the BrowseName of the Property of the SensorConfig Object for which the setting failed.

The value field is encoded as EncoderConfigParameterResultEnumeration and contains one of the following values:

INVALID: The value is rejected by the Server.

NOT_SUPPORTED: The Property with the specified BrowseName does not exist.

READ_ONLY: The value cannot be changed.

The Method Result Codes (defined in Call Service) are defined in Table 33. The requested Property changes are applied if a Result Code with severity Good is returned. Otherwise, no Property is changed.

Table 33 – Possible Method Result Codes
Result Code Description
GoodThe Method execution was successful. The SensorConfigParametersResult array is empty.
UncertainThe Server is not able to apply the requested changes due to invalid parameters. The SensorConfigParametersResult array is not empty.
Bad_ConfigurationErrorThe set of parameters passed in the SensorConfigParameters array is not consistent.
Bad_InvalidArgumentThe SensorConfigParameters argument array is empty or there are member type mismatches.
Bad_LockedThe parent EncoderChannelType Object is locked by a different Client’s Session.
Bad_RequiresLockThe parent EncoderChannelType Object is not locked. Clients must lock the parent EncoderChannelType Object before invoking a Method.
Bad_UserAccessDeniedThe user has not the right to execute the Method.
Bad_UnexpectedErrorThe Server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure.

If the desired settings do not deviate from the actual settings, the Method shall do nothing and return Good as result code.