• Keine Ergebnisse gefunden

Hour-Funktion

Gibt die Betriebszeit der Steuerung aus.

Syntax Hour

Rückgabewerte

Gibt die kumulierte Betriebszeit des Steuergerätes aus (reelle Zahl, in Stunden).

Verwandte Befehle Time

Beispiel einer Hour-Funktion

Print "Number of controller operating hours: ", Hour

F

If…Then…Else…EndIf-Anweisung

160 EPSON RC+ 5.0 SPEL+ Sprachreferenz Rev.1a

If…Then…Else…EndIf-Anweisung

Führt Befehle auf der Basis einer angegebenen Bedingung aus.

Syntax

condition Jede gültige Bedingung, die ein Wahres (beliebige Zahl außer 0) oder Falsches Resultat ausgibt (als 0 ausgegeben). (Beispielbedingungen s.u.)

stmtT1 Wird ausgeführt, wenn die Bedingung Wahr ist. (Hier können Mehrfachanweisungen in geblocktem If...Then...Else -Stil geschrieben werden.)

stmtF1 Wird ausgeführt, wenn die Bedingung Falsch ist. (Hier können Mehrfachanweisungen in geblocktem If...Then...Else -Stil geschrieben werden.)

Beschreibung

(1) If...Then...Else führt stmtT1 aus, usw., wenn die bedingte Anweisung Wahr ist. Ist die Bedingung Falsch, wird stmtF1, usw., ausgeführt. Das Else-Element des If...Then...Else-Befehls ist optional.

Wird die Else-Anweisung weggelassen und die bedingte Anweisung ist Falsch, wird die Anweisung ausgeführt, die auf die EndIf-Anweisung folgt. Für geblockte If...Then...Else-Anweisungen muss die EndIf-Anweisung den Block schließen, unabhängig davon, ob ein Else genutzt wird oder nicht.

(2) If...Then...Else kann auch nicht-geblockt verwendet werden. Dies ermöglicht, Anweisungen für If...Then...Else in dieselbe Zeile zu schreiben. Bitte beachten Sie, dass die EndIf–Anweisung nicht benötigt wird, wenn If...Then...Else in nicht geblockter Form verwendet wird. Wenn die in dieser Zeile spezifizierte Bedingung erfüllt wird (Wahr), werden die Anweisungen zwischen Then und Else ausgeführt. Wenn die Bedingung nicht erfüllt wird (Falsch), werden die Anweisungen

ausgeführt, die auf Else folgen. Das Else-Element von If...Then...Else wird nicht benötigt. Existiert kein Else-Schlüsselwort, wird die Steuerung an die nächste Anweisung im Programm

weitergegeben, wenn die If-Bedingung Falsch ist.

Der logische Wert der bedingten Anweisung ist jede Zahl außer 1, wenn die Anweisung Wahr ist und 0, wenn die Anweisung Falsch ist.

S

If…Then…Else…EndIf-Anweisung

Logische Vorgänge wie And, Or und Xor können ebenfalls verwendet werden.

Verwandte Befehle

Else, Select...Case, Do...Loop Beispiel einer If/Then/Else-Anweisung

<Einzeilige If...Then...Else>

Das folgende Beispiel zeigt eine einfache Funktion, die einen Eingang überprüft, um festzustellen, ob ein bestimmter Ausgang ein- oder ausgeschaltet werden soll. Dieser Task könnte ein Background-E/A-Task sein, der fortwährend läuft.

Function main Do

If Sw(0) = 1 Then On 1 Else Off 1 Loop

Fend

<Geblockte If...Then...Else>

Das folgende Beispiel zeigt eine einfaché Funktion, die einige Eingänge überprüft und den Status dieser Eingänge druckt.

If Sw(0) = 1 Then Print "Input0 ON" Else Print "Input0 OFF"

'

<Beispiele mit anderer Syntax>

If x = 10 And y = 3 Then GoTo 50

If test <= 10 Then Print "Test Failed"

If Sw(0) = 1 Or Sw(1) = 1 Then Print "Everything OK"

In-Funktion

162 EPSON RC+ 5.0 SPEL+ Sprachreferenz Rev.1a

In-Funktion

Gibt den Status des spezifizierten Eingangsports aus. Jeder Port umfasst 8 Eingangskanäle.

Syntax

In(portNumber)

Parameter

portNumber Integer-Zahl, die für ein Achtel eines Bitports (ein Byte) steht.

Rückgabewerte

Gibt einen Integer-Wert zwischen 0 und 255 aus. Der Rückgabewert beträgt 8 Bits. Jedes dieser Bits entspricht einem Eingangskanal.

Beschreibung

In gibt Ihnen die Möglichkeit, die Werte von 8 Eingangskanälen gleichzeitig zu betrachten. Der In-Befehl kann verwendet werden, um den Status der 8 E/A-Kanäle in einer Variable zu speichern.

