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
COMPARES
Vergleichen von zwei Variablen 
Als Compares sind die Vergleichsoperationen 
<, >, =, <=, >=
 zusammengefasst. 
Ein Compare muss sich immer auf zwei Variablen beziehen. 
Wie sie vielleicht gemerkt haben fehlt der <> Operator. Er wird ersetzt durch:
IF NOT(MyFloat1=MyFloat2) THEN.....
FLOATING POINT ERRORS
Verbotene Rechenoperationen
Obwohl die  Berechnungen so ausgelegt  sein müssen,  dass keine verbotenen  Operationen durchgeführt 
werden (z.B. Division durch Null) kann es im Betrieb z.B. beim Ausfall eines Sensors einer Regelung zu 
diesen   Situationen   kommen.   Da   Rechnungsergebnisse   in   solchen   Fällen   durchaus  plausibel  erscheinen 
können obwohl sie total falsch sind, haben Sie die Möglichkeit  eine Fehlerkontrolle zu implementieren und 
im Fall eines Fehlers gezielt darauf zu reagieren.
ON ERROR GOTO 
Fügt in den compilierten Programmcode selbstständig eine Abfrage auf Fehler ein und verzweigt im Falle 
eines Fehlers auf Ihre Fehlerbehandlungs-Routine. Um die Art des Fehlers zu identifizieren beinhaltet die 
Variable  ERR.NUMBER  einen Fehlercode.   Der Fehlercode wird  vor der nächsten Gleitkommaoperation 
selbstständig gelöscht.
Dieses kleine Beispiel demonstriert die Anwendung. 
Es erzwingt durch fortgesetzte Multiplikation einen 
Überlauf. Der Fehler wird angezeigt und der Überlauf 
in der Variablen RESULT beseitigt.
  
5
IF MyFloat1>MyFloat2 THEN.....
IF FLOAT(MyWord) > MyFloat1 THEN......
LOOP UNTIL  MyFloat1>MyFloat2
LOOP UNTIL FLOAT(MyWord) > MyFloat1 
IF NOT(MyFloat1=MyFloat2) THEN.....
0  No error 
1  Overflow error 
2  Underflow error 
3  Division by Zero error 
4  Square root of negative number 
5  Number too large/small to convert to integer
FUNCTION FPE()
ON ERROR GOTO ER
#x
RESULT=1
DO
RESULT=RESULT*100
LCD.POS 1,1
LCD.PRINT RESULT & "              "
pause 20
LOOP
'-------- DISPLAY AN ERROR ---------------
#ER
LCD.POS 2,1
LCD.PRINT "ERROR:" & ERR.NUMBER
BEEP 5,5,50
LCD.POS 2,1 
LCD.PRINT "                    "
goto x
END FUNCTION