Contact me: hankecnc@gmail.com

跳过串行发送的符号 #996

推推 grbl 3年前 (2023-01-23) 348次浏览

打开
Snow4DV 开启了这个issue 2021 年 2 月 1 日 · 6条评论
打开

跳过串行发送的符号#996

Snow4DV 开启了这个issue 2021 年 2 月 1 日 · 6条评论

注释

跳过串行发送的符号 #996

你好!由于某种原因,我在串行监视器或 ugs 平台中丢失了一些字母。
在为 uno 编译它之后,我还收到了内存不足的消息(但这应该没问题):
Sketch uses 29766 byte (92%) memory of device. Mem available: 32256 byte.
有时当我发送“?”时,它看起来像什么?命令:
<Idle|MPo:10.000,-1.500,0.000|FS:0,0> ok <Idle|MPs:10.000,-1.500,0.000|FS:0,0|WCO:0.000,0.000,0.000> ok Idle|MPos:10.000,-1.500,0.000|FS:0,0> ok <Idl|MPos:10.000,-1.500,0.000|FS:0,0> ok

我试过 1.1h、1.1f。1.1h 使用反向开关编译 – 它保持不变。

跳过串行发送的符号 #996

https://github.com/grbl/grbl/wiki/Interfacing-with-Grbl#status-reporting

状态报告

当一个 ?字符被发送到 Grbl(不需要额外的换行符或回车符),它会立即响应 <Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000> 来报告它的状态和当前位置. 这 ?每当 Grbl 检测到一个时,总是从串行接收缓冲区中取出并删除。因此,这些可以随时发送。此外,为了让 GUI 更容易获取状态报告,它们总是被 <> V 形包围。

开发人员可以使用此数据为用户提供屏幕位置数字读数 (DRO) 和/或向用户显示虚拟工作空间中的 3D 位置。我们建议向 Grbl 查询一个 ? 不超过 5Hz 的实时状态报告。10Hz 可能是可能的,但在某些时候,收益递减,并且您要求 Grbl 的 CPU 生成和发送大量位置数据,从而增加了 CPU 的负担。

Grbl 的状态报告在组织上相当简单。它总是以描述机器状态的词开头,例如 IDLE(这些描述可在 Wiki 的其他地方找到)。以下数据值通常按下面列出的顺序并以逗号分隔,但可能不按确切顺序或根本不打印。报告输出取决于用户的 $10 状态报告掩码设置。

MPos:0.000,0.000,0.000 : Machine position listed as X,Y,Z coordinates. Units (mm or inch) depends on $13 Grbl unit reporting setting.
WPos:0.000,0.000,0.000 : Work position listed as X,Y,Z coordinates. Units (mm or inch) depends on $13 Grbl unit reporting setting.
Buf:0 : Number of motions queued in Grbl's planner buffer.
RX:0 : Number of characters queued in Grbl's serial RX receive buffer.
跳过串行发送的符号 #996
作者

https://github.com/grbl/grbl/wiki/Interfacing-with-Grbl#status-reporting

状态报告

当一个 ?字符被发送到 Grbl(不需要额外的换行符或回车符),它会立即响应 <Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000> 来报告它的状态和当前位置. 这 ?每当 Grbl 检测到一个时,总是从串行接收缓冲区中取出并删除。因此,这些可以随时发送。此外,为了让 GUI 更容易获取状态报告,它们总是被 <> V 形包围。

开发人员可以使用此数据为用户提供屏幕位置数字读数 (DRO) 和/或向用户显示虚拟工作空间中的 3D 位置。我们建议向 Grbl 查询一个 ? 不超过 5Hz 的实时状态报告。10Hz 可能是可能的,但在某些时候,收益递减,并且您要求 Grbl 的 CPU 生成和发送大量位置数据,从而增加了 CPU 的负担。

Grbl 的状态报告在组织上相当简单。它总是以描述机器状态的词开头,例如 IDLE(这些描述可在 Wiki 的其他地方找到)。以下数据值通常按下面列出的顺序并以逗号分隔,但可能不按确切顺序或根本不打印。报告输出取决于用户的 $10 状态报告掩码设置。

