| Funktionsmodell des Blockierverhaltens eines ABS-SystemsDas Modell besteht aus einem Scheibenrad, das über einen Mini-Motor mit Getriebe angetrieben wird. Das Scheibenrad steht für die Bremsscheibe einer Scheibenbremse am Auto. Gebremst wird mit zwei Pneumatic-Zylindern mit Rückholfeder (Kasten PneuVac). Auf die Enden der Kolbenstangen wurden die grünen befestigungsteil von den Hydraulik-Zylindern geschoben um eine ebene Fläche zu haben (Die roten 15x30x4 Teile mit der Nut hinten müßten es auch tun).Die Zylinder werden durch ein einzelnes Magnetventil geschaltet. Luft gibts z.B. aus dem PneuVac-Kompressor. Eine Lichtschranke am Scheibenrad wird eingesetzt um feststellen zu können, ob sich die Scheibe noch dreht. Da das Scheibenrad allerhand Öffnungen hat, wurde es mit schwarzem Karton abgeklebt, nur die Schlitze bleiben offen. Gebremst wird mit dem Taster links unten im Bild. Die Bremskraft selber wird durch unterschiedliches Anziehen der Befestigungsklemme der Scheibe eingestellt. Beim Start des Modells und leerem Tank leuchtet die gelbe Lampe links oben um einen Minderdruck anzuzeigen. Sie wird über das alte blaue "Druckkissen" und einen Taster betätigt.
Interfacebelegung : Die Verkabelung ist etwas zufällig und hat sich nach greifbaren Kabellängen und Bequemlichkeit gerichtet. Da die Motoren nur in einer Richtung betrieben werden, hätte man sie auch an O-Ausgänge anschließen können. Das gilt gleichermaßen für die Lampe der Lichtschranke. M1 : Kompressormotor Anmerkungen zum Programm : Von links : Hauptthread mit Start der Motoren und Bremspedal, Thread zur anfänglichen Drucküberwachung, Thread zur Überwachung der Scheibendrehung und ein Thread zum Abschalten der Bremszylinder bei Blockieren (Stotterbremse). Die Überwachung der Bremsscheibe geschieht durch eine Lichtschranke, die schlicht die Impulse, die durch ein sich drehendes Scheibenrad ausgelöst werden, zählt. Der Impulszähler wird bei jedem Einschalten der Bremszylinder auf 0 zurückgesetzt (auch beim "Stottern").
Hier eine Variante des Modells mit einem Antriebsrad, das durch eine Rolle angetrieben wird. Die Rollenrädchen wurden auf ein 50 mm lange Stahlachse aufgepresst, auf der Stahlachse steckt eine Klemmhülse mit 30 mm schwarzer Achse. Durch leichten Fingerdruck auf auf den federnden Gelenkbaustein neben dem Rad kann man die Reibung erhöhen und so das "Stottern" vermeiden oder reduzieren. Das Programm selber ist gleich geblieben.
VB 2008 Lösung Und hier noch die Source eines entsprechenden VB 2008 Programmes auf Basis des Templates FishWindowsVB (im Download-Päckchen befindet sich auch noch eine gleiche C# 2008 Lösung). Auf den Thread Scheibendrehung konnte hier verzichtet werden, da dies intern durch umFish40.DLL erledigt wird. Public Class ABSdemoVB2008Dim mKompressor As Out = Out.M1 Dim mBremsscheibe As Out = Out.M2 Dim oMinderdruck As Out = Out.O5 Dim oBremszylinder As Out = Out.O6 Dim mLichtschranke As Out = Out.M4 Dim iMinderdruck As Inp = Inp.I6 Dim iLichtschranke As Inp = Inp.I7 Dim iBremstaster As Inp = Inp.I8 Dim ft As New FishFace() Dim Drehen As Thread Dim Druck As Thread Private Sub Action() Drehen = New Thread(New ThreadStart(AddressOf DrehenRun)) Druck = New Thread(New ThreadStart(AddressOf DruckRun)) Drehen.IsBackground = True Druck.IsBackground = True Druck.Start() Drehen.Start() ft.SetMotor(mKompressor, Dir.On) ft.SetMotor(mBremsscheibe, Dir.On) ft.SetMotor(mLichtschranke, Dir.On) ft.Pause(1234) Do ft.WaitForInput(iBremstaster) ft.SetLamp(oBremszylinder, Dir.On) ft.WaitForInput(iBremstaster, False) ft.SetLamp(oBremszylinder, Dir.Off) Loop Until ft.Finish() Drehen.Join() End Sub Private Sub DruckRun() ft.SetLamp(oMinderdruck, Dir.On) ft.WaitForInput(iMinderdruck, False) ft.SetLamp(oMinderdruck, Dir.Off) End Sub Private Sub DrehenRun() Do While (Not ft.NotHalt) ft.Pause(300) If ft.GetInput(iBremstaster) Then If ft.GetCounter(iLichtschranke) > 0 Then ft.SetCounter(iLichtschranke, 0) ft.SetLamp(oBremszylinder, Dir.On) Else ft.SetLamp(oBremszylinder, Dir.Off) End If End If Loop End Sub
--- Program Control --- Download ABS.zip enthält die ROBO Pro, C# 2008 und
VB 2008 Source Stand : 01.06.2009 |