基于树莓派制作的硬件PLC

  • A+
所属分类:逆向工程

正文共: 1804字 15

预计阅读时间: 5分钟


工业安全研究员经常会碰到,在PLC上做一些逻辑测试和安全研究,但是非工业安全人员采购工业PLC的几率很低,基于此IRTeam团队在此介绍如何把树莓派制作成一款功能齐全的PLC。

基于树莓派制作的硬件PLC


采用SD卡刷入树莓派的最新OS,这些可以参考

https://www.raspberrypi.org/software/

来安装,在此就不赘述了。

开机后进入shell,并输入

sudo apt-get install git

接下来我们安装OpenPLC,请在终端上输入以下行:

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

cd OpenPLC_v3

./install.sh rpi

安装过程将花费一些时间,安装了OpenPLC,只需重新启动设备,它将在启动后自动启动。

OpenPLC运行时具有内置的Web服务器,可让配置OpenPLC并上传新程序以使其运行。可以通过在计算机上打开Web浏览器并在端口8080上键入OpenPLC设备的IP地址来访问此Web服务器。例如在浏览器中键入 http:// 192.168.13.38:8080 会出现如下页面。

基于树莓派制作的硬件PLC

默认的用户名:openplc和密码:openplc,登陆后就可以选择你的硬件控制器为树莓派。

基于树莓派制作的硬件PLC

在下面,将找到树莓派GPIO接头连接器的OpenPLC  I / O映射。所有树莓派的GPIO映射都是相同的。

基于树莓派制作的硬件PLC

然后在一台window os的机器上,在

https://www.openplcproject.com/plcopen-editor 

下载OpenPLC的编程环境。


学习PLC编程之前,需要了解PLC编程语言,梯形图Ladder是PLC编程语言的首选,PLC是实现逻辑和时序主控制器,所以它的编程环境主要是类似于物理电路搭建过程。

对于梯形逻辑编程,需要引入一些关键术语:

触点–它们就像开关,但由线圈控制。如果线圈接通,则开关闭合。如果线圈断开,则开关断开。有两种类型:

常开–如上所述,已在触点上形成线圈,电路运行

常闭–相反。线圈打开,触点断开,电路不运行

线圈-这些线圈最初是围绕磁铁形成电磁场的线圈。然后这些将控制触点。如果线圈“接通”,则触点为“接通”。

计时器-这些很简单。在编程中,使用“TON”或者“TOF”打开计时器。这些计数器在经过一定时间之前将输出保持为0,计时到时后将输出保持为1。

基于树莓派制作的硬件PLC

接下来我们打开OpenPLC编辑器,创建一个新的梯形图程序,逻辑如下:

基于树莓派制作的硬件PLC

逻辑内容为,只要不按下按钮,电路就完成,线圈“灯”将亮起。如果按下了按钮。计时器完成其工作后,灯泡将保持点亮2000ms。在2000ms之后,如果仍然按下该按钮,指示灯将熄灭。

可以点击“running man”按钮,表示程序执行,然后点击左下方的眼镜的图标,用于调试这个逻辑,很类似我们写程序的debug模式。

调试模式,可以更改开关的状态。当线路,触点或线圈为绿色时,表示已通电。因此,当启动按钮时,未按下该按钮将导致绿色显示,并且计数器为0。

基于树莓派制作的硬件PLC

当按下按钮时,计时器的输入为黑色,表示没有电,计时器开始计数。

基于树莓派制作的硬件PLC

然后,在2000毫秒结束之后。计时器的输出为0,导致灯管关闭。

基于树莓派制作的硬件PLC

我们在OpenPLC编辑器的顶部指定。

在此示例中,按钮为%IX0.1,LED为%QX0.0

基于树莓派制作的硬件PLC

现在我们需要设计一下树莓派的外部接线线路,我们使用的是Pi的GPIO,一些跳线连接到带有按钮和LED的面包板。

电路如下:

基于树莓派制作的硬件PLC

我们先前在程序中指定的IX0.0和QX0.0为电路提供了电源,因此我们需要添加这些内容,以确保在Pi上接地后再回到接地GPIO。

将电阻器,按钮和LED插入面包板。然后将接地线连接到Pi的引脚6,将LED插入QX0.0(引脚8),并将按钮插入IX0.1(引脚0.1)。

面包板应类似于以下内容:

基于树莓派制作的硬件PLC


接下来,我们需要将刚才程序上传到Pi的Runtime中,我们可以使用向下箭头保存梯形图程序,将程序文件保存为“ *.st“

基于树莓派制作的硬件PLC

然后我们连接Pi和计算机,然后通过Pi的IP地址:8080端口访问PLC控制器。同时把你刚才保存的*.st程序上传到PLC内。

基于树莓派制作的硬件PLC

我们需要选择“start plc”然后启动PLC时它将自动运行

如果在左侧选择“Monitoring”,则在“运行时”web页面中可以更清楚地看到开关和线圈的状态

基于树莓派制作的硬件PLC

至此,我们通过树莓派+OpenPLC完整实现了一套PLC硬件和软件环境,以及对此的初步编程。


本文始发于微信公众号(IRT工业安全红队):基于树莓派制作的硬件PLC

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: