开源改变世界

火炬点火时忽略限制? #478

推推 grbl 3年前 (2023-01-22) 84次浏览
打开
neomadic 打开了这个问题 2018 年 6 月 20 日 · 45条评论
打开

火炬点火时忽略限制?#478

neomadic 打开了这个问题 2018 年 6 月 20 日 · 45条评论

注释

火炬点火时忽略限制? #478
新狂热的 评论了 2018 年 6 月 20 日  

有什么办法可以告诉 grbl 在等离子炬点火期间在预定时间内忽略限位开关和探头输入?(编辑:我实际上需要在手电筒点火时禁用 ABRT 输入和探头输入。)

每当等离子割炬没有获得最快/完美的电弧启动时,我真的在我的探头/防碰撞传感器设置中与 EMI 作斗争除了构建自定义硬件去抖动电路外,我已经完成了屏蔽/路由/接地方面的所有建议去,我不想在常规操作期间使探头电路过于敏感。如果我可以告诉 grbl 在 M03 命令后忽略这些输入一秒钟,那就太酷了。

就硬件去抖动而言,我的接近传感器和防碰撞传感器是 NPN NC 24v 200ma,运行以触发继电器,然后关闭 5v 接地和我的分线板上的探头和 abrt 输入之间的电路。在 g38.2 周期以外的任何时间触发的探头开关似乎没有任何作用,但是当我发出 M03 来点燃手电筒时,如果地面不完美并且它会在一瞬间前搜寻建立电弧后,探头传感器灯闪烁,grbl 要么在其轨道上停止而没有错误,要么为 ABRT 设置警报。我在想我需要在继电器之前用一个盖子和电阻去抖动传感器的输出。如果有人对要使用的电路和值有任何建议,我将不胜感激。我已经研究了一下,有点不知所措。我’

火炬点火时忽略限制? #478
贡献者

除了更改源代码本身之外,此时没有软件可以暂时禁用它们,只能不断更改设置,由于 EEPROM 周期过多,因此不推荐这样做。但是,您可以尝试使用其中一个辅助输出(例如冷却剂控制命令)来控制电线连接。不确定类似的电路会是什么样子。可能是一套继电器。

火炬点火时忽略限制? #478
作者
新狂热的 评论了 2018 年 6 月 20 日  

我有一个非常擅长编码的朋友。您认为更改源代码会非常耗时吗?对于手电筒和主轴嘈杂的人来说,这确实是一个不错的功能。

旁路继电器是我的后备想法。我还剩下两个继电器,所以我可以用二极管隔离碰撞传感器输出并用一个继电器断开它并用另一个继电器断开探头输出。我考虑过使用 torch on(M03) 命令来触发断路器继电器,但我希望防撞传感器在手电筒打开时继续工作。M08/09 正忙于打开/关闭 THC。看起来我需要第三个 M 代码输出,或者需要使用另一个继电器来绕过带有 thc on 信号的碰撞传感器旁路继电器触发器….

