文档 技术手册
同匠自研内核
同匠自研内核是同匠自己的数控控制器固件。在 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 控制器以插件提供)。