Shifu Demo使用指南 ——体验与PLC的数字孪生进行交互
Shifu (GitHub 主页:https://github.com/Edgenesis/...) 是一个基于Kubernetes的物联网开发及管理的开源平台。开发者通过使用Shifu,可以更简单地连接、监视和控制任何物联网设备。
PLC作为可编程逻辑控制器,是专门为在工业环境下应用而设计的数字运算操作电子系统。因为可以在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,进而实现控制各种类型的机械设备或生产过程,所以PLC是与现代工业自动化生产发展密不可分的设备。
Shifu已经实现对PLC设备的虚拟化,在Shifu Demo中可以体验通过一行命令实现对PLC设备的控制,这是在数字孪生环境中对物理设备进行控制最为重要的一步。
本文根据Shifu Demo使用指南,详细介绍Shifu极速试玩中体验与PLC的数字孪生进行交互的内容。
## 部署Docker
### 1.下载并安装Docker
安装包:https://demo.shifu.run/detail
2.检查Docker是否可用
a. 打开Docker,并保持其运行
b. 在Linux/Windows/Mac 的命令行中执行以下命令
sudo docker ps
如果 Docker 运行顺利,将会得到以下输出:
文章图片
安装Shifu
1.安装Shifu 前往demo.shifu.run进行下载安装。(直接进入页面中的第二步,完成该步骤的流程后即可回到本页面)
安装完成后 Shifu 会在docker运行时伴随启动。
2.查看Shifu是否启动 使用以下命令来查看运行效果:
sudo kubectl get pods -A
如果所有 “STATUS” 都是 Running 即表示成功:
文章图片
## 与PLC的数字孪生交互
### 1.启动Nginx
我们启动一个nginx实例来模拟应用程序与shifu之间的交互:
sudo kubectl run --image=nginx:1.21 nginx
sudo kubectl get pods -A | grep nginx
可以看到nginx已经在运行:
文章图片
2.启动PLC虚拟设备 首先,我们启动PLC的数字孪生:
sudo kubectl apply -f run_dir/shifu/demo_device/edgedevice-plc
通过如下指令,可以看到PLC设备的数字孪生已经启动:
sudo kubectl get pods -A | grep plc
文章图片
3.与PLC虚拟设备交互 接着,我们需要进入nginx:(如果您未启动Nginx,请您首先 启动Nginx服务)
sudo kubectl exec -it nginx -- bash
最后,我们可以与PLC的数字孪生通过 http://deviceshifu-plc.device... 进行交互,将PLC的Q0内存区域的第0位设置成1:
curl "deviceshifu-plc.deviceshifu.svc.cluster.local/sendsinglebit?rootaddress=Q&address=0&start=0&digit=0&value=https://www.it610.com/article/1";
echo
文章图片
例如一个PLC的Q0内存的第四位值代表控制程序,设定“digit=3”与“value=https://www.it610.com/article/1”就可以开启程序:
curl "deviceshifu-plc.deviceshifu.svc.cluster.local/sendsinglebit?rootaddress=Q&address=0&start=0&digit=3&value=https://www.it610.com/article/1";
echo
文章图片
Q&A 【30秒接入一台PLC设备,用Shifu 快速实现工控软件编程】Q:在这个试玩中如何模拟PLC?
A:当模拟PLC接收到 sendsinglebit 命令可以修改内存区域中一个bit,接收到 getcontent 命令可以得到内存区域中一个byte的值。
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
推荐阅读
- golang从入门到入土(五)作用域与包
- kubernetes|kubernetes
- golang从入门到入土(三)分支、循环结构
- Go两种swap解析
- Go数组与切片
- go 读取yaml 文件
- go 源码阅读 container/list
- go struct json 格式 tag 标签
- let’s go——2022年读书活动招募书(第1期)