| |
Programmbeispiel : Garagentor
Modell Garagentor aus Kasten Profi E-Tec
Funktion :
Tor wird zuerst geschlossen (Motor rechts). Tor wird geöffnet (Motor links)
durch Schließen von I1. Tor wird geschlossen (Motor rechts) durch Schließen
von I2. Schranke kann nur geschlosssen werden, wenn sie vorher geöffnet wurde
und umgekehrt. (nach Text Handbuch). Begrenzung des Torweges durch parallel
geschaltete Taster an I3. An I1 ist ein Reed-Kontakt angeschlossen, Betätigung
durch einen Magneten (ein schlichter Taster tuts auch). Programmeinstellung am
DIP : 1 on, 2 on, 3 off, 4 on. Anmerkung : der Serien E-Tec Module hat ein
transparentes Oberteil.
Version 1
LLWin 3.0 |
Version 2a
Sub Main
Dim Geschlossen As Boolean
SetMotor ftiM1, ftiRechts
WaitForTime 300
WaitForInput ftiE3
SetMotor ftiM1, ftiAus
Geschlossen = True
Do
If Geschlossen And GetInput(ftiE1) Then
SetMotor ftiM1, ftiLinks
WaitForLow ftiE3
WaitForHigh ftiE3
SetMotor ftiM1, ftiAus
Geschlossen = False
ElseIf (Not Geschlossen) And _
(Not GetInput(ftiE2)) Then
SetMotor ftiM1, ftiRechts
WaitForLow ftiE3
WaitForHigh ftiE3
SetMotor ftiM1, ftiAus
Geschlossen = True
End If
Loop Until Finish()
End Sub
Programmiersprache : VBA, erstellt mit vbaFish.
|
Version 2b
Sub Main
If Not GetInput(ftiE4) Then
SetMotor ftiM1, ftiRechts
WaitForInput(ftiE4)
SetMotor ftiM1, ftiAus
End If
Do
If GetInput(ftiE4) And GetInput(ftiE1) Then
SetMotor ftiM1, ftiLinks
WaitForInput ftiE3
SetMotor ftiM1, ftiAus
ElseIf GetInput(ftiE3) And GetInput(ftiE2) Then
SetMotor ftiM1, ftiRechts
WaitForInput(ftiE4)
SetMotor ftiM1, ftiAus
End If
Loop Until Finish()
End Sub
Programmiersprache : VBA, erstellt mit vbaFish. |
Anmerkungen :
- Die Versionen 1 (LLWin) und 2a entsprechen der E-Tec Lösung. Version 2a
nutzt einen zusätzlichen E-Eingang des Interfaces.
- Im ersten Block wird bei Anlauf des Programms das Tor geschlossen.
- Bei der E-Tec Lösung mit parallel geschalteten Endtastern kann nicht
erkannt werden, ob das Tor offen, geschlossen oder irgendwo dazwischen
steht. Deswegen wird verdachtsweise erstmal 0,3 Sek. nach rechts
gefahren, um vom möglichen Endtaster E3 Tor offen wegzukommen, dann
erst wird der Endtaster E3 Tor zu angefahren. Das ergibt bei
geschlossenem Tor ein wenig Ruckeln.
- Bei einem zusätzlichen E-Eingang für Tor zu (E4) kann direkt der
Endtaster E4 Tor zu angefahren werden. Die If-Klammer verhindert ein
Ruckeln bei Tor zu.
- In der Do ... Loop Schleife wird endlos auf Anforderungen zum Öffnen bzw.
Schließen gewartet. Das wird nur ausgeführt, wenn das Tor in der
zulässigen Stellung steht.
- Da bei der ersten Variante nicht erkannt werden kann, ob das Tor offen
oder zu ist, wird eine entsprechende Variable eingeführt. Hier auch wieder
ein "Freifahren" vom jeweiligen Endtaster und dann ein Anfahren
des Ziel-Endtasters. Da hier sicher ist, daß immer ein Endtaster gedrückt
ist, kann auf das immer ein wenig problematische Warten verzichtet werden.
An seine Stelle tritt ein Freifahren über WaitForLow und ein Zielanfahren
mit WaitForHigh.
- Bei Version 2a tritt E4 anstelle der Variablen. Da immer ein anderer
E-Eingang angefahren wird, kann auf das Freifahren verzichtet werden.
- Der Abbruch des gesamten Programms erfolgt über die ESC-Taste (Entf) bzw.
den HALT-Button auf der Form von vbaFish.
Alle Sources in eTec.ZIP
Stand : 03.11.2003
|