Garagentor

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

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