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". Hier 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
|