4

我在这里有一个比较特别的问题。至少我认为这很特别,因为 Google 似乎无法为我提供我正在寻找的信息。

我最近购买了一个 S7 入门套件,其中包含一个 S7 1212C PLC。这一切都已设置并正在运行。

我想做的是编写一个与该控制器通信的 Java 程序(没有本机库)。我知道有 S7 Java Bean,但这些似乎只适用于 200/300/400 系列。是否有 Java 协议栈的任何(开源)实现,允许从 Java 访问这样的 PLC?如果不是,我真的很高兴能得到一些规范的指针,这些规范可以让我自己实现一个基本的堆栈(看起来网络上充满了高级信息,但周围似乎很少有低级的东西:-()

非常感谢您的帮助,克里斯

4

5 回答 5

3

有一个 beta tester only Java 版本的libnodave,但我不知道是否支持 1212。

于 2011-08-10T15:34:16.920 回答
1

为了能够关闭这个。没有纯 Java 方式来实际使用 ProfinetIO 问题是启动通信不是问题,轮询值也是可能的,但是为了启动正常的 Profinet IO 通信,我必须访问 TCP 和 UDP 下面的 IP 堆栈Java不允许。不幸的是,PLC 发送的“实时”状态信息是使用 Java 不支持的 IP 帧类型发送的。

于 2012-09-28T14:23:41.617 回答
1

S7-1200 和 S7-1500 系列能够通过 ModbusTCP 进行通信(参见https://www.dmcinfo.com/latest-thinking/blog/id/8869/using-an-s7-1200-plc-as-a -modbus-tcp-slave)。

有一个通过 ModbusTCP 进行通信的 Java 库:http: //jamod.sourceforge.net(还没有尝试过)。

也许这种组合对你有用。

于 2015-03-08T22:05:36.383 回答
0

我不知道这对您是否有帮助,但我们有一个 java 库 (LGPL 3.0),它通过 TCP/IP 与 S7 设备进行本地通信。

看看http://openscada.org

代码本身可以在http://git.openscada.org/?p=org.openscada.atlantis.git;a=tree;f=org.openscada.da.server.dave;hb=HEAD找到

于 2012-03-06T11:42:06.530 回答
0

查看Moka7:它是 Java 中 S7 协议的实现。

于 2015-03-13T10:08:29.690 回答