DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

Versatile Revolution Pi模块化工业平台入门

RevPi Core 3,RevPi DIO和简单的继电器控制基础知识学习。

在这篇文章中,我们首先看一下非常灵活的Revolution Pi,它提供了多种I / O和工业连接的硬件选项,并且在编写平台时也不缺少选项。

RevPi 101

那什么是Revolution Pi--它是迷你工业PC,数据采集平台,PLC还是物联网网关?实际上所有这些都是基于Raspberry Pi计算模块,但它不仅仅是DIN导轨外壳中的Raspberry Pi。事实上,它是一个紧密集成的平台,符合可编程控制器标准EN61131-2(设备要求和测试),并且还带有可选的运行许可证,IEC 61131-3(编程语言)标准。

这意味着RevPi在工业环境中完全处于中,并受益于隔离I / O,能够轻松处理仪表和控制应用中使用的信号。这可能是类似的,例如0-10V或4-20mA,或同样是现场总线,如Modbus。通过可选的运行时,可以使用熟悉的PLC环境对其进行编程。

但是,应该注意的是,无法访问原始的Raspberry Pi GPIO,并且对于大多数应用而言,5-10ms的RevPi I / O周期时间足够低,但这确实意味着它可能不适合某些应用用于非常严格的时序要求,例如运动控制。

硬件设置

对于这个简单的继电器控制示例,使用的主要部件是:

当然还有DIN导轨,终端和电缆等。

RevPi Core 3上直接使用的唯一接口是2x USB,Micro HDMI和以太网。但是,“PiBridge”连接器可以通过RS-485和以太网进行集成,最多可以放置10x I / O和两侧的网关模块。

在我们的例子中,我们有一个-位于Core 3的右侧的RevPi DIO--每个数字输入和输出提供14倍。这可以驱动负载高达500mA(高端),虽然不适合继电器,输出可以配置为频率为40-400Hz的PWM,例如,这可能很有效的控制风扇速度

对于最小配置,DIO可能看起来有很多布线,但这是因为它需要自己的电源以及用于现场I / O的独立电源。这是工业环境中的标准做法,允许您完全地隔离可能非常嘈杂的设备电路,例如:从更敏感的传感器和控制等驱动电机

模块配置

一旦我们将Web浏览器指向RevPi核心IP地址,一旦启动,我们就会看到一个登录页面,然后我们输入在模块一侧打印的用户名admin和密码。从这里我们可以启动PiCtory,用于配置硬件。

进入PiCtory后,我们可以看到我们的RevPi Core以及设备目录的左侧,我们可以从中选择RevPi DIO,将其拖放到Core的右侧 - 就像物理安装一样。

然后我们可以选择I / O模块,在网页的右下方看到输入和输出。现在我们将24VDC继电器连接到输出1,我们可以将其保留为默认标签O_1,而是选择将其重命名为“Relay”。

第一次测试

与I / O交互的最简单方法是通过SSH登录RevPi Core并使用PiTest实用程序。在上面的配置步骤之前和之后使用设备列表选项运行时,我们可以看到这一点。

我们也可以使用选项来读取或写入变量。在它上方用于首先打开继电器然后将其关闭。

过程图像

现在似乎是讨论过程映像的好时机,它反映了各种配置输入和输出的状态。读取输入时,将从中读取。写入输出时,将写入过程映像。在称为循环时间的时段,这可以根据配置的输入和输出的确切数量而变化。

在PiCtory中,我们可以以各种不同的格式导出配置数据。例如,IEC 61131-3标准或如下所示的偏移列表。

