TIA Platzhalter in einer Variable verwenden auf Basis eines Zählers

ChristianVogel

Level-2
Beiträge
434
Reaktionspunkte
55
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Der Titel dieses Beitrags hört sich vielleicht etwas verwirrend an, aber ich habe grade keine Ahnung wie ich das beschreiben soll... Folgendes Problem: Der Kunde verwaltet in einer Rezeptur im HMI bis zu 500 Datensätze in einer Rezeptur (TP700 Comfort). Darin gibt es Parameter für einen "Code-Vergleich"...

so, ich hatte vor erstmal alle bis zu 500 dieser Datensätze runterzuladen in die Steuerung in einen FB mit einer "Download-Funktion, also per "Steuerungsauftrag 70" nach und nach runterladen aus der selben Rezeptur und immer letzter "Datensatz +1". Nun habe ich ja die Daten der Rezeptur immer in den selben Variablen stehen, ich weiss aber anhand meines Zählers aus welchem Datensatz diese Daten stammen!

Ich habe mir jetzt einen FB gebaut, wo ich nun bis zu 500 Rezepturen im Kopf als möglichen Speicherort angeben will -> Screenshot -> ich habe also als möglichen Speicherort für meine Daten diese Plätze:

#Record_1.Recipe_Name
#Record_1.Recipe_NO
#Record_1.Record_NO
...
#Record_500.Recipe_Name
#Record_500.Recipe_NO
#Record_500.Record_NO

So, jetzt kommt mein Problem: Wie muss ich denn den Zählerwert (1...500) eingeben damit ich die gelesenen Daten, in den jeweiligen Speicherplatz schieben kann... :confused:

Also ich will, wenn der Zähler auf 17 stehen sollte die Daten nach
#Record_17.Recipe_Name
#Record_17.Recipe_NO
#Record_17.Record_NO ...schieben
Wenn der Zähler auf 158 stehen sollte die Daten nach
#Record_158.Recipe_Name
#Record_158.Recipe_NO
#Record_158.Record_NO ...schieben

Da gibt es doch die Funktion mit den eckigen klammern, Oder??? Ich tippe hier anscheinend einen Blödsinn ein indem ich den falschen Syntax angebe :-? Ist das Ziel wenn ich einen MOVE-Befehl nehme nicht #Record_[Zählervariable].Recipe_NO ????

Oder geht das nicht Innerhalb eines FBs???

oder stelle ich mich generell zu dämlich an? Wäre auch nicht das erst mal heute :D

Vielleicht hat ja jemand Muse zwischen Mittag und Sonntagskaffee mit hier einen Tipp zu geben, schon jetzt vielen Dank!

Gruß Christian

hier noch der Screenshot: 2018-03-25.jpg
 
Hallo zusammen,

Der Titel dieses Beitrags hört sich vielleicht etwas verwirrend an, aber ich habe grade keine Ahnung wie ich das beschreiben soll... Folgendes Problem: Der Kunde verwaltet in einer Rezeptur im HMI bis zu 500 Datensätze in einer Rezeptur (TP700 Comfort). Darin gibt es Parameter für einen "Code-Vergleich"...

so, ich hatte vor erstmal alle bis zu 500 dieser Datensätze runterzuladen in die Steuerung in einen FB mit einer "Download-Funktion, also per "Steuerungsauftrag 70" nach und nach runterladen aus der selben Rezeptur und immer letzter "Datensatz +1". Nun habe ich ja die Daten der Rezeptur immer in den selben Variablen stehen, ich weiss aber anhand meines Zählers aus welchem Datensatz diese Daten stammen!

Ich habe mir jetzt einen FB gebaut, wo ich nun bis zu 500 Rezepturen im Kopf als möglichen Speicherort angeben will -> Screenshot -> ich habe also als möglichen Speicherort für meine Daten diese Plätze:

