亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

无缝 gRPC 集成:将 Python 脚本连接到 PLCnext Engineer 项目

以下信息作为 2022 年帖子的更新和扩展。

AXC F 2152 和 AXC F 3152 方法相同,区别在于安装所需库的方式。

重要:该方法经测试适用于 FW 2024.x 和 2025.0

AXC F 2152:

grpcio 和 grpcio-tools 需在设备外交叉编译并手动安装。我用 QEMU 执行交叉编译的方法概览见此论坛条目

为 Python 3.11 交叉编译的库及本文其余文件已通过此链接提供

以下说明允许创建含 Python 3.11 的容器运行使用 gRPC 的脚本。

  1. 用 WinSCP(或其他访问控制器文件系统软件)在 /opt/plcnext 创建用于 gRPC 通信的文件夹,本例命名为 "grpc2152"。在 grpc2152 内创建以下文件夹结构。
grpc2152/ ├── include/ │ └── google/ │ └── (暂留空文件夹) │ ├── whl_files311/ │ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl │ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl │ ├── generate_googlegrpc.py ├── grpc_test.py └── Readme.txt 
  1. 下载仓库 "https://github.com/PLCnext/gRPC",取其中 "protobuf" 文件夹放入上述 google 文件夹。结果结构如下:
grpc2152/ ├── include/ │ └── google/ │ └── protobuf/ │ └── (PLCnext github 仓库 protobuf 文件夹内容) │ ├── whl_files311/ │ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl │ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl │ ├── generate_googlegrpc.py ├── grpc_test.py └── Readme.txt 
  1. 创建 SSH 会话到 PLC,以 root 用户登录 (su) 获取 python 3.11 精简版(此时需互联网获取 python 镜像)
$ podman pull docker.io/library/python:3.11.10-slim-bookworm 
  1. 运行并附加容器(挂载 grpc2152 文件夹为卷,第二个卷 (run) 用于连接 gRPC 套接字):
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash 
  1. 附加到容器控制台后,导航到 whl_files311 文件夹安装 grpcio 库(需互联网获取依赖)
 $ cd /grpc2152/whl_files311/ $ pip install *.whl 
  1. 返回容器中 grpc2152 父文件夹执行 python 脚本 "generate_googlegrpc.py"(应出现工作信息)
 $ cd /grpc2152 $ python3 generate_googlegrpc.py 
  1. 脚本成功执行后应出现新文件夹 (pxc_grpc)。grpc2152 内 python gRPC 代码片段现位于此。现可用示例项目和脚本测试 gRPC 功能。

  2. 下载并启动 PLCnext Engineer 项目 "TestingGRPC.pcwex" 到控制器。

  3. 在容器控制台执行 "grpc_test.py" 脚本测试 gRPC 功能。在 PLCnext Engineer 项目中调试模式访问变量,变量内容应填充脚本值。

AXC F 3152。

遵循上述 2152 流程,但步骤 5 直接从 pypi.org 安装库:

 $ pip install grpcio==1.71.0 $ pip install grpcio-tools==1.71.0 

数据类型与代码片段使用。

现在,每当想用 gRPC 访问变量,将生成代码片段的文件夹加入脚本使用的 Python 路径并导入必要类(给定 grpc_test.py 第 6-14 行)。

请参考文首提到的旧帖中概述的数据类型。

注意:

Makers Blog 展示社区成员应用和用户故事,未经 Phoenix Contact 测试或审核。使用风险自负。

工业技术

  1. 数字孪生助力西海岸主线准点率提升
  2. 纳米技术重塑现代生活:从重工业到医疗植入的隐形革命
  3. 设计制造(DFM)三大核心洞见:降本增效加速量产
  4. IO-Link:破解工业自动化瓶颈的标准化钥匙
  5. 制造商必掌握的 6 大实证内容营销战术
  6. 理解导体与绝缘体:从量子力学到实际应用
  7. 焊接钢结构疲劳失效:成因、寿命评估与焊趾改善技术
  8. 粉末喷涂:哪些项目受益最大?
  9. PCB供应链变革:为何供货稳定性比价格更关键
  10. 航空领域触摸屏 vs 按键界面:电容/电阻触屏与触觉反馈
  11. 电容器与微积分:电压变化率如何驱动电流
  12. 深度解析PCB丝印:作用、布局与优势