Ethernet Ip Probleme mit EDS File

Gast #6578448
Lesenswert?

Guten Tag,
ich weiß nicht in welche Kategorie das Thema EhernetIP dazu passt.
Bzw wo zu SPS Programmierung gehört.
Ich möchte Mit einer SPS auf der Codesys 3.5 läuft per Ethernet Ip 
Scanner Daten von einer Pilz Sicherheit SPS auslesen. Dazu habe ich das 
EDS File von Pilz in meiner Codesys Sps eingebunden. Leider kommt aber 
trotz dieser EDS  zu keiner Kommunikation.Wenn ich das selbe mit einer 
Omron SPS und deren proprietäre Entwicklungsumgebung mache kann ich die 
Daten der Pilz SPS austauschen. Hat jemand einen Tipp wie ich dem Fehler 
auf die Schliche komme?
Mein Verdacht ist das der Verbindungspfad des Ethernet IP Scanners auf 
Codesys Seite falsch aus dem EDS file geparst wird.
Kann man das per Wiresharke mit lesen?
Danke für die Hilfe
#6578528
Lesenswert?

Hallo Voltaren,

Wireshark kann die EtherNet/IP Kommunikation interpretieren und gibt dir 
Klartext.
Problem kann der Anschluss des Wireshark Rechners sein. Du musst 
sicherstellen, dass die EtherNet/IP Telegramme in beiden Richtungen 
aufgezeichnet werden. Möglichkeiten sind z.B. ein managed Switch mit 
Monitor Port, ein Ethernet Analyzer Tap (z.B.Hilscher oder Beckhof) oder 
evtl ein alter Ethernet Hub.
Die Wireshark Aufzeichnung sollte laufen bevor der EtherNet/IP Scanner 
die Verbindung aufbaut (mit Forward Open).
Ich vermute du willst die Daten mit IO Kommunikation lesen. Ein häufiger 
Fehler ist eine falsche Länge der verwendeten Assemblies.
Wenn du die Kommunikation aufgezeichnet hast kann ich dir gerne 
weiterhelfen.
(Bin zwar seit 4 Jahren im Ruhestand, davor aber intensiv mit 
verschiedenen Feldbussen befasst)
Du solltest zum Vergleich auch die funktionierende OMRON Kommunikation 
aufzeichnen.

Gruß
Ulrich
Gast #6578659
Lesenswert?

Ulrich K. schrieb:
> Hallo Voltaren,
>
> offensichtlich kann deine SPS Software das EDS nicht nutzen.
> Kannst du die Daten aus der OMRON Konfiguration (Assembly Informationen
> und Größen) nehmen und bei deiner Software manuell eingeben?
>
> Gruß
> Ulrich
Hallo Ulrich
Ne leider nicht die Omron schluckt das EDS und gut ist.
Gast #6578692
Lesenswert?

Es könnte ja das EDS-File nicht "100%-validity" sein.
Schon einmal mit z.B. CANchkEDS getestet?

Ist das EDS nicht auch nicht nur XML, da kann man doch
"reingucken" und ggf. das händisch lesen und eingeben oder
sogar dort abändern?
:-)
Gast #6578857
Lesenswert?

Nun, lesbar ist ja die Datei.
Aber, die ist Version: v.3.x
Stand deren Software-Entwicklung: ca. 2011 max. 2012
Die Datei selbst ist von 2013.

Mit viel Glück bekommst Du die damit in ein Codesys von
2011/2012/2013 eingelesen, für neuere sehe ich das so
schon nicht mehr.

Vor langer Zeit bin ich da einmal über so etwas dazu
gestolpert:
>
> [Da die eds-Datei] AUS ZEITEN VON CANopen DS301 V3 stammt;
> aus diesem Grund fehlen im Objekt-Dictionary (und damit auch
> in den EDS-Dateien) einige Objekte, die in CANopen DS301 V4
> als "mandatory" gekennzeichnet sind.
>
CANopen ist nicht EhernetIP, aber die Probleme mit den
esd-Dateien sind da ähnlich bis gleich.

ez-eds sagt viele Sachen an, eine ggf. wichtige ist oben im
Bild bei Port1 zu sehen.
Lade Dir ez-esd runter und lese Deine alte esd-Datei dort ein,
und speicher einmal das Eingelesene ab, ez-eds setzt fast alle
fehlende Daten selbst.
ggf. hilft das schon, wenn Du die dann neue Datei in Dein
Codesys einspielst.

Ansonst sehe ich nur selbsteingeben oder eben von
Codesys 2011/12 bis Codesys 2021 "hochupdaten".

ez-eds
https://www.odva.org/subscriptions-services/software/ez-eds-download/
Angehängte Dateien:
Gast #6579005
Lesenswert?

Viele Fehler sind nur Warnungen, ob das Codesys das
auch so sieht, mußt Du eben testen.

Die fehlenden Einträge bei Port1 mußt Du wohl auch
händisch ergänzen, nimm Deine andere funktionierende
EDS-Datei als Muster.
Ist denn Dein Codesys auf dem z.Z. letzten Patch-Stand?

Ansonst eben mit der gewandelten Pilz-EDS-Datei als
Vorlage die Daten händisch als generisch in Codesys
eingeben.
Möglich auch, daß durch das erste Einspielen der alten
Pilz-EDS-Datei Dein Codesys-Projekt jetzt einen Projekt-
Fehler hat, der auch mit der neuen Pilz-Datei nicht
behebbar ist, nimm einen Stand vor dem aller ersten
einspielen.
Probiere alte Codesys-Versionen oder/und "hochupdaten",
vereinzel Dein Codesys-Projekt soweit, daß Du überhaupt
siehst, ob es mit der Pilz-SPS kommuniziert,
Prüfe Dein Codesys-Projekt, ggf. sitzt der Fehler schon
da, ohne EDS-Datei...
"Wiresharke" die funktionierende Verbindung mit
der Omron SPS wurde auch schon genannt
Es gibt sicherlich viele weitere Möglichkeiten, wir haben
hier nur Deine eher lauen Textmitteilungen...
Gast #6579353
Lesenswert?

rdp schrieb:
> Die fehlenden Einträge bei Port1 mußt Du wohl auch
> händisch ergänzen, nimm Deine andere funktionierende
> EDS-Datei als Muster.
> Ist denn Dein Codesys auf dem z.Z. letzten Patch-Stand?

Guten Morgen ja mein Codesys ist aktuell. Habe auch kein älteres Target 
für diese SPS.

Gibt es Windows Software einen Ethernet Scanner zu simulieren?
Denn da wäre das mit hören mit Wiresharke einfacher.

Das Codesys Projekt kann ich laden und der rest funktioniert.
Andere Geräte kann ich ja auslesen. Nur bei Pilz eiert es.
Ich würde ja gern mehr Infos geben aber ich weiß leider keine:-(!
Gast #6579832
Lesenswert?

Guten Tag,
habe jetzt einen Switch mit Mirroring Funktion zwischen den zwei Geräten 
gesteckt.
Habe Wireshark gestartet und schaue nun wie das Schwein ins Uhrwerk.
Wie kann ich jetzt das ganze analysieren?
Danke für die Hilfe.
#6579863
Lesenswert?

Hallo Voltaren,

ich hab dir mal eine Wireshark Logdatei angehängt mit einem EIP 
Beispiel. Der Frame #4 ist der Forward Open (Verbindungsaufbau) des 
Scanners.
Diesen Frame musst du in deiner Wireshark Aufzeichnung finden (filtern 
nach Protocol = CIP CM).
Ich bin mir allerdings nicht sicher ob dein Scanner überhaupt einen 
Forward Open sendet wegen fehlerhafter Konfiguration.
Du kannst mir aber gerne ein PCAP File schicken und ich schaue es mal 
an.

Wenn du in meinem File Frame #4 öffnest, kannst du die verschiedenen CIP 
Ebenen aufklappen. Unter dem letzten Punkt: Connection Manager findest 
du all die Daten die eigentlich aus dem EDS File kommen sollten.

Gruß
Ulrich
Angehängte Dateien:
Gast #6579916
Lesenswert?

Hallo Ulrich,
danke für deine Hilfe. Ich habe mit Wireshark noch nie gearbeitet:(
Anbei mal eine Datei. Ich hoffe ich habe es richtig gemacht.
Hättest du vielleicht Lust per Teamviewer oder sowas einen Blick drauf 
zu werfen?
Würde in Bier bezahlen.....
Angehängte Dateien:
#6579978
Lesenswert?

Hallo Voltaren,

wie schon gesagt, ich bin seit 4 Jahren raus aus dem Thema und merke 
gerade wie schnell man in meinem Alter Dinge vergisst.
In deinem PCAP siehst du den Forward Open des Scanner in Frame #3 und 
die Connection Failure des Adapters in Frame #5: Invalid consuming 
application path
D.h. der Connection Path den der Scanner sendet passt dem Adapter (Pilz) 
nicht.
Der Connection Path sieht für mich auf jeden Fall unvollständig aus 
(vergleiche mit meinem Beispiel) allerdings krieg ich das nicht mehr aus 
dem Stand hin.
Kannst du die gleiche Aufzeichnung mit der Omron machen?

Gruß
Ulrich
#6580058
Lesenswert?

Hallo Voltaren,

du kannst bei EIP eine laufende I/O Kommunikation nicht interpretieren 
(im Gegensatz zu z.B. Modbus).
Scanner und Adapter vereinbaren zum Beginn der Verbindung WAS übertragen 
werden soll (und noch einige andere Dinge). Dazu dient das 'Forward 
Open' des Scanners und die 'Connection Successful' (bzw Failure) des 
Adapters.
Protocol: CIP CM  ( Connection Manager)
Danach werden nur noch nackte Daten übertragen (Byte-Wurst)
Protocol: CIP I/O

Also du musst die OMRON starten während Wireshark schon läuft. Die CPU 
anhalten und wieder starten (Run - Stop - Run) reicht vermutlich nicht, 
da die Kommunikation nur auf 'Idle' geht und die Verbindung bestehen 
bleibt.

Gruß
Ulrich
#6580222
Lesenswert?

Hallo Voltaren,

das sieht gut aus. Die OMRON nutzt die korrekten Daten aus der EDS.
Im Bild OMRON habe ich den relevanten Teil mal rauskopiert.
Du siehst 5 Segmente:
- Electronic Key (damit stellt der Scanner sicher, dass unter der IP der 
richtige Adapter steckt)
- Class Segment (hier wird das Assembly Objekt angesprochen (0x04)
- Instance Segment (Instanz 1 des Assembly Objekts)
- Connection Point Segment (die 0x64 stehen im EDS für die InputAssembly 
im Parameter Param2
- Connection Point Segment (die 0x65 stehen im EDS für die 
OutputAssembly im Parameter Param3
Im Bild EZ_Connection hab ich mal die Pfadinfo aus der EDS gezeigt:
20 04 24 01 2C [Param2] 2C [Param3]
und wie EZ das aufdröselt (Create/Decode Path)

Wenn du das mit den Daten in SPS vergleichst siehst du das da einiges 
fehlt.
Ich weiß allerdings nicht wie du das in CoDeSys eingeben kannst. 
Vielleicht erreiche ich einen meiner früheren Kollegen der hier 
weiterhelfen kann.

Gruß
Ulrich
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren