C Control I Unit-M 2.0 BASIC 5 Vdc Inputs / outputs 16 x digital I/Os/8 x analog or digital I/Os/2 x analogue outputs (s 198822 Data Sheet

Product codes
198822
Page of 73
MATH FUNCTIONS
Alle Mathematischen Funktionen und Operationen sind auf Byte oder Word Grösse beschränkt. Das 
bedeutet, dass selbst wenn Einggangs und Ausgangsgrössen im Wertebereich eine Byte/Word  liegen, dafür 
Sorge getragen werden muss, dass Zwischenergebnisse bei Berechnungen keinen Überlauf erzeugen.
Beispiel für Byte Variablen:  x=100*3/2
Das Ergebnis ist 150 und ist im gültigen Wertebereich. Die Berechnung 100*3 jedoch führt zu einem 
Überlauf und damit zu einem falschen Ergebnis. Hier sieht man deutlich dass die Reihenfolge der 
Berechnung eines Term durchaus von Bedeutung ist.
x=100/2*3 führt zu einem richtigen Ergebnis
Die MATH FUNCTIONS für Float Variablen sind im Kapitel FOATING POINT MODULE beschrieben.
GRUNDRECHENARTEN
Syntax: Variable = value1 [operator] value2 
 Variable: Variable Byte oder Word typ 
 value1: Variable, Wert oder Konstante, Byte oder Word Typ 
 value2: Variable, Wert oder Konstante, Byte oder Word Typ
operator:  division /
   multiplikation *
               addition +
               subtraktion
INC DEC (INKREMENT , DECREMENT)  
Für eine Inkrementierung um 1, wie sie häufig vorkommt gibt es die eine bedeutend schnellere und Speicher 
sparende Variante. INC erhöht dabei den Wert der Variablen, DEC verringert den Wert der Variablen um 
jeweils eins. 
Traditionelle Variante
Variante mit INC 
Syntax:  INC(Variable) 
Variable: Variable Byte oder Word Typ 
INC und DEC haben eine deutliche höhere Ausführungsgeschwindigkeit ( 66us gegenüber 196us ) und 
benötigen auch weniger Token ( 2 Token gegenüber 8 Token )
Bei  vielen Anwendungen welche eine FOR TO NEXT Schleife benutzen ist die Schrittweite (STEP) gleich 
eins. Auch für diese Fälle sind die wesentlich schnelleren Befehle INC und DEC zu bevorzugen.
         Die FOR TO NEXT Variante: 650us                         Die Variante mit INC: 230us
2
FOR MyByte= 0 to 10
NEXT
MyByte=0
#LOOP
INC MyByte
IF MyByte<10THEN GOTO LOOP
MyWord=MyWord + 1
INC MyWord
MyWord=Value1 / Value2
MyWord=Value1 * Value2
MyWord=Value1 + Value2
MyWord=Value1 - Value2