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
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
Hallo was mir eigenartig vorkommt ist das obwohl ich ein Eds File habe
und eingebunden habe, ist in der Anzeige der Verbindung"vordefinierte
Verbindung Eds" ausgegraut.
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
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.
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?
:-)
rdp schrieb:> 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?
habe das eds mal angehängt.
Ich verstehe da nur Bahnhof wenn ich es mir in einem Editor ansehe
Hallo Voltaren,
du brauchst das Tool EazyEds von der ODVA. Konnte man früher von deren
ODVA.org runterladen.
Die EDSn sind zwar lesbar (rein ASCII) aber kaum verstehbar ohne Tool.
Hab grad mal schnell probiert der Download geht noch immer:
https://www.odva.org/subscriptions-services/software/ez-eds-download/
Gruß
Ulrich
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/
Habe versucht mit dem besagten Programm das Eds neu ab zu speichern.
Leider ohne Erfolg.
Habe ein funktionierendes Eds geöffnet mit dem Programm und auch da
werden Fehler angezeigt.
Bin Ratlos.
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...
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:-(!
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.
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
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.....
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
Hallo Ulrich,
danke für deine Hilfe.
Ich sehe schon das du richtig Ahnung hast von der Materie.
Hier noch die Aufzeichnung wenn die Kommunikation steht zwischen Pilz
und omron.
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
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
Sorry Ulrich,
das war etwas ungenau formuliert, ich meinte
den TO und sein fehlendes falsch/richtig CoDeSys-Bild.
Es scheint ja jetzt zu funktionieren, klasse Erklärung
dazu von Dir
:-)