我在这里有一个相对特殊的问题。至少我认为这很特别,因为谷歌似乎无法向我提供我正在寻找的信息。
我最近购买了一个S7入门套件,其中包含一个S7 1212C PLC。它全部设置并运行。
我想做的是编写一个与该控制器通信的Java程序(没有本机库)。我知道有S7 Java Beans,但这些似乎只适用于200/300/400 Sieries。是否存在Java协议栈的任何(开源)实现,允许从Java访问这样的PLC?如果没有,我会非常高兴能够获得一些指示,这些规范可以让我自己实现一个基本的堆栈(看起来Web上充满了高级信息,但似乎很少有低级别的东西: - ()
非常感谢, 克里斯
答案 0 :(得分:3)
有一个beta测试版只有 libnodave 的Java版本,但我不知道是否支持1212。
答案 1 :(得分:1)
为了能够关闭它。实际使用ProfinetIO没有纯Java方法,问题是启动通信不是问题,并且轮询值也是可能的,但是为了启动正常的Profinet IO通信,我必须访问TCP和UDP下面的IP堆栈哪个Java不允许。不幸的是,plc发送的“实时”状态信息是使用Java不支持的IP帧类型发送的。
答案 2 :(得分:0)
我不知道这对你有用,但我们有一个java库(LGPL 3.0),可以通过TCP / IP与S7设备进行本地通信。
代码本身可以在http://git.openscada.org/?p=org.openscada.atlantis.git;a=tree;f=org.openscada.da.server.dave;hb=HEAD
找到答案 3 :(得分:0)
S7-1200和S7-1500系列能够通过ModbusTCP进行通信(参见https://www.dmcinfo.com/latest-thinking/blog/id/8869/using-an-s7-1200-plc-as-a-modbus-tcp-slave)。
有一个Java库可以通过ModbusTCP进行通信:http://jamod.sourceforge.net(尚未尝试过)。
也许这种组合对您有用。
答案 4 :(得分:0)
签出Moka7:这是Java协议中的S7协议的实现。