是否有市售的 PLC 可以通过 API 编译/下载程序?

电器工程 界面 公司 自动化
2022-01-23 01:13:59

我的团队决定使用 PLC 来控制需要对外部设备进行简单、实时 IO 且处理最少的工业过程。但是,我们预计每次运行所需的确切输出会有所不同(事实上,给定的运行很少会重复),并且操作员不会有任何 PLC/软件编程经验。

虽然我无法透露实际产品,但最好的类比是我们正在设计一个工业冰沙制造商,PLC 实时精确控制不同阀门的打开和关闭。操作员将使用我们的软件来设计添加不同试剂的自定义顺序以及相关重型机械(例如工业混合器)的开/关。

挑战在于:我们目前的方法是编写我们自己的编译器,将操作员给出的指令(打开阀门 A 10 毫秒,打开阀门 B 20 毫秒)转换为梯形逻辑和 PLC 机器代码。然后我们会直接通过串口将我们自己编译的程序下载到PLC中。所有这些都需要自动化,以便操作员在提出他的步骤顺序后只需单击一个按钮。

然而,尽管我进行了研究,但我还没有找到一个 PLC 供应商,1) 具有带 API 的编译器或发布有关其 PLC 机器代码的足够信息以允许编写编译器,2) 支持将程序直接下载到 PLC无需使用供应商的编程软件(CX-programmer、Atmel studio 等)。

我被引导相信我们可能采取了错误的方法,或者至少不知道要寻找什么产品。i/o 非常简单,不足以证明我们自己的电路板的构建是合理的,但我们正在寻找的功能,即 PLC 与高级 PC 软件的交互,似乎不可用。

理想情况下,我们希望一次将整个程序下载到 PLC,而不是一次发送一条指令。PLC(或我们最终使用的任何设备)上的所有指令都需要实时执行。

是否有任何市售的 PLC 支持编译和下载机器代码,以便整个过程可以通过更大的程序自动化?有没有其他方法可以将实时程序下载到由高级语言编写的 PC 软件编写的 PLC 中?

4个回答

为此,您可以明确地使用 PLC。除了,您不想更改每个“冰沙配方”的 PLC 代码。
你应该编写一个 PLC 应用程序来从任何来源读取食谱,如 sd 卡、网络存储、内部存储,甚至 QR 码,如果你喜欢的话。

通常,PLC 已经具有功能其中配方是您可以加载(并使用 HMI 编辑)的一组参数。

以最少的处理对外部设备进行实时 IO

无论您选择使用什么,都不要发明自己的 PLC这可能不值得花时间。并且不要认为软件或附加模块很昂贵,您无法以那个价格编写它。

我会假设这对于最小的 plc 来说是一项非常简单的任务,而不是使用先进的工业 plc

我还将假设这在工业上是有用的,也就是说,配方应该能够在 10 年内由客户更改。此外,它的实用性应该可以在您停业或转向新产品时继续存在。

正如您所说,许多系统将需要一些特殊的软件来下载和/或编译。从长远来看,您的客户会发现 Windows 11、12、13 将不再运行该软件。为避免这种情况,您希望程序是纯 ascii,通过某种串行端口发送。这已经持续了大约 50 年,并且没有消失的迹象。

Forth 能够在目标上“编译”,因此客户只需从终端发送 ascii 给它。它永远不会过时。

Forth 精神的一部分是您编写特定领域的原语(“AddBanana”、“Blend”、“Pour”),您的客户将其视为产品的特定语言。虽然 Forth 被计算机人士认为是神秘的,但它在概念上对最终用户来说非常容易使用——这将是一个有效的程序。

10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle

例如,您可以使用基于 Arduino 的小型 PLC并加载FlashForth 还有许多其他选择,例如 MPEForth 和基于 ARM 皮质的 PLC

你的软件现在是任意编辑器,和一些程序发送串口。有这方面的标准工具,在你离开很久之后,客户可以从头开始工作,因为它是如此简单。

您的整个想法的失败在于客户正在对产品进行编程,并且当然可以通过做错误的事情来填充它 - 无论您采用什么方法。

因为它只是ascii文件,你很容易为客户制作一个漂亮的shell,但没有它,产品仍然可以工作。

对于工业应用,不要乱用 Arduino 等。PLC 的设计考虑了可靠性、稳健性、标准和长期支持。我工作的公司自 1987 年以来至少运行一个德州仪器 PLC,并从 1990 年代初开始运行其他几家。备件仍可从 eBay 等上的工业来源获得。

使用具有足够功率的 PLC 和工业 HMI 来完成您需要的工作。我最近完成了一项混合器工作,我们希望通过自动和手动步骤实现配方灵活性。该序列是通过步进通过一个阵列来控制的,该阵列是通过 HMI 编程的。

  • 步数。例如“5”。
  • 描述。例如'自动称重香蕉'、'手动装载樱桃'、'刮下来'。
  • 混合速度 (RPM)。例如“25”。
  • 混合时间(秒)。例如“120”。
  • 步骤结束时需要刮掉吗?(Y/N) 例如“Y”。
  • 需要加热吗?(Y/N) 例如“N”。
  • 温度 (°C)。例如“0”。

我们设计的系统包含二十个步骤,这对于可预见的未来来说已经足够了,但如果需要,可以很容易地扩展。所有设置都在 HMI 应用程序中设置了最小值和最大值。

这使系统非常灵活和可编辑。我们拥有一个强大的系统,其 PLC 和 HMI 为众多公司中的任何一家都熟悉和支持。

您尚未指定开发硬件和软件的预算或已部署硬件的单位成本,但如果您负担得起,使用 National Instruments CompactRIO硬件和LabVIEW Real-Time软件当然可以满足您的要求。

CompactRIO 控制器是一款坚固、可靠、高性能的工业级嵌入式控制器,具有行业标准认证。

提供一系列可插入控制器机箱的 I/O 模块,或者如果您的设计是固定的并且您希望降低单位成本,控制器和 I/O 可作为单板提供,以便您与硬件集成. 您可以在 LabVIEW Real-Time 中编写软件以在控制器上运行并执行过程控制,这也可以提供基于 Web 的 UI 来编辑过程步骤,或者可以与用 LabVIEW 或其他语言编写的 UI 程序进行通信,在主机 PC 上运行。我在 PLC 方面的经验有限,但我认为可以公平地说,这种解决方案将更强大、更灵活一个数量级,尽管成本可能更高。

请注意,尽管 cRIO 控制器带有板载 FPGA,但您无需购买 LabVIEW FPGA 模块,除非您确实需要编写 FPGA 代码;听起来实时应该可以满足您的需求。