From a1980c083353d380d067d06cbe513bdd4b4140ff Mon Sep 17 00:00:00 2001
From: ft-Demo <fischertechnik-team@fischer.de>
Date: Wed, 7 Dec 2022 09:44:10 +0000
Subject: [PATCH] commit by robo pro coding

---
 lib/VGR_NodeRED.blockly | 1094 +++++++++++++++++++++------------------
 lib/VGR_NodeRED.py      |   32 +-
 2 files changed, 614 insertions(+), 512 deletions(-)

diff --git a/lib/VGR_NodeRED.blockly b/lib/VGR_NodeRED.blockly
index 3e59aa8..e11e9fa 100644
--- a/lib/VGR_NodeRED.blockly
+++ b/lib/VGR_NodeRED.blockly
@@ -11,16 +11,16 @@
     <variable id=",@]1]`H%P4iN9*Yg4T%0">abspos_VGR</variable>
     <variable id="-Cf53by)cg{eWXhA,VOF">else</variable>
     <variable id="Adb^5:ZVu9rZw%f`.R[I">temp</variable>
-    <variable id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</variable>
     <variable id="1R^uniMizt=l7#?^bm$c">gtyp_Setup_di_Pos_Rotate</variable>
+    <variable id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</variable>
     <variable id="Cqb+{M(e,XME%RB*;Ev:">gtyp_VGR_horizontal_Axis_di_Actual_Position</variable>
-    <variable id="3OJWAtj~{^{4@r)YOlww">pos1_discard</variable>
     <variable id="8T?$22E{er/l#84i{y5?">last_abspos_VGR</variable>
     <variable id="%{P95*?xA]_uZQlaa0L@">gtyp_VGR_vertical_Axis_di_Actual_Position</variable>
     <variable id="mvCEZ!N=009NymF/qM7c">gtyp_Setup_di_Pos_Vertical</variable>
+    <variable id="3OJWAtj~{^{4@r)YOlww">pos1_discard</variable>
     <variable id="odIsef=k6I#}*X9?xioj">gtyp_VGR_rotate_Axis_di_Actual_Position</variable>
-    <variable id="Bd!Y;KPYV:B02,xwN7tF">offset</variable>
     <variable id="_zze=bLQ.syYiP?$h%sl">gtyp_Setup_di_Pos_Horizontal</variable>
+    <variable id="Bd!Y;KPYV:B02,xwN7tF">offset</variable>
     <variable id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</variable>
   </variables>
   <block type="util_python_imports" id="hi`}CPbF(0ygDuS!:N|Z" x="0" y="0">
@@ -4158,211 +4158,259 @@
             <field name="name">moveRef_VGR_S231</field>
             <data>yk`|lbk%?d)l@/BpEX5q</data>
             <next>
-              <block type="variables_set" id="*-fCz6a#.`uZr!Ogl,)u">
-                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                <value name="VALUE">
-                  <block type="import_function_return" id="/,P`R~rT}qGvK|4BLO3b" inline="true">
-                    <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
-                    <field name="name">get_pos3_VGR_name</field>
-                    <data>h_Ywa_P,0ha-:aK+]Cvi</data>
-                    <value name="name">
-                      <block type="variables_get" id="X9=XEJ:aV^7X|U)PN.*{">
+              <block type="controls_if" id="CjvNg3VX8q$;{T9S64EZ">
+                <value name="IF0">
+                  <block type="logic_compare" id="T[Ym8WL|9+Uc+,y9Di}W">
+                    <field name="OP">EQ</field>
+                    <value name="A">
+                      <block type="variables_get" id="=;#mBTO/j5JBYs!`IJV4">
                         <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                       </block>
                     </value>
-                  </block>
-                </value>
-                <next>
-                  <block type="controls_if" id="aAWNijiI/%`2:?N#[f,q">
-                    <value name="IF0">
-                      <block type="variables_get" id="[wAwbXJ92ve@@pR[*t-D">
-                        <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                    <value name="B">
+                      <block type="text" id="L]M]IF+h8{bR.#}.P10p">
+                        <field name="TEXT">MPO</field>
                       </block>
                     </value>
-                    <statement name="DO0">
-                      <block type="variables_set" id="23pdljXNMb/aA,ixwy]R">
-                        <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
-                        <value name="VALUE">
-                          <block type="import_function_return" id="mOH*3roHo%F06kGpG-,:" inline="true">
-                            <mutation parentId=".uUiBue/+mE(]xr`2`pW"/>
-                            <field name="name">get_pos1_discard_VGR_name</field>
-                            <data>.uUiBue/+mE(]xr`2`pW</data>
-                            <value name="name">
-                              <block type="variables_get" id="pThM+1QwbADsy0ff;y$h">
-                                <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
-                              </block>
-                            </value>
+                  </block>
+                </value>
+                <statement name="DO0">
+                  <block type="variables_set" id="4Mvk1_R7W?=)1DbP^HZW">
+                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                    <value name="VALUE">
+                      <block type="import_function_return" id="UD14KUZ^4_.]8~tVU3Pe" inline="true">
+                        <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
+                        <field name="name">get_pos3_VGR_name</field>
+                        <data>h_Ywa_P,0ha-:aK+]Cvi</data>
+                        <value name="name">
+                          <block type="text" id="+)R79{SjPMN7p7yg,8,E">
+                            <field name="TEXT">HBW</field>
                           </block>
                         </value>
-                        <next>
-                          <block type="lists_setIndex" id="Vw|D2=-kfl~[MSQS^;Pc">
-                            <mutation at="true"/>
-                            <field name="MODE">SET</field>
-                            <field name="WHERE">FROM_START</field>
-                            <value name="LIST">
-                              <block type="variables_get" id="w_HbA3k~(lsj3:Gr_fxQ">
-                                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                              </block>
-                            </value>
-                            <value name="AT">
-                              <block type="math_number" id="B6u0B86,DXr;MW[mv.=@">
-                                <field name="NUM">2</field>
-                              </block>
-                            </value>
-                            <value name="TO">
-                              <block type="variables_get" id="wp`sHrQq^C-ZnG_y-)$[">
-                                <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
-                              </block>
-                            </value>
-                          </block>
-                        </next>
                       </block>
-                    </statement>
+                    </value>
                     <next>
-                      <block type="import_function_noreturn" id="M(k#w(du~PK?Dq6+Hb(D" inline="true">
+                      <block type="import_function_noreturn" id="=Z{y4Ie*BRd/V$WbfWw9" inline="true">
                         <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
                         <field name="name">moveAbs_VGR_P123_list</field>
                         <data>g,p+X7F^U[}7,B-D#p0=</data>
                         <value name="poslist">
-                          <block type="variables_get" id="N]Es+;$I?!wq{Ih!NB{}">
+                          <block type="variables_get" id="yH#LMxk{T=v9*eI?ZuvM">
                             <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                           </block>
                         </value>
-                        <next>
-                          <block type="controls_if" id="!zEqF|O-rjwDt8d8Orkn">
-                            <value name="IF0">
-                              <block type="logic_compare" id=".;WGe-qsM,7h:BbeYmw{">
-                                <field name="OP">EQ</field>
-                                <value name="A">
-                                  <block type="variables_get" id="f?H4|A_H=#6;5:LEd.`{">
+                      </block>
+                    </next>
+                  </block>
+                </statement>
+                <next>
+                  <block type="variables_set" id="*-fCz6a#.`uZr!Ogl,)u">
+                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                    <value name="VALUE">
+                      <block type="import_function_return" id="/,P`R~rT}qGvK|4BLO3b" inline="true">
+                        <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
+                        <field name="name">get_pos3_VGR_name</field>
+                        <data>h_Ywa_P,0ha-:aK+]Cvi</data>
+                        <value name="name">
+                          <block type="variables_get" id="X9=XEJ:aV^7X|U)PN.*{">
+                            <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                    <next>
+                      <block type="controls_if" id="aAWNijiI/%`2:?N#[f,q">
+                        <value name="IF0">
+                          <block type="variables_get" id="[wAwbXJ92ve@@pR[*t-D">
+                            <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                          </block>
+                        </value>
+                        <statement name="DO0">
+                          <block type="variables_set" id="23pdljXNMb/aA,ixwy]R">
+                            <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
+                            <value name="VALUE">
+                              <block type="import_function_return" id="mOH*3roHo%F06kGpG-,:" inline="true">
+                                <mutation parentId=".uUiBue/+mE(]xr`2`pW"/>
+                                <field name="name">get_pos1_discard_VGR_name</field>
+                                <data>.uUiBue/+mE(]xr`2`pW</data>
+                                <value name="name">
+                                  <block type="variables_get" id="pThM+1QwbADsy0ff;y$h">
                                     <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                                   </block>
                                 </value>