只需在此处输入此内容,以防其他人将来需要该信息:
工作流程:
M03(火炬/触发探头和碰撞传感器旁路继电器 – 如果同时触发不起作用,则可能是火炬点火的硬件延迟信号)
G04 P1.0(暂停穿孔延迟)
G01 Z0.115(下降到切割高度)
M08(打开 THC/触发继电器切割信号到碰撞传感器旁路继电器
G01/02/03(运行切割)
M09(关闭 THC/碰撞传感器返回到旁路)
M05(关闭手电筒/关闭两个旁路继电器)

除了可能需要设计一个电路来稍微延迟 M03 输出,它在继电器上分流到手电筒,这实际上看起来非常简单。

我明天试试!

再次感谢您的帮助!

火炬点火时忽略限制? #478

快速的软件破解是在 spindle_set_state() 的开头添加限制禁用并在 mc_dwell() 的结尾重新启用限制,这样 M3/G4 和 M5/G4 将完成所有工作

火炬点火时忽略限制? #478
作者
新狂热的 评论了 2018 年 6 月 20 日  

将重新启用附加到停留结束的好主意。我绝对没有想到这一点。

我看看能不能弄明白。第一步,找出优化后的 C 与 C 的相似程度,并尝试记住 1992 年的计算机课。哈哈。我感觉又是学习曲线山上的一天……

火炬点火时忽略限制? #478
作者

我发誓我已经打开并搜索了每个 .h 和 .c 文件,但我只能找到提到了 3 次的“set_spindle_state”,而且这些地方看起来都不对。
我也没有发现任何地方提到“ABRT”。

有没有办法一次搜索所有文件的短语?

更妙的是,用 BTC 换取帮助是一种不好的形式吗?

火炬点火时忽略限制? #478

set_spindle_state()在spindle_control.c中,mc_dwell()在motion_control.c中

limits_disable() 和 limits_init() 应该禁用和启用限制

火炬点火时忽略限制? #478
作者
新狂热的 评论了 2018 年 6 月 20 日  

我在 motion control.c 中找到了这个

// 以秒为单位执行驻留。
void mc_dwell(float seconds)
{
if (sys.state == STATE_CHECK_MODE) { 返回;}
protocol_buffer_synchronize();
delay_sec(秒,DELAY_MODE_DWELL);
}

我还发现了一个似乎启用/禁用限制的命令,因此如果我将碰撞传感器的输出更改为 z 限制而不是 abrt 输入,则应该可以忽略限制。

限制禁用();// 为周期持续时间禁用硬限制引脚更改寄存器

我发现这个小金块看起来可以以某种方式用来关闭探测器:

sys_probe_state = PROBE_OFF; // 确保禁用探测器状态监视器。

我暖和了吗?:)

火炬点火时忽略限制? #478
贡献者

确保在缓冲区同步线之后禁用限制。还有为什么你需要禁用探针?除非处于探测周期,否则它不会读取任何内容。

火炬点火时忽略限制? #478
作者
新狂热的 评论了 2018 年 6 月 20 日  

这个语法对我来说将是棘手的部分。我现在甚至不知道缓冲区同步线是什么,但我会在晚上结束时知道。

我在代码中看到,在一个探测周期后,探测输入被禁用,但探测传感器是主要的传感器,当手电筒点火时,它会闪烁并导致我今天出现问题。我可能正在处理继电器线圈弹跳的电磁干扰,所以我明天肯定会用继电器物理断开那个。我只需要制作两个短跳线,也许二极管隔离我的主轴输出以将其分开。

@langwadt出于某种原因,您的帖子刚刚出现。再次感谢指点。

火炬点火时忽略限制? #478

我知道您正在寻找软件修复程序,但自从 18 个月前组装我的机器以来,我一直遇到限位开关问题。虽然在归位循环期间一切正常,但一旦主轴激活,限位开关就会触发。因此必须禁用硬限制。我很高兴地说,这个周末我终于抽出时间来解决这个问题。我在开关和 Arduino 之间安装了一个 5 英镑的光电隔离器。问题彻底解决。我看到你有继电器来分离 24v 和 5v 系统,但它们没有与光电相同的噪声隔离。有些继电器包括 opto-iso。可用于高电流切换,但在您的情况下这太过分了。如果这是您想要追求的选择,我很乐意详细说明

火炬点火时忽略限制? #478
作者

我今天一整天都在和这件事战斗。首先,我设置了两个光电触发继电器来断开探头/碰撞开关及其继电器的电源。我连接到 M3 输出以断开连接,然后在打开 THC 的同时使用 M08 重新连接它。只需为继电器通电和断电就足以设置限位开关警报,因此它不起作用。

接下来,我使用继电器断开碰撞传感器继电器输出。这允许割炬点火并且通常切割得很好,但由于 EMI,我在切割时仍然会随机触发 z 限制。我正在传感器及其电线周围缠绕箔纸,明天将其接地,看看是否有帮助。我还在 grbl 编译选项中看到了一些关于限位开关去抖动的东西,所以我也在研究它。

我用来将分弧电流切换到 THC 并打开和关闭手电筒的 5v 继电器是光电隔离的,但 24v 继电器不是。它们确实安装了二极管和 LED,但没有去抖动电路。由于 prox 传感器是 24v,我需要能够处理它的光隔离器,然后需要更多的光隔离器来调节来自继电器的 5v 开关接地。

我今晚会研究所有这些。如果有一种方法可以在 z 限制输入上设置 250 毫秒的软件延迟,那就太好了!

火炬点火时忽略限制? #478
危机 评论了 2018 年 6 月 21 日 通过电子邮件
火炬点火时忽略限制? #478

