| |
Computing Experimental und Zählwerk
1974 kam der
Zusatzkasten em6 :
Zählwerk (30 242) ins fischertechnik Angebot. Das ist ein Relais dessen Anker
bei jeder Betätigung (ein/aus) eine Zählscheibe um eine Position
weiterrückt. Wenn man keins besitzt,
kann man es naturlich auch selber bauen. Hier ein Bild aus "fischertechnik
hobby : Experimente+Modelle" hobby 4 Band 1 (39 541).
Hier ein Einsatzbeispiel mit dem Original und Programmen in VBScript, VB6,
Delphi4 und
LLWin3.0 :
In der Bauanleitung zu Computing Experimental wird auf den Seiten 10/11 eine
Gabellichtschranke
Fork Light Barrier
Barrage photoeléctrique de transmission
beschrieben :
wenn man sie mit dem Zählwerk em6 (30 242) ausrüstet, kann das in etwa so
aussehen :
Motor an M1, Lampe an M3 und das Zählwerk an M2. Als Photowiderstand wurde
hier der alte, große eingesetzt : M3. Die gelbe Lampe ist parallel zum
Zählwerk geschaltet. Das Scheibenrad wurde mit rotem Samt abgeklebt, nur ein
Schlitz bleibt frei.
Dazu wurde ein Programm erstellt (in VBScript / FishFa30.DLL, auch in Delphi4
und LLWin), das über die Gabellichtschranke
die Runden zählt, die das (abgeklebte) Scheibenrad so dreht. Pro Runde wird das
Zählwerk um eins weitergeschaltet und die gelbe Lampe blinkt dazu, mehr
nicht :
Option Explicit
Dim ft
Const ftiEin = 1, ftiAus = 0
Const mMotor = 1, mZahler = 2, mLampe = 3, ePhoto = 1
Set ft = CreateObject("FishFa30.FishFace")
ft.OpenInterface("COM1")
MsgBox "Modellbetrieb gestartet (Ende ESC)"
ft.SetMotor mLampe, ftiEin
ft.SetMotor mMotor, ftiEin
Do
If ft.GetInput(ePhoto) Then ft.SetMotor mZahler, ftiEin _
Else ft.SetMotor mZahler, ftiAus
Loop Until ft.Finish
ft.CloseInterface
MsgBox "Modellbetrieb beendet" |
Was tut sich da :
- CreateObject : Eine Instanz von der Klasse FishFace der FishFa30.DLL wird
erstellt (FishFa30.DLL wird zusammen mit vbFish30Setup.EXE registriert).
- Verbindung zum Interface herstellen, ggf. COM1 ändern!
- Lampe für Lichtschranke an, Motor an
- Do - Loop Schleife, Abbruch durch die ESC-Taste
- Verbindung zum Interface schließen
- MsgBox : Nachrichten an den Bediener, damit man auch etwas von der Sache
mitbekommt (der Start erfolgt durch Klick auf die *.VBS-Datei).
Wenn man denn kein Zählwerk hat, keins bauen will und auch moderner eingerichtet ist, läßt
man das Zählwerk einfachweg und blinkt dann nur noch :
Das Programm ist das gleiche, da das Scheibenrad hier nicht abgeklebt ist, werden aber keine Umdrehungen sondern
Schlitze im Rad angezeigt.
Wenn man mehr vom Blinken haben will, kann man es verlängern :
statt
If ft.GetInput(ePhoto)
Then ft.SetMotor mZahler, ftiEin _
Else ft.SetMotor mZahler, ftiAus
heißt es dann
If
ft.GetInput(ePhoto) Then
ft.SetMotor mZahler, ftiEin
ft.Pause 1000
ft.SetMotor mZahler, ftiAus
End If
Wenn mans gern elegant hätte (und gleichzeitig die genaue Schlitzbreite lang
gelb sehen möchte) geht das so :
If
ft.GetInput(ePhoto) Then
ft.SetMotor mZahler, ftiEin
ft.WaitForLow ePhoto
ft.SetMotor mZahler, ftiAus
End If
WaitForLow hält das Programm solange an, bis die Lichtschranke wieder
unterbrochen ist. Wenn man schon auf das Zählwerk verzichtet, kann man auch
den Spieß umdrehen und das Scheibenrad per Programm (VBScript und Delphi4) steuern :
Option Explicit
Dim ft
Const ftiEin = 1, ftiAus = 0, ftiLinks = 1, ftiRechts = 2
Const mMotor = 1, mZahler = 2, mLampe = 3, ePhoto = 1
Set ft = CreateObject("FishFa30.FishFace")
ft.OpenInterface("COM1")
MsgBox "Modellbetrieb gestartet (Ende ESC)"
ft.SetMotor mLampe, ftiEin
Do
ft.SetMotor mMotor, ftiLinks
ft.SetMotor mZahler, ftiEin
ft.WaitForChange ePhoto, 6
ft.SetMotor mMotor, ftiRechts
ft.SetMotor mZahler, ftiAus
ft.WaitForChange ePhoto, 12
Loop Until ft.Finish
ft.CloseInterface
MsgBox "Modellbetrieb beendet" |
Was tut sich da :
- Das meiste ist bekannt (s.o.), neu ist der Inhalt der Do-Schleife
- Dem Motor wird nicht mehr vor der Schleife pauschal angestellt, sondern in
der Schleife mal links- und mal rechtsrum. Dann wird mit WaitForChange auf 3
bzw. 6 Schlitze in dem Scheibenrad gewartet (WaitForChange zählt sowohl ein
wie aus der Lichtschranke) und dann die Richtung gewechselt. Damits nicht zu
langweilig ist, wird auch noch die Lampe, ggf. auch das Zählwerk,
geschaltet.
Die oben vorgestellten VBS-Programme sind in zahler.zip
zusammengefaßt. Enthalten sind Versionen für VBScript, VB6, Delphi4 und
LLWin. Zusätzlich ist vbFish30Setup.EXE
bzw. delphiFish30Setup.EXE erforderlich.
Eine installierte Version 20 tuts auch, in den Sources ist dann die 30 durch
eine 20 zu ersetzen.
Wo hier schon soviel Verzicht geleistet wurde, noch eine Lösung ganz
ohne Computer, aber sehr schönen Einstellmöglichkeiten : Die
Elektronik-Bausteine aus den Jahren 1973 ... :
Von links :
-
Der dicker rote Trafo (die grauen mit Drehknopf gehen auch,
aber mühsam) mit Anschluß von Gleichrichter, Motor und Lampe für
Lichtschranke.
-
Grundbaustein mit Anschluß des Photowiderstandes (Drehknopf
ca. 5) an E1 und 3, Verbinden von 7 - 9. Drehknopf ca. 6 bei Leuchten der
Lampe auf dem Zähler für eine halbe Runde.
-
Monoflop mit Sp von A2(Grundbaustein) und Zeit - kurz.
-
Relais mit E von Q(Monoflop) und Anschluß des Zählers an
a3, b3, Strom von +/- des Bausteins an a1, b1.
Und jetzt noch eine verblüffend einfache Lösung mit dem Siemens
LOGO! Steuerrelais : Bei
Verzicht auf den Hauptschalter (bei der Lösung mit den Elektronik-Bausteinen
gibt es keinen) würden noch die Blöcke I1 und B01 samt Verbindungen entfallen.
B02 ist eine Ausschaltverzögerung von 1 Sek., die die Lampe am Zähler
nachleuchten läßt.
|