#Record_1.Recipe_Name
#Record_1.Recipe_NO
#Record_1.Record_NO
...
#Record_500.Recipe_Name
#Record_500.Recipe_NO
#Record_500.Record_NO

So, jetzt kommt mein Problem: Wie muss ich denn den Zählerwert (1...500) eingeben damit ich die gelesenen Daten, in den jeweiligen Speicherplatz schieben kann... :confused:

Also ich will, wenn der Zähler auf 17 stehen sollte die Daten nach
#Record_17.Recipe_Name
#Record_17.Recipe_NO
#Record_17.Record_NO ...schieben
Wenn der Zähler auf 158 stehen sollte die Daten nach
#Record_158.Recipe_Name
#Record_158.Recipe_NO
#Record_158.Record_NO ...schieben

Da gibt es doch die Funktion mit den eckigen klammern, Oder??? Ich tippe hier anscheinend einen Blödsinn ein indem ich den falschen Syntax angebe :-? Ist das Ziel wenn ich einen MOVE-Befehl nehme nicht #Record_[Zählervariable].Recipe_NO ????

Oder geht das nicht Innerhalb eines FBs???

oder stelle ich mich generell zu dämlich an? Wäre auch nicht das erst mal heute :D

Vielleicht hat ja jemand Muse zwischen Mittag und Sonntagskaffee mit hier einen Tipp zu geben, schon jetzt vielen Dank!

Gruß Christian

hier noch der Screenshot: Anhang anzeigen 40910
Du musst doch nur ein Array von deiner record Struktur erstellen.
Ich würde einen Datentyp record erstellen und dann im DB array(0..99)of record

Dann kannst du beim ansprechen den gewünschten record über die Zählvariable ansprechen.



Gesendet von meinem Moto G (4) mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du musst doch nur ein Array von deiner record Struktur erstellen.
Ich würde einen Datentyp record erstellen und dann im DB array(0..99)of record

Dann kannst du beim ansprechen den gewünschten record über die Zählvariable ansprechen.

Gesendet von meinem Moto G (4) mit Tapatalk



Hi DOD666,

vielen Dank für die Info, also quasi soll ich ein "Array[0..500] of Struct" anlegen (Screenshot), hört sich vielversprechend an, aber eine Stringvariable da einschieben mit einem Move-Befehl in ein Array-hinein klappt ja nicht, oder? Da hatte ich an anderer Stelle schonmal Probleme :-? Auf jeden Fall habe ich hier dieses Arry in den Reiter "Static" gelegt, Temp oder IN/Out bringen mir in dem Fall ja nicht viel... Ich müsste eben später innerhalb des Bausteins Zugriff auf die gespeicherten Daten haben, außerhalb des Bausteins möchte ich diese Daten nicht abgreifen können...

2018-03-251.jpg
 
Zuletzt bearbeitet:
vielen Dank für die Info, also quasi soll ich ein "Array[0..500] of Struct" anlegen (Screenshot), hört sich vielversprechend an...
hört sich nicht nur so an - ist es auch ;)

...aber eine Stringvariable da einschieben mit einem Move-Befehl in ein Array-hinein klappt ja nicht, oder? Da hatte ich an anderer Stelle schonmal Probleme :-?
eigentlich gibt es da keine Probleme. Hattest du dazu schon mal einen Forumseintrag gemacht?
 
hört sich nicht nur so an - ist es auch ;)


eigentlich gibt es da keine Probleme. Hattest du dazu schon mal einen Forumseintrag gemacht?


Guten Morgen Howard,
der Baustein "S_Move" akzeptiert meine eingegebene Variable einfach nicht, der Text wird da "rot-untestrichen". Ich vermute hier einen Fehler in der Variablendeklaration im Kopf des Bausteines. Da bin ich grade dran...
 
alles klar: läuft!

-->> Der Fehler war der, dass mein Zahlenformat WORD war, habe den Zähler auf INT gestellt, damit ich diesen Zählwert innerhalb der eckigen Klammern verwenden kann!
 
Zurück
Oben