An axis, which has got a absolute encoder can store a position so that it retains its previous position after a restart of the controller. Homing is unnecessary. The function blocks SMC3_PersistPosition, SMC3_PersistPositionLogical and SMC3_PersistPositionSingleTurn provide the functionality for storage. The position data are stored in SMC3_PersistPosition_Data, SMC3_PersistPositionLogical_Data and SMC3_PersistPositionSingleTurn_Data.
The output bPositionStored indicates whether the changed data have been stored in PersistentData. Depending on the type of persisting the signal is sent in different frequency. The position of a virtual axis can not be persisted with this function blocks.
See also
Persisting the axis position of a multi-turn absolute encoder with a physical axis
Requirement: The axis has a multi-turn absolute encoder.
Use the SMC3_PersistPosition POU to make the position of the physical axis persistent. The respective program runs in the motion task.
Create an instance of the SMC3_PersistPosition POU for the axis.
⇒ pp: SM3_BASIC.SMC3_PersistPosition;
Instantiate a persistent data structure of type SMC3_PersistPosition_Data.
⇒ pp_Data: SM3_BASIC.SMC3_PersistPosition_Data1;
Note
The instance is made persistent by means of a declaration as VAR_PERSISTENT or the Persistence Manager of the Application Composer.
Extend the program of the motion task so that a call of the SMC3_PersistPosition instance is implemented there.
⇒ Call implemented in CFC:
The function block is called in cycles with the motion task. The SMC3_PersistPosition instance performs the restoring of the saved position during the startup operation. In normal operation, the POU saves the actual position in the respective data structure.
See also
Persisting the axis position of single-turn absolute encoder with physical axis
Requirement: The physical axis has a single-turn absolute encoder.
Use the SMC3_PersistPositionSingleturn POU to make the position of the axis persistent. The respective program runs in the motion task. The position is displayed correctly only if the axis has not traveled any distance or only a short distance (maximum of half of the single-turn distance) between switching off and on the controller. For example, you can use a mechanical brake to do this. If the axis makes a large movement when the controller is switched off, then it receives an incorrect position. It is not possible to check by means of the POU.
Create an instance of the SMC3_PersistPositionSingleturn POU for the axis.
⇒ ppst_X: SM3_BASIC.SMC3_PersistPositionSinglturn;
Instantiate a persistent data structure of type SMC3_PersistPositionSingleturn_Data.
⇒ ppst_Data_X: SMC3_PersistPositionSingleturn_Data;
Note
The instance is made persistent by means of a declaration as VAR_PERSISTENT or the Persistence Manager of the Application Composer.
Extend the program of the motion task so that a call of the SMC3_PersistPositionSingleturn instance is implemented and the persistent data structure of type SMC_PersistPositionSingleturn_Data is passed to it.
See also
Persisting the axis position of a logical axis
Requirement: The axis is logical.
Use the SMC3_PersistPositionLogical POU to make the position of the logical axis persistent. This works only if the position of the superordinate physical axis was made persistent. The position of a virtual axis cannot be made persistent by means of this POU.
Create an instance of the SMC3_PersistLogical POU for the axis.
⇒ ppl: SM3_BASIC.SMC3_PersistPositionLogical;
Instantiate a persistent data structure of type SMC3_PersistPositionLogical_Data.
⇒ ppl_Data: SMC3_PersistPositionLogical_Data;
Note
The instance is made persistent by means of a declaration as VAR_PERSISTENT or the Persistence Manager of the Application Composer.
Extend the program of the motion task so that a call of the SMC3_PersistPositionLogical instance is implemented and the persistent data of type SMC3_PersistPositionLogical_Data is passed to it.
See also