当前位置:首页 > 文章中心 > 正文内容

分享一个Arduino上的PLC梯形逻辑:使用OpenPLC控制

dgx6667个月前 (05-26)文章中心45

使用 Arduino Uno 和开源工业控制软件 OpenPLC 构建低成本 PLC,了解如何使用梯形逻辑进行编程,从您的第一个 OpenPLC 项目 Hello World 开始。

OpenPLC 是一个开源工业控制平台,允许将流行的微控制器转换为可编程逻辑控制器 (PLC)。OpenPLC 是基于国际电工委员会 (IEC) 函数式编程语言标准 61131-3 的全功能开源 PLC。

有五种与 IEC 61131-3 标准相关的函数式编程语言;它们是梯形图 (LD)、结构化文本 (ST)、指令列表 (IL)、序列功能图 (SFC) 和功能框图 (FBD)。PLC 最常用的编程语言是 LD。IEC 61131-3 标准考虑了开发有效、低成本的自动化控制系统的软件和硬件要求。


OpenPLC 的版本

OpenPLC平台的技术开发路径由开源编程语言工具链的两个基本版本组成,即1.0版和1.2b版。版本 1.0 提供了用于测试 LD 程序的模拟器。软件版本可以在目标 Microchip ATMEGA328 8 位微控制器上运行 ST 代码。版本 1.0 提供了运行时功能,允许安装 C 代码并显示运行在 ATMEGA328 微控制器上的基于 Microchip 的 PLC 输入/输出设备。图 1 显示了执行 Hello World LD 程序的典型运行时仪表板。



版本 1.2b 提供了一个用于测试 LD 程序的模拟器,但可以对其他 Arduino 平台和流行的微控制器(如 ESP32 和 ESP8266 可编程设备)进行编程。图 2 说明了 Hello World 模拟器 LD 程序环境。



将 OpenPLC 与 Arduino Uno 一起使用

了解 OpenPLC 开源平台后,您现在可以构建 Arduino Uno 或兼容的 PLC。构建开源 PLC 的第一步是从此处的网站下载开发工具。



为您的 PLC 开发机器的操作系统选择软件。从网站下载OpenPLC软件后,双击以运行安装程序。

恭喜您安装了 OpenPLC!

您已准备好构建您的第一个 OpenPLC 项目 Hello World。


第一个OpenPLC项目:Hello World

该项目使用Arduino Uno或兼容板,以及无焊试验板上的一些分立电子元件。Hello World PLC 项目在按下触觉按钮开关时会点亮 LED。您将使用图 4 所示的电子电路原理图连接兼容 Uno 的 PLC。



作为补充参考,这里是作者的无焊面包板PLC,如图5所示。



轻触按钮开关 PB1 和 PB2 作为数字逻辑开关接线。当按下 PB1 或 PB2 时,引脚 3 和 2 分别施加大约 +5 VDC。为了说明测试有线数字开关的方法,图6给出了图6。您会注意到,在 Tinkercad 电路模型中,数字电压表连接在电阻 R1 上。USB 电缆将 Arduino PLC 连接到编程计算机。Arduino Uno 印刷电路板 (PCB) 上将出现一个开机 LED;该指示灯表示微控制器和印刷电路板 (PCB) 上的配套电子电路已通电。



将数字电压表放在图 5 所示实际 PLC 原型的 R1 上,然后按下 PB1 轻触开关。电气测量仪器的 LCD 上应显示 +5 V 的近似读数。如果电压读数不是大约 +5 V,请检查接线并重复测量。在 PB2 轻触开关上执行相同的测试测量。按 PB2 在数字电压表上读取大约 +5 V。

恭喜,您的 Arduino PLC 有两个功能性数字逻辑开关。

下一步是在无焊试验板上接线并测试输出 LED 指示灯。图 7 显示了无焊试验板上有线和有源输出 LED 指示灯的 Tinkercad 电路模型。在实际无焊试验板原型上测试输出 LED 指示灯时,请使用此电路模型作为参考。


