# IPS7 LINK - s7 1500 PLCSIM TIA Portal



## mkRE (27 Oktober 2015)

*LibNoDave und IP-S7 Link - s7 1500 PLCSIM TIA Portal*

Hallo zusammen,

ich hänge gerade an einem kleinen Problem und hoffe Ihr könnt mir weiterhelfen.
Habe im Internet diese Möglichkeit gefunden mit einer Siemens SPS zu kommunizieren:

https://www.traeger.de/softwaretreiber-simatic-s7/pc-und-s7-mit-tcp-ip-verbinden-ip-s7-link.html

Die Codes sind ziemlich einfach um eine einfache Kommunikation zu testen.
Leider funktioniert das bei mir nicht wenn ich die Kommunikation an einer Simulierten SPS via PLC SIM im TIA Portal V 13 durchführe.

Bekomme bei folgendem Code die Fehlermeldung "The specified CPU could not be found.":

SiemensDevice device = new SiemensDevice(new IPDeviceEndPoint("192.168.183.200"), SiemensDeviceType.S71500);
PlcDeviceConnection connection = device.CreateConnection();
connection.Open();
string message = connection.ReadInt16("DB1.DBW2").ToString();
label1.Text = message;

Leider weiß ich nicht was ich da verkehrt mache, es sollte eigentlich funktionieren.

Was muss ich bei den Einstellungen beachten?

Ich habe mich an die Anleitung bezüglich der Einstellungen auf der Seite gehalten, leider ohne Erfolg.

Desweiteren habe ich den Zugang mittels LibNoDave ausprobiert siehe Code:

    class SiemensSPS
    {
        public static libnodave.daveOSserialType fds;
        public static libnodave.daveInterface di;
        public static libnodave.daveConnection dc;
        public static int res;
        public static byte plcValue;
        public static int memoryRes;
        public static byte[] memoryBuffer = new byte[10];


        public static void connectTo()
        {
            fds.rfd = libnodave.openSocket(102, "192.168.183.200");
            fds.wfd = fds.rfd;
            di = new libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);
            res = di.initAdapter();
            dc = new libnodave.daveConnection(di, 0, 0, 2);
            res = dc.connectPLC();
            memoryRes = dc.readBytes(libnodave.daveFlags, 1, 0, 1, memoryBuffer);
            plcValue = memoryBuffer[0];
            dc.disconnectPLC();
            di.disconnectAdapter();
            libnodave.closePort(fds.rfd);
        }


    }

und

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }


        private void timer1_Tick(object sender, EventArgs e)
        {
            SiemensSPS.connectTo();
            label1.Text = SiemensSPS.plcValue.ToString();
        }

Dabei bekomme ich folgenden Fehler:

Die DLL "libnodave.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.


Ich weiß nicht weiter wo meine Fehler liegen besonders bei LibNoDave da sollte es doch gehen.


Ist bei den 1500 S7 Steuerungen überhaubt ein Zugang möglich wenn ja bitte um eure Hilfe.

Viele Grüße


----------



## ChristophD (27 Oktober 2015)

Hi,

wenn ich das auf der Seite richtig lese dann geht das mit PLCSIM nicht.
Die SW versuchen eine TCP/IP Verbindung zur Steuerung aufzubauen, bei PLCSIM gibt es das aber nicht da die verwendete Schnittstelle der CPU eine rein virtuelle Verbindung zwischen der SIEMENS SW und der simulierten CPU darstellt und
nicht von extern zugreifbar ist.
Da müsste man zu sowas wie Net2PLCSIM greifen um darüber eventuell einen Zugang zu bekommen.

Auf der verlinkten Seite steht auch was du für die S7-1500 einstellen musst damit der Zugriff dann auch klappt (keine optimierten Bausteinezugriffe, PUT/GET aktivier).

Gruß
Christoph


----------



## mkRE (27 Oktober 2015)

ChristophD schrieb:


> Hi,
> 
> wenn ich das auf der Seite richtig lese dann geht das mit PLCSIM nicht.
> Die SW versuchen eine TCP/IP Verbindung zur Steuerung aufzubauen, bei PLCSIM gibt es das aber nicht da die verwendete Schnittstelle der CPU eine rein virtuelle Verbindung zwischen der SIEMENS SW und der simulierten CPU darstellt und
> ...


Hallo ChristophD, 

ok das habe ich bei dem link nicht gesehen schaue gleich mal nach.Anderseits kann ich mir trotzdem nicht erklären warum ich nicht mit libnodave zugreifen kann bei PLC SIM wird wohl der selbe Grund sein.

Aber bei Youtube findet man viele Videos wo die leute das präsentieren mit einer SimPlc zu kommunizieren.

Gruss

Gesendet von meinem D5803 mit Tapatalk


----------



## ChristophD (27 Oktober 2015)

Hi,

nun wie gesagt mit der erweiterung net2PLCSim kann man ja zugriff von extern bekommen.
Auch libnodave geht erstmal von einer physikalisch vorhandenen CPU aus.
Frage ist auch welche CPU in den Videos simuliert wird, es gibt zwei unterschiedliche PLCSIM Varianten, einmal für S7-300/S7-400 das PLCSIM V5.x und einmal für S7-1200/S7-1500 das PLCSIM V1x.
Die Unterstützung für PLCSIM V5.x ist wesentlich größer da auch schon länger am Markt, aber nicht alles was bei PLCSIM V5.x möglich ist geht auch bei PLCSIM V1x!

Gruß
Christoph


----------



## Thomas_v2.1 (27 Oktober 2015)

Nettoplcsim funktioniert aktuell nicht mit Plcsim für die S7-1500/1200.

Es könnte theoretisch mal möglich sein, da das Prinzip was ich bei Nettoplcsim verwende immer noch möglich ist, aber ich habe es bisher noch nicht hinbekommen.


----------



## mkRE (27 Oktober 2015)

Hallo zusammen, danke für die Antworten.
In den Videos war noch der klassische PLC Sim zu sehen, dann wird es wohl so sein wie du Christoph beschrieben hast.
Wenn ich jetzt noch Thomas meinung betrachte, dann bin ich traurig, da ich im Tia Portal sozusagen nichts testen kann bzw. ohne richtiger HW keine Möglichkeit habe.
Ich wollte eifach schon mal kommunikationen zu den neuen SPS Typen ausprobieren. 

Habt ihr noch ideen? Am liebsten wärs mir doch mit LibNoDave ohne kommerzielle Treiber.



Viele Grüße


----------

