INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

CAN Signal/Protokoll bearbeiten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

14.11.2009, 10:06
Beitrag #1

Prince Amir Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 134
Registriert seit: Aug 2009

8.6 - 2009
2009
de_en

80809
Deutschland
CAN Signal/Protokoll bearbeiten
Hallo an alle,

ich bin ein anfänger in sachen CAN und benutze für eine Messung ein CAN Modul (USB TO CAN) von der firma IXXAT. Die LabVIEW anbindung mit der mitglieferten Treiber und VIs. gehts so weit.
bis jetzt kann ich mit der CAN Schnittstelle kommunizieren. (Transmit und Receive). Ich kann mit der Melduns ID und Daten die datenausstausch realisieren. soweit gut.

Mein problem ist, wie kann ich die bekommene Daten in LabVIEW weiterarbeiten. ggf. von Medlungs ID und Daten ( max. 8 Bytes ) auf die Bedeutung von Signal kommen. Ich hab das CAN Protokoll zu der schnittstelle auch. Mein problem ist die LabVIEW darstellung. (bzw. die umwandlung von CAN Protok. zur Dez und separien von Signals.)

kann bitte mir jemand helfen?

ich erkläre ein Bespiel: Generator Leistung will ich in zahlen darstellen. Ich bekomme das per CAN. wie erfolgt diese umwandlung in dez. zahlen.? oder generell einfach jede signal so darstellen das man die bedeutung von signal versteht. (enspricht die umwandlung von CAN Protokoll zur Dez.). Ich will einfach für jedes signal ein Anzeige Element auf dem Frontpanel haben..

entschuldigt mich für schlechte Deutsch.

viele Grüße,
Amir.


Angehängte Datei(en) Thumbnail(s)
       

Coming together is a beginning, keeping together is progress, working together is success.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.11.2009, 10:09
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
CAN Signal/Protokoll bearbeiten
Kannst Du ein Bsp. mit dem Datentyp und einem Wert machen. Dann ist es bestimmt kein Problem, den Wert "herauszufiltern".

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2009, 10:27
Beitrag #3

Prince Amir Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 134
Registriert seit: Aug 2009

8.6 - 2009
2009
de_en

80809
Deutschland
CAN Signal/Protokoll bearbeiten
' schrieb:Kannst Du ein Bsp. mit dem Datentyp und einem Wert machen. Dann ist es bestimmt kein Problem, den Wert "herauszufiltern".

Gruß Markus

ich schicke hier einfach ein Scrennshot von der DATA Protokoll 5300 für CAN Schnittstelle (was ich eigentlich habe.)
die Werte für Generator Gesamtleistung sind wie folgt( das ist nicht auf dem Screenshot):

Modicon start addr. Start addr. (*1) Databyte 0 (Mux) Databyte Parameter ID Description Multiplier Units

450053 450052 17 3,4,5,6 135 Total gen. power 1 W

aber generell kannst du mir auch sagen, wie ich von auf ganz normalen Dez. werte kommen kann? gibts ein VI dazu?

Grüße,
Amir


Angehängte Datei(en) Thumbnail(s)
           

Coming together is a beginning, keeping together is progress, working together is success.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2009, 11:48 (Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2009 11:55 von IchSelbst.)
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
CAN Signal/Protokoll bearbeiten
Hinweis zu CAN:
Ein "CAN-Datensatz" beinhaltet (normalerweise) 8Byte Daten = 64 Bit. Diese 64Bit können ansich beliebig auf Daten verteilt werden. Diese beliebige Verteilung ist aber sehr kompliziert in der Verarbeitung. Man kann z.B. sagen: B3 bis B12 stellen einen Wert dar (z.B. einen Zähler). Wenn du den jetzt als einzelne Variable haben willst musst du also das 64Bit-Wort um 3 Bit nach links schieben und dann mit 0x3FF (10 Bit) verunden (Vergleiche Bild 3).

In deinem Falle könnte es erheblich einfacher werden, wenn alle Werte nämlich an 8Bit-Grenzen beginnen. Guckst du die Tabelle ByteData. Hier liegen immer 16- oder 32-Bit-Werte von.

Der von dir gewünschte Wert beginnt also beim vierten Byte (Indxe 3) und umfasst 4 Byte. Versuch mal folgendes: Mach von dem 8 Byte langen 1DArr of U8 ein Teilarray beginnend bei Index 3 mit der Länge 4. Dieses nun 4 Byte lange 1DArr of U8 gibt du auf einen harten Typcast, dessen Typeingang du auf U32 stellst. Herauskommt dann eine U32-Zahl die deinem Wert entsprechen sollte.
AUßerdem musst du beachten, dass du die Message verwendest, bei der MUX=17 ist. Im Datenarray (1DArr of U8) muss an Index 0 also 17 stehen.

Ob es hierfür geeignete VIs bei IXXAT gibt weis ich nicht. Ich verwende die NI-CAN-Library - da geht nämlich alles automatisch.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2009, 13:50
Beitrag #5

Prince Amir Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 134
Registriert seit: Aug 2009

8.6 - 2009
2009
de_en

80809
Deutschland
CAN Signal/Protokoll bearbeiten
' schrieb:Hinweis zu CAN:
Ein "CAN-Datensatz" beinhaltet (normalerweise) 8Byte Daten = 64 Bit. Diese 64Bit können ansich beliebig auf Daten verteilt werden. Diese beliebige Verteilung ist aber sehr kompliziert in der Verarbeitung. Man kann z.B. sagen: B3 bis B12 stellen einen Wert dar (z.B. einen Zähler). Wenn du den jetzt als einzelne Variable haben willst musst du also das 64Bit-Wort um 3 Bit nach links schieben und dann mit 0x3FF (10 Bit) verunden (Vergleiche Bild 3).

