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 ?)
check the online help,
depending on what you Need uvw or a,d,c axis..
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.
bExecute : BOOL;
piSetPosition : SMC_POSINFO;
iFrameNo : INT;
dX : LREAL;
dY : LREAL;
dZ : LREAL;
dA : LREAL;
dB : LREAL;
dC : LREAL;
dP : LREAL;
dQ : LREAL;
dU : LREAL;
dV : LREAL;
dW : LREAL;
IF bExecute THEN
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;
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":
G01 P100 F20 E30 E-30 >> That won't work for P Axis!
G01 P100 FP20 EP30 EP-30 >> That works!
You will find more information here:
Also note that you cannot use the A, B, and C (Rotary) axes together with the U, V, and W (Linear) axes.
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...
Log in to post a comment.