开源改变世界

Python 接口 – stat.axis dict 报告自动速度为 0 #575

推推 grbl 3年前 (2023-01-29) 175次浏览
打开
Eranziel 打开了这个问题 2019 年 4 月 4 日 · 4条评论
打开

Python 接口 – stat.axis dict 报告自动速度为 0#575

Eranziel 打开了这个问题 2019 年 4 月 4 日 · 4条评论

注释

Python 接口 - stat.axis dict 报告自动速度为 0 #575
伊兰齐尔 评论了 2019 年 4 月 4 日  

正如标题所说 – 在自动模式或 mdi 模式下运行时,stat.axis 的所有轴的速度值为 0。在手动模式下点动时,速度值是正确的。

以下是我重现该问题所遵循的步骤:

  1. 有一个循环打印出每个轴的 stat.axis 数据。例如:
    self.status.poll()
    for i in range(3): print("Axis {}: {}".format(i, self.status.axis[i]))
  2. 打开一个文件并运行它,或者在 MDI 中输入一个命令并运行它。

这是我期望发生的事情:

Loop 为每个轴打印轴字典,速度条目应与该轴的真实世界速度匹配。

这是发生了什么:

即使在移动时,所有轴的速度输入也为 0。

在此之前它工作正常:

LinuxCNC 2.7.11 工作。

有关我的硬件和软件的信息:

在两台机器上测试。1) 原型机,2) 仅带模拟器的桌面。

  • 我正在使用此 Linux 发行版和版本:1) Debian 9.6(LinuxCNC 映像)和 KDE 桌面。2) Ubuntu 16.04.6 LTS。
  • 我正在使用这个内核版本:1) 4.9.0-8-rt-amd64使用 Tcl_SetResult 和 Tcl_GetStringResult  #1 SMP PREEMPT RT 2) 4.9.47-rt37使用 Tcl_SetResult 和 Tcl_GetStringResult  #1 SMP PREEMPT RT
  • 我正在运行 1) 来自 buildbot.linuxcnc.org 的 v2.8.0-pre1-4106-g4440d31ff 二进制文件。2) 我自己从 github v2.8.0-pre1-4628-g39ab67a 构建的二进制文件。
  • 我正在使用自定义界面。
  • 我正在使用此接口硬件供应商和芯片组(例如,并行端口、以太网端口、FPGA 卡): 1) Mesa 7i92e + 7i76。2) 无,仅用作模拟器。
Python 接口 - stat.axis dict 报告自动速度为 0 #575
合作者

这可能是关节轴变化的副作用。
联合词典是否报告了正确的数字?

Python 接口 - stat.axis dict 报告自动速度为 0 #575
合作者

我从来没有弄清楚这些值是从哪里进入 Python 界面的。
一些难题在这里:https ://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/usr_intf/axis/extensions/emcmodule.cc#L583

Python 接口 - stat.axis dict 报告自动速度为 0 #575
作者
伊兰齐尔 评论了 2019 年 4 月 6 日  

刚刚测试,联合词典确实报告了正确的数字。

在您链接的文件中进行了一些挖掘,看起来轴/关节数据来自 EMC_STAT 类。请参阅此处:https ://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/usr_intf/axis/extensions/emcmodule.cc#L81 。我会做更多的挖掘,看看我是否能找到 EMC_STAT 从哪里获得轴速度。

可能相关:我看到 HAL 引脚 axis.*.teleop-vel-cmd 在自动移动时也显示 0,但在手动移动时显示正确的速度。

Python 接口 - stat.axis dict 报告自动速度为 0 #575
作者

也许找到了…有人让我知道我是否在正确的轨道上。你们有很多代码要挖掘,哈哈。;)

我认为 EMC 统计轴数据在此函数中得到更新:https ://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/task/taskintf.cc#L559

该值似乎来自 control.c,teleop_vel_cmd 在此处更新:https ://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/motion/control.c#L1402 ,然后将其复制到HAL 组件 ( https://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/motion/control.c#L1915 ) 和 EMC stat ( https://github.com/LinuxCNC/linuxcnc/blob/主/src/emc/motion/control.c#L2094)。

综上所述,我不确定哪里出了问题。

Python 接口 - stat.axis dict 报告自动速度为 0 #575 rene-dev 添加了 Python 标签 2019 年 5 月 14 日

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
项目

还没有

发展

没有分支机构或拉取请求

3人参加
Python 接口 - stat.axis dict 报告自动速度为 0 #575Python 接口 - stat.axis dict 报告自动速度为 0 #575Python 接口 - stat.axis dict 报告自动速度为 0 #575

喜欢 (0)