PLC高階技巧:使用Shifu框架快速搭建軟件應(yīng)用

Shifu Demo使用指南 ——體驗(yàn)與PLC的數(shù)字孿生進(jìn)行交互

Shifu (GitHub 主頁:https://github.com/Edgenesis/shifu) 是一個(gè)基于Kubernetes的物聯(lián)網(wǎng)開發(fā)及管理的開源平臺。開發(fā)者通過使用Shifu,可以更簡單地連接、監(jiān)視和控制任何物聯(lián)網(wǎng)設(shè)備。

PLC作為可編程邏輯控制器,是專門為在工業(yè)環(huán)境下應(yīng)用而設(shè)計(jì)的數(shù)字運(yùn)算操作電子系統(tǒng)。因?yàn)榭梢栽谄鋬?nèi)部存儲(chǔ)執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)、計(jì)數(shù)和算術(shù)運(yùn)算等操作的指令,進(jìn)而實(shí)現(xiàn)控制各種類型的機(jī)械設(shè)備或生產(chǎn)過程,所以PLC是與現(xiàn)代工業(yè)自動(dòng)化生產(chǎn)發(fā)展密不可分的設(shè)備。

Shifu已經(jīng)實(shí)現(xiàn)對PLC設(shè)備的虛擬化,在Shifu Demo中可以體驗(yàn)通過一行命令實(shí)現(xiàn)對PLC設(shè)備的控制,這是在數(shù)字孿生環(huán)境中對物理設(shè)備進(jìn)行控制最為重要的一步。

本文根據(jù)Shifu Demo使用指南,詳細(xì)介紹Shifu極速試玩中體驗(yàn)與PLC的數(shù)字孿生進(jìn)行交互的內(nèi)容。

部署Docker

1.下載并安裝Docker

安裝包:https://demo.shifu.run/detail

2.檢查Docker是否可用

a. 打開Docker,并保持其運(yùn)行
b. 在Linux/Windows/Mac 的命令行中執(zhí)行以下命令

    sudo docker ps

如果 Docker 運(yùn)行順利,將會(huì)得到以下輸出:

file

安裝Shifu

1.安裝Shifu

前往demo.shifu.run進(jìn)行下載安裝。(直接進(jìn)入頁面中的第二步,完成該步驟的流程后即可回到本頁面)

安裝完成后 Shifu 會(huì)在docker運(yùn)行時(shí)伴隨啟動(dòng)。

2.查看Shifu是否啟動(dòng)

使用以下命令來查看運(yùn)行效果:

sudo kubectl get pods -A

如果所有 “STATUS” 都是 Running 即表示成功:

file

與PLC的數(shù)字孿生交互

1.啟動(dòng)Nginx

我們啟動(dòng)一個(gè)nginx實(shí)例來模擬應(yīng)用程序與shifu之間的交互:

sudo kubectl run --image=nginx:1.21 nginx
sudo kubectl get pods -A | grep nginx

可以看到nginx已經(jīng)在運(yùn)行:

file

2.啟動(dòng)PLC虛擬設(shè)備

首先,我們啟動(dòng)PLC的數(shù)字孿生:

sudo kubectl apply -f run_dir/shifu/demo_device/edgedevice-plc

通過如下指令,可以看到PLC設(shè)備的數(shù)字孿生已經(jīng)啟動(dòng):

sudo kubectl get pods -A | grep plc
file

3.與PLC虛擬設(shè)備交互

接著,我們需要進(jìn)入nginx:(如果您未啟動(dòng)Nginx,請您首先 啟動(dòng)Nginx服務(wù))

sudo kubectl exec -it nginx -- bash

最后,我們可以與PLC的數(shù)字孿生通過 http://deviceshifu-plc.deviceshifu.svc.cluster.local 進(jìn)行交互,將PLC的Q0內(nèi)存區(qū)域的第0位設(shè)置成1:

curl "deviceshifu-plc.deviceshifu.svc.cluster.local/sendsinglebit?rootaddress=Q&address=0&start=0&digit=0&value=1";echo
file

例如一個(gè)PLC的Q0內(nèi)存的第四位值代表控制程序,設(shè)定“digit=3”與“value=1”就可以開啟程序:

curl "deviceshifu-plc.deviceshifu.svc.cluster.local/sendsinglebit?rootaddress=Q&address=0&start=0&digit=3&value=1";echo
file

Q&A

Q:在這個(gè)試玩中如何模擬PLC?
A:當(dāng)模擬PLC接收到 sendsinglebit 命令可以修改內(nèi)存區(qū)域中一個(gè)bit,接收到 getcontent 命令可以得到內(nèi)存區(qū)域中一個(gè)byte的值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容