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.

image014.png

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.

image015.png

Figure 11 – Example tool center points for milling tools

image016.png

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.

image017.png

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.

image018.png

Figure 14 – Coordinate systems: positive directions and orientations (DIN66217)

Figure 15 shows an overview for the CncChannelType. It is formally defined in Table 12.

image019.png

Figure 15 – CncChannelType

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.