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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 38

Thema: ADS-protokoll in Python 2.7 implementieren

  1. #11
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    fettes Dankeschön, das du deine Arbeit hier offen legst.

    Leider funktioniert auch hiermit die Kommunikation mit meinem CX im Keller nicht.
    Kommt ebenfalls wie bei meinem selbstbau Client (in C) error "Connection reset by peer" zurück.

    Das muss dann also noch ein anderes Problem sein.

    Wollte dir gestern schon auf die PN antworten. Aber irgendwie muss die Session gestorben sein.
    Bei mir sieht es so aus, das die SPS keine Pakete bekommt. Wenn ich den AMSLogger/Viewer laufen lasse wird da kein Paket gemeldet.
    Mit Wireshark sehe ich zwar Pakete aber die kommen wohl nicht durch.

    Evtl. liegt es doch noch an falschen ADS-Routen, aber eigentlich sollten die passen.
    Werde mal vom Windows aus (wo ja auch TwinCat sauber läuft) über dein Python client versuchen. Hier sollte das Thema Routen keine Rolle spielen / passen.

    Gruß ohm200x
    --
    ohm200x

  2. #12
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard

    Hi,

    QED: Was zu beweisen war.
    Mit deinem Client von der XP Installation aus klappt der Zugriff auf meinen CX im Keller. Hier tauchen auch im AMS Logger/Viewer Pakete auf.
    Irgendwas verbiegt das OS X im IP-Stack. Wie auch schon mal geschrieben sind meine IP-Pakete vom Mac aus länger, als wenn sie von Windoze kommen. Der AMS-Teil ist zwar in beiden ident, aber davor passt was nicht und das stört den CX wohl.

    Nächster Test heute Abend: Ne Linux-Kiste im Haus.
    Sollte dazu allerdings schon mal wer ne Idee haben, nur zu.

    Gruß ohm200x
    --
    ohm200x

  3. #13
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Also ich kann den Python-Client von Window7 aus problemlos betreiben. Mit einem Progamm cport von Nirsoft.net hab ich geschaut, ob der Port von Twincat auf dem Twincat-PC existiert. Dann habe ich mein AMS-Packet ohne den TCP-Teil ausgebeben:

    Hier für ADSCmdReadDeviceInfo (InvokeID=1, Offsets Dezimal):

    00: 00 00 20 00 00 00 0A 05
    08: 06 1F 01 01 21 03 C0 A8
    16: 89 32 01 01 21 03 01 00
    24: 04 00 00 00 00 00 00 00
    32: 00 00 01 00 00 00

    Der Request ist 38 bytes gross.

    Das solltest du auch in Wireshark sehen. Das OS spielt keine Rolle. Hol dir mal Python von Python.org Version 2.73 und starte mal das Script.

  4. #14
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard

    Moin,

    hab das eben mal schnell auf ner (headless) Linux-Kiste probiert.
    Hab da leider kein Wireshark drauf und es ist wie immer kurz vor der Arbeit.
    Werde heute Abend nochmal mit tcpdump den Verkehr mitschneiden.

    Aber es verhält sich hier genauso wie mit meinem Macbook. Connection reset by peer. und im ADS/AMS Logger/Viewer des CX taucht nichts auf.

    Man könnte meinen Beckhoff hätte das Protokoll zwar offen gelegt, aber fern von Windows nie getestet.
    Ich melde mich wieder.

    Gruß ohm200x
    --
    ohm200x

  5. #15
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Ich würde da Beckhoff nicht beschuldigen. Es ist in der Regel das eigene Brett vor dem Kopf

  6. #16
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 63 Danke für 62 Beiträge

    Standard

    Habt Ihr denn auch auf dem Gerät die Route mit AMS Net ID und IP-Adresse eingetragen?

  7. #17
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard

    Hi,

    sicher soll man erst den Balken vorm Kopf nehmen, bevor man dem anderen den Splitter aus dem Auge nimmt.

    Aber seltsam ist es schon das ein Python Script auf 2 (nicht Windows) Kisten nicht geht und auf einem (Windows) tut.
    Wo nun mal TwinCat für "Total Windows Control and Automation Technology" steht.
    Wenn ich mir z.B. das ADS Protokoll ansehe und du ja selbst meintest, komisch das sie für ihre längen die Intel-Byte-Order für hernehmen, anstatt konsequent die Netzwerk-Byte-Order frage ich mich schon ob Beckhoff selbst das schon mal fern der Windows Insel getestet hat.
    Müssen sie ja an sich nicht. Ihre Systeme laufen ja durchweg auf Windows, sei es NT, 2000, ..... Win7 oder eben WinCE5.... .

    Gruß ohm200x
    --
    ohm200x

  8. #18
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard

    Hi,

    zurück zum Thema.

    Auf weder meinem MacBook, noch der Linux-Büchse habe ich net ADS-Route eingetragen, kann ich ja auch nicht.
    Läuft a) kein Windows drauf und daher b) kein ADS-Router.

    Ich habe jedoch mein Macbook als ADS-Teilnehmer im ADS-Router des CX eingetragen.
    Die Linux-Büchse heute früh noch nicht, werde ich im nächsten Schritt noch machen.

    Aber unabhängig davon sollte ich auf dem ADS/AMS Logger / Viewer auf dem CX zumindest meinen Request als Paket eintrudeln sehen.
    Dass der CX die Response dazu ggf. nicht los werden kann, weil er nicht weiß wohin sollte ein zweites Problem sein.
    Oder sehe ich das falsch?

    Dass drfunfrock's client geht scheint ja bewiesen zu sein. Sonst hätte er den Code (noch) nicht offengelegt.
    Und bei mir geht's ja unter Windows auch. Da das ding in Python geschrieben ist, erwarte ich als Anwender erst mal keine Probleme, wenn ich das auf nem andern System ausführe. Zumal ja in Wireshark der ADS-Teil von beiden PCs aus identisch aus schaut.

    Gruß ohm200x
    --
    ohm200x

  9. #19
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard

    Moin,


    Nachtrag:
    Route für die Linux-Kiste ebenfalls im ADS-Router des CX eingetragen. Bringt aber nichts.
    Im ADS Logger des CX taucht die Anfrage nie auf.


    Hab mal drei Wireshark / tcpdump Logs angehängt. Vom Mac, von Linux und von Windows. jedesmal der Python Client von drfunfrock.
    Was mich wundert, was ich mit drfunfrock schon zuvor mal diskutiert hatte, der ADS-Teils ist in allen drei Anfragen gleich groß, 38 Bytes, wie sie sein soll. Die Länge des TCP Paketes ist bei windows nur 92 Bytes lang, bei den anderen beiden Rechner sind es 104 Bytes.


    Zumindest laut Wireshark sind die Pakete allesamt gültig, es scheint aber der TCP-Stack des CX verwirft die Pakete bzw beendet beim "read" den Socket, daher auch keine ADS-Pakete im ADS Logger/Viewer.


    Evtl. könnt ihr ja anhand der Logs was erkennen, was ich gerade übersehe.


    Danke im Voraus.


    Gruß ohm200x

    logs.zip
    --
    ohm200x

  10. #20
    Registriert seit
    27.11.2009
    Ort
    BW - Ecke Ulm
    Beiträge
    438
    Danke
    135
    Erhielt 36 Danke für 33 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hello again,

    so letztes Update und dann geht's ins Bett.
    Warum die Pakete vom Mac und Linux 12 Bytes länger waren:
    TCP RFC1323 "TCP Extensions for High Performance". Am Ende des TCP Packets waren noch 2 Bytes padding plus 10 Bytes Options dran.
    Habe das erfolgreich am Mac und am Linux-PC temporär abgeschaltet. und .... tata. Das wars leider auch nicht.

    Nun sind aber alle meine Pakete identisch und trotzdem verweigert der CX die Kommunikation mit nicht Windows-PCs

    Falls dazu einer noch Ideen hat bin ich dankbar.

    Gruß ohm200x
    --
    ohm200x

Ähnliche Themen

  1. Matlab Code auf S7 implementieren
    Von T-Rex22 im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 22.11.2011, 09:07
  2. Offenes ADS Protokoll
    Von s.murauer im Forum CODESYS und IEC61131
    Antworten: 17
    Letzter Beitrag: 19.09.2011, 07:50
  3. ADS Protokoll in Visual Studio 08
    Von td97 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 17.03.2009, 21:07
  4. SM331 implementieren HILFE
    Von BOBZ im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 18.01.2007, 13:52
  5. Beckhoff ADS-Protokoll
    Von drfunfrock im Forum Feldbusse
    Antworten: 5
    Letzter Beitrag: 01.07.2005, 17:01

Lesezeichen

Berechtigungen

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