509 Kommunikationsfehler mit CP5611 A2

Alles zum Kommunikationstreiber ComDrvS7

Moderatoren: Matthias, Weiss_MHJ

Antworten
leo
SPSTreff-User
Beiträge: 4
Registriert: 13 Dez 2024, 13:40

509 Kommunikationsfehler mit CP5611 A2

Beitrag von leo »

Hallo,

Ich möchte ComDrvS7-V6 verwenden, um CP5611 A2 PROFIBUS-Karten mit C# zu verbinden und Datenbausteine von SPS lesen.

Ich kann eine PG/PC-Verbindung mit den CP5611-Karten konfigurieren und mit ihnen mit SINAMICS STARTER oder ACCON-AGLinn-Treiber arbeiten, aber beim Aufruf von „MPI6_Open_SimaticNet(out error)“ erhalte ich eine Fehlermeldung:

509 Kommunikationsfehler ist aufgetreten.

Unbehandelte Ausnahme: MHJSW.ComDrvS7V6_Net.ComDrvS7Exception: Kommunikation muss zuerst hergestellt werden

Ich habe die Treiber von SIMATIC NET V14 SP1 installiert, die .Net-DLL mit dem Visual Studio-Projekt-Verweise verknüpft und die anderen DLLs im Ordner /x86/Debug/bin/ abgelegt.

Gibt es Hinweise, wie man die Schnittstelle zum Laufen bekommt?

Benutzeravatar
Weiss_MHJ
Site Admin
Beiträge: 687
Registriert: 13 Apr 2010, 16:34
Kontaktdaten:

Re: 509 Kommunikationsfehler mit CP5611 A2

Beitrag von Weiss_MHJ »

Hallo,

damit ComDrvS7 die Simatic Net Schnittstelle verwenden kann, ist es notwendig, dass der Dialog „PG/PC-Schnittstelle einstellen“ auf dem PC vorhanden ist. Ist dies der Fall, dann muss der Zugangspunkt der Applikation auf „S7ONLINE (STEP7)“ eingestellt sein, gefolgt von Ihrem CP5611. Die Parametereinstellungen des CPs müssen ebenfalls auf diesem Dialog vorgenommen werden. Des Weiteren sollte nicht der Treiber mit dem Zusatz „Auto“ verwendet werden, welcher die Baudrate selbst ermittelt.

Gruß

leo
SPSTreff-User
Beiträge: 4
Registriert: 13 Dez 2024, 13:40

Re: 509 Kommunikationsfehler mit CP5611 A2

Beitrag von leo »

Hallo und danke - das hat geklappt!

Ich kämpfe immer noch mit der Funktion OpenTcpIP(_2/_3)(). Beim Aufruf kriegich die Fehlermeldung "585 setsocketopt".

Muss der Netzwerkadapter auch in den PG-PC-Schnittsteleinstellungen konfiguriert werden? Das habe ich versucht, aber ohne Erfolg.

Grüße

Benutzeravatar
Weiss_MHJ
Site Admin
Beiträge: 687
Registriert: 13 Apr 2010, 16:34
Kontaktdaten:

Re: 509 Kommunikationsfehler mit CP5611 A2

Beitrag von Weiss_MHJ »

Hallo,

nein, die Funktionen MPI6_OpenTcpIp haben mit Simatic Net nichts zu tun.

Die OpenTcpIp-Funktionen können normalerweise erfolgreich ausgeführt werden, wenn die in der Funktion angegebene IP-Adresse erreichbar ist.
Falls mehrere Netzwerkkarten im PC vorhanden sind, sollte die Funktion MPI6_OpenTcpIpExt_3 verwendet werden, dort kann dann die für die Kommunikation zu verwendende Netzwerkkarte über deren IP-Adresse explizit angegeben werden.

Gruß

leo
SPSTreff-User
Beiträge: 4
Registriert: 13 Dez 2024, 13:40

Re: 509 Kommunikationsfehler mit CP5611 A2

Beitrag von leo »

Hallo und Vielen Dank für die Klarstellung.

Ich habe mich immer noch gefragt, ob es etwas Besonderes zu beachten gibt, wenn ich sowohl MPI6_Open_SimaticNet() als auch MPI6_Open_TcpIp() von derselben Instanz aus aufrufen möchte. Die .NET-Klasse hat keinen Handle zum Aufrufen separater Instanzen wie die anderen Bibliotheken.

Ich kann mit MPI6_Open_SimaticNet() erfolgreich mehrere Male eine Verbindung herstellen und trennen, aber ich scheine nur einmal eine Verbindung mit OpenTcpIp() herstellen zu können, aber der zweite Verbindungsversuch (nach dem Aufruf von MPI6_CloseCommunication) schlägt fehl.

Gruß

Benutzeravatar
Weiss_MHJ
Site Admin
Beiträge: 687
Registriert: 13 Apr 2010, 16:34
Kontaktdaten:

Re: 509 Kommunikationsfehler mit CP5611 A2

Beitrag von Weiss_MHJ »

Hallo,

eine Instanz verwaltet die Kommunikation zu einer CPU über einen Kommunikationsweg.
Wenn ein zweiter Kommunikationsweg zu einer weiteren CPU (oder der gleichen CPU) gewünscht ist, dann muss dies über eine zweite Instanz erfolgen.

Gruß

leo
SPSTreff-User
Beiträge: 4
Registriert: 13 Dez 2024, 13:40

Re: 509 Kommunikationsfehler mit CP5611 A2

Beitrag von leo »

Hallo.

Wenn ich in meiner App, die erfolgreich mit CP5611 / SIMATIC NET funktioniert, nur die Funktion MPI6_OpenSimaticNet() durch MPI6_OpenTcpIp_Ext3() ersetze, ohne weitere Änderungen, schlägt der zweite Verbindungsversuch fehl.

Es gibt keine Fehlermeldungen bei den Verbindungsfunktionen und die Verbindung scheint hergestellt zu sein, aber MPI6_MixWrite_2() gibt 509 zurück und „Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.“

Bei SIMATIC NET ist das nicht der Fall, weshalb ich mich frage, was hier der entscheidende Unterschied ist.

Benutzeravatar
Weiss_MHJ
Site Admin
Beiträge: 687
Registriert: 13 Apr 2010, 16:34
Kontaktdaten:

Re: 509 Kommunikationsfehler mit CP5611 A2

Beitrag von Weiss_MHJ »

Hallo,

eine Open-Funktion einer Instanz sollte nur aufgerufen werden, wenn noch keine Verbindung zu einer CPU besteht. Wenn also eine vorhandene Verbindung über MPI6_CloseCommunication beendet wurde, dann kann wiederum eine Open-Funktion aufgerufen werden um eine neue Verbindung aufzubauen.
Soll eine zweite Verbindung (parallel) aufgebaut werden, dann ist dies mit einer weiteren Instanz zu tun.
Wenn Sie dies nicht tun, dann wird es zu einem Fehler kommen, da für jeden Kommunikationskanal eigene interne Zähler benötigt werden.

Gruß

Antworten