-                                <value name="B">
-                                  <block type="text" id="DrIZ%fkN^at3bhws!BSi">
-                                    <field name="TEXT">HBW</field>
+                              </block>
+                            </value>
+                            <next>
+                              <block type="lists_setIndex" id="Vw|D2=-kfl~[MSQS^;Pc">
+                                <mutation at="true"/>
+                                <field name="MODE">SET</field>
+                                <field name="WHERE">FROM_START</field>
+                                <value name="LIST">
+                                  <block type="variables_get" id="w_HbA3k~(lsj3:Gr_fxQ">
+                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                  </block>
+                                </value>
+                                <value name="AT">
+                                  <block type="math_number" id="B6u0B86,DXr;MW[mv.=@">
+                                    <field name="NUM">2</field>
+                                  </block>
+                                </value>
+                                <value name="TO">
+                                  <block type="variables_get" id="wp`sHrQq^C-ZnG_y-)$[">
+                                    <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
                                   </block>
                                 </value>
                               </block>
-                            </value>
-                            <statement name="DO0">
-                              <block type="variables_set" id="U@(TQ5PLiSN?Uw3VQmfO">
+                            </next>
+                          </block>
+                        </statement>
+                        <next>
+                          <block type="import_function_noreturn" id="M(k#w(du~PK?Dq6+Hb(D" inline="true">
+                            <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
+                            <field name="name">moveAbs_VGR_P123_list</field>
+                            <data>g,p+X7F^U[}7,B-D#p0=</data>
+                            <value name="poslist">
+                              <block type="variables_get" id="N]Es+;$I?!wq{Ih!NB{}">
                                 <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                <value name="VALUE">
-                                  <block type="import_function_return" id="8-,qq.}iw8R)2NBN~Ttv" inline="true">
-                                    <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
-                                    <field name="name">get_pos3_VGR_name</field>
-                                    <data>h_Ywa_P,0ha-:aK+]Cvi</data>
-                                    <value name="name">
-                                      <block type="variables_get" id=",(_t[YJ4|EQx[KuX.AR4">
+                              </block>
+                            </value>
+                            <next>
+                              <block type="controls_if" id="!zEqF|O-rjwDt8d8Orkn">
+                                <value name="IF0">
+                                  <block type="logic_compare" id=".;WGe-qsM,7h:BbeYmw{">
+                                    <field name="OP">EQ</field>
+                                    <value name="A">
+                                      <block type="variables_get" id="f?H4|A_H=#6;5:LEd.`{">
                                         <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                                       </block>
                                     </value>
+                                    <value name="B">
+                                      <block type="text" id="DrIZ%fkN^at3bhws!BSi">
+                                        <field name="TEXT">HBW</field>
+                                      </block>
+                                    </value>
                                   </block>
                                 </value>
-                                <next>
-                                  <block type="variables_set" id="+7Wrae!2#zd:.`gWtkEJ">
-                                    <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                <statement name="DO0">
+                                  <block type="variables_set" id="U@(TQ5PLiSN?Uw3VQmfO">
+                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                     <value name="VALUE">
-                                      <block type="import_function_return" id="FUF`eKdI(-O~G)O2_(1@" inline="true">
-                                        <mutation parentId="*bCnHG*r;b|j]^M+EX:J"/>
-                                        <field name="name">get_offset_VGR_name</field>
-                                        <data>*bCnHG*r;b|j]^M+EX:J</data>
+                                      <block type="import_function_return" id="8-,qq.}iw8R)2NBN~Ttv" inline="true">
+                                        <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
+                                        <field name="name">get_pos3_VGR_name</field>
+                                        <data>h_Ywa_P,0ha-:aK+]Cvi</data>
                                         <value name="name">
-                                          <block type="text" id="]mM*#:L6Z=1)+#DuP0h5">
-                                            <field name="TEXT">HBW_h</field>
+                                          <block type="variables_get" id=",(_t[YJ4|EQx[KuX.AR4">
+                                            <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
-                                      <block type="text_print" id="O2zy%a1*jS#X8)WjpV3y">
-                                        <value name="TEXT">
-                                          <shadow type="text">
-                                            <field name="TEXT"/>
-                                          </shadow>
-                                          <block type="variables_get" id="RKO)L5SwdX%7(vZd7BZq">
-                                            <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                      <block type="variables_set" id="+7Wrae!2#zd:.`gWtkEJ">
+                                        <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                        <value name="VALUE">
+                                          <block type="import_function_return" id="FUF`eKdI(-O~G)O2_(1@" inline="true">
+                                            <mutation parentId="*bCnHG*r;b|j]^M+EX:J"/>
+                                            <field name="name">get_offset_VGR_name</field>
+                                            <data>*bCnHG*r;b|j]^M+EX:J</data>
+                                            <value name="name">
+                                              <block type="text" id="]mM*#:L6Z=1)+#DuP0h5">
+                                                <field name="TEXT">HBW_h</field>
+                                              </block>
+                                            </value>
                                           </block>
                                         </value>
                                         <next>
-                                          <block type="lists_setIndex" id=")3h:BMJ#zmxY54G+OhRR">
-                                            <mutation at="true"/>
-                                            <field name="MODE">SET</field>
-                                            <field name="WHERE">FROM_START</field>
-                                            <value name="LIST">
-                                              <block type="variables_get" id="f@%2AS${khn[FtLGTfH=">
-                                                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                              </block>
-                                            </value>
-                                            <value name="AT">
-                                              <block type="math_number" id="D]ar/X[.pbc[nsbm*KsO">
-                                                <field name="NUM">3</field>
+                                          <block type="text_print" id="O2zy%a1*jS#X8)WjpV3y">
+                                            <value name="TEXT">
+                                              <shadow type="text">
+                                                <field name="TEXT"/>
+                                              </shadow>
+                                              <block type="variables_get" id="RKO)L5SwdX%7(vZd7BZq">
+                                                <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
                                               </block>
                                             </value>
-                                            <value name="TO">
-                                              <block type="math_arithmetic" id="F}tzSLd|5m1h(I9S9oPJ" inline="false">
-                                                <field name="OP">ADD</field>
-                                                <value name="A">
-                                                  <block type="lists_getIndex" id="@{#Ls|Rww.-}HqSul}di">
-                                                    <mutation statement="false" at="true"/>
-                                                    <field name="MODE">GET</field>
-                                                    <field name="WHERE">FROM_START</field>
-                                                    <value name="VALUE">
-                                                      <block type="variables_get" id="{$ZkOjI.1p@;s{Y~WnEQ">
-                                                        <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                                      </block>
-                                                    </value>
-                                                    <value name="AT">
-                                                      <block type="math_number" id="u#Rwb]A~!S:gX[lX)nAJ">
-                                                        <field name="NUM">3</field>
-                                                      </block>
-                                                    </value>
+                                            <next>
+                                              <block type="lists_setIndex" id=")3h:BMJ#zmxY54G+OhRR">
+                                                <mutation at="true"/>
+                                                <field name="MODE">SET</field>
+                                                <field name="WHERE">FROM_START</field>
+                                                <value name="LIST">
+                                                  <block type="variables_get" id="f@%2AS${khn[FtLGTfH=">
+                                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                   </block>
                                                 </value>
-                                                <value name="B">
-                                                  <block type="variables_get" id="r:D:=`NAqj_weeZm}Q;G">
-                                                    <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                                <value name="AT">
+                                                  <block type="math_number" id="D]ar/X[.pbc[nsbm*KsO">
+                                                    <field name="NUM">3</field>
                                                   </block>
                                                 </value>
-                                              </block>
-                                            </value>
-                                            <next>
-                                              <block type="import_function_noreturn" id="R(S-7~v91S!V;Pzs|o0." inline="true">
-                                                <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
-                                                <field name="name">moveAbs_VGR_P123_list</field>
-                                                <data>g,p+X7F^U[}7,B-D#p0=</data>
-                                                <value name="poslist">
-                                                  <block type="variables_get" id="((~@]j=KTNDbXl36/MUZ">
-                                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                                <value name="TO">
+                                                  <block type="math_arithmetic" id="F}tzSLd|5m1h(I9S9oPJ" inline="false">
+                                                    <field name="OP">ADD</field>
+                                                    <value name="A">
+                                                      <block type="lists_getIndex" id="@{#Ls|Rww.-}HqSul}di">
+                                                        <mutation statement="false" at="true"/>
+                                                        <field name="MODE">GET</field>
+                                                        <field name="WHERE">FROM_START</field>
+                                                        <value name="VALUE">
+                                                          <block type="variables_get" id="{$ZkOjI.1p@;s{Y~WnEQ">
+                                                            <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                                          </block>
+                                                        </value>
+                                                        <value name="AT">
+                                                          <block type="math_number" id="u#Rwb]A~!S:gX[lX)nAJ">
+                                                            <field name="NUM">3</field>
+                                                          </block>
+                                                        </value>
+                                                      </block>
+                                                    </value>
+                                                    <value name="B">
+                                                      <block type="variables_get" id="r:D:=`NAqj_weeZm}Q;G">
+                                                        <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                                      </block>
+                                                    </value>
                                                   </block>
                                                 </value>
                                                 <next>
