NUM FLEXIUM 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 Base | Description |
---|---|
Global | Global memory base. |
Cnc{c} | Cnc memory base. For the Num Flexium Control Driver are maximal 16 cnc's 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 Base | Memory Channel | Description |
---|---|---|
Global | System | Global memory base. |
Cnc{c} | Nc{n} | Nc memory base. For the Num Flexium Control Driver are maximal 8 Nc channels available. This number equals the configured nc Address of the cnc control. (0...7) |
Cnc{c} | Common | Common memory base, it means all NC channels together |
Cnc{c} | Cnc | All Cnc Data |
Cnc{c} | Plc | All Plc Data |
Memory Type
Each memory base can have one or several memory types.
Memory Base | Memory Type | Description |
---|---|---|
System | Control | Global CNC Information |
Nc{n} | Program | Program Information |
Nc{n} | Axis | Axis positions and Speeds (absolute pos, machine pos, ...) |
Nc{n} | Dynamic | Operation Mode, Feedrate, ... |
Cnc | Parameter | CNC E Parameters |
Plc | Variables | Plc Variables and E Parameters (e.g. Running state, ...) |
Data Types
Data Type | Description | System Data Type |
---|---|---|
Bool | Bit information. 0 = not set; 1 = set | System.Boolean |
Uint8 | Byte information (unsigned 8bit integer) | System.Byte |
Uint16 | Word information (unsigned 16bit integer) | System.UInt16 |
Uint32 | DWord information (unsigned 32bit integer) | System.UInt32 |
Uint64 | Long information (unsigned 64bit integer) | System.UInt64 |
Int32 | Signed integer (32bit) | System.Int32 |
Int64 | Signed integer (64bit) | System.Int64 |
Float64 | Floating point number (64bit) | System.Double |
String | String information | System.String |
Axis Letters
String Data | Int Data | Description |
---|---|---|
X | 0 | Axis name of X Axis |
Y | 1 | Axis name of Y Axis |
Z | 2 | Axis name of Z Axis |
U | 3 | Axis name of U Axis |
V | 4 | Axis name of V Axis |
W | 5 | Axis name of W Axis |
A | 6 | Axis name of A Axis |
B | 7 | Axis name of B Axis |
C | 8 | Axis 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.
Address | Description | Data Type |
---|---|---|
Global.System.Control.Int32:0 | Connection status of the control (0 = Disconnected, 1 = Connected) | System.Int32 |
Global.System.Control.String:1 | Control Name | System.String |
Global.System.Control.String:2 | Control Identifier | System.String |
Global.System.Control.Int32:3 | Get the number of configured CNC axis channel | System.Int32 |
Global.System.Control.Int32:4 | Get the number of NCKs | System.Int32 |
Global.System.Control.Int32:5 | Sign of life toggle bit (in 1 Hz if connected) | System.Int32 |
Global.System.Control.Int32:6 | Get the number of PLC and NC channels | System.Int32 |
Nc Program Configuration
The Nc Program configuration can only be read or monitored. Writing is not possible.
Address | Description | Data Type |
---|---|---|
Cnc{c}.Nc{n}.Program.Int32:0 | Available G-Function ** | System.Int32 |
Cnc{c}.Nc{n}.Program.Int32:1 | Current program | System.Int32 |
Cnc{c}.Nc{n}.Program.Int32:2 | Current block number | System.Int32* |
Cnc{c}.Nc{n}.Program.Int32:3 | Program error | System.Int32* |
Cnc{c}.Nc{n}.Program.Int32:4 | Block error number | System.Int32* |
Cnc{c}.Nc{n}.Program.Int32:5 | Current tool | System.Int32* |
Cnc{c}.Nc{n}.Program.Int32:6 | Tool direction ** | System.Int32 |
Cnc{c}.Nc{n}.Program.Int32:7 | Corrector number | System.Int32* |
Cnc{c}.Nc{n}.Program.Int32:8 | Left function ** (remaining treatment) | System.Int32 |
Cnc{c}.Nc{n}.Program.Int32:9 | Current line number (only Flexium+) | System.Int32 |
Cnc{c}.Nc{n}.Program.Int32:11 | G92F (axes list) ** (only Flexium+) | System.Int32 |
Cnc{c}.Nc{n}.Program.Int32:10 | Line number in error (only Flexium+) | System.Int32 |
Cnc{c}.Nc{n}.Program.Int32:12 | Loaded tool number (only Flexium+ and FX server version minimal 4.1.0.0) | System.Int32 |
Cnc{c}.Nc{n}.Program.String:100 | Get the changing of the the part program number with their call stack | System.String |
Cnc{c}.Nc{n}.Program.String:101 | Main program name | System.String |
Cnc{c}.Nc{n}.Program.String:102 | Comment line of the current main program | System.String |
Cnc{c}.Nc{n}.Program.String:103 | File name of the current program | System.String |
Cnc{c}.Nc{n}.Program.String:104 | Current Operator Message | System.String |
- The value from control is an Int16 value. But it has been converted to an Int32 value by HumanOS®.
Available G-Function **
Bit Nr | GFunction | Bit Nr | GFunction |
---|---|---|---|
0 | G00 | 15 | G22 |
1 | G01 | 16 | G40 |
2 | G02 | 17 | G41 |
3 | G03 | 18 | G42 |
4 | G04 | 19 | G53 |
6 | G38 | 20 | G54 |
7 | G09 | 21 | G29 |
8 | G17 | 23 | G93 |
9 | G19 | 24 | G94 |
10 | G18 | 25 | G95 |
11 | G90 | 27 | G96 |
12 | G91 | 28 | G97 |
13 | G70 | 30 | G20 |
14 | G52 | 31 | G21 |
Tool Direction **
Bit Nr | Value |
---|---|
0 | G16 P+ |
1 | G16 Q+ |
2 | G16 R+ |
8 | G16 P- |
9 | G16 Q- |
10 | G16 R- |
Left Function **
Bit Nr | Value |
---|---|
0 | G78 P.. |
1 | End of external movement (FMEXT) |
2 | Decoded M function |
3 | Encoded M function |
4 | G04 |
5 | G09 |
6 | Circle execution |
7 | Linear execution |
8 | JOG |
11 | ARUS |
13 | Encoded M function without ack. (before) |
15 | T function |
G92F **
Bit Nr | Axis |
---|---|
0 | X Axis available |
1 | Y Axis available |
2 | Z Axis available |
3 | U Axis available |
4 | V Axis available |
5 | W Axis available |
6 | A Axis available |
7 | B Axis available |
8 | C Axis available |
Dynamic Information
The Dynamic configuration can only be read or monitored. Writing is not possible.
Address | Description | Data Type |
---|---|---|
Cnc{c}.Nc{n}.Dynamic.Int32:0 | Operation Mode ** | System.Int32 |
Cnc{c}.Nc{n}.Dynamic.String:0 | Operation Mode as String | System.String |
Cnc{c}.Nc{n}.Dynamic.Int32:1 | Preselected operation mode as int | System.Int32 |
Cnc{c}.Nc{n}.Dynamic.Int32:2 | Feedrate in percent | System.Int32 |
Cnc{c}.Nc{n}.Dynamic.String:1 | Preselected operation mode as string | System.String |
Cnc{c}.Nc{n}.Dynamic.Float64:3 | Interpolation feed of the NC | System.Double |
Cnc{c}.Nc{n}.Dynamic.Float64:4 | Programmed feed | System.Double |
Operation Mode **
Value | Operation Mode |
---|---|
0 | MDI |
1 | Auto |
2 | Single |
3 | Edit |
4 | Manual |
5 | Rapid |
6 | Test |
7 | Search |
8 | Home |
9 | Shifts |
11 | No Mode |
13 | Load |
Nc Axis Configuration
Reading the axis positions.
Address | Description | Data Type |
---|---|---|
Cnc{c}.Nc{n}.Axis.Float64:0 | Machine positions | System.Double[] |
Cnc{c}.Nc{n}.Axis.Float64:1 | Offset positions (absolute positions) | System.Double[] |
Cnc{c}.Nc{n}.Axis.Float64:2 | End positions | System.Double[] |
Cnc{c}.Nc{n}.Axis.Float64:3 | Delta (Distance to go) | System.Double[] |
Each of these memories can be also read by axis number:
Address | Description | Data 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:3°{y} | Distance to go of axis {y} | System.Double |
Cnc{c}.Nc{n}.Axis.Float64:2°{y} | Relative position of axis {y} | System.Double |
Spindle Data
Reads the spindle information. The spindle number {y}
is in rage 0 to 31.
Address | Description | Data Type |
---|---|---|
Cnc{c}.Nc{n}.Spindle.Uint8:0°{y} | Assigned axis group | System.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 speed | System.Double |
Cnc{c}.Nc{n}.Spindle.Float64:4°{y} | Real spindle speed | System.Double |
Cnc{c}.Nc{n}.Spindle.Uint8:5°{y} | Speed type (Bit0=0 → S5.0; Bit0=1 → S6.0; Bit1=1 → S3.2) | System.Byte |
Cnc{c}.Nc{n}.Spindle.Uint8:6°{y} | Spindle is valid | System.Byte |
Cnc{c}.Nc{n}.Spindle.Uint8:7°{y} | Logical index in the system | System.Byte |
Cnc{c}.Nc{n}.Spindle.Uint8:8°{y} | Physical address | System.Byte |
Plc Variables and E Parameters
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}
For checking a PLC address, you can use the Flexium HMI, go to Variables and write your PLC variable:
Examples:
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.CncError
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.CncReady
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.ProgramActive
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.ProgramStop
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.Stop
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.Start
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.Reset (only ca. 100ms)
E-Parameters on the PLC can vary, in general there are following parameter arrays with different data types: E10000, E30000, E33000, E36000, E37000
Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.E10000[1]
{
"Id": "<generate your own id>",
"Name": "Read 1 bit from E10000",
"DataType": "System.Boolean",
"DataClass": "Event",
"Address": "Cnc0.Plc.Variables.Bool:Application.IoConfig_Globals.Flexium_NCK.RCNC.General.E10000[1]",
"Access": {
"Read": true,
"Receive": true
}
}
Check the E addresses for their data type. Reading the whole array is not supported by the controller.
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.
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
.
CNC Parameters
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 (Address range from 11000-..-..-98431; range not fully continuous):
Cnc{c}.Cnc.Parameter.{DataType}:E{xxxxx}
Ranges and read/write access depend on the used controller and the version, as well as customization through the machine supplier.
For checking an E-Parameter address, you can use the Flexium HMI, go to Variables and write your E-Parameter:
Flexium controls do not support data types. In this case, the values are converted to
System.Double
.
For Flexium+, following data types are supported:
System.Double
: Floating point number of 64bitSystem.SByte
: integer of 8bitSystem.Int16
: Integer of 16bitSystem.Int32
: Integer of 32bitSystem.Int64
: Integer of 64bitSystem.Byte
: Unsigned integer of 8bitSystem.UInt16
: Unsigned integer of 16bitSystem.UInt32
: Unsigned integer of 32bitSystem.UInt32
: Unsigned integer of 32bit