Administration, IndexGroup/Offset address
To determine which instances of a class exist, you can query the object address of the first element (IndexOffset = 0x0) by means of a READ&WRITE access.
The IndexGroup and the IndexOffset are returned. No instance of the class exists if (0, 0) is returned as the address.
If an instance exists, all further existing elements of the instance can be determined by incrementing the IndexOffset.
Example
Object query
Query of object address of the 1st channel
IndexGroup =0x123900 comprising
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> |
0x20300 | + 0x3000 | + 0x600 |
Input : Channel = 1, Axis = 0
Output :IndexGroup = 0x123301, IndexOffset = 0x0
Query of object address of the 2nd channel
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> |
0x20300 | + 0x3000 | + 0x600 |
Input : Channel = 2, Axis = 0
Output :IndexGroup = 0x123302, IndexOffset = 0x0
Query of 1st platform axis
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> |
0x120300 | + 0x3000 | + 0x600 |
Input : Channel = 0, Axis = 1
Output :IndexGroup = 0x123300, IndexOffset = 0x1000
Query of 2nd decoder axis in 1st channel
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> |
0x120300 | + 0x2000 | + 0x600 |
Input : Channel = 1, Axis = 2
Output :IndexGroup = 0x122301, IndexOffset = 0x20000
Number of element types of a class
The number of existing element types of an instance can be queried by the value content of the first element (IndexOffset = 0).
The name of this element also describes the instance itself.
Position controller
The position controller is not channel-specific, i.e. channel = 0 always applies. The axes are numbered from 1 up to the number of the configured axes.
Interpolator, decoder, path preparation
The channel number must be specified within the range [ 1; number of configured channels ].
Axes are channel-specific and must lie within the range [0; <BAHN_BAVO_AXMAX>].
Channel, HLI driver
The channel number must be specified within the range [ 1; <number of configured channels> ].
If axes are referenced, they must lie within the range [ 1; <number of configured axes>].
Spindle
The spindle index for spindles must be specified as “channel” entry. The spindle index is numbered from 0 up to the number of the configured axes - 1.
Querying element attributes
The query function is illustrated by the example of the element feedhold.enable in Channel 1. The element IndexOffset is 0x01. The composition of the IndexGroup is shown; the element IndexOffset remains unchanged.
Data content attribute:
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> | <Channel> |
0x120300 | + 0x3000 | + 0x0 | + 1 |
Input : IndexGroup = 0x123301, IndexOffset = 0x01
Output : 0/1 (dependent on element data type)
Name attribute:
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> | <Channel> |
0x120300 | + 0x3000 | + 0x100 | + 1 |
Input : IndexGroup = 0x123401, IndexOffset = 0x01
Output : feedhold.enable
Type attribute:
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> | <Channel> |
0x20300 | + 0x3000 | + 0x200 | + 1 |
Input : IndexGroup = 0x123501, IndexOffset = 0x01
Output : BOOLEAN
Length attribute in bytes:
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> | <Channel> |
0x120300 | + 0x3000 | + 0x300 | + 1 |
Input : IndexGroup = 0x123601, IndexOffset = 0x01
Output : 1
Unit attribute:
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> | <Channel> |
0x120300 | + 0x3000 | + 0x400 | + 1 |
Input : IndexGroup = 0x123701, IndexOffset = 0x01
Output : -
Write protection attribute:
<CNC-Basis> | + <Class = HLD> | + <Attribute=Address> | <Channel> |
0x120300 | + 0x3000 | + 0x500 | + 1 |
Input : IndexGroup = 0x123801, IndexOffset = 0x01
Output : 0