Block XY movement below safeZ

101 views
Skip to first unread message

Łukasz

unread,
Sep 14, 2022, 2:24:50 AMSep 14
to OpenPnP
Hi,
For safety matters(safety of nozzle tip :) ) i would like to block any XY move when Z is outside of safe z area.
How can i do it.
I thought maybe i can use script actuator with axis interlock (Confirm in Range Before Axes Move) XY and check in script if z is in safe z and return value to actuator but script doesnt fire up.
Is there any other way to do it?

Litterio Andrea Guainella

unread,
Sep 14, 2022, 2:56:20 AMSep 14
to OpenPnP
Hi Lukasz,
what event are you trying to listen?
I mean  what did you name the file for scripting?

LAG

Łukasz

unread,
Sep 14, 2022, 3:16:11 AMSep 14
to OpenPnP
Its not event script its regular one.
My plan was to fire up script, check actual z value and return it to axis interlock actuator but script doesnt fire up.
2.png
1.png

mark maker

unread,
Sep 14, 2022, 3:59:16 AMSep 14
to ope...@googlegroups.com

Hi Łukasz

If you wanted to do exactly what you describe, you can do it natively with the axis interlock actuators (no scripts needed).

Combine a Signal Axes Inside Safe Zone actuator with a Confirm Match Before Axes Move.

https://github.com/openpnp/openpnp/wiki/Axis-Interlock-Actuator#axis-interlock

But OpenPnP does not usually work with these restrictions, you need to move in X/Y when down in Z, such as when nozzle tip changing, or during bottom vision, to adjust the offsets (if camera focal plane is outside Safe Z), and if you use certain feeders, actuated by nozzle/actuator movements, like the BlindsFeeder or the PushPullFeeder, also sometimes DragFeeder, LeverFeeder.

The concern to bump the nozzles is typical for the machine build phase. It usually goes away once things are properly set up and operated with the proper "action buttons" functionality that always go to Safe Z while moving. Manual jogging is practically never used anymore, once the machine is set up. Consider using reduced speeds wile jogging is needed, collisions are still ugly, but at least for the usual stepper driven machines nothing breaks permanently, or you may even be fast enough using your Emergency Stop.

One major thing that I found made my concerns go away was to sink the nozzle tip changer in the table:

https://makr.zone/pick-place-machine-first-simulated-small-test-run/66/

Agreed, that does still not prevent crash if Z is even lower, but in my case it made a big difference (I bumped my nozzle on the changer multiple times, and once so hard I had to re-square the machine; that's when I finally sunk it beneath the table surface).

_Mark

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/c6dfb5f3-2064-4b6a-8fb6-9b54da9fc4a8n%40googlegroups.com.

Łukasz

unread,
Sep 14, 2022, 4:26:18 AMSep 14
to OpenPnP
In my machine there is no need to move XY below safe Z.  "Anything that can go wrong will go wrong" I already bent Z stepper motor axis with 1.4m/s (painful crash) so i definitly want to block a possibility  to crash.
I created 2 axis interlock actuators like you said, what should i type to confirmation pattern to make it work?
1.png
2.png

Łukasz

unread,
Sep 14, 2022, 4:49:45 AMSep 14
to OpenPnP
Ok, i managed to link them together. Thanks

Łukasz

unread,
Sep 14, 2022, 11:44:56 AMSep 14
to OpenPnP
Back home i tested it on real machine and there is a problem. There is a big time gap(about 0.5s) between clicking move z and actually move.

2022-09-14 17:40:06.012 AbstractHeadMountable DEBUG: N.moveTo((248.617717, 207.299693, -30.960000, 19.109757 mm), 1.0)
2022-09-14 17:40:06.014 ActuatorInterlockMonitor TRACE: IsSafeZ interlock actuation changes to false
2022-09-14 17:40:06.014 ReferenceActuator DEBUG: IsSafeZ.actuate(false)
2022-09-14 17:40:06.014 NullDriver DEBUG: actuate(IsSafeZ, false)
2022-09-14 17:40:06.515 GcodeDriver DEBUG: [serial://COM1] >> M204 S1778446.65 G1   Z-30.9600  F253029.80 ; move to target, 5000
2022-09-14 17:40:06.530 GcodeDriver$ReaderThread TRACE: [serial://COM1] << ok
2022-09-14 17:40:06.530 GcodeDriver TRACE: [serial://COM1] confirmed M204S1778446.65G1Z-30.96F253029.8

Did i configure it wrong?
4.png
2.png
1.png
3.png

Łukasz

unread,
Sep 14, 2022, 3:55:27 PMSep 14
to OpenPnP
Changing IsSafeZ actuator driver to gcode driver  solved the problem
Reply all
Reply to author
Forward
0 new messages