Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Beckhoff ADS.dll: Beckhoff Beispiel geht - Code übernommen - geht nicht mehr?!

  1. #1
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin zusammen,

    ich habe folgendes Problem bei der Kommunikation zwischen PC mit TC-Runtime und einem PC zum "Daten loggen" via ADS.dll:
    Beckhoff liefert ja ein einwandfreies VB.Net Beispiel für die ADS-Kommunikation ("Sample03") incl. passendem SPS-Programm. Mit diesem Beispiel funktioniert die Kommunikation einwandfrei. Selbst wenn ich die vordefinierten Daten in dem .Net-Beispiel auf mein richtiges SPS-Programm ändere geht alles.
    Übernehme ich allerdings den Quellcode aus dem .Net-Beispiel in meine .Net-Anwendung geht irgendwie nichts mehr.
    Zwar kann ich eine Verbindung zur Runtime aufbauen, erhalte auch direkt nach dem Start noch die ersten AdsNotifications mit dem Status meiner Variablen, danach kommt bei Wert-Änderung jedoch nichts mehr an. Ich verstehe das nicht, selbst wenn ich den kompletten Code aus dem Beispiel per Copy&Paste in ein neues .Net-Projekt übernehme habe ich dieses Phänomen.

    Kann mir vielleicht jemand auf die Sprünge helfen woran es liegen könnte?


    Vielen Dank und viele Grüße
    Mike
    Zitieren Zitieren Beckhoff ADS.dll: Beckhoff Beispiel geht - Code übernommen - geht nicht mehr?!  

  2. #2
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard

    Ist das neue .Net Projekt vielleicht ein Konsolenanwendung? Dann muss die Eigenschaft TcAdsClient.Synchronize auf false gesetzt werden.

    Gruß
    witkatz

  3. #3
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Hi,

    also damit hängt es nicht zusammen.
    Ich konnte allerdings folgendes feststellen:
    • wenn ich mein .Net Projekt direkt nach Neustart des Rechners starte, funktioniert es.
    • öffne ich PLC-Control oder den System-Manager geht es nicht mehr (auch wenn ich mit PLC nicht mal online gewesen bin).
    • schließe ich die Programme, klappt auch die Verbindung wieder.

    kann damit vielleicht jemand etwas anfangen?! Gibt es ggf. irgendwelche Einstellungen die den Zugriff steuern?
    (PS: bin kein Profi in Sachen Beckhoff/TwinCat - es könnten also auch "grundlegende" Dinge sein...)


    Viele Grüße
    Mike

  4. #4
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard

    Es scheint dass nur ein Port zulässig ist, könnte es sein dass das TwinCAT System in Stop oder gar nicht gestartet ist und die ganze Kommunikation über die TcAdsDll abgewickelt wird? Die TcAdsDll hat nämlich eine Begrenzung auf einen Port.

  5. #5
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Wie in Stop?! Im System-Manager bekomme ich unten rechts die IP meines Ziel-Systems angezeigt (rot hinterlegt) und daneben steht "Echtzeit 5%" (grün hinterlegt).
    Wie gesagt, das Beckhoff-Beispiel funktioniert ja auch einwandfrei. Ich verstehe aber nicht, warum genau dieser Code in einem anderen Projekt nicht mehr geht. Es müsste demnach irgend eine Grundeinstellung in Visual Studio für das Projekt sein...?

    Viele Grüße
    Mike
    Denken Sie an Ihre Verantwortung gegenüber der Umwelt und bringen Sie ungenutzten Quellcode an die dafür vorgesehen Sammelstellen.
    Datenmüll gehört ich in die Bio-Tonne!

  6. #6
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard

    Welchen Verweis auf TcAdsNet Assembly hast du in die neue Anwendung zugefügt? Ist das der gleiche wie im Beckhoff-Beispiel?
    Hast du die Anwendung mit einem älteren .Net Framework auch getestet? Welches .Net Framework wird denn im Beckhoff-Beispiel verwendet?

    Zitat Zitat von MikeJ Beitrag anzeigen
    Wie in Stop?! Im System-Manager bekomme ich unten rechts die IP meines Ziel-Systems angezeigt (rot hinterlegt) und daneben steht "Echtzeit 5%" (grün hinterlegt).
    Zielsystem ist grün, das ist super. Aber in welchem Zustand ist dein lokales System und damit der Router, auch grün oder blau?
    Geändert von witkatz (13.11.2013 um 23:17 Uhr)

  7. Folgender Benutzer sagt Danke zu witkatz für den nützlichen Beitrag:

    MikeJ (14.11.2013)

  8. #7
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Hi,

    also das Framework hatte ich auch schon in Verdacht, ich nutze 4.0, Beispiel war 2.0. Aber das Beispiel geht auch mit 4.0 und wenn ich meines auf 2.0 umstelle ändert sich auch nichts. DLL-Verweis ist der selbe.
    Ich scheine da allerdings 2 Probleme zu haben:
    1) Netzwerkeinstellungen:
    Mein Rechner und das Laufzeitsystem sind per Kabel miteinander verbunden.

    Mein Rechner: Laufzeit-System:
    IP: 192.168.10.19 192.168.10.20
    Subnet-Mask: 255.255.255.0 255.255.255.0
    Gateway: kein Eintrag kein Eintrag

    DNS: kein Eintrag kein Eintrag


    Ich habe inzwischen festgestellt, dass wenn ich mit meinem lokalen Rechner keine weitere Netzwerkverbindung eingehe, scheitern beide Programme (sowohl meins, als auch das Beckhoff-Beispiel) am Befehl "AddDeviceNotification" mit einem Timeout.
    Gehe ich mit meinem Rechner z.B. per W-Lan eine Internetverbindung ein (über DHCP) geht auch die Verbindung zur Laufzeit, obwohl das Laufzeitsystem definitiv nicht am W-Lan hängt. Kann das mit der fehlenden Gateway/DNS-Einstellung bei meiner Kabel-Verbindung zu tun haben?

    2) Wenn ich das W-Lan mal an lasse und eine Verbindung aufbauen kann, unterscheiden sich mein Programm und das Beckhoff-Beispiel nur noch darin, dass mein Programm die Verbindung zur Laufzeit "beendet" sobald ich lokal noch PLC Control öffne (ohne online zu gehen). Ich bekomme zwar keinen Fehler und auch kein "OnStateChenged" von der Laufzeit, jedoch werden auch keine Notifications mehr gesendet.
    Beim Beckhoff-Beispiel kann ich sogar mit dem PLC Control online gehen und es läuft weiter.


    Mein lokales System ist im Konfig-Mode, also blau - das bezieht sich doch aber auf die Laufzeit auf meinem lokalen Rechner, oder?! (Run geht bei mir nicht, da ich ein 64Bit Betriebssystem habe).


    Viele Grüße
    Mike
    Denken Sie an Ihre Verantwortung gegenüber der Umwelt und bringen Sie ungenutzten Quellcode an die dafür vorgesehen Sammelstellen.
    Datenmüll gehört ich in die Bio-Tonne!

  9. #8
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard

    Wenn dein lokales TwinCAT System in Config Mode ist (blau) dann ist der Router gestartet und die TwinCAT System sollten miteinander kommunizieren.
    In der Firewall sollten die ADS Ports 48898 TCP und 48899 UDP freigegeben werden.
    Hat deine Maschine vielleicht mehrere IP Adressen? Welche Netzwerk-Adresse ist in der Route auf dem Laufzeitsystem eingetragen?

  10. #9
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Ok, die Firewall habe ich nun mal eingestellt, hier war noch nichts freigegeben.
    Auch gab es auf dem Laufzeitsystem noch einen Netzwerkanschluss, welchen ich nun mal deaktiviert habe.
    Jetzt ist es zumindest schon mal so, dass ich eine Verbindung zur Laufzeit ohne zusätzliche W-Lan Verbindung hin bekomme


    Folgende Einstellungen sind im Laufzeitsystem hinterlegt:Laufzeit.GIF


    Jetzt gilt es nur noch herauszufinden, warum das Beckhoff-Beispiel bei gleichzeitiger PLC-Control-Verbindung weiter läuft, während mein Programm nach ein paar Sekunden kapituliert.
    Denken Sie an Ihre Verantwortung gegenüber der Umwelt und bringen Sie ungenutzten Quellcode an die dafür vorgesehen Sammelstellen.
    Datenmüll gehört ich in die Bio-Tonne!

  11. #10
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Für eine Analyse des Datenverkehrs könnte man ein Netzwerk Analyse-Tool wie Wireshark oder auch den Ads Monitor von Beckhoff bemühen.

Ähnliche Themen

  1. C# Netzwerk ADS Beckhoff geht nicht
    Von eloboy im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 10.10.2013, 00:34
  2. Beckhoff ADS.Net DLL und C#
    Von Majestic_1987 im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 09.12.2009, 12:29
  3. Kanalumschaltung geht nicht mehr
    Von Kipfle im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 20.10.2008, 11:09
  4. Beckhoff - Problem mit ADS-DLL (Visual c++)
    Von Beta6 im Forum CODESYS und IEC61131
    Antworten: 15
    Letzter Beitrag: 16.10.2008, 17:24
  5. InTouch 9.0 geht nicht mehr
    Von Hubbl-e im Forum PC- und Netzwerktechnik
    Antworten: 0
    Letzter Beitrag: 22.02.2007, 19:35

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •