Page 1 of 1
Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Wed 7. Mar 2012, 14:09
by ImmerkomischeFragen
Hallo Peak Team,
wie kann man mit einem Toggle Switch im geschalteten Zustand "On" einen Heartbeat zyklisch senden (Nicht wie im Beispiel NewClientSend() als Sender für Empfänger fungieren sondern nur Senden). Dieser soll natürlich im Zustand "Off" stoppen.
Vielen Dank schon mal
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Thu 8. Mar 2012, 11:43
by M.Maidhof
Hallo,
hier ein Beispiel, bestehend aus einem ipf Panel file und einem VBmacro *.pem. Bitte beide Dateien im PCAN-Explorer 5 laden, und dann im Panel den Start und Stopp Button druecken:
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Fri 9. Mar 2012, 09:01
by ImmerkomischeFragen
Vielen Dank für die Antwort.
Wäre es jetzt noch möglich eine LED leuchten zu lassen wenn der Heartbeat auch an ist.
Wie kann man ein Signal auf "=1" setzen wenn HeartbeatStart() aktiv ist?
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Fri 9. Mar 2012, 09:35
by M.Maidhof
Hallo,
ja, auch das ist moeglich. einfach im Macro einen Signalwert auf einen entsprechenden 0 bzw. 1 Wert setzen, den Sie dann ueber eine LED auf dem Panel auswerten.
Mit freundlichen Gruessen
Michael Maidhof
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Fri 9. Mar 2012, 09:56
by ImmerkomischeFragen
Theoretisch habe ich mir das auch so gedacht, leider funktioniert keine Möglichkeit meines Syntax.
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Fri 9. Mar 2012, 10:47
by M.Maidhof
dann haben Sie wohl ein Syntax Problem, da koennen wir Ihnen aber dann auch nicht weiterhelfen, wenn man den Syntax nicht einsehen kann.
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Fri 9. Mar 2012, 11:00
by ImmerkomischeFragen
Code: Select all
Public Sub HeartbeatStart()
Dim msgs, msg, send
Set msgs = Connections.TransmitMessages.FindID(&H110)
Set send = Signals("Sendesignal")
If send Is Nothing Then
Set send = Signals.Add("Sendesignal")
send.Datatype = peDataTypeFloat
End If
If msgs.Count = 0 Then
' Neue Heartbeat-Botschaft anlegen
Set msg = Connections.TransmitMessages.Add
With msg
.BeginUpdate
Set .Connection = Connections(1)
.ID = &H110
.DLC = 1
.Data(0) = &H01
.CycleTime = 200
.EndUpdate
End With
Else
' Heartbeat nur starten
msgs(1).IsPaused = False
---> hier Statuszuweisung send = 1?
End If
End Sub
Schon mal vielen Dank.
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Fri 9. Mar 2012, 14:11
by ImmerkomischeFragen
Neuster Versuch, gibt es irgend eine Anweisung die den Signalen eine 1 zuweist?
Code: Select all
Sub HeartbeatStart()
Dim msgs, msg
Dim sende
Set sende = Signals("Sendesignal")
If sende Is Nothing Then
Set sende = Signals.Add("Sendesignal")
sende = sende.Datatype = peDataTypeFloat
End If
Set msgs = Connections.TransmitMessages.FindID(&H110)
If msgs.Count = 0 Then
' Neue Heartbeat-Botschaft anlegen
Set msg = Connections.TransmitMessages.Add
With msg
.BeginUpdate
Set .Connection = Connections(1)
.ID = &H110
.DLC = 1
.Data(0) = &H01
.CycleTime = 200
.EndUpdate
End With
Else
' Heartbeat nur starten
msgs(1).IsPaused = False
If msgs(1).IsPaused = False Then
'Set sende = Signals("Sendesignal")
sende = 1.0 'sende.Value = 1
While msgs(1).IsPaused = False
Exit Sub
'Wait(10) ' Prevent 100% CPU load
Wend
End If
End If
End Sub
Re: Mit ToggleSwitch Heartbeat Simulieren on/off
Posted: Fri 9. Mar 2012, 16:17
by M.Maidhof
Hallo,
bitte definieren Sie sich eine virtuelle Variable mit dem Symboleditor, und nutzen Sie diese als LED Signal. Diese ist dann automatisch verfuegbar, und nicht erst nach dem ersten Macrostart. Dann koennen Sie im Macro einfach nur den Wert des Signals aendern, und muessen sich nicht um die Erzeugung kuemmern. Sonst koennten Sie die LED im Panel erst nach dem ersten Start des Macros diesem neuen Signal zuweisen.
Mit freundlichen Gruessen
Michael Maidhof