开源改变世界

冷挤压警报- #858

推推 grbl 3年前 (2023-02-06) 296次浏览
关闭
bstott 打开了这个问题 2014 年 3 月 26 日 · 21条评论
关闭

冷挤压警报-#858

bstott 打开了这个问题 2014 年 3 月 26 日 · 21条评论

评论

冷挤压警报- #858

您会将冷挤压警告设置为打印一次还是两次?目前它进入了一个巨大的打印循环。

以下是一小部分示例的摘录:

离子阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:col冷挤压冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
d
回声:冷挤压防止
回声:冷挤压 防止
回声:冷挤压 防止
回声:冷挤压防止
回声:ho:冷挤压防止 回声 :
冷挤压防止 回声
:离子

echo:
冷挤压
echo: 防止冷挤压 echo: 防止冷挤压 echo: 防止
冷挤压
echo:trusion 防止
echo:防止
冷挤压 echo: 防止冷挤压 echo: 防止冷挤压 echo: 防止冷
挤压
echo: 防止
冷挤压
echo:冷挤压防止
回声:冷挤压防止
回声:冷挤压防止

布莱恩。

冷挤压警报- #858
贡献者

定义“打印”?打印机只接收 gcode 并处理它们。如果出现某种情况,它会吐出消息。
如果当前消息 = 最后一条消息,您可能需要某种“打印开始”命令,或者存储最后一条消息/最后一条消息 ID 以抑制警告

冷挤压警报- #858
作者

“打印”是在编程意义上定义的,而不是在 3D 打印机意义上定义的。

‘打印’:串行打印。在固件中,串行打印命令提供从固件返回/输出/打印到 PC 终端的信息。

在程序中,上面提到的警告/错误消息被打印到串行终端。我的示例是固件进入循环发送多条错误消息。我的要求是,只要不启动挤出机命令并仅发出一 (1) 或两 (2) 条串行打印消息,固件就可以执行它的操作。

冷挤压警报- #858
贡献者

我明白了,我已经回应了。我的意思是固件中没有打印的定义。打印机不知道它做了什么,它只是响应 gcode。
那么,从印刷商的角度来看,您如何定义印刷品呢?
要压制你必须像我说的那样存储最后一条消息。恕我直言,客户端应该有抑制,而不是固件。当温度低于阈值时,您告诉它做某事,它就会做出响应。我认为这是明智的行为。

冷挤压警报- #858
作者

固件发送倍数 – 固件不应发送倍数。固件功能 – 尝试执行命令 – 一次-两次-三次?。如果不是,发送错误 – 一次或两次。如果它可以运行该命令,则执行该命令。为什么我看不到这个好?

冷挤压警报- #858
贡献者

固件几乎没有时间感,只有几条命令。因此,
每次固件收到非法命令时,它都必须响应。
否则,我的主机应该在什么时候猜测该命令可能
有效?或者打印机应该何时决定再次开始回复?
如果主机收到失败响应,它应该停止发送命令。
2014 年 3 月 25 日 21:48,“Brian Stott” notifications@github.com写道:

固件发送倍数 – 固件不应发送倍数。
固件功能 – 尝试执行命令 – 一次-两次-三次?。如果不是,
发送错误 – 一次或两次。如果它可以运行该命令,则执行该
命令。为什么我看不到这个好?


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/858#issuecomment-38625328

冷挤压警报- #858
贡献者

您发布的输出中有两个不同的“问题”。首先,我认为您在谈论的是“冷挤压阻止”消息反复出现的事实。这是因为您反复告诉它在低于安全挤出温度时进行挤出(包括 E 轴的每个运动段都是一个挤出命令),因此必须为每个运动生成一个错误。这是预期的行为,如果固件停止发送错误消息,它会破坏事情。如果您不希望您的主机每次都向您显示错误,您需要让您的主机对其进行过滤。

另一个问题是一个实际问题,即错误消息被破坏,显示的部分错误消息与完整消息的副本混合在一起。发生这种情况的原因可能是错误以如此快速的连续方式生成,以至于它要么中断自身,要么溢出缓冲区。在任何一种情况下,这都是一个错误,如果主机实际上试图解释此消息而不是仅仅将其显示给用户,它可能会导致更大的问题,但我不知道目前有任何人正在这样做,如果他们是,最好使用较短的数字代码而不是传输人类可读的错误字符串。

冷挤压警报- #858
作者

嗯嗯。所以 — 从@nothinman,@Cylindric 和@whosawhatsis— 固件正在从 gui 界面接收多个命令 – 这是一个结果 – – M302。好吧……没有意义,但我会接受的。这只是意味着与 gui 人员一起解决它以过滤来自打印机的响应。有点麻烦。我们没有从 G1 或 M119 或类似的东西那里得到 50 条回复。至于错误 – 如果打印机无法与固件通信,我只会收到一条错误消息。— 我应该把它带到 gui 组吗?

至于 whosa — 你看到一个可能的未来错误/故障准备好后 —- 你会告诉 Printrun 小组吗?

冷挤压警报- #858
贡献者

