0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

树莓派大变身:如何用 OpenPLC 打造你的迷你 PLC

上海晶珩电子科技有限公司 ? 2025-03-25 09:41 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通过使用Raspberry Pi和OpenPLC软件平台,可以创建一个简单的PLC,该PLC可以使用梯形图进行编程,并具有远程访问和I/O监控仪表板功能。

OpenPLC提供了一个控制工程开发平台,能够将各种微控制器转变为可编程逻辑控制器。OpenPLC兼容包括Arduino Uno、ESP32、RP2040等平台,甚至像Raspberry Pi这样的单板计算机也可以配备编辑器、运行时引擎和Web服务器,用作PLC。

本文将介绍如何使用OpenPLC在Raspberry Pi上创建PLC。

3e65e688-091a-11f0-9434-92fbcf53809c.jpg

▲OpenPLC 可在 Raspberry Pi 上实现


在Raspberry Pi上运行PLC(运行时)

使用Raspberry Pi开发PLC的概念在于实现OpenPLC运行时环境,该环境具有一个集成的Web服务器,允许配置运行时参数。这些运行时参数与数据类型和内存寄存器相对应。以下列出了一些参数:

  • X:位(1位)

  • B:字节(8位)

  • W:字(16位)

  • D:双字(32位)

L:长字(64位)

这些参数是在结构化文本(.st)文件编译并下载后创建的。通过Raspberry Pi的IP地址后加“;”和端口号8080来访问运行时Web服务器。将鼠标指向PI桌面环境工具栏右侧附近的Wi-Fi图标,可以找到IP地址。IP地址将出现在一个弹出窗口中。


在 Raspberry Pi 上使用 OpenPLC 的先决条件

WiringPi GPIO库

OpenPLC运行时需要访问通用输入/输出(GPIO)引脚。最新的Pi平台(版本3及更新版本)已经包含了这个库,但为了验证,请打开终端并输入以下命令:

gpio -v

如果找不到库(命令),请确保启用了Wi-Fi,并使用以下命令集安装WiringPi库:

git clone https://github.com/WiringPi/WiringPi.git

这将复制并创建一个名为WiringPi的文件夹。将当前目录更改为WiringPi:

cd WiringPi

然后输入以下命令。这将从源文件构建WiringPi,类似于安装过程:

./build

这应该完成了该过程,但此时,请运行“gpio -v”命令,并查看为您的Pi平台新安装的详细信息。它应该看起来与下面的图像类似:

3e9341e6-091a-11f0-9434-92fbcf53809c.jpg

▲成功构建 WiringPi 库

OpenPLC运行时

如果尚未安装OpenPLC运行时,则过程与之前类似。首先,输入命令“cd”切换回主目录:

与之前一样,使用克隆命令复制OpenPLC文件夹:

git clone https://github.com/thiagoralves/OpenPLC_v3.git

现在,切换到OpenPLC目录:

cd OpenPLC_v3

最后,安装实际的OpenPLC运行时(这需要一段时间,请耐心等待):

./install.sh rpi

安装完成后,转到您的家用电脑浏览器,输入Raspberry Pi的IP地址(在我的情况下是192.168.1.27),后跟端口8080,运行时登录屏幕应该会出现:

3eacc986-091a-11f0-9434-92fbcf53809c.jpg

有关更详细的文档,请参阅OpenPLC官方网站。

现在,在Pi平台上完成了先决条件步骤,我们可以继续接线和梯形图逻辑编程!


从 Raspberry Pi 到PLC的引脚映射

输入和输出设备,如按钮开关、执行器、可视指示器和声音警报器,将被分配到 Raspberry Pi 的相应 I/O 引脚上。本项目文章将通过一个非常简单的梯形图 PLC 程序来操作一个 LED 按钮开关。

Raspberry Pi使用两种不同的编号格式来引用引脚。一种格式使用适当的GPIO引脚编号和功能来标记引脚。

在另一种格式中,40针接头垂直编号,左侧为奇数,右侧为偶数。OpenPLC使用左侧的GPIO引脚作为输入,因此引脚3、5、7、11和13(映射到GPIO引脚2、3、4、17和27)将构成输入标签IX0.0、IX0.1、IX0.2、IX0.3、IX0.4等。

对于输出,以类似的方式,引脚8、10、16、18和22(GPIO 14、15、23、24和25)等同于输出标签QX0.0、QX0.1、QX0.2、QX0.3、QX0.4等。

3ebad0b2-091a-11f0-9434-92fbcf53809c.jpg

