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

---
 lib/VGR_Axes1Ref.blockly | 785 +++++++++++++++++++--------------------
 lib/VGR_Axes1Ref.py      |  54 ++-
 lib/VGR_NodeRED.blockly  | 699 ++++++++++++++++++++++++----------
 lib/VGR_NodeRED.py       |  50 ++-
 4 files changed, 953 insertions(+), 635 deletions(-)

diff --git a/lib/VGR_Axes1Ref.blockly b/lib/VGR_Axes1Ref.blockly
index 52aa1e7..9d07414 100644
--- a/lib/VGR_Axes1Ref.blockly
+++ b/lib/VGR_Axes1Ref.blockly
@@ -21,7 +21,6 @@
     <variable id="c09d!l?!$Im2P8N=Y!T_">listnameoffset_VGR</variable>
     <variable id="[/X1-j5t`Ur~pch$r@9i">i</variable>
     <variable id="n6FVA}u`L/*(~6{r-bC6">abspos_VGR</variable>
-    <variable id=":saLi7L@W88|;WP`6@l#">lockNFC</variable>
     <variable id="Y`i*njopVbaX[yS9Q.dc">p1234</variable>
     <variable id="Q!A[!/|mP^e=dhg3)JO@">p12</variable>
     <variable id="!ye99wyTM|JQuWR_Y_BI">temp</variable>
@@ -51,438 +50,426 @@
           <block type="util_python" id="!OC2c1M|4.odxRq9Nxxy" inline="true">
             <field name="value">lockVGR = threading.RLock() #https://stackoverflow.com/questions/28017535/do-i-have-to-lock-all-functions-that-calls-to-one-or-more-locked-function-for-mu</field>
             <next>
-              <block type="variables_set" id="z,fjrA2vyq}0KmP_@DP2">
-                <field name="VAR" id=":saLi7L@W88|;WP`6@l#">lockNFC</field>
+              <block type="variables_set" id="%OQO;*%keigvkk%+#2]-">
+                <field name="VAR" id="R4q~a]KJFLotAriBrC$`">poslist_VGR_defaults</field>
                 <value name="VALUE">
-                  <block type="import_function_return" id="b}[TGgC}I.QpAQ)%o7ej" disabled="true">
-                    <mutation parentId="y%zg8Hing~Mcl54p^cC@"/>
-                    <field name="name">get_lock_NFC</field>
-                    <data>y%zg8Hing~Mcl54p^cC@</data>
-                  </block>
-                </value>
-                <next>
-                  <block type="variables_set" id="%OQO;*%keigvkk%+#2]-">
-                    <field name="VAR" id="R4q~a]KJFLotAriBrC$`">poslist_VGR_defaults</field>
-                    <value name="VALUE">
-                      <block type="lists_create_with" id="3U`2%!U9!qpfoyHZ{S0~">
-                        <mutation items="10"/>
+                  <block type="lists_create_with" id="3U`2%!U9!qpfoyHZ{S0~">
+                    <mutation items="10"/>
+                    <value name="ADD0">
+                      <block type="lists_create_with" id="p|sOwgga`zU]w*b3_H+H" inline="true">
+                        <mutation items="4"/>
                         <value name="ADD0">
-                          <block type="lists_create_with" id="p|sOwgga`zU]w*b3_H+H" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="F#`T(k]LxAuj~;EE.NpD">
-                                <field name="TEXT">Color Reader</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="IU[OoEfA;@1aymXCNY)o">
-                                <field name="NUM">107</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="%W?AvbAm,,#s{{*FZ!xB">
-                                <field name="NUM">645</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="A?L=IH20*j]cNKJR/$c$">
-                                <field name="NUM">40</field>
-                              </block>
-                            </value>
+                          <block type="text" id="F#`T(k]LxAuj~;EE.NpD">
+                            <field name="TEXT">Color Reader</field>
                           </block>
                         </value>
                         <value name="ADD1">
-                          <block type="lists_create_with" id="IOTI_xgn_OxwN=i{CvU{" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="~+6o@M|%?K+]VCjxjr13">
-                                <field name="TEXT">DSI</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="uG`:3W2.R#(PfX~f[;El">
-                                <field name="NUM">5</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="%%43.h;qPuD1[]8s)SQW">
-                                <field name="NUM">752</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="nnzzZuuNrc[wNJ`YDzT?">
-                                <field name="NUM">5</field>
-                              </block>
-                            </value>
+                          <block type="math_number" id="IU[OoEfA;@1aymXCNY)o">
+                            <field name="NUM">107</field>
                           </block>
                         </value>
                         <value name="ADD2">
-                          <block type="lists_create_with" id="Dk:#s2;zy.Vj%6zxV}0," inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="7yg*|YvOz%-T=s=mw:e8">
-                                <field name="TEXT">DSO</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="xTLAxUdkL;QB#VR/`eD0">
-                                <field name="NUM">247</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id=";:kCYpgK/Zv|a{a0RfwR">
-                                <field name="NUM">290</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="xUQ$yGaRFS.cgiTKBBUS">
-                                <field name="NUM">530</field>
-                              </block>
-                            </value>
+                          <block type="math_number" id="%W?AvbAm,,#s{{*FZ!xB">
+                            <field name="NUM">645</field>
                           </block>
                         </value>
                         <value name="ADD3">
-                          <block type="lists_create_with" id="|b;Y$N$Ur3lqP}/a?!r+" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="e49ew)@+@A+4KW1I]2FX">
-                                <field name="TEXT">HBW</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="^u!`=)0Ti/?!(?3+D}cR">
-                                <field name="NUM">1395</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="5W1C.|t{x/T?:{Z6qX32">
-                                <field name="NUM">0</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id=".@dinoz]A]mt@Y0}@kn5">
-                                <field name="NUM">0</field>
-                              </block>
-                            </value>
+                          <block type="math_number" id="A?L=IH20*j]cNKJR/$c$">
+                            <field name="NUM">40</field>
                           </block>
                         </value>
-                        <value name="ADD4">
-                          <block type="lists_create_with" id="NGgOq*V5hzenq*qfgi?_" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="byk74;|`:OGb/A8Vh!lF">
-                                <field name="TEXT">MPO</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="X#W%g)X}lDPW0z(np5p3">
-                                <field name="NUM">911</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="3zd,t09`)TKNzuvj//s3">
-                                <field name="NUM">0</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="!e6ole;j{$@qJC:$@3qK">
-                                <field name="NUM">850</field>
-                              </block>
-                            </value>
+                      </block>
+                    </value>
+                    <value name="ADD1">
+                      <block type="lists_create_with" id="IOTI_xgn_OxwN=i{CvU{" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="~+6o@M|%?K+]VCjxjr13">
+                            <field name="TEXT">DSI</field>
                           </block>
                         </value>
-                        <value name="ADD5">
-                          <block type="lists_create_with" id="Y=l]^E`$!N(Of)[6~FZF" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="FoYkx%9)u-2WQS6?w3_h">
-                                <field name="TEXT">NFC</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="h-j5a4NoEhY5!ExvXa~B">
-                                <field name="NUM">180</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="`2z%ziH30XdEv1|+j-W#">
-                                <field name="NUM">643</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="Zq,E~MP}G9+VRy/KT%hf">
-                                <field name="NUM">230</field>
-                              </block>
-                            </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="uG`:3W2.R#(PfX~f[;El">
+                            <field name="NUM">5</field>
                           </block>
                         </value>
-                        <value name="ADD6">
-                          <block type="lists_create_with" id="BA@#l0st{sv~4}x8Iqbt" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="G-k)dO[d3Mub{.@;zURz">
-                                <field name="TEXT">NiO</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="eEZT8l=#5.SOZ@j|g})#">
-                                <field name="NUM">300</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="X9V.n(ZxvdKme2W*,HYc">
-                                <field name="NUM">400</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="sJvFVq(}-]/o9cxg_v*W">
-                                <field name="NUM">0</field>
-                              </block>
-                            </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="%%43.h;qPuD1[]8s)SQW">
+                            <field name="NUM">752</field>
                           </block>
                         </value>
