S7NetPlus / s7netplus

S7.NET+ -- A .NET library to connect to Siemens Step7 devices
MIT License
1.29k stars 577 forks source link

How reiabile is s7netplus #11

Closed aitech closed 8 years ago

aitech commented 10 years ago

Hi!

Is anyone using s7netplus in any sharp applications? 24/7?

Best Regards

killnine commented 10 years ago

We are in the process of releasing a Windows service that uses s7netplus full-time for communication with some S7-1214Cs and S7-315s (between 150-250 devices). I fully expect to run into some issues, but so far its working alright.

As a caveat, we only use it for short-term communications. Basically, we check some data every 24 hours for changes, and occasionally run diagnostics on specific devices if we're alerted of an issue on the manufacturing floor.

I'd probably advise against using this for continuous data collection 24/7 as an OPC server is a much better fit for this use case.

aitech commented 10 years ago

Thanks killnine.

I have used the old s7.net earlier for reading data from S7-300 and pass them on to large light boards (update rate on 30sec) and that worked great, but that wasn´t critical.

Any issues that data have been modified in the PLC by a read request? Anyone tried it against a IM151-8 PN CPU?

Best Regards

tanner-wood commented 10 years ago

I use the library in a Windows service that runs 24/7 and all days of year except major USA holidays. No reliability issues. On Apr 9, 2014 1:40 PM, "aitech" notifications@github.com wrote:

Hi!

Is anyone using s7netplus in any sharp applications? 24/7?

Best Regards

Reply to this email directly or view it on GitHubhttps://github.com/killnine/s7netplus/issues/11 .

movAX13h commented 10 years ago

Just looking at the sourcecode will assure you that it is very reliable. Everything is very straight forward and the main class for reading and writing (PLC) has only 737 lines of code. It is as reliable as the .net framework is, I'd say. It is using the System.Net.Sockets.Socket for the TCP connection. The protocol (package format) to communicate with a Siemens device over ethernet is very basic which makes it easy to implement.

aitech commented 10 years ago

I´m sure that the source code is good, I´m more concern about the implementation of the protocol. From what I understand juergen1969 has sniffed the TCP packages to figure out how Siemens protocol works? Is there any chance that it´s possible to mess something up in the CPU? Like put it to Stop due to some faulty reading or something else?

movAX13h commented 10 years ago

I understand your concern. There is no diffierence in reading from and writing to the CPU on this level - both use socket.Send(). The difference is in the package (header). Other people have figured out the protocol, all implementations (should) use the same. You could crosscheck the source codes. Seems like some developers had a good experience using this library. I've just started using it 2 months ago. So far I have not experienced unwanted behaviour of any kind.

killnine commented 10 years ago

I also have been using this in a Windows service that periodically checks the values of registers in, literally, hundreds of PLCs. I don't have any data on performance how how fast you can read elements, but the library is pretty stable, in my opinion.