TIA Syntax einer Zeitmultiplikation

Ludewig

Level-3
Beiträge
1.114
Reaktionspunkte
247
Zuviel Werbung?
-> Hier kostenlos registrieren
Kontext V15 / 1500 / SCL

Das geht:
#Zeit_2 := 100 * #Zeit_1;
(Hypertext: die Zahl 100 sei ein Lint)

Das geht nicht:
#Zeit_2 := Int#100 * #Zeit_1;
(Die Datentypen Int und Time seien nicht mit * kompatibel, gilt auch für USInt, UINT, etc.)

Das geht:
#Zeit_2 := DINT_TO_TIME(Int#100 * TIME_TO_DINT(#Zeit_1));

Preisfrage: Wenn ich die Zahl 100 in Variante 1 durch eine Variable ersetzen will, ohne die Variante 3 zu nutzen, welchen Datentyp nehme ich? Geht das überhaupt?
 
Das hat etwas mit Vereinbarungen zu tun.
Rechnen kannst du mit INT, DINT, REAL etc.
Nicht Rechnen kannst du mit BYTE, WORD, DATE, TIME etc.
Auch wenn die letztgenannten für dich im Grunde noch Zahlen beinhalten sind es doch keine Rechen-Variablen. Du kannst aber jede von denen um-casten - also z.B. TIME_to_DINT. Jetzt weiß der Compiler wieder wie er das handeln soll (eigentlich darf) und nun rechnet er dann auch ohne zu meckern. Es dient vielleicht auch ein bisßchen dazu, dass du dir selber darüber klar wirst / bist was du da machst ...
 
Zurück
Oben