-                                                  <block type="controls_if" id="K5~{qvPurd;Eh2WfmhxL">
-                                                    <mutation elseif="0" else="1"/>
-                                                    <value name="IF0">
-                                                      <block type="variables_get" id="*_`i^{-@NS`7TFf(BLf-">
-                                                        <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                                                  <block type="import_function_noreturn" id="R(S-7~v91S!V;Pzs|o0." inline="true">
+                                                    <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
+                                                    <field name="name">moveAbs_VGR_P123_list</field>
+                                                    <data>g,p+X7F^U[}7,B-D#p0=</data>
+                                                    <value name="poslist">
+                                                      <block type="variables_get" id="((~@]j=KTNDbXl36/MUZ">
+                                                        <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                       </block>
                                                     </value>
-                                                    <statement name="DO0">
-                                                      <block type="text_print" id="#rP{N)]9!MT,gMmK5|vH">
-                                                        <value name="TEXT">
-                                                          <shadow type="text" id="{61[*VKl/D7JU,yI6+/*">
-                                                            <field name="TEXT">HBW discard</field>
-                                                          </shadow>
-                                                        </value>
-                                                      </block>
-                                                    </statement>
-                                                    <statement name="ELSE">
-                                                      <block type="text_print" id="@1]T4=T`vXvK0QO.6k+4">
-                                                        <value name="TEXT">
-                                                          <shadow type="text" id="MIlk[-ViAx%oyZ!XM[CW">
-                                                            <field name="TEXT">HBW collect</field>
-                                                          </shadow>
+                                                    <next>
+                                                      <block type="controls_if" id="K5~{qvPurd;Eh2WfmhxL">
+                                                        <mutation elseif="0" else="1"/>
+                                                        <value name="IF0">
+                                                          <block type="variables_get" id="*_`i^{-@NS`7TFf(BLf-">
+                                                            <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                                                          </block>
                                                         </value>
+                                                        <statement name="DO0">
+                                                          <block type="text_print" id="#rP{N)]9!MT,gMmK5|vH">
+                                                            <value name="TEXT">
+                                                              <shadow type="text" id="{61[*VKl/D7JU,yI6+/*">
+                                                                <field name="TEXT">HBW discard</field>
+                                                              </shadow>
+                                                            </value>
+                                                          </block>
+                                                        </statement>
+                                                        <statement name="ELSE">
+                                                          <block type="text_print" id="@1]T4=T`vXvK0QO.6k+4">
+                                                            <value name="TEXT">
+                                                              <shadow type="text" id="MIlk[-ViAx%oyZ!XM[CW">
+                                                                <field name="TEXT">HBW collect</field>
+                                                              </shadow>
+                                                            </value>
+                                                          </block>
+                                                        </statement>
                                                       </block>
-                                                    </statement>
+                                                    </next>
                                                   </block>
                                                 </next>
                                               </block>
@@ -4372,151 +4420,151 @@
                                       </block>
                                     </next>
                                   </block>
-                                </next>
-                              </block>
-                            </statement>
-                            <next>
-                              <block type="procedures_callnoreturn" id="m69nvFepz(Xi-_s+Pwjh" inline="true">
-                                <mutation name="publishTopicValue_VGR">
-                                  <arg name="topic"/>
-                                  <arg name="value"/>
-                                </mutation>
-                                <value name="ARG0">
-                                  <block type="text" id="=Yi%]Say6qf^PI*7QsKA">
-                                    <field name="TEXT">gtyp_VGR/rotate_Axis/di_Target_Position</field>
-                                  </block>
-                                </value>
-                                <value name="ARG1">
-                                  <block type="lists_getIndex" id="^9/if:_#hxngN}CMzpMx">
-                                    <mutation statement="false" at="true"/>
-                                    <field name="MODE">GET</field>
-                                    <field name="WHERE">FROM_START</field>
-                                    <value name="VALUE">
-                                      <block type="variables_get" id="0}CGtRFc!q{D-$jbG1X0">
-                                        <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                      </block>
-                                    </value>
-                                    <value name="AT">
-                                      <block type="math_number" id="C?Kh~/oQ?2`*]Uz)oF8@">
-                                        <field name="NUM">1</field>
-                                      </block>
-                                    </value>
-                                  </block>
-                                </value>
+                                </statement>
                                 <next>
-                                  <block type="procedures_callnoreturn" id="u/[fr]kC}9}~,R|Tb;@j" inline="true">
+                                  <block type="procedures_callnoreturn" id="m69nvFepz(Xi-_s+Pwjh" inline="true">
                                     <mutation name="publishTopicValue_VGR">
                                       <arg name="topic"/>
                                       <arg name="value"/>
                                     </mutation>
                                     <value name="ARG0">
-                                      <block type="text" id="Cf:K:],*t=+)AJ0(,;)d">
-                                        <field name="TEXT">gtyp_VGR/vertical_Axis/di_Target_Position</field>
+                                      <block type="text" id="=Yi%]Say6qf^PI*7QsKA">
+                                        <field name="TEXT">gtyp_VGR/rotate_Axis/di_Target_Position</field>
                                       </block>
                                     </value>
                                     <value name="ARG1">
-                                      <block type="lists_getIndex" id="=6!F`osJtXDBYYV/FdP|">
+                                      <block type="lists_getIndex" id="^9/if:_#hxngN}CMzpMx">
                                         <mutation statement="false" at="true"/>
                                         <field name="MODE">GET</field>
                                         <field name="WHERE">FROM_START</field>
                                         <value name="VALUE">
-                                          <block type="variables_get" id="1xu#Lk}NV._()4Q3/8~Y">
+                                          <block type="variables_get" id="0}CGtRFc!q{D-$jbG1X0">
                                             <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                           </block>
                                         </value>
                                         <value name="AT">
-                                          <block type="math_number" id="iPUF!^h3$3Z(N?mN6#pX">
-                                            <field name="NUM">2</field>
+                                          <block type="math_number" id="C?Kh~/oQ?2`*]Uz)oF8@">
+                                            <field name="NUM">1</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
-                                      <block type="procedures_callnoreturn" id="Qtd[w|s_-YDC7dB74].t" inline="true">
+                                      <block type="procedures_callnoreturn" id="u/[fr]kC}9}~,R|Tb;@j" inline="true">
                                         <mutation name="publishTopicValue_VGR">
                                           <arg name="topic"/>
                                           <arg name="value"/>
                                         </mutation>
                                         <value name="ARG0">
-                                          <block type="text" id="rYni)SpaSjHoV(n,w5)c">
-                                            <field name="TEXT">gtyp_VGR/horizontal_Axis/di_Target_Position</field>
+                                          <block type="text" id="Cf:K:],*t=+)AJ0(,;)d">
+                                            <field name="TEXT">gtyp_VGR/vertical_Axis/di_Target_Position</field>
                                           </block>
                                         </value>
                                         <value name="ARG1">
-                                          <block type="lists_getIndex" id="|Mt)7{CU6R91tM;*ekOa">
+                                          <block type="lists_getIndex" id="=6!F`osJtXDBYYV/FdP|">
                                             <mutation statement="false" at="true"/>
                                             <field name="MODE">GET</field>
                                             <field name="WHERE">FROM_START</field>
                                             <value name="VALUE">
-                                              <block type="variables_get" id="A$zxHi/,(PgIP{_6~o)Y">
+                                              <block type="variables_get" id="1xu#Lk}NV._()4Q3/8~Y">
                                                 <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                               </block>
                                             </value>
                                             <value name="AT">
-                                              <block type="math_number" id="+wXIdq?a.3`)T-,85zO$">
-                                                <field name="NUM">3</field>
+                                              <block type="math_number" id="iPUF!^h3$3Z(N?mN6#pX">
+                                                <field name="NUM">2</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
-                                          <block type="import_function_noreturn" id="(x,NVOD;+/x?|f:_?k6K" inline="true">
-                                            <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
-                                            <field name="name">moveAbs_VGR_P123_list</field>
-                                            <data>g,p+X7F^U[}7,B-D#p0=</data>
-                                            <value name="poslist">
-                                              <block type="variables_get" id="TJCq87aoPsCkBI9vNGY[">
-                                                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                          <block type="procedures_callnoreturn" id="Qtd[w|s_-YDC7dB74].t" inline="true">
+                                            <mutation name="publishTopicValue_VGR">
+                                              <arg name="topic"/>
+                                              <arg name="value"/>
+                                            </mutation>
+                                            <value name="ARG0">
+                                              <block type="text" id="rYni)SpaSjHoV(n,w5)c">
+                                                <field name="TEXT">gtyp_VGR/horizontal_Axis/di_Target_Position</field>
                                               </block>
                                             </value>
-                                            <next>
-                                              <block type="procedures_callnoreturn" id="=hahqJm4ogGj;DWdh!Ki" inline="true">
-                                                <mutation name="publishTopicValue_VGR">
-                                                  <arg name="topic"/>
-                                                  <arg name="value"/>
-                                                </mutation>
-                                                <value name="ARG0">
-                                                  <block type="text" id="c-8yP@jQz0gSCD2eA{k=">
-                                                    <field name="TEXT">gtyp_VGR/rotate_Axis/x_Position_Reached</field>
+                                            <value name="ARG1">
+                                              <block type="lists_getIndex" id="|Mt)7{CU6R91tM;*ekOa">
+                                                <mutation statement="false" at="true"/>
+                                                <field name="MODE">GET</field>
+                                                <field name="WHERE">FROM_START</field>
+                                                <value name="VALUE">
+                                                  <block type="variables_get" id="A$zxHi/,(PgIP{_6~o)Y">
+                                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                   </block>
                                                 </value>
