Question

I have a relatively special question here. At least I think it's special as Google didn't seem to be able to provide me with the information I was looking for.

I have recently purchased a S7 Starter Kit, containing a S7 1212C PLC. It's all setup and running.

What I would like to do, is to write a Java Program (without native libraries) that communicates with that controller. I know there are the S7 Java Beans, but these seem to work only with the 200/300/400 Sieries. Are there any (open-source) implementations of Java protocol-stacks, that allow to access such a PLC from Java? If not, I would be really glad to get some pointers to some specifications that would allow me to implement a rudimentary stack myself (It seems the Web is filled with high-level information, but there seems to be very little low-level stuff around :-()

Help greatly appreciated, Chris

Was it helpful?

Solution 2

In order to be able to close this. There is no pure Java way to actually use ProfinetIO the problem is that initiating the Communication is not an issue and polling values is also possible, but in order to initiate a normal Profinet IO communication I would have to access the IP stack below TCP and UDP which Java does not allow. Unfortunately the "real time" state information sent by the plc is sent using an IP frame type Java does not support.

OTHER TIPS

There is a beta tester only Java version of libnodave, but I don't know if 1212 is supported.

The S7-1200 and S7-1500 series are capable of communicating via ModbusTCP (see https://www.dmcinfo.com/latest-thinking/blog/id/8869/using-an-s7-1200-plc-as-a-modbus-tcp-slave).

There's a Java library to communicate via ModbusTCP: http://jamod.sourceforge.net (haven't tried it yet).

Maybe this combination will work for you.

I don't know if this is helpful for you, but we have a java library (LGPL 3.0) which talks natively via TCP/IP with S7 devices.

have a look at http://openscada.org

The code itself can be found at http://git.openscada.org/?p=org.openscada.atlantis.git;a=tree;f=org.openscada.da.server.dave;hb=HEAD

Check out Moka7: it's an implementation of the S7 protocol in Java.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top