如果您的输出 LED 指示灯亮起,则工作做得好!您的输出 LED 指示灯工作正常。

从 PLC 开发机器的 USB 端口上拔下 USB 电缆。用长跳线更换连接到 560 Ω电阻的红线。您将取连接到 560 Ω电阻器的跳线末端,并将其插入安装在 Arduino Uno 上的母头连接器的数字引脚 7 (D7) 中。

您已经连接并测试了原型 Arduino Uno PLC 的数字逻辑开关和输出 LED 指示灯。

PLC 项目的最后阶段是构建 OpenPLC Hello World LD 程序并将其上传到 Arduino Uno PLC。在继续 OpenPLC 项目的最后一步之前,请将 USB 电缆插入 PLC 开发机器的 USB 端口。


构建基本梯形图程序

接下来,右键单击计算机创建一个项目文件夹(推荐在“我的文档”或其他简单位置),其中 OpenPLC 生成的文件与 LD 程序一起存储。您可以将项目文件夹命名为“HelloWorld”。

创建项目文件夹后,打开 OpenPLC 软件并选择 HelloWorld 项目文件夹,屏幕上会出现 OpenPLC 编辑器。


通过选择“文件”>“新建”创建 HelloWorld LD 程序。

屏幕上将出现一个小对话框。在标记为 POU Name 的文本框中填写 HelloWorld,如图 9 所示。对于“语言”下拉列表,选择“LD(用于梯形图)”。单击“确定”按钮以完成创建新的 LD 程序。



完成项目框后,即可创建 I/O 标记。对于 Hello World LD,有两个标记:HelloWorld_PB 和 HelloWorld_LED。单击加号以创建两个 I/O 标记。您的 I/O 标记列表应如图 10 所示。



您会注意到 I/O 标记列表中列的“类型”和“位置”。单击HelloWorld_PB的“类型”(数据类型)单元格,然后选择 BOOL。对HelloWorld_LED重复选择过程。通过触觉按钮开关提供数字信息(ON/OFF),输出 LED 指示灯被命令打开和关闭,数据类型为布尔值,因此选择 BOOL。location 列是 Arduino Uno 的指定 I/O 引脚的 PLC 地址。键入地址,如图 10 所示。

完成 I/O 标记列表后,您现在可以创建 LD 程序。您将用于 Hello World 项目的两个主要 PLC 位指令是检查是否关闭 (XIC) 和输出通电 (OTE) 这些位指令的位置在编程工具栏中。



选择XIC和OTE位指令,并将它们分别放在OpenPLC编辑器的LD程序构建部分的左侧和右侧。您创建的标记将通过选择正确的位指令进行关联。图 12 显示了与正确位指令关联的标签。



选择电源轨并配置引脚数以连接 XIC 和 OTE 位指令并构建逻辑的单级。引脚是 LD 程序的横档。图 13 说明了电源轨的选择和配置过程。



构建 LD 程序的最后一步是将 XIC 和 OTE 位指令连接在一起。选择 HelloWorld_PB XIC 位的右端并拖动它以创建一条线。继续拖动该线以连接到HelloWorld_LED OTE 位的左侧。该行创建一个梯级来管理 XIC 和 OTE 位指令控制逻辑操作。完成的 LD 程序如图 14 所示。



超级工作构建 Hello World LD 程序!

要在 LD 程序上运行模拟,请单击 Config0.Res.instance0 下拉框旁边的太阳镜。您应该看到连接到 HelloWorld_PB XIC 位指令的左梯级变为绿色,表示 LD 程序已准备好进行仿真,如图 16 所示。在任务栏上选择正在运行的人来运行 LD 程序。“PLC 已启动”文本将显示在编辑器的 PLC 日志部分。




要与模拟进行交互,请右键单击以从显示的选择列表中选择“强制 True”。Hello World_LED OTE 位应变为绿色。再次单击鼠标右键以切换强制 false。您会注意到 Hello World_LED OTE 关闭或显示为黑色。

