
今天来盘一下工业 Qt 上位机常用开源库分类。列个大概的清单工控场景全覆盖分通讯、数据解析、界面、日志、存储、协议、工具、嵌入式适配结合我这些年做 Qt 工控、Modbus 设备、RK 嵌入式、Windows 上位机的开发场景以下是工业界一些常用的开源库标注适用场景、优缺点、替代方案方便大家选型。一、工业总线通讯库和 libmodbus 同分类设备交互核心1. Modbus 系列libmodbus支持 Modbus RTU/TCP/ASCII跨 Windows/Linux/ARM纯 C轻量Qt 直接调用。适用变频器、温控、仪表、485 / 网口设备。QtModbusQt 官方内置模块Qt5.12、Qt6 自带QModbusTcpClient/QModbusRtuSerialMasterC 原生 Qt 信号槽无第三方编译。优点不用编译库、线程友好缺点批量读写性能弱复杂异常处理不如 libmodbus。modbusppC 封装 libmodbus面向对象简化 API适合不想写 C 风格代码的 Qt 项目。2. 以太网工业总线PLC 主流协议libs7Snap7西门子 S7 协议开源库S7-1200/1500/300/400、Smart200 PLC 读写跨平台。工控标配几乎所有西门子上位机都用它读 DB 块、M 区、V 区。EtherCATSOEM开源 EtherCAT 主站库伺服、运动控制设备专用RK 嵌入式、Windows 都能跑。Profinetpcapng-profinet / libpnng轻量 Profinet 抓包 / 简易客户端主站商用库居多开源仅调试用。OPC UA工业物联网通用标准open62541纯 C 开源 OPC UA 客户端 / 服务端跨 ARM工业设备对接 MES、云平台首选Qt OpcUaQt 官方模块Qt 封装 OPC UA快速做 UA 客户端。CAN 总线车载 / 工控采集器libsocketcanLinux 嵌入式 CAN比如RK3326就可以用QCanBusQt 自带Windows CANalyst、Linux socketcan 统一封装libcanfestivalCANopen 协议伺服、IO 模块。3. 串口 / 485 通用串口库Qt SerialPortQt 自带原生串口无依赖简易 485 调试大数据收发稳定性一般。libserialport跨平台高性能串口比 QtSerialPort 底层稳定海量仪表轮询场景推荐。二、数据处理 工控数值解析库浮点、字节序、协议解析1.endianlite跨平台大小端转换工具库解决 Modbus 浮点、32 位寄存器高低字颠倒问题仅头文件无编译。2.fmtlib/fmt高性能格式化库替代 sprintf工业日志、数据打印速度远超 Qt 原生 QDebug。3.nlohmann/jsonjson.hpp单头文件 JSON 解析工控配置文件、设备参数导出、对接 HTTP 后台必备全平台兼容。4.protobufGoogle Protobuf二进制序列化设备上报数据、上位机和后台服务通信比 JSON 体积小、速度快MES 对接高频使用。libb64Base64 编解码图片、二进制采集数据上传云端。三、日志系统工控必须持久化日志、分级、滚动存储1.spdlog工业最主流高性能日志库C支持日志分级、按大小 / 时间分割日志文件、异步日志、控制台输出兼容 Windows/Linux/ARM比 Qt 文件读写日志性能高 10 倍以上。2.log4cpp老牌 C 日志多线程稳定适合老旧工控项目维护。3.Qt 自带 QFile 日志仅小型单机工具不推荐大型产线上位机无日志分割多线程易乱码。四、数据库存储库设备历史曲线、报警记录、生产工单轻量本地存储单机上位机无服务器1.SQLite3Qt 自带 QSqlite零配置本地数据库存储历史采集数据、报警、工单所有小型工控上位机标配。sqlite_modern_cppC 封装 SQLite简化 SQL 语句不用手写原生 SQL。对接服务器数据库产线 MES、车间服务器2.MySQL/MariaDBlibmysqlclient Qt QSqlMysql车间多机同步生产数据。3.PostgreSQLlibpq大型工厂海量历史曲线存储大数据量查询性能优于 MySQL。4.nfluxDB Client C时序数据库专用库工业采集高频点位每秒 100 寄存器存储曲线专门处理时序数据比 SQLite 快几十倍。五、网络通信库TCP/UDP/HTTP/MQTT对接云、后台MQTT 物联网设备上云、远程监控paho.mqtt.c纯 C MQTT 客户端跨 ARM 嵌入式对接阿里云 / 华为云 / 本地 MQTT 服务器qmqtt第三方 Qt MQTT 封装信号槽风格开发更快。HTTP/HTTPS 客户端对接 MES、Web 后台Qt NetworkQNetworkAccessManager简易的 HTTP直接交互libcurl全功能 HTTP 库支持 POST、文件上传、HTTPS、证书、超时控制工业上传采集文件首选。WebSocketQt QWebSocket 自带上位机网页端实时推送设备状态。六、界面 / 图表可视化库Qt 工控曲线、仪表盘、报表QCustomPlot工控 TOP1 免费绘图库单头文件无依赖实时曲线、历史曲线、多坐标轴、报警阈值线90% Qt 工控上位机在用商用免费。Qt ChartsQt 商业模块付费Qt 官方图表简单但大点位实时刷新卡顿产线高频采集不推荐。QSkinny / Qt Material工业扁平化 UI 样式库快速做现代化触控上位机界面。Qwt老牌科学绘图库示波器、频谱分析设备上位机专用API 偏老旧。Qt Advanced Docking System开源窗口停靠框架类似 VS 多窗口布局大型多功能工控软件必备。七、文件、报表、打印库生产报表导出libxlsxwriter导出 Excel 报表支持单元格、图表、打印生产工单、设备数据报表导出刚需。PopplerPDF 生成 / 解析导出报警 PDF 报表、设备说明书预览。miniz轻量 zip 压缩库打包日志、采集数据批量导出。八、加密、权限、校验工具库mbedtls轻量级加密库替代 opensslARM 嵌入式友好HTTPS 证书、MQTT 加密、设备数据加密传输。CRC32/CRC16 开源工具库自定义串口协议校验、数据完整性校验libmodbus 自带 CRC16自定义协议需单独。argon2用户密码加密存储上位机操作员登录权限管理。九、嵌入式 LinuxRK3326专用工具库libgpiodLinux 硬件 GPIO 控制工控 IO 板、指示灯、继电器控制。libudev自动识别 USB 设备485 转换器、采集仪、CAN 适配器热插拔检测。libevdev触控屏、工业按键外设驱动适配。十、跨平台通用工具库Boost超大工具集多线程、定时器、内存池、字符串处理缺点库体积大小型嵌入式慎用。tinyxml2XML 配置文件解析设备参数配置 XML 文件轻量替代 Qt XML。rapidxml高速 XML 解析大批量设备配置加载。附加说明快速选型优先级按你的项目场景小型单机设备上位机Modbus 仪表、单机检测设备必选libmodbus QCustomPlot spdlog nlohmann/json SQLite可选libcurl、paho.mqtt.c产线多设备工控软件PLC 多 Modbus 曲线报表 MES 对接必选Snap7 (libs7) libmodbus QCustomPlot spdlog InfluxDB 客户端 libxlsxwriter libcurl可选open62541 (OPC UA)、Qt Advanced DockingRK 嵌入式工业一体机无系统资源轻量化必选libmodbus、libsocketcan、libgpiod、spdlog、endianlite、mbedtls禁用Boost、重型图表库注全部上面列出均为开源免费可商用无版权风险QCustomPlot、libmodbus、spdlog MIT/LGPL 协议工控商用无问题Qt Charts、Qt OPC UA 属于 Qt 商业模块需要购买 Qt 授权优先选开源替代嵌入式 ARM 交叉编译优先纯 C 库libmodbus、snap7、paho.mqtt、mbedtlsC 库注意交叉编译工具链适配。