如何将 java 与 plc 数据连接起来



我有一个关于plc(西门子)的新项目,但我不知道它们是如何工作的。我要做的就是通过从plc获得一些数据,我必须处理数据并将其显示在简单的GUI上。我必须使用的PLC(我不知道是否有不同的类型)是一个"接近传感器",它只有在它前面有东西时才捕获,然后它必须用Java向我的程序发送一些数据,然后我必须在GUI上显示它(基本上是一些红色或绿色圆圈)我不必处理 PLC 的行为,我只需要通过给定来自 PLC 的数据来显示红色或绿色圆圈

问题:

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

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

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

  • 功能框图

它们是干什么用的?

"The PLC(...)我必须使用的是一个"接近传感器",它只能捕获它前面的东西。

您的意思是在这里声明您正在将接近传感器连接到 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 应具有 RS232/485 接口。所有通信都通过串行通信进行。Java确实有Java通信API,但是在你走这条路之前,与PLC设备接口的计算机是什么 - 低功耗ARM SBC或x86 PC?使用 Java 的缺点是与 JDK 相关的占用空间。如果是我,我会根据平台的限制坚持使用 C/Rust 或 GoLang。

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

西门子支持的一些通信协议:

  • OPC:PLC与其他设备之间通信的行业标准

  • 像 Snap7 这样的库 http://snap7.sourceforge.net/它有很多支持的编程语言

对于编程语言,您可以使用Java,但作为替代方案,您可以使用C#或 vb.net 与Visual Studio合作来创建简单的GUI。

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

我有类似的问题,这就是我整理它的方式:大多数PLC使用的通信协议是modbus,bacnet,lonworks和milion其他。在你的情况下,我假设西门子使用modbus。首先,您将Rs485连接到USB适配器(亚马逊上约20欧元)您必须从 Modbus 读取寄存器 - 请使用 easyModbus API这种方法工作正常,但它不是实时发生的,因为 modbus 通信可以在单独的线程中运行。

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

http://easymodbustcp.net/en/

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

最新更新