PLC与Arduino的工业控制

电子说

1.3w人已加入

描述

价值20美元的微控制器是否可以与现实工业控制应用中的PLC匹敌?

随着公司开发硬件和软件来支持各种有趣的应用程序,地下机器人制造商的“制造者”世界继续增长。已经出现了许多微控制器,它们以非常低的前期硬件和软件成本执行各种功能。

已经出现了许多板,包括微控制器,现场可编程门阵列(FPGA)和单板计算机。其中,Arduino和Raspberry Pi是两个主要名称(图1)。两者都是开放源代码的设备,具有可从各种供应商处获得的组件,并且它们都需要高水平的编程技能和一定的想象力,然后才能用于实时工业控制应用。

一些工业用户可能会想到这些平台可以替代入门级PLC。毕竟,如果Arduino可以控制机器人来参加STEM竞赛,那为什么它不能控制工业机器人或简单的机器呢?如果有可能以低至20美元的价格购买Arduino,为什么要在PLC上花费数百美元?Arduino可以做很多事情,但是正如我发现的那样,即使在简单的工业应用程序中工作也要说起来容易做起来难。

网络研讨会:PLC与Arduino-按需观看

使用Arduino进行实时工业控制

工业平台?

图1:Arduino和Raspberry Pi平台具有许多功能,但也缺乏许多实用功能以支持在工业应用中轻松实现。

Raspberry Pi实际上是基于Linux的小型单板PC,而Arduino更像是PLC。尽管这两种平台都合适,但我还是选择了Arduino供我们的项目使用:对泵产生的流量进行闭环控制。传感器测量流量并将数据发送到Arduino,后者调整控制阀执行器以维持设定点。这是最基本的工业模拟自动化功能之一,通常使用PID回路作为控制算法。

Arduino使用PI控制功能-这种类型的回路不需要派生-从流量计读取信号并调节阀以达到并保持设定值。这个概念很简单,但是,在使用实际工业设备时,它变得更加复杂。

Arduino是价格合理的准系统设备,但如果可以编写正确的程序来匹配应用程序,它确实具有广泛的功能。对于程序员而言,这是一片空白,没有本机功能或功能块可以上传,因此我不得不从头开始创建PI算法。

它具有离散和模拟I / O。但是,选择是有限的。模拟输入为0-5 V,模拟输出为脉宽调制(PWM)。这适用于调节电动机的速度或调节温度控制回路,但不适用于许多其他应用。大多数工业模拟仪器和执行器都是为4-20 mA电流环路设计的,因此该标准已在演示项目中使用,需要大量的设计和工程工作。

处理电流回路

该演示设备使用标准的现成工业组件:罗斯蒙特3051SFP一体式孔板流量计和Fisher Easy-Drive控制阀,均由艾默生自动化解决方案公司提供(图2)。除了物理尺寸以外,没有针对任何特定功能或特性选择这些产品。它们都是非常常见的设备类型,因此非常适合此演示。

流量控制

图2:此流量计和阀门代表通常用于控制流量的典型工业设备。

第一步是将来自流量计的4-20 mA信号转换为0-5 V,或更佳的1-5 V,以保持有效零位。这种情况并不罕见,可以从多个来源获得转换器。但是,为了保持实验的DIY特性并降低成本,我从头开始创建了一个(图3)。它建立在Arduino原型屏蔽板上,可安装在主板顶部。一个简单的250欧姆电阻将4-20 mA信号转换为1-5V。

电流回路转换

图3:信号转换器板位于Arduino屏蔽栈的中间。它转换两个电流回路输入并将PWM输出更改为电流回路以控制阀。

更具挑战性的任务是将PWM转换为4-20 mA。缺乏商业解决方案表明这不是常见的转换,因此我不得不从头开始构建此转换器(图4)。我决定使用两通道光电隔离器对4-20 mA电流环路输出进行电隔离,以便在与其他电流环路设备连接时具有更大的灵活性。由于电路与电源隔离,因此留下了为电路供电的问题。这是通过使用电压基准集成电路从电流环路本身为电路供电来解决的。

Arduino

PWM转换

图4:虽然脉宽调制可以很好地控制电动机或加热元件,但必须将其转换为电压或电流环路来驱动大多数其他设备。

Arduino PWM输出以500 Hz运行。低通滤波器去除500 Hz信号及其谐波,从而产生与PWM占空比成比例的直流信号。设计了二阶Sallen-Key有源滤波器,其截止频率为7 Hz,以提供对500 Hz分量的足够衰减。

