27.10.2013 Aufrufe

F - Epson

F - Epson

F - Epson

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

SPEL+ Sprachreferenz<br />

Einschränkung<br />

Der Unterschied zwischen In und In $<br />

Es ist sehr wichtig, dass der Anwender den Unterschied zwischen den In und In $ versteht. Der In $ -<br />

Befehl arbeitet mit dem internen Merker und hat keinerlei Auswirkungen auf den Hardware I/O des<br />

Roboters. Der In-Befehl arbeitet mit den 512 Hardware Eingabekanälen. Diese Hardwarekanäle sind<br />

getrennte Eingänge, die mit systemexternen Geräten kommunizieren.<br />

Der Unterschied zwischen In und Sw<br />

Der Sw-Befehl gestattet es dem Anwender, jeweils einen Hardware-Eingangskanal zu lesen. Der<br />

Rückgabewert von Sw ist entweder eine 1 oder eine 0, was zeigt, dass der Hardware-Eingangskanal<br />

entweder ein- oder ausgeschaltet ist. Der Sw-Befehl kann jeden der 512 Hardware-Eingänge einzeln<br />

prüfen. Der In-Befehl ist dem Sw-Befehl sehr ähnlich, da auch er verwendet wird, um den Status der<br />

Hardware-Eingabekanäle zu überprüfen. Es gibt jedoch einen deutlichen Unterschied. Der In-Befehl<br />

überprüft gleichzeitig 8 Hardware-Eingabekanäle, wohingegen der Sw-Befehl, wie oben gesehen,<br />

immer nur einen einzigen Kanal überprüfen kann. Er gibt einen Wert zwischen 0 und 255 aus, der dem<br />

Anwender anzeigt, welcher der 8 I/O Kanäle ein- und welcher ausgeschaltet ist.<br />

Verwandte Befehle<br />

In $, InBCD, Off, Off $, On, On $, OpBCD, Oport, Out, Out $, Sw, Sw $, Wait<br />

Beispiel einer In Funktion<br />

Das unten folgende Beispiel gehen wir davon aus, dass die Eingangskanäle 28,29,30 und 31 alle mit<br />

sensorischen Geräten verbunden sind, sodas die Anwendung nicht startet, bis jedes dieser Geräte ein<br />

ON-Signal ausgibt und damit Startbereitschaft signalisiert. Das Programmbeispiel erhält den aktuellen<br />

Wert der letzten 8 Eingänge und stellt vor dem Fortfahren sicher, dass die Kanäle 28, 29, 30, und 31<br />

eingeschaltet sind. Wenn sie nicht eingeschaltet sind (d.h. sie geben einen Wert von 1 aus) wird eine<br />

Fehlermeldung an den Operator ausgegeben und der Task angehalten.<br />

Im Programm wird die Variable "var1" mit der Zahl 239 verglichen, weil der Rückgabewert der<br />

eingeschalteteten Eingänge 28, 29,30 und 31 ( IN (3) ) größer als 240 ist. (Die Eingänge 24, 25, 26,<br />

und 27 werden in diesem Fall vernachlässigt, so dass jeglicher Wert zwischen 240 und 255 dem<br />

Programm gestattet, fortzufahren.)<br />

Function main<br />

Integer var1<br />

var1 = In(3) 'Holt die letzten 8 Eingänge<br />

If var1 > 239 Then<br />

Go P1<br />

Go P2<br />

'Hier werden anderen Bewegungs-Anweisungen ausgeführt<br />

'.<br />

'.<br />

Else<br />

Print "Error in initialization!"<br />

Print "Sensory Inputs not ready for cycle start"<br />

Print "Please check inputs 28,29,30 and 31 for"<br />

Print "proper state for cycle start and then"<br />

Print "start program again"<br />

EndIf<br />

Fend<br />

Es ist nicht möglich, Eingänge vom Online-Fenster aus zu setzen, aber man kann sie überprüfen. Für<br />

die folgenden Beispiele wird davon ausgegangen, dass die Eingabekanäle 1, 5, 15, und 30<br />

eingeschaltet sind.. Alle anderen Eingänge sind aus.<br />

> print In(0)<br />

34<br />

> print In(1)<br />

128<br />

> print In(2)<br />

0<br />

> print In(3)<br />

64<br />

SPEL+ Language Reference Rev 3.5 219

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!