Change the axis limit
- Moutomation
- Offline
- Premium Member
Less
More
- Posts: 135
- Thank you received: 11
14 Aug 2024 20:46 #307744
by Moutomation
Change the axis limit was created by Moutomation
Hello,
Can I change the axis limits, maximum speed and ramp with the variable addresses I wrote in the G-code file or with classicladder without entering the ini file?
For example :
eg.ngc
℅
#100 = 1000 (x-axis positive limit)
#101 = 200 (ramp)
m2
℅
Or can I do it with the Classic Ladder?
Can I change the axis limits, maximum speed and ramp with the variable addresses I wrote in the G-code file or with classicladder without entering the ini file?
For example :
eg.ngc
℅
#100 = 1000 (x-axis positive limit)
#101 = 200 (ramp)
m2
℅
Or can I do it with the Classic Ladder?
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 3946
- Thank you received: 1705
15 Aug 2024 07:32 - 15 Aug 2024 07:43 #307778
by Aciera
Replied by Aciera on topic Change the axis limit
The short answer is, yes, you can change axis limits through HAL connections as well as through GCODE but there are a few things you need to be aware of.
- Axis limits are exposed as hal pins only after the GUI has started up. So any hal connections would need to be made in the POSTGUI_HALFILE
linuxcnc.org/docs/html/gcode/overview.html#gcode:ini-hal-params
As stated in the documentation #<_ini[section]key> parameters are read_only so if you want to change the value from Gcode you have to use a custom Mcode that uses a script language (eg tcl or bash) to execute a 'halcmd'
- Changes to ini parameters during GCODE execution will only become effective AFTER a quebuster command (eg M66 E0 L0)
My usual solution to change ini parameters from GCode is this:
1. save this bash script as 'M123' to a folder named 'mcodes' in your machine config folder and mark as executable:
To make sure that the changes are actually used we call the above script from a GCODE subroutine.
2. Save the following code as 'm123_wrapper.ngc' and save to a folder in your [RS274NGC]
SUBROUTINE_PATH
To make linuxcnc aware of these mcodes add these lines to the [RS274NGC] section of your ini file
Note 'argspec=PQ' will enforce that the 'M423' command is followed by a 'P' word containing the code for which axis [X(1),Y(2)] and which limit [min (1), max(2)] should be changed and a 'Q' word containing the limit value.
example usage:will set 'ini.x.max_limit' to '401'
The parameter handling can be changed to your specific requirements in the 'case' part of the bash script above.
- Axis limits are exposed as hal pins only after the GUI has started up. So any hal connections would need to be made in the POSTGUI_HALFILE
linuxcnc.org/docs/html/gcode/overview.html#gcode:ini-hal-params
As stated in the documentation #<_ini[section]key> parameters are read_only so if you want to change the value from Gcode you have to use a custom Mcode that uses a script language (eg tcl or bash) to execute a 'halcmd'
- Changes to ini parameters during GCODE execution will only become effective AFTER a quebuster command (eg M66 E0 L0)
My usual solution to change ini parameters from GCode is this:
1. save this bash script as 'M123' to a folder named 'mcodes' in your machine config folder and mark as executable:
#!/bin/bash
P=${1%.*}
Q=${2%.*} # in case you want to use the second parameter to0
echo " P: ${P} Q: ${Q}";
case $P in
11) echo „X min limit“
halcmd setp ini.x.min_limit $Q;;
12) echo „X max_limit“
halcmd setp ini.x.max_limit $Q;;
21) echo „Y min_limit“
halcmd setp ini.y.min_limit $Q;;
22) echo „Y max_limit“
halcmd setp ini.y.max_limit $Q;;
esac
exit 0
To make sure that the changes are actually used we call the above script from a GCODE subroutine.
2. Save the following code as 'm123_wrapper.ngc' and save to a folder in your [RS274NGC]
SUBROUTINE_PATH
; this is the wrapper for the bash script
o<m123_wrapper>sub
M66 L0 E0 ;force sync, stop read ahead
o100 if [EXISTS [#<P>]]
o100 else
#<P> = 0 ;if no P word has been passed we use the default (0)
o100 endif
o101 if [EXISTS [#<Q>]]
o101 else
#<Q> = 0 ;if no Q word has been passed we use the default (0)
o101 endif
M123 P#<P> Q#<Q> ;call the bash script
M66 L0 E0 ;force sync, stop read ahead
o<m123_wrapper>endsub
m2
To make linuxcnc aware of these mcodes add these lines to the [RS274NGC] section of your ini file
USER_M_PATH = ./mcodes
REMAP = M423 modalgroup=10 argspec=PQ ngc=m123_wrapper
Note 'argspec=PQ' will enforce that the 'M423' command is followed by a 'P' word containing the code for which axis [X(1),Y(2)] and which limit [min (1), max(2)] should be changed and a 'Q' word containing the limit value.
example usage:
M423 P12 Q401
The parameter handling can be changed to your specific requirements in the 'case' part of the bash script above.
Last edit: 15 Aug 2024 07:43 by Aciera. Reason: clarification
The following user(s) said Thank You: tommylight, Moutomation
Please Log in or Create an account to join the conversation.
- Moutomation
- Offline
- Premium Member
Less
More
- Posts: 135
- Thank you received: 11
15 Aug 2024 16:23 #307826
by Moutomation
Replied by Moutomation on topic Change the axis limit
Thanks to you, many of my problems were solved. Thank you very much for your help. You are truly an expert.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
- Moutomation
- Offline
- Premium Member
Less
More
- Posts: 135
- Thank you received: 11
17 Aug 2024 11:14 #307999
by Moutomation
Replied by Moutomation on topic Change the axis limit
Attachments:
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 3946
- Thank you received: 1705
17 Aug 2024 11:41 #308001
by Aciera
Replied by Aciera on topic Change the axis limit
You are looking at 'ini.0.' values. Those correspond to the [JOINT_0] section in the ini file. If you want to see the [AXIS_X] values you would need to navigate to 'ini.x.' which should be lower down in the list on the left hand side of the screen shot.
The following user(s) said Thank You: Moutomation
Please Log in or Create an account to join the conversation.
- Moutomation
- Offline
- Premium Member
Less
More
- Posts: 135
- Thank you received: 11
17 Aug 2024 13:04 #308003
by Moutomation
Replied by Moutomation on topic Change the axis limit
You're right, I found it, thanks a lot
Please Log in or Create an account to join the conversation.
Time to create page: 0.076 seconds