<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to control additional axis with smc_interpolator</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/</id><updated>2021-06-04T09:08:54.506000Z</updated><subtitle>Recent posts to control additional axis with smc_interpolator</subtitle><entry><title>control additional axis with smc_interpolator</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/?limit=25#4066/d1f1" rel="alternate"/><published>2021-06-04T09:08:54.506000Z</published><updated>2021-06-04T09:08:54.506000Z</updated><author><name>getdone</name><uri>https://forge.codesys.com/u/getdone/</uri></author><id>https://forge.codesys.com689885a6f2ab3b7b68a1b9dc1f1b31e2c91335fd</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you! This help me too.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>control additional axis with smc_interpolator</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/?limit=25#4066" rel="alternate"/><published>2020-02-27T18:30:04.770000Z</published><updated>2020-02-27T18:30:04.770000Z</updated><author><name>dwpessoa</name><uri>https://forge.codesys.com/u/dwpessoa/</uri></author><id>https://forge.codesys.com5474b4f7e366645641f1a38c6341da4d0b84a423</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The post is kinda old ... but I think it deserves to have a solution here that might be useful for someone.   &lt;/p&gt;
&lt;p&gt;If you look at the output &lt;span&gt;[piSetPosition]&lt;/span&gt; of the &lt;span&gt;[SMC_Interpolator]&lt;/span&gt; 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 &lt;span&gt;[SMC_ControlAxisByPos]&lt;/span&gt;, such as SMC_TRAFO_ blocks does.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;FUNCTION_BLOCK&lt;/span&gt; &lt;span class="nv"&gt;myCNCPositionConverter&lt;/span&gt;
&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
   &lt;span class="nv"&gt;bExecute&lt;/span&gt; : &lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;piSetPosition&lt;/span&gt; : &lt;span class="nv"&gt;SMC_POSINFO&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR_OUTPUT&lt;/span&gt;
   &lt;span class="nv"&gt;iFrameNo&lt;/span&gt; : &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;; &lt;/span&gt;
   &lt;span class="nv"&gt;dX&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dY&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dZ&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dA&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dB&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dC&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dP&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dQ&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dU&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dV&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dW&lt;/span&gt; : &lt;span class="nv"&gt;LREAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;bExecute&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;dX&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dX&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dY&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dY&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dZ&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dZ&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dA&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dA&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dB&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dB&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dC&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dC&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dP&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dA1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dQ&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dA2&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dU&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dA3&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dV&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dA4&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dW&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;dA5&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;iFrameNo&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;piSetPosition&lt;/span&gt;.&lt;span class="nv"&gt;iFrameNo&lt;/span&gt;&lt;span class="c1"&gt;;   &lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;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":&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;G01&lt;/span&gt; &lt;span class="nv"&gt;P100&lt;/span&gt; &lt;span class="nv"&gt;F20&lt;/span&gt; &lt;span class="nv"&gt;E30&lt;/span&gt; &lt;span class="nv"&gt;E&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;That&lt;/span&gt; &lt;span class="nv"&gt;won&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;t work for P Axis!&lt;/span&gt;
&lt;span class="nv"&gt;G01&lt;/span&gt; &lt;span class="nv"&gt;P100&lt;/span&gt; &lt;span class="nv"&gt;FP20&lt;/span&gt; &lt;span class="nv"&gt;EP30&lt;/span&gt; &lt;span class="nv"&gt;EP&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;That&lt;/span&gt; &lt;span class="nv"&gt;works&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;You will find more information here:&lt;br/&gt;
&lt;a class="" href="https://help.codesys.com/webapp/_sm_cnc_din66025_basics;product=codesys_softmotion;version=4.6.0.0" rel="nofollow"&gt;https://help.codesys.com/webapp/_sm_cnc_din66025_basics;product=codesys_softmotion;version=4.6.0.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also note that you cannot use the A, B, and C (Rotary) axes together with the U, V, and W (Linear) axes.&lt;br/&gt;
&lt;a class="" href="https://help.codesys.com/webapp/_sm_cnc_din66025_additional_axis;product=codesys_softmotion;version=4.6.0.0" rel="nofollow"&gt;https://help.codesys.com/webapp/_sm_cnc_din66025_additional_axis;product=codesys_softmotion;version=4.6.0.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;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...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>control additional axis with smc_interpolator</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/?limit=25#feb0" rel="alternate"/><published>2020-02-27T18:30:01.521000Z</published><updated>2020-02-27T18:30:01.521000Z</updated><author><name>daussiny</name><uri>https://forge.codesys.com/u/daussiny/</uri></author><id>https://forge.codesys.com0bf66e4d11ea5980b6f319839361aa8b1995577a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;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 ). &lt;br/&gt;
Did I miss relevant info/pages in online  help?&lt;/p&gt;
&lt;p&gt;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 &lt;/p&gt;
&lt;p&gt;The axis controled in this way does not finish a task! .&lt;br/&gt;
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 .&lt;br/&gt;
I can solve it with G4 T.. (time delay ) &lt;/p&gt;
&lt;p&gt;Do  I something wrong here  or does  it work this way. Did  I  forget to connect a feedback?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>control additional axis with smc_interpolator</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/?limit=25#c6af" rel="alternate"/><published>2020-02-27T18:30:00.386000Z</published><updated>2020-02-27T18:30:00.386000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.comf8960c854dafd1454097723141877daf1c2d4d93</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br/&gt;
check the online help,&lt;br/&gt;
depending on what you Need uvw or  a,d,c axis..&lt;/p&gt;
&lt;p&gt;BR&lt;br/&gt;
Edwin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>control additional axis with smc_interpolator</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/52a9654deb/?limit=25#6c05" rel="alternate"/><published>2020-02-27T18:29:57.203000Z</published><updated>2020-02-27T18:29:57.203000Z</updated><author><name>daussiny</name><uri>https://forge.codesys.com/u/daussiny/</uri></author><id>https://forge.codesys.com998d9f74306b9cb2ac8059c1ec03d9e000c852b3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Question &lt;/p&gt;
&lt;p&gt;I have  an xyz 3axis  system .&lt;br/&gt;
How  do I connect an additional Q-axis to  smc_interpolator so it is also controlled bij  cnc (g code)?&lt;/p&gt;
&lt;p&gt;The  xyz you connect to the SMC_interpollator Pisetposition output with Trafo_gantry 3  function blok .&lt;br/&gt;
How do I connect/control the additional Q-axis ?    ( to smc AxisConytrolByPos   in CFC programming ?)&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>