注释
合作者
我想这取决于 GUI/用户界面的编写方式。 可能是 LinuxCNC 总是要等预览完成 你有一个非常复杂的背景图吗?如果是这样,您可以 |
作者
事实上,我没有复杂的背景图。当然,一个解决方案是禁用它。我还可以从 Preview 切换到 DRO,这解决了糟糕的驱动程序环境问题。尽管如此,它还是困扰着我,因为对我来说,延迟似乎是由帧渲染引起的。所以原则上,从我的角度来看,即使在 DRO(或禁用预览)中,整个窗口的文本渲染等也会延迟程序的动作。使用 Intel 高清显卡查看预览时的极端延迟并没有减少到手动输入,但在我的案例中也影响了执行的 g 代码。 |
合作者
它不应影响 G 代码,也不应影响 HAL 慢跑(例如,使用硬件按钮或慢跑轮)。 |
我换了一台新电脑来控制我的数控机床。这里我想使用集成的 Intel HD 2000 显卡。在此之前,我有一个专用 GPU,因为内部 GPU 会导致大量实时问题。但现在看来,内部 GPU 造成了巨大的延迟。这意味着,当 LinuxCNC 启动时,我发出手动移动命令,只要我按下按钮,命令就不会执行,但只要窗口需要在“预览”部分绘制新框架。在绘制新框架之前,我根本无法打开菜单或其他任何东西。在我的例子中,CNC 在一个方向上移动了 5-6 秒,即使执行了 g 代码。
我的系统的 GPU 加速在arch wiki上有描述,我尝试了不同的东西来解决这个问题(glxgears 在任何地方都可以正常工作,所以绘图必须在一些不同的后端上运行)。我也可以通过再次获得外部 GPU 来解决这个问题,但现在我认为这个问题成为次要问题。
这让我想知道,即使绘图过程足够快,预览框架(或一般窗口的框架)的绘制是否会在 CNC 机器的运动执行中引入某种顺序的延迟?如果是这样,难道不应该将它解耦,这样框架绘图不会导致命令延迟并关闭整个程序直到完成(独立于程序其余部分的输入更改)?
如果我对 linuxcnc 的整体工作原理有错误的想法,请纠正我。我不太熟悉 linuxcnc 的代码并且正在观察导致这个问题的这种行为。期待一些贡献。
有关我的硬件和软件的信息:
lsb_release -a
):Arch Linuxuname -a
):5.14scripts/get-version-from-git
):2.8.0以下是我重现该问题所遵循的步骤:
这是我期望发生的事情:
即使框架未完成绘制,也会立即响应按键
这是发生了什么:
只要在画框的时候就执行相应的手动移动命令
在此之前它工作正常:
当没有图形加速导致可察觉的滞后时,它“有效”。