littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于OpenCV和OPC UA协议的仪表读数分析系统

项目简介

本项目是开源的ACAP版本4(原生)应用程序。借助OpenCV开展视频分析,读取模拟仪表的读数,并通过内置的OPC UA(open62541)服务器将读取数值以百分比形式对外暴露。为工业自动化环境提供示例和模板,能利用计算机视觉技术从视频流中读取仪表读数,发送到服务器用于监控或控制操作。

项目的主要特性和功能

  1. 利用OpenCV分析视频流,自动捕捉模拟仪表的数字读数。
  2. 通过内置OPC UA服务器,将仪表数值以百分比形式暴露给客户端,便于与工业系统集成。
  3. 适用于关闭或启动PLC进程、生成报警、在SCADA服务器界面显示实时值以及维护历史日志等场景。
  4. 支持手动和脚本化两种安装和配置方式,可设置校准点、OPC UA服务器端口等参数。
  5. 可通过设置DEBUG_WRITE变量,将视频分析各步骤的图像存储到磁盘进行调试。
  6. 将提取的仪表读数作为动态文本覆盖字符串,可在相机上显示或供图形小部件使用。

安装使用步骤

构建项目

本项目使用ACAP SDK构建容器和Docker进行构建,Docker命令集成在Makefile中。 - 若已安装Docker和make,可使用以下命令构建: sh make dockerbuild 或并行构建: sh make -j dockerbuild - 若有Docker但无make,可使用以下命令构建: - 32位ARM设备(如基于ARTPEC - 6和ARTPEC - 7的设备): sh DOCKER_BUILDKIT=1 docker build --build-arg ARCH=armv7hf -o type=local,dest=.. - 64位ARM设备(如基于ARTPEC - 8的设备): sh DOCKER_BUILDKIT=1 docker build --build-arg ARCH=aarch64 -o type=local,dest=..

调试项目

若需要将视频分析各步骤的图像存储到磁盘进行调试,可在构建时设置DEBUG_WRITE变量: sh DEBUG_WRITE=y make -j dockerbuild 或使用Docker命令: sh DOCKER_BUILDKIT=1 docker build --build-arg DEBUG_WRITE=y --build-arg ARCH=armv7hf -o type=local,dest=.. DOCKER_BUILDKIT=1 docker build --build-arg DEBUG_WRITE=y --build-arg ARCH=aarch64 -o type=local,dest=..

安装和配置项目

手动安装和配置

  1. 通过相机的Web UI(Apps->Add app)上传ACAP应用文件(扩展名为.eap,需与相机架构匹配)。
  2. 安装完成后,启动应用程序。
  3. 点击Open按钮,打开应用程序的设置页面。
  4. 在设置页面的图像中依次点击设置校准点:仪表中心、仪表最小值、仪表最大值。
  5. 也可通过应用程序的参数设置(在三个垂直点菜单中)直接设置校准点、OPC UA服务器端口(默认4840)和顺时针/逆时针方向(默认顺时针)。

脚本化安装和配置

  • 上传ACAP应用文件: sh curl -k --anyauth -u root:<password> \ -F packfil=@OPC_UA_Gauge_Reader_<version>_<architecture>.eap \ https://<camera hostname/ip>/axis-cgi/applications/upload.cgi
  • 启动应用程序: sh curl -k --anyauth -u root:<password> \ 'https://<camera hostname/ip>/axis-cgi/applications/control.cgi?package=opcuagaugereader&action=start'
  • 列出当前设置: sh curl -k --anyauth -u root:<password> \ 'https://<camera hostname/ip>/axis-cgi/param.cgi?action=list&group=opcuagaugereader'
  • 设置OPC UA服务器端口(如设置为4842): sh curl -k --anyauth -u root:<password> \ 'https://<camera hostname/ip>/axis-cgi/param.cgi?action=update&opcuagaugereader.port=4842'

使用项目

将OPC UA客户端连接到ACAP中设置的端口,客户端即可从应用程序的OPC UA服务器读取仪表数值及其时间戳。此外,应用程序还会将仪表数值记录在相机的系统日志中。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】