VB2008 : Dreipunkt

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

Dreipunktregelung

Eine Lampe an Out.O7 sitzt auf auf einem Schneckenantrieb mit Motor an Mot.M1. Sie soll den Photowiderstand an Unv.I4 mit einem vorgegeben SollWert so beleuchten, daß der Meßwert an Unv.I4 stets innerhalb vorgegebener Grenzen (LimitHigh / LimitLow) bleibt.

Lösung mit Klasse FishFace

Imports FishFaceTX
Public
Class DreipunktunvVB
  Dim tx As New FishFace()
  Dim ReglerMotor As Mot = Mot.M1
  Dim LichtSensor As Unv = Unv.I4
  Dim LichtQuelle As Out = Out.O7
  Dim Sollwert, LimitHigh, LimitLow, ActualValue As Integer

Private Sub numSollWert_ValueChanged(ByVal sender As System.Object, _
   ByVal e As System.EventArgs) Handles numSollWert.ValueChanged
   Sollwert = numSollWert.Value
   LimitHigh = Sollwert + 100
   LimitLow = Sollwert - 100
End
Sub

Private Sub Action()
  numSollWert.Value = 700
  tx.SetLamp(LichtQuelle, Dir.On)
  tx.Pause(1234)
Do

  ActualValue = tx.GetAnalog(LichtSensor)
  lblIstwert.Text = ActualValue.ToString()
  If ActualValue < LimitLow Then
    tx.SetMotor(ReglerMotor, Dir.Right, 400)
  ElseIf ActualValue > LimitHigh Then
    tx.SetMotor(ReglerMotor, Dir.Left, 400)
  Else
    tx.SetMotor(ReglerMotor, Dir.Off)
  End If
  tx.Pause(111)
 Loop Until tx.Finish()
End Sub
..........

End
Class

Der Sollwert wird durch das Control numSollwert (NumericUpDown) in der Ereignisroutine numSollwert_ValueChanged samt Grenzwerten eingestellt.

In der Click-Routine des Buttons cmdAction läuft in einer Endlosschleife das eigentliche Programm :
- tx.OpenController / tx.CloseController : Verbindung zum TX Controller (Name COM4 anpassen).
- die while-Schleife über die Messungen kann durch die ESC-Taste beendet werden.
- in der Schleife wird zuerst der aktuelle Wert am Photowiderstand gemessen und im Label-Control lblIstWert angezeigt.
- Danach erfolgt die eigentliche Regelung : akt. Wert kleiner LimitLow : Motor nach Rechts
  akt. Wert größer LimitHigh : Motor nach links, sonst Motor Stopp
- gemessen wird alle 111 mSek.

Stand : 03.12.2009