Alternativ kann er auch mit dem Wait-Befehl verwendet werden, um zu warten, bis eine spezifische Bedingung erfüllt ist, die mehr als einen E/A-Kanal einschließt.

Da 8 Kanäle zeitgleich überprüft werden, liegen die Rückgabewerte im Bereich von 0 bis 255. Bitte beachten Sie die Tabelle unten, um zu sehen, wie die Rückgabewerte den einzelnen

Eingangskanälen entsprechen.

Eingangskanal-Ergebnis (unter Verwendung von Port 0)

Rückgabewerte 7 6 5 4 3 2 1 0

1 Aus Aus Aus Aus Aus Aus Aus Ein

5 Aus Aus Aus Aus Aus Ein Aus Ein

15 Aus Aus Aus Aus Ein Ein Ein Ein

255 Ein Ein Ein Ein Ein Ein Ein Ein

Eingangskanal-Ergebnis (unter Verwendung von Port 3)

Rückgabewerte 31 30 29 28 27 26 25 24

InBCD, MemIn, MemOff, MemOn, MemSw, Off, On, OpBCD, Oport, Out, Sw, Wait

F

In-Funktion

Beispiel einer In-Funktion

Im unten stehenden Beispiel wird davon ausgegangen, dass die Eingangskanäle 28, 29, 30 und 31 mit sensorischen Geräten verbunden sind, so dass die Anwendung nicht startet, bevor jedes dieser Geräte ein ON-Signal ausgibt und damit Startbereitschaft signalisiert. Das Programmbeispiel erhält den aktuellen Wert der letzten 8 Eingänge und stellt vor dem Fortfahren sicher, dass die Kanäle 28, 29, 30 und 31 eingeschaltet sind. Wenn sie nicht eingeschaltet sind (d. h. sie geben einen Wert von 1 aus) wird eine Fehlermeldung an den Benutzer ausgegeben und der Task wird angehalten.

Im Programm wird die Variable "var1" mit der Zahl 239 verglichen, da das Ergebnis von In(3) 240 oder größer sein muss, damit die Eingänge 28, 29, 30 und 31 alle eingeschaltet sein können. (Die

Eingänge 24, 25, 26 und 27 werden in diesem Fall vernachlässigt, so dass jeder Wert zwischen 240 und 255 dem Programm gestattet, fortzufahren.)

Function main Integer var1

var1 = In(3) 'Holt die letzten 8 Eingänge If var1 > 239 Then

Go P1 Go P2

'Hier werden anderen Bewegungs-Anweisungen ausgeführt '.

Es ist nicht möglich, Eingänge vom Befehlseingabefenster aus zu setzen, aber man kann sie überprüfen. Für die folgenden Beispiele wird davon ausgegangen, dass die Eingabekanäle 1, 5, 15 und 30 eingeschaltet sind.. Alle anderen Eingänge sind ausgeschaltet.

> print In(0)

InBCD-Funktion

164 EPSON RC+ 5.0 SPEL+ Sprachreferenz Rev.1a

InBCD-Funktion

Gibt den Eingangsstatus von 8 Eingängen im BCD-Format aus. (Binär codierte Dezimazahl) Syntax

InBCD(portNumber)

Parameter

portNumber Integer-Zahl, die für ein Achtel eines Bitports (ein Byte) steht.

Rückgabewerte

Gibt den Eingangsstatus des Eingansports (0-99) als binär codierte Dezimalzahl (0-9) aus.

Beschreibung

InBCD liest gleichzeitig 8 Eingangskanäle unter Verwendung des BCD-Formats. Der portNumber-Parameter für den InBCD-Befehl definiert, welche 8er-Eingangsgruppe gelesen werden soll, wobei portNumber = 0 für die Eingänge 0-7 steht , portNumber = 1 für die Eingänge 8-15 steht, etc.

Der sich ergebende Wert der 8 Eingänge wird im BCD-Format ausgegeben. Der Rückgabewert kann eine oder zwei Stellen zwischen 0 und 99 haben. Die erste Stelle (oder die Zehnerstelle) entspricht den oberen 4 Ausgängen in der Gruppe von 8 Ausgängen, ausgewählt durch portNumber. Die zweite Stelle (oder die Einerstelle) entspricht den unteren 4 Ausgängen in der Gruppe von 8 Ausgängen, ausgewählt durch portNumber.

Da gültige Ausgänge im BCD-Format im Bereich von 0 bis 9 für jede Stelle liegen, kann nicht jede E/A-Kombination ausgeben werden. Die Tabelle unten zeigt einige der möglichen E/A-Kombinationen und ihre entsprechenden outnum-Werte, davon ausgehend, dass die portNumber 0 ist.

Im Dokument Änderungen in dieser Handbuchrevision (Seite 168-173)