导言
标准 RMP EtherCAT 主站可用于使用 RapidCode API 在 C# 或 C++ 中创建 PLC 应用程序。使用 RapidCodeRemote API,你可以使用 RapidCode API 中的所有功能,但要根据你的喜好 gRPC 支持的语言 (例如 Python、Java 或 Ruby)。RapidCodeRemote API 与在 Windows 或 InTime 上运行、用于管理 RMP 的 RapidServer 实例进行通信。
本质上,可以使用支持 gRPC 的所选语言来构建计算机。该语言仍然可以访问RapidCode的所有内容,例如通过RapidCodeRemote API执行运动命令、设置用户限制、触发和监视I/O等。
为什么是 Python?
Python 是当今最受欢迎的编程语言之一。它提供了极具可读性的代码,这有助于显著缩短开发时间,并使应用程序更易于维护。与 C++ 不同,它的程序通常更简单,因为工程师不必过分关注内存管理等麻烦的概念。更简单的程序可以减少错误,更快乐的工程师和更快乐的客户。这导致 Python 在 Web 开发、数据科学和人工智能等许多领域得到广泛使用。
Python 中有许多强大的库和框架。使用库可以节省大量的开发时间。需要使用机器学习吗?使用 PyTorch, 张量流,或 熊猫。需要在您的应用程序中添加计算机视觉吗?使用 OpenCV 要么 Scikit-Image。需要制作图表来可视化一些数据吗?使用 Matplotlib 要么 Seaborn。对于软件中的几乎所有工程问题,都有一个可用的库可以提供帮助。这些库都经过充分测试,维护得很积极,使用一个库意味着您的团队无需担心一件事。
传统 IEC 61131-3 编程语言 工业自动化行业中的可编程逻辑控制器 (PLC)(梯形图、结构化文本、指令列表、功能方框图、顺序功能图)无法访问这些库和工具。可能存在一些由一些聪明的工程师开发的强大的 PLC 程序,但这些程序在互联网上并不广泛可用,必须像石器时代一样通过闪存驱动器或通过电子邮件发送的 zip 存档进行传输。用 C++ 编程的 PLC 可以访问这些库,但是 C++ 应用程序有被埋在悬空指针、内存泄漏和细条代码的海洋中的危险。此外,Python 教育也非常普遍,这意味着你可以找到至少十名工程师为每位了解 Ladder 编程或结构化文本的工程师开发和维护 Python 应用程序。
使用 Python 可以创建更简洁、更简单、易于测试的程序,开发周期短。
采用 Python 的 RMP 架构
为了将 RMP 与 Python 一起使用,RapidServer 使用 gRPC 框架来监听来自客户端应用程序的请求消息。RapidServer 绑定到指定的 IP 地址和端口号,并接受来自客户端的连接。客户端应用程序可以发送请求消息,要求 RapidServer 执行一批 RapidCode 操作。执行结果将在响应消息中从服务器返回给客户端。这些消息的格式是在原型文件中定义的,gRPC 提供了 protobuf 编译器,这些编译器可以使用这些文件为客户端创建和解释这些消息生成必要的代码。
整体架构由三个过程组成:
- 这个 RMP EtherCAT 主站 在 InTime 上运行:它直接与 EtherCAT 网络上的所有设备(驱动器、I/O 模块等)通信。它负责控制所有驱动器运动、I/O 输出以及通过网络发送和接收数据。
- 这个 RapidServer 在 Windows 或 InTime 上运行:这会监听 gRPC 请求消息,指示 RMP 完成请求,然后发送响应消息。RapidCodeRemote API 本质上完全在 rapidcode.proto 文件中定义,该文件指定了 gRPC 请求和响应消息的格式。在内部,RapidServer 使用 RapidCode API 来指导 RMP。
- 你的 Python 应用程序:此应用程序必须符合 rapidcode.proto 文件中指定的 gRPC 消息格式才能与 RapidServer 通信。