创建定制无线可编程逻辑控制器 (PLC)

作者:Jacob Beningo

投稿人:DigiKey 北美编辑

虽然工业 IoT 正在快速发展,但传统可编程逻辑控制器 (PLC) 提供的定制灵活性和连接性,却无法满足工业工程师的需求。然而,构建定制解决方案可能成本昂贵,而且非常耗时,同时在基于微控制器实现真正嵌入式解决方案方面,几乎没有工业工程师拥有相关的操作经验。

本文对 PLC 进行了简要介绍,然后说明了开发人员如何创建自己的无线 PLC,从而能够使用梯形逻辑来实现应用。

可编程逻辑控制器 (PLC) 简介

PLC 是一种耐用的计算机,用于在工业应用中实现特定流程的自动化。要实现自动化的流程非常广泛,从制造工厂的装配线到物联网建筑照明控制系统,以及中间涉及到的所有流程。

典型 PLC 架构包括(图 1):

  • 带有内部 RAM 和 ROM 的中央处理单元
  • 数字和模拟输入
  • 数字和模拟输出
  • 工业级电源
  • 用于执行所需特性的逻辑应用程序

典型 PLC 架构示意图(包括一系列模拟和数字输入)

图 1:典型 PLC 架构包括一系列模拟和数字输入,这些输入按照逻辑应用程序处理和执行,然后驱动其用于模拟和数字输出的特性。(图片来源:Unitronics)

虽然市场上有很多传统 PLC 可供选择,但开发人员可能还是希望定制 PLC 特性,或者定制构建他们自己的器件。目前,多种不同的方式可用于实现此目的;但是,传统嵌入式系统工程师可以采用其中一种非常有趣的简单方式,也就是使用 STM32 开放式开发环境 (ODE)。

构建无线 PLC

要构建自己的无线 PLC,开发人员需要三个主要硬件组件:

  • CPU
  • 输入/输出信号调节
  • Wi-Fi 模块

开发人员可以从头重新设计所有这些组件,或者也可以利用现有的生态系统。STMicroelectronics 推出了 STM32 开发人员工具包,包括所有这些组件,从而简化了 PLC 创建过程,另外还提供了用于开发梯形逻辑应用程序的基本软件。

现在,我们将探讨这些主要组件,以及让它们在工业环境中运行必须达到的条件。

我们要探讨的第一个组件是 CPU,本例中的 CPU 为 STM32F401RE,来自 STMicroelectronics。STM32F401RE 是一款 32 位 Arm® Cortex®-M4 处理器,并具有以下特点:工作频率 84 MHz、应用代码闪存空间 512 MB、RAM 96 KB。Nucleo-401RE 评估板上提供了 STM32F401RE,还包括用于连接其他硬件的 Arduino 针座,以及用于为嵌入式软件编程的 ST-Link。所有 PLC 代码将在 Nucleo-401RE 上执行。

STMicroelectronics Nucleo-401RE 开发板的图片

图 2:Nucleo-401RE 开发板构成了 PLC 控制器的基础,它包含 512 MB 的应用代码空间,以及用于存储数据的 96 KB RAM。(图片来源:STMicroelectronics)

构建 PLC 所必需的第二个组件是用于输入和输出的信号调节板。开发人员可以从两种信号调节板中进行选择,或者如果应用需要,也可以组合使用。

第一个是 X-Nucleo-PLC01A1 工业 I/O 扩展板(图 3)。X-Nucleo-PLC01A1 包含通过 CLT01-38SQ7 高速数字输入限流器的八个经过调节的输入。CLT01-38SQ7 可限制输入引脚能够消耗的电流,从而为 PLC 提供数字输入保护。另外,还有采用 VNI8200XP 单片式 8 通道驱动器进行调节的八个工业输出。这种驱动器具有极低供电电流、集成 SPI 接口和高能效 100 mA 微功耗降压型开关。VNI8200XP 提供八个片载固态继电器,每个继电器能够驱动高达 0.7 安培的电流。X-Nucleo-PLC01A1 还包括 LED 指示灯,以便从直观地查看每个输入和输出的状态,以及三个报警灯用于指示超温和其他板故障。X-Nucleo-PLC01A1 通过 SPI 通信链路与 Nucleo-401RE 进行通信。

STMicroelectronics X-Nucleo-PLC01A1 的图片

图 3:X-Nucleo-PLC01A1 是一款工业级扩展板,可提供具有八个数字输入和八个数字输出的 PLC 应用。(图片来源:STMicroelectronics)

PLC 可能还需要能够控制高电流和模拟信号。X-Nucleo-PLC01A1 专为数字信号设计。为了控制其他信号,开发人员可以使用 X-Nucleo-OUT01A1(图 4)。X-Nucleo-OUT01A1 包含 STMicroelectronics 的 ISO8200BQ 电位隔离八通道高压侧智能电源固态继电器。在将这些输出与 PLC01A1 进行比较时,一个很大差异是该扩展板能够在 10.5 至 33 伏特的电压范围内工作,实现模拟信号和数字信号之间的电位隔离。此外,该扩展板上还有几个 LED 指示灯,可用于指示是否发生了通信故障或热保护事件。

STMicroelectronics X-Nucleo-OUT01A1 的图片

图 4:X-Nucleo-OUT01A1 是一款工业级扩展板,可提供具有八个继电器输出的 PLC 应用,其中这些输出能够处理高达 0.7 安培的电流。(图片来源:STMicroelectronics)

最后一个组件是无线芯片,可用于提供无线编程机制,或用于创建物联网连接的 PLC。开发人员可以使用 X-Nucleo-IDW01M1,它是一款符合 802.11 b/g/n 标准的 Wi-Fi 扩展模块,同样来自 STMicroelectronics(图 5)。X-Nucleo-IDW01M1 经过 FCC、IC 和 CE 认证,带有集成天线,因而可随时直接用于生产系统。

STMicroelectronics X-Nucleo-IDW01M1 的图片

图 5:X-Nucleo-IDW01M1 是一款工业级 Wi-Fi 模块,能够集成到 PLC 中以提供无线连接。(图片来源:STMicroelectronics)

借助上述所有三个组件,开发人员可以按照图 6 所示的顺序组装硬件 PLC。虽然也可以按照相反顺序组装开发板,这不会造成损坏,但将需要一些额外调试。万一需要将任何定制硬件添加到 PLC(例如 RS-485 芯片),开发人员可以使用 Arduino 原型开发扩展板,例如 Proto Shield(来自 Olimex)或 Adafruit Proto Shield

STMicroelectronics 开发板组装顺序示意图

图 6:组装 STMicroelectronics 开发板以构建功能 PLC 的顺序。(图片来源:Beningo Embedded Group)

设置 PLC 软件

我们需要使用多个软件来设置 PLC。其中包括:

  • PLC 嵌入式软件
  • 嵌入式编译器
  • 梯形逻辑应用程序

PLC 嵌入式软件 FP_IND_PLCWIFI1 由 STMicroelectronics 开发,可从 STM 网站下载。它包含让 STM32F401RE 投入运行所需的全部代码,还包含多种预设配置,具体取决于需要哪些硬件堆栈。该嵌入式软件附带了已针对 STM System Workbench、IAR Workbench 和 Keil MDK 设置的三个项目,并且可从 http://www.st.com/en/embedded-software/fp-ind-plcwifi1.html 下载(图 7)。开发人员可以使用其中任何一种设置,以便在 PLC 上编译和部署嵌入式软件。

嵌入式 PLC 软件应用程序包的图片

图 7:运行 PLC 必需的嵌入式 PLC 应用程序包(图片来源:Beningo Embedded Group)

下载嵌入式应用程序之后,可将其导入所需的编译器 IDE 并进行编译。开发人员应该确保代码编译没有问题。然后,可通过与 PC 的标准 USB 连接,将编译的应用程序下载到 PLC。

