509 Kommunikationsfehler mit CP5611 A2
Moderatoren: Matthias, Weiss_MHJ
509 Kommunikationsfehler mit CP5611 A2
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?
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?
Re: 509 Kommunikationsfehler mit CP5611 A2
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ß
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ß
Re: 509 Kommunikationsfehler mit CP5611 A2
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
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
Re: 509 Kommunikationsfehler mit CP5611 A2
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ß
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ß
Re: 509 Kommunikationsfehler mit CP5611 A2
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ß
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ß
Re: 509 Kommunikationsfehler mit CP5611 A2
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ß
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ß
Re: 509 Kommunikationsfehler mit CP5611 A2
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.
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.
Re: 509 Kommunikationsfehler mit CP5611 A2
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ß
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ß