Ereignis-Beispiel: Signalwertänderung

<< Click to Display Table of Contents >>

Navigation:  Arbeiten mit CanEasy > Automatisierung mit CanEasy > VBA > Tutorials > Ereignisse-Tutorial >

Ereignis-Beispiel: Signalwertänderung

 

Nachfolgendes Tutorial zeigt, wie die Änderung eines Signalwertes erkannt wird. Es basiert auf der im Tutorial erstellen Datenbasis.
 

Legen Sie nun mit Neu ein neues VBA-Projekt an. Speichern Sie das Projekt unter dem Namen "Signalwertänderung".

Legen Sie anschließend im VBA-Editor ein Klassenmodul an. Ändern Sie den Namen des Klassenmoduls in "Gaspedal"

 

Geben Sie den folgenden Code ein:

 

Public WithEvents Sig as Signal

 

Public Sub Assign(oSig as Signal)

Set Sig = oSig

Sig.DataChangeEvents = True

End Sub

 

Mit Sig.DataChangeEvents = True teilen Sie der COM-Schnittstelle mit, dass das Ereignis ausgelöst werden soll.

 

Wählen Sie anschließend Sig in der linken Auswahlliste und OnChange in der rechten um den Rumpf für die Ereignisbehandlungsroutine zu erzeugen:
 

vba_Class

 

Fügen Sie anschließend in der erstellten Routine Sig_OnChanged den folgenden Code hinzu:

 

Private Sub Sig_OnChanged

Debug.Print "Signalwert geändert"

End Sub

 

Geben Sie nun den angezeigten Code im Modul Standard ein.

 

Public Pedal As Gaspedal

 

Sub SetzeSignalWert(oSig as Signal, fValue as Double)

oSig.ValuePhys = fValue

End Sub

 

Sub Testdurchlauf()

   Dim Steuergeraet As ControlUnit

   Set Pedal = New Gaspedal

   

   Set Steuergeraet = Database.Busses("CAN1").ControlUnits("ECU1")

   Pedal.Assign Steuergeraet.Messages("MSG1").Signals("SIG1")

 

   StartSimulation 'Simulation starten

   SetzeSignalWert Pedal.Sig, 30 'Gas geben

   CanEasyApplication.Sleep 7000 '7 Sekunden warten

   SetzeSignalWert Pedal.Sig, 60 'Noch mehr Gas geben

   StopSimulation 'Simulation beenden

End Sub

 

Wichtig ist hier, dass Sie eine Instanz der Klasse Gaspedal mit dem Schlüsselwort New anlegen.

 

Drücken Sie anschließend Strg-G um den Direktbereich einzublenden und führen Sie die Funktion Testdurchlauf aus. Die Anweisungen in der Ereignisbehandlungsroutine werden ausgeführt und im Fenster Direktbereich angezeigt (es erscheint zweimal die Meldung "Signalwert geändert").