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:
Address | Description | Data Type |
---|---|---|
/Global/Available | Returns the available flag. true = machine is online | System.Boolean |
/Global/SignOfLife | Sign of life. Toggles in 1Hz if machine is online | System.Boolean |
NC Variables
The following list is an extract from the HMI Operate. Check the Siemens Documentation for other data addresses.
Machine Status
Address | Description | Data Type |
---|---|---|
/Channel/State/chanAlarm[u1] | Returns the alarm status of the machine | System.Boolean |
/Bag/State/opMode[u1] | Returns the operation mode:
| System.Int32 |
/Channel/State/acProg[u1,1] | Program running state
| System.Int32 |
/Channel/State/totalParts[u1] | Part counter | System.Int32 |
Program Information
Address | Description | Data Type |
---|---|---|
/Channel/ProgramPointer/progNameVL[u1,1] | Main NC program | System.String |
/Channel/ProgramInfo/actPartProgram[u1,1] | Program header of the main program | System.String |
/Channel/ProgramInfo/progName[u1] | Current NC program | System.String |
/Channel/ProgramInfo/actBlockA[u1,1] | Current NC Block | System.String |
/Channel/ProgramInfo/blockNoStr[u1] | Current sequence number | System.String |
/Channel/State/actTNumberLong[u1,1] | Current Tool number | System.Int32 |
Feed and Feedrates
Address | Description | Data Type |
---|---|---|
/Channel/State/feedRateIpoOvr | Feedrate Override | System.Double |
/Channel/State/actfeedrateipo[u1] | Current feed | System.Double |
/Channel/State/cmdFeedRateIpo[u1] | Programmed feed | System.Double |
Spindle
Address | Description | Data Type |
---|---|---|
/Nck/Spindle/speedOvr[1] | Spindle Speed Override | System.Double |
/Channel/spindle/actspeed[u1,1] | Current spindle speed | System.Double |
/Channel/Spindle/cmdSpeed[u1,1] | Programmed spindle speed | System.Double |
Timers
Address | Description | Data Type |
---|---|---|
/Channel/ChannelDiagnose/cuttingTime[u1, 1] | Cutting timer in seconds | System.Double |
/Channel/ChannelDiagnose/operatingTime[u1, 1] | Operation timer in seconds | System.Double |
/Nck/State/sysTimeSinceStartup[1] | Power on timer in seconds | System.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 Type | Prefix |
---|---|
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 |
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>]
.
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 Name | Description |
---|---|
MGUD.DEF | Definitions for global machine manufacturer data |
UGUD.DEF | Definitions for global user data |
GUD4.DEF | User-definable data |
GUD8.DEF, GUD9.DEF | User-definable data |
To access variables declared in one of those files, proceed as follows:
- Download the corresponding GUD file from the Sinumerik Control
- Create a property on the level of the device, called
DEF:<GudFileName>
, e.g.DEV:GUD8
. - Copy-paste the content of the GUD file into this device property.
- 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:
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 asTOOL_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
}
}