TIA Calculate Box

Jan.Mayer96

Level-2
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
kurze Frage, wenn ich in einer Calculate Box eine temporäre Variable vom Typ INT mit dem Befehl SQR quadrieren möchte, sagt TIA das die Anweisung nicht unterstützt wird. Kann mir evtl. jemand erklären warum das so ist ? Evtl. habe ich auch nur einen Denkfehler

1712484364578.png
 
Wenn du die Wurzel einer Zahl berechnest kommt meist eine Komma Zahl raus und da brauchst du halt eine REAL Zahl...
 
Habe mich nur gewundert warum es beim Datentypen INT nicht funktioniert und ob es dafür eine Begründung gibt die ich nicht weiß.
Aber trotzdem Danke fürs fragen.
Da kann man sich tatsächlich nur wundern.
Der Engpass, den ich sehe, liegt wohl eher beim Ergebnis im Datentyp INT.
Nur bei ganzzahligen EingangsWerten von -181 bis 181 käme es NICHT zu Über-/Unterläufen.
Ob man sich wohl deshalb nicht getraut hat, eine QuadrierFunktion für INT anzubieten?
Bei UINT wäre der mögliche Bereich von EingangsWerten immerhin schon "grosszügige" 0 .. 255.

Andererseits, wäre es denn wirklich so unvertretbar viel aufwändiger oder unlesbarer, wenn man in den wenigen Fällen, in denen mit ganzzahligen EingangsWerten -181..181 zu tun hat, q := x * x ; oder q := x ** 2 ; statt der bei INT-Zahlen nicht zulässigen Schreibweise q := SQR(x) ; schreiben müsste?

Wie dieser Thread überdeutlich zeigt, ist bei der Schreibweise q := SQR(x) ; auch die Gefahr wahnsinnig gross, fälschlich als q := SQRT(x) ; gelesen/interpretiert zu werden.
Allerdings besteht diese VerwechslungsGefahr leider auch bei der Anwendung auf GleitkommaZahlen (REAL bzw. LREAL).
 
Der Vollständigkeit halber:
Bei Rockwell gibt es auch die beiden Befehle SQR und SQRT.
Mit beiden(!) Befehlen wird die Quadratwurzel berechnet.
SQR wird als Operator in Kontaktplandiagramm-Ausdrücken verwendet; SQRT wird als Operator in strukturiertem Text verwendet.

Das kann dann zu Problemen führen, wenn man Software von Siemens (SCL) nach Rockwell (ST) konvertiert.
 
Bei Rockwell gibt es auch die beiden Befehle SQR und SQRT.
Mit beiden(!) Befehlen wird die Quadratwurzel berechnet.
SQR wird als Operator in Kontaktplandiagramm-Ausdrücken verwendet; SQRT wird als Operator in strukturiertem Text verwendet.
Wenn beide Schreibweisen dasselbe meinen und ProgrammierSprachen-abhängig sind, dann gehört dem Erfinder bzw. den Erfindern dieses Irrsinns gehörig auf die Füsse getreten.
Das kann dann zu Problemen führen, wenn man Software von Siemens (SCL) nach Rockwell (ST) konvertiert.
Das führt schon zu Problemen, weil man dauernd umdenken muss, wenn man sich mal in der einen und mal in der anderen "Umgebung" tummeln muss.
Verwechslungen und Irrtümer sind dann vorprogrammiert. Selbst dann, wenn alle Beteiligten sich dessen bewusst sind und deshalb schon äusserst gewissenhaft versuchen, nicht darauf hereinzufallen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das gilt aber anscheinend auch nicht nur für Rockwell - auch bei Microsoft ist SQR eine Wurzelfunktion ... ABER ... wenn man danach dann mal googelt ist sich die Mathematik da von Fall zu Fall nicht ganz einig ... :unsure:
 
Zurück
Oben