freeBuf
主站

分類

漏洞 工具 極客 Web安全 系統安全 網絡安全 無線安全 設備/客戶端安全 數據安全 安全管理 企業安全 工控安全

特色

頭條 人物志 活動 視頻 觀點 招聘 報告 資訊 區塊鏈安全 標準與合規 容器安全 公開課

官方公眾號企業安全新浪微博

FreeBuf.COM網絡安全行業門戶,每日發布專業的安全資訊、技術剖析。

FreeBuf+小程序

FreeBuf+小程序

一款可自定義多用途PLC設備的可用性分析
2019-10-14 09:00:04

一、概述

OpenPLC是一個基于易于使用軟件的開源可編程邏輯控制器。OpenPLC項目是根據IEC 61131-3標準創建的,該標準定義了PLC的基本軟件架構和編程語言。

二、系統構成

OpenPLC項目由三部分組成:運行時(程序運行環境),編輯器(下位機程序編寫工具)和HMI Builder(上位機程序編寫工具)。

1)運行時應安裝在您的設備上,并負責執行您的PLC程序,且只能運行在Debian和ubuntu操作系統下。

2) 編輯器是在您的計算機上運行的軟件,用于創建和編寫PLC程序。

3) HMI Builder(ScadaBR組態軟件工具),您可以創建漂亮的基于Web的動畫,以反映您的過程狀態。ScadaBR通過Modbus / TCP與OpenPLC Runtime(運行時)通信。

Openplc 與 I/O對應關系(Modbus地址映射),如下所示:

從圖中可以看出,openplc 支持輸入/輸出數字量和輸入/輸出模擬量 I/O接口傳輸數據

Openplc 支持以下嵌入式平臺I/O驅動,如下所示:

2.1 程序運行環境

必須在您的設備上安裝OpenPLC運行環境才能執行PLC程序。OpenPLC運行環境支持多個嵌入式系統平臺,也可以作為軟PLC安裝在Windows和Linux機器上。您甚至可以使用從設備來擴展I / O點或將它們用作主軟PLC I / O。

(1)支持部署openplc到嵌入式平臺包括如下:

a)Openplc 運行于Raspberry PI(樹莓派)

1.下載bootloader和Raspbian操作系統到樹莓派平臺

2.在樹莓派平臺在線安裝openplc開源項目,通過如下命令:

sudo apt-get install git

gitclonehttps://github.com/thiagoralves/OpenPLC_v3.git

cd OpenPLC_v3&& ./install.sh rpi

3.安裝成功后,通過web管理終端進行plc運行環境管理,輸入如下命令:

http://192.168.10.122:8080

4.可以按照如下方式,進行plc梯形圖程序下載到樹莓派plc中

5. 樹莓派平臺I/O 與 openplc modbus 地址映射關系,如下所示:

b) Openplc 運行于Unipi Industrial Platform

安裝步驟與部署到樹莓派過程一致,唯一區別是支持的I/O控制點數不一樣

支持openplc 部署到X86(linux或window)平臺

1. 在線安裝部署openplc,輸入如下命令:

sudo apt-get install git

gitclonehttps://github.com/thiagoralves/OpenPLC_v3.git

cd OpenPLC_v3&& ./install.sh linux

2. 通過docker方式快速安裝部署openplc,輸入如下命令:

docker run --name=open_plc -d --restart always fdamador/openplc -p 8080:8080 -p 502:502

3. 部署成功,通過輸入http://ip:8080進入Openplc 運行環境web管理界面,在該界面可以進行如下操作:

啟動/停止 PLC

上傳/下載PLC梯形圖程序

2.2 下位機程序編輯器

OpenPLC Editor是一個允許您為OpenPLC運行時編寫PLC程序的軟件。程序根據IEC 61131-3標準編寫。編輯器使用非常簡單,并支持標準中定義的所有五種語言:梯形圖(LD),功能塊圖(FBD),指令列表(IL),結構化文本(ST)和順序功能圖(SFC)。

1. 編寫梯形圖程序,編寫完后,進行程序編譯,將編譯生成的*.st文件上傳到PLC運行環境,如下所示:

2.Plc程序支持標準功能塊如線圈、寄存器、計數器、演示器等以及附件功能塊如時鐘、pid調節等,詳解下圖所示:

2.3 上位機編輯器

ScadaBR是一個開源的監控和數據采集(SCADA)系統,允許您為自動化項目創建交互式屏幕,也稱為人機界面(HMI)。ScadaBR可以與OpenPLC通信,進行數據采集與實時監控。

安裝下面步驟進行編輯器安裝:

1.參考官網詳細安裝步驟,如下鏈接所示:

https://www.openplcproject.com/reference-installing-scadabr

2.安裝成功后輸入如下地址和admin/admin 進入編輯器界面,如下所示:

編寫上位機組態程序:

1.利用如下界面進行圖形組態,組態完成后與openplc進行實時通信

三、總結

1. Openplc運行環境

可以運行嵌入式操作平臺如Raspberry PI(樹莓派)、Unipi Industrial Platform 等平臺也可以運行X86平臺,模擬一個真實plc基本控制功能,可以進行數字量和模擬量的控制。并且openplc 已經內置嵌入式平臺I/O硬件的驅動。Openplc 內部已經和嵌入式I/O進行了地址映射,可以對I/O進行操作與控制。Openplc 支持modbus協議,支持讀線圈(1)、讀輸入(2)、讀保存寄存器(3)、讀輸入寄存器(4)、寫線圈(5)、寫寄存器(6)、寫多線圈(15)、寫多寄存器(16)等基本功能碼。目前支持modbus和dnp3協議。

2.Openplc 下位機編程

openplc提供配套plc下位機編程工具,支持梯形圖(LD),功能塊圖(FBD),指令列表(IL),結構化文本(ST)和順序功能圖(SFC)5種編程語言,程序編寫好后,能夠將編譯后的程序上傳到嵌入式平臺(實plc)或X86平臺(軟plc),并在平臺上執行plc程序運算。

3.Openplc 上位機編程

openplc提供配套plc上位機編程工具(ScadaBR),支持組態軟件開發,進行plc設備數據采集與監控。

ScadaBR 采用modbus協議與plc實時通信。

4.基于嵌入式平臺的openplc或者軟openplc

只能應用于簡單教學、研究、工業控制、網絡競賽、CTF、自定義工藝高交互蜜罐等場景,不能應用于生產環境(穩定性、可靠性、實時性未進行充分測試)

5. 支持情況

目前openplc 已經支持許多價格低廉嵌入式平臺的驅動,如下所示:

目前openplc 只支持dnp3和modbus協議,如果想支持其它工控協議,需要自行添加工控協議進行擴展,如下所示:

四、結束

openplc 運行環境、上位機編輯器、下位機編輯器源碼參考地址:https://github.com/thiagoralves

*本文原創作者:yy0308,本文屬于FreeBuf原創獎勵計劃,未經許可禁止轉載

本文作者:, 屬于FreeBuf原創獎勵計劃,未經許可禁止轉載

# OpenPLC # 可用性分析
被以下專輯收錄,發現更多精彩內容
+ 收入我的專輯
評論 按熱度排序

登錄/注冊后在FreeBuf發布內容哦

相關推薦
  • 0 文章數
  • 0 評論數
  • 0 關注者
登錄 / 注冊后在FreeBuf發布內容哦
收入專輯
四月天小说网