-                                                <value name="ARG1">
-                                                  <block type="logic_boolean" id="0/5n#sfO@C5rxLp!}-=5">
-                                                    <field name="BOOL">TRUE</field>
+                                                <value name="AT">
+                                                  <block type="math_number" id="+wXIdq?a.3`)T-,85zO$">
+                                                    <field name="NUM">3</field>
+                                                  </block>
+                                                </value>
+                                              </block>
+                                            </value>
+                                            <next>
+                                              <block type="import_function_noreturn" id="(x,NVOD;+/x?|f:_?k6K" inline="true">
+                                                <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
+                                                <field name="name">moveAbs_VGR_P123_list</field>
+                                                <data>g,p+X7F^U[}7,B-D#p0=</data>
+                                                <value name="poslist">
+                                                  <block type="variables_get" id="TJCq87aoPsCkBI9vNGY[">
+                                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                   </block>
                                                 </value>
                                                 <next>
-                                                  <block type="procedures_callnoreturn" id="(vz([GmeZOilu85Z=3c?" inline="true">
+                                                  <block type="procedures_callnoreturn" id="=hahqJm4ogGj;DWdh!Ki" inline="true">
                                                     <mutation name="publishTopicValue_VGR">
                                                       <arg name="topic"/>
                                                       <arg name="value"/>
                                                     </mutation>
                                                     <value name="ARG0">
-                                                      <block type="text" id="oGziO{3xJaay{ehA)h/(">
-                                                        <field name="TEXT">gtyp_VGR/vertical_Axis/x_Position_Reached</field>
+                                                      <block type="text" id="c-8yP@jQz0gSCD2eA{k=">
+                                                        <field name="TEXT">gtyp_VGR/rotate_Axis/x_Position_Reached</field>
                                                       </block>
                                                     </value>
                                                     <value name="ARG1">
-                                                      <block type="logic_boolean" id="sb!!udn,FYClpP0%P-#I">
+                                                      <block type="logic_boolean" id="0/5n#sfO@C5rxLp!}-=5">
                                                         <field name="BOOL">TRUE</field>
                                                       </block>
                                                     </value>
                                                     <next>
-                                                      <block type="procedures_callnoreturn" id="inXv:tA$9blOapoxp4sN" inline="true">
+                                                      <block type="procedures_callnoreturn" id="(vz([GmeZOilu85Z=3c?" inline="true">
                                                         <mutation name="publishTopicValue_VGR">
                                                           <arg name="topic"/>
                                                           <arg name="value"/>
                                                         </mutation>
                                                         <value name="ARG0">
-                                                          <block type="text" id="rW6uuQs4egn%%bB^is8b">
-                                                            <field name="TEXT">gtyp_VGR/horizontal_Axis/x_Position_Reached</field>
+                                                          <block type="text" id="oGziO{3xJaay{ehA)h/(">
+                                                            <field name="TEXT">gtyp_VGR/vertical_Axis/x_Position_Reached</field>
                                                           </block>
                                                         </value>
                                                         <value name="ARG1">
-                                                          <block type="logic_boolean" id="a{RgR/.TxWy.?2/zTm_3">
+                                                          <block type="logic_boolean" id="sb!!udn,FYClpP0%P-#I">
                                                             <field name="BOOL">TRUE</field>
                                                           </block>
                                                         </value>
+                                                        <next>
+                                                          <block type="procedures_callnoreturn" id="inXv:tA$9blOapoxp4sN" inline="true">
+                                                            <mutation name="publishTopicValue_VGR">
+                                                              <arg name="topic"/>
+                                                              <arg name="value"/>
+                                                            </mutation>
+                                                            <value name="ARG0">
+                                                              <block type="text" id="rW6uuQs4egn%%bB^is8b">
+                                                                <field name="TEXT">gtyp_VGR/horizontal_Axis/x_Position_Reached</field>
+                                                              </block>
+                                                            </value>
+                                                            <value name="ARG1">
+                                                              <block type="logic_boolean" id="a{RgR/.TxWy.?2/zTm_3">
+                                                                <field name="BOOL">TRUE</field>
+                                                              </block>
+                                                            </value>
+                                                          </block>
+                                                        </next>
                                                       </block>
                                                     </next>
                                                   </block>
@@ -4544,7 +4592,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="|~*G_kUY+FAXdyTi}gv5" x="0" y="11228">
+  <block type="procedures_defnoreturn" id="|~*G_kUY+FAXdyTi}gv5" x="0" y="11359">
     <mutation>
       <arg name="name" varid="!j[se*z1n=Y|3[5iQM{:" argid="llO00D5;24Nt1ido(RqZ"/>
       <arg name="discard" varid="#oNjF=s,7w}}N3zl|L-s" argid="zwv.RM4xI_vHVsv-@qNe"/>
@@ -4556,211 +4604,259 @@
       <block type="util_python" id="X8`u02Bm3KP$6SC*Q%{H" inline="true">
         <field name="value">logging.debug('%s %s', name, discard)</field>
         <next>
-          <block type="variables_set" id="Fw)PqVbOnyQt*?w.+eD(">
-            <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-            <value name="VALUE">
-              <block type="import_function_return" id="P25:|DzfV-GK5%EpawHq" inline="true">
-                <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
-                <field name="name">get_pos3_VGR_name</field>
-                <data>h_Ywa_P,0ha-:aK+]Cvi</data>
-                <value name="name">
-                  <block type="variables_get" id="9Gba1eVH@MZ|halXOD!m">
+          <block type="controls_if" id="#@okt}!_V`wP|%ZmF[Yg">
+            <value name="IF0">
+              <block type="logic_compare" id="uZUtwmmEiHs;6pFwx?1o">
+                <field name="OP">EQ</field>
+                <value name="A">
+                  <block type="variables_get" id="C;IUiiYrS;Nm=./QMIwn">
                     <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                   </block>
                 </value>
-              </block>
-            </value>
-            <next>
-              <block type="controls_if" id="NfOUZs$:`WMJ*_1w~#e$">
-                <value name="IF0">
-                  <block type="variables_get" id="P`]NFNx8(o)6t1_DZ$Aw">
-                    <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                <value name="B">
+                  <block type="text" id="!9Mf[%$?#VT,h)ZljEHB">
+                    <field name="TEXT">MPO</field>
                   </block>
                 </value>
-                <statement name="DO0">
-                  <block type="variables_set" id="W~(~J{mC4;k*nR%@O0li">
-                    <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
-                    <value name="VALUE">
-                      <block type="import_function_return" id="nh}Bu8KPD8Cw[v|BZ}@9" inline="true">
-                        <mutation parentId=".uUiBue/+mE(]xr`2`pW"/>
-                        <field name="name">get_pos1_discard_VGR_name</field>
-                        <data>.uUiBue/+mE(]xr`2`pW</data>
-                        <value name="name">
-                          <block type="variables_get" id="pnb]zN9|k*dp.kg.q@@@">
-                            <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
-                          </block>
-                        </value>
+              </block>
+            </value>
+            <statement name="DO0">
+              <block type="variables_set" id="Y^p@=ji2Q|li+Ot20u|z">
+                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                <value name="VALUE">
+                  <block type="import_function_return" id="Flq:;!jfc|@[$yihqfi?" inline="true">
+                    <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
+                    <field name="name">get_pos3_VGR_name</field>
+                    <data>h_Ywa_P,0ha-:aK+]Cvi</data>
+                    <value name="name">
+                      <block type="text" id=".%=3W,HIH4?_GdeMh2=6">
+                        <field name="TEXT">HBW</field>
                       </block>
                     </value>
-                    <next>
-                      <block type="lists_setIndex" id="GnU%r4Bw:p#/)h(JF41,">
-                        <mutation at="true"/>
-                        <field name="MODE">SET</field>
-                        <field name="WHERE">FROM_START</field>
-                        <value name="LIST">
-                          <block type="variables_get" id="HBSE6fz9B8vu=Uf9EBDy">
-                            <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                          </block>
-                        </value>
-                        <value name="AT">
-                          <block type="math_number" id="!hd]+!iUy5$QSf5w-``a">
-                            <field name="NUM">2</field>
-                          </block>
-                        </value>
-                        <value name="TO">
-                          <block type="variables_get" id="YRxX/@M*}SnGjW5+T!8e">
-                            <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
-                          </block>
-                        </value>
-                      </block>
-                    </next>
                   </block>
-                </statement>
+                </value>
                 <next>
-                  <block type="import_function_noreturn" id="y(-nA@HA!X!~!Wi/8nx!" inline="true">
+                  <block type="import_function_noreturn" id="XX%11@4BYOsKrm,a9^1?" inline="true">
                     <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
                     <field name="name">moveAbs_VGR_P123_list</field>
                     <data>g,p+X7F^U[}7,B-D#p0=</data>
                     <value name="poslist">
-                      <block type="variables_get" id="6K~Dp=:%E%yR$*A@EW)R">
+                      <block type="variables_get" id="jZRJR/ERVx!@]_l9gX)[">
                         <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                       </block>
                     </value>
-                    <next>
-                      <block type="controls_if" id="EdC,`PKso]^8[mPS|_.8">
-                        <value name="IF0">
-                          <block type="logic_compare" id="gk%G[ng6hcXSeNY6R8e{">
-                            <field name="OP">EQ</field>
-                            <value name="A">
-                              <block type="variables_get" id="A0f[)G[}99w8;{ld:J}~">
+                  </block>
+                </next>
+              </block>
+            </statement>
+            <next>
+              <block type="variables_set" id="Fw)PqVbOnyQt*?w.+eD(">
+                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                <value name="VALUE">
+                  <block type="import_function_return" id="P25:|DzfV-GK5%EpawHq" inline="true">
+                    <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
+                    <field name="name">get_pos3_VGR_name</field>
+                    <data>h_Ywa_P,0ha-:aK+]Cvi</data>
+                    <value name="name">
+                      <block type="variables_get" id="9Gba1eVH@MZ|halXOD!m">
+                        <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
+                      </block>
+                    </value>
+                  </block>
+                </value>
+                <next>
+                  <block type="controls_if" id="NfOUZs$:`WMJ*_1w~#e$">
+                    <value name="IF0">
+                      <block type="variables_get" id="P`]NFNx8(o)6t1_DZ$Aw">
+                        <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                      </block>
+                    </value>
+                    <statement name="DO0">
+                      <block type="variables_set" id="W~(~J{mC4;k*nR%@O0li">
+                        <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
+                        <value name="VALUE">
+                          <block type="import_function_return" id="nh}Bu8KPD8Cw[v|BZ}@9" inline="true">
+                            <mutation parentId=".uUiBue/+mE(]xr`2`pW"/>
+                            <field name="name">get_pos1_discard_VGR_name</field>
+                            <data>.uUiBue/+mE(]xr`2`pW</data>
+                            <value name="name">
+                              <block type="variables_get" id="pnb]zN9|k*dp.kg.q@@@">
                                 <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                               </block>
                             </value>
-                            <value name="B">
-                              <block type="text" id="QtRr)E;NEKNBqy{b_0G^">
-                                <field name="TEXT">HBW</field>
+                          </block>
+                        </value>
+                        <next>
+                          <block type="lists_setIndex" id="GnU%r4Bw:p#/)h(JF41,">
+                            <mutation at="true"/>
+                            <field name="MODE">SET</field>
+                            <field name="WHERE">FROM_START</field>
+                            <value name="LIST">
+                              <block type="variables_get" id="HBSE6fz9B8vu=Uf9EBDy">
+                                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                              </block>
+                            </value>
+                            <value name="AT">
+                              <block type="math_number" id="!hd]+!iUy5$QSf5w-``a">
+                                <field name="NUM">2</field>
+                              </block>
+                            </value>
+                            <value name="TO">
+                              <block type="variables_get" id="YRxX/@M*}SnGjW5+T!8e">
+                                <field name="VAR" id="3OJWAtj~{^{4@r)YOlww">pos1_discard</field>
                               </block>
                             </value>
                           </block>
-                        </value>
-                        <statement name="DO0">
-                          <block type="variables_set" id="don@9.|;!,hek`:BFs,]">
+                        </next>
+                      </block>
+                    </statement>
+                    <next>
+                      <block type="import_function_noreturn" id="y(-nA@HA!X!~!Wi/8nx!" inline="true">
+                        <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
+                        <field name="name">moveAbs_VGR_P123_list</field>
+                        <data>g,p+X7F^U[}7,B-D#p0=</data>
+                        <value name="poslist">
+                          <block type="variables_get" id="6K~Dp=:%E%yR$*A@EW)R">
                             <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                            <value name="VALUE">
-                              <block type="import_function_return" id="ui114kOTJ8Yf[qA+wvPk" inline="true">
-                                <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
-                                <field name="name">get_pos3_VGR_name</field>
-                                <data>h_Ywa_P,0ha-:aK+]Cvi</data>
-                                <value name="name">
-                                  <block type="variables_get" id=",Sq`C{M|~YFgCUgKs6nH">
+                          </block>
+                        </value>
+                        <next>
+                          <block type="controls_if" id="EdC,`PKso]^8[mPS|_.8">
+                            <value name="IF0">
+                              <block type="logic_compare" id="gk%G[ng6hcXSeNY6R8e{">
+                                <field name="OP">EQ</field>
+                                <value name="A">
+                                  <block type="variables_get" id="A0f[)G[}99w8;{ld:J}~">
                                     <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                                   </block>
                                 </value>
+                                <value name="B">
+                                  <block type="text" id="QtRr)E;NEKNBqy{b_0G^">
+                                    <field name="TEXT">HBW</field>
+                                  </block>
+                                </value>
                               </block>
                             </value>
-                            <next>
-                              <block type="variables_set" id="A0[)5Ht:*|%jAVSs@!3n">
-                                <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                            <statement name="DO0">
+                              <block type="variables_set" id="don@9.|;!,hek`:BFs,]">
+                                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                 <value name="VALUE">
-                                  <block type="import_function_return" id="Ia:JWLM4vD?QZbFv%Rb*" inline="true">
-                                    <mutation parentId="*bCnHG*r;b|j]^M+EX:J"/>
-                                    <field name="name">get_offset_VGR_name</field>
-                                    <data>*bCnHG*r;b|j]^M+EX:J</data>
+                                  <block type="import_function_return" id="ui114kOTJ8Yf[qA+wvPk" inline="true">
+                                    <mutation parentId="h_Ywa_P,0ha-:aK+]Cvi"/>
+                                    <field name="name">get_pos3_VGR_name</field>
+                                    <data>h_Ywa_P,0ha-:aK+]Cvi</data>
                                     <value name="name">
-                                      <block type="text" id="5OC+b[XE$cj=_ztR:^Lb">
-                                        <field name="TEXT">HBW_h</field>
+                                      <block type="variables_get" id=",Sq`C{M|~YFgCUgKs6nH">
+                                        <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
-                                  <block type="text_print" id="o+xeSu^!JZJ1trKX)_C?">
-                                    <value name="TEXT">
-                                      <shadow type="text" id="raFS}:j7K?OsCLl|t#|c">
-                                        <field name="TEXT"/>
-                                      </shadow>
-                                      <block type="variables_get" id="mAg^hlT!aG?_y46|^(2/">
-                                        <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                  <block type="variables_set" id="A0[)5Ht:*|%jAVSs@!3n">
+                                    <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                    <value name="VALUE">
+                                      <block type="import_function_return" id="Ia:JWLM4vD?QZbFv%Rb*" inline="true">
+                                        <mutation parentId="*bCnHG*r;b|j]^M+EX:J"/>
+                                        <field name="name">get_offset_VGR_name</field>
+                                        <data>*bCnHG*r;b|j]^M+EX:J</data>
+                                        <value name="name">
+                                          <block type="text" id="5OC+b[XE$cj=_ztR:^Lb">
+                                            <field name="TEXT">HBW_h</field>
+                                          </block>
+                                        </value>
                                       </block>
                                     </value>
                                     <next>
-                                      <block type="lists_setIndex" id="GQ:9Y6NjW2MS3mp%$ntA">
-                                        <mutation at="true"/>
-                                        <field name="MODE">SET</field>
-                                        <field name="WHERE">FROM_START</field>
-                                        <value name="LIST">
-                                          <block type="variables_get" id="JhB%)_5lgA+TlKSL^}q)">
-                                            <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                          </block>
-                                        </value>
-                                        <value name="AT">
-                                          <block type="math_number" id="-xmMa.S.v2n!p6YgO)!t">
-                                            <field name="NUM">3</field>
+                                      <block type="text_print" id="o+xeSu^!JZJ1trKX)_C?">
+                                        <value name="TEXT">
+                                          <shadow type="text" id="raFS}:j7K?OsCLl|t#|c">
+                                            <field name="TEXT"/>
+                                          </shadow>
+                                          <block type="variables_get" id="mAg^hlT!aG?_y46|^(2/">
+                                            <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
                                           </block>
                                         </value>
-                                        <value name="TO">
-                                          <block type="math_arithmetic" id="QdAx_XT?C:IBNq9,[NGL" inline="false">
-                                            <field name="OP">ADD</field>
-                                            <value name="A">
-                                              <block type="lists_getIndex" id="4_yf8sCG_JIvqOK],h;F">
-                                                <mutation statement="false" at="true"/>
-                                                <field name="MODE">GET</field>
-                                                <field name="WHERE">FROM_START</field>
-                                                <value name="VALUE">
-                                                  <block type="variables_get" id="ATI+k,|OPBAC+Sj)S$a_">
-                                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                                  </block>
-                                                </value>
-                                                <value name="AT">
-                                                  <block type="math_number" id=";AAJ^P2z^a/$$s.G!Iqi">
-                                                    <field name="NUM">3</field>
-                                                  </block>
-                                                </value>
+                                        <next>
+                                          <block type="lists_setIndex" id="GQ:9Y6NjW2MS3mp%$ntA">
+                                            <mutation at="true"/>
+                                            <field name="MODE">SET</field>
+                                            <field name="WHERE">FROM_START</field>
+                                            <value name="LIST">
+                                              <block type="variables_get" id="JhB%)_5lgA+TlKSL^}q)">
+                                                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                               </block>
                                             </value>
