czxt3000 2024-08-06 18:04 采纳率: 59.8%
浏览 49
已结题

grbl ?查询命令,返回状态的所有格式是什么?

比如 <Idle|MPos:0.000,0.000,0.000,0.000|Bf:15,127|FS:0,0|WCO:0.000,0.000,0.000,0.000>
有时候是 idel,有时候会是alarm。
MPos是实际坐标,WCO是虚拟坐标?
Bf是什么?
有时候还会有其它内容。

  • 写回答

2条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-08-06 18:05
    关注

    🕗晚上好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:曾经沧海难为水,除却巫山不是云。

    GRBL 状态报告格式详解

    你问的是 GRBL 控制软件返回的实时状态报告。以下是各个部分的详细解释:

    1. 状态 (State)

    • Idle: 空闲状态,GRBL 准备好接收命令。
    • Run: 正在执行 G 代码指令。
    • Hold: 保持模式,暂停当前操作。
    • Jog: 点动模式,接受手动控制。
    • Alarm: 报警状态,需要检查错误信息。
    • Door: 安全门打开 (某些控制器支持)。
    • Check: 需要进行硬件自检 (某些控制器支持)。
    • Home: 正在进行回零操作。
    • Sleep: 处于低功耗睡眠模式 (某些控制器支持)。

    2. 机器位置 (MPos)

    • 格式: MPos:X,Y,Z,A (A 代表可选的旋转轴)
    • 显示当前刀具相对于机器原点的坐标位置。

    3. 工作坐标系偏移 (WCO)

    • 格式: WCO:X,Y,Z,A (A 代表可选的旋转轴)
    • 显示当前工作坐标系相对于机器原点的偏移量。

    4. 规划缓存 (Bf)

    • 格式: Bf:n,m
    • n: 规划缓存中剩余的字节数。
    • m: 规划缓存的总容量。

    5. 进给速度和主轴转速 (FS)

    • 格式: FS:f,s
    • f: 当前进给速度 (mm/min 或 inches/min).
    • s: 当前主轴转速 (RPM).

    6. 其他信息

    • 除了上述信息外,GRBL 还可以返回其他状态信息,例如:
      • Ov: 限位开关触发。
      • Pn: 引脚状态 (某些控制器支持)。
      • WPos: 相对于工件坐标系零点的刀具位置 (某些控制器支持)。

    示例:

    <Idle|MPos:0.000,0.000,0.000|Bf:15,127|FS:0,0|WCO:0.000,0.000,0.000>

    • 状态: 空闲 (Idle)
    • 机器位置: X=0.000, Y=0.000, Z=0.000
    • 规划缓存: 15 字节已用,总容量 127 字节
    • 进给速度: 0 mm/min
    • 主轴转速: 0 RPM
    • 工作坐标系偏移: X=0.000, Y=0.000, Z=0.000

    代码示例 (Python):

    import serial
    
    ser = serial.Serial('COM3', 115200)  # 替换为你的串口号
    
    ser.write(b'?\n')  # 发送查询命令
    response = ser.readline().decode('utf-8').strip()
    print(response)
    
    # 解析状态信息
    parts = response[1:-1].split('|')
    status = {}
    for part in parts:
        key, value = part.split(':')
        status[key] = value
    
    print(status) 
    

    这只是一个简单的示例,你可以根据自己的需求修改代码,例如添加错误处理、解析不同的状态信息等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月14日
  • 已采纳回答 8月6日
  • 创建了问题 8月6日