-                        <value name="ADD7">
-                          <block type="lists_create_with" id="a-B`P@FF%Hx|uq2Y4{Fi" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="bXBAWN|e:ecGwEex|Fm{">
-                                <field name="TEXT">SLD blue</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="2E*y1o|/|{T|*lMZE*P?">
-                                <field name="NUM">304</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="wbIkiPX9$B[;#Ca7:GOQ">
-                                <field name="NUM">835</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="Ua+uK`Ye,YvsH/.|!`;`">
-                                <field name="NUM">579</field>
-                              </block>
-                            </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="nnzzZuuNrc[wNJ`YDzT?">
+                            <field name="NUM">5</field>
                           </block>
                         </value>
-                        <value name="ADD8">
-                          <block type="lists_create_with" id="Kk$YrVCs[W`lBJyPh`!f" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="E!b*E~ZBDrkLj8Y!nQvI">
-                                <field name="TEXT">SLD red</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="PV}o:leqB~F*z@)JhjrV">
-                                <field name="NUM">371</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="2{!l;t=p*`I8Y^9eqy_)">
-                                <field name="NUM">835</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="8JS=ltTd,XL$.0Z_62,k">
-                                <field name="NUM">418</field>
-                              </block>
-                            </value>
+                      </block>
+                    </value>
+                    <value name="ADD2">
+                      <block type="lists_create_with" id="Dk:#s2;zy.Vj%6zxV}0," inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="7yg*|YvOz%-T=s=mw:e8">
+                            <field name="TEXT">DSO</field>
                           </block>
                         </value>
-                        <value name="ADD9">
-                          <block type="lists_create_with" id=";Vu;Jv/zskG,r}_dXM+;" inline="true">
-                            <mutation items="4"/>
-                            <value name="ADD0">
-                              <block type="text" id="5iGkE#GtpJS.:4X;Yn}c">
-                                <field name="TEXT">SLD white</field>
-                              </block>
-                            </value>
-                            <value name="ADD1">
-                              <block type="math_number" id="v$3BYZh0MkH!/^1{0QDA">
-                                <field name="NUM">450</field>
-                              </block>
-                            </value>
-                            <value name="ADD2">
-                              <block type="math_number" id="c}4wcZz@c/h5o*58|a5f">
-                                <field name="NUM">835</field>
-                              </block>
-                            </value>
-                            <value name="ADD3">
-                              <block type="math_number" id="iFER2_vDe?+1RnO,}KII">
-                                <field name="NUM">360</field>
-                              </block>
-                            </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="xTLAxUdkL;QB#VR/`eD0">
+                            <field name="NUM">247</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id=";:kCYpgK/Zv|a{a0RfwR">
+                            <field name="NUM">290</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="xUQ$yGaRFS.cgiTKBBUS">
+                            <field name="NUM">530</field>
                           </block>
                         </value>
                       </block>
                     </value>
-                    <next>
-                      <block type="variables_set" id="kVtcA@Q;fZyIxm+OuIG?">
-                        <field name="VAR" id="C-!9X}JCG/#RK74_1Vp?">poslist_VGR</field>
-                        <value name="VALUE">
-                          <block type="variables_get" id="=,,M4:,2#!!;grZG6]xX">
-                            <field name="VAR" id="R4q~a]KJFLotAriBrC$`">poslist_VGR_defaults</field>
+                    <value name="ADD3">
+                      <block type="lists_create_with" id="|b;Y$N$Ur3lqP}/a?!r+" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="e49ew)@+@A+4KW1I]2FX">
+                            <field name="TEXT">HBW</field>
                           </block>
                         </value>
-                        <next>
-                          <block type="variables_set" id="=53Y1,__BBWW*YBQzS/-">
-                            <field name="VAR" id="a-wqL?wnhD3{`@tU(Bc|">listnamepos1_discard_VGR_defaults</field>
-                            <value name="VALUE">
-                              <block type="lists_create_with" id="(qJ-IXGT9Bs%1F|G{E2=">
-                                <mutation items="3"/>
+                        <value name="ADD1">
+                          <block type="math_number" id="^u!`=)0Ti/?!(?3+D}cR">
+                            <field name="NUM">1395</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="5W1C.|t{x/T?:{Z6qX32">
+                            <field name="NUM">0</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id=".@dinoz]A]mt@Y0}@kn5">
+                            <field name="NUM">0</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                    <value name="ADD4">
+                      <block type="lists_create_with" id="NGgOq*V5hzenq*qfgi?_" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="byk74;|`:OGb/A8Vh!lF">
+                            <field name="TEXT">MPO</field>
+                          </block>
+                        </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="X#W%g)X}lDPW0z(np5p3">
+                            <field name="NUM">911</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="3zd,t09`)TKNzuvj//s3">
+                            <field name="NUM">0</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="!e6ole;j{$@qJC:$@3qK">
+                            <field name="NUM">850</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                    <value name="ADD5">
+                      <block type="lists_create_with" id="Y=l]^E`$!N(Of)[6~FZF" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="FoYkx%9)u-2WQS6?w3_h">
+                            <field name="TEXT">NFC</field>
+                          </block>
+                        </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="h-j5a4NoEhY5!ExvXa~B">
+                            <field name="NUM">180</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="`2z%ziH30XdEv1|+j-W#">
+                            <field name="NUM">643</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="Zq,E~MP}G9+VRy/KT%hf">
+                            <field name="NUM">230</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                    <value name="ADD6">
+                      <block type="lists_create_with" id="BA@#l0st{sv~4}x8Iqbt" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="G-k)dO[d3Mub{.@;zURz">
+                            <field name="TEXT">NiO</field>
+                          </block>
+                        </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="eEZT8l=#5.SOZ@j|g})#">
+                            <field name="NUM">300</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="X9V.n(ZxvdKme2W*,HYc">
+                            <field name="NUM">400</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="sJvFVq(}-]/o9cxg_v*W">
+                            <field name="NUM">0</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                    <value name="ADD7">
+                      <block type="lists_create_with" id="a-B`P@FF%Hx|uq2Y4{Fi" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="bXBAWN|e:ecGwEex|Fm{">
+                            <field name="TEXT">SLD blue</field>
+                          </block>
+                        </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="2E*y1o|/|{T|*lMZE*P?">
+                            <field name="NUM">304</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="wbIkiPX9$B[;#Ca7:GOQ">
+                            <field name="NUM">835</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="Ua+uK`Ye,YvsH/.|!`;`">
+                            <field name="NUM">579</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                    <value name="ADD8">
+                      <block type="lists_create_with" id="Kk$YrVCs[W`lBJyPh`!f" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="E!b*E~ZBDrkLj8Y!nQvI">
+                            <field name="TEXT">SLD red</field>
+                          </block>
+                        </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="PV}o:leqB~F*z@)JhjrV">
+                            <field name="NUM">371</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="2{!l;t=p*`I8Y^9eqy_)">
+                            <field name="NUM">835</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="8JS=ltTd,XL$.0Z_62,k">
+                            <field name="NUM">418</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                    <value name="ADD9">
+                      <block type="lists_create_with" id=";Vu;Jv/zskG,r}_dXM+;" inline="true">
+                        <mutation items="4"/>
+                        <value name="ADD0">
+                          <block type="text" id="5iGkE#GtpJS.:4X;Yn}c">
+                            <field name="TEXT">SLD white</field>
+                          </block>
+                        </value>
+                        <value name="ADD1">
+                          <block type="math_number" id="v$3BYZh0MkH!/^1{0QDA">
+                            <field name="NUM">450</field>
+                          </block>
+                        </value>
+                        <value name="ADD2">
+                          <block type="math_number" id="c}4wcZz@c/h5o*58|a5f">
+                            <field name="NUM">835</field>
+                          </block>
+                        </value>
+                        <value name="ADD3">
+                          <block type="math_number" id="iFER2_vDe?+1RnO,}KII">
+                            <field name="NUM">360</field>
+                          </block>
+                        </value>
+                      </block>
+                    </value>
+                  </block>
+                </value>
+                <next>
+                  <block type="variables_set" id="kVtcA@Q;fZyIxm+OuIG?">
+                    <field name="VAR" id="C-!9X}JCG/#RK74_1Vp?">poslist_VGR</field>
+                    <value name="VALUE">
+                      <block type="variables_get" id="=,,M4:,2#!!;grZG6]xX">
+                        <field name="VAR" id="R4q~a]KJFLotAriBrC$`">poslist_VGR_defaults</field>
+                      </block>
+                    </value>
+                    <next>
+                      <block type="variables_set" id="=53Y1,__BBWW*YBQzS/-">
+                        <field name="VAR" id="a-wqL?wnhD3{`@tU(Bc|">listnamepos1_discard_VGR_defaults</field>
+                        <value name="VALUE">
+                          <block type="lists_create_with" id="(qJ-IXGT9Bs%1F|G{E2=">
+                            <mutation items="3"/>
+                            <value name="ADD0">
+                              <block type="lists_create_with" id="1Lz;Q1-Pdyx4eIK~o*yd" inline="true">
+                                <mutation items="2"/>
                                 <value name="ADD0">
