Hallo,
ich habe mehrere Drehmomentenmesswellen, die einen CAN-Anschluss haben.
Ich kann jeder Welle eine individuelle Adresse zuweisen, z.B. 110, 111,
112 und 113. Standardmässig haben alle die Adresse 110. Ich habe sie
jetzt auf 110, 111 und 112 eingestellt und das hat geklappt.
Jetzt habe ich einen USB-Can-Adapter von Peak und die Software
PCAN-View.
Gibt es bei CAN-Bus die Möglichkeit, das Netzwerk zu scannen wie bei
einem IP-Scanner, der die Netzwerkteilnehmer in einem Netzwerk ermittelt
- also alle IP-Adressen anpingt und guckt, ob was zurückkommt?
Kann ich vielleicht auch was direkt an einen Teilnehmer senden, z.B. wie
einen Ping?
Du wirst um die Grundlagen von CAN nicht drumrum kommen.
Bei CAN hört jeder Teilnehmer alles. Die "Adressen" sind nicht mit
IP-Adressen vergleichbar. Die werden nämlich nicht dem Gerät zugeordnet,
sondern dem Nachrichtentyp und zwar nach Priorität.
Hier z.B. hab ich ein Bild angefügt. Für die Messwellen hab ich ein
Einstellprogramm. Wenn ich dort auf SCAN klicke, werden mir alle
Messwellen angezeigt. Wenn ich dann daneben mit dem Can-Bus-Viewer die
Daten angucke, dann zeigt der mir dort etwas an, sobald ich auf SCAN
klicke.
Im nächsten Schritt habe ich mal unten in dem Viewer direkt eine
Nachricht an einen Teilnehmer gesendet, an den Teilnehmer 115. Leider
empfange ich bei "Empfangen" nichts.
Ich habe zu der Messwelle auch eine Beschreibungsdatei. Kann ich daraus
vielleicht die Information rauslesen, was ich z.B. in "Daten"
reinschreiben könnte, damit mir andere Teilnehmer etwas antwortet - z.B.
seine Versionsnummer rausgibt?
mech schrieb:> Die "Adressen" sind nicht mit> IP-Adressen vergleichbar.
Ach so, schade. Aber danke für die Info. Aber irgendwie muss es möglich
sein, über die eingestellte Nummer von 0-127 eine einzelne Messwelle zu
identifizieren und z.B. dort einen Wert auszulesen.
OutLOOK schrieb:> Ich habe zu der Messwelle auch eine Beschreibungsdatei. Kann ich daraus> vielleicht die Information rauslesen, was ich z.B. in "Daten"> reinschreiben könnte, damit mir andere Teilnehmer etwas antwortet - z.B.> seine Versionsnummer rausgibt?
Woher sollen wir denn wissen, was in dieser ominösen Datei drin steht?
:D
OutLOOK schrieb:> Aber irgendwie muss es möglich sein, über die eingestellte Nummer von> 0-127 eine einzelne Messwelle zu identifizieren und z.B. dort einen Wert> auszulesen.
Ja, indirekt dadurch dass du den Teilnehmern vorher mitgeteilt hast,
unter welcher Object-ID sie ihre Daten auf den Bus legen sollen.
Jetzt hab ich mal einfach bei Senden statt der 115 eine Adresse
reingeschrieben, die ich vorhin bei "Empfangen" gesehen hab. Wenn ich
die jetzt in das System reintippe, dann bekomme ich oben bei Empfangen
eine Antwort :-)
Das hier sieht auch interessant aus aus der Datei:
1
[2009sub8]
2
ParameterName=MeasVal8
3
ObjectType=0x0007
4
DataType=0x0009
5
AccessType=ro
6
LowLimit=
7
HighLimit=
8
DefaultValue=
9
PDOMapping=
10
11
[2009sub9]
12
ParameterName=MeasVal9
13
ObjectType=0x0007
14
DataType=0x0009
15
AccessType=ro
16
LowLimit=
17
HighLimit=
18
DefaultValue=
19
PDOMapping=
20
21
[2009sub10]
22
ParameterName=MeasVal10
23
ObjectType=0x0007
24
DataType=0x0009
25
AccessType=ro
26
LowLimit=
27
HighLimit=
28
DefaultValue=
29
PDOMapping=
Das könnten z.B. irgendwelche Werte sein, die mir das Gerät gibt.
Könnte es sein, dass ich als Adresse dann nicht z.B. die 115
reinschreiben darf, sondern einen längeren Code, wo z.B. die
eingestellte Adresse 115 drinnen steht, dann z.B. die 2009 und das
Sub10, damit ich dann als Antwort "MeasVal10" kriege?
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang