使用 gRPC 反射无缝连接 Python 脚本到 PLCnext Engineer 项目
本文作为 2025 年另一篇文章的补充。文件和库可在旧文的同一 GitHub 仓库找到。
该方法适用于 AXC F 2152 和 AXC F 3152。区别仍在于如何安装所需库。
重要:该方法经测试适用于 FW 2025.X
AXC F 2152:
grpcio 和 grpcio-reflection 库需在设备外交叉编译并手动安装。这些库(已为 Python 3.12 交叉编译)可在 GitHub 仓库获取。
注意:与旧文不同,反射的使用完全跳过了 protobuf 文件的使用和编译。以下说明允许创建含 Python 3.12 的容器运行使用 gRPC 的脚本。
- 在 /opt/plcnext 创建用于 gRPC 通信的文件夹,本例命名为 "grpc2152"。在 grpc2152 内创建以下文件夹结构:
grpc2152/ ├──── whl_files312/ │ └─── (github 仓库中 whl_files312 文件夹内容) │ └── gRPC_with_Reflection_26_0.py - 通过 SSH 连接 PLC,以 root 用户登录 (su) 获取 python 3.12 精简版(此时需互联网连接获取 python 镜像):
$ podman pull docker.io/library/python:3.12.13-slim - 运行容器并附加(将 grpc2152 文件夹作为卷挂载,第二个卷 (run) 用于连接 gRPC 套接字):
$ podman run -it -v /opt/plcnext/grpc2152/:/grpc2152 -v /run/:/run --restart=always --name grpctester python:3.12.13-slim /bin/bash - 附加到容器控制台后,导航到 whl_files312 文件夹安装必要的 grpcio 库。
$ cd /grpc2152/whl_files312/ $ pip install *.whl 从 GitHub 仓库下载并启动 PLCnext Engineer 项目 "TestingGRPC.pcwex"。
在容器控制台执行脚本 "gRPC_with_Reflection_26_0.py" 测试 gRPC 功能。调试模式下变量内容应填充脚本文本值,并从 PLCnext Engineer 项目读取后在控制台显示。
AXC F 3152。
遵循 2152 相同流程,但步骤 5 直接从 pypi.org 安装库:
$ pip install grpcio==1.76.0 $ pip install grpcio-reflection==1.76.0 注意:
Makers Blog 展示社区成员应用和用户故事,未经 Phoenix Contact 测试或审核。使用风险自负。
工业技术