▲Raspberry Pi 4 引脚布局

将I/O设备连接到Raspberry Pi

按钮电路将使用一个带有10kΩ下拉电阻的触觉开关。输出指示电路由一个与LED串联的330Ω电阻组成。

在最简单的层面上,可以将单根导线插入40针接头连接器,并连接到安装在外部面包板上的按钮开关和LED电路。

将按钮开关和LED电路连接到Raspberry Pi的另一种方法使用扩展板(如下所示),该扩展板在T形PCB上引出Raspberry Pi的I/O引脚。扩展板插入适当长度/尺寸的免焊面包板中,使得按钮开关、下拉电阻和LED电路能够轻松连接到Raspberry Pi,而无需使用大量跳线。

3ec8a430-091a-11f0-9434-92fbcf53809c.jpg

▲扩展板 PCB 电气接线

作为额外的电气接线参考,提供了电子电路原理图。

3edb3532-091a-11f0-9434-92fbcf53809c.jpg

▲Raspberry Pi PLC 原理图

扩展板通过扁平带状电缆物理连接到Raspberry Pi,允许电压(+3.3V)、接地和I/O控制信号电连接到Raspberry Pi的40针接头连接器。扁平电缆允许免焊面包板的布置方便地放置在车间桌子或实验室工作台上。

下面的面包板接线组件展示了连接到扩展板的电气部件。如果没有扩展板,您可以使用跳线直接连接到Pi接头上的+3.3V、GND、引脚11(GPIO17)和引脚16(GPIO23)。

3ef12dce-091a-11f0-9434-92fbcf53809c.jpg

▲带扩展板的基于 Raspberry Pi 的 PLC 电路

Raspberry Pi的PLC软件

Arduino OpenPLC介绍项目中提供的“Hello World”梯形图(LD)可以很容易地修改为适用于Raspberry Pi控制器。LD的主要修改涉及将SBC物理I/O寻址方案应用于Raspberry Pi。I/O地址反映引脚格式,而不是GPIO指定。采用这种方法,分配的标签将确保目标按钮开关的输入和输出控制信号以及LED电路将正确启动。

3f05f6dc-091a-11f0-9434-92fbcf53809c.jpg

▲Raspberry Pi 物理寻址

与Arduino梯形图逻辑项目一样,“Hello World”LD和标签列表表是在OpenPLC编辑器中构建的。

3f0f489a-091a-11f0-9434-92fbcf53809c.jpg

▲Raspberry Pi “你好世界 ”LD/标记列表表

添加运行时软件和测试

Raspberry PiOpenPLC项目的最后一步是将运行时软件上传到SBC。如“运行时”部分所述,需要访问Web服务器页面。通过Web浏览器指向Raspberry Pi的IP地址,运行时编程环境将可用。

默认登录用户名和密码均为openplc。建议您更改登录凭据以确保LD程序的安全性。

3f226718-091a-11f0-9434-92fbcf53809c.jpg

▲OpenPLC 网络服务器登录界面

要在Raspberry Pi上运行,需要.st文件。通过在OpenPLC编辑器的任务栏上点击橙色向下的箭头图标,.st文件将被存储在为初始项目创建的指定文件夹中。

3f311dc6-091a-11f0-9434-92fbcf53809c.jpg

▲OpenPLC Runtime .st 文件下载按钮

返回web服务器,点击“Hardware”(硬件)按钮,选择Raspberry Pi作为硬件层,并保存更改。

3f41853a-091a-11f0-9434-92fbcf53809c.jpg

▲选择 Raspberry Pi 硬件

要上传.st文件,请在OpenPLC web服务器面板的左侧点击“Programs”(程序)按钮。

将打开一个窗口,您可以在此将.st文件(程序)上传到web服务器。点击“Choose File”(选择文件)按钮,选择Hello World.st文件,然后点击“Upload Program”(上传程序)。

3f555bdc-091a-11f0-9434-92fbcf53809c.jpg

▲选择并上传 .st 文件

将显示将.st文件转换为C++程序的编译过程。上传/转换过程完成后,Hello World程序将显示在表格中。

Hello World程序上传到Raspberry Pi后,在web服务器窗口底部用鼠标点击“Dashboard”(仪表板)按钮。在面板左侧点击“Start PLC”(启动PLC)按钮。程序的执行过程将在窗口中可见。

3f65dcd2-091a-11f0-9434-92fbcf53809c.jpg

▲用于 Raspberry Pi 的 “Hello World ”监控仪表板

