Manuelles Lesen im Pcan-BasicExample

This forum covers issues concerning multiple software products.

Manuelles Lesen im Pcan-BasicExample

Postby DermitdemTiger » Fri 1. Mar 2019, 22:40

Liebe Foristi,

ich habe entweder einen Bug gefunden oder ein Verstaendnisproblem. Um ehrlich zu sein, ich fuerchte letzteres. ;)

Zum Erstellen meines eigenen Programmes versuche ich PCAN-Example zu verstehen und dann das gelernte umzusetzen.
Um mein eigenes Programm zu validieren, verwende ich zum Lesen und Schreiben auf den Bus PcanView. Jetzt habe ich ein unerwartetes Verhalten aber schon im PCAN-BasicExample entdeckt.
Und zwar schreibe ich mittels PcanView zyklisch einen Wert auf den Bus und lese dann in PCAN-BasicExample manuell aus. Wenn ich nun in PcanView den geschriebenen Wert aendere, kommt der im PCAN-BasicExample bei Druecken des Read-Buttons nicht an. Erst wenn ich auf "Read using a Timer" umschalte, kommt der veraenderte Wert an.

Zum nachvollziehen meine Schritte im Einzelnen:
1) Aus Visual Studio heraus PCAN-BasicExample starten, das Interface initialisieren und auf "Manual Read" schalten.
2) PcanView starten und eine neue zyklische Sende-Botschaft erstellen, z.B. 00 00 00 AA 00 00 00 00 auf Adresse 100h.
3) In PCAN-BasicExample den Read-Button druecken -> die Botschaft wird angezeigt.
4) In PcanView die Botschaft bearbeiten, z.B. zu 00 00 00 BB 00 00 00 00.
5) In PCAN-BasicExample den Read-Button druecken -> der Count geht hoch, doch die Botschaft bleibt bei 00 00 00 AA 00 00 00 00.
PCAN-Viewer.PNG
Screenshot von Pcan-Viewer mit zyklischer Botschaft
PCAN-Viewer.PNG (31.73 KiB) Viewed 271 times

PCanBasicExample.PNG
Screenshot von PCAN-BasicExample mit Manual Read
PCanBasicExample.PNG (38.57 KiB) Viewed 271 times

Liegt da ein Fehler vor oder habe ich falsche Erwartungen und verstehe etwas ueber die internen Zusammenhaenge nicht?

Viele Gruesse, Jochen
DermitdemTiger
 
Posts: 5
Joined: Sun 25. Feb 2018, 21:31

Re: Manuelles Lesen im Pcan-BasicExample

Postby M.Maidhof » Mon 4. Mar 2019, 10:24

Hallo,

bitte eine CAN Gegenstelle anschliessen, sonst empfangen Sie nur den Fehlerstatus des CAN-Controllers, welches der PCAN-USB zyklisch sendet, wenn er im Fehlerfall ist (siehe Busheavy im Status von PCAN-View).

Gruss

Michael Maidhof
M.Maidhof
Support
Support
 
Posts: 1157
Joined: Wed 22. Sep 2010, 13:00
Location: Darmstadt, Germany

Re: Manuelles Lesen im Pcan-BasicExample

Postby DermitdemTiger » Sun 14. Apr 2019, 15:51

Hallo Herr Maidhof,

danke fuer diesen Hinweis. Mit Gegenstelle am CAN ist der Busheavy-Status im PCAN-View tatsaechlich weg. Werde Leider ist meine Gegenstelle in der Garage. Ich hatte gehofft mit diesem Trick mein Programm zunaechst debuggen zu koennen, ohne dass ich Entwicklungsumgebung und Gegenstelle zusammenzubringen muss. Nun, diese bequeme Zeit scheint nun vorbei zu sein. ;)

Zurueck zu meinem Problem. DIe Gegenstelle sendet nun alle 300ms einen neuen Wert auf eine bestimmte Adresse. Das kann ich mir mit PCAN-View angucken und auch mit PCAN-BasicExample. In letzterem Programm allerdings nur, wenn ich "Read using a Timer" verwende. Beim manuellen Lesen aendert sich der Wert scheinbar gar nicht.
Wo ist da mein Verstaendnisproblem? Am Ende werden doch in beiden Faellen die gleichen Sub-Routinen und Funktionen aufgerufen. Nur einmal vom Timer ausgeloest und einmal vom User ausgeloest?

Viele Gruesse, Jochen
DermitdemTiger
 
Posts: 5
Joined: Sun 25. Feb 2018, 21:31

Re: Manuelles Lesen im Pcan-BasicExample

Postby M.Maidhof » Mon 15. Apr 2019, 16:07

Hallo,

Sie muessen die RX Queue immer leerlesen, damit Sie alle Nachrichten erhalten. Da hier bis zu 32767 CAN Nachrichten im Treiberpuffer sein koennen, werden Sie mit Ihren einzelnen Lese-Aktionen nicht weiterkommen (vermutlich sendet Ihre Gegenstation schneller wie Sie manuell lesen, und der Treiber hat ein FIFO Puffer!). Daher muessen Sie entweder den Event oder den Timer benutzen um die Nachrichten zu lesen. Der CAN Bus ist zu schnell um das per einzelnen Klick zu lesen.

Gruss

Michael Maidhof
M.Maidhof
Support
Support
 
Posts: 1157
Joined: Wed 22. Sep 2010, 13:00
Location: Darmstadt, Germany


Return to Software



This website uses cookies for analytics, for logins to the online shop and the forum, and for the handling of an order. By browsing this website you agree to the use of cookies. Detailed information on their use can be found in our privacy policy.

OKPrivacy Policy