我有一个关于plc(siemens)的新项目,但我不知道它们是如何工作的。 我需要做的是,通过给出来自plc的一些数据,我必须处理数据并在简单的GUI上显示它。 我必须使用的PLC(我不知道是否有不同的类型)是一个“接近传感器”,它只捕获某些东西在它的前面,然后它发送一些数据到我的程序用Java然后我必须显示它在GUI上(基本上是一些红色或绿色圆圈) 我不必处理PLC的行为,我只需要通过PLC提供数据显示红色或绿色圆圈
问题:
我想到了Java,因为我知道这是一种强大的语言,但它是否是我必须做的最好的?
其次,如果Java是最佳选择,是否有任何与PLC一起使用的库?
第三......我开始阅读一些语言,如:
它们用于什么?
答案 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的确切类型使用几种不同的选项。
西门子支持的一些通信协议:
opc:PLC与其他设备之间通信的行业标准
像Snap7 http://snap7.sourceforge.net/这样的libary,它有很多支持的编程语言
对于编程语言,您可以使用Java,但作为替代方案,您可以使用C#或vb.net与Visual Studio合作创建一个简单的GUI。
如果您需要任何进一步的信息,请告诉我。
答案 3 :(得分:0)
我有类似的问题,这是我如何整理出来的: 大多数PLC使用的通信协议是modbus,bacnet,lonworks和milion其他。在您的情况下,我假设西门子使用modbus。 首先你将Rs485连接到usb适配器(亚马逊上的20Eur) 你必须从modbus读取寄存器 - 请使用easyModbus api 这种方法工作正常,但它不是实时发生的,因为modbus通信可以在不同的线程中运行。