LabVIEWForum.de
CAN Signal/Protokoll bearbeiten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: CAN Signal/Protokoll bearbeiten (/Thread-CAN-Signal-Protokoll-bearbeiten)

Seiten: 1 2


CAN Signal/Protokoll bearbeiten - IchSelbst - 15.11.2009 17:43

' schrieb:Auf der Linken Seite hat Datenbyte 1 den Wert FF und Datenbyte 2 den Wert 03. wieso sind die nicht auf der Rechten Seite wider beim "Daten 1,2" Kasten zu sehen ?
Weil ich das Bild gemacht habe, ohne dass zuvor das Programm gestartet worden ist. Die linken Werte sind vorgegebene, konstante Werte. Die rechten Werte sind Ergebnisse von Berechnungen. Wenn du das Programm startest, dann erscheint bei MUX der Wert 17 und bei Data1,2 der Wert 1023.
Beachte, dass die Werte links in Hexdarstellung und die Werte rechts in Dezimaldarstellung sind.

Zitat:Soweit dann gut, aber gibts noch ein Schritt damit ich auf das Dez. Wert komme?
Die Werte auf der rechten Seite "MUX", "DATA 1,2" und "DATA 3,4,5,6" sind in Dezimaldarstellung, also so wie du sie brauchst.


CAN Signal/Protokoll bearbeiten - Prince Amir - 15.11.2009 20:21

' schrieb:Weil ich das Bild gemacht habe, ohne dass zuvor das Programm gestartet worden ist. Die linken Werte sind vorgegebene, konstante Werte. Die rechten Werte sind Ergebnisse von Berechnungen. Wenn du das Programm startest, dann erscheint bei MUX der Wert 17 und bei Data1,2 der Wert 1023.
Beachte, dass die Werte links in Hexdarstellung und die Werte rechts in Dezimaldarstellung sind.

Die Werte auf der rechten Seite "MUX", "DATA 1,2" und "DATA 3,4,5,6" sind in Dezimaldarstellung, also so wie du sie brauchst.

vielen Dank IchSelbst. hab ich verstanden. Aber eine Sache ist mir noch unklar, und zwar wenn ich jetzt nur ein einziges wert (was in meinem fall z.b. Generator Leistung ist) rausholen will und in LV in einem Anzeigefeld zeigen will, wie soll ich das realisieren bzw. was benötige ich dafür. ?

so bekomme ich immer die CAN Daten in Dez. Aber ein bestimmtes Wert aus CAN rausfiltern und anzeigen ist mir problematisch.

Grüße,


CAN Signal/Protokoll bearbeiten - IchSelbst - 15.11.2009 20:58

' schrieb:Aber eine Sache ist mir noch unklar, und zwar wenn ich jetzt nur ein einziges wert (was in meinem fall z.b. Generator Leistung ist) rausholen will und in LV in einem Anzeigefeld zeigen will, wie soll ich das realisieren bzw. was benötige ich dafür. ?
Genau das steht in dem Bild (und in dem SubVI).

Laut der Tabelle, die du gepostet hast, steht die Generator-Leistung in der Message, in der MUX = 17 ist. Du musst also zuerst kucken, ob der MUX-Wert 17 ist. Dann steht auch schon in der Variablen "Data 3,4,5,6" der gewünschte Wert "Generator Leistung".

Was ich aber nicht weis, ist, wie du dein Endgerät dazu veranlasst, eine Message mit MUX=17 zu senden.


CAN Signal/Protokoll bearbeiten - Prince Amir - 15.11.2009 22:17

' schrieb:Was ich aber nicht weis, ist, wie du dein Endgerät dazu veranlasst, eine Message mit MUX=17 zu senden.

gute Frage Eigentlich. !!! soweit ich weiss es wird kontinuierlich über CAN daten gesendet (zur LV) aber gerad die Message mit MUX 17 brauch ich.hm..das macht mich jetzt wieder nachdenklich.Sad


CAN Signal/Protokoll bearbeiten - Prince Amir - 16.11.2009 18:07

' schrieb:Genau das steht in dem Bild (und in dem SubVI).

Laut der Tabelle, die du gepostet hast, steht die Generator-Leistung in der Message, in der MUX = 17 ist. Du musst also zuerst kucken, ob der MUX-Wert 17 ist. Dann steht auch schon in der Variablen "Data 3,4,5,6" der gewünschte Wert "Generator Leistung".

Was ich aber nicht weis, ist, wie du dein Endgerät dazu veranlasst, eine Message mit MUX=17 zu senden.

so ich habe Heute das Gerät genauer angeschaut. Der sendet Kontinuierliche die Daten zur LV. Der Message 17 (was ich brauche) wird eigentlich fast einmal in der Sekunde gesendet. Gibts einen Weg, damit ich nur diese Message bzw. wert in einer AnzeigeElemet anzeigen kann?

oder Generell wie geht man mit CAN Messages um? damit alles Vollständig wie im Protokoll steht gezeigt wird?braucht man was speziells?


ich habe mir die CAN conversion library auch angeschaut. gehts das was ich vorhabe, auch damit ?

Grüße


CAN Signal/Protokoll bearbeiten - IchSelbst - 16.11.2009 20:10

' schrieb:Gibts einen Weg, damit ich nur diese Message bzw. wert in einer AnzeigeElemet anzeigen kann?
Ist doch eigentlich ganz einfach: Mit einer CASE-Sequenz den MUX-Wert auf 17 abfragen. Im CASE 17 einfach den Code hineinschreiben, den ich oben gepostet habe (siehe auch Bild hier).

