Gmoccapy - spindle restarts at program stop

More
22 Oct 2024 16:52 #312881 by Aciera
Does this happen in QtDragon for you as well?

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 10:16 - 24 Oct 2024 10:19 #313046 by MennilTossFlykune
Yes. I have a real machine with QtDragon where this has been happening for some time now but I thought it was caused by something else until I noticed it happening in a simulation as well. I did some more experimenting and I discovered that if I have a G64 with a large P value, like 1 for example, the spindle doesn't restart. The smaller the P value is the further into a program it has to run before the spindle doesn't restart after an abort.With a G61 the spindle always restarts. I've only used 3D_Chips.ngc to test it.

I think this is related to what's happening:
github.com/LinuxCNC/linuxcnc/issues/579#issuecomment-640557582

This sure does sound related to #865 and #882, where readahead segments aren't dropped during task abort, and get flushed into the queue by commands following the abort: the ON_ABORT_COMMAND in this case, and the restored state tag in the case of #865.

However, in my quick test, I couldn't tickle the bug in the 2.8 branch by adding the ON_ABORT_COMMAND from @sheetcam's config. Anyway, if it is the same problem, hopefully #882 will fix it.

Last edit: 24 Oct 2024 10:19 by MennilTossFlykune.

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 11:55 #313062 by Aciera
If it's related to that issue then we should expect this to also show up using the Axis GUI. Are you seeing it in Axis as well?

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 12:15 #313065 by MennilTossFlykune
Yes. I tested it now on 2.10 RIP and it seems to behave like how I described.
The following user(s) said Thank You: Aciera

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 12:47 #313070 by Aciera
Yes, I can reproduce this as well (took me a few tries but eventually I also got the spindle to still run when the program stopped):

 

Python stat:
acceleration    100.0
active_queue    0
actual_position    0.0000   0.0000   -0.1561
adaptive_feed_enabled    False
ain    0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000
angular_units    1.0000
aout    0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000
axis_mask    7
block_delete    True
call_level    0
command    -
current_line    2613
current_vel    0.0000
cycle_time    0.001
debug    0
delay_left    0.0
din    False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False
distance_to_go    0.0000
dout    False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False False
dtg    0.0000   0.0000   0.0000
echo_serial_number    126
enabled    True
estop    0
exec_state    done
feed_hold_enabled    True
feed_override_enabled    True
feedrate    1.0
file    /tmp/tmput72cao1/3D_Chips.ngc
flood    0
g5x_index    1
g5x_offset    0.0000   0.0000   -1.9685
g92_offset    0.0000   0.0000   0.0000
gcodes    G1 G17 G40 G21 G90 G94 G54 G49 G99 G64 G97 G91.1 G8
homed    1 1 1
ini_filename    /home/user/git/linuxcnc-master-official/configs/sim/axis/axis.ini
inpos    True
input_timeout    False
interp_state    idle
interpreter_errcode    0
joints    3
kinematics_type    identity
limit    0 0 0
linear_units    0.0394
max_acceleration    100.0000
max_velocity    5.0000
mcodes    M3 M8 M48 M53 M0
misc_error    (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
mist    0
motion_id    0
motion_line    0
motion_mode    teleop
motion_type    none
num_extrajoints    0
optional_stop    True
paused    False
pocket_prepped    1
position    0.0000   0.0000   -0.1561
probe_tripped    False
probe_val    0
probed_position    0.0000   0.0000   0.0000
probing    False
program_units    mm
queue    0
queue_full    False
queued_mdi_commands    0
rapidrate    1.0
read_line    0
rotation_xy    0.0000
settings    2614.0000 1000000.0000 1600.0000 0.1000   0.1000
spindle    0                brake 1
0            direction 0
0              enabled 1
0     override_enabled True
0                speed 1600.0
0             override 1.0
0                homed False
0         orient_state 0
0         orient_fault 0
1                brake 1
1            direction 0
1              enabled 0
1     override_enabled False
1                speed 0.0
1             override 1.0
1                homed False
1         orient_state 0
1         orient_fault 0
2                brake 1
2            direction 0
2              enabled 0
2     override_enabled False
2                speed 0.0
2             override 1.0
2                homed False
2         orient_state 0
2         orient_fault 0
3                brake 1
3            direction 0
3              enabled 0
3     override_enabled False
3                speed 0.0
3             override 1.0
3                homed False
3         orient_state 0
3         orient_fault 0
4                brake 1
4            direction 0
4              enabled 0
4     override_enabled False
4                speed 0.0
4             override 1.0
4                homed False
4         orient_state 0
4         orient_fault 0
5                brake 1
5            direction 0
5              enabled 0
5     override_enabled False
5                speed 0.0
5             override 1.0
5                homed False
5         orient_state 0
5         orient_fault 0
6                brake 1
6            direction 0
6              enabled 0
6     override_enabled False
6                speed 0.0
6             override 1.0
6                homed False
6         orient_state 0
6         orient_fault 0
7                brake 1
7            direction 0
7              enabled 0
7     override_enabled False
7                speed 0.0
7             override 1.0
7                homed False
7         orient_state 0
7         orient_fault 0
spindles    1
state    rcs_done
task_mode    manual
task_paused    0
task_state    on
tool_from_pocket    1
tool_in_spindle    1
tool_offset    0.0000   0.0000   0.0000
toolinfo    <built-in method toolinfo of linuxcnc.stat object at 0x562b15b3de50>
velocity    0.0

Attachments:

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 12:49 #313071 by Aciera
Has this been filed as an issue on github yet?
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 14:01 #313087 by MennilTossFlykune
I'm still not sure exactly how to describe this issue, I can only demonstrate it.
You can see here how G61/G64 are related to this:

The larger the P value the further into the program the interpreter will be able to read.
If the interpreter has reached a queuebuster when the program is aborted, the interpreter state and machine state will be synched properly(?)

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 15:10 #313098 by Aciera

You can see here how G61/G64 are related to this:

Hm, I'm afraid I don't. You are inserting a tool change which I believe is a queue buster. I'm not sure how the P value in G64 would influence how far ahead the interpreter read ahead is. Could you elaborate a bit?

Please Log in or Create an account to join the conversation.

More
24 Oct 2024 15:41 - 24 Oct 2024 15:43 #313101 by Aciera
Looks like this might be limited to spindle speed and direction pins not consistently reacting to a program stop as 'spindle.0.on' seems to always clear.


 
Attachments:
Last edit: 24 Oct 2024 15:43 by Aciera.
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

Moderators: newbynobiHansU
Time to create page: 0.156 seconds
Powered by Kunena Forum