Skip to main content
Version: 2.8

NUM AXIUM Data Access

This chapter outlines all possible native addresses. These addresses must be configured within the device configuration.

Format

A native NUM address has following format:

{memory base}.{memory channel}.{memory type}.{data type}:{address}(°{axis letter})

{axis letter} is optional and only allowed in Axis

Memory Base

The CNC control provides different bases for memory:

Memory BaseDescription
GlobalGlobal memory base.
Cnc{c}Cnc memory base. For the Num Axium Control Driver maximal 16 cnc's are available. This number equals the configured cnc Address of the cnc control. (0...15)

Memory Channel

The CNC control provides different channels for memory:

Memory BaseMemory ChannelDescription
GlobalSystemGlobal memory base.
Cnc{c}Nc{n}Nc memory base. For the Num Axium Control Driver are maximal 8 Nc channels available. This number equals the configured nc Address of the cnc control. (0...7)
Cnc{c}CommonCommon memory base, it means all NC channels together
Cnc{c}CncAll cnc Data
Cnc{c}PlcPlc Data

Memory Type

Each memory base can have one or several memory types.

Memory BaseMemory TypeDescription
SystemControlGlobal CNC Information
Nc{n}ProgramProgram Information
AxisAxis positions and Speeds (absolute pos, machine pos, ...)
DynamicOperation Mode, Feedrate, ...
CncParameterE Parameters
PlcVariablesPlc Variables (e.g. Running state, ...)

Data Types

Data TypeDescriptionSystem Data Type
BoolBit information. 0 = not set; 1 = setSystem.Boolean
Uint8Byte information (unsigned 8bit integer)System.Byte
Uint16Word information (unsigned 16bit integer)System.UInt16
Uint32DWord information (unsigned 32bit integer)System.UInt32
Uint64Long information (unsigned 64bit integer)System.UInt64
Int32Signed integer (32bit)System.Int32
Int64Signed integer (64bit)System.Int64
Float64Floating point number (64bit)System.Double
StringString informationSystem.String

Axis Letters

String DataInt DataDescription
X0Axis name of X Axis
Y1Axis name of Y Axis
Z2Axis name of Z Axis
U3Axis name of U Axis
V4Axis name of V Axis
W5Axis name of W Axis
A6Axis name of A Axis
B7Axis name of B Axis
C8Axis name of C Axis

Examples

Cnc0.Nc0.Program.Int32:1 address of the current program number

Global System Configuration

The global system configuration can only be read or monitored. Writing is not possible.

AddressDescriptionData Type
Global.System.Control.Int32:0Connection status of the control (0 = Disconnected, 1 = Connected)System.Int32
Global.System.Control.String:1Control NameSystem.String
Global.System.Control.String:2Control IdentifierSystem.String
Global.System.Control.Int32:3Get the number of configured CNC axis channelSystem.Int32
Global.System.Control.Int32:4Get the number of NCKsSystem.Int32
Global.System.Control.Int32:5Sign of life toggle bit (in 1 Hz if connected)System.Int32
Global.System.Control.Int32:6Get the number of PLC and NC channelsSystem.Int32

Nc Program Configuration

The Nc Program configuration can only be read or monitored. Writing is not possible.

AddressDescriptionData Type
Cnc{c}.Nc{n}.Program.Int32:0Available G-Function **System.Int32
Cnc{c}.Nc{n}.Program.Int32:1Current programSystem.Int32
Cnc{c}.Nc{n}.Program.Int32:2Current block numberSystem.Int32*
Cnc{c}.Nc{n}.Program.Int32:3Program errorSystem.Int32*
Cnc{c}.Nc{n}.Program.Int32:4Block error numberSystem.Int32*
Cnc{c}.Nc{n}.Program.Int32:5Current toolSystem.Int32*
Cnc{c}.Nc{n}.Program.Int32:6Tool direction **System.Int32
Cnc{c}.Nc{n}.Program.Int32:7Corrector numberSystem.Int32*
Cnc{c}.Nc{n}.Program.Int32:8Left function ** (remaining treatment)System.Int32
Cnc{c}.Nc{n}.Program.String:100Get the changing of the the part program number with their call stackSystem.String
Cnc{c}.Nc{n}.Program.String:102Comment line of the current main programSystem.String
Cnc{c}.Nc{n}.Program.String:104Current Operator MessageSystem.String
  • The value from control is an Int16 value. But it has been converted to an Int32 value by HumanOS®.

Available G-Function **

Bit NrGFunctionBit NrGFunction
0G0015G22
1G0116G40
2G0217G41
3G0318G42
4G0419G53
6G3820G54
7G0921G29
8G1723G93
9G1924G94
10G1825G95
11G9027G96
12G9128G97
13G7030G20
14G5231G21

Tool Direction **

Bit NrValue
0G16 P+
1G16 Q+
2G16 R+
8G16 P-
9G16 Q-
10G16 R-

Left function **

Bit NrValue
0G78 P..
1End of external movement (FMEXT)
2Decoded M function
3Encoded M function
4G04
5G09
6Circle execution
7Linear execution
8JOG
11ARUS
13Encoded M function without ack. (before)
15T function

Dynamic information

The Dynamic configuration can only be read or monitored. Writing is not possible.