-                                  <block type="lists_create_with" id="1Lz;Q1-Pdyx4eIK~o*yd" inline="true">
-                                    <mutation items="2"/>
-                                    <value name="ADD0">
-                                      <block type="text" id="8|x8;Lg{3vHSB.q{Hv#K">
-                                        <field name="TEXT">DSI</field>
-                                      </block>
-                                    </value>
-                                    <value name="ADD1">
-                                      <block type="math_number" id="Kx/:w,!@`hU|bTEf!jMi">
-                                        <field name="NUM">550</field>
-                                      </block>
-                                    </value>
+                                  <block type="text" id="8|x8;Lg{3vHSB.q{Hv#K">
+                                    <field name="TEXT">DSI</field>
                                   </block>
                                 </value>
                                 <value name="ADD1">
-                                  <block type="lists_create_with" id="!KN^Kob=sJDFdOj*W[N4" inline="true">
-                                    <mutation items="2"/>
-                                    <value name="ADD0">
-                                      <block type="text" id="e%t_ofwC?X]QCPK;GGfG">
-                                        <field name="TEXT">DSO</field>
-                                      </block>
-                                    </value>
-                                    <value name="ADD1">
-                                      <block type="math_number" id="7nrZM=^K5ytl_Yls;I?Q">
-                                        <field name="NUM">50</field>
-                                      </block>
-                                    </value>
+                                  <block type="math_number" id="Kx/:w,!@`hU|bTEf!jMi">
+                                    <field name="NUM">550</field>
                                   </block>
                                 </value>
-                                <value name="ADD2">
-                                  <block type="lists_create_with" id="vtYMN9B(S/sz9@CUN`{C" inline="true">
-                                    <mutation items="2"/>
-                                    <value name="ADD0">
-                                      <block type="text" id="X?l^mwQXH5/@-eEV$MZ5">
-                                        <field name="TEXT">HBW</field>
-                                      </block>
-                                    </value>
-                                    <value name="ADD1">
-                                      <block type="math_number" id="@HTV_X8Pah,h|e|GSe,B">
-                                        <field name="NUM">20</field>
-                                      </block>
-                                    </value>
+                              </block>
+                            </value>
+                            <value name="ADD1">
+                              <block type="lists_create_with" id="!KN^Kob=sJDFdOj*W[N4" inline="true">
+                                <mutation items="2"/>
+                                <value name="ADD0">
+                                  <block type="text" id="e%t_ofwC?X]QCPK;GGfG">
+                                    <field name="TEXT">DSO</field>
+                                  </block>
+                                </value>
+                                <value name="ADD1">
+                                  <block type="math_number" id="7nrZM=^K5ytl_Yls;I?Q">
+                                    <field name="NUM">50</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
-                            <next>
-                              <block type="variables_set" id="?pV0a={aQDKdj[cMV^?!">
-                                <field name="VAR" id="D0@rB(4dr-{-:l.2;(^_">listnamepos1_discard_VGR</field>
-                                <value name="VALUE">
-                                  <block type="variables_get" id="q@V3Na4rW`^6r.Ze!V~9">
-                                    <field name="VAR" id="a-wqL?wnhD3{`@tU(Bc|">listnamepos1_discard_VGR_defaults</field>
+                            <value name="ADD2">
+                              <block type="lists_create_with" id="vtYMN9B(S/sz9@CUN`{C" inline="true">
+                                <mutation items="2"/>
+                                <value name="ADD0">
+                                  <block type="text" id="X?l^mwQXH5/@-eEV$MZ5">
+                                    <field name="TEXT">HBW</field>
                                   </block>
                                 </value>
-                                <next>
-                                  <block type="variables_set" id="lig%8x@j]lX+n;.TlDiu">
-                                    <field name="VAR" id="!}Tn|B57J_|deUMcY}GZ">listnameoffset_VGR_defaults</field>
-                                    <value name="VALUE">
-                                      <block type="lists_create_with" id="+yZ#k*Lxj~l[unbfsFCP">
-                                        <mutation items="5"/>
+                                <value name="ADD1">
+                                  <block type="math_number" id="@HTV_X8Pah,h|e|GSe,B">
+                                    <field name="NUM">20</field>
+                                  </block>
+                                </value>
+                              </block>
+                            </value>
+                          </block>
+                        </value>
+                        <next>
+                          <block type="variables_set" id="?pV0a={aQDKdj[cMV^?!">
+                            <field name="VAR" id="D0@rB(4dr-{-:l.2;(^_">listnamepos1_discard_VGR</field>
+                            <value name="VALUE">
+                              <block type="variables_get" id="q@V3Na4rW`^6r.Ze!V~9">
+                                <field name="VAR" id="a-wqL?wnhD3{`@tU(Bc|">listnamepos1_discard_VGR_defaults</field>
+                              </block>
+                            </value>
+                            <next>
+                              <block type="variables_set" id="lig%8x@j]lX+n;.TlDiu">
+                                <field name="VAR" id="!}Tn|B57J_|deUMcY}GZ">listnameoffset_VGR_defaults</field>
+                                <value name="VALUE">
+                                  <block type="lists_create_with" id="+yZ#k*Lxj~l[unbfsFCP">
+                                    <mutation items="5"/>
+                                    <value name="ADD0">
+                                      <block type="lists_create_with" id="~~uB1,g/|6tD@KGjgM.c" inline="true">
+                                        <mutation items="2"/>
                                         <value name="ADD0">
-                                          <block type="lists_create_with" id="~~uB1,g/|6tD@KGjgM.c" inline="true">
-                                            <mutation items="2"/>
-                                            <value name="ADD0">
-                                              <block type="text" id="*l50q_84*Rc9?6L6Sj{~">
-                                                <field name="TEXT">DSI</field>
-                                              </block>
-                                            </value>
-                                            <value name="ADD1">
-                                              <block type="math_number" id="*EwYNu_Q]~)GLs#,jg@z">
-                                                <field name="NUM">202</field>
-                                              </block>
-                                            </value>
+                                          <block type="text" id="*l50q_84*Rc9?6L6Sj{~">
+                                            <field name="TEXT">DSI</field>
                                           </block>
                                         </value>
                                         <value name="ADD1">
-                                          <block type="lists_create_with" id="tjTK8vOzW+5^:xN|lh=Q" inline="true">
-                                            <mutation items="2"/>
-                                            <value name="ADD0">
-                                              <block type="text" id="QVf8.k2.h]P#vpgcK4_B">
-                                                <field name="TEXT">DSO</field>
-                                              </block>
-                                            </value>
-                                            <value name="ADD1">
-                                              <block type="math_number" id="[6ojs(+6qrUtR/Bwu!G!">
-                                                <field name="NUM">250</field>
-                                              </block>
-                                            </value>
+                                          <block type="math_number" id="*EwYNu_Q]~)GLs#,jg@z">
+                                            <field name="NUM">202</field>
+                                          </block>
+                                        </value>
+                                      </block>
+                                    </value>
+                                    <value name="ADD1">
+                                      <block type="lists_create_with" id="tjTK8vOzW+5^:xN|lh=Q" inline="true">
+                                        <mutation items="2"/>
+                                        <value name="ADD0">
+                                          <block type="text" id="QVf8.k2.h]P#vpgcK4_B">
+                                            <field name="TEXT">DSO</field>
                                           </block>
                                         </value>