-                                            <value name="B">
-                                              <block type="variables_get" id="YxQrMUX*{0Z:Mc=Z|-uM">
-                                                <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                            <value name="AT">
+                                              <block type="math_number" id="-xmMa.S.v2n!p6YgO)!t">
+                                                <field name="NUM">3</field>
                                               </block>
                                             </value>
-                                          </block>
-                                        </value>
-                                        <next>
-                                          <block type="import_function_noreturn" id="Y+[6yy]`jaCeXGE?YMl|" inline="true">
-                                            <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
-                                            <field name="name">moveAbs_VGR_P123_list</field>
-                                            <data>g,p+X7F^U[}7,B-D#p0=</data>
-                                            <value name="poslist">
-                                              <block type="variables_get" id="/WrqF]w:IKwM6kLI.(AH">
-                                                <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                            <value name="TO">
+                                              <block type="math_arithmetic" id="QdAx_XT?C:IBNq9,[NGL" inline="false">
+                                                <field name="OP">ADD</field>
+                                                <value name="A">
+                                                  <block type="lists_getIndex" id="4_yf8sCG_JIvqOK],h;F">
+                                                    <mutation statement="false" at="true"/>
+                                                    <field name="MODE">GET</field>
+                                                    <field name="WHERE">FROM_START</field>
+                                                    <value name="VALUE">
+                                                      <block type="variables_get" id="ATI+k,|OPBAC+Sj)S$a_">
+                                                        <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                                      </block>
+                                                    </value>
+                                                    <value name="AT">
+                                                      <block type="math_number" id=";AAJ^P2z^a/$$s.G!Iqi">
+                                                        <field name="NUM">3</field>
+                                                      </block>
+                                                    </value>
+                                                  </block>
+                                                </value>
+                                                <value name="B">
+                                                  <block type="variables_get" id="YxQrMUX*{0Z:Mc=Z|-uM">
+                                                    <field name="VAR" id="a4AlB7bcL+7]ernQ[^Iu">HBW_h</field>
+                                                  </block>
+                                                </value>
                                               </block>
                                             </value>
                                             <next>
-                                              <block type="controls_if" id="7eqa!.%n[c5sUNi]2Wsu">
-                                                <mutation elseif="0" else="1"/>
-                                                <value name="IF0">
-                                                  <block type="variables_get" id="7!JAg[|{~UKKgl9Z$fv?">
-                                                    <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                                              <block type="import_function_noreturn" id="Y+[6yy]`jaCeXGE?YMl|" inline="true">
+                                                <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
+                                                <field name="name">moveAbs_VGR_P123_list</field>
+                                                <data>g,p+X7F^U[}7,B-D#p0=</data>
+                                                <value name="poslist">
+                                                  <block type="variables_get" id="/WrqF]w:IKwM6kLI.(AH">
+                                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                   </block>
                                                 </value>
-                                                <statement name="DO0">
-                                                  <block type="text_print" id=";U2T+p5(w{m2D-VP|Np%">
-                                                    <value name="TEXT">
-                                                      <shadow type="text" id="Q`1zbO*$v)`WQNBrq0dX">
-                                                        <field name="TEXT">HBW discard</field>
-                                                      </shadow>
-                                                    </value>
-                                                  </block>
-                                                </statement>
-                                                <statement name="ELSE">
-                                                  <block type="text_print" id="mzr0|0T[vJYU+c@^:Us-">
-                                                    <value name="TEXT">
-                                                      <shadow type="text" id="(8fUayR-Y}XOpeO.-*rh">
-                                                        <field name="TEXT">HBW collect</field>
-                                                      </shadow>
+                                                <next>
+                                                  <block type="controls_if" id="7eqa!.%n[c5sUNi]2Wsu">
+                                                    <mutation elseif="0" else="1"/>
+                                                    <value name="IF0">
+                                                      <block type="variables_get" id="7!JAg[|{~UKKgl9Z$fv?">
+                                                        <field name="VAR" id="#oNjF=s,7w}}N3zl|L-s">discard</field>
+                                                      </block>
                                                     </value>
+                                                    <statement name="DO0">
+                                                      <block type="text_print" id=";U2T+p5(w{m2D-VP|Np%">
+                                                        <value name="TEXT">
+                                                          <shadow type="text" id="Q`1zbO*$v)`WQNBrq0dX">
+                                                            <field name="TEXT">HBW discard</field>
+                                                          </shadow>
+                                                        </value>
+                                                      </block>
+                                                    </statement>
+                                                    <statement name="ELSE">
+                                                      <block type="text_print" id="mzr0|0T[vJYU+c@^:Us-">
+                                                        <value name="TEXT">
+                                                          <shadow type="text" id="(8fUayR-Y}XOpeO.-*rh">
+                                                            <field name="TEXT">HBW collect</field>
+                                                          </shadow>
+                                                        </value>
+                                                      </block>
+                                                    </statement>
                                                   </block>
-                                                </statement>
+                                                </next>
                                               </block>
                                             </next>
                                           </block>
@@ -4770,211 +4866,211 @@
                                   </block>
                                 </next>
                               </block>
-                            </next>
-                          </block>
-                        </statement>
-                        <next>
-                          <block type="variables_set" id="e*OAh7nYk|~(bZ!%prZ*">
-                            <field name="VAR" id="Bd!Y;KPYV:B02,xwN7tF">offset</field>
-                            <value name="VALUE">
-                              <block type="import_function_return" id="kCb3Hb~OY:GDGOdlzI}K" inline="true">
-                                <mutation parentId="*bCnHG*r;b|j]^M+EX:J"/>
-                                <field name="name">get_offset_VGR_name</field>
-                                <data>*bCnHG*r;b|j]^M+EX:J</data>
-                                <value name="name">
-                                  <block type="variables_get" id="nnu6:RjQAz1s.,5YhvR6">
-                                    <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
-                                  </block>
-                                </value>
-                              </block>
-                            </value>
+                            </statement>
                             <next>
-                              <block type="lists_setIndex" id="Mm]dlp-jz})}Y|prj=]~">
-                                <mutation at="true"/>
-                                <field name="MODE">SET</field>
-                                <field name="WHERE">FROM_START</field>
-                                <value name="LIST">
-                                  <block type="variables_get" id="Q_U0[7H@D:Mt;t%Dzs?0">
-                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                  </block>
-                                </value>
-                                <value name="AT">
-                                  <block type="math_number" id="-2/p)]SELqwpjZzZ{o/+">
-                                    <field name="NUM">2</field>
+                              <block type="variables_set" id="e*OAh7nYk|~(bZ!%prZ*">
+                                <field name="VAR" id="Bd!Y;KPYV:B02,xwN7tF">offset</field>
+                                <value name="VALUE">
+                                  <block type="import_function_return" id="kCb3Hb~OY:GDGOdlzI}K" inline="true">
+                                    <mutation parentId="*bCnHG*r;b|j]^M+EX:J"/>
+                                    <field name="name">get_offset_VGR_name</field>
+                                    <data>*bCnHG*r;b|j]^M+EX:J</data>
+                                    <value name="name">
+                                      <block type="variables_get" id="nnu6:RjQAz1s.,5YhvR6">
+                                        <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
+                                      </block>
+                                    </value>
                                   </block>
                                 </value>
-                                <value name="TO">
-                                  <block type="math_arithmetic" id="}KGA?WRP;=G[TM9$1!1," inline="false">
-                                    <field name="OP">ADD</field>
-                                    <value name="A">
-                                      <block type="lists_getIndex" id=";2|fTqWm+lcdQYd`6YCj">
-                                        <mutation statement="false" at="true"/>
-                                        <field name="MODE">GET</field>
-                                        <field name="WHERE">FROM_START</field>
-                                        <value name="VALUE">
-                                          <block type="variables_get" id="gN)}$@`|^cGQPG4xna2R">
-                                            <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
-                                          </block>
-                                        </value>
-                                        <value name="AT">
-                                          <block type="math_number" id="%@#9bh{JJ9xz:T-]4,;~">
-                                            <field name="NUM">2</field>
-                                          </block>
-                                        </value>
+                                <next>
+                                  <block type="lists_setIndex" id="Mm]dlp-jz})}Y|prj=]~">
+                                    <mutation at="true"/>
+                                    <field name="MODE">SET</field>
+                                    <field name="WHERE">FROM_START</field>
+                                    <value name="LIST">
+                                      <block type="variables_get" id="Q_U0[7H@D:Mt;t%Dzs?0">
+                                        <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                       </block>
                                     </value>
-                                    <value name="B">
-                                      <block type="variables_get" id="fth8b)!P6b|x!izQV_$U">
-                                        <field name="VAR" id="Bd!Y;KPYV:B02,xwN7tF">offset</field>
+                                    <value name="AT">
+                                      <block type="math_number" id="-2/p)]SELqwpjZzZ{o/+">
+                                        <field name="NUM">2</field>
                                       </block>
                                     </value>
