Contact me: hankecnc@gmail.com

主轴转速同步 #1714

推推 grbl 3年前 (2023-01-30) 450次浏览
打开
satiowadahc 打开了这个问题 2022 年 4 月 14 日 · 10 条评论
打开

主轴转速同步#1714

satiowadahc 打开了这个问题 2022 年 4 月 14 日 · 10 条评论

注释

主轴转速同步 #1714
贡献者
import linuxcnc
c = linuxcnc.command()
c.spindle(linuxcnc.SPINDLE_FORWARD, 1000, 0)
c.spindle(linuxcnc.SPINDLE_OFF, 0)

c.mode(linuxcnc.MDI_MODE)
c.mdi("M3")

我期望发生的事情:在 1000 时打开主轴。
实际发生了什么 主轴在上一个 S 命令时打开,如果未输入则为 0。

调试消息:

c.spindle(linuxcnc.SPINDLE_FORWARD,1000,0):
c.spindle(linuxcnc.SPINDLE_OFF,0)

Issuing EMC_SPINDLE_ON --        ( +1304,+64,   +28,1000.000000,0.000000,0.000000,    +1,)
Issuing EMC_SPINDLE_OFF --       ( +1305,+32,   +29,)

c.mdi(“M3”)

Issuing EMC_TASK_PLAN_EXECUTE --         (  +509,+280,   +19,M3,)
emcTaskPlanLevel() returned 0
NML_INTERP_LIST(0x55f42436a120)::append(nml_msg_ptr{size=64,type=EMC_SPINDLE_ON}) : list_size=1, line_number=0
emcTaskPlanExecute(M3) returned 0
emcTaskPlanLevel() returned 0
NML_INTERP_LIST(0x55f42436a120)::get(): {size=64, type=EMC_SPINDLE_ON}, list_size=0
emcTaskPlanLevel() returned 0
Issuing EMC_SPINDLE_ON --        ( +1304,+64,    +0,0.000000,0.000000,0.000000,    +1,)
mdi_execute_hook: MDI command 'M3' done (remaining: 0)

同样为了它的价值,qtvcp mdi 命令将在每个命令的末尾注入一个新行。

Issuing EMC_SPINDLE_SPEED --     ( +1316,+56,    +0,0.000000,0.000000,0.000000,)
mdi_execute_hook: MDI command 'S1000
' done (remaining: 0)
主轴转速同步 #1714
成员

可能与此#1181有关?

主轴转速同步 #1714
贡献者作者

有趣的。

  • command.spidle_on -> 主轴以设定的 RPM 打开
  • mdi m3 -> 主轴关闭。

并可以确认#1181

CW:~$ python3
Python 3.8.10 (default, Mar 15 2022, 12:22:08) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import linuxcnc
>>> c = linuxcnc.command()
>>> c.mode(linuxcnc.MODE_MDI)
>>> c.spindle(linuxcnc.SPINDLE_FORWARD, 1500, 0)
>>> c.mdi("S1000")  # Spindle turns off

输出:

Issuing EMC_SPINDLE_ON --        ( +1304,+64,   +17,1500.000000,0.000000,0.000000,    +1,)
Issuing EMC_TASK_PLAN_EXECUTE --         (  +509,+280,   +18,S1000,)
emcTaskPlanLevel() returned 0
NML_INTERP_LIST(0x56315e1e9120)::append(nml_msg_ptr{size=56,type=EMC_SPINDLE_SPEED}) : list_size=1, line_number=0
emcTaskPlanExecute(S1000) returned 0
emcTaskPlanLevel() returned 0
NML_INTERP_LIST(0x56315e1e9120)::get(): {size=56, type=EMC_SPINDLE_SPEED}, list_size=0
emcTaskPlanLevel() returned 0
Issuing EMC_SPINDLE_SPEED --     ( +1316,+56,    +0,0.000000,0.000000,0.000000,)
mdi_execute_hook: MDI command 'S1000' done (remaining: 0)
主轴转速同步 #1714
贡献者作者

在任务和运动中,每种情况下都会调用同一组命令…是否有我没有看到的 RS274 调试?

主轴转速同步 #1714
贡献者作者

有趣的…

5. 此时,此文件中的任何内容均未向 interp_list 添加任何内容。

 

也许 emc_nml 应该在修改之前检查主轴的状态吗?

主轴转速同步 #1714
贡献者作者

越看越觉得emcmodule中的emcSendCommand实际上应该是interp_list.append()。

主轴转速同步 #1714
合作者

您是否可以返回到 2.7(多轴支持之前)并查看那里的行为是否符合预期?

主轴转速同步 #1714
贡献者

IIRC@robEllenberg我已经编写了这段代码,但我必须回过头来记住这一切。我问他还记得什么:

我想知道它是否曾以这种方式表现过。我从描述中猜测直接主轴
命令没有设置 interp “S” 字,并且 M3 正在(正确地)重用以前的解释器状态。

实际上他们想要的是表现spindle_on(1000)得像mdi("S1000")

我认为 python API 中的主轴命令应该像手动覆盖与 MDI 快捷方式一样对待

主轴转速同步 #1714
贡献者作者

https://discord.com/channels/570415950495481859/570415951020032013/966894229437706270

用户报告 gmoccapy 具有随机的主轴速度。之前的 0.25 倍或无穷大。

主轴转速同步 #1714
合作者

我认为不和谐报告听起来像是另一回事?

如果这就是 zultron 所暗示的,那么解决它并不是一件容易的事情,因为规范命令不一定反馈到解释器内部状态。

主轴转速同步 #1714

@andypugh那是我对不和谐的评论——我将在本周末尝试重现这个问题并提供适当的细节

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

还没有

发展

没有分支机构或拉取请求

5人参加
主轴转速同步 #1714主轴转速同步 #1714主轴转速同步 #1714主轴转速同步 #1714主轴转速同步 #1714

喜欢 (0)