Siemens S7400/S7300 PLC and C++ Communication


Thread Starter

Zahir Saleh

Hello there!
I would like to achieve communication using MPI link between a siemens S7-400 or S7-300 PLC using C++ (Borland C++ Builder). Does anyone have Ideas how to go about this…whether there are software components already available on the net? I know this can be done Using OPC servers, but I guess this will force me to run WinCC on the Server side!! I don’t want any WinCC running!!!!
Please! Gurus, assist

Best Regards,
Zahir Saleh.

Donald Pittendrigh

Hi All

This is truly confusion!!!!

It is not possible to communicate with S7's using OPC server, they have no OLE and no DCOM and so they just don't do this.

There is only one possibility to program an S7 in C++ and that is not S7 it is M7 and the M7 processors as far as I know are all discontinued so that wont work either.

In the event that there may be a PC involved in this equation, running WinCC and an OPC server are not necessarily related at all, I have about
3 or maybe 4 different OPC servers running in my office right now and no WinCC at all, there is no hard connection, WinCC can be used as an OPC
client but it has got nothing to do with the server side (that I can think of)

If you want to use an MPI link there are a few products around that allow you to use S7 functions in C++ but they all cost money. I cannot
think that any of them can be had for free or though if you look hard enough you may find one that runs in demo mode for a while, try Softing,
Inat, Technosoft, Kepware, and if you can get hold of a Simatic Net CD you may find that there is an MPI driver available that runs demo mode.

I suggest you use TCP to communicate with this PLC of yours, you may well find in the long run it is cheaper although you will have to find the bucks for the H1 card and it isn't cheap.

Donald P
Hi Zahir,

You can use OPC servers to accomplish this and no you won't need to have WinCC running. There a couple of companies that offer this OPC server and there was a recent thread on this. One I have used for MPI is from kepware. Here is a URL:

I know that Kepware provides Visual basic source but will also provide C++ source for their OPC Client access if you ask for it. I looked at both the Visual Basic and C++ source a while back and both were well commented.

OPC is an open standard. If you use siemens OPC-Server, then it is absolutely not necessary to use WinCC or any other siemens application software as OPC-Client.
For communication to S7-300/400 via MPI/Profibus/Ethernet, you can use siemens OPC-Server.
For MPI network with CP5611, you need S7-SOFTNET package, which consists of S7 communication driver and OPC-Server.
In siemens OPC manual, you can find some examples for VB or VC++.

Andrew Hawdon


Siemens have an inexpensive product called Prodave, 6ES7 807-3BA00-0YA0 is the Part No for the mini version. This will allow you to access via MPI variables in the PLC from a PC. It comes with examples and DLL's to allow integration in C and VB.


my understanding of your mail is you're searching for a way to communicate from plc to pc using C++?
Use an MPI adaptor (like SSW7 or NetLink from together with ether AGLink (Communication dll for many adaptors from or an OPC-Server from Helmholz or DeltaLogic.

Hope this helps.

Best regards,
Konni (Konni(at)
Hi all,
In the need to re-inforce a point I would like to agree with Andrew Hawdon's advice.
ProDave will allow this to be done.
Paul Pierce.
Hi zahir,

did you get it to work? I'm intrested in it. :) I have a CP5611 in my PC and i don't know, how to send/receive Signals. I'm working also with BCB :)
You could try your local Siemens agent