评论
定义“打印”?打印机只接收 gcode 并处理它们。如果出现某种情况,它会吐出消息。 |
“打印”是在编程意义上定义的,而不是在 3D 打印机意义上定义的。 ‘打印’:串行打印。在固件中,串行打印命令提供从固件返回/输出/打印到 PC 终端的信息。 在程序中,上面提到的警告/错误消息被打印到串行终端。我的示例是固件进入循环发送多条错误消息。我的要求是,只要不启动挤出机命令并仅发出一 (1) 或两 (2) 条串行打印消息,固件就可以执行它的操作。 |
我明白了,我已经回应了。我的意思是固件中没有打印的定义。打印机不知道它做了什么,它只是响应 gcode。 |
固件发送倍数 – 固件不应发送倍数。固件功能 – 尝试执行命令 – 一次-两次-三次?。如果不是,发送错误 – 一次或两次。如果它可以运行该命令,则执行该命令。为什么我看不到这个好? |
固件几乎没有时间感,只有几条命令。因此,
|
您发布的输出中有两个不同的“问题”。首先,我认为您在谈论的是“冷挤压阻止”消息反复出现的事实。这是因为您反复告诉它在低于安全挤出温度时进行挤出(包括 E 轴的每个运动段都是一个挤出命令),因此必须为每个运动生成一个错误。这是预期的行为,如果固件停止发送错误消息,它会破坏事情。如果您不希望您的主机每次都向您显示错误,您需要让您的主机对其进行过滤。 另一个问题是一个实际问题,即错误消息被破坏,显示的部分错误消息与完整消息的副本混合在一起。发生这种情况的原因可能是错误以如此快速的连续方式生成,以至于它要么中断自身,要么溢出缓冲区。在任何一种情况下,这都是一个错误,如果主机实际上试图解释此消息而不是仅仅将其显示给用户,它可能会导致更大的问题,但我不知道目前有任何人正在这样做,如果他们是,最好使用较短的数字代码而不是传输人类可读的错误字符串。 |
嗯嗯。所以 — 从@nothinman,@Cylindric 和@whosawhatsis— 固件正在从 gui 界面接收多个命令 – 这是一个结果 – – M302。好吧……没有意义,但我会接受的。这只是意味着与 gui 人员一起解决它以过滤来自打印机的响应。有点麻烦。我们没有从 G1 或 M119 或类似的东西那里得到 50 条回复。至于错误 – 如果打印机无法与固件通信,我只会收到一条错误消息。— 我应该把它带到 gui 组吗? 至于 whosa — 你看到一个可能的未来错误/故障准备好后 —- 你会告诉 Printrun 小组吗? |
@bstott您在执行命令时收到错误。命令通常不会回显,因为这会消耗串行接口的带宽。除非有错误。如果您不断尝试执行导致错误的命令……真的,您还期望其他什么行为?这是完全合乎逻辑的。打印机不会自己发送它——你触发它!如果它是自己发送的,那么我同意在固件中进行抑制是有道理的。 |
@whosawhatsis一条消息中断一条消息,而发生在客户端。gcodes,因此响应是按顺序输出的。 |
当您在断开热端热敏电阻的情况下启动 Marlin 时,会发生相同的循环行为。我还看到了防止冷挤压的循环。 当热端热敏电阻“不安全”时,似乎有一些过于热情的代码会一遍又一遍地告诉您。 斯科蒂
|
为什么我不被理解?你可能认为我习惯了快速射击视频游戏,我推动 M302 命令的速度越快,它就越有可能一次关闭“事件”。哈哈。你一定认为我是多么愚蠢。你用这个软件吗?你没见过这种行为吗?你会编程吗?我什至应该回应吗?其他响应者似乎在这里得到了这个想法…… 执行一个命令。时期。接收 – 一个错误。时期。简单的。如果事件真的很重要,需要关注“事件”,请发送两 (2) 或三 (3) 次响应并发出声音(引脚高或引脚低)—- 许多都有 LCD,许多有蜂鸣器。 我认为我们真的把这匹马打得落花流水…..某处—-在软件中—-一个命令-一次执行-一次响应-一个结果。至少对于冷挤压而言。 @scotty1024 – – 是的?我懂了。然后 —- 我们也需要修复它们! 仅供参考 – 我已发布到 Pronterface/Printrun。 |
@bstott您是说打印机空闲时重复出现此错误,没有任何命令吗?这不是您原来的帖子所指出的,如果是这样,那就是一个错误。每个拉伸命令应该只出现一次错误(通常是 G1 后跟 E)。 |
我在冷挤压和启动时的热敏电阻警告中都看到了这个确切的问题。 有一个循环错误。我只是认为这是故意的行为。 斯科蒂
|
@whosawhatsis 是的! 我知道你知道下面的大部分内容。我正在详细说明,以便我们按顺序查看。 冷挤压警报:
经历过以下两个事件: 在每个事件中 – (A) 和 (B) – 只有一个命令被发送到挤出机进行运动。注意:我正在使用 Pronterface gui 按钮进行挤压。我希望他们不要快速发出命令,而是发出一次。可能是步进电机的运动和运动时间持续了一段设定的时间,这反映了多个警报但是——警报是一个不同的事件,可以由固件/软件控制。如果警报正在读取来自步进驱动器的每个脉冲,那么这里就是可以开始修复的地方。从 Arduino 引脚(高/低)而不是步进驱动器或命令脉冲读取警报。 嗯……我敢打赌,命令的每个脉冲都会触发警报。该命令是 distance/steps @ step/time —> pulses 之一!许多警报 – 每个脉冲一个。因此,警报是一个单独的循环/触发事件—-警报一 (1)-(2) 个脉冲,然后退出警报或压制它…. |
解决建议: 将冷挤压警报设为标记事件。 当在错误/危险约束范围内捕获到命令时,设置一个标志,然后发出一 (1) 个警报。不要关闭整个挤出命令字符串的每个命令/步骤。 |
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 |
您会将冷挤压警告设置为打印一次还是两次?目前它进入了一个巨大的打印循环。
以下是一小部分示例的摘录:
离子阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:col冷挤压冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
回声:冷挤压阻止
d
回声:冷挤压防止
回声:冷挤压 防止
回声:冷挤压 防止
回声:冷挤压防止
回声:ho:冷挤压防止 回声 :
冷挤压防止 回声
:离子
echo:
冷挤压
echo: 防止冷挤压 echo: 防止冷挤压 echo: 防止
冷挤压
echo:trusion 防止
echo:防止
冷挤压 echo: 防止冷挤压 echo: 防止冷挤压 echo: 防止冷
挤压
echo: 防止
冷挤压
echo:冷挤压防止
回声:冷挤压防止
回声:冷挤压防止
布莱恩。