@neomadic:我想您已经尝试在继电器上使用 NC 触点来降低 EMI 灵敏度 – IMO 是必须的,特别是如果有很长的电缆连接到 MCU 时。另一种可能有用的补救措施是使用双绞线,最好是屏蔽电缆,并且屏蔽层仅在一端接地。

火炬点火时忽略限制? #478
作者

@cri-s
Debounce 已启用但随机,当手电筒打开时,我看到探头接近传感器上的小 LED 闪烁,因此它需要比默认设置更多的时间。我没能看到防碰撞传感器闪烁,但这是被触发的电路。我认为在 70ipm 时,如果我在 250 毫秒的去抖动中编程,那只足够通过开关 1/16-1/8″ 行程的时间,并且在防碰撞浮动中至少有 3/8″ 的弹簧行程头。感谢您提供有关调整去抖动时间的提示。我在那里看到了但无法弄清楚如何改变它。

发送 $21 命令是否写入 eeprom?我不知道这些更改可以通过 gcode 或即时进行。

@terjeio
我不确定“使用 NC 联系人”是什么意思。如果 24v 至 5v 继电器的线圈由于传感器主体本身接收到电磁干扰而触发,那么无论继电器是使用 NO 还是 NC 连接设置的,限制触发器都不会相同吗?

就接地而言,一切都使用黑客 USB 电缆连接,并在 mcu 端预先建议接地。组件星形接地。我将 6 英尺长的铜线埋入地下,并从控制器和工作台走单独的地线。我什至在继电器周围包裹了箔纸并将其连接到外壳接地。

我对此研究得越多,就越得出结论,我需要在龙门架上铺设专用接地线,连接到焊炬支架底座周围的屏蔽环。这也消除了飞渣规格使机械 z 上限开关短路的可能性。

我现在非常需要一台示波器……:)

火炬点火时忽略限制? #478
危机 评论了 2018 年 6 月 22 日 通过电子邮件
火炬点火时忽略限制? #478
terjeio 评论了 2018 年 6 月 22 日  

@neomadic: 你确定继电器是由 EMI 触发的吗?这意味着一些“严重”的电流尖峰通过线圈。要测试的一些假设问题/场景:继电器是否靠近 MCU 或传感器?会不会是 EMI 是在 MCU 端接收到的,而不是由继电器线圈接收到的?传感器和继电器是否由与 MCU 相同的电源供电?如果是这样,或者可能不管,尝试用电池为传感器端供电并让它浮动?在继电器线圈上加一个电容?也是电阻?- 这会增加传感器的负载,如果继电器具有相对较高的线圈电阻,可能会有所帮助,请检查传感器规格以了解允许的最大电流并据此计算负载电阻。EMI 不太可能影响低阻抗电路。

编辑:忘了一件事,你的传感器是 NC,对吧?然后线圈通常通电,然后需要一个 EMI 脉冲来抵消通过线圈的电流以将其关闭……如果 EMI 确实如此,您也可以尝试在线圈上添加一个二极管,阳极接地。

火炬点火时忽略限制? #478

老实说@terjeio似乎比我更了解这一点,但我所知道的是对我有用的东西。我将尝试说明我是如何解决限位开关问题的,请耐心等待,因为我可能会混淆术语。
我愚蠢地在限位开关接线旁边用非屏蔽电缆为 2kw 主轴运行了 3 相电源,这就开始了问题。由于价格便宜,我不想使用合适的电缆,因为屏蔽等效物的额外周长不适合电缆链等。
为了消除限制的错误触发,我将常闭配置的开关连接到 12v 电源。一根单独的火线从电源连接到每个轴上的一对限位开关。常闭开关将 12v 电压发送到光隔离器的阳极侧,将阴极连接到共轨并返回到 12v 电源。然后将单片机连接到光电的输出,。在正常操作期间,单片机上的输入引脚通过光电被拉到地。当开关跳闸时,光电关闭,单片机的引脚电压变高。为了使用它,配置限制引脚反转需要 $5=1
值得注意的是,MCU 由一个 DC 到 DC 降压转换器供电,该转换器由相同的 12v 限制电源供电。我确定这是不好的做法,但它似乎不会对操作产生不利影响。昨晚机器以最大转速连续运行 6 小时,主轴完美运行。在引入光电之前肯定不会发生的事情。

