TIA Berechnung der HW-IO-Adresse möglich?

matjes1982

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich hab ein etwas komplizierteres Problem. Vielleicht kann mir jemand dabei helfen.

Ich habe ein Gateway, welches einige CAN-Bus-Teilnehmer auf Profinet umsetzt. Das Gateway hängt dann via Profinet an einer S7-1500er.
Die Anzahl der CAN-Teilnehmer und der Name des Profinet-Gateway variiert von Anwendung zu Anwendung.
Ich würde jetzt gerne einen Baustein schreiben, der mir von allen CAN-Teilnehmern automatisiert den Zustand ausliest.

Problem sind dabei die HW-SubModule-Adressen der einzelnen Slaves.
Diese werden von TIA beim Anlagen der Hardware-Konfig automatisch festgelegt, ich hab keine Möglichkeit diese zu beeinflussen.
Um den Status automatisiert von jedem Teilnehmer auszulesen, müsste ich sie aber für jeden Teilnehmer wissen.
Ok, ich könnte sie natürlich für alle Teilnehmer von außen an den Baustein übergeben. Das ist mir für 50 Teilnehmer aber zu aufwendig und widerspricht meinem Gedanken eines automatisierten Bausteins.

Das einzige was ich immer weiß, ist die Bezeichnung der Submodule in der Tabelle Systemkonstanten. Diese sind logisch immer gleich aufgebaut (siehe Bild). Erst kommt der Profinet-Name des Gateway (den könnte ich von außen an den Baustein übergeben), anschließend dann "~Slave_xx" für den xx. CAN-Teilnehmer.

Aber wie bekomme ich aus dem Namen dann den Wert der Konstante.
Gibt es eine Funktion, die mir aus der Bezeichnung als String den Wert der Konstante ausgibt?

Vielen Dank schonmal für Eure Hilfe.

Unbenannt.PNG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erst jetzt verstehe ich was du willst.
Du willst vermeiden dass du 50-mal denselbe Baustein mit unterschiedlichen HW_IO aufrufen muss.
Irgendwie willst du zuerst die HW Addressen von die symbolische Namen ekstrahieren. Und dann die HW Adressen in eine Array plazieren und dann durchschleifen ?
Aber dann hast du nur das Problem umplaziert. Anstatt die CAN Module 50-Mal zu aktualisieren mit die HW_IO (entweder absolutwert oder symbolisch), dann musst du 50-mal die HW-Adressen von die Symbolnamen extrahieren.
 
Das ist mir für 50 Teilnehmer aber zu aufwendig und widerspricht meinem Gedanken eines automatisierten Bausteins.
Was meinst du mit "automatisierten Baustein" ?
Ich denke beim Fehlersuche wird solch einen cleveren Verfahren ganz Munter.
Etwas 50-mal zu eintippen dauert vermutlich nicht länger als diesen "automatisierten Bauistein" zu programmieren, oder ?
 
Zurück
Oben