Copyright © 2022 PHOENIX CONTACT All Rights Reserved.苏ICP备14032783号-1
![](https://plcnext.oss-cn-hangzhou.aliyuncs.com/images/logo-phoenix-contact.png)
PHOENIX
CONTACT
方案展示
开发背景
随着当今工业信息化应用的普及,技术学习门槛的降低,越来越多的智能化案例在工业自动化中崭露头角。
Python 语言作为当今实现智能化的首选语言,逐渐被大家认可及掌握。为了方便用户在 PLCnext 实际应用场景中使用 Python 语言进行各种业务交互,现在推出基于 Python 语言的通信SDK,使得我们的应用程序可以方便快捷地与 PLCnext 进行数据通信。
本篇文章介绍 PythonSDK 的基础用法,如何通过 Python 与 PLCnext 进行控制与变量通信。为后续基于 Python 语言的其他应用奠定基本的通信基础。
通过 Python 语言不仅可以开发智能化应用程序,而且可以开发网络通信,高级数据库应用,文件读写,操作日志审计等一系列应用程序,但这些应用都需要Python程序与PLCnext 交互这个基本环节。
本文所述的 PythonSDK 是基于 PLCnext RSC 协议的 Python 实现,同理,还有C\C++、C#、Java实现版本。另外,PLCnext 也推出了基于 gRPC 的 RSC 实现方案,使得用户可以使用各种语言与控制器之间采用RSC协议。
RSC协议是 PLCnext 控制器的专用通信协议,类同西门子的S7协议,由厂家负责维护。通过该协议,除了可以实现基本的变量通信外,还可以实现对控制器的管理与控制。
01
协议对比
通用的工业协议,例如 OPC UA 、Modbus 等,与本文所要介绍的 PythonSDK 相比的异同点是什么呢?
通用协议 |
通用性 |
功能描述 |
OPC UA |
高 |
常规变量通信或者方法调用,需要在控制器编程时对所需通信变量勾选设置,资源消耗略高 |
Modbus |
高 |
常规变量通信,需要在控制器上编程实现协议与变量的适配,资源消耗低 |
RSC |
低 |
无需设置,可以直接读写控制器编程空间中的任意变量,可以对控制器进行管理与控制,读取控制器每个扫描周期的变量趋势 |
综上对比,RSC 协议不是工业通信的标准协议,但具有使用简便,效率高,功能多样化等特点。
使用 PLCnext 控制器,可通过 RSC 协议与控制器进行无缝数据通信或控制,最大限度满足严苛与复杂交互需求。
02
开始使用
使用指令 $ pip install PyPlcnextRsc 即可下载Python SDK
建立连接
在 Python 程序中,可通过以下两种形式与PLCnext连接。
数据交互
建立连接后使用 Data Access Service 进行变量读写。针对非自定义的符合 IEC61131-3 标准的数据类型(BOOL, REAL, INT, STRING等),可使用 ReadSingle 进行单个变量的读取,或使用 Read 进行多个变量的读取。
也可使用 WriteSingle 或 Write 对变量写值。
如使用用户自定义的结构体或数组,可以通过DataTypeStore工具创建和IEC61131-3程序中对等的变量并进行读写。
PLCnext操作及状态监测
Python SDK 可读取 PLCnext 的状态(如 CPU 负载、内存占用情况、固件版本、报警灯、MAC 地址、温湿度等),或与 PLCnext 进行文件的读写,以及控制 PLCnext 停止、冷启等,例如使用下图中的程序完成 PLCnext 的冷启。
以上为 Python SDK 的基础使用方式,更多功能介绍以及使用样例参见:
https://pyplcnextrsc.readthedocs.io/
Copyright © 2022 PHOENIX CONTACT All Rights Reserved.苏ICP备14032783号-1
Copyright © 2022 PHOENIX CONTACT All Rights Reserved.苏ICP备14032783号-1