Zottel
Level-3
- Beiträge
- 2.299
- Reaktionspunkte
- 279
-> Hier kostenlos registrieren
SCL in TIA13: Ich will einen real-Wert auf ein QW schreiben.
Bei:
unterstreicht der Editor das gelb und sagt: Das Vorzeichen oder die Genauigkeit des Werts können verloren gehen.
Das bin ich leid und probiere mal, welche "Spezialversionen" von FLOOR das Zeug kennt:
Jetzt kriege ich keine Warnungen, sondern 2 richtige Fehler:
1.Der Datentyp 'Word' ist als Rückgabewert für die Funktion 'FLOOR_WORD' nicht zulässig.
2.Eine implizite Konvertierung von Datentyp 'Real' nach 'Undef' ist nicht möglich.
Ich hätte ja Verständnis dafür, wenn es kein FLOOR_WORD gäbe, aber offensichtlich wird der Funktionsname ja so akzeptiert. Wenn es
die Funktion aber gibt, was zum Teufel gibt sie dann zurück?
Und wo tritt der zweite Fehler auf? Klick darauf verweist ins Innere der Klammer. Dort wird also der Datentyp Undef erwartet...
Mal sehen, was das Zeug noch drauf hat...
"Der Datentyp 'Bool' ist als Rückgabewert für die Funktion 'FLOOR_BOOL' nicht zulässig."
"Der Operand FLOOR_BROT ist nicht definiert."
Also FLOOR_BOOL() ist wie FLOOR_WORD eine wohlbekannte Funktion, liefert aber kein verwertbares Ergebnis.
Solch ein Verhalten des Compilers würde ausserhalb der Siemens- oder TIA-Welt m.E. niemand hinnehmen!!
Bei:
Code:
#Output_1 := FLOOR(#r);
Das bin ich leid und probiere mal, welche "Spezialversionen" von FLOOR das Zeug kennt:
Code:
#Output_1 := FLOOR_WORD(#r);
1.Der Datentyp 'Word' ist als Rückgabewert für die Funktion 'FLOOR_WORD' nicht zulässig.
2.Eine implizite Konvertierung von Datentyp 'Real' nach 'Undef' ist nicht möglich.
Ich hätte ja Verständnis dafür, wenn es kein FLOOR_WORD gäbe, aber offensichtlich wird der Funktionsname ja so akzeptiert. Wenn es
die Funktion aber gibt, was zum Teufel gibt sie dann zurück?
Und wo tritt der zweite Fehler auf? Klick darauf verweist ins Innere der Klammer. Dort wird also der Datentyp Undef erwartet...
Mal sehen, was das Zeug noch drauf hat...
Code:
#Output_1 := FLOOR_BOOL(#r);
Code:
#Output_1 := FLOOR_BROT(#r);
Code:
#Output_1 := FLOOR_BOOL(#r);
Also FLOOR_BOOL() ist wie FLOOR_WORD eine wohlbekannte Funktion, liefert aber kein verwertbares Ergebnis.
Solch ein Verhalten des Compilers würde ausserhalb der Siemens- oder TIA-Welt m.E. niemand hinnehmen!!