TIA IO-Link: Wie Prozessdaten eines Generic Device einlesen

Mike11

Level-2
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ich habe eine S71200 + IO-Link Master SM1278

Weil an meine SPS verschiedene (sehr ähnliche) IO-Link Geräte angeschlossen werden können, habe ich im PCT ein "generic device" gewählt. Das funktioniert soweit auch ganz gut, ich kann die Geräte ansprechen und über die ISDU auch Indizes lesen. Jetzt möchte ich die Prozesswerte der Geräte (die Prozesswerte sind alle gleich aufgebaut) in meine Steuerung übernehmen.
Welche Adresse muss ich für die PLC Variablen angeben?
 
Genau diesen Master kenne ich nicht, aber im PCT gibt man im Normalfall jedem Port einen Adressbereich. Anhand des Datenblatts vom Device kann man sich die E/A-Daten dann in der SPS zusammenstellen. Am einfachsten legt man einen UDT direkt in der Symboltabelle, auf den richtigen EA-Bereich an.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Antwort von Siemens:
Nein, dass Sie Prozessdaten auslesen können, wenn Sie die IO-Link Devices als generic device projektieren, ist so nicht geplant. Ohne IODD Datei weiß der IO Link Master auch nicht wie die Daten des IO Link Devices auszusehen haben.
 
Versuche es mal damit und dann die Prozesswerte /Daten über den Subindex auslesen.Die sollten doch im Datenblatt angegeben sein ,oder ?
 
Ja, es geht unter dem Index 0x28 können die Prozessdaten azyklisch ausgelesen werden.
Dazu muss ich dann den Baustein LIOLink-Device regelmäßig aufrufen (z.B. alle 100ms) um einen stetigen Verlauf der Prozessdaten zu bekommen. Probleme bekomme ich aber dann, wenn ich noch mit weiteren Parametern azyklisch arbeite (lesen + schreiben). Dann kommt es immer zu Konflikten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eigentlich interessiert den IO-Link-Master auch der Aufbau der Daten nicht oder sollte es zumindest nicht. Bedingung ist nur, daß der dem Port zugeordnete Datenbereich (E/A) mindestens so groß ist, wie das IO-Link-Gerät verlangt. So klappt es auch ohne Konfigurationsprogramm mit fast allen IO-Link-Mastern, die lediglich in der Hardware konfiguriert werden. (Zuordnung der E/A-bereiche auf den Port) (Balluff, Ifm, Festo,...) Für die braucht man nicht zwingend IODD-Dateien. Bloß Siemens geht hier wieder einen Sonderweg, der immer durchs PCT führt.
Insofern würde ich es wie TP-Inc probieren.
Beispiel von Ifm:
1680095098493.png
 

Anhänge

  • 1680095083646.png
    1680095083646.png
    20 KB · Aufrufe: 5
Ja, eigentlich sollte das gehen. Ich bekomme die E-Adressen 8...11 genannt, was auch sinnvoll ist. Wenn ich meine PLC-Variablen auf diese Adressen lege, lese ich nur 0 ein.
Wenn ich jetzt die Generic IODD gegen die zugehörige Geräte IODD tausche, bekomme ich ebenfalls die Adressen 8...11 genannt. Jetzt enthalten die PLC Variablen auf diesen Adressen allerdings die korrekten Prozessdaten.
 
Eigentlich interessiert den IO-Link-Master auch der Aufbau der Daten nicht oder sollte es zumindest nicht. Bedingung ist nur, daß der dem Port zugeordnete Datenbereich (E/A) mindestens so groß ist, wie das IO-Link-Gerät verlangt. So klappt es auch ohne Konfigurationsprogramm mit fast allen IO-Link-Mastern, die lediglich in der Hardware konfiguriert werden. (Zuordnung der E/A-bereiche auf den Port) (Balluff, Ifm, Festo,...) Für die braucht man nicht zwingend IODD-Dateien. Bloß Siemens geht hier wieder einen Sonderweg, der immer durchs PCT führt.
Insofern würde ich es wie TP-Inc probieren.
Beispiel von Ifm:
Anhang anzeigen 68007

Mein Verständnis war immer, dass man selbst bei Sensoren, die das gleiche Smart-Sensorprofil implementieren, die IODD ausgetauscht werden muss, da das ganze ohne die gleiche VendorID nicht klappt. Ist dem nicht so?

Das ist eigentlich meine größte Sorge, dass man in Zukunft bei einem Austausch eines Wald und Wiesen IO-Link Sensors durch einen anderen Typen die IODD anfassen muss. Ich kenne das von Beckhoff so, dass man einen Master Anhand von vorhandener IODD konfiguriert. Zwar kann man dort auch einfach die Prozessdatengrößen angeben, allerdings sind auch da VendorID etc. Pflichtfelder.

