monty python读音-PYTHON – 让"Monty 语言”进入自动化行业:第 1 部分

只需以下 11行 Python语句,就能使用 Revolution Pi平台构建基于 PID控制的加热系统:

from simple_pid import PID

import revpimodio2

import time

TempController = PID(5.0, 0.13, 10.5, setpoint=400, output_limits=(0,100))

rpi = revpimodio2.RevPiModIO(autorefresh=True)

while True:

Temp = rpi.io.Temp10.value

PWMvalue = TempController(Temp)

rpi.io.PWM_heater1.value = int(PWMvalue)

rpi.io.PWM_heater2.value = int(PWMvalue)

time.sleep(0.05)

我们将控制什么?它是一种采用经典 PID控制和基于消息的 IoT的混合应用。我将使用一个模拟温度输入(连接 PT100传感器)和一个数字输出(带有两个由 PWM控制的 10W灯泡)来模拟加热器。当前温度报告至 MQTT代理,此代理再将数据提供给 Node-Red GUI。设置值可通过此 GUI进行调节,并由 MQTT传输至 Python PID控制软件。如果您对这些感兴趣,请继续阅读下文关于如何高效使用 Python语言完成自动化任务的逐步说明。

Python 是 IT 行业中常用的编程语言。然而,尽管它问世已有近 30 年,但是鲜少用于自动化行业和嵌入式系统。2017 年,C 和 C++ 语言仍然占据主导地位。但是随着 Raspberry P 以及 MicroPython 等针对 IoT 开发的系统的发展,情况开始有所改变。2018 年,IEEE Spectrum 排行榜连续第二年将 Python 列为编程语言的第一名,排在 C++ 和 C 语言之前。此外,Python 在 2017 年嵌入式编程语言排名中甚至未能跻身前十名,而 2018 年则一跃成为榜首。

image0041.jpg?w=1042

近几年来,Python(该名字与单词字面意义上的"巨蟒”无关,而是取自 Monty Python)持续走红,排名蹿升也反映出它受欢迎的程度。在本文中,我不想探讨其中的原因,也不会比较在嵌入式系统中使用 Python 和 C 语言的优劣。如果您希望进行此类讨论,请以发起者的身份进行评论。

在自动化行业中,许多工程师在进行 PLC 编程时甚至不使用 C 语言,而是常常使用 IEC61131 语言。为了激发大家对 Python 的兴趣,我将演示如何通过 Revolution Pi 使用 Python 轻松控制工业 IO。请勿错过 Peter Oakes 和 Andrew Back 发表的关于 Revolution Pi 的精彩文章;Dave Ives 已演示过如何通过 Revolution Pi 使用 EN61131"结构化文本”语言。

我在演示中使用的设备如下:

Revolution Pi Core 3

1 个可至少提供 1A 电流的 24V 实验室电源(还可使用 DIN 导轨式开关电源,例如这款 36W Mean Well 设备:

2 个 24V 10W 汽车灯泡(例如

1 个 PT100 传感器(我使用的是四线制传感器,例如

1 台装有 Windows 操作系统的个人电脑,带互联网连接和开关,另配 1 根用于连接 RevPi Core 3 的网络电缆

(选配)示波器,用于检查 PWM 输出

如果您是第一次接触 Revolution Pi,请阅读 Andrew 和 Peter 发表的文章,以充分了解这款硬件和软件平台。您将学到如何将 Core 3 模块连接至 IO 模块,如何连接电源,以及如何使用中央处理图像访问所有的 IO。在制造商网页上,您还可以找到许多文字教程和视频教程。我搭建的装置如下:

image006.jpg?h=322&w=1042

image007.jpg?h=322&w=1042

image008.jpg?w=275

image0111.jpg?w=275

请注意两个细节:

我见过许多人将 DIN 导轨安装在平放在台面上的底板上。如果 RevPi Core 是以这种布置方式工作,对 Raspberry 计算模块的冷却起到关键作用的层流气流将无法形成。请勿这样做!使用时务必使 RevPi 直立,这样才能有足够的空气从底部细缝进入,再从顶部细缝流出!

我还经常看到有人在使用 RevPi 模块时不连接 FE(功能接地)接线端子。这样会导致完整的浪涌电流,并使 ESD 保护失效。请勿这样做!即使在办公室桌面上,也至少应当将 FE 接线端子连接到 0V 接线端子。请勿混淆 PE(保护接地)和 FE 的概念!虽然 RevPi 模块不需要 PE(没有接触高压的风险),但是 FE 接线端子是将任何因浪涌、电快速瞬变脉冲群或 ESD 引起的破坏性能量导出模块的唯一途径。如果不连接,将使系统失去保护,从而暴露在这类破坏性环境能量下。

请参考印在 AIO 模块侧面的原理图,以检查是否正确连接了四线或三线 RTD 传感器。我使用 RTD1 输入端子连接该装置,并用 Out1 和 Out2 连接灯泡。请注意,两个 10W 灯泡需要消耗 24V 电源近 1A 的电流。连接 IO 电源时使用粗电线,并且仅使用高侧模式下的输出(这样每个输出最高可达 500mA,而推挽式只能达到 100mA)。

几天后,我们将发布第 2 部分博客文章,我将在其中逐步介绍如何安装将要使用的库和工具。请勿错过。订阅后可在文章发布时收到消息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值