-                                        <value name="ADD2">
-                                          <block type="lists_create_with" id="hPujlh9L8*;-),C]m`uM" inline="true">
-                                            <mutation items="2"/>
-                                            <value name="ADD0">
-                                              <block type="text" id="qLdx5{K.WbV}4D{SX,6@">
-                                                <field name="TEXT">HBW_h</field>
-                                              </block>
-                                            </value>
-                                            <value name="ADD1">
-                                              <block type="math_number" id="q(X@y$oT[xHn{B;Ley-v">
-                                                <field name="NUM">158</field>
-                                              </block>
-                                            </value>
+                                        <value name="ADD1">
+                                          <block type="math_number" id="[6ojs(+6qrUtR/Bwu!G!">
+                                            <field name="NUM">250</field>
                                           </block>
                                         </value>
-                                        <value name="ADD3">
-                                          <block type="lists_create_with" id="M!}W#8x3hL_!jA8i}(A{" inline="true">
-                                            <mutation items="2"/>
-                                            <value name="ADD0">
-                                              <block type="text" id="uRHTlk@;Aw@@HfU3=4j5">
-                                                <field name="TEXT">HBW</field>
-                                              </block>
-                                            </value>
-                                            <value name="ADD1">
-                                              <block type="math_number" id="`K!ZB7c`L=[;rW#O8FWL">
-                                                <field name="NUM">150</field>
-                                              </block>
-                                            </value>
+                                      </block>
+                                    </value>
+                                    <value name="ADD2">
+                                      <block type="lists_create_with" id="hPujlh9L8*;-),C]m`uM" inline="true">
+                                        <mutation items="2"/>
+                                        <value name="ADD0">
+                                          <block type="text" id="qLdx5{K.WbV}4D{SX,6@">
+                                            <field name="TEXT">HBW_h</field>
                                           </block>
                                         </value>
-                                        <value name="ADD4">
-                                          <block type="lists_create_with" id="%]xy9bL?f6jI[ED3IwE_" inline="true">
-                                            <mutation items="2"/>
-                                            <value name="ADD0">
-                                              <block type="text" id="-18)xBx@5=wxA%#7PdAC">
-                                                <field name="TEXT">MPO</field>
-                                              </block>
-                                            </value>
-                                            <value name="ADD1">
-                                              <block type="math_number" id="Lo%8a{i4+bkL+6nP#pRj">
-                                                <field name="NUM">490</field>
-                                              </block>
-                                            </value>
+                                        <value name="ADD1">
+                                          <block type="math_number" id="q(X@y$oT[xHn{B;Ley-v">
+                                            <field name="NUM">158</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
-                                    <next>
-                                      <block type="variables_set" id="wn8DFmE:+*y3NqiySRL%">
-                                        <field name="VAR" id="c09d!l?!$Im2P8N=Y!T_">listnameoffset_VGR</field>
-                                        <value name="VALUE">
-                                          <block type="variables_get" id="p}NhM`Qq)h.d$_E`z(Y}">
-                                            <field name="VAR" id="!}Tn|B57J_|deUMcY}GZ">listnameoffset_VGR_defaults</field>
+                                    <value name="ADD3">
+                                      <block type="lists_create_with" id="M!}W#8x3hL_!jA8i}(A{" inline="true">
+                                        <mutation items="2"/>
+                                        <value name="ADD0">
+                                          <block type="text" id="uRHTlk@;Aw@@HfU3=4j5">
+                                            <field name="TEXT">HBW</field>
                                           </block>
                                         </value>
-                                        <next>
-                                          <block type="procedures_callnoreturn" id="sdpm}omkCKxkuz;p380q">
-                                            <mutation name="moveRef_VGR_S231"/>
+                                        <value name="ADD1">
+                                          <block type="math_number" id="`K!ZB7c`L=[;rW#O8FWL">
+                                            <field name="NUM">150</field>
                                           </block>
-                                        </next>
+                                        </value>
+                                      </block>
+                                    </value>
+                                    <value name="ADD4">
+                                      <block type="lists_create_with" id="%]xy9bL?f6jI[ED3IwE_" inline="true">
+                                        <mutation items="2"/>
+                                        <value name="ADD0">
+                                          <block type="text" id="-18)xBx@5=wxA%#7PdAC">
+                                            <field name="TEXT">MPO</field>
+                                          </block>
+                                        </value>
+                                        <value name="ADD1">
+                                          <block type="math_number" id="Lo%8a{i4+bkL+6nP#pRj">
+                                            <field name="NUM">490</field>
+                                          </block>
+                                        </value>
+                                      </block>
+                                    </value>
+                                  </block>
+                                </value>
+                                <next>
+                                  <block type="variables_set" id="wn8DFmE:+*y3NqiySRL%">
+                                    <field name="VAR" id="c09d!l?!$Im2P8N=Y!T_">listnameoffset_VGR</field>
+                                    <value name="VALUE">
+                                      <block type="variables_get" id="p}NhM`Qq)h.d$_E`z(Y}">
+                                        <field name="VAR" id="!}Tn|B57J_|deUMcY}GZ">listnameoffset_VGR_defaults</field>
+                                      </block>
+                                    </value>
+                                    <next>
+                                      <block type="procedures_callnoreturn" id="sdpm}omkCKxkuz;p380q">
+                                        <mutation name="moveRef_VGR_S231"/>
                                       </block>
                                     </next>
                                   </block>
@@ -502,7 +489,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id="K#T`d0$vA_5^9rGM1/{-" x="0" y="1260">
+  <block type="procedures_defreturn" id="K#T`d0$vA_5^9rGM1/{-" x="0" y="1231">
     <field name="NAME">get_calib_data_VGR_defaults</field>
     <statement name="STACK">
       <block type="util_python" id="D=CkztPrLO@x^w.mkp0I" inline="true">
