文档 技术手册

同匠自研内核

同匠自研内核是同匠自己的数控控制器固件。在 Studio 里,它控制孪生里的机床;同一份代码也编成 MC-1 控制板的固件。

它说 Grbl 1.1 的串口协议,G 代码发送软件照常能连。设置、报警、错误的编号都是发送软件认得的那一套。

它做什么

  • 运动: 前瞻规划 100 个块,拐角速度按 $11,圆弧走真圆。运动按 1 ms 一片执行。每根轴都守住自己的最高速度($110–$112)和加速度($120–$122)。
  • 机床的功能:
    • 回零、硬限位和软限位、探测和对刀仪;
    • 经 Modbus 的主轴驱动(变频器),以及冷却;
    • 按 $341 的方式换刀;
    • 带停车的安全门;
    • 倍率、点动和手轮。
  • 控制器上的程序: 控制器文件系统里的程序可以用 O 字子程序和宏(见 O 字)。
  • G 代码: 照 RS274/NGC 和 LinuxCNC,包括刀具表、刀具半径补偿、路径融合、表达式和参数(见 G 代码和 M 代码)。

串口协议、实时命令和 $ 命令见协议。全部设置见设置,报警见报警码,错误见错误码。

和其他 Grbl 控制器相比

为 Grbl 写的发送软件都能连这个控制器。用惯了别的 Grbl 控制器的人会注意到下面这些不同。

控制器会停的地方

下面这些情形,有的 Grbl 控制器照常往下走;同匠自研内核会停下或报警。

  • 主轴驱动自己停了(跳闸、过载,或有人按了它面板上的停止):0.2 s 内停进给,报 ALARM:14。
  • 主轴驱动不应答: 轴先减速停下,位置不丢,再报 ALARM:19。
  • 换刀:
    • 换刀时主轴一定停。
    • 换刀没有确认就接着走时,主轴和冷却恢复到换刀前的样子。
  • 进给保持或安全门之后恢复: 主轴先回到转速,刀再动。
  • 停车回去的路上又开门: 机床停下,重新抬到停车的高度,等下一次循环启动。
  • 发送软件断开了(拔了 USB、关了端口):作业停下。由 $1030 管,默认开。
  • 测头和回零开关: 线上的毛刺不当成碰到。
  • 程序里的 UTF-8 字(中文、“Ø”、“–”)当文字读,不会被当成实时命令。
  • R 格式的圆弧在平面里没有弦时(比如 G91 G2 X0 Z1 R5)答 error:33。

更多的 G 代码

下面这些,有的 Grbl 控制器报错或不做,同匠自研内核照标准做:

  • 刀具表(G43 Hn、G43.2、G10 L1/L10/L11);
  • 刀具半径补偿(G41、G42);
  • 路径融合(G64 P)和精确停止(G61.1);
  • O 字子程序和流程控制,# 参数和表达式;
  • G52、极坐标(@、^)和 M99;
  • G85、G86、G89 真的钻、真的镗,有的 Grbl 控制器收下却不动;
  • CAM 后处理常写的:带名字的 % 行、G49 H0、Fanuc 的程序号行(O1000)、Centroid 的 M25。

更贴程序

  • 圆弧 走真圆。有的 Grbl 控制器把它切成弦,离圆最多 4 × $12。
  • 反时间(G93)下的圆弧 按编程的时间走。有的 Grbl 控制器快好几倍。
  • 停留(G4) 编多长就停多长。有的 Grbl 控制器按 50 ms 一档凑整。
  • 啄钻: 每个孔只钻该钻的刀数。孔深正好是啄钻深度的整数倍时,有的 Grbl 控制器会从退刀高度再多钻一整刀。
  • 软限位附近的大圆弧 不误报警。
  • M72 会恢复 M70 或 M73 存下的刀长补偿。存下的是 0、偏置方式(G43.1)又和现在一样时,有的 Grbl 控制器不恢复,留着后来设的值,所以同一个程序在 M72 之后,在那样的控制器上可能是另一个刀长补偿。
  • 加速度: 每根轴都守住 $120–$122,小圆弧上也一样。所以小圆弧特别多的程序,比在有的 Grbl 控制器上最多慢约 2 %;一般的程序快约 0.1 %。

协议上的细节

  • 状态报告:
    • 进给保持或开门时,FS: 里的进给报 0:轴停着。
    • 剩余距离一直报到轴停下。
    • 严重报警里 Bf: 报规划器全空。
    • $10 打开解析器状态时,[GC:] 每变一次只发一行。
  • 输入检查:
    • 写坏的设置号(比如 $45x)答 error:3。
    • 整数设置写成 $1=25.0 存 25;有的 Grbl 控制器存 250。
    • M6 和运动写在同一行答 error:40。
    • G65 或 G66 和别的命令写在同一行答 error:21。
  • 报警和开机:
    • 报警后不停 100 ms。
    • 第一次开机、设置存储是空的时,不报 error:7。
  • 说明文字和设置:
    • 设置、报警、错误的说明是同匠自己写的。
    • 控制器有几个自己的设置:$1030(发送软件断开就停),$1000 起是输入整形(默认关)。
  • $39=0(关掉老式实时字符):?、!、~ 在 $ 行和注释里是文字,在别处照常是命令。控制器按收到的字节判断,所以开门或进给保持时也照答 ?;有的 Grbl 控制器那时有时不答。

不支持的

  • G65 P7(Modbus 消息)。
  • Fanuc 的系统变量。#4120 这类当普通参数读,读出 0。
  • 没有主轴编码器时的螺纹(G33、G76、G33.1)。MC-1 没有编码器,这几个答 error:20。
  • 车削的粗车循环(别的 Grbl 控制器也没有)。
  • 网络、Trinamic 驱动、别的牌子的主轴驱动(有的 Grbl 控制器以插件提供)。

发送软件

验过的发送软件和它们的设置见 G 代码发送软件。要拿真机和它的孪生对比,见真机和影子模式。