注释
您能否提供一个可重复的、详细的和最小的示例,说明如何从通电到问题产生问题? 谢谢 |
当然, 我刚刚下载了一个全新的 repo 克隆并完成了这些更改
注意 我之前提到的这个定制板上的硬件设置ESP32,第二个串行端口连接到 RS485 缓冲区。缓冲区连接到 RS485 到 USB 串行转换器,仅此而已。这意味着我们不会看到主轴的响应。但我不认为这会是一个问题——我可能错了? 自从上一条消息以来,我对硬件正在工作并且按预期工作更有信心。TX 和 RX 工作正常,虽然软件没有看到响应 – 这可能是一个错误或其他我没有发现的软件。 ESP32 GRBL 控制器 -> RS-485 缓冲区 -> 电缆 -> RS-485 到 USB 串行适配器。 测试
按预期工作。
按预期工作。
按预期工作。
在终端中没有观察到主轴速度的写入命令
奇怪的行为——不是我所期待的——我确实多次重复这些步骤,但没有得到正确的答案。
这突出了来自串行终端的主轴命令实际上并未在 modbus 上发送更新的速度命令。
方向命令似乎发送正确 – 但速度命令在第一个速度命令之后没有跟随。
结论 我也玩过环阳纺锤,效果是一样的,也许还有其他的作用? 这可能是软件没有看到主轴响应的属性吗?ESP32 是否必须看到响应? 我希望这有助于传达问题,如果没有 – 请告诉我。 我的代码已经达到了顶峰,但是这超出了我的技能范围!我不介意弄脏我的手,但我不知道要开始! 再次感谢巴特。 |
PS对不起,很长的帖子! |
有时间我会读的。如果您将其重写如下,我可能会更快地得到它。 已发送 gcode — 预期行为 — 实际行为(简短) 注:我只有环阳锭。 |
我明天将测试环阳主轴类型 – 我相信这会出现同样的问题 |
测试环阳主轴类型,按照之前的设置:
值取决于 Gcode 的 S### 部分 – 我们对值不感兴趣,只是发送了这一行
按预期工作 – 这是第一次发送带有速度参数的主轴命令。已经注意到这对于第一次运行可以正常工作,但不适用于带有主轴速度参数的后续命令。
取决于 Gcode 的 S### 部分的值 – 我们对值不感兴趣,只是发送了这条线 这确定了 GRBL 启动后仅发送单个主轴速度命令的问题。我希望主轴速度将更新为新的主轴速度设定点 4000RPM。
预期的:
得到:
错误 – 再次没有通过 Modbus 发送主轴设定值,我可能会感到困惑,但我希望在带有 S 参数的主轴命令更新 VFD 时发送主轴速度命令? 除非我遗漏了什么,否则这是确定两种主轴类型之间存在共同问题。 |
我想你和他有同样的问题:#689 |
它看起来像 查看代码,我看到不会发送速度命令的最明显原因是(有界)RPM 是否与最近设置的(有界)RPM 相同——换句话说,即使您命令 2 个不同的通过 g 代码的速度,如果这些速度都超出了您在 grbl 设置中配置的定义的最小/最大 RPM 的范围,那么边界检查将强制它们为相同的值,并且预计第二个速度命令不会是发送。在进一步挖掘之前排除这种可能性会很有帮助。 如果这不是这里发生的情况,我认为如果您可以包含来自失败测试用例之一的实际完整 RX/TX 数据(即不删除特定速度值或 CRC 值)以及其余的VFD_DEBUG_MODE 消息,因此更容易根据预期协议检查数据,以防提供任何可能发生的额外线索。我无法在我的(环阳)机器上重现这一点,即使我偶尔会在不同时间断开 RS485 收发器上的 RO 引脚,因此您可以提供的任何其他线索或数据都会有所帮助。 |
我终于有机会测试这个了。这很痛苦,因为我需要把它搬到我的办公室,而且我没有合适的电压。 VFD RS485 类是一个基本实现,但我认为它从性能角度执行您的测试。 这是我的设置… 引导消息 相关的 Grbl 设置是… 这是一系列命令 M3 ; 进入 M3 没有速度 M5; 进入 M5 模式 M4 ; 进入 M4 模式 无速度 M3S2000;M3 主轴旋转方向正确 我们欢迎任何改进和拉取请求,但设置和测试需要几天时间。一些开发人员没有能力进行测试。保留此设备仅用于测试是非常昂贵的。 |
嗯….我觉得自己像个笨蛋。金子弹是 我想我设法深入研究了调试这个新硬件并且错过了一些简单的东西,因为对 GRBL 和所有这些都是新手(我是从 Marlin 遇到的,所以一些配置方法是不同的——我还在学习) 解决方案:
边注 –@bdring我可以看到您的终端中没有显示 RX 消息?在我的终端上,我也没有看到任何响应 再次感谢您的帮助和这个伟大的项目 – 我迫不及待地想用它做更多的事情。 |
我将研究调试模式。 |
根数控 评论 on 5 Dec 2020
您使用的是什么版本的固件?
1.3a 版
问题是否可重复?
是的,它是可重复的。让 VFD 运行并执行 ESP32 复位将允许在 Set_Speed_Command 函数不会执行之前对主轴速度进行一次更新,并且不会再次发送更新速度数据包。
什么情况下会出现bug?
该问题出现在“Test_Drive”机器文件中,仅启用了 H2A 主轴。
几点:
这是使用自定义硬件,据我所知,一切似乎都运行良好。RS485 命令正在正确发送,VFD 正在响应它们并以正确的值回复。这让我相信 RS485 发射器端没有任何问题。
定义“VFD_DEBUG_MODE”显示正在发送什么消息,这些消息与总线嗅探器看到的数据相匹配。VFD 响应正确。然而,当查看串行终端中的接收数据包时,RX 数据包显示没有收到任何内容….
请记住,这是定制硬件,因此某些引脚与 6 件装的引脚不同。
它变得更加奇怪,因为我过去在串行终端中看到数据并且没有进行任何硬件更改 – 因此,我不想排除 RX 端收发器端的任何问题。
发送 M3、M4 命令将主轴启动到 CCW 和 CCW 方向的最小主轴速度(我认为这是我的 VFD 的特性) – 这里没有问题。
发送“M3 S####”和 M4“S####”(#### 是某个 RPM 值)会启动主轴,但不会改变 VFD 驱动器的最小 RPM 的速度。
发送 M5 停止主轴。
如您所见,我的问题在于速度命令。
当我禁用“VFD_DEBUG_MODE”并通过终端发送主轴命令时,在每个命令之后我都会收到“OK”的响应,并且只有几次我会收到“VFD 没有响应”的消息。我不认为我关心响应和主轴驱动器执行命令的时间(只是让 VFD 达到特定速度对我来说是一个很大的飞跃!)。我必须承认,我对调试模式失去了信心,我们确定它按预期工作吗?
几个问题:
一个。如果软件不对数据做任何事情,那么我就不用担心为什么它没有接收到数据(我花了三天时间试图弄清楚这一点并且没有想法)
一个。这个数据包是否应该与每个“M3 S####”和M4“S####”命令一起发送?(目前没有)。
湾。我可以强制再次发送吗?
任何帮助深表感谢!
亲切的问候皮特