PneuTür

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

Pneumatic Robots : Einführendes Programm

Visual Basic 6 & FishN632.DLL

PneuTuer.MDL ist das LLWin 2.1 Betriebsprogramm für das Modell "Pneumatische Tür" des neuen Konstruktionskastens "Pneumatic Robots". Elektromagnetisches 3/2 VentilHier eine Visual Basic 6 Version (VB5 ist auch möglich) unter Nutzung von FishN632.DLL. Das Programm orientiert sich weitgehend an der Struktur des LLWin-Programmes. Es wurde bewußt einfach gehalten um zu einem einfachen Modell auch einen einfachen Einstieg in die Visual Basic Programmierung als Alternative zu LLWin aufzuzeigen. Nachfolgend werden wichtige Details vorgestellt. Das vollständige Programm ist in PneuTuer.ZIP enthalten. Zusätzlich erforderlich ist die aktuelle Version von FishN632.DLL (Dez 99) in FishN632.ZIP. Für Fans der schlichten DLLs gibt es auch noch eine umFish.DLL-Version. Im Bedarfsfall bitte beim Autor melden.

Modellkonstanten

' --- Modellkonstanten -----------------------

Const cvTuerAuf = 1, cvTuerZu = 2 ' --- MagnetVentile
Const ctTuerZu = 1 ' --- Taster
Const cpLichtSchranke = 2 ' --- Photowiderstand
Const clLichtSchranke = 3 ' --- Lampe
Const cmKompressor = 4 ' --- Motor

Die Modellkonstanten werden im Programm verwendet um es lesbare zu machen

Formalismus drumrum

Dim ft As clsFishFace 

Für den Zugriff auf FishN632.DLL (am Programmbeginn) und in Form_Load die

' --- Programm Initialisierung ---

Set ft = New clsFishFace ' --- Aktivieren von FishN632.DLL
' Verbindung zum Interface
If ft.OpenInterface("COM1") = ftiFehler Then ' --- COM1 ggf. Anpassen --COM1 ---
MsgBox "InterfaceProblem", vbExclamation + vbOKOnly, "PneuTuer"
Unload Me
End If

in Form_Unload das Aufräumen

' --- Aufräumen ---

ft.CloseInterface
Set ft = Nothing

PneuTuer.MDL Routinen

Private Sub TuerMain()
' --- Hauptprogramm, Schleife, die über ft.NotHalt beendet wird (cmdAction) ---
  Init                               ' --- Auf Ausgangsstellung
  Do                                 ' --- Schleife bis NotHalt
    ft.WaitForInput ctTuerZu, False ' Warten bis Tür etwas geöffnet wird
    TuerAuf                          ' Tür öffnen
    ft.WaitForInput cpLichtSchranke, False ' Schließen, wenn Lichtschranke unterbrochen-
    TuerZu                           ' Tür schließen
  Loop Until ft.NotHalt
End Sub

Private Sub Init()
' --- Initialisierung -----------
  ft.SetMotor clLichtSchranke, ftiEin ' --- Lampe Lichtschranke ein
  ft.SetMotor cmKompressor, ftiEin    ' --- Kompressor ein
  ft.WaitForTime 6000           ' --- Warten, bis Druck aufgebaut
  ft.SetMotor cvTuerAuf, ftiAus ' --- Tür schließen
  ft.SetMotor cvTuerZu, ftiEin  ' Schließventil ein
  ft.WaitForInput ctTuerZu      ' Warten auf Tür zu
  ft.SetMotor cvTuerZu, ftiAus  ' --- Abschalten Schließventil
End Sub

Private Sub TuerAuf()
' --- Tür öffnen --------
  ft.SetMotor cvTuerZu, ftiAus   ' --- Schließventil aus
  ft.SetMotor cvTuerAuf, ftiEin  ' --- Öffnerventil ein
  ft.WaitForTime 500              ' Warten auf Öffnen
  ft.SetMotor cvTuerAuf, ftiAus  ' --- Öffnerventil aus
' --- fehlt in der PneuTuer.MDL-Version deswegen Schließen sehr zögerlich
End Sub

Private Sub TuerZu()
' --- Tür Schließen ---
  ft.SetMotor cvTuerAuf, ftiAus ' --- Öffnerventil aus
  ft.SetMotor cvTuerZu, ftiEin  ' Schließventil ein
  ft.WaitForInput ctTuerZu      ' Warten auf Schließen
  ft.SetMotor cvTuerZu, ftiAus  ' --- Schließventil aus
End Sub

Ablaufsteuerung

Private Sub cmdAction_Click()
' --- Starten / Beenden der Türsteuerung ---
If cmdAction.Caption = "START" Then ' --- Start
  cmdEnde.Enabled = False     ' um ein wildes Beenden des
  cmdAction.Caption = "HALT"  ' gesamten Programms zu verhindern
  ft.NotHalt = False          ' --- Endesteuerung
  TuerMain                     ' --- TürSteuerung
Else                           ' --- Beenden
  ft.NotHalt = True           ' Ende einleiten
End If
' --- Ende
  ft.ClearMotors               ' alle M-Ausgänge aus
  cmdEnde.Enabled = True      ' ENDE wieder zulassen
  cmdAction.Caption = "START" ' erneuten START zulassen
  cmdEnde.SetFocus
End Sub

Entspricht den Run-Funktionen der LLWin-Umgebung