工业边缘计算实践:基于树莓派CM4与Ignition Edge的HMI解决方案
1. 项目概述:当工业边缘计算遇上现代HMI
最近在折腾一个工业现场的边缘数据采集与可视化项目,核心硬件选用了树莓派计算模块CM4驱动的reTerminal DM,而软件栈则决定上Ignition Edge。这个组合听起来可能有点“跨界”——一个是消费级硬件出身的工业级终端,另一个是工业SCADA领域的“新贵”平台。但实际搭配下来,我发现它恰恰击中了许多中小型自动化项目、产线数字化改造以及设备制造商(OEM)的痛点:在有限的预算和空间内,实现一个兼具强大数据处理能力、现代化人机界面(HMI)和可靠工业通讯的边缘节点。
reTerminal DM本身是一款基于树莓派CM4的工业面板PC,自带10.1英寸的IPS触摸屏,接口丰富(包括RS-232/485、千兆以太网、USB等),并具备宽温、宽压输入等工业特性。它提供了足够的算力(CM4的ARM Cortex-A72)和灵活的I/O,是理想的边缘硬件载体。而Ignition Edge,是Inductive Automation公司Ignition平台的精简版,专为边缘部署设计。它继承了Ignition在数据采集(通过OPC UA、MQTT、Modbus等)、标签管理、数据转发以及HMI开发方面的核心能力,但资源占用更小,授权成本也更友好。
这个“开始使用”的过程,远不止是简单的软件安装。它涉及到如何将一个通用的工业硬件,与一个专业的工业软件平台进行深度整合,配置成一个稳定、可靠、易于维护的边缘计算单元。这其中,既有对硬件底层的理解(如Linux系统配置、驱动兼容性),也有对工业软件架构的把握(如Ignition Gateway的配置、扫描器设置、画面设计)。接下来,我就结合自己的实操经验,把这个从开箱到上线的完整流程,以及踩过的坑、总结的技巧,详细拆解一遍。
2. 核心思路与方案选型背后的考量
为什么是reTerminal DM + Ignition Edge?这个选择背后有一系列工程化的权衡。
2.1 硬件选型:为什么是reTerminal DM而非工控机或普通树莓派?
在项目初期,我们对比过传统的X86工控机、无风扇嵌入式BOX以及树莓派生态的各类产品。最终选择reTerminal DM,主要基于以下几点:
- 集成度与成本平衡:传统工控机性能强,但需要额外配置触摸显示器,整体成本高、体积大。普通的树莓派+第三方触摸屏组合,在工业环境的电磁兼容性(EMC)、宽温宽压适应性和安装便利性上往往存在短板。reTerminal DM作为一个高度集成的产品,其屏幕、计算核心、电源管理、工业接口(如隔离的RS-485)和外壳是一次性设计验证的,省去了大量的兼容性测试和组装工作,总拥有成本(TCO)反而更具优势。
- 树莓派生态与软件灵活性:基于树莓派CM4,意味着我们可以直接享用庞大的Linux开源软件生态。无论是需要安装特定的Python库进行数据预处理,还是通过Docker容器部署其他微服务(如Node-RED用于简单逻辑流,或InfluxDB用于本地缓存),都变得非常容易。这种软件灵活性是许多封闭式工控机所不具备的。
- 工业级可靠性设计:reTerminal DM并非消费级树莓派套件。它提供了9-36V的直流宽压输入,适应工业现场不稳定的电源环境;具备ESD防护和一定的噪声免疫力;工作温度范围通常在-20°C到70°C,能满足大多数室内工业环境的需求。其外壳设计也便于DIN导轨安装或壁挂,这是工控设备的“标配”。
注意:虽然reTerminal DM具有工业特性,但其核心CM4的寿命和长期供货稳定性是需要与供应商确认的关键点。对于超长生命周期(如10年以上)的关键应用,可能需要考虑芯片级的长供货期方案。
2.2 软件选型:为什么是Ignition Edge而非传统组态软件或开源方案?
在软件层面,我们同样面临多个选择:传统的Windows组态软件(如WinCC、组态王)、基于Web技术的开源SCADA(如Scada-LTS, Node-RED Dashboard),以及Ignition Edge。
- 跨平台与现代化架构:Ignition Edge基于Java,可以运行在Linux系统上,这完美匹配了reTerminal DM的Raspberry Pi OS(基于Debian)。传统组态软件大多绑定Windows,在ARM Linux上无法运行。Ignition的客户端是纯Web的,这意味着操作员界面可以通过任何现代浏览器(Chrome, Edge, Firefox)访问,无需安装任何客户端软件,极大简化了部署和维护。
- “一次设计,多处部署”的授权模式:Ignition Edge的授权相对灵活,且与Ignition Maker Edition(免费版,有限标签数)和完整版Ignition共享相同的开发环境(Ignition Designer)。我们可以在功能更强大的开发机上用Designer完成所有的HMI画面、数据库连接、脚本逻辑开发,然后直接将项目导出,导入到边缘的Ignition Edge Gateway中。这种开发与运行分离的模式,提升了开发效率。
- 强大的原生工业协议支持:Ignition Edge内置了非常全面的驱动,包括Modbus TCP/RTU、OPC UA(客户端/服务器)、Allen-Bradley Ethernet/IP、Siemens S7等主流协议。这意味着我们不需要像在开源方案中那样,花费大量时间寻找、测试和调试各种协议的第三方库或插件,开箱即用,稳定性更有保障。
- 核心功能聚焦边缘场景:Ignition Edge专注于边缘侧的核心任务:采集(从PLC、传感器获取数据)、处理(本地计算、报警判断)、转发(将清洗后的数据通过MQTT或OPC UA上报到云端或中央SCADA)。它剥离了完整版中如报表、MES等复杂模块,使得系统更轻量,更适合reTerminal DM这类资源有限的硬件。
综合来看,这个组合为我们提供了一个高性价比、高灵活性、高可维护性的工业边缘HMI解决方案。它特别适合以下场景:单台设备的数据监控与可视化、小型产线的控制面板、作为大型SCADA系统的远程子站、或设备制造商为其产品添加智能联网功能。
3. 系统准备与底层环境配置
拿到reTerminal DM硬件后,第一步不是直接安装Ignition,而是打好系统基础。一个稳定可靠的底层系统是后续一切工作的前提。
3.1 操作系统选择与烧录
reTerminal DM官方推荐使用其定制的Raspberry Pi OS(基于Debian 11 Bullseye)。这个镜像已经包含了触摸屏驱动、亮度调节工具等必要的硬件支持。
获取镜像:从Seeed Studio(reTerminal DM制造商)的Wiki或下载页面获取最新的专用镜像文件(通常是
.img.xz压缩格式)。烧录到MicroSD卡:使用如Raspberry Pi Imager、BalenaEtcher或
dd命令进行烧录。这里我推荐使用Raspberry Pi Imager,因为它操作简单,并且在烧录前可以预先进行一些关键配置。- 打开Imager,选择“Choose OS” -> “Use custom” -> 选择下载好的
.img.xz文件。 - 选择“Choose Storage” -> 插入的MicroSD卡(容量建议32GB以上,Class 10或A1/A2速度等级)。
- 关键步骤:在烧录前,点击Imager右下角的齿轮图标(高级选项)。在这里,你可以预先:
- 设置主机名(如
reterminal-edge-01)。 - 启用SSH服务,并设置密码认证或上传公钥(强烈推荐使用SSH密钥对,禁用密码登录,以提升安全性)。
- 配置Wi-Fi国家和SSID/密码(如果计划使用无线网络)。
- 设置本地化选项(时区、键盘布局)。
- 设置主机名(如
- 点击“Write”开始烧录。烧录完成后,Imager可能会提示“格式化”,请选择“Cancel”,因为我们已经写入了系统。
- 打开Imager,选择“Choose OS” -> “Use custom” -> 选择下载好的
首次启动与基础配置:将MicroSD卡插入reTerminal DM,上电启动。首次启动会进行文件系统扩展等初始化操作。完成后,你可以通过连接的显示器或通过SSH登录进行后续配置。
- 通过SSH登录:如果你预配置了SSH和网络,可以直接在终端使用
ssh pi@<reterminal的IP地址>登录(默认用户是pi)。 - 基础更新:登录后第一件事是更新系统包。
sudo apt update sudo apt full-upgrade -y sudo reboot
- 通过SSH登录:如果你预配置了SSH和网络,可以直接在终端使用
3.2 硬件功能检查与优化
系统运行起来后,需要确认所有硬件功能正常,并进行针对性优化。
触摸屏校准:虽然官方镜像已预校准,但如果你发现触摸点不准,可以使用
xinput_calibrator工具重新校准。安装并运行后,按屏幕提示点击四个十字标即可生成校准数据。sudo apt install xinput-calibrator xinput_calibrator校准完成后,根据提示将生成的矩阵参数添加到
/etc/X11/xorg.conf.d/99-calibration.conf配置文件中。串口(RS-232/485)启用与配置:reTerminal DM的串口默认可能被蓝牙占用(树莓派惯例)。我们需要将其释放并配置给工业通讯使用。
- 编辑
/boot/config.txt文件,在末尾添加或修改以下行:dtoverlay=uart3 dtoverlay=uart5 uart3对应的是板载的RS-232接口,uart5对应的是RS-485接口。添加后,它们将分别映射到/dev/ttyAMA1和/dev/ttyAMA2(具体设备名可能因内核版本略有差异,可通过ls /dev/ttyAMA*查看)。- 重启生效。之后,你需要为
pi用户添加访问串口设备的权限:sudo usermod -a -G dialout pi,然后重新登录。
- 编辑
性能与可靠性优化:
- 禁用不必要的服务:如蓝牙、桌面版的图形界面(如果你纯作服务器用)。可以通过
sudo systemctl disable bluetooth和sudo systemctl set-default multi-user.target来禁用并切换到命令行模式,节省内存和CPU。 - 使用ZRAM交换空间:MicroSD卡的读写寿命和速度有限,不适合做频繁的交换分区。ZRAM在内存中创建压缩的交换空间,能有效提升响应速度并保护存储。可以安装
zram-tools包并启用。 - 配置看门狗(Watchdog):防止系统因软件问题卡死。树莓派内核内置了硬件看门狗,启用
bcm2835-wdt驱动并安装watchdog服务进行配置。
- 禁用不必要的服务:如蓝牙、桌面版的图形界面(如果你纯作服务器用)。可以通过
实操心得:对于工业现场,我强烈建议将系统配置为无头(Headless)运行模式,即不启动图形桌面。Ignition Gateway本身是一个后台服务,通过Web访问。这样可以最大化地将系统资源(内存、CPU)留给Ignition和你的应用逻辑,提高系统稳定性和响应速度。日常维护完全通过SSH进行。
4. Ignition Edge的安装与网关配置
底层系统稳定后,就可以开始安装我们的核心软件——Ignition Edge了。
4.1 下载与安装
获取安装包:前往Inductive Automation官网的下载页面,选择“Ignition Edge”。你需要注册一个账户(免费)。选择版本时,注意选取与你的Ignition Designer开发环境相匹配的版本(如8.1.x)。下载适用于Linux (ARM)的安装包,文件格式为
.deb(Debian包)。安装依赖:Ignition基于Java,需要JRE 11。虽然安装包可能包含,但最好确保系统有合适的版本。
sudo apt install openjdk-11-jre-headless -y安装Ignition Edge:使用dpkg命令安装下载的.deb包。
sudo dpkg -i ignition-edge-8.1.x-linux-arm.deb如果提示缺少依赖,运行
sudo apt --fix-broken install自动修复。验证安装:安装完成后,Ignition Edge服务会自动启动。默认情况下,它监听
http://<reterminal_ip>:8088。打开同一网络下的浏览器,输入该地址,你应该能看到Ignition Edge的网关登录页面。默认用户名和密码是admin/password。首次登录后务必立即修改密码!
4.2 网关网络与安全配置
进入Ignition网关网页(Gateway Web Console)后,首先要进行一些关键的安全和网络配置。
- 修改默认密码:在“Config” -> “Users”中,修改admin用户的密码,并考虑创建一个权限稍低的日常管理用户。
- 配置网关网络设置:
- 网关地址:确保“Gateway Settings” -> “Network”中的“Gateway Hostname”和“Public Address”设置正确。如果reTerminal DM使用动态IP(DHCP),这里可以保持默认。如果使用静态IP,建议在此处明确设置,以确保WebSocket等连接稳定。
- HTTPS启用(可选但推荐):对于生产环境,启用HTTPS加密通信是必须的。你可以在“Network” -> “SSL”中上传自己的SSL证书和私钥,或使用网关生成的临时自签名证书(浏览器会提示不安全,仅用于测试)。
- 设置时区与时间同步:工业系统对时间一致性要求很高。确保reTerminal DM的系统时区正确,并运行NTP服务。在网关的“Gateway Time”设置中,可以检查并同步时间。
# 在reTerminal终端中设置时区,例如上海 sudo timedatectl set-timezone Asia/Shanghai sudo systemctl enable systemd-timesyncd sudo systemctl start systemd-timesyncd
4.3 授权激活
Ignition Edge需要许可证才能长期运行。你有几种选择:
- 试用模式:首次安装后有7天全功能试用期。
- 永久边缘许可证:购买后,在网关的“Licensing”页面,输入许可证密钥在线激活。
- Ignition Maker Edition:这是一个免费的社区版,但限制最多75个标签(Tags)。对于非常小型的应用,这可能足够。你可以在官网申请Maker Edition的密钥。
激活后,网关状态会显示为“Licensed”。
5. 核心项目配置:从设计器到边缘运行
Ignition的核心工作流是“设计-部署”。我们在功能强大的Windows/Mac/Linux开发机上使用Ignition Designer进行项目开发,然后部署到边缘网关。
5.1 在开发机上安装与使用Ignition Designer
- 从官网下载并安装适用于你开发机系统的Ignition Designer。确保Designer版本与边缘网关的版本一致或兼容(通常小版本号一致即可)。
- 启动Designer,它会提示你连接到一个网关。这里我们连接**本地网关(localhost)**即可,因为Designer自带一个本地运行时用于设计和测试。
- 创建一个新项目,或者打开一个现有项目。
5.2 建立与边缘网关的通信
为了将项目从Designer部署到远端的reTerminal DM,我们需要在Designer中添加这个边缘网关。
- 在Ignition Designer的左上角,点击当前网关名称(通常是“localhost”),选择“Add Gateway...”。
- 在弹出的窗口中,输入你的reTerminal DM的IP地址、端口(8088)、以及你在4.2节中创建的管理员用户名和密码。
- 连接成功后,你可以在Designer中切换到该远程网关。这意味着你可以直接浏览远程网关上的标签、数据库连接等配置,并直接将画面项目发布到该网关。
5.3 配置数据源(OPC UA、Modbus等)
这是Ignition连接物理世界的桥梁。我们以最常见的Modbus TCP和OPC UA为例。
在远程网关(reTerminal)中配置:
- 在Gateway Web Console中,进入“Config” -> “Tags”。
- 点击“Create new Tag Provider”,选择“Modbus Ethernet”或“OPC UA”。
- Modbus TCP设备:
- 填写设备名称、主机IP(PLC的IP地址)、端口(默认502)。
- 根据PLC的型号配置正确的字节序(Byte Order)和寄存器映射(如Coil, Discrete Input, Holding Register, Input Register)。
- 在“Tags”选项卡下,通过“Add Tag”或“Import Tags”来定义你要读写的具体点位(如
Temperature对应40001保持寄存器,数据类型Float)。
- OPC UA服务器:
- 填写服务器名称、端点URL(如
opc.tcp://<plc_ip>:4840)。 - 配置安全策略和身份认证(如果需要)。
- 点击“Browse”按钮,可以浏览服务器上的节点树,并直接勾选需要订阅的节点导入为标签。
- 填写服务器名称、端点URL(如
在Designer中同步与使用:
- 在Designer中切换到远程网关后,你可以在“Tag Browser”中看到刚刚在网关上创建的所有标签。
- 在设计HMI画面时,可以直接将这些标签拖拽到组件属性上进行绑定,实现数据动态显示。
5.4 设计HMI画面并部署
- 在Designer中创建窗口(Window):使用丰富的组件库(按钮、指示灯、图表、文本框等)搭建界面。
- 数据绑定:将组件的属性(如文本、值、颜色)与网关中的标签进行绑定。例如,将一个“圆形”组件的“填充颜色”绑定到一个布尔型标签
Motor_Running,并设置转换:当值为True时绿色,False时灰色。 - 脚本逻辑:Ignition支持Python(Jython)和表达式脚本。你可以在按钮的“动作”脚本中编写逻辑,如
system.tag.write('PLC1.Start_Command', True)来启动设备。 - 项目部署:
- 在Designer中,右键点击你的项目,选择“Export Project”。
- 在弹出的导出窗口中,目标网关选择你的reTerminal DM网关,然后点击“Export”。
- 导出成功后,在reTerminal DM的Gateway Web Console中,“Config” -> “Projects”页面,你应该能看到刚导入的项目。点击项目后的“Start”按钮,项目即开始运行。
- 访问HMI:项目运行后,你可以通过浏览器访问
http://<reterminal_ip>:8088/main/webdev/来打开你设计的HMI主页面。也可以创建自定义的URL映射,使其更简洁。
6. 高级集成与系统优化
基础功能跑通后,我们可以进一步挖掘这个组合的潜力,让它更智能、更稳定。
6.1 与本地数据库集成(SQLite/MySQL)
Ignition Edge内置了SQLite引擎,并支持连接外部数据库如MySQL/MariaDB。这可以用来:
- 历史数据记录:将重要的标签值定期记录到数据库表中,用于趋势分析或故障追溯。
- 配方管理:将生产参数存储为数据库记录,方便调用和切换。
- 事件日志:将操作员操作、报警事件记录到数据库。
配置步骤:
- 在Gateway Web Console中,进入“Config” -> “Databases”。
- 点击“Create new Database”,选择类型(如“SQLite”或“MySQL”)。
- 配置连接参数。对于SQLite,只需指定数据库文件路径(如
/home/pi/project_data/myfactory.db)。 - 在“Tags”或“Scripting”中,可以使用
system.db.runPrepUpdate等函数来执行SQL语句,读写数据库。
6.2 利用Ignition的“边缘到云端”功能
Ignition Edge的核心价值之一是作为数据桥梁。我们可以轻松地将边缘处理后的数据转发到更上层的系统。
- 通过MQTT转发:在“Config” -> “MQTT”中配置一个MQTT发射器(Transmitter),将指定的标签(或通过脚本处理后的数据)发布到云端MQTT Broker(如AWS IoT Core, Azure IoT Hub, 或私有的Mosquitto服务器)。
- 通过OPC UA服务器:启用Ignition Edge的OPC UA服务器功能,这样上位的SCADA或MES系统可以直接通过标准的OPC UA协议来读取边缘节点的数据,实现了异构系统的无缝集成。
6.3 系统自启动与看门狗脚本
为了确保设备上电后所有服务自动恢复,我们需要配置系统服务。
- Ignition服务自启:安装.deb包时,已经创建了systemd服务
ignition.service,默认是启用的。可以通过sudo systemctl enable ignition和sudo systemctl start ignition管理。 - 自定义脚本或服务:如果你还有额外的Python数据预处理脚本或Node-RED流需要运行,可以为其创建systemd服务单元文件(.service),并设置为依赖
ignition.service启动。 - 硬件看门狗集成:我们可以写一个简单的Python脚本,定期检查Ignition Gateway的Web端口是否响应,或者关键进程是否存在。如果检测到故障,脚本可以通过系统命令重启Ignition服务,甚至重启整个设备。将这个脚本也配置为systemd服务,并设置定时器。
#!/usr/bin/env python3 # watchdog_ignition.py import requests import time import subprocess import logging logging.basicConfig(filename='/var/log/ignition_watchdog.log', level=logging.INFO) GATEWAY_URL = "http://localhost:8088/main/system/health" CHECK_INTERVAL = 60 # seconds MAX_FAILURES = 3 failure_count = 0 while True: try: resp = requests.get(GATEWAY_URL, timeout=10) if resp.status_code == 200: if failure_count > 0: logging.info("Gateway recovered.") failure_count = 0 else: failure_count += 1 logging.warning(f"Gateway health check failed (HTTP {resp.status_code}). Failure count: {failure_count}") except Exception as e: failure_count += 1 logging.error(f"Gateway health check error: {e}. Failure count: {failure_count}") if failure_count >= MAX_FAILURES: logging.critical("Max failures reached. Restarting Ignition service.") subprocess.run(["sudo", "systemctl", "restart", "ignition"]) failure_count = 0 time.sleep(120) # 等待重启后稳定 else: time.sleep(CHECK_INTERVAL)7. 常见问题与故障排查实录
在实际部署中,难免会遇到各种问题。这里记录了一些典型问题及其解决方法。
7.1 硬件与系统层问题
问题1:触摸屏无响应或漂移。
- 排查:首先确认是否在Raspberry Pi OS的桌面环境下。如果是命令行模式,触摸屏本身不工作。如果是在桌面环境,尝试重新校准(见3.2节)。
- 解决:运行
xinput_calibrator重新校准。检查/etc/X11/xorg.conf.d/99-calibration.conf文件是否存在且内容正确。
问题2:串口无法读写数据。
- 排查:
- 检查
/boot/config.txt中dtoverlay=uart3, uart5是否启用。 - 检查设备文件权限
ls -l /dev/ttyAMA*,确认用户是否在dialout组。 - 使用
minicom或screen工具直接连接串口,测试收发是否正常。例如:sudo minicom -D /dev/ttyAMA1 -b 9600。
- 检查
- 解决:确保配置正确,权限足够。注意RS-485是半双工,需要控制收发方向(RE/DE引脚),reTerminal DM可能通过GPIO控制,需要在Ignition脚本中或通过外部电路管理。
问题3:系统运行一段时间后变卡或死机。
- 排查:使用
top或htop命令查看CPU和内存占用。检查/var/log/syslog有无内核错误。使用dmesg查看硬件相关错误。 - 解决:
- 可能是内存不足。考虑禁用图形界面,增加ZRAM(见3.2节)。
- 检查MicroSD卡健康状况:
sudo smartctl -a /dev/mmcblk0(需安装smartmontools)。工业环境建议使用高耐久度的工业级SD卡或eMMC版本。 - 确保散热良好,CM4过热会降频。
7.2 Ignition软件层问题
问题1:无法通过浏览器访问Ignition网关(8088端口)。
- 排查:
- 检查Ignition服务状态:
sudo systemctl status ignition。 - 检查端口监听:
sudo netstat -tlnp | grep 8088。 - 检查防火墙:
sudo ufw status(如果启用)。
- 检查Ignition服务状态:
- 解决:重启服务
sudo systemctl restart ignition。查看Ignition日志/usr/local/bin/ignition/logs/wrapper.log寻找错误信息。
问题2:Modbus或OPC UA设备连接超时或读取失败。
- 排查:
- 网络连通性:从reTerminal DM上ping设备IP。
- 端口与协议:确认设备端口号(如Modbus TCP的502)是否正确,设备是否处于监听状态。
- Ignition配置:检查Tag Provider中的主机IP、从站ID(Slave ID)、寄存器地址、数据类型、字节序是否与设备手册完全一致。字节序错误是导致浮点数、32位整数读取为乱码的最常见原因。
- 在Ignition的“Diagnostics” -> “Network”页面,可以测试到设备的TCP连接。
- 解决:使用第三方工具(如Modbus Poll、UAExpert)先验证设备本身通讯是否正常。然后逐项核对Ignition中的配置。对于Modbus,可以尝试先读取一个已知的线圈或保持寄存器(整数)来测试基础通讯。
问题3:HMI画面加载缓慢或操作响应慢。
- 排查:
- 浏览器开发者工具(F12)中查看网络(Network)标签,检查加载哪些资源耗时过长。
- 检查Ignition网关的CPU和内存使用率。
- 检查画面中是否使用了过多高分辨率图片,或过于复杂的SVG图形。
- 检查标签扫描速率是否设置过快,给系统带来不必要的负载。
- 解决:
- 优化HMI画面,减少单画面组件数量,对图片进行压缩。
- 调整标签的扫描周期(Scan Rate),非关键数据可以适当放慢(如从1秒改为5秒)。
- 考虑启用Ignition的“客户端缓存”等功能。
问题4:项目从Designer导出/导入失败。
- 排查:检查Designer和Gateway的版本是否严格一致。查看Gateway Web Console的“Diagnostics” -> “Logs”页面,寻找相关错误信息。
- 解决:确保版本匹配。有时网络不稳定会导致导出包损坏,可以尝试重新导出。对于大型项目,导出导入过程可能需要几分钟,请耐心等待。
7.3 数据流与集成问题
问题1:数据记录到数据库失败。
- 排查:检查数据库连接配置是否正确(路径、用户名、密码)。检查Ignition服务运行用户(通常是
ignition)是否有对SQLite数据库文件的读写权限。 - 解决:对于SQLite,确保数据库文件路径存在且权限正确:
sudo chown ignition:ignition /path/to/database.db。
问题2:MQTT数据无法发布到云端。
- 排查:
- 检查reTerminal DM的网络是否能访问云端MQTT Broker的地址和端口(通常为8883或1883)。
- 检查MQTT发射器配置中的Broker地址、客户端ID、用户名/密码、Topic是否正确。
- 检查Broker是否需要SSL/TLS证书,证书是否已正确配置在Ignition中。
- 解决:先在reTerminal DM上用命令行工具(如
mosquitto_pub)测试到Broker的连接和发布,排除网络和Broker端问题。然后再在Ignition中配置。
这个reTerminal DM与Ignition Edge的组合,经过多个项目的打磨,已经证明其足以胜任大多数轻量级到中型的工业边缘计算与可视化任务。它的魅力在于,用相对亲民的成本和开放的技术栈,实现了接近高端专用工业控制器的能力。最关键的是,整个系统的高度可定制性和可扩展性,让你能随着需求的变化不断迭代,而不是被锁死在某个封闭的系统中。当然,这对实施者的综合能力——从Linux运维到工业通讯,再到软件设计——提出了不低的要求,但这也是工业自动化领域数字化转型的乐趣和挑战所在。