无缝 gRPC 集成:将 Python 脚本连接到 PLCnext 工程师项目
以下信息是对 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 的脚本。
- 使用 WinSCP(或允许访问控制器文件系统的其他软件),在 /opt/plcnext 中创建一个用于 gRPC 通信的文件夹,本示例将为该文件夹分配名称“grpc2152”。在 grpc2152 中,创建以下文件夹结构。
- 下载存储库“https://github.com/PLCnext/gRPC”,然后从那里获取文件夹“protobuf”并将其放入之前创建的 google 文件夹中。最终的文件夹结构如下所示:
- 创建与 PLC 的 SSH 会话,以 root 用户 (su) 身份登录并获取精简版 python 3.11。 (此时需要互联网连接才能获取Python图像)
- 运行并附加到容器(将文件夹 grpc2152 链接为连接 grpc 套接字所需的卷和第二个卷(运行)):
- 连接到容器控制台后,导航到文件夹 whl_files311 并安装 grpcio 库。 (依赖项需要互联网连接)
- 返回容器内的父文件夹 grpc2152 并执行 Python 脚本“generate_googlegrpc.py”(一些消息应该显示 -working!-)
-
脚本成功执行后,应该会出现一个新文件夹 (pxc_grpc)。在 grpc2152 内部,grpc 的 python 代码片段现在位于那里。现在您可以使用示例项目和脚本测试 gRPC 功能。
-
将 PLCnext Engineer 项目“TestingGRPC.pcwex”下载并启动到控制器。
-
通过执行“grpc_test.py”脚本,从容器的控制台测试 gRPC 功能。在 PLCnext Engineer 项目中,在调试模式下访问变量,变量的内容应使用脚本中的值填充。
适用于 AXC F 3152。
按照上面针对 2152 给出的相同过程进行操作,但在第 5 步中,直接从 pypi.org 安装库
<前>62前>数据类型和使用代码片段。
现在,每当您想要使用 gRPC 访问变量时,请将生成代码片段的文件夹包含到脚本使用的 Python 路径中,并导入必要的类(给定 grpc_test.py 文件的第 6 行到第 14 行)。
请记住考虑我在本文开头提到的旧文章中概述的数据类型。
注意:
创客博客显示未经菲尼克斯电气测试或审核的社区成员的应用程序和用户故事。使用它们的风险由您自行承担。
工业技术