Beispielmakro

Comprehensive CAN monitor for Windows® and its add-ins: Plotter, CANdb Import, Instruments Panel, and J1939
Post Reply
CANmaster
Posts: 9
Joined: Mon 19. May 2014, 13:52

Beispielmakro

Post by CANmaster » Mon 19. May 2014, 13:58

Hallo an das Team von Peak,
ich habe ein Problem beim Testen eines Beispielmakros. Es geht um das Makro, dass auf eine bestimmte CAN-ID wartet und als Ausgabe die Anzahl der gefundenen IDs mit gleichem Namen ausgibt (waituntil100h oder so ähnlich heißt das Makro). Ich habe durch Einfügen von Testausgaben auf die Konsole herausgefunden, dass das Makro an sich läuft, aber es wird anscheinend keine Verbindung zu dem vorliegenden Daten hergestellt. Die Daten sind auf dem Senden/Empfangen Tab eindeutig zu sehen (zb bei Zündung an im Fahrzeug). Habt ihr eine Idee?

Danke für die Hilfe
CANmaster

G.Lang
Support
Support
Posts: 169
Joined: Wed 22. Sep 2010, 14:58

Re: Beispielmakro

Post by G.Lang » Mon 19. May 2014, 15:25

Hallo CANmaster,

leider benötigen wir etwas mehr Infos um Ihnen helfen zu können . Wenn Sie uns möglicherweise das ganze Projekt zusenden könnten oder ein paar Screenshot, die zeigen was nicht funktioniert, wäre dies sicher sehr hilfreich.


Mit freundlichem Gruß
Gunther

CANmaster
Posts: 9
Joined: Mon 19. May 2014, 13:52

Re: Beispielmakro

Post by CANmaster » Mon 19. May 2014, 16:09

Das ist der Code des Beispielmakros, lediglich leicht abgeändert auf die ID 320h. Ich habe auch die Range, in dem das Makro sucht auf 50 bis 800 geändert. Auch das ursprüngliche Makro, dass auf die ID 100h wartet, hatte keine Ausgabe. Damit Sie mich vielleicht noch besser verstehen, das Makro liefert keinen Fehler wie zB die vordefinierte MessageBox "Project does not contain any enabled CAN connections". Er läuft quasi weiter den Code durch, aber findet nicht die gewünschte Id und gibt gar nichts im Ausgabefenster aus...
Hoffe, das hilft!
Mit freundlichen Grüßen
CANmaster



Code: Select all

Sub WaitForID320()
'DESCRIPTION: Waits until CAN-ID 320h is received
  ' To view the output messages of this macro, open the Output Window and
  '  select the "Macro" tab
  Dim UseConn, conn
  ' Find the first enabled connection in the project that uses the CAN protocol
  Set UseConn = Nothing
  For Each conn In Connections
    If conn.IsEnabled And conn.Protocol = peProtocolCAN Then
      Set UseConn = conn
      Exit For
    End If
  Next 
  If UseConn Is Nothing Then
    MsgBox "Project does not contain any enabled CAN connections"
    Exit Sub
  End If

  ' Create a new client and connect it to the same Net that the
  '  found connection uses
  Dim MyClient, PcanConn
  Set MyClient = CreateObject("PCAN3.PCANClient")
  MyClient.Name = "Macro"
  MyClient.Device = UseConn.Device
  Set PcanConn = MyClient.Connections.Add(UseConn.CommunicationObject.NetName)

  PcanConn.RegisterMsg &H50, &H800, false, false
  
  i = 0
  Dim RcvMsg
  Set RcvMsg = MyClient.Messages.Add
  Do
    Do While not RcvMsg.Read
      ' Wait for a received message
    Loop
    If RcvMsg.LastError = pcanErrorOk Then
      PrintToOutputWindow "Received !"
      i = i + 1
    End IF
  Loop While RcvMsg.ID <> H320
  PrintToOutputWindow "Finished, " & CStr(i) & " messages received !"
End Sub

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Beispielmakro

Post by M.Maidhof » Mon 19. May 2014, 16:55

Hallo,

da fehlt ein "&" bei der Abfrage der H320 (siehe WaitForID100 original):

Loop While RcvMsg.ID <> &H320

Mit freundlichen Gruessen

Michael Maidhof

PS: standard CAN frames gehen nur bis max hex 7FF, hex 800 macht daher keinen Sinn bei RegisterMsg.

CANmaster
Posts: 9
Joined: Mon 19. May 2014, 13:52

Re: Beispielmakro

Post by CANmaster » Mon 19. May 2014, 19:41

Ich habe das & wieder eingefügt aber trotzdem kommt noch keine Ausgabe im Makrofenster... ich habe mal ein Screenshot gemacht und in den Anhang geladen.
Mit freundlichem Gruß
CANmaster
Attachments
Unbenannt.PNG
Unbenannt.PNG (123.63 KiB) Viewed 10209 times

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Beispielmakro

Post by M.Maidhof » Tue 20. May 2014, 10:38

Hi,

bitte mal ein Screenshot vom Senden/Empfangen Fenster machen, damit man sehen kann ob die 320h dort sichtbar ist.

Haben Sie nach der Verbesserung das Macro abgespeichert und "Anwenden" gedrueckt, damit die Aenderungen uebernommen wurden?

Mit freundlichen Gruessen

Michael Maidhof

CANmaster
Posts: 9
Joined: Mon 19. May 2014, 13:52

Re: Beispielmakro

Post by CANmaster » Tue 20. May 2014, 14:47

Hallo,

hier das Bild vom Senden/Empfangen-Fenster. Wie man sieht, kommt die Nachricht 320h an.


Das Problem liegt nach auslesen mehrerer Ausgabentests eher daran, dass die Schleife

Do While not RcvMsg.Read

nie verlassen wird, da keine Nachricht ankommt. Woran kann das liegen?
Attachments
320h.JPG
320h.JPG (249.26 KiB) Viewed 10191 times

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Beispielmakro

Post by M.Maidhof » Wed 21. May 2014, 09:32

Hi,

in dem Screenshot ist das Macro nicht aktiv, desweiteren werden 3 Verbindungen benutzt, davon 2 deaktiviert. Bitte melden Sie sich telefonisch bei uns, um gemeinsam ein neues Projekt zu erzeugen, das auch funktioniert. Das Macro laeuft hier einwandfrei auf unserem System.

Ich koennte mir noch eine Sache vorstellen. Wenn in der Systemsteuerung CAN-Hardware das "Active Device" nicht auf "USB" steht, koennte Ihr Macro Client zunaechst auf einem internen Treiber laufen. Es waere daher besser Sie aendern entweder das Active Device auf "USB" oder Sie tauschen folgende Zeilen in ihrem Code:

alt:
MyClient.Name = "Macro"
MyClient.Device = UseConn.Device

neu:
MyClient.Device = UseConn.Device
MyClient.Name = "Macro"

Also erst das Device festlegen, bevor Sie den Client aktivieren.

Mit freundlichen Gruessen

Michael Maidhof

CANmaster
Posts: 9
Joined: Mon 19. May 2014, 13:52

Re: Beispielmakro

Post by CANmaster » Wed 21. May 2014, 11:09

Hallo Herr Maidhof,
Ihre Idee, die Reihenfolge zu vertauschen hat geholfen! Das Makro arbeitet jetzt so, wie es soll :) Vielen Dank für die Hilfe!
Mit freundlichem Gruß
CANmaster

Post Reply