-                                  </block>
-                                </value>
-                                <next>
-                                  <block type="util_python" id="R6A]$%LA(/go|hh71Ukj" inline="true">
-                                    <field name="value">logging.debug(pos3list)</field>
-                                    <next>
-                                      <block type="procedures_callnoreturn" id="@1E1aJOIT4A3f$@6m7fP" inline="true">
-                                        <mutation name="publishTopicValue_VGR">
-                                          <arg name="topic"/>
-                                          <arg name="value"/>
-                                        </mutation>
-                                        <value name="ARG0">
-                                          <block type="text" id="|]7+?XrlMLx+YvHKg:bw">
-                                            <field name="TEXT">gtyp_VGR/rotate_Axis/di_Target_Position</field>
-                                          </block>
-                                        </value>
-                                        <value name="ARG1">
-                                          <block type="lists_getIndex" id="Z0-L?DtbcBs@H[j-|cE)">
+                                    <value name="TO">
+                                      <block type="math_arithmetic" id="}KGA?WRP;=G[TM9$1!1," inline="false">
+                                        <field name="OP">ADD</field>
+                                        <value name="A">
+                                          <block type="lists_getIndex" id=";2|fTqWm+lcdQYd`6YCj">
                                             <mutation statement="false" at="true"/>
                                             <field name="MODE">GET</field>
                                             <field name="WHERE">FROM_START</field>
                                             <value name="VALUE">
-                                              <block type="variables_get" id="3YXo55QyByteFyBMk-qI">
+                                              <block type="variables_get" id="gN)}$@`|^cGQPG4xna2R">
                                                 <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                               </block>
                                             </value>
                                             <value name="AT">
-                                              <block type="math_number" id="hrBuk?@`+`1K@xmIyf}-">
-                                                <field name="NUM">1</field>
+                                              <block type="math_number" id="%@#9bh{JJ9xz:T-]4,;~">
+                                                <field name="NUM">2</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
+                                        <value name="B">
+                                          <block type="variables_get" id="fth8b)!P6b|x!izQV_$U">
+                                            <field name="VAR" id="Bd!Y;KPYV:B02,xwN7tF">offset</field>
+                                          </block>
+                                        </value>
+                                      </block>
+                                    </value>
+                                    <next>
+                                      <block type="util_python" id="R6A]$%LA(/go|hh71Ukj" inline="true">
+                                        <field name="value">logging.debug(pos3list)</field>
                                         <next>
-                                          <block type="procedures_callnoreturn" id="{pqIF$]{Ow9u=~:6|uCP" inline="true">
+                                          <block type="procedures_callnoreturn" id="@1E1aJOIT4A3f$@6m7fP" inline="true">
                                             <mutation name="publishTopicValue_VGR">
                                               <arg name="topic"/>
                                               <arg name="value"/>
                                             </mutation>
                                             <value name="ARG0">
-                                              <block type="text" id="E=*/T^idh#W`]7)wj0Ap">
-                                                <field name="TEXT">gtyp_VGR/vertical_Axis/di_Target_Position</field>
+                                              <block type="text" id="|]7+?XrlMLx+YvHKg:bw">
+                                                <field name="TEXT">gtyp_VGR/rotate_Axis/di_Target_Position</field>
                                               </block>
                                             </value>
                                             <value name="ARG1">
-                                              <block type="lists_getIndex" id="uwd*,K#M.%qEB]uy-YTv">
+                                              <block type="lists_getIndex" id="Z0-L?DtbcBs@H[j-|cE)">
                                                 <mutation statement="false" at="true"/>
                                                 <field name="MODE">GET</field>
                                                 <field name="WHERE">FROM_START</field>
                                                 <value name="VALUE">
-                                                  <block type="variables_get" id="W.r6js5M_[v}-)VKr]kE">
+                                                  <block type="variables_get" id="3YXo55QyByteFyBMk-qI">
                                                     <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                   </block>
                                                 </value>
                                                 <value name="AT">
-                                                  <block type="math_number" id="Wu%?@n3}j:v6SUz/AmnS">
-                                                    <field name="NUM">2</field>
+                                                  <block type="math_number" id="hrBuk?@`+`1K@xmIyf}-">
+                                                    <field name="NUM">1</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
-                                              <block type="procedures_callnoreturn" id="U@i61swV;PS.Z.9(]RU|" inline="true">
+                                              <block type="procedures_callnoreturn" id="{pqIF$]{Ow9u=~:6|uCP" inline="true">
                                                 <mutation name="publishTopicValue_VGR">
                                                   <arg name="topic"/>
                                                   <arg name="value"/>
                                                 </mutation>
                                                 <value name="ARG0">
-                                                  <block type="text" id="!.MkozkXy-}HNwAHp4.C">
-                                                    <field name="TEXT">gtyp_VGR/horizontal_Axis/di_Target_Position</field>
+                                                  <block type="text" id="E=*/T^idh#W`]7)wj0Ap">
+                                                    <field name="TEXT">gtyp_VGR/vertical_Axis/di_Target_Position</field>
                                                   </block>
                                                 </value>
                                                 <value name="ARG1">
-                                                  <block type="lists_getIndex" id="EzgopG?a/Dq3`ZuBcl%l">
+                                                  <block type="lists_getIndex" id="uwd*,K#M.%qEB]uy-YTv">
                                                     <mutation statement="false" at="true"/>
                                                     <field name="MODE">GET</field>
                                                     <field name="WHERE">FROM_START</field>
                                                     <value name="VALUE">
-                                                      <block type="variables_get" id=";uf6PlW[Gq@JC^*l)=.[">
+                                                      <block type="variables_get" id="W.r6js5M_[v}-)VKr]kE">
                                                         <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                       </block>
                                                     </value>
                                                     <value name="AT">
-                                                      <block type="math_number" id="YXfwNW/KJ,nDYJv]cKJv">
-                                                        <field name="NUM">3</field>
+                                                      <block type="math_number" id="Wu%?@n3}j:v6SUz/AmnS">
+                                                        <field name="NUM">2</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
-                                                  <block type="import_function_noreturn" id="lshNFDAiOO4Qw}LR!5*#" inline="true">
-                                                    <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
-                                                    <field name="name">moveAbs_VGR_P123_list</field>
-                                                    <data>g,p+X7F^U[}7,B-D#p0=</data>
-                                                    <value name="poslist">
-                                                      <block type="variables_get" id="J$xT^sjemWME9z`FXD}A">
-                                                        <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                                  <block type="procedures_callnoreturn" id="U@i61swV;PS.Z.9(]RU|" inline="true">
+                                                    <mutation name="publishTopicValue_VGR">
+                                                      <arg name="topic"/>
+                                                      <arg name="value"/>
+                                                    </mutation>
+                                                    <value name="ARG0">
+                                                      <block type="text" id="!.MkozkXy-}HNwAHp4.C">
+                                                        <field name="TEXT">gtyp_VGR/horizontal_Axis/di_Target_Position</field>
                                                       </block>
                                                     </value>
-                                                    <next>
-                                                      <block type="procedures_callnoreturn" id="D}gk{RAJuw]wDS3lRO#%" inline="true">
-                                                        <mutation name="publishTopicValue_VGR">
-                                                          <arg name="topic"/>
-                                                          <arg name="value"/>
-                                                        </mutation>
-                                                        <value name="ARG0">
-                                                          <block type="text" id="?*|KX|hU%[tvp(CS/4Rj">
-                                                            <field name="TEXT">gtyp_VGR/rotate_Axis/x_Position_Reached</field>
+                                                    <value name="ARG1">
+                                                      <block type="lists_getIndex" id="EzgopG?a/Dq3`ZuBcl%l">
+                                                        <mutation statement="false" at="true"/>
+                                                        <field name="MODE">GET</field>
+                                                        <field name="WHERE">FROM_START</field>
+                                                        <value name="VALUE">
+                                                          <block type="variables_get" id=";uf6PlW[Gq@JC^*l)=.[">
+                                                            <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                           </block>
                                                         </value>
-                                                        <value name="ARG1">
-                                                          <block type="logic_boolean" id="n%cj5S]J9!3eQQy{Fs}m">
-                                                            <field name="BOOL">TRUE</field>
+                                                        <value name="AT">
+                                                          <block type="math_number" id="YXfwNW/KJ,nDYJv]cKJv">
+                                                            <field name="NUM">3</field>
+                                                          </block>
+                                                        </value>
+                                                      </block>
+                                                    </value>
+                                                    <next>
+                                                      <block type="import_function_noreturn" id="lshNFDAiOO4Qw}LR!5*#" inline="true">
+                                                        <mutation parentId="g,p+X7F^U[}7,B-D#p0="/>
+                                                        <field name="name">moveAbs_VGR_P123_list</field>
+                                                        <data>g,p+X7F^U[}7,B-D#p0=</data>
+                                                        <value name="poslist">
+                                                          <block type="variables_get" id="J$xT^sjemWME9z`FXD}A">
+                                                            <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
                                                           </block>
                                                         </value>
                                                         <next>
-                                                          <block type="procedures_callnoreturn" id="zAD]liJ[5(VN,Wy#7*WW" inline="true">
+                                                          <block type="procedures_callnoreturn" id="D}gk{RAJuw]wDS3lRO#%" inline="true">
                                                             <mutation name="publishTopicValue_VGR">
                                                               <arg name="topic"/>
                                                               <arg name="value"/>
                                                             </mutation>
                                                             <value name="ARG0">
-                                                              <block type="text" id="s0z]~1{pu#d1fl*x)wk1">
-                                                                <field name="TEXT">gtyp_VGR/vertical_Axis/x_Position_Reached</field>
+                                                              <block type="text" id="?*|KX|hU%[tvp(CS/4Rj">
+                                                                <field name="TEXT">gtyp_VGR/rotate_Axis/x_Position_Reached</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG1">
-                                                              <block type="logic_boolean" id="!}I)~_bP*s-~XQO,ZOXn">
+                                                              <block type="logic_boolean" id="n%cj5S]J9!3eQQy{Fs}m">
                                                                 <field name="BOOL">TRUE</field>
                                                               </block>
                                                             </value>
                                                             <next>
-                                                              <block type="procedures_callnoreturn" id="t}DwS_VvxpHN71QC,A4V" inline="true">
+                                                              <block type="procedures_callnoreturn" id="zAD]liJ[5(VN,Wy#7*WW" inline="true">
                                                                 <mutation name="publishTopicValue_VGR">
                                                                   <arg name="topic"/>
                                                                   <arg name="value"/>
                                                                 </mutation>
                                                                 <value name="ARG0">
-                                                                  <block type="text" id="$XQB~R]jwlFnT+,bFwFn">
-                                                                    <field name="TEXT">gtyp_VGR/horizontal_Axis/x_Position_Reached</field>
+                                                                  <block type="text" id="s0z]~1{pu#d1fl*x)wk1">
+                                                                    <field name="TEXT">gtyp_VGR/vertical_Axis/x_Position_Reached</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ARG1">
-                                                                  <block type="logic_boolean" id=";N7ppQD^%nI+G,C|5FNB">
+                                                                  <block type="logic_boolean" id="!}I)~_bP*s-~XQO,ZOXn">
                                                                     <field name="BOOL">TRUE</field>
                                                                   </block>
                                                                 </value>
+                                                                <next>
+                                                                  <block type="procedures_callnoreturn" id="t}DwS_VvxpHN71QC,A4V" inline="true">
+                                                                    <mutation name="publishTopicValue_VGR">
+                                                                      <arg name="topic"/>
+                                                                      <arg name="value"/>
+                                                                    </mutation>
+                                                                    <value name="ARG0">
+                                                                      <block type="text" id="$XQB~R]jwlFnT+,bFwFn">
+                                                                        <field name="TEXT">gtyp_VGR/horizontal_Axis/x_Position_Reached</field>
+                                                                      </block>
+                                                                    </value>
+                                                                    <value name="ARG1">
+                                                                      <block type="logic_boolean" id=";N7ppQD^%nI+G,C|5FNB">
+                                                                        <field name="BOOL">TRUE</field>
+                                                                      </block>
+                                                                    </value>
+                                                                  </block>
+                                                                </next>
                                                               </block>
                                                             </next>
                                                           </block>
@@ -5006,7 +5102,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id="F$HexCMuOIT$9AI_qVvs" x="0" y="12449">
+  <block type="procedures_defreturn" id="F$HexCMuOIT$9AI_qVvs" x="0" y="12711">
     <mutation>
       <arg name="gtyp_Setup_i_Pos_Selection" varid="#ZVIt[,H@%Ms3XJhPF7y" argid=":Z@Kb]Z,6TWU+!VxK7tu"/>
     </mutation>
@@ -5477,7 +5573,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defreturn" id="qh5#?)3Al|k$c**g=-/o" x="0" y="13762">
+  <block type="procedures_defreturn" id="qh5#?)3Al|k$c**g=-/o" x="0" y="14024">
     <mutation>
       <arg name="gtyp_Setup_i_Pos_Selection" varid="#ZVIt[,H@%Ms3XJhPF7y" argid="!M3tc/|`s9q[=]i6O$a."/>
     </mutation>
diff --git a/lib/VGR_NodeRED.py b/lib/VGR_NodeRED.py
index cb671b1..0207754 100644
--- a/lib/VGR_NodeRED.py
+++ b/lib/VGR_NodeRED.py
@@ -17,32 +17,32 @@ client = None
 abspos_VGR = None
 else2 = None
 temp = None
-pos3list = None
 gtyp_Setup_di_Pos_Rotate = None
+pos3list = None
 gtyp_VGR_horizontal_Axis_di_Actual_Position = None
-pos1_discard = None
 last_abspos_VGR = None
 gtyp_VGR_vertical_Axis_di_Actual_Position = None
 gtyp_Setup_di_Pos_Vertical = None
+pos1_discard = None
 gtyp_VGR_rotate_Axis_di_Actual_Position = None
-offset = None
 gtyp_Setup_di_Pos_Horizontal = None
+offset = None
 HBW_h = None
 
 
 def initNodeRED_VGR(c):
-    global topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     client = c
 
 
 def publishTopicValue_VGR(topic, value):
-    global c, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     logging.debug('-')
     client.publish(topic, payload=value, qos=1)
 
 
 def publish_abspos_VGR():
-    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     abspos_VGR = get_abspos_VGR()
     if last_abspos_VGR[2] != abspos_VGR[2]:
         logging.debug('abspos_VGR %d %d %d', abspos_VGR[0], abspos_VGR[1], abspos_VGR[2])
@@ -60,7 +60,7 @@ def publish_abspos_VGR():
 
 
 def apply_SetupPosition_VGR(topic, value):
-    global c, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     else2 = False
     if topic == 'gtyp_VGR/di_Pos_Color_horizontal':
         set_pos3_VGR_name_num('Color Reader', 3, value)
@@ -144,7 +144,7 @@ def apply_SetupPosition_VGR(topic, value):
 
 
 def publish_SetupPosition_VGR(gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection):
-    global c, topic, value, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, topic, value, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     temp = [0, 0, 0]
     if gtyp_Setup_x_Set_Pos_Activ == 'true':
         if gtyp_Setup_i_Pos_Selection == 41:
@@ -187,7 +187,7 @@ def publish_SetupPosition_VGR(gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selec
 
 
 def publish_SetupPositionsAndOffsets_VGR():
-    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     # Color Reader
     temp = (get_pos3_VGR_name('Color Reader'))[0]
     publishTopicValue_VGR('gtyp_VGR/di_Pos_Color_rotate', temp)
@@ -277,9 +277,12 @@ def publish_SetupPositionsAndOffsets_VGR():
 
 
 def movestart_publish_abspostarget_VGR(name, discard):
-    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     logging.debug('%s', name)
     moveRef_VGR_S231()
+    if name == 'MPO':
+        pos3list = get_pos3_VGR_name('HBW')
+        moveAbs_VGR_P123_list(pos3list)
     pos3list = get_pos3_VGR_name(name)
     if discard:
         pos1_discard = get_pos1_discard_VGR_name(name)
@@ -305,8 +308,11 @@ def movestart_publish_abspostarget_VGR(name, discard):
 
 
 def movefinal_publish_abspostarget_VGR(name, discard):
-    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, gtyp_Setup_i_Pos_Selection, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     logging.debug('%s %s', name, discard)
+    if name == 'MPO':
+        pos3list = get_pos3_VGR_name('HBW')
+        moveAbs_VGR_P123_list(pos3list)
     pos3list = get_pos3_VGR_name(name)
     if discard:
         pos1_discard = get_pos1_discard_VGR_name(name)
@@ -335,7 +341,7 @@ def movefinal_publish_abspostarget_VGR(name, discard):
 
 
 def movefinal_VGR(gtyp_Setup_i_Pos_Selection):
-    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     logging.debug(gtyp_Setup_i_Pos_Selection)
     else2 = False
     if gtyp_Setup_i_Pos_Selection == 41:
@@ -370,7 +376,7 @@ def movefinal_VGR(gtyp_Setup_i_Pos_Selection):
 
 
 def movestart_VGR(gtyp_Setup_i_Pos_Selection):
-    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, name, discard, client, abspos_VGR, else2, temp, pos3list, gtyp_Setup_di_Pos_Rotate, gtyp_VGR_horizontal_Axis_di_Actual_Position, pos1_discard, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, gtyp_VGR_rotate_Axis_di_Actual_Position, offset, gtyp_Setup_di_Pos_Horizontal, HBW_h
+    global c, topic, value, gtyp_Setup_x_Set_Pos_Activ, name, discard, client, abspos_VGR, else2, temp, gtyp_Setup_di_Pos_Rotate, pos3list, gtyp_VGR_horizontal_Axis_di_Actual_Position, last_abspos_VGR, gtyp_VGR_vertical_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Vertical, pos1_discard, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal, offset, HBW_h
     logging.debug(gtyp_Setup_i_Pos_Selection)
     else2 = False
     if gtyp_Setup_i_Pos_Selection == 41:
-- 
GitLab