This OPC UA ObjectType represents a CNC Interface. CncInterfaceType is the entry point to the CNC data interface. It is mainly used for structuring the interface. But additionally this ObjectType holds Properties characterizing this interface (Version, VendorName etc.), as well as References to the specified EventTypes. There are two different types of events generated by an instance of CncInterfaceType: events of type CncMessageType and of type CncAlarmType.
Events of type CncAlarmType are used to provide CNC error messages.
Events of type CncMessageType are used to provide messages that are not an alarm but a non-critical information, e.g. a user created message out of the CNC part program.
CncInterfaceType is formally defined in Table 7.
The CncInterfaceType is formally defined in Table 7.
Table 7 – CncInterfaceType Definition
Attribute |
Value |
||||
BrowseName |
CncInterfaceType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the BaseObjectType |
|||||
|
|
|
|
|
|
GeneratesEvent |
ObjectType |
CncAlarmType |
|
|
|
GeneratesEvent |
ObjectType |
CncMessageType |
|
|
|
HasComponent |
Object |
CncAxisList |
|
CncAxisListType |
Mandatory |
HasComponent |
Object |
CncChannelList |
|
CncChannelListType |
Mandatory |
HasComponent |
Object |
CncSpindleList |
|
CncSpindleListType |
Mandatory |
HasComponent |
Object |
FileSystem |
|
FileDirectoryType |
Optional |
HasProperty |
Variable |
CncTypeName |
String |
PropertyType |
Optional |
HasProperty |
Variable |
Fix |
String |
PropertyType |
Optional |
HasProperty |
Variable |
VendorName |
String |
PropertyType |
Mandatory |
HasProperty |
Variable |
VendorRevision |
String |
PropertyType |
Mandatory |
HasProperty |
Variable |
Version |
String |
PropertyType |
Mandatory |
CncInterfaceType may generate events of type CncAlarmType to provide error messages.
CncInterfaceType may generate events of type CncMessageType to provide general CNC information messages.
Group of CNC axis objects.
Adds child <CncAxis>.
Group of CNC channel objects.
Adds child <CncChannel>.
Group of CNC spindle objects.
Adds child <CncSpindle>.
Entry point to system’s file directory.
Type or model name of the CNC that is represented by Information Model.
Manufacturer specific version of CNC interface considering changes in implementation (Bug Fix).
Name of CNC system vendor. Format and content may be chosen by vendor.
Vendor revision of CNC interface. Format and content may be chosen by vendor.
CNC interface version - corresponds to the version of this OPC UA companion standard and has to be presented in the same format (e.g. 1.03) so that an OPC UA Client can evaluate the version programmatically.
This OPC UA ObjectType serves as a structuring element. Objects of type CncAxisListType comprise all axes that are subordinated to a CncInterface. It is formally defined in Table 8.
Objects of type CncAxisListType may generate events of type GeneralModelChangeEventType. These events are used to inform about changes in the Information Model related to an instance of CncAxisListType.
The CncAxisListType is formally defined in Table 8.
Table 8 – CncAxisListType Definition
Attribute |
Value |
||||
BrowseName |
CncAxisListType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the BaseObjectType |
|||||
|
|
|
|
|
|
GeneratesEvent |
ObjectType |
GeneralModelChangeEventType |
|
|
|
HasProperty |
Variable |
0:NodeVersion |
String |
PropertyType |
Optional |
HasComponent |
Object |
<CncAxis> |
|
CncAxisType |
OptionalPlaceholder |
CncAxisListType may generate events of type GeneralModelChangeEventType defined in OPC 10000-3 to inform Clients when CncAxis Objects have been added or removed from a CncAcisListType instance.
The optional Property NodeVersion shall be present if the Server emits GeneralModelChangeEvents for the Object of type CncAxisListType. The NodeVersion Property and the relation to GeneralModelChangeEvents are defined in OPC 10000-3.
CNC axis object.
This OPC UA ObjectType serves as a structuring element. Objects of type CncSpindleListType comprise all spindles that are subordinated to a CncInterface. It is formally defined in Table 9.
Objects of type CncSpindleListType may generate events of type GeneralModelChangeEventType. These events are used to inform about changes in the Information Model related to an instance of CncSpindleListType.
The CncSpindleListType is formally defined in Table 9.
Table 9 – CncSpindleListType Definition
Attribute |
Value |
||||
BrowseName |
CncSpindleListType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the BaseObjectType |
|||||
|
|
|
|
|
|
GeneratesEvent |
ObjectType |
GeneralModelChangeEventType |
|
|
|
HasProperty |
Variable |
0:NodeVersion |
String |
PropertyType |
Optional |
HasComponent |
Object |
<CncSpindle> |
|
CncSpindleType |
OptionalPlaceholder |
CncSpindleListType may generate events of type GeneralModelChangeEventType defined in OPC 10000-3 to inform Clients when CncSpindle Objects have been added or removed from a CncSpindleListType instance.
The optional Property NodeVersion shall be present if the Server emits GeneralModelChangeEvents for the Object of type CncSpindleListType. The NodeVersion Property and the relation to GeneralModelChangeEvents are defined in OPC 10000-3.
CNC spindle object.
This OPC UA ObjectType serves as a structuring element. Objects of type CncChannelListType comprise all channels that are subordinated to a CncInterface. It is formally defined in Table 10.
Objects of type CncChannelListType may generate events of type GeneralModelChangeEventType. These events are used to inform about changes in the Information Model related to an instance of CncChannelListType.
The CncChannelListType is formally defined in Table 10.
Table 10 – CncChannelListType Definition
Attribute |
Value |
||||
BrowseName |
CncChannelListType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the BaseObjectType |
|||||
|
|
|
|
|
|
GeneratesEvent |
ObjectType |
GeneralModelChangeEventType |
|
|
|
HasProperty |
Variable |
0:NodeVersion |
String |
PropertyType |
Optional |
HasComponent |
Object |
<CncChannel> |
|
CncChannelType |
OptionalPlaceholder |
CncChannelListType may generate events of type GeneralModelChangeEventType defined in OPC 10000-3 to inform Clients when CncChannel Objects have been added or removed from a CncChannelListType instance.
The optional Property NodeVersion shall be present if the Server emits GeneralModelChangeEvents for the Object of type CncChannelListType. The NodeVersion Property and the relation to GeneralModelChangeEvents are defined in OPC 10000-3.
CNC channel object.
This OPC UA ObjectType represents a CNC component. A CNC component may be a hardware or software component of a CNC system (e.g. an axis or a channel). CncComponentType serves as a basis for all components that are accessible through this interface, e.g. CncDriveType or CncChannelType are derived from this ObjectType, and therefore is an abstract type. CncComponentType holds elements that are common for all components of a CNC system. It is formally defined in Table 11.
The CncComponentType is formally defined in Table 11.
Table 11 – CncComponentType Definition
Attribute |
Value |
||||
BrowseName |
CncComponentType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the BaseObjectType |
|||||
|
|
|
|
|
|
There are currently no components subordinated to this ObjectType. However, this Subtype may have components in the future or can be used for manufacturer specific rules or components.
This OPC UA ObjectType represents a CNC channel with all its necessary elements. All Objects of Type CncChannelType are listed in the CncChannelList of the CncInterface Object.
Additionally to data that is relevant for a CNC Channel, CncChannelType organizes Objects of type CncAxisType and CncSpindleType. That is to indicate which components are currently administrated by this channel.
Objects of CncChannelType may generate two kinds of events: Events of type CncMessageType and of type GeneralModelChangeEventType.
Events of Type CncMessageType are used to provide channel specific messages that are not an alarm but an uncritical information, e.g. a user created message out of the CNC part program.
Events of type GeneralModelChangeEventType are used to inform about changes in the Information Model. Examples for the need of a model change event:
- A CNC channel can administrate a different set of components during runtime, meaning that an axis or a spindle can change its channel affiliation during runtime of the CNC system; for instance this may be the case if one spindle is used in combination with different axis groups.
- Spindles allow different kind of operation modes, for instance a spindle can change its mode of operation from speed to position control and therefore has to be represented once as spindle (CncSpindleType) and once as rotational axis (CncAxisType).
Instances of CncChannelType provide the position of the channel’s tool center point in different coordinate systems. Therefore, the following definitions have to be considered:
Tool carrier zero point: The tool carrier zero point is a reference point on the tool carrier as illustrated in Figure 10.
Figure 10 – Tool carrier zero point for milling and turning tools
Tool center point: The tool center point of tools for milling operations is usually the intersection of the tool centerline and the lowest positioned cutting tip (edge). For turning operations the tool center point is an imaginary tool point of the cutting insert, because most tools have a cutting edge with a built-in radius. The tool center point of point-to-point tools, such as drills, is the extreme tip of the tool, as measured along the Z axis. Figure 11 and Figure 12 illustrate some common tool center points.
Figure 11 – Example tool center points for milling tools
Figure 12 – Example tool center points for turning tools
Machine tool coordinate systems: This companion standard refers to two coordinate systems (see Figure 13 for illustration):
- Base coordinate system: The base coordinate system (BCS) is a coordinate system defined by the machine tool manufacturer. It has its origin within the machine tool’s zero point M.
- Workpiece coordinate system: The workpiece coordinate system (WCS) is a user defined coordinate system and allows considering the clamping position and orientation of a workpiece. It has its origin within the workpiece zero point W.
Figure 13 – Machine tool’s coordinate systems and reference points
The coordinate systems are built based on the right-hand-rule, illustrated in Figure 14.
Figure 14 – Coordinate systems: positive directions and orientations (DIN66217)
Figure 15 shows an overview for the CncChannelType. It is formally defined in Table 12.
The CncChannelType is formally defined in Table 12.
Table 12 – CncChannelType Definition
Attribute |
Value |
||||
BrowseName |
CncChannelType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the CncComponentType |
|||||
|
|
|
|
|
|
GeneratesEvent |
ObjectType |
CncMessageType |
|
|
|
GeneratesEvent |
ObjectType |
GeneralModel ChangeEventType |
|
|
|
HasProperty |
Variable |
0:NodeVersion |
String |
PropertyType |
Optional |
HasComponent |
Object |
<CncAxis> |
|
CncAxisType |
OptionalPlaceholder |
HasComponent |
Object |
<CncSpindle> |
|
CncSpindleType |
OptionalPlaceholder |
HasComponent |
Variable |
ActFeedrate |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
ActGFunctions |
UInt32[] |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActJogIncrement |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
ActMainProgramFile |
String |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActMainProgramFileOffset |
UInt32 |
DataItemType |
Optional |
HasComponent |
Variable |
ActMainProgramLine |
String |
DataItemType |
Optional |
HasComponent |
Variable |
ActMainProgramName |
String |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActMFunctions |
UInt32[] |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActModalOffsetFunction |
UInt32 |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActOperationMode |
CncOperationMode |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActOverride |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
ActProgramBlock |
String[] |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActProgramFile |
String |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActProgramFileOffset |
UInt32 |
DataItemType |
Optional |
HasComponent |
Variable |
ActProgramLine |
String |
DataItemType |
Optional |
HasComponent |
Variable |
ActProgramName |
String |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActProgramStatus |
CncChannelProgStatus |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActStatus |
CncChannelStatus |
DataItemType |
Mandatory |
HasComponent |
Variable |
BlockMode |
Boolean |
DataItemType |
Mandatory |
HasComponent |
Variable |
CmdFeedrate |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
CmdOverride |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
DryRunFeed |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
FeedHold |
Boolean |
DataItemType |
Mandatory |
HasProperty |
Variable |
Id |
UInt32 |
PropertyType |
Mandatory |
HasComponent |
Variable |
PosTcpBcsA |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpBcsB |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpBcsC |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpBcsX |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpBcsY |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpBcsZ |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpWcsA |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpWcsB |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpWcsC |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpWcsX |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpWcsY |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
PosTcpWcsZ |
CncPositionDataType |
CncPosition VariableType |
Mandatory |
HasComponent |
Variable |
ToolId |
UInt32 |
DataItemType |
Mandatory |
CncChannelType may generate events of type CncMessageType to provide channel specific information messages (for instance triggered out of CNC part program).
CncChannelType may generate events of type GeneralModelChangeEventType defined in OPC 10000-3 to inform Clients when CncSpindle or CncAxis Objects have been added or removed from a CncChannelType instance.
The optional Property NodeVersion shall be present if the Server emits GeneralModelChangeEvents for the Object of type CncChannelType. The NodeVersion Property and the relation to GeneralModelChangeEvents are defined in OPC 10000-3.
CNC axis object.
CNC spindle object.
Feedrate actual value.
Active JOG increment, i.e. a position increment that is executed with each user jog command. Usually, there are predefined increments given (1/10, 1/100, 1/1000 position increment in the selected physical unit), but a continuous jog mode and a jog mode with variable increment are possible, too. A continuous jog mode is indicated with a jog increment value of -1, all other jog increments are given as real increments in the appropriate units.
Array of active G functions; there can be several G functions active at a time (modal and non-modal G functions).
Path of active CNC main program.
File offset of active CNC main program file (corresponds to the number of line feeds).
Name of active CNC main program.
Line number of active CNC main program (usually defined as N<Number>).
Array of active M functions: there can be several M functions active at a time (modal and non-modal M functions).
Active zero offset function (usually G54, G55, G56 or G57; G53 repeals zero offsets).
Channel’s active mode of operation. See 7.2.6 for further description of possible states.
Axis override actual value.
Block of lines containing the previous, actual and subsequent lines of a CNC part program.
Path of active CNC part program file (main or subprogram).
File offset of active CNC part program file (main or subprogram).
Line number of active CNC part program (main or subprogram).
Name of active CNC part program (main or subprogram).
Active channel program status. See 7.2.5 for further description of possible states.
Active status of channel. See 7.2.4 for further description of possible states.
Block mode status (true in case of block mode is active, else false). With block mode active, individual program blocks are processed one by one. Each step has to be triggered by the operator.
Feedrate setpoint value.
Override setpoint value.
Test federate.
Feed status (true in case of feed hold active, else false).
Unique numeric channel identifier.
Actual position of the tool center point in machine’s Cartesian base coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point.
Actual position of the tool center point in machine’s Cartesian base coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point.
Actual position of the tool center point in machine’s Cartesian base coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point.
Actual position of the tool center point in machine’s Cartesian base coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point.
Actual position of the tool center point in machine’s Cartesian base coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point.
Actual position of the tool center point in machine’s Cartesian base coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point.
Actual position of the tool center point in machine’s Cartesian workpiece coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point. Hence, the position corresponds to the position programmed in the CNC part program.
Actual position of the tool center point in machine’s Cartesian workpiece coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point. Hence, the position corresponds to the position programmed in the CNC part program.
Actual position of the tool center point in machine’s Cartesian workpiece coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point. Hence, the position corresponds to the position programmed in the CNC part program.
Actual position of the tool center point in machine’s Cartesian workpiece coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point. Hence, the position corresponds to the position programmed in the CNC part program.
Actual position of the tool center point in machine’s Cartesian workpiece coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point. Hence, the position corresponds to the position programmed in the CNC part program.
Actual position of the tool center point in machine’s Cartesian workpiece coordinate system. The tool center point is the reference point on a tool how it is considered by the CNC’s tool compensation function. If there is no tool present, the tool center point is the tool carrier zero point. Hence, the position corresponds to the position programmed in the CNC part program.
ID of active tool that has been selected (e.g. calling “T1” in the CNC part program). Returns an empty string, if no tool is present.
This OPC UA ObjectType represents a CNC drive. It serves as a basis for all drive component Objects that are accessible through this interface, e.g. CncAxisType and CncSpindleType are derived from this ObjectType, and therefore is an abstract type. CncDriveType holds elements that are common for all drive Objects of a CNC system. It is formally defined in Table 13.
The CncDriveType is formally defined in Table 13.
Table 13 – CncDriveType Definition
Attribute |
Value |
||||
BrowseName |
CncDriveType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the CncComponentType |
|||||
|
|
|
|
|
|
HasComponent |
Variable |
ActChannel |
NodeId |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActLoad |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
ActPower |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
ActTorque |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
CmdTorque |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
IsInactive |
Boolean |
DataItemType |
Mandatory |
HasComponent |
Variable |
IsVirtual |
Boolean |
DataItemType |
Mandatory |
NodeId of the channel object (CncChannelType) that administrates this drive to expose drive’s channel affiliation. ActChannel remains empty in case of drives without channel affiliation.
Drive load actual value.
Drive power actual value.
Drive torque actual value.
Drive torque setpoint value.
Drive inactive state (true in case of inactive drive, else false).
Virtual axis (no hardware present; true in case of virtual axis, else false).
This OPC UA ObjectType represents a CNC axis. CNC axes can be subordinated to channels. They can change channel affiliation during runtime. For that reasons Objects of type CncAxisType may be referenced by Objects of CncChannelType to inform about their current channel affiliation. At the same time all axis Objects of a CNC system must be subordinated to the CncAxisList regardless of their channel affiliation.
Figure 16 shows an overview for the CncAxisType. It is formally defined in Table 14.
The CncAxisType is formally defined in Table 14.
Table 14 – CncAxisType Definition
Attribute |
Value |
||||
BrowseName |
CncAxisType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the CncDriveType |
|||||
|
|
|
|
|
|
HasComponent |
Variable |
ActStatus |
CncAxisStatus |
DataItemType |
Mandatory |
HasComponent |
Variable |
IsReferenced |
Boolean |
DataItemType |
Mandatory |
HasComponent |
Variable |
IsRotational |
Boolean |
DataItemType |
Mandatory |
HasComponent |
Variable |
PosDirect |
CncPositionDataType |
CncPositionVariableType |
Mandatory |
HasComponent |
Variable |
PosIndirect |
CncPositionDataType |
CncPositionVariableType |
Mandatory |
HasComponent |
Variable |
ZeroOffset |
Double |
AnalogItemType |
Mandatory |
Actual axis state.
Axis reference state (true in case of successfully referenced axis, else false).
Axis type (true in case of rotational axis, in case of linear type or other false).
Axis position values referring to axis' direct measurement system.
Axis position values referring to axis' indirect measurement system.
Active axis zero offset.
This OPC UA ObjectType represents a CNC spindle. CNC spindles can be subordinated to channels. They can change channel affiliation during runtime. For that reasons Objects of type CncSpindleType may be referenced by Objects of CncChannelType to inform about their current channel affiliation. At the same time all spindle Objects of a CNC system must be subordinated to the CncSpindleList regardless of their channel affiliation.
Figure 17 shows an overview for the CncSpindleType. It is formally defined in Table 15.
The CncSpindleType is formally defined in Table 15.
Table 15 – CncSpindleType Definition
Attribute |
Value |
||||
BrowseName |
CncSpindleType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the CncDriveType |
|||||
|
|
|
|
|
|
HasComponent |
Variable |
ActGear |
UInt32 |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActOverride |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
ActSpeed |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
ActStatus |
CncSpindleStatus |
DataItemType |
Mandatory |
HasComponent |
Variable |
ActTurnDirection |
CncSpindleTurnDirection |
DataItemType |
Mandatory |
HasComponent |
Variable |
AnglePos |
CncPositionDataType |
CncPositionVariableType |
Mandatory |
HasComponent |
Variable |
CmdGear |
UInt32 |
DataItemType |
Mandatory |
HasComponent |
Variable |
CmdOverride |
Double |
AnalogItemType |
Mandatory |
HasComponent |
Variable |
CmdSpeed |
Double |
AnalogItemType |
Mandatory |
Gear stage actual value.
Override actual value.
Speed actual value
Actual spindle state.
Turn direction actual value.
Spindle angular position values in case of interpolated (position controlled) spindle movement. Returns zeros in case of regular spindle operation (velocity controlled).
Gear stage setpoint value.
Override setpoint value.
Speed setpoint value.
This OPC UA ObjectType must be used for reporting alarms of the CNC system. CncAlarmType must derived from DiscreteAlarmType.
The CncAlarmType extends the DiscreteAlarmType as followed:
- HelpSource: To provide additional information to the alarm that is not covered by the message text (Message), the HelpSource parameter may be used. HelpSource is specified as BaseDataType. In case a URI is provided to reference additional information through an external source, the HelpSource has to be defined as String. In case a help text is provided, the data type shall be defined as LocalizedText.
- AlarmIdentifier: CNC systems mostly provide a unique error number for all alarms. For this purpose AlarmIdentifier shall be used.
- AuxParameters: CNC systems may want to provide information (e.g. textual or numerical) in dynamically changeable parts. As an example, this could be used to allow UIs to build their own alarm message by combining the different information fragments provided by this parameter.
As CncAlarmType is derived from the OPC UA DiscreteAlarmType, it shall be used in most parts as specified in OPC 10000-5. However, the following explanations give further instructions on how to specifically use the CncAlarmType.
- Severity is, as defined in OPC 10000-5, an indication of the urgency of the Event and ranges between a value of 1 and 1000. Regarding the severity levels, this OPC UA companion standard does not prescribe the severity levels in detail but expects the lowest alarm severity to be set to 1, the highest severity level to 1000. By this it is secured that the lowest and the highest alarm severity can be clearly identified without knowing about the precise realization of the severities.Example 1: If a CNC system uses three severity levels (e.g. Information, Warning, Error), the Information severity level is set to 1, the Warning severity level ranges between 2 and 999 and the Error severity level is set to 1000.Example 2: If a CNC system uses five severity levels (e.g. Information, Warning, Error, Critical, Fatal), the Information severity level is set to 1, the Warning severity level ranges from 2 to 333, the Error severity level ranges from 334 to 666, the Critical severity level ranges from 667 to 999 and the Fatal severity level is set to 1000.
- ConditionName provides alarm classification, so technically the textual alarm severity (e.g. Warning, Error, Fatal…).
- SourceName and SourceNode: As described in chapter 4.1 several components constitute a CNC system. Contents of SourceName and SourceNode shall be as detailed as possible, meaning that if the alarm source and its name could explicitly be determined, SourceNode and SourceName should hold this information (e.g. SourceName is set to Channel1, SourceNode is referencing to the Channel1 Object). If it is not possible for a CNC system to provide this information in detail, the SourceName should provide the main component responsible for this alarm (e.g. CNC, PLC or even Channel), the SourceNode shall at least reference the root of the CNC machine interface (CncInterface Object).
- AckedState may be set by default to true if no alarm acknowledge is required. If an alarm acknowledge is required AckedState is set to false and changes in case of the acknowledge action.
- Retain and ActiveState shall be kept synchronized. Both parameters indicate that an alarm is still pending in case of true.
Figure 18 gives an overview on CncAlarmType. It is formally defined in Table 16.
The CncAlarmType is formally defined in Table 16.
Table 16 – CncAlarmType Definition
Attribute |
Value |
||||
BrowseName |
CncAlarmType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the DiscreteAlarmType |
|||||
|
|
|
|
|
|
HasProperty |
Variable |
AlarmIdentifier |
String |
PropertyType |
Mandatory |
HasProperty |
Variable |
AuxParameters |
String[] |
PropertyType |
Optional |
HasProperty |
Variable |
HelpSource |
String |
PropertyType |
Optional |
Unique alarm number.
Array of auxiliary parameter for additional alarm description.
Additional information to message giving information on how to solve problem that caused the alarm.
This OPC UA ObjectType may be used for reporting simple information messages that do not represent an alarm. For instance some CNC systems offer the possibility to trigger messages out of the CNC part program for the purpose of tracking. This would be an example for using the CncMessageType.
As CncMessageType is derived from the OPC UA BaseEventType, it shall be used in most parts as specified in OPC 10000-5.
Figure 19 gives an overview on CncMessageType. It is formally defined in Table 17.
The CncMessageType is formally defined in Table 17.
Table 17 – CncMessageType Definition
Attribute |
Value |
||||
BrowseName |
CncMessageType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Inherit the components of the BaseEventType |
|||||
|
|
|
|
|
|
There are currently no components subordinated to this ObjectType.
It is highly recommended to use FileDirectoryType for accessing the file system of CNC systems. Refer to OPC 10000-5 for detailed information.
Entry point to the CNC file system is FileSystem attached to the Standard UA Namespace (0:http://opcfoundation.org/UA/).