TIA TIA - SCL - FOR Schleife - Zählernummer in Variablennamen

EntGo14

Level-2
Beiträge
5
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebes Forum,
nachdem ich schon viele hilfreiche Beiträge gefunden habe, möchte ich gerne selbst meinen ersten Beitrag erstellen.

Ich möchte gerne ein SCL Netzwerk nutzen, um den Programmieraufwand wiederholender Prozesse zu reduzieren. In dem konkreten Fall geht es um Sensoren, welche mehrfach in der Anlage vorkommen. Zu diesen habe ich bereits UDTs erstellt (z.B. type_temperatursensor), sodass ich sie schnell in meinem FB wiederverwenden kann. Ich nenen mal das folgende Beispiel, um mein Problem zu erklären: Ich möchte nun Daten aus meiner Anlagenkonfiguration (z.B. Skalierung) in den DB des Temperatursensors laden. In FUP würde das so aussehen:

MOVE Baustein
IN - #anlagenkonfiguration.temperatursensor.1.skalierung
OUT - #temperatursensor1.skalierung

Wenn ich 10 Sensoren habe, müssste ich das folglich 10x programmieren. Ich habe auch einige komplexere Netzwerke, bei denen der Aufwand deutlich größer wäre (natürlich auch bei Änderungen). Deshalb war meine Idee, dass ich ein SCL Netzwerk erstelle. Ich habe mir das in etwa so vorgestellt:

FOR #i := 1 TO 10 DO
#temperatursensor[#i].skalierung := #anlagenkonfiguration.temperatursensor.[#i].skalierung
;
END_FOR;

i habe ich als temporäre Variable im FB hinzugefügt.

Leider führt das zu einer Fehlermeldung und ich komme bei dem Problem nicht weiter. Habt ihr eine Idee, ob und wie das möglich ist? Oder geht das nur mit der entsprechenden Array Struktur?

Vielen Dank für eure Hilfe!
 
FOR #i := 1 TO 10 DO
#temperatursensor[#i].skalierung := #anlagenkonfiguration.temperatursensor.[#i].skalierung
;
END_FOR;
(...)
Leider führt das zu einer Fehlermeldung
Wenn temperatursensor ein Array ist, dann geht das.
Was du willst, ist zur Laufzeit den Variablenname einer existierenden Variable zusammenbauen. Das geht nicht.
 
Wenn temperatursensor ein Array ist, dann geht das.
Temperatursensor ist kein Array.
Was du willst, ist zur Laufzeit den Variablenname einer existierenden Variable zusammenbauen. Das geht nicht.
Das war die Info, nach der ich gesucht hatte.


Vielen Dank für die schnellen Rückmeldungen. Ich schaue, dass ich eine Array Struktur einbringen kann
 
Zurück
Oben