RevPiStatus		 0	 //BYTE  
RevPiIOCycle		 1	 //BYTE  
RevPiLED		 6	 //BYTE  
I_1		 11.0	 //BOOL  
I_2		 11.1	 //BOOL  
I_3		 11.2	 //BOOL  
I_4		 11.3	 //BOOL  
I_5		 11.4	 //BOOL  
I_6		 11.5	 //BOOL  
I_7		 11.6	 //BOOL  
I_8		 11.7	 //BOOL  
I_9		 11.8	 //BOOL  
I_10		 11.9	 //BOOL  
I_11		 11.10	 //BOOL  
I_12		 11.11	 //BOOL  
I_13		 11.12	 //BOOL  
I_14		 11.13	 //BOOL  
I_15		 11.14	 //BOOL  
I_16		 11.15	 //BOOL  
Relay		 81.0	 //BOOL  
O_2		 81.1	 //BOOL  
O_3		 81.2	 //BOOL  
O_4		 81.3	 //BOOL  
O_5		 81.4	 //BOOL  
O_6		 81.5	 //BOOL  
O_7		 81.6	 //BOOL  
O_8		 81.7	 //BOOL  
O_9		 81.8	 //BOOL  
O_10		 81.9	 //BOOL  
O_11		 81.10	 //BOOL  
O_12		 81.11	 //BOOL  
O_13		 81.12	 //BOOL  
O_14		 81.13	 //BOOL  
O_15		 81.14	 //BOOL  
O_16		 81.15	 //BOOL 

这为我们提供了变量及其数据类型。 在这里我们可以看到DIO O_1输出被重命名为Relay。 我们还可以看到它的偏移量,并且根据我们的特定应用,使用其中一个可能更有用。 偏移量将始终映射到相同的物理引脚,而自定义文本标签可以设置在任何物理引脚上。

遵循伟大的Linux / UNIX传统,过程映像只是一个文件/ dev / piControl0。 因此,我们可以使用大量编程语言和框架中的任何一种,打开此文件,寻找适当的偏移量,然后进行读写。

我们还可以使用过程映像来访问模块状态信号,例如电源电压或温度故障。 使事情看起来不太正确时,可以更轻松地进行远程故障诊断并发出警报。

RevPiModIO

#!/usr/bin/python3

import revpimodio2
import time

revpi = revpimodio2.RevPiModIO(autorefresh=True)

revpi.io.Relay.value = True

time.sleep(2)

revpi.io.Relay.value = False

time.sleep(0.2)

能够以这种开放的方式直接操纵过程图像是一个强大的功能,但诚然不是最友好的。 值得庆幸的是,一个名为RevPiModIO的库现在是第二个主要版本,在使用Python编程语言时大大简化了这一过程。

上面我们可以看到一个非常简单的脚本,只需打开继电器,暂停2秒然后关闭它。 我们再次使用PiCtory中配置的I / O标签,其设计在所有连接的模块中必须是唯一的。 最后的小延迟 ( 可能是更小的 ) 的原因是允许过程图像周期时间,如果没有这个,在图像更新之前,程序将退出并清理,继电器永远不会关闭。

该库可以安装:

$ sudo apt-get install python3-revpimodio2

其他编程选项

其他可用选项包括可选的运行时许可证logi.CAD3,用于传统的PLC编程环境。与PROCON_WEB IoTUBIDOTSMQTT一起 - 这当然很好地为Node-RED的使用铺平了道路。

事实上,如果您能够使用Python库,那么在为您选择的语言编写新库时会投入少量时间,应该可以与几乎任何环境集成。

最后的想法

如果你从制造商/ Raspberry Pi背景中获得更多,可能需要花一点时间来了解过程映像的想法,而不是直接使用GPIO,但它只是一个小小的跳跃,大多数应用程序应该易于移植。然后您会获得的是具有CE标记,完全受保护的I / O以及轻松集成传感器和执行器的能力的交钥匙工业产品。

当然,有可能在需要的地方构建功能相同的东西,少用并使用一系列DIY高端驱动器和穿孔板等等。但是,虽然这可能对原型很有趣,但你可能不会希望您的家庭取暖取决于它,当泵电机旋转时,当您遇到系统崩溃或错误行为时也不必打破范围!

除此之外,Revolution Pi还提供高度集成的用户体验,由直观的Web界面提供配置和深思熟虑的方法。加上基于官方Raspberry Pi Foundation源的错误报告,监视器和自定义Linux内核,并添加了实时性能修补程序。对于控制系统中的确定性行为,有很多话要说......

这篇文章仅涉及Revolution Pi平台的皮毛,在之后的帖子中,我们希望看看使用logi.CAD3编程以及实际的应用程序。

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.

8 Jan 2019, 1:46