简介 CXMM_MessageManagement 库提供功能块,将应用程序的信息、警告、错误等消息显示在 HMI 上,设计参考 PLCnext WBM 通知显示风格。 首步示例 设置消息文本到 PLC 变量 udtTextBuffer 建议将消息文本存储在 CSV 文件,用 PLCnextBase 库的 FB PBCL_FileCsvRead 读取并赋值给 PLC 变量。 设置发送者栏文本 参数设置:uiSender > 0, wCode = 0, wAddCode = 0 CXMM_udtMessageMgr.udtTextBuffer.arrText[0].uiSender :=
Java 9 引入新工具 jlink,可组合模块构建全功能运行时镜像。一方面可在 PLCnext Control 运行完整 32 位 ARM JDK;另一方面结合 jlink 与模块系统,可裁剪出仅含应用所需 JDK 部分的精简包,大幅降低资源占用。 前置条件 宿主机系统 JDK 控制器目标平台 JDK OpenJDK 多平台二制包可在 AdoptOpenJDK 获取。本教程选用 Linux arm32 jdk-12.0.2+10 作为控制器目标,宿主机用对应 Windows x64 版本。JDK 路径示例: C: ---Java | +---jdk-12.0.2 | ..
本文指导您在 PLCnext 上构建 Go 应用的第一步。不熟悉 Go 的读者可参考官网 www.golang.org。 Go 的一大优势:易于创建 Web 应用,却能编译为静态二进制,部署到 PLCnext 无需安装额外依赖包。 本文仅涵盖针对 PLCnext 的交叉编译,包含两个小程序:经典 HelloWorld 验证编译流程,及一个 REST API 调用展示 Go 实力。制作过程中使用: Ubuntu 18.04 LTS + VS Code + Go 开发环境 WinSCP 传输二进制文件 PuTTY 执行程序 HelloWorld 入门 新建 HelloWorld.go 粘贴示例
Docker 容器可在 PLCnext 设备上运行 Node-RED 服务。虽有其他方法稍快,但 OCI 容器优势明显:重复使用相同包时可构建标准镜像从 Docker Hub 下载,也可按需启停 Node-RED 服务。 本文将指导:安装 Docker 并验证、用 Dockerfile 构建预装包的自定义镜像、创建容器、设置开机自启、推送镜像到 Docker Hub。 安装 Balena Engine 严格说我们用 Balena Engine 运行 OCI 容器。命名细节见文末延伸阅读。安装步骤参考此处,命令如下。 确保以 root 登录,先设 root 密码: sudo passwd roo
读完 Dries 关于在 Docker 容器运行 Node-RED 的博客,我想分享一些实用技巧。 数据持久化 容器数据非持久化,删除容器即丢失。Docker 和 balenaEngine 提供两种将文件存储到宿主机的方式:Volumes 存储在 Docker 管理的宿主文件系统区域(/var/lib/docker/volumes),与宿主隔离,非 Docker 进程不应修改。Bind mounts 可存储在宿主机任意位置,非 Docker 进程随时可修改。 在 RUN 命令添加 -v 标志将容器数据目录绑定到宿主机目录。步骤: # 创建卷 balena-engine volume cre
大家好, 本文将探讨 C++ 与 PLCnext Engineer 中的简单和复杂数据类型,包含简单和复杂两个练习。 假设您具备 C++ 和 PLCnext Engineer 基础经验。 准备工作 所需工具:C++ 编辑器、PLCnext Engineer 软件、Phoenix Contact PLC。我使用的环境: AXC F 2152,固件 2021.0.3 PLCnext Engineer 2021.0.2 Visual Studio 2019 Community 16.9.4 我选用 Visual Studio,Eclipse 亦可。教程链接:Visual Studio、Eclip
各位 PLCnext 用户好, 前言 得益于 Jan Christoph Müller,我已在 PLCnext 设备(EPC 1522)上安装 ioBroker,现分享给大家。 问题与目标 我拥有: Pluggit 通风机,Modbus TCP 通信。上月用 Visu+ 做了小项目但不满意 若干 Shelly 继电器,MQTT 通信 若干小米智能家居设备(Yeelight、扫地机器人等) 目标:单一系统统管所有设备 为何选择 ioBroker? 智能家居领域知名系统,支持多种设备(含 PLCnext) 拥有丰富的智能家居设备模板/库 支持 Docker 部署 操作步骤 用浏览器登录设
TankerKönig API 提供德国所有注册加油站的实时油价数据。德国 14,000+ 加油站必须及时向联邦卡特尔办公室旗下部门上报 Super E5、Super E10 和柴油价格。仅持牌燃油价格信息服务商可直接访问该数据。为让 App、网站开发者等用户也能使用,TankerKönig 提供免费 API,秉承开放数据理念共享经验。 结合 TankerKönig 云服务 API 与 PLCnext Control,您可轻松可视化和分析本地加油站的实时油价。 官网:www.tankerkoenig.de 附录提供分步指南,演示如何在 PLCnext Control 与 Node-RED 中
当 Phoenix Contact PLCnext Control 数据已上云,接下来便是创建 Grafana 仪表板实现轻松监控。但首先,需将 PLCnext Control 接入 Microsoft Azure。 Phoenix Contact 官方视频(链接)演示了用 Node.js 客户端连接 Azure IoT Hub 的繁琐步骤。为省时省力,我选择使用 Fathym 的 IoT Ensemble。一键注册 PLCnext 设备,即刻获得数据访问权限,可直接用于告警、仪表板和可视化。注册后 IoT Ensemble 显示 IoT Hub 连接字符串,将其填入 PLCnext Eng
当 Phoenix Contact PLCnext Control 数据已上云,接下来便是创建 Power BI 报表实现轻松监控。但首先,需将 PLCnext Control 接入 Microsoft Azure。 Phoenix Contact 官方视频(链接)演示了用 Node.js 客户端连接 Azure IoT Hub 的繁琐步骤。为省时省力,我选择使用 Fathym 的 IoT Ensemble。一键注册 PLCnext 设备,即刻获得数据访问权限,可直接用于告警、仪表板和可视化。注册后 IoT Ensemble 显示 IoT Hub 连接字符串,将其填入 PLCnext Eng
当 Phoenix Contact PLCnext Control 数据已上云,接下来便是创建 Tableau 仪表板实现轻松监控。但首先,需将 PLCnext Control 接入 Microsoft Azure。 Phoenix Contact 官方视频(链接)演示了用 Node.js 客户端连接 Azure IoT Hub 的繁琐步骤:创建资源组、IoT Hub、存储容器、存储端点等。为省时省力,我选择使用 Fathym 的 IoT Ensemble。一键注册 PLCnext 设备,即刻获得数据访问权限,可直接用于告警、仪表板、可视化和机器学习。注册后 IoT Ensemble 显示
本教程演示如何在 PLCnext Engineer 中使用多语言功能,该功能自 2021.0 LTS 版本起支持。 示例以英语为默认语言,瑞典语为备选语言。 硬件:AXC F 2152 PLCnext 控制器(固件 2021.0 LTS 起) 软件:PLCnext Engineer 2021.0 LTS 项目:Starterkit Demo 项目(需适配至 2021.0 LTS) 步骤 1:在项目中启用多语言 选择“Extras > Options”。 点击“International”文件夹,选择“Default Language Settings”类别。 将“Default”语
Azure IoT Edge 可将云分析与自定义逻辑下沉至“边缘”——即我们的 PLCnext 设备。这能有效降低带宽占用和延迟。通过 Azure IoT Edge,您可从中央云应用开发并部署自有应用。本文将指导您搭建 Azure IoT Edge 并掌握其基本原理。 简介 在 Makers 博客中详述 Azure IoT Edge 所有细节不太现实,建议先阅读官方文档建立整体认知。此门户提供所需所有信息。让我们开始安装运行时。 安装步骤 创建 Azure IoT Hub 与设备 假设您已有 Azure 账号。首先创建资源组并命名。点击“创建资源组”,若未列出可点“+”搜索。 创建 IoT
技术背景 Apache Kafka Apache Kafka 是用于数据采集、存储、处理和再分发的框架,现已在全球企业广泛部署。其官网提供更多理念与部署信息。核心特性之一是拥有海量现成连接器,支持 MQTT 等协议与应用集成。 MQTT MQTT 是基于 TCP 的轻量级消息协议,因其健壮性和小体量,常用于物联网通信。OASIS 标准详情见其官网。 此前有文章介绍如何为 PLCnext 交叉编译 Eclipse Mosquitto,PLCnext Store 也提供现成 MQTT 应用。 需求清单 PLCnext 上的 MQTT 客户端(实现提示见上文) 控制器与 PC/VM 网络互通 PC
机器学习早已家喻户晓,但鲜有人知如何着手应用。希望阅读本文能帮助您理解如何利用 PLCnext 控制器开启机器学习之旅。本文将涵盖:训练首个 ML 模型、转换为 ONNX 标准、在 PLCnext 控制器上推理。为避免过度复杂,我们将使用经典的 Iris 鸢尾花数据集构建模型。 开始前,明确目标至关重要。以下简要介绍本文涉及的主题,参考资料见文末。 机器学习简介 什么是机器学习 机器学习的本质是利用统计与算法在数据集中发现模式。主要分为三类:监督学习、无监督学习和强化学习。监督学习最常用,本文采用此类。监督学习中,我们对数据打标签,明确告知机器寻找的模式。 无监督学习不打标签,让机器自行发现模
本演示项目展示如何通过 REST API 和 Modbus TCP,将 PLCnext 控制器作为智能家居设备轻松接入开源家庭自动化软件 Home Assistant。借助 PLCnext 控制器,您可在自动化中使用 Axioline 组件,轻松扩展比树莓派 GPIO 引脚更强大的输出能力、Pt100 温度传感器以及 DALI 等总线系统。所需条件仅为一套正常运行的 Home Assistant 安装和一个包含可运行项目的 PLCnext 控制器。 前置条件 Home Assistant Core 2021.1.5 Balena PLCnext Engineer 2020.6 AXC F 2
当完整交付系统时,系统体积往往会变得非常庞大,这不仅包含构建过程,还包括构建和测试环境。即使提取待交付文件不是问题,但这一过程耗时较长。 容器技术提供了自动化解决这一问题的可能性。 您可以在一个文件中定义多个容器。例如,使用 Node.js 构建的 JavaScript 网站就是一个典型场景。 以此为例: Node.js:约 400–600 MB Nginx Web 服务器:约 20 MB 网站文件:约 2 MB 若将整个系统打包为单一容器,总大小将超过 600 MB,但实际上生产运行仅需 22 MB(Web 服务器 + 网站)。此外,容器中包含生产环境不需要的软件,存在安全风险。解决方案
此演示项目展示如何为 PLCnext Engineer 中的 eHMI 创建自定义键盘。此为 BWP 2000 系列 HMI 触摸屏开发的变通方案,但也适用于 WP 4000 系列触摸屏。 BWP 2000 系列触摸屏仅有全屏屏幕键盘;无小键盘选项。屏幕键盘可从屏幕底部移至顶部以免遮挡输入字段,但许多场景下需要数字小键盘。 WP 4000 系列触摸屏有全屏屏幕键盘和数字小键盘。然而 PLCnext Engineer 无法使用内置数字小键盘。更具挑战的是全屏屏幕键盘无法移动,常遮挡输入字段。 历史 2019.0 LTS 此项目最初在 PLCn
挑战 为加速开发,我们想在 x86 硬件上为 AXCF2152 或 AXCF1152 创建基于 ARM 的容器。为此使用运行在普通 PC 上的基于 Debian 或 Ubuntu 的虚拟机。 我们需要模拟器 在 x86 系统运行 ARM 二进制代码需要允许此操作的模拟器。 Qemu 是少数能仿真 ARM 二进制代码并为 x86 编译的 hypervisor。只需在宿主系统安装 Qemu 并激活模拟器。为 Ubuntu 或 Debian 安装 Qemu: apt-get update && apt-get install -y --no-install-recommends qemu-user-
作为 IT 领域多年标准,在工业界尚未产生大影响。常被视为过于复杂和不必要。问题在于:它们能带来优势吗? 以 Kubernetes 为例展望 PLCnext 的愿景。 Kubernetes Kubernetes 是编排器(管理系统、主节点),除其他外利用容器在各设备间形成网络。系统以略微不同方式提供应用。 传统方式应用分发维护在设备上。知晓应用运行在哪台计算机。若应用需在另一计算机运行须人工操作。若一台计算机故障,其所有应用不可用。 使用 Kubernetes,向主节点给出应用状态描述,主节点处理其余。确保始终维持请求状态。但不知应用当前运行在哪节点,原则上仍可访问。 问答 什么是状态描述
工业技术