AddressDescriptionData Type
Cnc{c}.Nc{n}.Dynamic.Int32:0Operation Mode **System.Int32
Cnc{c}.Nc{n}.Dynamic.String:0Operation Mode as StringSystem.String
Cnc{c}.Nc{n}.Dynamic.Int32:1Preselected operation mode as intSystem.Int32
Cnc{c}.Nc{n}.Dynamic.String:1Preselected operation mode as stringSystem.String
Cnc{c}.Nc{n}.Dynamic.Int32:2Feedrate in percentSystem.Int32
Cnc{c}.Nc{n}.Dynamic.Float64:3Interpolation feed of the NCSystem.Double
Cnc{c}.Nc{n}.Dynamic.Float64:4Programmed feedSystem.Double

Operation Mode **

ValueOperation Mode
0MDI
1Auto
2Single
3Edit
4Manual
5Rapid
6Test
7Search
8Home
9Shifts
11No Mode
13Load

Nc Axis Configuration

Reading the axis positions.

AddressDescriptionData Type
Cnc{c}.Nc{n}.Axis.Float64:0Machine positionsSystem.Double[]
Cnc{c}.Nc{n}.Axis.Float64:1Offset positions (absolute positions)System.Double[]
Cnc{c}.Nc{n}.Axis.Float64:2End positionsSystem.Double[]
Cnc{c}.Nc{n}.Axis.Float64:3Delta (Distance to go)System.Double[]

Each of these memories can be also read by axis number:

AddressDescriptionData Type
Cnc{c}.Nc{n}.Axis.Float64:0°{y}Machine position of axis {y}System.Double
Cnc{c}.Nc{n}.Axis.Float64:1°{y}Absolute position of axis {y}System.Double
Cnc{c}.Nc{n}.Axis.Float64:2°{y}Relative position of axis {y}System.Double
Cnc{c}.Nc{n}.Axis.Float64:3°{y}Distance to go of axis {y}System.Double

Spindle Data

Reads the spindle information. The spindle number {y} is in rage 0 to 3.

AddressDescriptionData Type
Cnc{c}.Nc{n}.Spindle.Uint8:0°{y}Assigned axis groupSystem.Byte
Cnc{c}.Nc{n}.Spindle.Uint8:1°{y}Mode (Bit0=1 → M3; Bit1=1 → M5; Bit2=1 → M4; Bit3=1 → M19)System.Byte
Cnc{c}.Nc{n}.Spindle.Int32:2°{y}Feedrate override in %System.Int32*
Cnc{c}.Nc{n}.Spindle.Float64:3°{y}Programmed spindle speedSystem.Double
Cnc{c}.Nc{n}.Spindle.Float64:4°{y}Real spindle speedSystem.Double
  • The value from control is an Int16 value. But it has been converted to an Int32 value by HumanOS®.

Plc Variables

For reading the plc variables, they must be allowed to read in PLC Project. With following address, you can read a PLC variable:

Cnc{c}.Plc.Variables.{DataType}:{PLC Address}

PLC Address = {Type + AddressOffset + DataFormat}

Available data format are:

FormatExampleDescription
Boolean (0..7)M0.0Write the first Bit of Address M0
Byte (.B)M0.BWrite the first Byte (8 Bits) of Address M0
Word (.W)M0.WWrite the first Word (16 Bits) of Address M0

Types available are:

TypeRangeDescription
I0-5939PLC Input Var (HW input signals)
Q0-5939PLC Output Var (HW output signals)
R0-979PLC No write MEM Var (read only storage)
W0-979PLC write MEM Var (R/W storage)
M0-7799PLC write MEM Var (R/W storage)

Ranges and read/write access depend on the used controller and the version, as well as customization through the machine supplier.

For checking a PLC address, you can use the Numpass HMI, go to Variables and write your plc address:

Examples

Cnc0.Plc.Variables.Bool:R5.1 = Program running

E-Parameters / L-Parameters

For reading the E- / L- parameters, they must be allowed to read in PLC Project.

Types available are:

TypeRangeDescription
L1-999L-Var (CNC runtime data, 0 while program idle)
E10000-…-…-96331PLC E-Parameter (storage for various processing data) range is not fully continuous, contact Num for specific data

For reading an E-Parameter, the parameter must be defined. For further information see the NUM documentation chapter "external parameters".

With following address, you can read an E-Parameter variable:

Cnc{c}.Plc.Variables.{DataType}:{Type+Address}

Example: Cnc0.Plc.Variables.Float64:E81000

For checking a E-Parameter address, you can use the Numpass HMI, go to Variables and write your E-Parameter.

NumRoto Parameter MachineActivity

The data point MachineActivity is NUM Roto specific and somewhat special. In the windows registry, it must be specified which EParameter contains the values from the data point MachineActivity. This is described in the driver configuration.

HumanOS.UHAL.NumControlDriver implements the MachineActivity data point at the following address:

Cnc{c}.Plc.Variables.{DataType}:MachineActivity

Example:

In the windows registry, the following setting is specified:

HKEY_CURRENT_USER\SOFTWARE\NUMROTOplus\ParamMachineActivity contains the value 81000.

NUMROTO Registry Key

In this case, the NumControl driver will replace the address Cnc0.Plc.Variables.String:MachineActivity based on the registry setting with Cnc0.Plc.Variables.String:E81000.

Storage locations

Data can be stored in different locations, which can freely be defined by the system integrator. For example, the variable part counter is not defined from NUM, most likely the value is stored in a custom usable E-Parameter.

Custom ranges:

TypeRangeDescription
E80000-8005032bit NC-Parameters (not visible to PLC)
E30000-3012732bit shared PLC-NC Parameters