diff --git a/LatheMacro.svg b/LatheMacro.svg index ed0e517555cb52d87071f3aacd463462ab773c4e..ec05a6646223dfd6884f0164178d919aae69efe2 100644 --- a/LatheMacro.svg +++ b/LatheMacro.svg @@ -14,7 +14,7 @@ viewBox="0 0 888 686.00002" height="686" width="888" - inkscape:version="0.92.0 r15299" + inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="LatheMacro.svg"> + inkscape:current-layer="layer1" /> Diamater + y="496.31708">Diameter + y="544.03821" /> - Zero - + y="584.57452" /> Feed - - sub + +# = #<_ccomp> +# = #<_metric> +# = #<_absolute> +# = #<_feed> +# = #<_coord_system> +# = #<_lathe_diameter_mode> +# = #<_ijk_absolute_mode> + +G8 ; Lathe radius Mode +G90 ; Absolute Distance +G91.1 ; but not for arcs + +; #1 X coord +; #2 surface speed +; #3 cut size +; #4 feed/rpm +; #5 Z coord +; #6 radius +; #7 angle +; #8 tool number +; #9 coolant + + O10 if [#9 EQ 1] + M8 + O10 endif + +;M6 T#8 G43 + O100 if [#8 NE #<_current_tool>] + (MSG, ERROR : Set tool before use macro) + O call [#] [#] [#] [#] [#] [#] [#] + O100 return [-2] ; indicate failure to epilog + O100 endif + +#1 = [#1 / 2] ; because of radius mode + +#14 = [#<_x>] (startinG X) +#13 = #<_z> (startinG Z) + +#20 = [#6 * SIN[#7]] +#21 = [-#6 * COS[#7]] +#22 = [#6 / COS[#7]] +#23 = [#5 + #6 - #20] +#24 = [[#23 - #13] * TAN[#7]] + +G96 D2500 S#2 ; Constant Surface Speed Mode +M3 ;Start Spindle +G95 F#4 ; Feed-Per-Rev Mode +G4P1 ; Wait to reach speed + +(debuG, TurninG finish dia #1 start dia #14 start lenGth #13 finish lenGth #5) + O101 WHILE [#14 LT [#1 - #3]] + G0 X #14 + #14=[#14 + #3] + G1 X #14 + G1 Z #23 X[#14 + #24] + + o102 IF [#6 GT 0] + G3 Z#5 X[#14 + #24 + #21] I#21 K#20 + G1 X[#14 + #24 + #21 - #3] + o102 ELSE + G1 X[#14 + #24 - [#3 * 1.5]] + o102 ENDIF + + G0 Z[#13] + O101 ENDWHILE + +G0 X#1 +G1 Z#23 X[#1 + #24] + + O103 IF [#6 GT 0] + G3 Z#5 X[#1 + #24 + #21] I#21 K#20 + G1 X[#1 + #24 + #21 - #3] + O103 ELSE + G1 X[#1 + #24 - #3] + O103 ENDIF + +G0 Z#13 +G0 X#1 ; For touch-off + +M5 +M9 + +; restore g20/21, g90/g91, feed + O call [#] [#] [#] [#] [#] [#] [#] + +O endsub + +M2 +% diff --git a/lathemacro-bak/chamfer.ngc b/lathemacro-bak/chamfer.ngc new file mode 100755 index 0000000000000000000000000000000000000000..9069fe39ddebafddc9a9188bbc3378df3e0fc025 --- /dev/null +++ b/lathemacro-bak/chamfer.ngc @@ -0,0 +1,108 @@ +;chamfer +O sub + +# = #<_ccomp> +# = #<_metric> +# = #<_absolute> +# = #<_feed> +# = #<_coord_system> +# = #<_lathe_diameter_mode> +# = #<_ijk_absolute_mode> + +G8 ; Lathe radius Mode +G90 ; Absolute Distance + +; #1 X coord +; #2 feed/rpm +; #3 0.5 ? +; #4 0 ? +; #5 Z coord +; #6 tool number +; #7 0 ? +; #8 chamfer size +; #9 exterior front +; #10 interior +; #11 exterior rear +; #12 coolant + + O10 if [#12 EQ 1] + M8 + O10 endif + + +;M6 T#6 G43 + O100 if [#6 NE #<_current_tool>] + (MSG, ERROR : Set tool before use macro) + O call [#] [#] [#] [#] [#] [#] [#] + O100 return [-2] ; indicate failure to epilog + O100 endif + +#1 = [#1 / 2] ; because of radius mode + +#14 = [#<_x>] (starting X) +#13 = [#<_z>] (starting Z) + +G96 D2500 S#2 ; Constant Surface Speed Mode +M3 +G95 F0.1 ; Feed-Per-Rev Mode + +#20 = 0 + O101 if [#9 GT 0.5] ; front outside + o102 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + G0 x[#1 - #20] z#13 + G1 z#5 + G1 x#1 z[#5 - #20] + G1 x #14 + G0 z#13 + o102 endwhile + G0 x#14 z#13 + G0 x[#1 - #8] + G1 z#5 + G1 x#1 z[#5 - #8] + G1 x #14 + G0 z#13 + O101 elseif [#10 GT 0.5] ; front inside + o103 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + G0 x[#1 + #20] z#13 + G1 z#5 + G1 x#1 z[#5 - #20] + G1 x #14 + G0 z#13 + o103 endwhile + + G0 x#14 z#13 + G0 x[#1 + #8] + G1 z#5 + G1 x#1 z[#5 - #8] + G1 x #14 + G0 z#13 + O101 elseif [#11 GT 0.5] ; back outside + o104 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + G0 x[#1 - #20] z#13 + G1 z#5 + G1 x#1 z[#5 + #20] + G1 x #14 + G0 z#13 + o104 endwhile + + G0 x#14 z#13 + G0 x[#1 - #8] + G1 z#5 + G1 x#1 z[#5 + #8] + G1 x #14 + G0 z#13 + O101 endif + +M5 +M9 + +; restore g20/21, g90/g91, feed + O call [#] [#] [#] [#] [#] [#] [#] + +O endsub + +M2 +% diff --git a/lathemacro-bak/drill.ngc b/lathemacro-bak/drill.ngc new file mode 100755 index 0000000000000000000000000000000000000000..2a9934d4f62cd21abf5c11207cdac27371ee0e9d --- /dev/null +++ b/lathemacro-bak/drill.ngc @@ -0,0 +1,62 @@ +;drill +O sub + +# = #<_ccomp> +# = #<_metric> +# = #<_absolute> +# = #<_feed> +# = #<_coord_system> +# = #<_lathe_diameter_mode> +# = #<_ijk_absolute_mode> + +G7 ; diameter mode +G90 ; Absolute Distance + +; #1 drill diameter +; #2 ydepth +; #3 speed +; #4 feed/rpm +; #5 tool number +; #6 peck amount +; #7 retract amount +; #8 coolant + + O10 if [#8 EQ 1] + M8 + O10 endif + +#9 = #<_y> (starting Y) + +;M6 T#5 G43 + O100 if [#5 NE #<_current_tool>] + (MSG, ERROR : Set tool before use macro) + O call [#] [#] [#] [#] [#] [#] [#] + O100 return [-2] ; indicate failure to epilog + O100 endif + +#7 = [[1000 * #3] / [3.1415 * #1]] ; metric mode RPM + +G97 S#7 ; Constant RPM mode +M3 ;Start Spindle +G95 F#4 ; Feed-Per-Rev Mode +G4 P1 ; Wait to reach speed + +(debug, Drilling dia #1 depth #2 asked-speed #3 feed/rpm #4 tool #5 peck dist #6 calculated-rpm #7 start-Y #9) +(MSG, ERROR : TODO must retract the X axis to home position) +; G0 X0 ; TODO must retract the X axis to home position +;G0 Y#9 +G98 +G83 Y#2 R#9 Q#6 +G80 +;G0 Y#9 + +M5 +M9 + +; restore g20/21, g90/g91, feed + O call [#] [#] [#] [#] [#] [#] [#] + +O endsub + +M2 +% diff --git a/lathemacro-bak/facing.ngc b/lathemacro-bak/facing.ngc new file mode 100755 index 0000000000000000000000000000000000000000..58e39e6568c278de4d2d814f1ec30e5313bfe0a7 --- /dev/null +++ b/lathemacro-bak/facing.ngc @@ -0,0 +1,71 @@ +;Facing +O sub + +# = #<_ccomp> +# = #<_metric> +# = #<_absolute> +# = #<_feed> +# = #<_coord_system> +# = #<_lathe_diameter_mode> +# = #<_ijk_absolute_mode> + +G7 ; diameter mode +G90 ; Absolute Distance + +; #1 X coord +; #2 surface speed +; #3 cut size +; #4 feed/rpm +; #5 Z coord +; #6 angles +; #7 tool number +; #8 coolant + + O10 if [#8 EQ 1] + M8 + O10 endif + + O20 IF [#6 NE 0] + (MSG, Angled facing isn't supported yet) + O20 ENDIF + +;M6 T#7 G43 + O100 if [#7 NE #<_current_tool>] + (MSG, ERROR : Set tool before use macro) + O call [#] [#] [#] [#] [#] [#] [#] + O100 return [-2] ; indicate failure to epilog + O100 endif + +#14 = [#<_x> * 2] (starting X) +#13 = #<_z> (starting Z) + +G96 D2500 S#2 ; Constant Surface Speed Mode +M3 +G95 F#4 ; Feed-Per-Rev Mode +G4P1 ; Wait to reach speed + + O200 WHILE [#13 GT #5 + #3] + #13=[#13-#3] + G1 Z#13 + G1 X#1 + G0 Z[#13+#3] + G0 X#14 + G0 Z#13 + O200 ENDWHILE + +G1 Z#5 +G1 X#1 +G0 Z[#13+#3] +G0 X[#14+#3] +G0 Z#5 ; For touch-off + +M5 +M9 + +; restore g20/21, g90/g91, feed + O call [#] [#] [#] [#] [#] [#] [#] + +O endsub + +M2 +% diff --git a/lathemacro-bak/radius.ngc b/lathemacro-bak/radius.ngc new file mode 100755 index 0000000000000000000000000000000000000000..5bdf44ad95cd4cdc502e4b98c50bf56b59b88404 --- /dev/null +++ b/lathemacro-bak/radius.ngc @@ -0,0 +1,109 @@ +;radius +O sub + +# = #<_ccomp> +# = #<_metric> +# = #<_absolute> +# = #<_feed> +# = #<_coord_system> +# = #<_lathe_diameter_mode> +# = #<_ijk_absolute_mode> + +G7 ; diameter mode +G90 ; Absolute Distance + +; #1 X coord +; #2 feed/rpm +; #3 0.5 ? +; #4 0 ? +; #5 Z coord +; #6 tool number +; #7 0 ? +; #8 radius size +; #9 exterior front +; #10 interior +; #11 exterior rear +; #12 coolant + + O10 if [#12 EQ 1] + M8 + O10 endif + +;M6 T#6 G43 + O100 if [#6 NE #<_current_tool>] + (MSG, ERROR : Set tool before use macro) + O call [#] [#] [#] [#] [#] [#] [#] + O100 return [-2] ; indicate failure to epilog + O100 endif + +#1 = [#1 / 2] ; because of radius mode +#14 = [#<_x>] (starting X) +#13 = [#<_z>] (starting Z) + +G96 D2500 S#2 ; Constant Surface Speed Mode +M3 +G95 F0.1 ; Feed-Per-Rev Mode +G4P1 ; Wait to reach speed + +#20 = 0 + O101 if [#9 GT 0.5] ; Front outside + o102 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + G0 x[#1 - #20] z#13 + G1 z#5 + G3 x#1 z[#5 - #20] K[-#20] + G1 x #14 + G0 z#13 + o102 endwhile + G0 x#14 z#13 + G0 x[#1 - #8] + G1 z#5 + G3 x#1 z[#5 - #8] K[-#8] + G1 x #14 + G0 z#13 + O101 elseif [#10 GT 0.5] ; front inside + o103 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + G0 x[#1 + #20] z#13 + G1 z#5 + G2 x#1 z[#5 - #20] K[-#20] + G1 x #14 + G0 z#13 + o103 endwhile + + G0 x#14 z#13 + G0 x[#1 + #8] + G1 z#5 + G2 x#1 z[#5 - #8] K[-#8] + G1 x #14 + G0 z#13 + + O101 elseif [#11 GT 0.5] ; back outside + o104 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + G0 x[#1 - #20] z#13 + G1 z#5 + G2 x#1 z[#5 + #20] K#20 + G1 x #14 + G0 z#13 + o104 endwhile + + G0 x#14 z#13 + G0 x[#1 - #8] + G1 z#5 + G2 x#1 z[#5 + #8] K#8 + G1 x #14 + G0 z#13 + + O101 endif + +M5 +M9 + +; restore g20/21, g90/g91, feed + O call [#] [#] [#] [#] [#] [#] [#] + +O endsub + +M2 +% diff --git a/lathemacro-bak/restore.ngc b/lathemacro-bak/restore.ngc new file mode 100755 index 0000000000000000000000000000000000000000..3c2b5838c6f3a2cacfe369ef77e607e2893612f4 --- /dev/null +++ b/lathemacro-bak/restore.ngc @@ -0,0 +1,93 @@ +; restore metric/inch absolute/relative, feed as per paramter values +; call as 'O call [originalmetric] [originalabs] [originalfeed] [originalcomp] +; +;[#] [#] [#] [#] [#] [#] [#] +; +O sub +O100 if [#1 NE #<_metric>] +O200 if [#1] + G21 +O200 else + G20 +O200 endif +O100 endif + +O300 if [#2 NE #<_absolute>] +O400 if [#2] + G90 +O400 else + G91 +O400 endif +O300 endif + +O500 if [#3 NE #<_feed>] + F[#3] +O500 endif + + +O600 if [#4 NE #<_ccomp>] + O601 if [#4 EQ 400] + G40 + O601 endif + O602 if [#4 EQ 411] + G41.1 + O602 endif + O603 if [#4 EQ 420] + G42 + O603 endif + O604 if [#4 EQ 421] + G42.1 + O604 endif +O600 endif + + +O700 if [#5 NE #<_coord_system>] + O701 if [#5 EQ 540] + G54 + O701 endif + O702 if [#5 EQ 550] + G55 + O702 endif + O703 if [#5 EQ 560] + G56 + O703 endif + O704 if [#5 EQ 570] + G57 + O704 endif + O705 if [#5 EQ 580] + G58 + O705 endif + O706 if [#5 EQ 590] + G59 + O706 endif + O707 if [#5 EQ 591] + G59.1 + O707 endif + O708 if [#5 EQ 592] + G59.2 + O708 endif + O709 if [#5 EQ 593] + G59.3 + O709 endif +O700 endif + + +O800 if [#6 NE #<_lathe_diameter_mode>] + O801 if [#6] + G7 + O801 else + G8 + O801 endif +O800 endif + + +O900 if [#7 NE #<_ijk_absolute_mode>] + O901 if [#7] + G90.1 + O901 else + G91.1 + O901 endif +O900 endif + +O endsub +M2 diff --git a/lathemacro-bak/threading.ngc b/lathemacro-bak/threading.ngc new file mode 100755 index 0000000000000000000000000000000000000000..81e567e1bd7aa2d6c38f2647000e990038235f4c --- /dev/null +++ b/lathemacro-bak/threading.ngc @@ -0,0 +1,96 @@ +;threading +O sub + +; #1=thread.x, #2=thread.sf, #3=thread.tool-s, #4=thread.pitch-f, #5=thread.z-f, #6=thread.internal #7=thread.external + +# = #<_ccomp> +# = #<_metric> +# = #<_absolute> +# = #<_feed> +# = #<_coord_system> +# = #<_lathe_diameter_mode> +# = #<_ijk_absolute_mode> + +G8 ; Lathe radius Mode +G90 ; Absolute Distance + +; #1 X coord +; #2 feed/rpm +; #3 tool number +; #4 pitch +; #5 Z coord +; #6 interior +; #7 exterior +; #8 coolant + + O10 if [#8 EQ 1] + M8 + O10 endif +;M6 T#3 G43 + O100 if [#3 NE #<_current_tool>] + (MSG, ERROR : Set tool before use macro) + O call [#] [#] [#] [#] [#] [#] [#] + O100 return [-2] ; indicate failure to epilog + O100 endif + +#1 = [#1 / 2.0] +#14 = [#<_x> * 2] (starting X) +#13 = #<_z> (starting Z) +G96 D2500 S#2 ; Constant Surface Speed Mode +M3 +G4 P1 ; Wait to reach speed + +# = [0.86603 * #4] +# = [# * 0.125] +# = [# * 0.250] +# = [# * 0.625] +;(debug, #40 # # #) + + O101 IF [#<_metric>] + # = 0.2 + # = 0.1 + O101 ELSE + # = 0.007 + # = 0.004 + O101 ENDIF + +G95 F# ; Feed-Per-Rev Mode + +;Threading + O102 IF [#6 GT 0.5] ;internal + ;cut the minor flat diameter + ;(debug, INTERNAL Threading thread dia-#1 start-#13 finish-#5 Pitch-#4 Depth-#3) + G0 Z #13 + G0 X [#1 + # - #] + G1 Z #5 + G0 X [#1 - #] + G0 Z #13 + G96 D600 S#2 ; limit RPM in threading mode + G76 P#4 Z#5 i# j# k# H3 R1.5 Q29.5 E0 L0 + G0 X [#1 - 0.5] + O102 ELSE ;external + ; cut the major diameter + ;(debug, EXTERNAL Threading thread dia-#1 start-#13 finish-#5 Pitch-#4 Depth-#3 MF #) + G0 Z #13 + G0 X #1 + G1 X [#1 - #] + G1 Z #5 + G0 X #1 + G0 Z #13 + G96 D600 S#2 ; limit RPM in threading mode + G76 P#4 Z#5 i[-#] j# k# H3 R1.5 Q29.5 E0 L0 + G0 X [#1 + 0.5] + O102 ENDIF + +G0 Z#13 + +M5 +M9 + +; restore g20/21, g90/g91, feed + O call [#] [#] [#] [#] [#] [#] [#] + +O endsub + +M2 +% diff --git a/lathemacro-bak/turning.ngc b/lathemacro-bak/turning.ngc new file mode 100755 index 0000000000000000000000000000000000000000..6507f1b14886685294cf2cf446ec97638e979c1a --- /dev/null +++ b/lathemacro-bak/turning.ngc @@ -0,0 +1,102 @@ +;Turning +O sub + +# = #<_ccomp> +# = #<_metric> +# = #<_absolute> +# = #<_feed> +# = #<_coord_system> +# = #<_lathe_diameter_mode> +# = #<_ijk_absolute_mode> + +G8 ; Lathe radius Mode +G90 ; Absolute Distance +G91.1 ; but not for arcs + +; #1 X coord +; #2 surface speed +; #3 cut size +; #4 feed/rpm +; #5 Z coord +; #6 radius +; #7 angle +; #8 tool number +; #9 coolant + + O10 if [#9 EQ 1] + M8 + O10 endif + +;M6 T#8 G43 + O100 if [#8 NE #<_current_tool>] + (MSG, ERROR : Set tool before use macro) + O call [#] [#] [#] [#] [#] [#] [#] + O100 return [-2] ; indicate failure to epilog + O100 endif + +#1 = [#1 / 2] ; because of radius mode +#14 = [#<_x>] (starting X) +#13 = #<_z> (starting Z) + +#20 = [#6 * SIN[#7]] +#21 = [#6 * COS[#7]] +#22 = [#6 / COS[#7]] +#23 = [#5 + #6 - #20] +#24 = [[#13 - #23] * TAN[#7]] + +G96 D2500 S#2 ; Constant Surface Speed Mode +M3 ;Start Spindle +G95 F#4 ; Feed-Per-Rev Mode +G4P1 ; Wait to reach speed + +(debug, Turning finish rad #1 start rad #14 start length #13 finish length #5) + +;[${turn.x-f}] [${turn.sf-f}] [${turn.cut-f}] [${turn.feed-f}] [${turn.z-f}] [${turn.rad-f}] [${turn.angle-f}] [${turn.tool-s}] + + O101 WHILE [#14 GT [#1 + #3 / 2]] + G0 X #14 + #14=[#14-#3 / 2] + G1 X #14 + G1 Z #23 X[#14 + #24] + + o102 IF [#6 GT 0] + G2 Z#5 X[#14 + #24 + #21] I#21 K#20 + G1 X[#14 + #24 + #21 + #3/2] + o102 ELSE + G1 X[#14 + #24 + [#3 * .6]] + o102 ENDIF + + o103 IF [#7 LT 0] + G0 X#14 + o103 ENDIF + + G0 Z[#13] + O101 ENDWHILE + +G0 X#1 +G1 Z #23 X[#1 + #24] + + O104 IF [#6 GT 0] + G2 Z#5 X[#1 + #24 + #21] I#21 K#20 + G1 X[#1 + #24 + #21 + #3] + O104 ELSE + G1 X[#1 + #24 + #3] + O104 ENDIF + + O105 IF [#7 LT 0] + G0 X#14 + O105 ENDIF + +G0 Z#13 +G0 X#1 ; For touch-off + +M5 +M9 + +; restore g20/21, g90/g91, feed + O call [#] [#] [#] [#] [#] [#] [#] + +O endsub + +M2 +% diff --git a/lathemacros/chamfer.ngc b/lathemacros/chamfer.ngc index 7c21d6de9b012502e05ad85cf8a50d6f9e4811ad..4d43f9dd4247f0d4f66aec38bfebb04b84858566 100644 --- a/lathemacros/chamfer.ngc +++ b/lathemacros/chamfer.ngc @@ -31,6 +31,7 @@ G90 ; Absolute Distance # = [# / 2] ; because of radius mode # = #<_x> (starting X) # = #<_z> (starting Z) +(DEBUG,TEST) G96 D1500 S#2 ; Constant Surface Speed Mode M3 ; Start Spindle diff --git a/lathemacros/threading.ngc b/lathemacros/threading.ngc index 7e944a6c35de2997aba595c9a2b2f8c04cf407f5..f50e8886a58d127f5a2555ce4ee5b72d20258644 100644 --- a/lathemacros/threading.ngc +++ b/lathemacros/threading.ngc @@ -25,7 +25,7 @@ G90 ; Absolute Distance # = [# / 2.0] # = [#<_x> * 2] (starting X) # = #<_z> (starting Z) -G96 D1500 S# ; Constant Surface Speed Mode +G96 D2000 S# ; Constant Surface Speed Mode M4 ; Start Spindle G4 P2 ; Wait to reach speed @@ -76,7 +76,7 @@ G95 F# ; Feed-Per-Rev Mode G1 Z # G0 X # G0 Z # - G96 D600 S# ; limit RPM in threading mode + G96 D1000 S# ; limit RPM in threading mode G4 p2 G76 P# Z# i[-#] j# k# H3 R1.5 Q29.5 E0 L0 G0 X [# + 0.5] diff --git a/maurice.hal b/maurice.hal index 2006079dbb7b7c4d12376ad149669774dd90af84..de156297959785bf354bafe8b2bae689a0cb14f1 100644 --- a/maurice.hal +++ b/maurice.hal @@ -9,23 +9,23 @@ #loadrt trivkins #loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS loadrt weighted_sum wsum_sizes=4,4,2 -loadrt sum2 count=3 +#loadrt sum2 count=3 loadrt conv_s32_float count=3 -loadrt scale count=3 -loadrt and2 count=1 +loadrt scale names=FeedScale,RapidScale,SpindleScale +loadrt and2 names=EstopAnd loadusr atv_vfd -r 9600 -p even addf motion-command-handler servo-thread addf motion-controller servo-thread addf process_wsums servo-thread -addf sum2.0 servo-thread +#addf sum2.0 servo-thread addf conv-s32-float.0 servo-thread addf conv-s32-float.1 servo-thread -addf scale.0 servo-thread -addf scale.1 servo-thread -addf scale.2 servo-thread -addf and2.0 servo-thread +addf FeedScale servo-thread +addf RapidScale servo-thread +addf SpindleScale servo-thread +addf EstopAnd servo-thread #loadusr halui -ini maurice.ini #loadusr io @@ -33,9 +33,9 @@ addf and2.0 servo-thread # Global machine logic #========================================== -net state-op => and2.0.in0 -net STBEstop and2.0.in1 -net Estop-and-out and2.0.out iocontrol.0.emc-enable-in +net state-op => EstopAnd.in0 +net STBEstop EstopAnd.in1 +net Estop-and-out EstopAnd.out iocontrol.0.emc-enable-in #========================================== @@ -166,21 +166,21 @@ net FeedOv3 wsum.1.bit.1.in net FeedOv4 wsum.1.bit.0.in net FeedOv wsum.1.sum conv-s32-float.0.in net FeedOvF conv-s32-float.0.out -net FeedOvF scale.0.in -setp scale.0.gain -0.06666666666666666666666666666666666666667 -setp scale.0.offset 1 -net FeedOverride scale.0.out +net FeedOvF FeedScale.in +setp FeedScale.gain -0.06666666666666666666666666666666666666667 +setp FeedScale.offset 1 +net FeedOverride FeedScale.out net RapidOv1 wsum.2.bit.1.in net RapidOv2 wsum.2.bit.0.in net RapidOv wsum.2.sum conv-s32-float.1.in net RapidOvF conv-s32-float.1.out -net RapidOvF scale.1.in -setp scale.1.gain -0.333333333333333333333 -setp scale.1.offset 1 -net RapidOverride scale.1.out - -net SpindlePot scale.2.in -setp scale.2.gain 0.0000317581300813008 -setp scale.2.offset -0.0137195121951 -net SpindleOverride scale.2.out +net RapidOvF RapidScale.in +setp RapidScale.gain -0.333333333333333333333 +setp RapidScale.offset 1 +net RapidOverride RapidScale.out + +net SpindlePot SpindleScale.in +setp SpindleScale.gain 0.0000317581300813008 +setp SpindleScale.offset -0.0137195121951 +net SpindleOverride SpindleScale.out diff --git a/mesa.hal b/mesa.hal index ed018e112569aab69f6c2b6bd65f1051bdf453e9..100d686a1b802a5919e2b57e503d995956704bc6 100644 --- a/mesa.hal +++ b/mesa.hal @@ -3,10 +3,12 @@ loadrt hostmot2 loadrt hm2_pci config="num_encoders=2 num_pwmgens=0" loadrt mux8 names=mpg loadrt abs count=1 +loadrt near names=atspeed addf hm2_5i24.0.read servo-thread addf hm2_5i24.0.write servo-thread addf mpg servo-thread +addf atspeed servo-thread addf abs.0 servo-thread #We have a 6i24 in emulation mode so all pin will be hm2_5i24.0. @@ -22,6 +24,11 @@ net spindle-vel-fb-rpm abs.0.in hm2_5i24.0.encoder.00.velocity-rpm net spindle-vel-fb-rpm-abs abs.0.out net spindle-index-enable hm2_5i24.0.encoder.00.index-enable +net spindle-vel-fb-rps atspeed.in1 +net spindle-vel-cmd-rps atspeed.in2 +net spindle-at-speed atspeed.out +setp atspeed.scale 1.05 + #################################################################### #Jog Handling ####################################################################