@@ -530,7 +517,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defreturn" id="^$xZKHqK*6WIwI8ceqL{" x="0" y="1454">
+  <block type="procedures_defreturn" id="^$xZKHqK*6WIwI8ceqL{" x="0" y="1425">
     <field name="NAME">get_calib_data_VGR</field>
     <statement name="STACK">
       <block type="util_python" id="1d23+)YkdlCiBbV@EgWQ" inline="true">
@@ -558,7 +545,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defnoreturn" id="kd$bi7P_do[(}U{LbTB4" x="0" y="1648">
+  <block type="procedures_defnoreturn" id="kd$bi7P_do[(}U{LbTB4" x="0" y="1619">
     <mutation>
       <arg name="_data" varid="$E/GDp,,dwQrGbs7N*=C" argid=",#9%J9)0WQqw0UV~E`,-"/>
     </mutation>
@@ -636,7 +623,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id="h_Ywa_P,0ha-:aK+]Cvi" x="0" y="1911">
+  <block type="procedures_defreturn" id="h_Ywa_P,0ha-:aK+]Cvi" x="0" y="1882">
     <mutation>
       <arg name="name" varid="=rZtKtBfZf68mlj?jiw8" argid="m.SVI~2J4k#?O.|jFsQE"/>
     </mutation>
@@ -756,7 +743,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defnoreturn" id="3-V~7VzI#Jz3oa2AuEfS" x="0" y="2363">
+  <block type="procedures_defnoreturn" id="3-V~7VzI#Jz3oa2AuEfS" x="0" y="2334">
     <mutation>
       <arg name="name" varid="=rZtKtBfZf68mlj?jiw8" argid="+{X!fH,pSr[TJe+BcuFo"/>
       <arg name="num" varid="J1!W`Q`+A`CEYh;,gIc." argid="UScmZM0BR`#;@E,b?C}/"/>
@@ -897,7 +884,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id=".uUiBue/+mE(]xr`2`pW" x="0" y="2879">
+  <block type="procedures_defreturn" id=".uUiBue/+mE(]xr`2`pW" x="0" y="2850">
     <mutation>
       <arg name="name" varid="=rZtKtBfZf68mlj?jiw8" argid="atj)PHTd+gN_hWBnK=q0"/>
     </mutation>
@@ -1005,7 +992,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defnoreturn" id=",YPRo_k.pJeC_Gb]$_l!" x="0" y="3307">
+  <block type="procedures_defnoreturn" id=",YPRo_k.pJeC_Gb]$_l!" x="0" y="3278">
     <mutation>
       <arg name="name" varid="=rZtKtBfZf68mlj?jiw8" argid="?B^.X~.funTg#J|]JP=K"/>
       <arg name="value" varid="mZz|Yz{fp.vn82:{}yE." argid="fVu!x^f85ShPATJe}HAK"/>
@@ -1134,7 +1121,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id="*bCnHG*r;b|j]^M+EX:J" x="0" y="3784">
+  <block type="procedures_defreturn" id="*bCnHG*r;b|j]^M+EX:J" x="0" y="3755">
     <mutation>
       <arg name="name" varid="=rZtKtBfZf68mlj?jiw8" argid="Up/+E{M3pWvfBif+?2|D"/>
     </mutation>
@@ -1242,7 +1229,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defnoreturn" id="D,u2;-7xER)@{X]%cXrn" x="0" y="4212">
+  <block type="procedures_defnoreturn" id="D,u2;-7xER)@{X]%cXrn" x="0" y="4183">
     <mutation>
       <arg name="name" varid="=rZtKtBfZf68mlj?jiw8" argid="c)^Hlhu#mc|j![ouQ,Dr"/>
       <arg name="value" varid="mZz|Yz{fp.vn82:{}yE." argid="yysPAK%IY_mL-=~i#Svi"/>
@@ -1371,7 +1358,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="`-$SUpsE.(3*%/{LS_Ft" x="0" y="4689">
+  <block type="procedures_defnoreturn" id="`-$SUpsE.(3*%/{LS_Ft" x="0" y="4660">
     <field name="NAME">log_abspos_VGR</field>
     <statement name="STACK">
       <block type="util_python" id="7W9..WdlaIrNx5*lJ62P" inline="true">
@@ -1503,7 +1490,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="eCAnos}n)m*)ZKS^lnxn" x="0" y="5090">
+  <block type="procedures_defnoreturn" id="eCAnos}n)m*)ZKS^lnxn" x="0" y="5061">
     <field name="NAME">stop_VGR</field>
     <statement name="STACK">
       <block type="util_python" id="vJOOV7elN+0tq$.I/1sE" inline="true">
@@ -1536,7 +1523,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="t}1X])Dx5:s!B8*l{B:@" x="0" y="5364">
+  <block type="procedures_defnoreturn" id="t}1X])Dx5:s!B8*l{B:@" x="0" y="5335">
     <field name="NAME">moveRef_VGR_P123</field>
     <statement name="STACK">
       <block type="util_python" id="gT;#0S6_0Cy{7wI`/?E-" inline="true">
@@ -1564,7 +1551,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="yk`|lbk%?d)l@/BpEX5q" x="0" y="5826">
+  <block type="procedures_defnoreturn" id="yk`|lbk%?d)l@/BpEX5q" x="0" y="5797">
     <field name="NAME">moveRef_VGR_S231</field>
     <statement name="STACK">
       <block type="util_python" id="GiF`(S;wyuK$V1Trk2ti" inline="true">
@@ -1623,7 +1610,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="lLp,7M[A#R-Sg7jVc:u(" x="0" y="6165">
+  <block type="procedures_defnoreturn" id="lLp,7M[A#R-Sg7jVc:u(" x="0" y="6136">
     <field name="NAME">moveRef_VGR_S23</field>
     <statement name="STACK">
       <block type="util_python" id="sZ9ySS:K33v_2pr];/#@" inline="true">
@@ -1670,7 +1657,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id=":S|)`z-6^RbjC]U;XL7[" x="0" y="6465">
+  <block type="procedures_defnoreturn" id=":S|)`z-6^RbjC]U;XL7[" x="0" y="6436">
     <mutation>
       <arg name="rv1" varid="RVUJne|Q|X6viQbQ#a6C" argid="zV{}y}aI4+(PY7zR{I]}"/>
       <arg name="rv2" varid="tByYa^b`0cVZHw#6L8wu" argid="r.GLZJE$.FUfttgfmkI?"/>
@@ -1706,7 +1693,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="k|5V*f*a{gz(P,1gk=Pb" x="0" y="7008">
+  <block type="procedures_defnoreturn" id="k|5V*f*a{gz(P,1gk=Pb" x="0" y="6979">
     <mutation>
       <arg name="poslist" varid="M/$9slzW|$v:2ZfHG:Y;" argid="(HmR#x+1|pf(XG7BS%@k"/>
     </mutation>
@@ -1778,7 +1765,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="]/9]gfO|M4m:YIsJsSQy" x="0" y="7300">
+  <block type="procedures_defnoreturn" id="]/9]gfO|M4m:YIsJsSQy" x="0" y="7271">
     <mutation>
       <arg name="rv1" varid="RVUJne|Q|X6viQbQ#a6C" argid="iWETisI=kba*AmunMbdI"/>
       <arg name="rv2" varid="tByYa^b`0cVZHw#6L8wu" argid="FDLs2_Ph.4hGpRT@nqt8"/>
@@ -1860,7 +1847,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="Vy@`o!OZ(4K?fTD(_1t." x="0" y="7720">
+  <block type="procedures_defnoreturn" id="Vy@`o!OZ(4K?fTD(_1t." x="0" y="7691">
     <mutation>
       <arg name="poslist" varid="M/$9slzW|$v:2ZfHG:Y;" argid="(HmR#x+1|pf(XG7BS%@k"/>
     </mutation>
@@ -1932,7 +1919,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="fS|KgFC~9^o%!BRB%mWU" x="0" y="8012">
+  <block type="procedures_defnoreturn" id="fS|KgFC~9^o%!BRB%mWU" x="0" y="7983">
     <mutation>
       <arg name="av1" varid="Yfv}/CDC2fOK[4qsl.F+" argid="zV{}y}aI4+(PY7zR{I]}"/>
       <arg name="av2" varid="f?3iEm`3R3ie:yFM[hBL" argid="r.GLZJE$.FUfttgfmkI?"/>
@@ -1968,7 +1955,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="g,p+X7F^U[}7,B-D#p0=" x="0" y="8555">
+  <block type="procedures_defnoreturn" id="g,p+X7F^U[}7,B-D#p0=" x="0" y="8526">
     <mutation>
       <arg name="poslist" varid="M/$9slzW|$v:2ZfHG:Y;" argid="(HmR#x+1|pf(XG7BS%@k"/>
     </mutation>
@@ -2040,7 +2027,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="{S~eYro!kXU:h4Q]vq*V" x="0" y="8847">
+  <block type="procedures_defnoreturn" id="{S~eYro!kXU:h4Q]vq*V" x="0" y="8818">
     <mutation>
       <arg name="name" varid="=rZtKtBfZf68mlj?jiw8" argid="(HmR#x+1|pf(XG7BS%@k"/>
     </mutation>
@@ -2139,7 +2126,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="Tv*:@L3_sU$R^w]+%Z]." x="0" y="9254">
+  <block type="procedures_defnoreturn" id="Tv*:@L3_sU$R^w]+%Z]." x="0" y="9225">
     <mutation>
       <arg name="av1" varid="Yfv}/CDC2fOK[4qsl.F+" argid="iWETisI=kba*AmunMbdI"/>
       <arg name="av2" varid="f?3iEm`3R3ie:yFM[hBL" argid="FDLs2_Ph.4hGpRT@nqt8"/>
@@ -2221,7 +2208,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="1O4Ka+xr}M{rV(4nV-X/" x="0" y="9674">
+  <block type="procedures_defnoreturn" id="1O4Ka+xr}M{rV(4nV-X/" x="0" y="9645">
     <mutation>
       <arg name="poslist" varid="M/$9slzW|$v:2ZfHG:Y;" argid="(HmR#x+1|pf(XG7BS%@k"/>
     </mutation>
@@ -2293,7 +2280,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id="%)`rUm,Q8`-lBF/rK29R" x="0" y="9966">
+  <block type="procedures_defreturn" id="%)`rUm,Q8`-lBF/rK29R" x="0" y="9937">
     <field name="NAME">get_abspos_VGR</field>
     <value name="RETURN">
       <block type="lists_getSublist" id="k0=_5#IG`=VRwR18dn/H">
diff --git a/lib/VGR_Axes1Ref.py b/lib/VGR_Axes1Ref.py
index 654fc95..0cfd307 100644
--- a/lib/VGR_Axes1Ref.py
+++ b/lib/VGR_Axes1Ref.py
@@ -28,12 +28,11 @@ listnamepos1_discard_VGR = None
 listnameoffset_VGR = None
 i = None
 abspos_VGR = None
-lockNFC = None
 p1234 = None
 p12 = None
 temp = None
 def get_pos3_VGR_name(name):
-    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.debug('%s', name)
     p123 = None
     for p1234 in poslist_VGR:
@@ -45,7 +44,7 @@ def get_pos3_VGR_name(name):
     return p123
 
 def get_pos1_discard_VGR_name(name):
-    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.debug('%s', name)
     value = 0
     p12 = None
@@ -57,7 +56,7 @@ def get_pos1_discard_VGR_name(name):
     return value
 
 def get_offset_VGR_name(name):
-    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.debug('%s', name)
     value = 0
     p12 = None
@@ -71,16 +70,15 @@ def get_offset_VGR_name(name):
 
 
 def get_lock_VGR():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE0_VGR, '-')
     return lockVGR
 
 
 def init_VGR():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '-')
     lockVGR = threading.RLock() #https://stackoverflow.com/questions/28017535/do-i-have-to-lock-all-functions-that-calls-to-one-or-more-locked-function-for-mu