MPos:0.000,0.000,0.000 : Machine position listed as X,Y,Z coordinates. Units (mm or inch) depends on $13 Grbl unit reporting setting.
WPos:0.000,0.000,0.000 : Work position listed as X,Y,Z coordinates. Units (mm or inch) depends on $13 Grbl unit reporting setting.
Buf:0 : Number of motions queued in Grbl's planner buffer.
RX:0 : Number of characters queued in Grbl's serial RX receive buffer.

我正在使用通用 gcode 平台,状态轮询速率为 500 毫秒(在 250 毫秒时相同)。这是他们的 repo 中的问题:winder/Universal-G-Code-Sender#1527(评论)
它看起来不像是太频繁地询问位置

跳过串行发送的符号 #996
西蒙约翰城堡 评论了 2021 年 2 月 3 日  

你能说说你的硬件吗,无论是 PC/Grbl 这种新行为以前是否有效?
什么类型的USB1.1/2/3 是旧PC,同组USB 端口上还有其他东西吗?
如果您使用的是其中一种啄木鸟板,请不要同时连接离线控制器。
它总是缺少相同的字符等
哪个Arduino IDE版本
你有可能的接地回路问题吗

跳过串行发送的符号 #996
作者

你能说说你的硬件吗,无论是 PC/Grbl 这种新行为以前是否有效?
什么类型的USB1.1/2/3 是旧PC,同组USB 端口上还有其他东西吗?
如果您使用的是其中一种啄木鸟板,请不要同时连接离线控制器。
它总是缺少相同的字符等
哪个Arduino IDE版本
你有可能的接地回路问题吗

对不起迟到的答案。只是一台普通的不是很旧的电脑——i5 8400/8gb 内存。尝试了 usb 3.1 和 2.0 – 结果相同。是的 – 外围设备(键盘 n 鼠标 l,stm32(隐藏)。

我使用的是普通的 uno + v3 cnc shield + drv8825x2 + servo connected to z endstop

缺少的字符总是不同的
使用 arduino ide 1.8.9

接地回路是可能的,因为我同时有 psu 5v/30v 和 pc 5v。这会成为问题吗?

谢谢!:)

跳过串行发送的符号 #996
西蒙约翰城堡 评论了 2021 年 2 月 13 日  

通常您需要将所有 GND 连接在一起,但不要尝试通过一个以上的 5V 电源驱动数字端。
鉴于您成功闪烁表明 arduino 没问题,请尝试在没有防护罩和机械硬件的情况下运行它。
您可以在裸露的 arduino 上运行完整的铣削序列,只要它不期望进行归位等。
什么是 stm32,某种家庭酿造操纵杆或其他东西?这会淹没 USB 吗?尝试删除它。
如果它是独立的(主轴电机)等,则取决于您使用 30V 做什么,您可能需要一个光隔离器和
完全分开它。我正在运行一块从 PC 获取 5v 电压的 woodpeker 板,因此在 CNC3018 通电时运行良好,因此除非您担心伺服,否则您不需要额外的 5V,但您可以给它自己的 5V 并只采用普通 GND和来自arduino的信号

跳过串行发送的符号 #996
作者

通常您需要将所有 GND 连接在一起,但不要尝试通过一个以上的 5V 电源驱动数字端。
鉴于您成功闪烁表明 arduino 没问题,请尝试在没有防护罩和机械硬件的情况下运行它。
您可以在裸露的 arduino 上运行完整的铣削序列,只要它不期望进行归位等。
什么是 stm32,某种家庭酿造操纵杆或其他东西?这会淹没 USB 吗?尝试删除它。
如果它是独立的(主轴电机)等,则取决于您使用 30V 做什么,您可能需要一个光隔离器和
完全分开它。我正在运行一块从 PC 获取 5v 电压的 woodpeker 板,因此在 CNC3018 通电时运行良好,因此除非您担心伺服,否则您不需要额外的 5V,但您可以给它自己的 5V 并只采用普通 GND和来自arduino的信号

行!很快就会试一试。Stm32 – 是力反馈方向盘,我知道它不是通过 hid 而是通过它自己的协议发送一些轴状态 – 没有真正考虑它,有 2 个可能的原因导致这种行为,

喜欢 (0)