Avoid ProbeCrash

More
6 years 1 day ago #187813 by MaHa
Avoid ProbeCrash was created by MaHa
Times ago, I made another attempt to protect the probe against crash. Even forgot it's there... This Userspace Python Component, from mymachine.hal: 'loadusr -W protprob'
and submit T-number of Probe: 'setp protprob.prob 999'
The File is placed in $PATH (without '.py')
Without Probe loaded, poll interval is about 5 seconds. If probe in spindle, poll at max interval.
Code:
#!/usr/bin/python import hal import sys import linuxcnc import time s = linuxcnc.stat() c = linuxcnc.command() h = hal.component("protprob") h.newpin ("prob", hal.HAL_S32, hal.HAL_IN) oldprob = 0 oldtrig = 0 h.ready() try: while 1: s.poll() if s.tool_in_spindle == h['prob']: time.sleep(0) if s.probing == 1: oldprob = 1 if s.probe_val == 1 and oldprob == 0: c.abort() elif s.probe_val == 1 and oldprob == 1: oldtrig = 1 elif s.probe_val == 0 and oldtrig == 1: oldprob = 0 oldtrig = 0 else: time.sleep(5) except KeyboardInterrupt: raise SystemExit # **************************************************** # in file: mymachine.hal # loadusr -W protprob # setp protprob.prob 999 # File be placed in $PATH , eg. /usr/xxx/ # echo $PATH will display the current PATH settings # Berechtigungen: Root: Lesen und Schreiben / yourname: Nur Lesen / Nur Lesen

EDIT:
What a shame...I replaced my computer this summer and moved only the user directory, and the file from my archive was outdated, unfinished. Now i fixed everything and replaced the file here with the current version.

Please Log in to join the conversation.

More
5 years 11 months ago #188349 by MaHa
Replied by MaHa on topic Avoid ProbeCrash
Until the problem with not recognizing probe deflection while moving without G38.n is solved, i continue use this.
When i checked the load of the PC with 'top' , i was wondering about the high cpu load reached from this component.

Attachment not found



When the probe is not loaded, the sleep timer of about 5 seconds is no problem, but time.sleep(0) when probe in spindle, is not a good idea. So i tested some other values.

Attachment not found



I set the probe contact point on my calibration ring to X zero, and in the ngc file a movement G1 X-0.5 F500. In worst case, this 0.5mm won't hurt the probe.
In my probing routines feed is set to F100 for probing, travelling around F500. That's why i tested only this.

time.sleep(0.001) F500 stoped finally between X-0.262 and X-0.3
time.sleep(0.0005) F500 stoped between X-0.35 and X-0.358
time.sleep(0.00001) F500 stoped always at X-0.35.

Always a cpu load from 0.3% to 2% reached.

time.sleep(0) only produced a very high cpu load, and stop was also at X-0.35
So I will use time.sleep(0.001), which produces average 0.3 %
I can live with stoping within 0.35mm, as the possible deflection of my probe is larger.

Edit:
Doing the same in MDI mode, testing the built in behaviour, also G1 X-0.5 F500.
It stoped at X-0.14 to X-0.15mm.

Please Log in to join the conversation.

Time to create page: 0.524 seconds
Powered by Kunena Forum