如何连接java与plc数据

How to connect java with plc data

我有一个关于 plc (siemens) 的新项目,但我不知道它们是如何工作的。 我必须做的是,通过 plc 提供一些数据,我必须处理这些数据并将其显示在一个简单的 GUI 上。 我必须使用的 PLC(我不知道是否有不同的类型)是一个 "proximity sensor",它只捕获它前面的东西,然后它必须在 Java 中向我的程序发送一些数据并且然后我必须在 GUI 上显示它(基本上是一些红色或绿色圆圈) 我不必处理 PLC 的行为,我只需要根据来自 PLC 的数据显示红色或绿色圆圈

问题:

我想到了 Java,因为我知道这是一种强大的语言,但它是我必须做的最好的吗?

其次,如果 Java 是最佳选择,是否有用于 PLC 的库?

第三......我开始阅读一些关于某些语言的东西,比如:

它们有什么用?

PLC应该有一个RS232/485接口。所有通信都通过串行通信进行。 Java 确实有 Java 通信 API,但在你走那条路之前,与 PLC 设备连接的计算机是什么 - 低功耗 ARM SBC 或 x86 PC ?使用 Java 的缺点是与 JDK 相关的占用空间。如果是我,我会根据平台的限制坚持使用 C/Rust 或 GoLang。

"The PLC(...) that I have to use is a "接近传感器”,它只捕捉它前面的东西。”

你的意思是在这里声明你正在将接近传感器连接到 PLC,从 PLC 读取数据并返回到你的 UI 程序,或者你想直接将接近传感器读取回你的 UI 程序? 如果是后者,请将您的传感器连接到微控制器,然后将数据串行发送到您的计算机。

如果您使用的是 PLC,则需要一些接口卡(即数字或模拟)。将您的传感器连接到适用的卡。如果你想阅读 S7 PLC,你将需要一个库——libnodave 是一个很好的库。 如果您使用的是像 libnodave 这样的库,您将需要使用它支持的语言之一——它包括 Java,但您也可以使用其他语言,例如C. 你也可以用 Snap7.

FBD 是 IEC61131-3 编程语言之一 - 请参阅: http://www.automation.com/pdf_articles/IEC_Programming_Thayer_L.pdf

要与西门子 plc 通信,您可以根据所使用的 PLC 的确切类型使用几个不同的选项。

西门子支持的几种通讯协议:

您可以使用 Java 作为编程语言,但您也可以使用 C# 或 vb.net 与 Visual Studio 合作创建简单的 GUI。

如果您需要任何进一步的信息,请告诉我。

我遇到了类似的问题,我是这样解决的: 大多数 PLC 使用的通信协议是 modbus、bacnet、lonworks 和 milion 等。在你的情况下,我假设西门子使用 modbus。 首先,您需要 Rs485 转 USB 适配器(在亚马逊上大约 20 欧元) 你必须从 modbus 读取寄存器 - 请使用 easyModbus api 这种方法工作正常,但它不是实时发生的,因为 modbus 通信可以 运行 在单独的线程中。

这取决于你要设计的应用程序,如果应用程序是基于网络的,最好使用通过TCP连接发送数据的easymodbus TCP,如果你想要桌面应用程序,最好使用 Easy Modbus RTU,使用 RS485,这个库是最好的。

http://easymodbustcp.net/en/

我推荐使用这个库,它也是为了将来(智能 Phone,桌面和 Web 应用程序使用 Spring Boot MVC)。