-> Hier kostenlos registrieren
Hallo zusammen,
hallo IO- Link Experten
,
ich suche nach einem Lösungsansatz meines Problems. Im Forum gibt es bereits ähnliche Themen.
In einem ProfiNet-System für Demonstrationszwecke habe ich 6 IO- Link- Master mit jeweils 4 Ports.
Die Master hängen an versch. ProfiNet- Teilnehmern meines Netzwerkes, einzelne Teilnehmer können aktiviert/deaktiviert werden.
D.h. unter Umständen sind auch nur mal 2 IO- Link- Master im Netzwerk aktiv..
Sofern alle Teilnehmer angeschlossen, sollen an diesen insgesamt 24 (6x4) IO- Link- Ports versch. Devices (Sensoren / Aktoren) angeschlossen werden können- ganz egal an welchem Port. Die Datenstruktur dieser Devices ist ganz unterschiedlich, mal liefert das Device nur 2 Byte, mal bekommt es ein 1Byte und liefert 2, mal liefert es 8Byte usw... (IO- Link halt
)
Um also später jedes Device an jeden Port anschließen zu können, habe ich jeweils 8Byte IN/OUT vergeben, das sollte -Stand heute- für alle ausreichen.
In den Baugruppenparametern von jedem Port habe ich Autostart gewählt und das "Häkchen" bei "Enable Pull/Plug submodule alarm" entfernt.
So kommt es zu keinem Fehler, wenn ein Port nicht belegt. Weiterhin können alle Daten ausgelesen werden- egal wie viele Byte IN/OUT
Mehr wie 8Byte IN/OUT gibt es in meinem System nicht...

Ob der Port belegt ist und um das Device daran zu identifizieren, möchte ich den Siemens-FB LIOLink_IdentAndDiag verwenden.
Damit kenne ich ja das Device und somit dessen Datenstruktur, das müsste ja gehen?
Jetzt suche ich noch die "Brücke", um die Daten des individuell angeschlossenen Devices automatisiert entsprechend aufzubereiten.
Wenn ein Port nicht belegt ist, soll eben auch nichts passieren..
Beispiel: Drucksensor 0815 ist an Port0 von Master A angeschlossen
Drucksensor 0815 liefert 2 Byte: davon sind 2bit Schaltausgänge, in den restlichen 14bit liegt der Druckwert
Jetzt soll der wahre Druckwert ausgegeben werden
Wie macht man das am besten und einfachsten?
Kann man dazu auch den Siemens FB LIOLink_MeasuredDataChannel verwenden, wobei dieser ja nur Sensoren (nach dem SmartSensorProfil) unterstützt...
Hier die Beschreibung des gesamten LIOLInk von Siemens: LIOLink
Hat jemand so was ähnliches schon mal gemacht und eine Routine entwickelt?
Wer kann mir helfen? Ich bin leider noch nicht so fit, um das selbst zu lösen...
Ich bin für jede Hilfe dankbar!!
Viele Grüße
Alex
hallo IO- Link Experten

ich suche nach einem Lösungsansatz meines Problems. Im Forum gibt es bereits ähnliche Themen.
In einem ProfiNet-System für Demonstrationszwecke habe ich 6 IO- Link- Master mit jeweils 4 Ports.
Die Master hängen an versch. ProfiNet- Teilnehmern meines Netzwerkes, einzelne Teilnehmer können aktiviert/deaktiviert werden.
D.h. unter Umständen sind auch nur mal 2 IO- Link- Master im Netzwerk aktiv..
Sofern alle Teilnehmer angeschlossen, sollen an diesen insgesamt 24 (6x4) IO- Link- Ports versch. Devices (Sensoren / Aktoren) angeschlossen werden können- ganz egal an welchem Port. Die Datenstruktur dieser Devices ist ganz unterschiedlich, mal liefert das Device nur 2 Byte, mal bekommt es ein 1Byte und liefert 2, mal liefert es 8Byte usw... (IO- Link halt

Um also später jedes Device an jeden Port anschließen zu können, habe ich jeweils 8Byte IN/OUT vergeben, das sollte -Stand heute- für alle ausreichen.
In den Baugruppenparametern von jedem Port habe ich Autostart gewählt und das "Häkchen" bei "Enable Pull/Plug submodule alarm" entfernt.
So kommt es zu keinem Fehler, wenn ein Port nicht belegt. Weiterhin können alle Daten ausgelesen werden- egal wie viele Byte IN/OUT
Mehr wie 8Byte IN/OUT gibt es in meinem System nicht...

Ob der Port belegt ist und um das Device daran zu identifizieren, möchte ich den Siemens-FB LIOLink_IdentAndDiag verwenden.
Damit kenne ich ja das Device und somit dessen Datenstruktur, das müsste ja gehen?
Jetzt suche ich noch die "Brücke", um die Daten des individuell angeschlossenen Devices automatisiert entsprechend aufzubereiten.
Wenn ein Port nicht belegt ist, soll eben auch nichts passieren..
Beispiel: Drucksensor 0815 ist an Port0 von Master A angeschlossen
Drucksensor 0815 liefert 2 Byte: davon sind 2bit Schaltausgänge, in den restlichen 14bit liegt der Druckwert
Jetzt soll der wahre Druckwert ausgegeben werden
Wie macht man das am besten und einfachsten?
Kann man dazu auch den Siemens FB LIOLink_MeasuredDataChannel verwenden, wobei dieser ja nur Sensoren (nach dem SmartSensorProfil) unterstützt...
Hier die Beschreibung des gesamten LIOLInk von Siemens: LIOLink
Hat jemand so was ähnliches schon mal gemacht und eine Routine entwickelt?
Wer kann mir helfen? Ich bin leider noch nicht so fit, um das selbst zu lösen...
Ich bin für jede Hilfe dankbar!!
Viele Grüße
Alex