可以使用“Monitor”(监视器)观察按钮开关和LED的状态。用鼠标点击监视器按钮,以观察按钮开关和LED的动作。每次按下按钮时,LED将从红色切换到绿色。监视器可以作为一种诊断的人机界面(HMI)工具,用于虚拟观察Raspberry Pi PLC I/O的物理操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5037

    文章

    13999

    浏览量

    475633
  • Raspberry Pi
    +关注

    关注

    2

    文章

    620

    浏览量

    23195
  • 树莓派
    +关注

    关注

    122

    文章

    2031

    浏览量

    107670
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    精选推荐!看大佬用树莓4做个迷你版PS5

    为了搭配这个迷你游戏主机,作者还制作了一个小型显示器,使用了5英寸的树莓显示屏。这只是一个有趣的小项目,但也可以将它连接到任何
    发表于 05-13 10:24

    树莓变身WiFi 热点

    本帖最后由 348081236 于 2016-1-15 11:57 编辑 第一步:准备树莓:本教程用的是树莓B一个树莓
    发表于 01-15 11:51

    树莓Zero小夜灯

    准备、树莓zero2×20公头(如果树莓2就不需要啦)8GB的SD卡继电器模块(用于从树莓
    发表于 01-28 15:03

    树莓怎么打造开心农场

    ` 本帖最后由 goyuqinghua 于 2016-3-1 14:42 编辑 用两个罐头、一个直流潜水泵和树莓,做一个迷你水培弄场,重点番茄马铃薯什么的,健康又美味。所需材料:·1个大锡罐
    发表于 02-22 15:14

    树莓可以做什么?

    折腾不息”的精神,我们还是可以用树莓做很多有意思的东西。不少极客就实现了不少好玩的功能,看了之后是不是也有想尝试的欲望?让我们看看他们都用树莓
    发表于 05-02 17:20

    树莓简介

    已经是一位Linux系统的爱好者,但却不知道如何用Python进行编程,而且正准备好好学一学;也许根本就不了解计算机,仅仅停留在点击“开始”菜单,转发电子邮件,上网等操作,但是听说过“树莓
    发表于 08-06 08:05

    OpenPLC开源工业控制器究竟有何用

    OpenPLC开源工业控制器有哪些优点?OpenPLC开源工业控制器有哪些功能?OpenPLC开源工业控制器究竟有何用处?
    发表于 09-02 07:42

    树莓Pico迷你开发板及所使用的RP2040 MCU芯片有哪些特性

    Raspberry Pi Pico是什么?树莓Pico迷你开发板及所使用的RP2040 MCU芯片有哪些特性?
    发表于 09-14 06:50

    Maxthon大变身:新版本功能预告

    ????消息1.Maxthon版本号会大变身????现在Maxthon的版本是1.5,很快我们会看到有2.0版本的出现。不过也不是直接跳过中间的版本,只是会出几个Beta版
    发表于 03-07 20:47 ?1114次阅读

    树莓看电影

    本文档介绍的是在debian下如何用树莓看电影
    发表于 11-30 11:02 ?21次下载

    树莓用什么语言编程_树莓python编程详解

    树莓是一个非常廉价的、只有手掌大小的完全可编程的计算机。虽然树莓的体积小,但是它的潜力无限。可以像使用常规台式计算机一样在
    发表于 01-15 17:00 ?3.9w次阅读

    虹科工业树莓PLC怎么选?

    工业树莓PLC的区别在哪?应该选择工业树莓还是PLC?本篇文章为
    的头像 发表于 02-22 11:03 ?1320次阅读

    宏集方案 | 如何用工业树莓和MQTT平台打通OT和IT?

    何用工业树莓和MQTT平台打通OT和IT?
    的头像 发表于 01-05 11:01 ?657次阅读
    宏集方案 | 如<b class='flag-5'>何用</b>工业<b class='flag-5'>树莓</b><b class='flag-5'>派</b>和MQTT平台打通OT和IT?

    购买前须知:树莓迷你PC,哪个更适合

    随着新型号的推出,迷你电脑和树莓等设备之间的差异越来越难以察觉。如果正在纠结于选择哪种设备更适合,那么
    的头像 发表于 03-25 09:37 ?933次阅读
    购买前须知:<b class='flag-5'>树莓</b><b class='flag-5'>派</b>和<b class='flag-5'>迷你</b>PC,哪个更适合<b class='flag-5'>你</b>?

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造您自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1
    的头像 发表于 05-13 16:39 ?495次阅读
    用 <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Zero <b class='flag-5'>打造</b>的智能漫游车!