# grbl-sim **Repository Path**: yujinghuanqiu/grbl-sim ## Basic Information - **Project Name**: grbl-sim - **Description**: grbl 网络模拟器,适用于使用 tcp 网络连接该模拟器 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-12-05 - **Last Updated**: 2025-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - [概述](#概述) - [编译](#编译) - [编写 Dockerfile](#编写-dockerfile) - [构建镜像](#构建镜像) - [运行](#运行) - [测试](#测试) - [其他](#其他) ### 概述 本文将详细介绍如何在Debian系统上通过Docker构建GRBL模拟器镜像,以便进行数控机床的仿真测试。GRBL是一种开源的控制系统,用于控制三轴CNC机床、激光雕刻、激光切割,而在Docker容器中运行模拟器则提供了方便的测试环境,主要用于编写指令交互通讯而无需真实的设备。文章将从下载源代码、编写Dockerfile、构建镜像到运行测试一步步进行说明,同时针对可能出现的问题给予解决方案和调试技巧。通过简明易懂的指南,读者可以轻松完成在Debian系统上搭建GRBL模拟器镜像的操作。 ![grbl-network-sim](screen.gif) ### 编译 首先在 Linux debian 系统上下载源代码: ``` git clone --recurse-submodules https://github.com/grblHAL/Simulator.git cd Simulator mkdir build cd build cmake .. make ``` ### 编写 Dockerfile 编译成功后把编译的二进制文件移动到一个目录中,然后创建一个 Dockerfile 文件,写入以下内容。 ``` # 使用基础镜像 FROM debian:bookworm-slim # 设置工作目录 WORKDIR /app # 将 grblHAL_sim 和相关文件复制到容器中的 /app 目录 COPY build /app # 运行 grblHAL_sim -p 8888 CMD ["/app/grblHAL_sim", "-p", "8888"] # 构建 # docker build -t grblsim:latest . # 运行 # docker run -d --name grbl-sim -p 8888:8888 grblsim:latest # 测试 # 使用网络工具 TCP 连接本机 8888 端口即可收发模拟数据。 ``` ### 构建镜像 在当前目录中执行以下命令: ``` docker build -t grblsim:latest . ``` ### 运行 执行以下指令运行 `grblsim:latest` 镜像,其他名称命名为 `grbl-sim`。 端口映射格式: <主机:容器> 如果你想映射到主机 `9999` 端口,修改 `8888:8888` 到 `9999:8888` 即可。 ``` docker run -d --name grbl-sim -p 8888:8888 grblsim:latest ``` ### 测试 使用网络工具 TCP 连接本机 8888 端口即可收发模拟数据。 ``` >>> $I\r\n <<< 模拟器回复数据 [VER:1.1f.20231005:] [DockerAuthor:cheungxiongwei] [OPT:VNML+,35,1024,3,0] [AXS:3:XYZ] [NEWOPT:ENUMS,RT+,SED] [FIRMWARE:grblHAL] [NVS STORAGE:*EEPROM] [DRIVER:Simulator] [DRIVER VERSION:230918] ``` ### 其他 > 本来是想在 windows 镜像的基础上进行打包的,自己电脑使用的是 Windows11 ,下载了几个版本都报错,可能是兼容性问题,故此直接在 linux (虚> 拟机,没安装 Docker Engine)中进行编译,然后使用 scp 工具把二进制文件传输到 windows 进行 docker 打包。 > 微软镜像 tag 经常更新,所以 tag 会出现找不到的情况,当前正确的 tag 需要从以下网站查看: > https://hub.docker.com/_/microsoft-windows-server?tab=description > 例如 mcr.microsoft.com/windows:20H2-amd64 中的 20H2-amd6 tag 标签可从以下网站确认: > https://hub.docker.com/_/microsoft-windows > 使用 Win11 系统打包此 Dockerfile 失败。现在尝试 Debian。