Hallo,
gibt es die Möglichkeit (zB. beim Überlauf) auf die min und max Grenzen der Datentypen über Systemkonstante zuzugreifen.
Klar kann man diese manuell als Konstante eingeben, da viele allgemein bekannt sind, aber bei selten verwendet wird muss nachgeschlagen werden und Tippfehler nicht ausgeschlossen.
danke
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
sizeof ist jetzt auch nicht so ganz straight, oder!? Damit bekommst du ja
nur die Datentypbreite in, also wieviele Bytes der Datentyp belegt. Wie
realisierst du das dann?
Klar, warum nicht? Gepaart mit einem "typeof()" (https://forge.codesys.com/forge/talk/Engineering/thread/9092152d36/) ist es möglich den Datentyp zu berücksichtigen und damit für jeden Datentyp die MAX und MIN Werte zu berechnen. Kann man dann noch als Methode in eine Instanz eines FB packen und die Werte puffern, sodass sie nur einmal berechnet werden.
Ist dann zwar immernoch keine Konstante, aber die Rechenzeit welche benötigt wird beschränkt sich nach dem ersten Berechnen auf ein Minimum.
Wäre halt die Lösung wenn es keine Konstanten gibt in der Richtung, was ja noch zu klären ist :)
Last edit: byt0x 2020-12-23
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, möglch ist vieles.
Bei Date_And_Time & Co. schon aufwendiger.
Da wäre es schon einfacher die Konstanten manuell in einem Datentyp zu hinterlegen, dass wäre meine geplante Alternative falls Codesys keine einfachere Lösung bietet.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
gibt es die Möglichkeit (zB. beim Überlauf) auf die min und max Grenzen der Datentypen über Systemkonstante zuzugreifen.
Klar kann man diese manuell als Konstante eingeben, da viele allgemein bekannt sind, aber bei selten verwendet wird muss nachgeschlagen werden und Tippfehler nicht ausgeschlossen.
danke
more posts ...
Ich würde es mit sizeof() realisieren.
sizeof ist jetzt auch nicht so ganz straight, oder!? Damit bekommst du ja
nur die Datentypbreite in, also wieviele Bytes der Datentyp belegt. Wie
realisierst du das dann?
So? 😉
Klar, warum nicht? Gepaart mit einem "typeof()" (https://forge.codesys.com/forge/talk/Engineering/thread/9092152d36/) ist es möglich den Datentyp zu berücksichtigen und damit für jeden Datentyp die MAX und MIN Werte zu berechnen. Kann man dann noch als Methode in eine Instanz eines FB packen und die Werte puffern, sodass sie nur einmal berechnet werden.
Ist dann zwar immernoch keine Konstante, aber die Rechenzeit welche benötigt wird beschränkt sich nach dem ersten Berechnen auf ein Minimum.
Wäre halt die Lösung wenn es keine Konstanten gibt in der Richtung, was ja noch zu klären ist :)
Last edit: byt0x 2020-12-23
Ok, möglch ist vieles.
Bei Date_And_Time & Co. schon aufwendiger.
Da wäre es schon einfacher die Konstanten manuell in einem Datentyp zu hinterlegen, dass wäre meine geplante Alternative falls Codesys keine einfachere Lösung bietet.
Vielen Dank Euch beiden.
aber das hilft nicht. ich suche z.b. für byte min 16#00 und max 16#ff als Systemkonstante.