@bstott您在执行命令时收到错误。命令通常不会回显,因为这会消耗串行接口的带宽。除非有错误。如果您不断尝试执行导致错误的命令……真的,您还期望其他什么行为?这是完全合乎逻辑的。打印机不会自己发送它——你触发它!如果它是自己发送的,那么我同意在固件中进行抑制是有道理的。

冷挤压警报- #858
贡献者

@whosawhatsis一条消息中断一条消息,而发生在客户端。gcodes,因此响应是按顺序输出的。

冷挤压警报- #858

当您在断开热端热敏电阻的情况下启动 Marlin 时,会发生相同的循环行为。我还看到了防止冷挤压的循环。

当热端热敏电阻“不安全”时,似乎有一些过于热情的代码会一遍又一遍地告诉您。

斯科蒂

2014 年 3 月 25 日下午 4:51,nothinman notifications@github.com写道:

@whosawhatsis一条消息中断一条消息,而发生在客户端。gcodes,因此响应是按顺序输出的。


直接回复此电子邮件或在 GitHub 上查看。

冷挤压警报- #858
作者

@nothinman

为什么我不被理解?你可能认为我习惯了快速射击视频游戏,我推动 M302 命令的速度越快,它就越有可能一次关闭“事件”。哈哈。你一定认为我是多么愚蠢。你用这个软件吗?你没见过这种行为吗?你会编程吗?我什至应该回应吗?其他响应者似乎在这里得到了这个想法……

执行一个命令。时期。接收 – 一个错误。时期。简单的。如果事件真的很重要,需要关注“事件”,请发送两 (2) 或三 (3) 次响应并发出声音(引脚高或引脚低)—- 许多都有 LCD,许多有蜂鸣器。

我认为我们真的把这匹马打得落花流水…..某处—-在软件中—-一个命令-一次执行-一次响应-一个结果。至少对于冷挤压而言。

@scotty1024 – – 是的?我懂了。然后 —- 我们也需要修复它们!

仅供参考 – 我已发布到 Pronterface/Printrun。

冷挤压警报- #858
贡献者

@bstott您是说打印机空闲时重复出现此错误,没有任何命令吗?这不是您原来的帖子所指出的,如果是这样,那就是一个错误。每个拉伸命令应该只出现一次错误(通常是 G1 后跟 E)。

冷挤压警报- #858

我在冷挤压和启动时的热敏电阻警告中都看到了这个确切的问题。

有一个循环错误。我只是认为这是故意的行为。

斯科蒂

在 2014 年 3 月 25 日下午 5:46,whosawhatsis notifications@github.com写道:

@bstott您是说打印机空闲时重复出现此错误,没有任何命令吗?这不是您原来的帖子所指出的,如果是这样,那就是一个错误。每个拉伸命令应该只出现一次错误(通常是 G1 后跟 E)。


直接回复此电子邮件或在 GitHub 上查看。

冷挤压警报- #858
作者

@whosawhatsis 是的!

我知道你知道下面的大部分内容。我正在详细说明,以便我们按顺序查看。

冷挤压警报:

  1. 马林有一个目标低温。固件中的警报/安全设置。如果在低于此设定目标温度下尝试挤出并且挤出机不会移动,则会发出冷挤出错误。
  2. 冷挤压 – 警报/安全 – 可以通过发出命令 M302 来超越。

经历过以下两个事件:
A) 在热端冷却时使用挤出机 – 这会触发低温冷挤出阈值并发送错误,同时立即禁止挤出。
B) 忘记发出 M302 命令并发出拉伸命令。这会立即触发错误消息,并且不允许挤出机挤出。

在每个事件中 – (A) 和 (B) – 只有一个命令被发送到挤出机进行运动。注意:我正在使用 Pronterface gui 按钮进行挤压。我希望他们不要快速发出命令,而是发出一次。可能是步进电机的运动和运动时间持续了一段设定的时间,这反映了多个警报但是——警报是一个不同的事件,可以由固件/软件控制。如果警报正在读取来自步进驱动器的每个脉冲,那么这里就是可以开始修复的地方。从 Arduino 引脚(高/低)而不是步进驱动器或命令脉冲读取警报。

嗯……我敢打赌,命令的每个脉冲都会触发警报。该命令是 distance/steps @ step/time —> pulses 之一!许多警报 – 每个脉冲一个。因此,警报是一个单独的循环/触发事件—-警报一 (1)-(2) 个脉冲,然后退出警报或压制它….

冷挤压警报- #858
作者

解决建议:

将冷挤压警报设为标记事件。

当在错误/危险约束范围内捕获到命令时,设置一个标志,然后发出一 (1) 个警报。不要关闭整个挤出命令字符串的每个命令/步骤。

冷挤压警报- #858
贡献者

It should be throwing the error once for each attempted move, not for each attempted step. If ONE attempt to extrude resulted in the output you posted, that is a bug. My guess would be that it’s a bug in the communication between marlin and pronterface resulting in an unrecognized response triggering pronterface to attempt to re-send the command, getting the same unrecognized

喜欢 (0)