How to Switch the Coordinate System

The PCS coordinate system allows to move the group in relation to a certain product workspace and not just in relation to the machines coordinates. It is also possible to follow a moving product by utilizing the PCS coordinate system. And move it continuously.

Available Function Blocks for doing so
Function Block Step Activation time Used data format Dynamic From ➙ To
MCA_SetCoordinateTransformation Step 1 Enable Matrix Yes MCS ➙ PCS
MC_SetCoordinateTransform Step 1 Execute Matrix While Execute=true MCS ➙ PCS
MCA_SetDynamicFollower Step 2 Enable Translation/Rotation Yes PCS ➙ PCS’
MC_SetCartesianTransform Step 2 Execute Translation/Rotation While Execute=true PCS ➙ PCS’

Activation time

The Function Blocks with input Enable will be activated immediately with Enable=TRUE. The Function Blocks with “Execute” will be enabled with the next movement after Execute=TRUE. The Function Blocks with “Enable” will be deactivated with Enable=FALSE. The Function Blocks with “Execute” will be deactivated when an other transformation is activated.

Step

Any step 2 transformation can just be active while a step 1 transformation is in place. The step 1 transformation Function Blocks will allow dynamic transformation while Execute=TRUE. “Frozen” values will be used with Execute=FALSE after once activated.

It is possible to do the transformation in 2 steps.

Step 1 is a precondition for any of the step 2 Funciton Blocks. The matrix used in step 1 is a more complete way to setup a PCS coordinate system, as it would also allow modifying the scaling for any axis in addition to translation and rotation. The forward and inverse matrix can be gained by using the COMC_TeachCartesianTransformation Function Block.

It is also possible to use the matrix in a dynamic way, e.g. modifying the values on the fly, but as usually the dynamic requirement is restricted to a specific translation or rotation, a step 2 Function Block can be used for this, once the PCS system has been set up.

../_images/9fad9202e3086b390a331390002e267f

The step 2 Function Blocks allow to use translation vectors in X, Y, Z direction and rotation angles for a rotation around X, Y, Z coordinate axis.

../_images/19c47913e30b54ea0a331390007dedf5

This transformation would modify the actual position as follows, when it is applied to the group in StandStill with the given parameter.

  PCS, PCS’ PCS, PCS’
X 0, 0 0, -18
Y 0, 0 0, 10
Z 0, 0 0, 0

A group-movement to position 0,0,0 will move the group to the origin of the new PCS coordinate system.

When the Function Block MCA_SetDynamicFollower is enabled with TransX=0 and TransY=0 and the values are applied to the activated Function Block, the group will keep its PCS position constant and follow the translation. This will result in a real movement and modify the ACS and MCS positions.

  PCS, PCS’ PCS, PCS’
X 0, 0 18, 0
Y 0, 0 -10, 0
Z 0, 0 0, 0

When an additional rotation is applied (in this case RotAngleZ), this rotation is done with respect to the original PCS coordinate system. When a rotation should be done related to the “new” PCS’ system, the translation vector has to be applied to the matrix which builds the PCS system.

../_images/9bf8839fe30e2bed0a33139000c94bb9
../_images/b1c97bb3e31c7fd80a33139001a13325

In the forward matrix, the values a,b,c match –TransX, -TransY and –TransZ. In the inverse matrix, the values a,b,c match TransX,TransY and TransZ.