ITPub博客

首页 > 应用开发 > Python > ProtoForge:开箱即用的物联网协议仿真平台,17种工业协议轻松模拟

ProtoForge:开箱即用的物联网协议仿真平台,17种工业协议轻松模拟

原创 Python 作者:suoten 时间:2026-05-07 15:24:43 0 删除 编辑

一、什么是 ProtoForge?

ProtoForge 是一个面向 IoT 开发者的 全栈式协议仿真与测试平台。

在实际的工业互联网(IIoT)或视频监控系统开发中,调试上位机或数据采集系统时,往往受限于硬件设备(PLC、传感器、摄像头)的缺失。ProtoForge 解决了这一痛点——它完全模拟设备端的协议交互行为,让你在纯软件环境下完成端到端的通信测试。

简单来说:下载即用,点几下鼠标,你的电脑就变成了一台可以随时操控的“虚拟 PLC”或“模拟摄像头”。

二、核心能力一览

ProtoForge 不仅仅是一个数据模拟器(只改数值),它实现了 全链路的协议握手与交互。

  • 17 种工业协议:覆盖 Modbus(TCP/RTU)、OPC-UA、MQTT、HTTP、GB28181(视频国标)、Siemens S7、BACnet 等主流协议。

  • 53+ 设备模板:内置 PLC、CNC、传感器、摄像头模板,只需选择模板 -> 起名 -> 创建,三步生成虚拟设备。

  • 实时调试日志:WebSocket 实时推送协议报文,支持按协议/关键词筛选,快速定位 Bug。

  • 可视化场景编排:拖拽式配置设备联动规则(如:温度 > 80℃ 时自动启动风扇设备)。

  • 完整测试框架:支持 14 种断言类型,一键生成测试报告,自动诊断通信问题。

  • 多语言 SDK:提供 Python、Java、Go、C# SDK,覆盖全部 API,方便自动化集成。

  • 可视化配置:无需改代码,前端页面直接修改系统端口和配置。

三、5 分钟极速上手

1. 环境准备

确保已安装 Python 3.10+ 和 Node.js 18+。

2. 启动后端服务

打开终端,执行以下命令:

# 克隆项目
git clone https://github.com/suoten/ProtoForge.git
cd ProtoForge
# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate  # Windows 请执行 .\venv\Scripts\activate
# 安装后端依赖
pip install -e .
# 初始化配置
protoforge init
# 启动服务(默认端口 8000)
protoforge runAuto代码解读复制代码展开代码▼

3. 启动前端界面

另开一个终端,进入  web 目录启动前端开发服务器:

cd ProtoForge/web
npm install
npm run devAuto代码解读复制代码

4. 登录体验

  • 地址: http://localhost:5173

  • 账号: admin

  • 密码: admin

登录后的操作路径:

  1. 启动协议:点击左侧「协议服务」->「一键启动」。

  2. 创建设备:点击「模板市场」-> 选择一个  Modbus PLC 模板 -> 点击「一键创建」。

  3. 查看数据:进入「设备列表」-> 点击「测点」,你会看到实时跳变的温度、压力等仿真数值。

四、深度场景:GB28181 国标视频全链路仿真

这是 ProtoForge 的一个亮点功能。如果你在开发 GB28181 上级平台(如视频网关),不需要接入真实摄像头,ProtoForge 可以模拟完整的摄像头注册和推流过程:

  1. SIP 注册:模拟摄像头向你的平台发送 SIP REGISTER 请求。

  2. 目录查询:响应 MESSAGE 目录查询。

  3. INVITE 请求:接收你的平台发起的 INVITE 请求。

  4. RTP 推流:自动发送 PS 封装的 RTP 视频流(25fps)。

  5. BYE 断开:响应停止推流指令。

这使得在无硬件环境下调试 SIP 信令交互和 RTP 收流解析成为可能。

五、强大的测试与集成能力

1. 自动化测试

在 UI 界面点击「仿真测试」,系统会自动生成测试用例,针对你的数据采集程序进行断言验证(支持大于、小于、包含、正则匹配等)。测试完成后生成 HTML 报告,便于归档。

2. 数据转发

模拟出的数据可以实时转发到:

  • InfluxDB:进行时序数据分析。

  • HTTP Webhook:触发业务系统。

  • 文件:保存为 CSV/JSON 用于离线分析。

3. EdgeLite 网关对接

若配合  EdgeLite 网关 使用,在设备配置中填写 EdgeLite 网关地址,ProtoForge 的虚拟设备会自动注册到边缘网关,模拟“云-边-端”协同架构。

六、部署方式

ProtoForge 支持多种部署模式,满足不同场景需求:

部署方式

适用场景

命令/操作

本地快速体验

开发测试、功能尝鲜

protoforge run +  npm run dev

Docker 一键部署

无需配置环境,快速验证

docker-compose up -d

服务器生产部署

团队使用、7x24 小时仿真服务

Nginx 代理 +  protoforge run

七、常见问题排查 (FAQ)

Q: 启动时提示 port already in use ?
A: 编辑根目录下的  .env 文件,修改  PROTOFORGE_PORT=你的端口,或者关闭占用端口的程序。

Q: 为什么有些协议(如 OPC-UA)启动失败?
A: 这些协议依赖较重的第三方库,需执行全量安装命令:

pip install -e ".[all]"Auto代码解读复制代码

Q: 前端页面空白?
A: 如果是生产部署,请先执行  cd web && npm run build 构建前端静态文件;如果是开发模式,确认后端服务(端口 8000)正在运行。

Q: 忘记 admin 密码?
A: 停止服务,删除  data/protoforge.db 文件,重启后系统会自动重建数据库并恢复默认密码  admin/admin。(注意:这会清空已有设备配置,请谨慎操作,建议提前备份)

八、相关资源

结语

ProtoForge 的目标是让物联网开发不再受限于硬件。无论你是需要测试上位机的数据采集逻辑,还是调试视频监控平台的信令交互,ProtoForge 都能提供一个高保真、易操作的仿真环境。

如果你正在从事 IoT、工业自动化或智慧安防相关的开发,不妨 Star 收藏这个项目,5 分钟后你就拥有了一整间“虚拟设备实验室”。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050062/viewspace-3117243/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2026-05-07

  • 博文量
    69
  • 访问量
    55632