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

时间:2016-05-21 21:48:28

标签: java plc

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

问题:

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

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

第三......我开始阅读一些语言,如:

  • 功能框图(FBD)

它们用于什么?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

"我必须使用的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

答案 2 :(得分:1)

要与Siemens plc通信,您可以根据您使用的PLC的确切类型使用几种不同的选项。

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

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

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

答案 3 :(得分:0)

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