TIA STRUCT aus numerischen Werten umwandeln

BaumimGarten

Level-2
Beiträge
63
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich würde gerne eine Struktur bestehend aus mehreren Analogwerten, mit unterschiedlichen numerischen Datetypen (Real, Int, Uint, Dint) umwandeln to String.
So wie ich gesehen habe gibt es im TIA Portal die Funktion "Val_String", welche sich perfekt dafür anbieten würde, jedoch müsste ich (so wie ich das verstanden habe) jedes einzelne Element direkt adressieren. D.h. ich muss jeden Wert "händisch" an die Umwandlungsfunktion übergeben, also "Struct.Analogwert1" dann den nächsten mit "Struct.Analogwert2" und so weiter.
Bei einem Array wäre das ja easy mit einem laufenden Index, aber da kann ich ja nur ein Datentyp angeben aus dem das Array bestehen soll.

Nachtrag:
Ich würde gerne die Analogwerte so aufbauen, dass es je nach Anwendungsfall ihr Anzahl vom Anwender vergrößert oder verkleinert werden kann ohne den internen Code anzupassen. Ich hab es momentan so, dass ich meine Analogwerte nach Datentypen in Arrays sortiert habe und so mit einer Vorschleife jedes Element des Arrays (egal wie lange es ist) umwandeln kann. Das verheiraten von mehreren Datentypen in einem Array oder Struct wäre für mich jetzt interessant, wie man diese umwandelt.

TIA16
S7 1214C

MfG F.Baumgarten
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Mach aus der Struktur eine UDT
Aber das würde ja nichts an meinem Problem ändern oder?
Ich müsste immer noch jedes einzelne Element adressieren. Das hat halt den Nachteil, dass ein externer Anwender nochmal intern den Code anpassen müsste und eine neue Umformung des hinzugefügten Elements programmieren müsste.
 
Dann mach für die verschiedenen Datentypen in der UDT/Struktur jeweils ein Array, dann musst du nur die jeweiligen Arrays durch eine Schleife jagen. Ansonsten eben jeder Messwert einzeln, dann würde ich das aber in einem SCL Netzwerk gestalten
 
Dann mach für die verschiedenen Datentypen in der UDT/Struktur jeweils ein Array, dann musst du nur die jeweiligen Arrays durch eine Schleife jagen. Ansonsten eben jeder Messwert einzeln, dann würde ich das aber in einem SCL Netzwerk gestalten
tut mir Leid, dass hab ich momentan schon tatsächlich so gemacht, deswegen wäre es für mich interessant, die verschiedenen Datentypen in einem Array oder Struct zu haben
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nachtrag:
Ich würde gerne die Analogwerte so aufbauen, dass es je nach Anwendungsfall ihr Anzahl vom Anwender vergrößert oder verkleinert werden kann ohne den internen Code anzupassen.
Array[*] of

Dann aber nicht lower bound und upper bound berechnung vergessen und damit auch in den Schleifen arbeiten
 
Array[*] of

Dann aber nicht lower bound und upper bound berechnung vergessen und damit auch in den Schleifen arbeiten
ja mache ich gerade schon
Ich hab mehrere Arrays nach den verschiedenen Datentypen angelegt und lasse die von der Größe her dynamisch über Anwenderkonstanten in anpassen. Über diese Konstanten lasse ich die Values in den Arrays umformen.
Das passt auch alles soweit, aber ich wurde drauf hingewiesen, dass es Anwender unfreundlich sei, dass man die Menge jedes einzelnen Datentyps anpassen muss.
Wenn man alle Analogwerte über eine Konstante laufen lassen könnte (Also alles in ein Array oder Struktur etc.) wäre es schöner für unterschiedliche Projekte anzupassen.
 
Dann müsst ihr euch auf einen gemeinsamen Datentypen wohl einigen. Für eine gleiche Bearbeitung ist halt auch irgendwo dann mal ein gemeinsamer Nenner notwendig.

Ich kenne sonst keine andere Möglichkeit das noch einfacher zu gestalten mit der Menge an Datentypen.

Wenn ich mal unterschiedliche Datentypen hatte bei sowas, dann ging's da meistens nur darum die letzten gesamten Messwerte zu speichern für X Aufträge damit man diese am HMI noch mal mit Seriennummer nachvollziehen konnte falls da was nicht passt beim Weiterverbau
 
Zurück
Oben