你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
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周期时间足够低,但这确实意味着它可能不适合某些应用用于非常严格的时序要求,例如运动控制。
硬件设置
对于这个简单的继电器控制示例,使用的主要部件是:
-
RevPi Core 3(181-1142)
-
RevPi DIO(181-1143)
-
欧姆龙DPDT非闭锁继电器插入式,24V直流线圈(488-1960)
-
开关模式DIN导轨面板安装电源,100W,24V(042-8445)
当然还有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 IoT,UBIDOTS和MQTT一起 - 这当然很好地为Node-RED的使用铺平了道路。
事实上,如果您能够使用Python库,那么在为您选择的语言编写新库时会投入少量时间,应该可以与几乎任何环境集成。
最后的想法
如果你从制造商/ Raspberry Pi背景中获得更多,可能需要花一点时间来了解过程映像的想法,而不是直接使用GPIO,但它只是一个小小的跳跃,大多数应用程序应该易于移植。然后您会获得的是具有CE标记,完全受保护的I / O以及轻松集成传感器和执行器的能力的交钥匙工业产品。
当然,有可能在需要的地方构建功能相同的东西,少用并使用一系列DIY高端驱动器和穿孔板等等。但是,虽然这可能对原型很有趣,但你可能不会希望您的家庭取暖取决于它,当泵电机旋转时,当您遇到系统崩溃或错误行为时也不必打破范围!
除此之外,Revolution Pi还提供高度集成的用户体验,由直观的Web界面提供配置和深思熟虑的方法。加上基于官方Raspberry Pi Foundation源的错误报告,监视器和自定义Linux内核,并添加了实时性能修补程序。对于控制系统中的确定性行为,有很多话要说......
这篇文章仅涉及Revolution Pi平台的皮毛,在之后的帖子中,我们希望看看使用logi.CAD3编程以及实际的应用程序。