通過使用Raspberry Pi和OpenPLC軟件平臺,可以創(chuàng)建一個簡單的PLC,該PLC可以使用梯形圖進行編程,并具有遠程訪問和I/O監(jiān)控儀表板功能。
OpenPLC提供了一個控制工程開發(fā)平臺,能夠將各種微控制器轉變?yōu)榭删幊踢壿?a target="_blank">控制器。OpenPLC兼容包括Arduino Uno、ESP32、RP2040等平臺,甚至像Raspberry Pi這樣的單板計算機也可以配備編輯器、運行時引擎和Web服務器,用作PLC。
本文將介紹如何使用OpenPLC在Raspberry Pi上創(chuàng)建PLC。
▲OpenPLC 可在 Raspberry Pi 上實現(xiàn)
在Raspberry Pi上運行PLC(運行時)
使用Raspberry Pi開發(fā)PLC的概念在于實現(xiàn)OpenPLC運行時環(huán)境,該環(huán)境具有一個集成的Web服務器,允許配置運行時參數(shù)。這些運行時參數(shù)與數(shù)據類型和內存寄存器相對應。以下列出了一些參數(shù):
- X:位(1位)
- B:字節(jié)(8位)
- W:字(16位)
- D:雙字(32位)
L:長字(64位)
這些參數(shù)是在結構化文本(.st)文件編譯并下載后創(chuàng)建的。通過Raspberry Pi的IP地址后加“;”和端口號8080來訪問運行時Web服務器。將鼠標指向PI桌面環(huán)境工具欄右側附近的Wi-Fi圖標,可以找到IP地址。IP地址將出現(xiàn)在一個彈出窗口中。
在 Raspberry Pi 上使用 OpenPLC 的先決條件
WiringPi GPIO庫
OpenPLC運行時需要訪問通用輸入/輸出(GPIO)引腳。最新的Pi平臺(版本3及更新版本)已經包含了這個庫,但為了驗證,請打開終端并輸入以下命令:
gpio -v
如果找不到庫(命令),請確保啟用了Wi-Fi,并使用以下命令集安裝WiringPi庫:
git clone https://github.com/WiringPi/WiringPi.git
這將復制并創(chuàng)建一個名為WiringPi的文件夾。將當前目錄更改為WiringPi:
cd WiringPi
然后輸入以下命令。這將從源文件構建WiringPi,類似于安裝過程:
./build
這應該完成了該過程,但此時,請運行“gpio -v”命令,并查看為您的Pi平臺新安裝的詳細信息。它應該看起來與下面的圖像類似:
▲成功構建 WiringPi 庫
OpenPLC運行時
如果尚未安裝OpenPLC運行時,則過程與之前類似。首先,輸入命令“cd”切換回主目錄:
與之前一樣,使用克隆命令復制OpenPLC文件夾:
git clone https://github.com/thiagoralves/OpenPLC_v3.git
現(xiàn)在,切換到OpenPLC目錄:
cd OpenPLC_v3
最后,安裝實際的OpenPLC運行時(這需要一段時間,請耐心等待):
./install.sh rpi
安裝完成后,轉到您的家用電腦瀏覽器,輸入Raspberry Pi的IP地址(在我的情況下是192.168.1.27),后跟端口8080,運行時登錄屏幕應該會出現(xiàn):
有關更詳細的文檔,請參閱OpenPLC官方網站。
現(xiàn)在,在Pi平臺上完成了先決條件步驟,我們可以繼續(xù)接線和梯形圖邏輯編程!
從 Raspberry Pi 到PLC的引腳映射
輸入和輸出設備,如按鈕開關、執(zhí)行器、可視指示器和聲音警報器,將被分配到 Raspberry Pi 的相應 I/O 引腳上。本項目文章將通過一個非常簡單的梯形圖 PLC 程序來操作一個 LED 按鈕開關。
Raspberry Pi使用兩種不同的編號格式來引用引腳。一種格式使用適當?shù)腉PIO引腳編號和功能來標記引腳。
在另一種格式中,40針接頭垂直編號,左側為奇數(shù),右側為偶數(shù)。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等。
▲Raspberry Pi 4 引腳布局
將I/O設備連接到Raspberry Pi
按鈕電路將使用一個帶有10kΩ下拉電阻的觸覺開關。輸出指示電路由一個與LED串聯(lián)的330Ω電阻組成。
在最簡單的層面上,可以將單根導線插入40針接頭連接器,并連接到安裝在外部面包板上的按鈕開關和LED電路。
將按鈕開關和LED電路連接到Raspberry Pi的另一種方法使用擴展板(如下所示),該擴展板在T形PCB上引出Raspberry Pi的I/O引腳。擴展板插入適當長度/尺寸的免焊面包板中,使得按鈕開關、下拉電阻和LED電路能夠輕松連接到Raspberry Pi,而無需使用大量跳線。
▲擴展板 PCB 電氣接線
作為額外的電氣接線參考,提供了電子電路原理圖。
▲Raspberry Pi PLC 原理圖
擴展板通過扁平帶狀電纜物理連接到Raspberry Pi,允許電壓(+3.3V)、接地和I/O控制信號電連接到Raspberry Pi的40針接頭連接器。扁平電纜允許免焊面包板的布置方便地放置在車間桌子或實驗室工作臺上。
下面的面包板接線組件展示了連接到擴展板的電氣部件。如果沒有擴展板,您可以使用跳線直接連接到Pi接頭上的+3.3V、GND、引腳11(GPIO17)和引腳16(GPIO23)。
▲帶擴展板的基于 Raspberry Pi 的 PLC 電路
Raspberry Pi的PLC軟件
Arduino OpenPLC介紹項目中提供的“Hello World”梯形圖(LD)可以很容易地修改為適用于Raspberry Pi控制器。LD的主要修改涉及將SBC物理I/O尋址方案應用于Raspberry Pi。I/O地址反映引腳格式,而不是GPIO指定。采用這種方法,分配的標簽將確保目標按鈕開關的輸入和輸出控制信號以及LED電路將正確啟動。
▲Raspberry Pi 物理尋址
與Arduino梯形圖邏輯項目一樣,“Hello World”LD和標簽列表表是在OpenPLC編輯器中構建的。
▲Raspberry Pi “你好世界 ”LD/標記列表表
添加運行時軟件和測試
Raspberry PiOpenPLC項目的最后一步是將運行時軟件上傳到SBC。如“運行時”部分所述,需要訪問Web服務器頁面。通過Web瀏覽器指向Raspberry Pi的IP地址,運行時編程環(huán)境將可用。
默認登錄用戶名和密碼均為openplc。建議您更改登錄憑據以確保LD程序的安全性。
▲OpenPLC 網絡服務器登錄界面
要在Raspberry Pi上運行,需要.st文件。通過在OpenPLC編輯器的任務欄上點擊橙色向下的箭頭圖標,.st文件將被存儲在為初始項目創(chuàng)建的指定文件夾中。
▲OpenPLC Runtime .st 文件下載按鈕
返回web服務器,點擊“Hardware”(硬件)按鈕,選擇Raspberry Pi作為硬件層,并保存更改。
▲選擇 Raspberry Pi 硬件
要上傳.st文件,請在OpenPLC web服務器面板的左側點擊“Programs”(程序)按鈕。
將打開一個窗口,您可以在此將.st文件(程序)上傳到web服務器。點擊“Choose File”(選擇文件)按鈕,選擇Hello World.st文件,然后點擊“Upload Program”(上傳程序)。
▲選擇并上傳 .st 文件
將顯示將.st文件轉換為C++程序的編譯過程。上傳/轉換過程完成后,Hello World程序將顯示在表格中。
Hello World程序上傳到Raspberry Pi后,在web服務器窗口底部用鼠標點擊“Dashboard”(儀表板)按鈕。在面板左側點擊“Start PLC”(啟動PLC)按鈕。程序的執(zhí)行過程將在窗口中可見。
▲用于 Raspberry Pi 的 “Hello World ”監(jiān)控儀表板
可以使用“Monitor”(監(jiān)視器)觀察按鈕開關和LED的狀態(tài)。用鼠標點擊監(jiān)視器按鈕,以觀察按鈕開關和LED的動作。每次按下按鈕時,LED將從紅色切換到綠色。監(jiān)視器可以作為一種診斷的人機界面(HMI)工具,用于虛擬觀察Raspberry Pi PLC I/O的物理操作。
-
plc
+關注
關注
5024文章
13516瀏覽量
468561 -
Raspberry Pi
+關注
關注
2文章
613瀏覽量
22539 -
樹莓派
+關注
關注
118文章
1881瀏覽量
106243
發(fā)布評論請先 登錄
相關推薦
評論