In deinem Falle könnte es erheblich einfacher werden, wenn alle Werte nämlich an 8Bit-Grenzen beginnen. Guckst du die Tabelle ByteData. Hier liegen immer 16- oder 32-Bit-Werte von.

Der von dir gewünschte Wert beginnt also beim vierten Byte (Indxe 3) und umfasst 4 Byte. Versuch mal folgendes: Mach von dem 8 Byte langen 1DArr of U8 ein Teilarray beginnend bei Index 3 mit der Länge 4. Dieses nun 4 Byte lange 1DArr of U8 gibt du auf einen harten Typcast, dessen Typeingang du auf U32 stellst. Herauskommt dann eine U32-Zahl die deinem Wert entsprechen sollte.
AUßerdem musst du beachten, dass du die Message verwendest, bei der MUX=17 ist. Im Datenarray (1DArr of U8) muss an Index 0 also 17 stehen.

Ob es hierfür geeignete VIs bei IXXAT gibt weis ich nicht. Ich verwende die NI-CAN-Library - da geht nämlich alles automatisch.

vielen Dank für die Antwort IchSelbst,

aber leider muss ich sagen, dass ich nicht so viel verstanen habe (hab leider nicht so viel Erfahrung mit CAN) , wie der Ansatz geht. has du dazu ein Bsp. oder VI was ich mir anschauen kann?

Grüße,

Coming together is a beginning, keeping together is progress, working together is success.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2009, 15:17
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
CAN Signal/Protokoll bearbeiten
' schrieb:has du dazu ein Bsp. oder VI was ich mir anschauen kann?
Noch nicht.

Aber ich wollte ja sowieso noch was sagen zu dem Blockdiagramm, das du im ersten Beitrag gepostet hast.

Nachdem die obere While-Schleife beendet ist, setzt du über eine lokale Variable das Element STOP auf false. (Nebenbei bemerkt: Die Methode, hierzu das invertierte Signal aus der While-Schleife zu verwenden, ist sehr interessant.)

Nur:
Das False-Setzen hat einen erheblichen Nachteil. Möglicherweise wird nämlich die untere While-Schleife nicht mehr beendet (es sei denn man drückt zweimal auf Stopp). Es kann nämlich theoretisch sein, dass die lokale Variable auf false gesetzt wird, noch bevor die zweite While-Schleife erkannt hat, dass die Variable auf true steht. Das liegt daran, weil die beiden Schleifen eben parallel abgearbeitet werden, und man nicht sagen kann, was zuerst verarbeitet wird.
Eine mögliche Lösung: Statt der lokalen Variablen das Property Value verwenden. Dieses dann mit dem allerletzten ERROR OUT sequenzieren.

So, ich kuck ich mal nach einem Muster für "Wert aus Array lesen".

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2009, 17:16 (Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2009 17:19 von IchSelbst.)
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
CAN Signal/Protokoll bearbeiten
So kann man die gewünschten Werte aus dem Datenarray herausholen. Beachte, dass die Daten als Little Endian (siehe das eine Bild "Reihenfolge low Byte/high Byte) vorliegen. Und ein Bild zum Ankucken.

Lv85_img


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  CanDatas.vi (Größe: 15,85 KB / Downloads: 210)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2009, 19:27
Beitrag #8

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
CAN Signal/Protokoll bearbeiten
du koenntest nutzen von der CAN conversion library ziehen (beispiele kommen mit)
http://joule.ni.com/nidu/cds/view/p/id/884/lang/en
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2009, 20:09
Beitrag #9

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
CAN Signal/Protokoll bearbeiten
' schrieb:du koenntest nutzen von der CAN conversion library ziehen

Gibts eigentlich zwischen der 1.0.2 und der 1.0.3 einen Unterschied?

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.11.2009, 13:46
Beitrag #10

Prince Amir Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 134
Registriert seit: Aug 2009

8.6 - 2009
2009
de_en

80809
Deutschland
CAN Signal/Protokoll bearbeiten
' schrieb:So kann man die gewünschten Werte aus dem Datenarray herausholen. Beachte, dass die Daten als Little Endian (siehe das eine Bild "Reihenfolge low Byte/high Byte) vorliegen. Und ein Bild zum Ankucken.

Lv85_img

vielen Dank IchSelbst für deine Mühe.

ich hätte paar Fragen zum Bild. 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 ? oder habe ich gerad ein Denkfehler oder ist das einfach ein Bsp ?

Soweit dann gut, aber gibts noch ein Schritt damit ich auf das Dez. Wert komme? Richtig verstanden ? Z.B. von diesem Daten auf reales Wert von Temperatur (bsp) oder Generator Leistung wie in meinem Bsp.

Grüße

Coming together is a beginning, keeping together is progress, working together is success.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Protokoll -> mehrere Daten in ein Protokoll im 5 Minuten Takt Ripchip 4 5.075 23.01.2018 18:50
Letzter Beitrag: GerdW
  Protokoll erstellen Tom2204 1 5.728 12.03.2014 22:58
Letzter Beitrag: Trinitatis
  Protokoll drucken - Grafik/Header/Text auf eine Seite?! Lifter 7 7.093 10.12.2013 09:18
Letzter Beitrag: jg
  Word Protokoll (Tabellen) Fehler in Zuweisung akoKE 7 8.055 08.03.2013 11:38
Letzter Beitrag: akoKE
  Messdaten in Protokoll speichern UnbekanntesPferd 18 19.011 29.03.2012 14:53
Letzter Beitrag: M Nussbaumer
  Schriftgröße im Excel-Protokoll einstellen DrHoas 5 7.206 15.02.2012 15:04
Letzter Beitrag: DrHoas

Gehe zu: