I have an xyz 3axis system .
How do I connect an additional Q-axis to smc_interpolator so it is also controlled bij cnc (g code)?
The xyz you connect to the SMC_interpollator Pisetposition output with Trafo_gantry 3 function blok .
How do I connect/control the additional Q-axis ? ( to smc AxisConytrolByPos in CFC programming ?)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Didn"t find any info in online help about additional axis! (only how to use in g-code, but not how to connect to smc_interpolator ).
Did I miss relevant info/pages in online help?
tried some options and used Q-axis in G-code and found out that you have to use dA2 variable from smc _ Interpolator to connect to smc_ControlAxisByPosition
The axis controled in this way does not finish a task! .
If I use for example Q25 and next step Q0 it will start but not finish the first task, but right away steps to next line .
I can solve it with G4 T.. (time delay )
Do I something wrong here or does it work this way. Did I forget to connect a feedback?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The post is kinda old ... but I think it deserves to have a solution here that might be useful for someone.
If you look at the output [piSetPosition] of the [SMC_Interpolator] block you will see that it is a structure that contains the position of the axes (dX, dY, dZ ...), so just create a block to pull the values ​​out and then point them to each [SMC_ControlAxisByPos], such as SMC_TRAFO_ blocks does.
For example:
FUNCTION_BLOCKmyCNCPositionConverterVAR_INPUTEND_VARVAR_INPUT
  bExecute : BOOL;
  piSetPosition : SMC_POSINFO;END_VARVAR_OUTPUT
  iFrameNo : INT;
  dX : LREAL;
  dY : LREAL;
  dZ : LREAL;
  dA : LREAL;
  dB : LREAL;
  dC : LREAL;
  dP : LREAL;
  dQ : LREAL;
  dU : LREAL;
  dV : LREAL;
  dW : LREAL;END_VARIFbExecuteTHEN
  dX :=piSetPosition.dX;
  dY :=piSetPosition.dY;
  dZ :=piSetPosition.dZ;
  dA :=piSetPosition.dA;
  dB :=piSetPosition.dB;
  dC :=piSetPosition.dC;
  dP :=piSetPosition.dA1;
  dQ :=piSetPosition.dA2;
  dU :=piSetPosition.dA3;
  dV :=piSetPosition.dA4;
  dW :=piSetPosition.dA5;
  iFrameNo :=piSetPosition.iFrameNo;  END_IF
Another thing to note is that the auxiliary axes (A, B, C, P, Q, U, V and W) have unique speed and ramp settings, ie using the F20 command on one line of G code will specify the speed X, Y and Z axes only (with CNC in 3D mode). For example, to set the speed for the P axis, you have to use "FP20":
G01P100F20E30E-30>>Thatwon't work for P Axis!G01P100FP20EP30EP-30>>Thatworks!
Question
I have an xyz 3axis system .
How do I connect an additional Q-axis to smc_interpolator so it is also controlled bij cnc (g code)?
The xyz you connect to the SMC_interpollator Pisetposition output with Trafo_gantry 3 function blok .
How do I connect/control the additional Q-axis ? ( to smc AxisConytrolByPos in CFC programming ?)
Hi,
check the online help,
depending on what you Need uvw or a,d,c axis..
BR
Edwin
Didn"t find any info in online help about additional axis! (only how to use in g-code, but not how to connect to smc_interpolator ).
Did I miss relevant info/pages in online help?
tried some options and used Q-axis in G-code and found out that you have to use dA2 variable from smc _ Interpolator to connect to smc_ControlAxisByPosition
The axis controled in this way does not finish a task! .
If I use for example Q25 and next step Q0 it will start but not finish the first task, but right away steps to next line .
I can solve it with G4 T.. (time delay )
Do I something wrong here or does it work this way. Did I forget to connect a feedback?
The post is kinda old ... but I think it deserves to have a solution here that might be useful for someone.
If you look at the output [piSetPosition] of the [SMC_Interpolator] block you will see that it is a structure that contains the position of the axes (dX, dY, dZ ...), so just create a block to pull the values ​​out and then point them to each [SMC_ControlAxisByPos], such as SMC_TRAFO_ blocks does.
For example:
Another thing to note is that the auxiliary axes (A, B, C, P, Q, U, V and W) have unique speed and ramp settings, ie using the F20 command on one line of G code will specify the speed X, Y and Z axes only (with CNC in 3D mode). For example, to set the speed for the P axis, you have to use "FP20":
You will find more information here:
https://help.codesys.com/webapp/_sm_cnc_din66025_basics;product=codesys_softmotion;version=4.6.0.0
Also note that you cannot use the A, B, and C (Rotary) axes together with the U, V, and W (Linear) axes.
https://help.codesys.com/webapp/_sm_cnc_din66025_additional_axis;product=codesys_softmotion;version=4.6.0.0
The documentation really is a bit complicated, and this is based on the tests I did, maybe someone has another way of doing it or other opinion...
Thank you! This help me too.