运算放大器(运算放大器)用于将低通滤波器输出转换为电流。请记住,所有运算放大器,基准电压源和光电隔离器输出的电源电流必须小于4 mA,因为它们必须流过电流环路。最终的隔离输出需要4-20 mA电流环路提供的最大10 V电源,因此在24 V系统中可以很好地工作。有足够的空间将所有信号转换电路安装在同一屏蔽层上。

基本基础设施支持

Arduino没有电源,也没有任何类型的人机界面(HMI),但是它可以使用添加到堆栈中的小型图形显示护罩,屏幕尺寸约为1.75 x 2.25英寸。与PLC不同,需要自定义程序来提供有用的信息,而PLC通常具有多个HMI选项,仅需简单的屏幕配置即可。电线安装也是基本的,因此连接外部设备需要一些工作。安装Arduino板需要创造力,因为没有外壳,也没有任何方便的选择,例如DIN导轨安装。

在演示项目中,我使用了适合为流量计和控制阀供电的标准24 Vdc电源,但必须通过一个简单的线性稳压器将电压降低至12 Vdc,才能为Arduino供电。

规范的

图5:流量计,控制阀和大多数PLC在电源(24Vdc)下运行(左)。Arduino的工作电压为12 Vdc,因此在散热器下方需要一个额外的调节器(右)以使其脱离主电源。

编写代码以在Arduino上实现PI算法必须从头开始,但是相对简单。读取电流环路输入,计算设定值和输入之间的差,计算积分和比例校正,并将结果发送到PWM电流环路输出。

为了查看操作,我编写了一个程序,使用小显示屏显示过程变量(通过电流回路输入读取)和控制输出作为时间的函数。这提供了控制系统性能的直接视图。

Arduino提供了几个模拟输入,因此将三个以上的模拟输入连接到电位器以调节操作系数(图6)。一个控制控制器的设定点,允许通过旋钮旋转来控制水流。另外两个为控制回路提供了比例和积分增益,并且可以通过调节两者来平衡稳定性和响应时间。它们都没有任何规模或工程单位来指示设置。

监管职位

图6:在其余三个模拟输入中添加电位计可以调整设定点以及P和I增益,但是没有刻度或指示。

准备运行

循环表现

图7:流量计上的变送器提供了本地显示,可滚动显示常规工程单位中的一系列过程变量。使用此功能,可以验证循环的性能。

流量计具有默认的本地显示(图7),以加仑/分钟(GPM)的形式显示流速,以英寸水柱为单位的压差(dP)来显示回路功能。PI算法按预期执行,可以通过操纵电位器来调整两个控制因子来调整环路。流量控制表现出PI回路的正常特性(好的和坏的)。

有一个旁通阀,可用于引起过程变化,迫使环路调节阀以保持设定值。我创建了一个程序,以便显示屏可以显示循环的有效表示形式(图8);但是,根据显示器的尺寸,需要花费一些时间来阅读。

PWM到电流环路转换器是主要的带宽限制。使用低截止频率来充分过滤PWM的必要性限制了Arduino对条件变化的响应速度。一旦调整了比例增益和积分增益,100 ms(10 Hz)的采样间隔就可以很好地工作。如果旁通阀打开,它将抢断系统大约一半的输入流量,但是Arduino会调整控制阀以在几秒钟内达到所需的流量。在水流量稳定的情况下,系统是稳定的,没有任何迹象表明控制阀正在调整。

从头开始编程

图8:显示屏是Arduino板栈的顶层。虽然很小,但它可以给出环路性能的图像。但是,所有功能(例如绘制基本网格)都必须从头开始编程。

自然,Arduino没有要处理的工程单位的概念,但是PLC也没有。它只是在处理当前值,这实际上是它要做的全部。操作员可能希望看到加仑或打开的百分比,但对于控制器而言则不必要。

大多数工业级设备(例如PLC)都设计用于在操作至关重要且必须连续的潜在敌对环境中使用。它不能仅仅因为植物变得太热或太冷而分解并退出。大多数Arduino并非出于这一考虑而构建。越来越多的工业级设备和额定外壳也应运而生,但这种考虑应作为任何分析的一部分。

用PLC进行实时工业控制

演示项目的第二阶段使用基本的低端PLC,在这种情况下为AutomationDirect的BRX(BX-DM1E-10ED23-D)。我之前没有PLC编程经验或没有梯形逻辑知识,就进入了这个项目,尽管与经验丰富的PLC程序员相比,它与Arduino目标进行比较更具挑战性。