最后,STMicro 还创建了简单的 PLC 应用程序,可用于创建梯形逻辑应用程序。该应用程序适用于 iOS 和 Android。通过在移动设备的应用商店中搜索“ST PLC App”,可将该应用程序下载到移动设备上。

简单的应用程序示例

一旦 PLC 的嵌入式软件运行之后,开发人员便可以专注于使用 ST PLC 应用程序开发他们的应用代码。应用代码将使用梯形逻辑来开发。开发人员可以启动应用程序,并基于他们选择要包括在硬件堆栈中的开发板来创建新项目(图 8)。

ST PLC 应用程序的图片

图 8:通过使用 ST PLC 应用程序,开发人员可以创建新项目(左图红色突出显示),选择项目名称(右图橙色),然后配置将要使用的硬件(右图绿色)。(图片来源:Beningo Embedded Group)

配置项目之后,开发人员即可为应用程序创建梯级。第一个项目不妨简单地测试是否能够读取输入,以及基于该输入能否设置输出。开发人员可以通过如下方法来创建此测试:单击“Add rung”(添加梯级),然后实现在应用程序中必需的逻辑。一旦完成此操作之后,开发人员应该会创建一个类似图 9 左侧所示的梯级。

ST PLC 应用程序软件的图片

图 9:通过使用 ST PLC 应用程序,开发人员可以实现自己的逻辑,以便根据他们的需求来控制设备(左)。一旦创建应用程序之后,便可通过单击发送应用程序按钮(右),将其无线推送至 PLC。(图片来源:Beningo Embedded Group)

保存梯级之后,开发人员将返回到主项目屏幕。在该屏幕上,他们可以在应用程序中编辑梯级或创建更多梯级。如果准备部署应用程序,请单击图 9 右侧所示的无线传输按钮,这样可进行连接并传输 PLC 应用程序。请注意,开发人员必须将移动设备连接到 PLC 接入点,并配置端口和 IP 地址,这样才能成功传输应用程序。

构建无线 PLC 的技巧和诀窍

在创建自己的定制无线 PLC 时,开发人员可以遵循一些技巧和诀窍。其中包括:

  • 如果无线开发板不工作,请确认开发板在堆栈上的方向正确。(即按正确的方向放置)
  • 通过为 SSID 添加安全密钥,提升系统安全性。
  • 将默认无线特性更改为站模式,并仅在更新过程中切换到接入点,从而更新 PLC。
  • 考虑添加工业通信协议,例如 RS-485 和 Modbus。
  • 快速构建 PLC 的最佳方式是将它视为一个有趣的问题,然后尝试使用 PLC 解决该问题。
  • 使用 IAR Embedded Workbench for Arm 来编译 PLC 嵌入式软件。该工具链在 30 天内代码不受限。

结论

构建定制 PLC 不一定就那么困难。如本文所示,STMicroelectronics 提供的生态系统让开发人员能够开发基本 PLC 软件,并且极其快速地运行该软件。然后,开发人员还能够轻松地修改和定制该应用程序,以满足各种应用的需求和应对各种挑战。

虽然主要目标是使用梯形逻辑来创建最终应用代码,但如果开发人员拥有丰富的经验和知识,他们可以轻松地对嵌入式软件进行调整,构建更加强大和灵活的混合系统。

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Jacob Beningo

Jacob Beningo 是一位嵌入式软件顾问,目前与十几个国家的客户保持合作,通过帮助客户改善产品质量、降低成本和加快上市时间来大幅改变他们的业务。Jacob 先后发表了 200 多篇关于嵌入式软件开发技术的文章,是一位广受欢迎的演讲者和技术培训师。他拥有三个学位,其中包括密歇根大学的工程硕士学位。如有需要,欢迎随时通过 jacob@beningo.com 与其联系,也可访问其网站 www.beningo.com,并订阅其月度 Embedded Bytes Newsletter

关于此出版商

DigiKey 北美编辑