-    lockNFC = 0
     poslist_VGR_defaults = [['Color Reader', 107, 645, 40], ['DSI', 5, 752, 5], ['DSO', 247, 290, 530], ['HBW', 1395, 0, 0], ['MPO', 911, 0, 850], ['NFC', 180, 643, 230], ['NiO', 300, 400, 0], ['SLD blue', 304, 835, 579], ['SLD red', 371, 835, 418], ['SLD white', 450, 835, 360]]
     poslist_VGR = poslist_VGR_defaults
     listnamepos1_discard_VGR_defaults = [['DSI', 550], ['DSO', 50], ['HBW', 20]]
@@ -91,19 +89,19 @@ def init_VGR():
 
 
 def get_calib_data_VGR_defaults():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '-')
     return [poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults]
 
 
 def get_calib_data_VGR():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '-')
     return [poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR]
 
 
 def set_calib_data_VGR(_data):
-    global name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, _data)
     poslist_VGR = _data[0]
     listnamepos1_discard_VGR = _data[1]
@@ -111,7 +109,7 @@ def set_calib_data_VGR(_data):
 
 
 def set_pos3_VGR_name_num(name, num, value):
-    global _data, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.debug('%s %d %d', name, num, value)
     i = 1
     for p1234 in poslist_VGR:
@@ -124,7 +122,7 @@ def set_pos3_VGR_name_num(name, num, value):
 
 
 def set_pos1_discard_VGR_name(name, value):
-    global _data, num, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, num, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.debug('%s %d', name, value)
     i = 1
     for p12 in listnamepos1_discard_VGR:
@@ -137,7 +135,7 @@ def set_pos1_discard_VGR_name(name, value):
 
 
 def set_offset_VGR_name(name, value):
-    global _data, num, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, num, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.debug('%s %d', name, value)
     i = 1
     for p12 in listnameoffset_VGR:
@@ -150,7 +148,7 @@ def set_offset_VGR_name(name, value):
 
 
 def log_abspos_VGR():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '-')
     abspos_VGR = (get_abspos())[ : 3]
     if abspos_VGR[ : 1] == None or abspos_VGR[ : 2] == None or abspos_VGR[ : 3] == None:
@@ -160,7 +158,7 @@ def log_abspos_VGR():
 
 
 def stop_VGR():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '-')
     lockVGR.acquire()
     TXT_VGR_E2_M1_encodermotor.stop_sync()
@@ -170,7 +168,7 @@ def stop_VGR():
 
 
 def moveRef_VGR_P123():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '->')
     lockVGR.acquire()
     th1 = threading.Thread(target=moveRef, args=(1, ), daemon=True)
@@ -187,7 +185,7 @@ def moveRef_VGR_P123():
 
 
 def moveRef_VGR_S231():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '->')
     lockVGR.acquire()
     moveRef(2)
@@ -198,7 +196,7 @@ def moveRef_VGR_S231():
 
 
 def moveRef_VGR_S23():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, '->')
     lockVGR.acquire()
     moveRef(2)
@@ -208,7 +206,7 @@ def moveRef_VGR_S23():
 
 
 def moveRel_VGR_P123(rv1, rv2, rv3):
-    global _data, name, num, value, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'rv=%d %d %d', rv1, rv2, rv3)
     lockVGR.acquire()
     th1 = threading.Thread(target=moveRel, args=(1,rv1, ), daemon=True)
@@ -225,13 +223,13 @@ def moveRel_VGR_P123(rv1, rv2, rv3):
 
 
 def moveRel_VGR_P123_list(poslist):
-    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'poslist=%d %d %d', poslist[0], poslist[1], poslist[2])
     moveRel_VGR_P123(poslist[0], poslist[1], poslist[2])
 
 
 def moveRel_VGR_S123(rv1, rv2, rv3):
-    global _data, name, num, value, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'rv=%d %d %d', rv1, rv2, rv3)
     lockVGR.acquire()
     moveRel(1, rv1)
@@ -242,13 +240,13 @@ def moveRel_VGR_S123(rv1, rv2, rv3):
 
 
 def moveRel_VGR_S123_list(poslist):
-    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'poslist=%d %d %d', poslist[0], poslist[1], poslist[2])
     moveRel_VGR_S123(poslist[0], poslist[1], poslist[2])
 
 
 def moveAbs_VGR_P123(av1, av2, av3):
-    global _data, name, num, value, rv1, rv2, rv3, poslist, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'av=%d %d %d', av1, av2, av3)
     lockVGR.acquire()
     th1 = threading.Thread(target=moveAbs, args=(1,av1, ), daemon=True)
@@ -265,13 +263,13 @@ def moveAbs_VGR_P123(av1, av2, av3):
 
 
 def moveAbs_VGR_P123_list(poslist):
-    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'poslist=%d %d %d', poslist[0], poslist[1], poslist[2])
     moveAbs_VGR_P123(poslist[0], poslist[1], poslist[2])
 
 
 def moveAbs_VGR_P123_name(name):
-    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'name=%s', name)
     if name != None:
         temp = get_pos3_VGR_name(name)
@@ -280,7 +278,7 @@ def moveAbs_VGR_P123_name(name):
 
 
 def moveAbs_VGR_S123(av1, av2, av3):
-    global _data, name, num, value, rv1, rv2, rv3, poslist, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'av=%d %d %d', av1, av2, av3)
     lockVGR.acquire()
     moveAbs(1, av1)
@@ -291,13 +289,13 @@ def moveAbs_VGR_S123(av1, av2, av3):
 
 
 def moveAbs_VGR_S123_list(poslist):
-    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     logging.log(logging.TRACE_VGR, 'poslist=%d %d %d', poslist[0], poslist[1], poslist[2])
     moveAbs_VGR_S123(poslist[0], poslist[1], poslist[2])
 
 
 def get_abspos_VGR():
-    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, lockNFC, p1234, p12, temp
+    global _data, name, num, value, rv1, rv2, rv3, poslist, av1, av2, av3, lockVGR, p123, poslist_VGR_defaults, listnamepos1_discard_VGR_defaults, listnameoffset_VGR_defaults, poslist_VGR, listnamepos1_discard_VGR, listnameoffset_VGR, i, abspos_VGR, p1234, p12, temp
     return (get_abspos())[ : 3]
 
 