PLC具有一个模拟输出和一个模拟输入,均可配置为4-20 mA电流环路操作,以及多个离散输入和输出。通过以太网从外部Windows PC对PLC进行编程访问。第一步是在PC上下载并安装Do-more Designer软件,可从www.automationdirect.com免费下载。

安装软件后,将PLC通过以太网电缆连接到PC,并用24 Vdc供电(图9)。便携式计算机上的快速“ ipconfig”命令显示了便携式计算机的以太网地址。通过Do-more Designer软件将同一子网中的另一个IP地址编程到PLC中。

工业级PLC

AutomationDirect BRX PLC具有内置的,行业标准的模拟和离散I / O以及用于配置和编程的免费Do-more Designer软件,非常适合于此流环控制应用。

下一步是学习一些梯形逻辑编码。《 BRX PLC硬件用户手册》的第10章包含使用梯形逻辑对简单计时器进行编程的分步示例。通过本练习,可以很好地介绍软件和PLC的基本编程结构。

通过软件将模拟输入和输出配置为4-20 mA电流环路。这比为Arduino设计和构建当前循环接口要容易得多。在编写了几梯形逻辑梯级之后,直流毫安表验证了输出的功能。

PLC提供了复杂的PID指令,允许设置各种回路参数以手动或自动控制回路。通过再次使用毫安表将模拟输出连接回模拟输入,创建了一个非常简单的控制环。将PID指令与缩放的模拟量输入和输出相关联,使PLC无需处理几加仑的水即可学习PID功能。通过使用电阻器“抢断”一点输出电流并观察BRX PLC的补偿来验证主动PI控制。

有了这种能力,是时候将PLC与我们的流量控制回路集成在一起了。连接到流量传感器非常简单,其中24 Vdc电源为流量传感器电流环路提供激励。控制阀更加容易,因为PLC电流回路输出提供了必要的激励。

启动系统,使用Do-more Designer软件调整PID函数的比例系数和积分系数以实现稳定的流量就很简单了。流量的调整非常简单,可以通过Do-more Designer软件调整设定值。

Do-more Designer软件的PID功能提供了过程变量和控制变量的自定标图,从而可以清晰,实时地监视系统性能。

除了基本的核心操作级别外,PLC还提供了工业应用中经常需要的各种通用支持功能,例如极限检测,报告和数据记录。与必须从头开始编写每个功能的Arduino演示相比,该PLC使系统设计人员可以专注于应用程序及其如何适应更大的生产系统,而无需关注控制器硬件和软件的细节。

另请阅读:新技术将机器智能推向边缘

制造还是购买?

那么,Arduino还是PLC,哪个更好?如果仅考虑控制器和I / O的裸机成本,则Arduino胜出。但是,当添加了使Arduino在此相对简单的应用程序中使用所需的所有辅助组件时,硬件成本差距将缩小或消失。组装和编程Arduino所需的时间也很长。如果以接近正常工程工时费率的时间来计算时间,则PLC无疑是总成本方面的赢家。

关于性能,Arduino和PLC都完成了任务。

尽管我们的项目仅着眼于控制简单的流量回路,但大多数工业应用将需要多种其他离散和模拟控制功能。使用PLC,很多都是内置的,而没有使用Arduino。

有C语言编程经验的人可能会很快对Arduino进行研究,但是即使是最基本的工业功能也必须从头开始编写。从未对这两种类型的控制器进行过编程的人都将与两种平台有关。

但是,PLC的在线教程和其他教程的数量无疑受到了青睐,因为它们专门针对工业用户,有许多功能库可供下载以执行常见操作。例如,PLC有可用的环路调整软件,为Arduino编写将非常复杂。

在更工业化的Arduino和Raspberry PI器件出现之前,设备的耐用性肯定会有利于PLC。同时,大多数PLC都是产品系列的一部分,具有可扩展性和本机功能的广度,因此扩展起来容易得多。与Arduino或Raspberry PI平台相比,带有附加I / O模块,HMI和其他用于安装在控制柜中的辅助设备的PLC将更易于使用,并且效率更高。

对于学习代码编写和控制概念的基础的人,Arduino及其同类产品提供了有趣的教学工具。必须从头开始编写控制算法会使用户考虑如何执行自动化的复杂性。如此低廉的成本可提供如此先进的设备,这是非常可观的,对于时间比金钱还多的人来说,这是一个福音。

但是对于生产和收入受到威胁的实际工业应用,只需花几百美元就可以获得具有同等或更好功能的PLC,它将附带大量的在线培训视频和其他信息,以及专门设计的功能块库用于工业应用。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分