恭喜,您已经为 Hello World LD 程序运行了模拟事件。该项目的最后一步是将LD程序上传到实际的Arduino PLC。


在Arduino Uno PLC上上传和测试Hello World梯形图程序

单击停止标志以关闭模拟事件。通过单击位于编辑器左侧的 HelloWorld LD 程序名称旁边的小框来重置 LD 程序。

要上传,请单击任务栏中的 Arduino Uno 图标以选择正确的 USB 通信 (COM) 端口和适当的微控制器开发平台。图 17 显示了所选 COM 端口和 Arduino 板的配置面板。



您可能需要使用 PLC 开发机器的设备管理器识别正确的 COM 端口。选择 Arduino Uno 板和 COM 端口后,单击 Upload 按钮。在运行时工具将 ST 程序转换为 C 代码,然后转换为二进制文件并将其上传到 Arduino 后,编译输出窗口中将显示一条“完成”消息,如图 17 底部所示。按下无焊面包板原型上的 PB1 轻触开关,LED 应亮起。松开触觉按钮开关将关闭 LED。

您现在已经使用Arduino和OpenPLC软件构建了一个低成本的PLC!


欢迎加入小编工控技术群聊,共同学习PLC+物联网!VV:PLC230


扫描二维码推送至手机访问。

版权声明:本文由第六芝士网发布,如需转载请注明出处。

本文链接:http://www.dgx666.com/post/1918.html

标签: arduino下载
分享给朋友:

“分享一个Arduino上的PLC梯形逻辑:使用OpenPLC控制” 的相关文章

只需要四步,就能完成PHP搭建

搭建php的方法主要分为独立安装和集成安装两种,独立安装需要分别下载apache,mysql和php,而集成只需要下载一个软件安装包,比较简单,很适合新手。集成安装包有WampServer、appserv、easyphp等,下面我们以WampServer为例教大家搭建php开发环境。一. 确定自己的...

Microsoft Office 2010办公软件详细安装教程(附安装包)

Microsoft Office乃广大用户常用办公软件,而Microsoft office 2010版本目前仍广泛应用。其全新界面便携简练,标志则转为全橙色。此版将采用新的用户界面主题,与Microsoft office 2003、2007相比,2010版改进颇多,LOGO亦有所更新,新界面更显清爽...

加拿大“雪鸟”飞行表演队发生坠机事故

参考消息网10月16日报道据美国《军队时报》网站10月15日报道称,加拿大皇家空军表示,在美国参加特技飞行表演的一名“雪鸟”飞行表演队飞行员在表演前一刻被迫弹射逃出机舱,飞行员安然无恙。加拿大“雪鸟”飞行表演队(第431空中表演大队)称,10月13日,上尉凯万·多蒙-格勒尼耶驾驶的飞机,在美国佐治亚...

分享小白安装Chia过程中遇到的各类问题

最近超火的Chia在网络江湖掀起了不少的腥风血雨,相对于比特币等挖矿机制不同,Chia不需要太强的计算能力,占用运行资源少,仅需要一台普通的PC即可,当然硬盘可用空间越多越好。一看入门要求这么低,小学弟也耐不住寂寞,开始跟随挖矿大军随波追流一番,仅仅是想尝试一下水有多深。然而安装过程中却遇到了一些麻...

inc-by-one之高级漏洞利用技术

Author:Netfairy0x00 前言什么是inc-by-one?比如有这样的一条指令:inc dword ptr[eax+8],这条指令执行的效果是使eax+8地址处的值加1,类似于c语言*(eax+8) = *(eax+8) +1,如果我们可以控制eax的值,那么这就是一个inc-by-o...

如何简单实现Windows应用在Linux系统上的无缝运行?

统信 Windows 应用兼容引擎 V3.0 的推出,让用户可以在 deepin 系统上直接双击.exe文件运行 Windows 应用程序。近期,我们收到了大家诸多的反馈信息。基于这些反馈,我们对使用兼容引擎运行 Windows 应用时常见的各类问题进行了梳理,同时也整理出了在问题出现的情况下,怎样...