注释
所有者
|
我认为我们需要扩展 现在 #define EXEC_ALARM_HARD_LIMIT 1
#define EXEC_ALARM_SOFT_LIMIT 2
#define EXEC_ALARM_ABORT_CYCLE 3
#define EXEC_ALARM_PROBE_FAIL_INITIAL 4
#define EXEC_ALARM_PROBE_FAIL_CONTACT 5
#define EXEC_ALARM_HOMING_FAIL_RESET 6
#define EXEC_ALARM_HOMING_FAIL_DOOR 7
#define EXEC_ALARM_HOMING_FAIL_PULLOFF 8
#define EXEC_ALARM_HOMING_FAIL_APPROACH 9
#define EXEC_ALARM_SPINDLE_CONTROL 10
然后我们需要有一些输入 I/O 功能,可能会中断以观察该 I/O 它们可以是通用的 #define ALARM_INPUT_1 GPIO_NUM_xx
#define ALARM_INPUT_1_TYPE EXEC_ALARM_MOTOR_FAULT
最终同样的想法可以在没有 如果你想为每个驱动程序单独输入,它很快就会变得混乱。 |
合作者
|
报警代码值使用如下:
一些 GCode 发送器解析 ALARM:n 消息。比如CNCjs是这样处理的:
GRBL 0.9 以 ALARM: brief_description 的形式发送警报消息。如果我们假设 GCode 发送器可以处理 GRBL 0.9 报告,那么我们可以将任何新的警报类型作为文本而不是数字发送。将新的警报类型作为数字发送将不是很友好,除非我们能够设法让发送者更新他们的表。 可能的失败模式是,如果发送者没有检查 ALARM: 消息的形式并做正确的事情,而是打开了 GRBL 版本的知识。 如果我们假设以 GRBL 0.9 文本形式发送警报消息是可以接受的,那么我们需要以下内容:
system_set_exec_alarm() 的参数从 uint8_t 更改为 Alarm*。 |
作者
|
感谢您考虑改进。现在,我可以使用步进禁用引脚作为此类警报的输入来禁用所有电机吗?或任何外部装置输入到feedhold pin,以便在出现警报之前,用户无法恢复程序。或者简单地操作继电器并切断驱动器的电源。 |
所有者
|
这已添加到路线图中…关闭 |


嗨,朋友们,
我正在为我的工厂使用简易伺服(带编码器的步进)电机。我想知道如果其中一个驱动器出现故障(由于位置跟随错误或过流或任何原因)的最佳实践,如何在 grbl_esp32 中获取该信号并配置下一步操作,如馈电/复位/继电器操作/步进器禁用。我正在使用 leadshine ES2-DA808 驱动器,它在检测到故障时提供集电极开路输出。
在检测到此类故障时,我倾向于“保持”。但是我想知道如果与grbl_esp32无关的最佳实践。
感谢期待。
拉维