6.6 CncChannelType

6.6.1 General

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.

Figure 15 – CncChannelType

6.6.2 ObjectType Definition

The CncChannelType is formally defined in Table 12.

Table 12 – CncChannelType Definition
Attribute Value
BrowseNameCncChannelType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Inherit the components of the CncComponentType
GeneratesEventObjectTypeCncMessageType
GeneratesEventObjectType

GeneralModel

ChangeEventType

HasPropertyVariable0:NodeVersionStringPropertyTypeOptional
HasComponentObject<CncAxis>CncAxisTypeOptionalPlaceholder
HasComponentObject<CncSpindle>CncSpindleTypeOptionalPlaceholder
HasComponentVariableActFeedrateDoubleAnalogItemTypeMandatory
HasComponentVariableActGFunctionsUInt32[]DataItemTypeMandatory
HasComponentVariableActJogIncrementDoubleAnalogItemTypeMandatory
HasComponentVariableActMainProgramFileStringDataItemTypeMandatory
HasComponentVariableActMainProgramFileOffsetUInt32DataItemTypeOptional
HasComponentVariableActMainProgramLineStringDataItemTypeOptional
HasComponentVariableActMainProgramNameStringDataItemTypeMandatory
HasComponentVariableActMFunctionsUInt32[]DataItemTypeMandatory
HasComponentVariableActModalOffsetFunctionUInt32DataItemTypeMandatory
HasComponentVariableActOperationModeCncOperationModeDataItemTypeMandatory
HasComponentVariableActOverrideDoubleAnalogItemTypeMandatory
HasComponentVariableActProgramBlockString[]DataItemTypeMandatory
HasComponentVariableActProgramFileStringDataItemTypeMandatory
HasComponentVariableActProgramFileOffsetUInt32DataItemTypeOptional
HasComponentVariableActProgramLineStringDataItemTypeOptional
HasComponentVariableActProgramNameStringDataItemTypeMandatory
HasComponentVariableActProgramStatusCncChannelProgStatusDataItemTypeMandatory
HasComponentVariableActStatusCncChannelStatusDataItemTypeMandatory
HasComponentVariableBlockModeBooleanDataItemTypeMandatory
HasComponentVariableCmdFeedrateDoubleAnalogItemTypeMandatory
HasComponentVariableCmdOverrideDoubleAnalogItemTypeMandatory
HasComponentVariableDryRunFeedDoubleAnalogItemTypeMandatory
HasComponentVariableFeedHoldBooleanDataItemTypeMandatory
HasPropertyVariableIdUInt32PropertyTypeMandatory
HasComponentVariablePosTcpBcsACncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpBcsBCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpBcsCCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpBcsXCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpBcsYCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpBcsZCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpWcsACncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpWcsBCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpWcsCCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpWcsXCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpWcsYCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariablePosTcpWcsZCncPositionDataType

CncPosition

VariableType

Mandatory
HasComponentVariableToolIdUInt32DataItemTypeMandatory

6.6.3 ObjectType Description

6.6.3.1 CncMessage

CncChannelType may generate events of type CncMessageType to provide channel specific information messages (for instance triggered out of CNC part program).

6.6.3.2 GeneralModelChangeEvent

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.

6.6.3.3 NodeVersion

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.

6.6.3.4 CncAxis

CNC axis object.

6.6.3.5 CncSpindle

CNC spindle object.

6.6.3.6 ActFeedrate

Feedrate actual value.

6.6.3.7 ActJogIncrement

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.

6.6.3.8 ActGFunctions

Array of active G functions; there can be several G functions active at a time (modal and non-modal G functions).

6.6.3.9 ActMainProgramFile

Path of active CNC main program.

6.6.3.10 ActMainProgramFileOffset

File offset of active CNC main program file (corresponds to the number of line feeds).

6.6.3.11 ActMainProgramName

Name of active CNC main program.

6.6.3.12 ActMainProgramLine

Line number of active CNC main program (usually defined as N<Number>).

6.6.3.13 ActMFunctions

Array of active M functions: there can be several M functions active at a time (modal and non-modal M functions).

6.6.3.14 ActModalOffsetFunction

Active zero offset function (usually G54, G55, G56 or G57; G53 repeals zero offsets).

6.6.3.15 ActOperationMode

Channel’s active mode of operation. See 7.2.6 for further description of possible states.

6.6.3.16 ActOverride

Axis override actual value.

6.6.3.17 ActProgramBlock

Block of lines containing the previous, actual and subsequent lines of a CNC part program.

6.6.3.18 ActProgramFile

Path of active CNC part program file (main or subprogram).

6.6.3.19 ActProgramFileOffset

File offset of active CNC part program file (main or subprogram).

6.6.3.20 ActProgramLine

Line number of active CNC part program (main or subprogram).

6.6.3.21 ActProgramName

Name of active CNC part program (main or subprogram).

6.6.3.22 ActProgramStatus

Active channel program status. See 7.2.5 for further description of possible states.

6.6.3.23 ActStatus

Active status of channel. See 7.2.4 for further description of possible states.

6.6.3.24 BlockMode

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.

6.6.3.25 CmdFeedrate

Feedrate setpoint value.

6.6.3.26 CmdOverride

Override setpoint value.

6.6.3.27 DryRunFeed

Test federate.

6.6.3.28 FeedHold

Feed status (true in case of feed hold active, else false).

6.6.3.29 Id

Unique numeric channel identifier.

6.6.3.30 PosTcpBcsA

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.

6.6.3.31 PosTcpBcsB

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.

6.6.3.32 PosTcpBcsC

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.

6.6.3.33 PosTcpBcsX

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.

6.6.3.34 PosTcpBcsY

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.

6.6.3.35 PosTcpBcsZ

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.

6.6.3.36 PosTcpWcsA

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.

6.6.3.37 PosTcpWcsB

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.

6.6.3.38 PosTcpWcsC

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.

6.6.3.39 PosTcpWcsX

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.

6.6.3.40 PosTcpWcsY

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.

6.6.3.41 PosTcpWcsZ

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.

6.6.3.42 ToolId

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.