CANOpenNode: Zustand herausfinden?

fdisk

Level-1
Beiträge
17
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich habe zu Demonstrationszwecken ein Node über NMT auf stop bzw. pre-op gestellt. (per Hand)

Lässt sich der Node-Zustand in CoDeSys irgendwie auslesen?

Ich hab es mit pCANOpenNode[0].status versucht, das zeigt aber immer nur 5 (=running) an, egal ob Start/Stop oder PreOp.

Bin für jeden Hinweis dankbar.

fdisk
 
HiHo,

einfach das producer Heartbeat time object (0x1017) setzen, dann meldet der Knoten ständig seinen aktuellen Zustand.

Gruß Gnu
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ah cool danke schonmal.

ich kann zwar in codesys den Master auf dsp301 unterstüzung stellen.
beim node bleiben die heartbeat optionen aber trotzdem grau hinterlegt und lassen sich nicht ändern.

bedeutet das, dass meine HW (sabo ewb-730.10) kein heartbeat kann?
 
Hi,

das kann schon sein, aber ich kenne den Sabo Master leider nicht. Wenn er wirklick kein Heartbeat kann, könntest du alternativ auch das Node Guarding verwenden.

Gruß

Benjamin
 
Mit nodeguarding gehts auch nicht. Der Status bliebt auf 5.

Aber mal ganz grundsätzlich:
Wenn ich node reset (81h) oder communication rest (82h) an die station sende, dann kann ich beoachten, wie ihr Status von -1 auf 5 klettert.
Das funktioniert immer, ganz Unabhängig von nodeguard/heartbeat Einstellungen.

In der S3 Laufzeitsystem Doku ist ja beschrieben, welche Zustände ein Node haben kann. Auffällig (für mich = noob) ist, dass es da garkein expliziter Status für "stop" zu existieren scheint.
Meine ursprüngliche Vermutung war daher, dass es evtl. noch ein anderes Statusregister irgendwo gibt.

Nunja, dann gehe jetzt erstmal davon aus, das meine HW das nicht kann.

Gruss
fdisk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hi, du könntest auch mal versuchen, 1017 per sdo zu schreiben, vlt unterstützt das conf-programm das ja nicht, bzw musst du vlt irgendwo ein häckchen für node überwachung setzen, da gehört dann ja auch der master parametriert. ..bg bb
 
1017 schreiben: dann gibt der node 80 (=abort) zurück.

welcher wert müsste denn theoretisch in pCANOpenNode[0].status sein, wenn der node gestoppt ist?
 
Hi,

ich kenne Deine sabo nicht!
Wenn ich allerdings Deine Stati mit meiner Doku vergleiche, so scheint dies identisch zu sein.
Allerdings heisst es da:
Hier wird der aktuelle Status des Nodes eingetragen. DieStati sind Zustände des Nodes innerhalb dieser Bobliothekund haben nichts mit den Zuständen wie sie nach CanOpen
definiert sind, zu tun.

Gibt es bei sabo keinen CAN_GetState in einer CAN Bibliothek??
Oder hast Du die Diagnose Adresse zur Verfügung? Oder ist die auch ausgegraut. Was sagt Deine Hilfe dazu?


 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,Hier wird der aktuelle Status des Nodes eingetragen. DieStati sind Zustände des Nodes innerhalb dieser Bobliothekund haben nichts mit den Zuständen wie sie nach CanOpendefiniert sind, zu tun.
Ah, genau, das hab ich mittlerweile auch entdeckt. (Canopen for 3S Runtime). Über eine Alternative, die sich nach dem canopen standard richtet, schweigt das Dokument.
Gibt es bei sabo keinen CAN_GetState in einer CAN Bibliothek??
Oder hast Du die Diagnose Adresse zur Verfügung? Oder ist die auch ausgegraut. Was sagt Deine Hilfe dazu?
die sabo benutzt ja die S3 Bib (codesys 2.3)
für den node kann ich enable diags einschalten. habe aber keinen schimmer, was das bewirkt.
die sabo doku ist nicht hilfreich, die ist nicht fertiggestellt. da besteht das canopen kapitel aus eine überschrift :-?
 
1017 schreiben: dann gibt der node 80 (=abort) zurück.

welcher wert müsste denn theoretisch in pCANOpenNode[0].status sein, wenn der node gestoppt ist?

Hallo,
falls du hier noch tüfftelst....

soweit ich weiss ist das TG 0x80 ein Sync-Telegramm dass nur vom Master gesendet wird.

Wenn ein SDO versendet wird (Standard ist ein Telegramm mit 8 Byte) kommt immer eine Antwort zurück welche auch 8 Byte ist und entweder eine positive Bestätigung des SDO TG oder eine Fehlernachricht beinhaltet (das 1-te Byte ist dann >0x80).

Wenn dein System diese Detailinfo nicht 'hergibt' kannst du dass mit einem CAN-Analyser (z.b. PCAN) leicht nachprüfen.

Der rückgemeldete Fehler zeigt dir sehr wahrscheinlich warum es nicht geht.

bg
bb
 
Zurück
Oben