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:
Heartbeat.pem
(657 Bytes) Downloaded 707 times
Heartbeat.ipf
(1.07 KiB) Downloaded 632 times

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