diff --git a/lib/VGR_NodeRED.blockly b/lib/VGR_NodeRED.blockly
index 0756a9a..3e59aa8 100644
--- a/lib/VGR_NodeRED.blockly
+++ b/lib/VGR_NodeRED.blockly
@@ -18,14 +18,15 @@
     <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="Bd!Y;KPYV:B02,xwN7tF">offset</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="a4AlB7bcL+7]ernQ[^Iu">HBW_h</variable>
   </variables>
   <block type="util_python_imports" id="hi`}CPbF(0ygDuS!:N|Z" x="0" y="0">
     <field name="value">#TXT FW 3.1.0: https://pypi.org/project/paho-mqtt/1.3.1/&amp;#10;&amp;#10;import paho.mqtt.client as mqtt&amp;#10;import json&amp;#10;from datetime import datetime&amp;#10;import logging</field>
   </block>
-  <block type="procedures_defnoreturn" id="X?2D@}Z6DT1d_^8I{Vh9" x="0" y="206">
+  <block type="procedures_defnoreturn" id="X?2D@}Z6DT1d_^8I{Vh9" x="0" y="213">
     <mutation>
       <arg name="c" varid="C2~T0O1L[2W(C)`SXOAO" argid="8TCtm^79}dhkQZlY^WCh"/>
     </mutation>
@@ -42,7 +43,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="GZSD`K4fKt]`@8=ZcpML" x="0" y="343">
+  <block type="procedures_defnoreturn" id="GZSD`K4fKt]`@8=ZcpML" x="0" y="353">
     <mutation>
       <arg name="topic" varid="ekl(.QY.*2rj0`]zO|]}" argid="g/-.P1PW![BOnU2r1U]9"/>
       <arg name="value" varid=",yY0!)~#U?HcwSoN7,7Q" argid=")4BC*vM)#:mkCT_;6Ew*"/>
@@ -61,7 +62,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="sAP7%Y1_~]3iQ2`}1ytS" x="0" y="548">
+  <block type="procedures_defnoreturn" id="sAP7%Y1_~]3iQ2`}1ytS" x="0" y="563">
     <field name="NAME">publish_abspos_VGR</field>
     <statement name="STACK">
       <block type="variables_set" id="0.*K1~]aCqZ.$[kpYmAO">
@@ -350,7 +351,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id="41Q_L+60LMyb1;e*mjlF" x="0" y="1285">
+  <block type="procedures_defreturn" id="41Q_L+60LMyb1;e*mjlF" x="0" y="1318">
     <mutation>
       <arg name="topic" varid="ekl(.QY.*2rj0`]zO|]}" argid="IJp4nPcQ{=nBG`V0yCpJ"/>
       <arg name="value" varid=",yY0!)~#U?HcwSoN7,7Q" argid="!0mN;A](u?[Vv!Wq5hp1"/>
@@ -995,7 +996,7 @@
                 <data>D,u2;-7xER)@{X]%cXrn</data>
                 <value name="name">
                   <block type="text" id="9lozZ)Ic0fB{IpJXq!rs">
-                    <field name="TEXT">HBW_v</field>
+                    <field name="TEXT">HBW_h</field>
                   </block>
                 </value>
                 <value name="value">
@@ -1027,7 +1028,7 @@
                 <data>D,u2;-7xER)@{X]%cXrn</data>
                 <value name="name">
                   <block type="text" id="Hb.Hcl+3m5op*])]Jhif">
-                    <field name="TEXT">HBW_h</field>
+                    <field name="TEXT">HBW</field>
                   </block>
                 </value>
                 <value name="value">
@@ -1755,7 +1756,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defnoreturn" id="=JwN9)[-dlvcV3M-FRr/" x="0" y="4560">
+  <block type="procedures_defnoreturn" id="=JwN9)[-dlvcV3M-FRr/" x="0" y="4675">
     <mutation>
       <arg name="gtyp_Setup_x_Set_Pos_Activ" varid="Vi2yByi.9J~-4xUDT!]k" argid="~+Z}MOYk)u04zXn5-2M9"/>
       <arg name="gtyp_Setup_i_Pos_Selection" varid="#ZVIt[,H@%Ms3XJhPF7y" argid="(;4HXomXCKiMX?ck}7zW"/>
@@ -2397,7 +2398,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="b9~DV%hiYO$n)mA1qu%(" x="0" y="6277">
+  <block type="procedures_defnoreturn" id="b9~DV%hiYO$n)mA1qu%(" x="0" y="6434">
     <field name="NAME">publish_SetupPositionsAndOffsets_VGR</field>
     <statement name="STACK">
       <block type="util_python" id="),}Lw;--ywaOg@Zyt7Pz" inline="true">
@@ -3123,7 +3124,7 @@
                                                                                                                                                                             <data>*bCnHG*r;b|j]^M+EX:J</data>
                                                                                                                                                                             <value name="name">
                                                                                                                                                                               <block type="text" id="0g29_4w]V#/t((,RMJc(">
-                                                                                                                                                                                <field name="TEXT">HBW_v</field>
+                                                                                                                                                                                <field name="TEXT">HBW</field>
                                                                                                                                                                               </block>
                                                                                                                                                                             </value>
                                                                                                                                                                           </block>
@@ -4140,7 +4141,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="aJsN,b|9_nF}R0u2nmEP" x="0" y="9886">
+  <block type="procedures_defnoreturn" id="aJsN,b|9_nF}R0u2nmEP" x="0" y="10130">
     <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="upRO}{-duuE)y@}SepmF"/>
@@ -4218,147 +4219,308 @@
                       </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 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>
                           </block>
                         </value>
                         <next>
-                          <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="Cf:K:],*t=+)AJ0(,;)d">
-                                <field name="TEXT">gtyp_VGR/vertical_Axis/di_Target_Position</field>
+                          <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>
-                            <value name="ARG1">
-                              <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>
+                            <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="variables_get" id="1xu#Lk}NV._()4Q3/8~Y">
-                                    <field name="VAR" id="{Nv`f^R*?6N=E.E$S(Y/">pos3list</field>
+                                  <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">
+                                        <field name="VAR" id="!j[se*z1n=Y|3[5iQM{:">name</field>
+                                      </block>
+                                    </value>
                                   </block>
                                 </value>
-                                <value name="AT">
-                                  <block type="math_number" id="iPUF!^h3$3Z(N?mN6#pX">
-                                    <field name="NUM">2</field>
+                                <next>
+                                  <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="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>
+                                        <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>
+                                            </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>
+                                                  </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="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>
+                                                <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>
+                                                </next>
+                                              </block>
+                                            </next>
+                                          </block>
+                                        </next>
+                                      </block>
+                                    </next>
                                   </block>
-                                </value>
+                                </next>
                               </block>
-                            </value>
+                            </statement>
                             <next>
-                              <block type="procedures_callnoreturn" id="Qtd[w|s_-YDC7dB74].t" 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="rYni)SpaSjHoV(n,w5)c">
-                                    <field name="TEXT">gtyp_VGR/horizontal_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="|Mt)7{CU6R91tM;*ekOa">
+                                  <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="A$zxHi/,(PgIP{_6~o)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="+wXIdq?a.3`)T-,85zO$">
-                                        <field name="NUM">3</field>
+                                      <block type="math_number" id="C?Kh~/oQ?2`*]Uz)oF8@">
+                                        <field name="NUM">1</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="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="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="=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="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="iPUF!^h3$3Z(N?mN6#pX">
+                                            <field name="NUM">2</field>
+                                          </block>
+                                        </value>
                                       </block>
                                     </value>
                                     <next>
-                                      <block type="procedures_callnoreturn" id="=hahqJm4ogGj;DWdh!Ki" inline="true">
+                                      <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="c-8yP@jQz0gSCD2eA{k=">
-                                            <field name="TEXT">gtyp_VGR/rotate_Axis/x_Position_Reached</field>
+                                          <block type="text" id="rYni)SpaSjHoV(n,w5)c">
+                                            <field name="TEXT">gtyp_VGR/horizontal_Axis/di_Target_Position</field>
                                           </block>
                                         </value>
                                         <value name="ARG1">