nb 该系统稳健性的另一个证明是探头也以相同的方式运行,但只是开路。12v 热直接焊接到主轴外壳(通过夹头具有连续性)主轴与机器的其余部分隔离。为了探测工具高度,我简单地调用了一个 g30 来移动到机床床上的一块铝板,它又连接到一个光电的阳极。G38.1 发送工具向下接触板并设置零位。值得注意的是在此期间主轴没有运行,我没有尝试过但它可能会导致问题

火炬点火时忽略限制? #478
作者

你确定继电器是由 EMI 触发的吗?

我没有示波器,但有时在割炬点火时,有时在切割时,我看到探头传感器上的光闪烁。GRBL 应该忽略探头电路,但防碰撞传感器是同类的,在几英寸内,并设置为触发 Z 限制输入。当灯光闪烁时,我能听到继电器线圈颤动的声音。

继电器是否靠近 MCU 或传感器?

它大约六英寸远,用箔纸包裹并接地。

会不会是 EMI 是在 MCU 端接收到的,而不是由继电器线圈接收到的?

我将 rPi 和 protoneer 安装在一个旧电脑机箱中,该机箱距离等离子切割机箱本身约 10 英尺,距离龙门架/割炬约 6 英尺。机箱内的所有电源线都是双绞线,绝不与信号线交叉。使用更多功率的组件彼此靠近安装。电线尽可能短并且绝缘。

传感器和继电器是否由与 MCU 相同的电源供电?

传感器和继电器线圈由运行步进驱动器和 THC 单元的 24v 电源供电。他们使用他们的 NO 连接桥接 protoneer 板上的 5v 接地与探头和 z 限制输入之间的连接。

如果是这样,或者可能不管,尝试用电池为传感器端供电并让它浮动?在继电器线圈上加一个电容?也是电阻?

传感器能够达到 300 毫安,继电器线圈为 1 瓦/1 瓦,因此在 24 伏时,它们应该拉动 42 毫安。我会用我的电表检查一下。
https://datasheet.octopart.com/HH52P-DC24V-Fuji-Electric-datasheet-13119728.pdf

编辑:忘了一件事,你的传感器是 NC,对吧?
它们是:
https ://www.amazon.com/uxcell-LJ18A3-8-Z-Tubular-Inductive-Proximity/dp/B008ID9J3U

在正常操作中,它们会感应金属,因此不会发出任何低信号。当手电筒支架与其底座分离时,它们会离开底座,从而使继电器线圈接地。今天我没有时间尝试更改去抖动设置并重新编译 grbl,但我真的希望这能解决问题。

非常感谢您的意见。

火炬点火时忽略限制? #478
作者

@JamieAKing

我喜欢你的解决方案。光隔离器似乎是个好主意,但让我感到困惑的是,如果我的传感器 LED 由于 EMI 而闪烁,那么光输出是否也会闪烁?我只是看不出他们如何去抖动和过滤。我以为它们是为了电气隔离。此外,如果设置 $5=1,则输入引脚被拉低。感应噪声不会比将高线拉低更有可能将低线拉高吗?

I really don’t want to rewire the entire machine to go to NC limits, and am a little confused about whether the internal pull ups in the arduino need to be disabled when I do so. Then, I think there are noise filter circuits built into the protoneer board that may not work in reverse as well. I’m probably over thinking it but with all of the shielding I’ve done and the fact that the switches and wiring are so far away from high voltage sources, the NO setup should be fine.

I’m powering my Protoneer and rPi off of a 5v wall wart power supply and the stepper drivers and THC run off of a separate 24v supply. I thought that maybe the grounds should be tied together but there’s 5v differential between them so I left them isolated. I’ve been building and repairing electronics for 20 years but there’s definitely still some magic pixie stuff to me and it’s usually the simplest stuff that trips me up.

火炬点火时忽略限制? #478
Author

@JamieAKing
Also, I made a pivot arm that suspends the torch cable out over the table so it doesn’t have to ride in the cable track. The limit wires and stepper wires are the only things in the track and all are in insulated cables that are grounded at the MCU end.

I really like your probing solution too. If I can ever get this dang plasma dialed, I can get back to working on my mill/router/waterjet/plasma combo machine. When I do, I’ll check back on this and attempt to replicate what you did. I love the simplicity.

火炬点火时忽略限制? #478
Author

喜欢 (0)