Beispielmakro
Beispielmakro
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
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
Re: Beispielmakro
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
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
Re: Beispielmakro
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
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
Re: Beispielmakro
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.
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.
Re: Beispielmakro
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
Mit freundlichem Gruß
CANmaster
- Attachments
-
- Unbenannt.PNG (123.63 KiB) Viewed 10209 times
Re: Beispielmakro
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
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
Re: Beispielmakro
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?
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 (249.26 KiB) Viewed 10191 times
Re: Beispielmakro
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
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
Re: Beispielmakro
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
Ihre Idee, die Reihenfolge zu vertauschen hat geholfen! Das Makro arbeitet jetzt so, wie es soll

Mit freundlichem Gruß
CANmaster