Falls das so geht wie du beschrieben hast, würde sich das Problem nur auf unterschiedliche Datenstrukturen beschränken.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
"IO-Link" wird ja als "USB Schnittstelle der Sensorik" bezeichnet.
Für mich hat das so nie gestimmt, weil USB die Treiber ja automatisch für neue Geräte erkennt.

Ich hatte mal angefangen, sowas für meinen Balluff Master umzusetzen. Ich beschreibe einfach mal ein bisschen,
was ich mir damals so grob gedacht hatte - vielleicht hilft es ja (ist schon 2 Jahre her - steht immer noch auf meiner ToDo Liste).

Ich verwende keine IODDs. Die Steuerungen, für die ich Zuständig bin, werden max. an Brückentagen oder in der Wartungswoche unserer
Fa. geplant neu gestartet. Daher habe ich 8x 32 Byte E/As pro Master zugeordnet (ich habe tatsächlich 2 Sensoren, die das fast komplett ausnutzen). Ich weiß aber nicht, was die 1200er an max. E/As kann.

Vom Master prüfe ich das Signal "IO-Link Kommunikation" (also sobald ein Device mit IO-Link mit dem Master kommunizieren möchte).
Wenn eine Flanke kommt (mit irgendeiner Zeitprüfung - das neue Gerät wird zu diesem Zeitpunkt ja eingesteckt) werden Daten vom IO-Link Device geprüft.

1682089392324.png
(kann man bei der E/A Konfiguration des Masters einfach mit reinziehen - Balluff hat da z.B. auch noch Kurzschlusserkennung, ... mit drin. Muss man dann halt im Programm verarbeiten)

Der Vendor Bereich ist in der Regel gleich aufgebaut. Ich prüfe also Hersteller und Gerät (evtl. noch Firmware- oder Hardwareversion)
und weiß dann, was da drin steckt.

Bekannte Geräte werden dann in einem E/A Baustein, der meine Bytes aufbereitet weiterverarbeitet (z.B. Bytes in Real wandelt).
Also z.B.

Case "Device" of "Device": 1 // // kopiere die Prozessdaten von Device 1 aus den 32 Byte so wie du sie brauchst "Device": 2 // // kopiere die Prozessdaten von Device 2 aus den 32 Byte so wie du sie brauchst ; Else // Device unbekannt ; End_Case;

Von Dort aus geht es dann in die Programmbearbeitung.

Ist leider alles nur aus dem Kopf raus Habe weder den Programmentwurf, noch TIA zur Hand.


Falls es für deine Devices keine gescheite Dokumentation gibt - auf der Seite:
gibt es 2 Tools. IODD-Checker und IODD-Viewer.
Ich glaube der Viewer war es, in den man sich die IODD reinladen kann und als HTML (ziemlich sauber) ausgeben kann.

Von allen meinen IO-Link Geräte wurde eine html Datei erstellt, um eine durchgängige Dokumentation zu bekommen.

Viel Erfolg bei deinem Vorhaben.
 
Mein Verständnis war immer, dass man selbst bei Sensoren, die das gleiche Smart-Sensorprofil implementieren, die IODD ausgetauscht werden muss, da das ganze ohne die gleiche VendorID nicht klappt. Ist dem nicht so?

Kommt drauf an was dein IO-Link Master an Einstellmöglichkeiten anbietet.
I.d.R. gibt es so etwas wie ein 'Automatik' Modus, da wird einfach das IO-Link Device genommen so wie es ist, ohne irgendwelche Prüfungen.
 
Mein Verständnis war immer, dass man selbst bei Sensoren, die das gleiche Smart-Sensorprofil implementieren, die IODD ausgetauscht werden muss, da das ganze ohne die gleiche VendorID nicht klappt. Ist dem nicht so?
Mit der Nutzung der Generic Module ist es auf fast allen IO-Link Mastern (Siemens mal ausgenommen) möglich, einfache EA-Module
als Generic zu nutzen. Am einfachsten geht's bei Web-Konfigurierbaren Geräten (Z.B. Balluff PNT 508).
Dies ist durchaus O.K. für normale IO's. Bei Komplexeren Geräten (Drehgeber, Prop-Ventile, Antriebe usw.)
würde ich davon abraten (vor allem bei nicht Serienmaschinen), da die bei den Komplexen Geräten
erforderlichen Einstellungen mit IODD entsprechend kommentiert sind und damit eine Erstinbetriebnahme
stark vereinfacht wird.

Ich nutze verschiedene IO-Link Master (als PN Device).
Siemens Master nutze ich nur in Ausnahmefällen :sneaky:.

Gruß

A.
 
Zurück
Oben