Example:
A name resolution is performed via RNP() for each change of the axis motion in order to
read channel-specific machine data:
DEF AXIS_POSITION_X = (R///,""///"$AA_IM[X]")
CHANGE(AXIS_POSITION_X)
DLGL("Axis """ << RNP("$MC_AXCONF_GEOAX_NAME_TAB[0]") << """
has moved: "
<< AXIS_POSITION_X)
END_CHANGE
Keep the channel-specific machine data up-to-date with the aid of an invisible variable, copy
each value change to a temporary variable, e.g. register.
This temporary variable can then be used in the CHANGE method of the value change for
the axis position without making a name resolution of the machine data each time and the
subsequent read access:
DEF AXIS_POSITION_X = (R///,""///"$AA_IM[X]")
DEF AXIS_NAME_X = (S///,""/WR0//"$MC_AXCONF_GEOAX_NAME_TAB[0]")
CHANGE(AXIS_NAME_X)
REG[0] = AXIS_NAME_X
END_CHANGE
CHANGE(AXIS_POSITION_X1)
DLGL("Axis """ << REG[0] << """ has moved " << AXIS_POSITION_X)
END_CHANGE
● The update rate and therefore the execution of the associated CHANGE method of
variables
that are connected to system or user variables with very frequent value changes,
can be reduced by using the UR variable property, e.g. variable that is coupled to the actual
axis values.
Reason:
In this way, the associated CHANGE method is executed in a fixed specified grid for a value
change.
B.4 Tips for DO LOOP loops
As loops can impair the performance of SINUMERIK Operate, depending on the configuration,
they should be used carefully and if possible without time-intensive actions.
A register (REG[]) should also be used as run variable, because normal display variables
(particularly those with OPI connection) also impair the system performance due to the frequent
updates or write operations.
Tips and tricks
B.4 Tips for DO LOOP loops
SINUMERIK Integrate Run MyScreens
Programming Manual, 10/2015, 6FC5397-3DP40-5BA3 209