直播课堂
HOME
直播课堂
正文内容
arduino plc 编程 分享一个Arduino上的PLC梯形逻辑:使用OpenPLC控制
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

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

使用 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.OpenPLC Hello World 运行时仪表板。

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

图2.Hello World 模拟器 LD 程序环境。

将 OpenPLC 与 Arduino Uno 一起使用

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

图3.OpenPLC 网站。

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

恭喜您安装了 OpenPLC!

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

第一个OpenPLC项目:Hello World

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

图4. Arduino Uno PLC电子电路原理图。

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

图5. 笔者实际原型Arduino Uno PLC接线图。

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

图6.测试数字逻辑开关。

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

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

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

图7. 功能输出 LED 指示灯。 图7. 功能输出 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 编辑器。

图8. OpenPLC 编辑器。

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

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

图 9.填写项目框信息。

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

图 10. HelloWorld I/O 标记列表。

您会注意到 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) 这些位指令的位置在编程工具栏中。

图 11. PLC 位指令。

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

图 12. 放置和配置 XIC 和 OTE 位指令。

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

图 13. 电源轨的选择和配置。

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

图 14. Hello World LD 程序。

超级工作构建 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 板的配置面板。

图 17.“配置”面板。

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

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

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

物联网设备结构图

好玩的Arduino,想要开始编程,先来了解几个基础知识和编程语言吧

Arduino的确是一块有的玩的微型控制器,Arduino想要驱动一些硬件,还需要智能的人类来发出一些指令,就是所谓的编程,再开始编程前,我们需要了解哪些基础的知识那,请仔细阅读下面的文章吧。

什么是数字端口和模拟端口

数字端口就是只能输入或输入两种状态的端口,简简单单,这个端口能够告诉你是或者不是,对或者不对,说白了他是用过人类定义0与1,然后通过电路输出的高低电平来判断,比如你定义 "你是个天才"=1,“你不是天才”=0,那么你可以假定10道测试题,每道题1分,定义“if回答正确8道以上”,端口输出1,在通过一些转换函数,你就可以从屏幕上得到答案。

模拟端口就是输入或者输出一些连续变化,说白了就是输入输出电压值,经过换算,得到的模拟数量值,温度、湿度等都是模拟量。

2.什么是pinMode

pinMode是用来定义Arduino针脚的作用,是输入还是输出,二选一,比如是输入端口,就可以定义 pinMode(13,INPUT);如果是输出端口,定义为pinMode(13,OUTPUT)。

3.什么是高低电平

高低电平定义

4.怎么为管脚输出高低电平

这里需要用到digitalWrite()函数,假设想为管脚12输出高电平,可以这样写 digitalWrite(12,HIGH);

输出低电平就是 digitalWrite(12,LOW);

思维发散一下,读取英文单词是Read,那么读取数字端口的值的函数就是digitalRead()。

但是很多朋友对arduino的编程很是苦恼,对敲写代码感到很是乏味,容易写着代码就睡着了,那么图形化编程软件就应运而生,让你快速学会编程!

Ardublock是由第三方开发的Arduino图形化编辑软件,大家可以像搭积木一样的编程,对于减轻青少年的负担和防止兴趣发展疲劳有很大效果,不愿意敲代码的,快去试试吧!

文章合集:你还在玩单片机,还在高价买PLC学习,你已经OUT了,说Arduino的前世今生

50元玩转Arduino,一块神奇好玩的电路板-Arduino的炫酷作品

万里长征第一步,如果用Arduino点亮发光二极管,炫酷流水灯

相关问答

植物异地每日定时灌水作业有哪些方案?plc?arduino?树莓派?

运用远程控制,可以两台电脑加PLC运用远程控制,可以两台电脑加PLC

arduino制作机器人可以用于工业控制吗?

基本上是可以,但是用于工业控制最重要的一点是稳定,精确。arduino是一个基于开放原始码的软硬件平台,用于小型智能民用设备没有问题。工业控制因为环境恶劣,...

能随时控制反应的发生和停止的装置有哪些?

能够随时控制反应发生和停止的装置,通常具有精确的时间或条件控制能力,主要有以下几类:1.程序控制器:如PLC程序控制器、单片机、Arduino等,可以编写程序精确...

comix串口调试怎么用?

Comix是一个串口调试工具,可以用于与串口设备进行通信。要使用Comix进行串口调试,可以按照以下步骤操作:1.首先,确保您已经连接了串口设备,并知道该设备的...

诸位老司机有谁清楚:东莞手机模组标定板尺寸,手机模组标定...

[回答]上海芯垣电子的H2S传感器模组出厂时已经完成标定,价格还便宜,模组价格和传感器头价格差不多。不是。CCM模组产自模组厂。SET,OV是感光芯片厂家,...

求高手讲解一下:要使单片机正常工作,需要具备哪几个条件?

2.1如果是arduino这种集成环境的,有接口pinMode+writePin就可以。2.2如果是用C写的,就要做一点额外的软件工作了,包括:link文件(把代码放进相应的fla......

pt100转4-20ma怎么编程序?

这个问题需要根据具体的控制器和编程语言进行回答,因为不同的控制器和编程语言可能有不同的编程方式。一般来说,需要通过模拟输入模块将PT100的模拟信号输入到...

怎么可以让发光二极管灯十秒闪一次?

说一个最简单的方法。通过Arduino实现!就是下面这个玩意儿。原理图Arduino是自带了一个LED灯的,为了使回答更形象,我们外接一个LED灯,加入LED灯的导通电压...

什么专业与机器人有关?电气工程及其自动化可以吗?

什么专业与机器人有关?电气工程及其自动化可以吗?答:工业机器人作为一种高科技集成装备,对专业有多层次的分类。广义地说:工业机器人是一种机械装置在计算机...

r3扩展板超声波需要单独供电吗?

1.需要单独供电。2.因为r3扩展板超声波需要使用5V的电源,而Arduino主板的电源只能提供3.3V或5V,如果将r3扩展板超声波直接连接到Arduino主板上,可能会因为电...

 生产mes系统  网配 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部