Zitat:oder Generell wie geht man mit CAN Messages um? damit alles Vollständig wie im Protokoll steht gezeigt wird?
Was du mit den Messages macht, bleibt alleine dir überlassen. Ich würde ja sagen: du brauchst nichts außer den Werten wie z.B. die Gesamtleistung. Alles andere kannst du weglassen.

Zitat:ich habe mir die CAN conversion library auch angeschaut. gehts das was ich vorhabe, auch damit ?
Keine Ahnung. Diese Libryry verwendet ich nicht.


CAN Signal/Protokoll bearbeiten - Prince Amir - 16.11.2009 21:09

' schrieb:Was du mit den Messages macht, bleibt alleine dir überlassen. Ich würde ja sagen: du brauchst nichts außer den Werten wie z.B. die Gesamtleistung. Alles andere kannst du weglassen.

vielen vielen Dank IchSelbst, hab dazu viel gelernt.

ich hatte eine letzte Frage, und zwar im Allgemein wenn man (Beispielweisse) CAN Protokoll in LV einliest und alle Werte darstellen will, muss man für jedes Wert dann ein Case Struktur machen, damit man das ganze Protokoll durchgeht und alle werte darstellen kann ?
hoffe habe ich das klar ausgedruck. Damit meine ich einfach viele Messages aus dem CAN Protokoll darstellen.

Best Grüße,


CAN Signal/Protokoll bearbeiten - IchSelbst - 16.11.2009 21:27

' schrieb:wenn man (Beispielweisse) CAN Protokoll in LV einliest und alle Werte darstellen will, muss man für jedes Wert dann ein Case Struktur machen, damit man das ganze Protokoll durchgeht und alle werte darstellen kann ?
Wenn du tatsächlich alle Werte einzeln darstellen willst, musst du für jeden MUX-Wert einen eigenen Case machen. Jeder MUX-Wert liefert ja andere Parameterwerte.


Zitat:hoffe habe ich das klar ausgedruck.
Ich weis, was du meinst. Cool


CAN Signal/Protokoll bearbeiten - Prince Amir - 19.11.2009 00:49

' schrieb:Ich weis, was du meinst. Cool

So an dieser Stelle möchte ich mich bei dir bedanken IchSelbst.

Mir sind 2 Fragen noch offen, ich hab bis. gelesen und weitergekommen, aber an diesem 2 Punkten habe ich noch ein bis. Probleme.
Wie man im Screenshot sieht sind bei manche Signale die "Multiplier" als "Maske" im Hex. eingegeben. Wie geht man eigentlich mit solche Filtern um auf der LabVIEW seite? Kann die Interpretation nicht Richtig verstehen, wie ich mit der Maske umgehen soll..Wird die Rechnung dann recht kompliziert ? Muss man eigenltich nachdem man die Data Bytes für jeweilige Signale bestimmt hat, erst die Maske darauf setzen oder ganz am Anfang?

und meine zweite Frage bezieht sich auf mein Frontpanel im LV im Screenshot. Ist dir Arbitration ID die selbe wie Identifier ? oder verstehe ich das Falsch ? Wenn nicht, kann ich aus dem Informationen die ich im FP habe die Identifier rausbekommen?

Besten Dank nochmal für deine Hilfe.

Grüße,


CAN Signal/Protokoll bearbeiten - IchSelbst - 19.11.2009 08:32

' schrieb:So an dieser Stelle möchte ich mich bei dir bedanken IchSelbst.
Danke, Danke.

Zitat:Wie man im Screenshot sieht sind bei manche Signale die "Multiplier" als "Maske" im Hex. eingegeben. Wie geht man eigentlich mit solche Filtern um auf der LabVIEW seite? Kann die Interpretation nicht Richtig verstehen, wie ich mit der Maske umgehen soll..Wird die Rechnung dann recht kompliziert ? Muss man eigenltich nachdem man die Data Bytes für jeweilige Signale bestimmt hat, erst die Maske darauf setzen oder ganz am Anfang?
Die Maske bezieht sich auf die jeweiligen Signale.
Der Multiplier-Wert 0.1V in der Zeile 450065 (MUX=21) ist ja klar: Der Wert "Data 3,4,5,6" muss also mit 0.1V Multipliziert werden, um den tatsächlichen nummerischen Wert zu erhalten.
Mit Boolschen Werten geht das ganz genau so: Die Zeile 450067 (MUX=22, Data 1,2) ist ein 16bit-Wert (also U16), der bis zu 16 einzelne boolsche Werte enthalten kann. Jedes einzelne Bit des U16-Wertes kann nämlich ein Boolscher Wert sein. Der Wert MASKE wird nun mit dem Wert "DATA 1,2" verundet (logisches AND). Die Maske, die in Hexdarstellung abgebildet ist, enthält immer genau 1 gesetztes Bit. Nämlich an der Stelle, an der sich der Boolsche Wert innerhalb des "Data 1,2"-Wertes befindet. Du muss also eine UND-Verknüpfung machen aus "Data 1,2" und MASKE. Das Resultat hiervon gibt du auf das Element "Ungleich Null". Ist das entsprechende Bit in "Data 1,2" gesetzt, wird "ungleich Null" TRUE liefern, ansonsten FALSE.

Zitat:meine zweite Frage bezieht sich auf mein Frontpanel im LV im Screenshot. Ist dir Arbitration ID die selbe wie Identifier ? oder verstehe ich das Falsch ? Wenn nicht, kann ich aus dem Informationen die ich im FP habe die Identifier rausbekommen?
"Arbitration ID" (guckst du) ist die "Identifizierung der CAN-Botschaft". Über diesen Wert wird also der Sender des Frames festgestellt.