| Drehzahlprüfstand und VB 2008 ConsoleEinfache Beispiele zum Einstieg in VB 2008 .NET Hier soll die Drehzahl [1/min] von fischertechnik-Motoren - gemessen an der Abtriebswelle - mit einem einfachen VB-Programm und dem ROBO TX Controller bestimmt werden. Das Programm wird in drei - immer ein wenig komplexeren -Varianten vorgestellt. Hinzu kommt ein Extra-Programm für den Encoder-Motor und eine Ausgabe für die ROBO I/O Extension. Zentraler Punkt des Versuchsaufbaus ist eine Lichtschranke gebildet aus einem
Photowiderstand und einer Linsenlampe, die durch ein Scheibenrad mit sechs
Schlitzen (das Rad ist mit dunklem Karton abgeklebt) unterbrochen werden. Das
Scheibenrad wird durch den zu untersuchenden Motor mit einer Untersetzung Der zu untersuchende Motor ist an M1 angeschlossen, die Lampe der Lichtschranke an O3 und der Photowiderstand an C1 (Zähleingang). Mehr ist nicht. Die Bestimmung der Drehzahl wird dann durch das Meßprogramm in einer vorgegebenen Prüfzeit von 15 Sekunden durch Zählen der Unterbrechungen der Lichtschranke durchgeführt. Am Programmende werden unterschiedliche Daten zur Messung ausgegeben. Programm DrehzahlEinsD, der einfachste Fall : Imports FishFaceTXModule DrehzahlEinsD Const ImpulseUmdrehung = 6 Const Untersetzung = 2 Const Messdauer = 15 Dim tx As New FishFace() Sub Main() tx.OpenController("COM4") tx.SetLamp(Out.O3, Dir.On) tx.ClearCounter(Cnt.C1) tx.SetMotor(Mot.M1, Dir.Left) tx.Pause(Messdauer * 1000) tx.SetMotor(Mot.M1, Dir.Off) tx.SetLamp(Out.O3, Dir.Off) Drehzahl = tx.GetCounter(Cnt.C1)
/ (ImpulseUmdrehung / Untersetzung) * (60 / Messdauer)
tx.CloseController() Anmerkungen : Programm DrehzahlZweiD, -EinsD mit ein paar Schnörkeln Imports FishFaceTXModule DrehZwei Const ImpulseUmdrehung = 6 Const Untersetzung = 2 Const Messdauer = 15 Dim tx As New FishFace() Const Lampe As Out = Out.O3 Const Photo As Cnt = Cnt.C1 Const Motor As Mot = Mot.M1 Sub Main() tx.OpenController("COM4") tx.SetLamp(Lampe, Dir.On) tx.ClearCounter(Photo) tx.SetMotor(Motor, Dir.Left) Console.WriteLine( "Messung gestartet")For i As Integer = 1 To Messdauer tx.Pause(1000) Console.Write(i & "-") Next Console.WriteLine("OK") tx.SetMotor(Motor, Dir.Off) tx.SetLamp(Lampe, Dir.Off) Drehzahl = tx.GetCounter(Photo) / (ImpulseUmdrehung / Untersetzung) * (60 / Messdauer) Console.WriteLine("Drehzahl : {0:##00} 1/min", Drehzahl) tx.CloseController() Console.ReadLine() End Sub End Module Anmerkungen : Programm DrehzahlDreiD : Weitere Versuchsdaten, Fehlerbehandlung. Impulse = tx.GetCounter(Photo) Console.WriteLine("Untersetzung : {0:0.00} : 1", Untersetzung) Console.WriteLine("Messdauer : {0:##00} sec", Messdauer) Console.WriteLine("Impulse : {0:##00}", Impulse) Console.WriteLine("ImpulsInterval : {0:#0.0} msec", 1000 / Impulse * Messdauer) Console.WriteLine("Drehzahl : {0:#00.0} 1/min", Drehzahl) Anmerkungen 1 : #Region "--- ProgramControl ---"Sub Main() Try tx.OpenController("COM4") Console.WriteLine("--- Bei der Arbeit, Abbruch ESC-Taste ---") Action() Finally tx.CloseController() Console.WriteLine("--- FINITO : RETURN drcken ---") Console.Read() Region Anmerkung 2 :
Version mit FishFace2005.DLL und Robo I/O-Extension. Man beachte hier wurde anstellen der 2 : 1 Untersetzung eine 4 : 1 Untersetzung eingebaut, da sonst der Counter nicht mit dem schnellen PowerMotor schwarz funktioniert. DownloadDrehzahlVB enthält die zugehörenden VB2008-Projekte und die erforderlichen DLLs. Zusätzlich gibt es da noch DrehzahlDreiD40 : Eine Variante für VB2008 und die ROBO I/O-Extension, sowie DrehEncZwei eine Sonderausgabe von DrehzahlZweiD für den EncoderMotor bei der zusätzlich dessen Impulse bestimmt werden. Stand : 21.01.2010 |