Skip to main content
Version: 2.6

SINUMERIK Data Access

This chapter outlines all possible native addresses to access memory and data. These addresses must be configured within the device configuration.

Format

In general, the address following format:

Classical SINUMERIK path from HMI operate. Example:

/Channel/MachineAxis/measPos1[u1, 1]

Or SIEMENS and IEC syntax. Example:

DB10.DBD 20

Global Addresses

Following data points are provided by the plugin. The Global path is used:

AddressDescriptionData Type
/Global/AvailableReturns the available flag. true = machine is onlineSystem.Boolean
/Global/SignOfLifeSign of life. Toggles in 1Hz if machine is onlineSystem.Boolean

NC Variables

The following list is an extract from the HMI Operate. Check the Siemens Documentation for other data addresses.

Machine Status

AddressDescriptionData Type
/Channel/State/chanAlarm[u1]Returns the alarm status of the machineSystem.Boolean
/Bag/State/opMode[u1]Returns the operation mode:
  • 0: JOG mode
  • 1: MDA mode
  • 2: AUTO mode
System.Int32
/Channel/State/acProg[u1,1]Program running state
  • 0: reset
  • 1: stopped
  • 2: running
  • 3: waiting
  • 4: interrupted
System.Int32
/Channel/State/totalParts[u1]Part counterSystem.Int32

Program Information

AddressDescriptionData Type
/Channel/ProgramPointer/progNameVL[u1,1]Main NC programSystem.String
/Channel/ProgramInfo/actPartProgram[u1,1]Program header of the main programSystem.String
/Channel/ProgramInfo/progName[u1]Current NC programSystem.String
/Channel/ProgramInfo/actBlockA[u1,1]Current NC BlockSystem.String
/Channel/ProgramInfo/blockNoStr[u1]Current sequence numberSystem.String
/Channel/State/actTNumberLong[u1,1]Current Tool numberSystem.Int32

Feed and Feedrates

AddressDescriptionData Type
/Channel/State/feedRateIpoOvrFeedrate OverrideSystem.Double
/Channel/State/actfeedrateipo[u1]Current feedSystem.Double
/Channel/State/cmdFeedRateIpo[u1]Programmed feedSystem.Double

Spindle

AddressDescriptionData Type
/Nck/Spindle/speedOvr[1]Spindle Speed OverrideSystem.Double
/Channel/spindle/actspeed[u1,1]Current spindle speedSystem.Double
/Channel/Spindle/cmdSpeed[u1,1]Programmed spindle speedSystem.Double

Timers

AddressDescriptionData Type
/Channel/ChannelDiagnose/cuttingTime[u1, 1]Cutting timer in secondsSystem.Double
/Channel/ChannelDiagnose/operatingTime[u1, 1]Operation timer in secondsSystem.Double
/Nck/State/sysTimeSinceStartup[1]Power on timer in secondsSystem.Double

Example

Example of a DataNode configuration:

{
"Id": "F7F0FBE1-388C-4B87-94AF-95869AABCE6D",
"Name": "Value",
"DataClass": "Event",
"DataType": "System.Double",
"Address": "/Channel/MachineAxis/measPos1[u1, 1]",
"Access": {
"Read": true,
"Receive": true
}
}

Machine Data

Machine data of the control is accessed via an address that comprises a prefix and the name of the machine data. The prefix is specific for the particular machine data type.

Machine Data TypePrefix
General machine data/NC/_N_NC_TEA_ACX
Channel machine data/NC/_N_CH_TEA_ACX
Axis machine data/NC/_N_AX_TEA_ACX
General setting machine data/NC/_N_NC_SEA_ACX
Channel setting machine data/NC/_N_CH_SEA_ACX
Axis setting machine data/NC/_N_AX_SEA_ACX
NOTE

When accessing channel-specific machine data, the address must be extended by the channel number [<ChannelNr>]. For indexed machine data, a second index must also be used [<ChannelNr>,<Index>].

NOTE

When accessing axis machine data, the address must be extended by the axis number [<AxisNr>]. For indexed machine data, a second index must also be used [<AxisNr>,<Index>].

Example of an indexed general machine data $VALUE[2]:

{
"Id": "F7F0FBE1-388C-4B87-94AF-95869AABCE6D",
"Name": "Value",
"DataClass": "Event",
"DataType": "System.Double",
"Address": "/NC/_N_NC_TEA_ACX/$VALUE[2]",
"Access": {
"Read": true,
"Receive": true
}
}

Global User Data (GUD)

The SINUMERIK control system allows global variables to be defined which can then be read and written to in an NC program. The GUD variables can be defined NC-globally or channel-specifically.

DEF

GUDs are defined in DEF files in SINUMERIK controls

File NameDescription
MGUD.DEFDefinitions for global machine manufacturer data
UGUD.DEFDefinitions for global user data
GUD4.DEFUser-definable data
GUD8.DEF, GUD9.DEFUser-definable data

To access variables declared in one of those files, proceed as follows:

  1. Download the corresponding GUD file from the Sinumerik Control
  2. Create a property on the level of the device, called DEF:<GudFileName>, e.g. DEV:GUD8.
  3. Copy-paste the content of the GUD file into this device property.
  4. Create a data node and use the following format to address the GUD variable: <GudFileName>/<VariableName>, e.g. GUD8/MY_VARIABLE[u1]

GUD Example

Example of a Sinumerik Device declaring variables in GUD8:

{
"Id": "3cdb7463-770f-4ccf-d33f-7dcad8daa755",
"Name": "EMAG VTC",
"DriverId": "b657332c-a383-47ee-bedd-6156af9c9083",
"Address": "s840d.pl://10.1.0.11",
"Properties": [
{
"Name": "DEF:GUD8",
"DataType": "System.String",
"Value": ";// WERKZEUGVERWALTUNG\r\nN200 DEF CHAN INT TOOL_LIFE_CUR_[17]\r\nN201 DEF CHAN INT TOOL_LIFE_PRES_[17]\r\nN999 M30"
}
]
}

Example of an indexed channel GUD data:

NOTE

Since TOOL_LIFE_CUR_ is a channel based array, it also requires to declare from which channel the data must be read/written, e.g: channel 1 as TOOL_LIFE_CUR_[u1,2].

{
"Id": "F7F0FBE1-388C-4B87-94AF-95869AABCE6D",
"Name": "Value",
"DataClass": "Event",
"DataType": "System.Double",
"Address": "GUD8/TOOL_LIFE_CUR_[u1,2]",
"Access": {
"Read": true,
"Receive": true
}
}