-                                          <block type="logic_boolean" id="0/5n#sfO@C5rxLp!}-=5">
-                                            <field name="BOOL">TRUE</field>
+                                          <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="AT">
+                                              <block type="math_number" id="+wXIdq?a.3`)T-,85zO$">
+                                                <field name="NUM">3</field>
+                                              </block>
+                                            </value>
                                           </block>
                                         </value>
                                         <next>
-                                          <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="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="sb!!udn,FYClpP0%P-#I">
-                                                <field name="BOOL">TRUE</field>
+                                          <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="inXv:tA$9blOapoxp4sN" 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="rW6uuQs4egn%%bB^is8b">
-                                                    <field name="TEXT">gtyp_VGR/horizontal_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="a{RgR/.TxWy.?2/zTm_3">
+                                                  <block type="logic_boolean" id="0/5n#sfO@C5rxLp!}-=5">
                                                     <field name="BOOL">TRUE</field>
                                                   </block>
                                                 </value>
+                                                <next>
+                                                  <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="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="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>
                                             </next>
                                           </block>
@@ -4382,7 +4544,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="|~*G_kUY+FAXdyTi}gv5" x="0" y="10537">
+  <block type="procedures_defnoreturn" id="|~*G_kUY+FAXdyTi}gv5" x="0" y="11228">
     <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"/>
@@ -4465,207 +4627,356 @@
                       </block>
                     </value>
                     <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">
+                      <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>
-                          </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>
+                            <value name="B">
+                              <block type="text" id="QtRr)E;NEKNBqy{b_0G^">
+                                <field name="TEXT">HBW</field>
                               </block>
                             </value>
-                            <value name="AT">
-                              <block type="math_number" id="-2/p)]SELqwpjZzZ{o/+">
-                                <field name="NUM">2</field>
+                          </block>
+                        </value>
+                        <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="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">
+                                    <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>
+                            <next>
+                              <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>
-                                    <value name="AT">
-                                      <block type="math_number" id="%@#9bh{JJ9xz:T-]4,;~">
-                                        <field name="NUM">2</field>
+                                  </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>
                                     </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>
+                                        </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>
+                                              </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="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>
+                                            <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>
+                                            </next>
+                                          </block>
+                                        </next>
+                                      </block>
+                                    </next>
                                   </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>
+                                </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>
                             <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)">
+                              <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>
+                                </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="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>
@@ -4695,7 +5006,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defreturn" id="F$HexCMuOIT$9AI_qVvs" x="0" y="11346">
+  <block type="procedures_defreturn" id="F$HexCMuOIT$9AI_qVvs" x="0" y="12449">
     <mutation>
       <arg name="gtyp_Setup_i_Pos_Selection" varid="#ZVIt[,H@%Ms3XJhPF7y" argid=":Z@Kb]Z,6TWU+!VxK7tu"/>
     </mutation>
@@ -5166,7 +5477,7 @@
       </block>
     </value>
   </block>
-  <block type="procedures_defreturn" id="qh5#?)3Al|k$c**g=-/o" x="0" y="12627">
+  <block type="procedures_defreturn" id="qh5#?)3Al|k$c**g=-/o" x="0" y="13762">
     <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 bd48207..cb671b1 100644
--- a/lib/VGR_NodeRED.py
+++ b/lib/VGR_NodeRED.py
@@ -24,24 +24,25 @@ pos1_discard = None
 last_abspos_VGR = None
 gtyp_VGR_vertical_Axis_di_Actual_Position = None
 gtyp_Setup_di_Pos_Vertical = None
-offset = None
 gtyp_VGR_rotate_Axis_di_Actual_Position = None
+offset = None
 gtyp_Setup_di_Pos_Horizontal = 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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     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])
@@ -59,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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     else2 = False
     if topic == 'gtyp_VGR/di_Pos_Color_horizontal':
         set_pos3_VGR_name_num('Color Reader', 3, value)
@@ -96,9 +97,9 @@ def apply_SetupPosition_VGR(topic, value):
     elif topic == 'gtyp_VGR/di_Pos_HBW_rotate':
         set_pos3_VGR_name_num('HBW', 1, value)
     elif topic == 'gtyp_VGR/di_Offset_Pos_HBW_horizontal':
-        set_offset_VGR_name('HBW_v', value)
-    elif topic == 'gtyp_VGR/di_Offset_Pos_HBW_vertical':
         set_offset_VGR_name('HBW_h', value)
+    elif topic == 'gtyp_VGR/di_Offset_Pos_HBW_vertical':
+        set_offset_VGR_name('HBW', value)
     elif topic == 'gtyp_VGR/di_Pos_MPO_horizontal':
         set_pos3_VGR_name_num('MPO', 3, value)
     elif topic == 'gtyp_VGR/di_Pos_MPO_vertical':
@@ -143,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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     temp = [0, 0, 0]
     if gtyp_Setup_x_Set_Pos_Activ == 'true':
         if gtyp_Setup_i_Pos_Selection == 41:
@@ -186,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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     # Color Reader
     temp = (get_pos3_VGR_name('Color Reader'))[0]
     publishTopicValue_VGR('gtyp_VGR/di_Pos_Color_rotate', temp)
@@ -227,7 +228,7 @@ def publish_SetupPositionsAndOffsets_VGR():
     publishTopicValue_VGR('gtyp_VGR/di_Pos_HBW_rotate', temp)
     temp = get_offset_VGR_name('HBW_h')
     publishTopicValue_VGR('gtyp_VGR/di_Offset_Pos_HBW_horizontal', temp)
-    temp = get_offset_VGR_name('HBW_v')
+    temp = get_offset_VGR_name('HBW')
     publishTopicValue_VGR('gtyp_VGR/di_Offset_Pos_HBW_vertical', temp)
     # MPO
     temp = (get_pos3_VGR_name('MPO'))[2]
@@ -276,13 +277,24 @@ 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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     logging.debug('%s', name)
     moveRef_VGR_S231()
     pos3list = get_pos3_VGR_name(name)
     if discard:
         pos1_discard = get_pos1_discard_VGR_name(name)
         pos3list[1] = pos1_discard
+    moveAbs_VGR_P123_list(pos3list)
+    if name == 'HBW':
+        pos3list = get_pos3_VGR_name(name)
+        HBW_h = get_offset_VGR_name('HBW_h')
+        print(HBW_h)
+        pos3list[2] = pos3list[2] + HBW_h
+        moveAbs_VGR_P123_list(pos3list)
+        if discard:
+            print('HBW discard')
+        else:
+            print('HBW collect')
     publishTopicValue_VGR('gtyp_VGR/rotate_Axis/di_Target_Position', pos3list[0])
     publishTopicValue_VGR('gtyp_VGR/vertical_Axis/di_Target_Position', pos3list[1])
     publishTopicValue_VGR('gtyp_VGR/horizontal_Axis/di_Target_Position', pos3list[2])
@@ -293,13 +305,23 @@ 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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     logging.debug('%s %s', name, discard)
     pos3list = get_pos3_VGR_name(name)
     if discard:
         pos1_discard = get_pos1_discard_VGR_name(name)
         pos3list[1] = pos1_discard
     moveAbs_VGR_P123_list(pos3list)
+    if name == 'HBW':
+        pos3list = get_pos3_VGR_name(name)
+        HBW_h = get_offset_VGR_name('HBW_h')
+        print(HBW_h)
+        pos3list[2] = pos3list[2] + HBW_h
+        moveAbs_VGR_P123_list(pos3list)
+        if discard:
+            print('HBW discard')
+        else:
+            print('HBW collect')
     offset = get_offset_VGR_name(name)
     pos3list[1] = pos3list[1] + offset
     logging.debug(pos3list)
@@ -313,7 +335,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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     logging.debug(gtyp_Setup_i_Pos_Selection)
     else2 = False
     if gtyp_Setup_i_Pos_Selection == 41:
@@ -348,7 +370,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, offset, gtyp_VGR_rotate_Axis_di_Actual_Position, gtyp_Setup_di_Pos_Horizontal
+    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
     logging.debug(gtyp_Setup_i_Pos_Selection)
     else2 = False
     if gtyp_Setup_i_Pos_Selection == 41:
-- 
GitLab