CANopen EL6751 Master Twincat

Dobe88

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS Community,

Ich bin noch Anfänger in der SPS Programmierung und versuche derzeit eine Anlage zu programmieren welche über CX9020 mit CANopen Master (EL6751) von Beckhoff angesteuert werden soll. Jedoch habe ich hierbei ein Problem mit der Konfiguration.
Bis jetzt habe ich es geschafft eine Verbindung zur SPS (CX9020) herzustellen die EL6751 einzubinden und die 3 Boxen (Nodes) wurden selbst erkannt. Habe nun meine 4 TxPDOs mit den RxPDOs verknüpft und anschließend die konfiguration aktiviert.

Nun bekomme ich aber immer folgende Fehler bzw Diagnosemeldung von der jeweiligen Box:

BoxState: Node is Operational but not all TxPDOs were received
TX-PDO 1, 3, 4 missed

Was hat dies zu bedeuten?

Habe auf der Homepage von Beckhoff nur dies gefunden was mir leider als Anfänger nicht viel sagt: :-(
23 = 0x17Node is Operational but not all TxPDOs were receivedKnoten wurde gestartet aber mindestens ein TxPDO des Knotens wurde noch nicht empfangen. Mögliche Ursachen (z.B.):
- Knoten schickt ereignisgesteuerte PDOs erst nach dem ersten Event (nicht im Sinne der CANopen Spezifikation, aber durchaus üblich)- zu viele TxPDOs konfiguriert
- TxPDO ist auf dem Knoten vorhanden aber keine Prozessdaten gemappt
- TxPDO hat Transmission Type 1...120 (synchron), aber SYNC wurde noch nicht verschickt da zugehörige Task nicht gestartet wurde


Hoffe mir kann jemand weiterhelfen.

Grüße,
Dobe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort.
Habe bei den jeweiligen PDO's unter Ein bzw Ausgängen meine Variablen im System Manager angelegt welche ich mit denen von meinem PLC Programm erzeugten verknüpft habe. (Hoffe das ist so in Ordnung?)

Hierbei sollte die Verbindung zu einem Trio whistle von elmo hergestellt werden der die Ansteuerung von bis zu 3 Achsen (Nodes) ermöglicht.
 
Hallo StructuredTrash,

Ja, genau das habe ich auch gemacht. Habe im PLC Programm meine TxPDO und RxPDO's definiert, diese wurden dann anschließend auch im System Manager erkannt, welche ich dann mit den neu definierten variablen im Systemmanager verknüpft habe.

Die TwinCAT_Configuration(VAR_CONFIC) unter den globalen Variablen sieht nun folgendermaßen aus:
(* Generated automatically by TwinCAT - (read only) *)
VAR_CONFIG
.DeviceState AT %IB50 : UINT;
.Node7State AT %IB48 : USINT;
.Node7TxPDO1 AT %QB8 : ARRAY [0..1] OF USINT; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^RxPDO 1^Ausgänge^VarOut-0} *)
.Node7TxPDO2 AT %QB0 : CanData; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^RxPDO 2^Ausgänge^VarOut-0} *)
.Node7RxPDO1 AT %IB52 : UINT; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^TxPDO 1^Eingänge^VarIn-0} *)
.Node7RxPDO2 AT %IB56 : CanData; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^TxPDO 2^Eingänge^VarIn-0} *)
.Node7TxPDO3 AT %QB12 : CanData; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^RxPDO 3^Ausgänge^Var 274} *)
.Node7TxPDO4 AT %QB20 : CanData; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^RxPDO 4^Ausgänge^Var 379} *)
.Node7RxPDO3 AT %IB64 : CanData; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^TxPDO 3^Eingänge^Var 170} *)
.Node7RxPDO4 AT %IB72 : CanData; (* ~ {LinkedWith:TIID^Gerät 4 (EL6751)^Box 7 (Whistle)^TxPDO 4^Eingänge^Var 180} *)
END_VAR

Hier wurde nur mal der Node7 d.h. die X Axe konfiguriert.
Im Anhang befindet sich noch ein bild von der aktuellen Konfiguration.
 

Anhänge

  • SysManager.jpg
    SysManager.jpg
    161,3 KB · Aufrufe: 43
Habe bei den jeweiligen PDO's unter Ein bzw Ausgängen meine Variablen im System Manager angelegt welche ich mit denen von meinem PLC Programm erzeugten verknüpft habe.
So klingt das schon besser. Sollte prinzipiell erst mal richtig sein.
Mit Deinem eigentlichen Problem hat das aber wohl nichts zu tun. Die EL6751 erwartet, dass der Node nach seinem Start erst einmal alle TxPDO's sendet. Tut er aber offensichtlich nicht, und zwar wahrscheinlich, aber nicht zwangsläufig aus einem der in der Beckhoff-Doku genannten Gründe. Du wirst wohl erst einmal die Elmo-Doku gründlich studieren müssen. Werden alle PDO's in der Defaulteinstellung genutzt? Wenn ja, werden sie alle ereignisgesteuert übertragen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hatte mal ein ähnliches Problem. Bei mir gab es einmal das Problem, das unsere Zykluszeit zu kurz war. Wir hatten 1ms eingestellt, und da kommt der CAN-Bus nicht hinterher. Erst bei Zykluszeiten >= 10ms war die Kommunikationen mit den Slaves wirklich stabil. Wir konnten es dann noch auf 2ms drücken indem wir die Anzahl und Größe der PDO's reduziert haben.

Zweiter wichtiger Hinweis liefert oben genannter Hinweis:
  • TxPDO hat Transmission Type 1...120 (synchron), aber SYNC wurde noch nicht verschickt da zugehörige Task nicht gestartet wurde
Der Transmisson-type muss überall gleich eingestellt sein, sonst gibt es auch Probleme. Eventuell nochmal die CANopen-Beschreibung nachlesen
http://infosys.beckhoff.com/index.php?content=content/1031/tckb/html/tckb_common_intro.htm

Ansonsten die üblichen Verdächtigen:
  • CAN-Bus Abschlußwiederstand
  • gleiche Übertragungsgeschwindigkeit
  • ....
 
Hallo,

Leider noch immer kein Erfolg. :-(
Hab nun versucht die Zykluszeit zu erhöhen (bis auf 100ms), was leider auch nichts brachte. Abschlusswiderstand ist auch vorhanden.
Der Transmission Type ist bei default auf 255 async. bei allen PDO's.
Wo kann ich sehen bzw einstellen ob die PDO's ereignisgesteuert übertragen werden?
 
Wo kann ich sehen bzw einstellen ob die PDO's ereignisgesteuert übertragen werden?
Eben am Transmission Type (254 oder 255).
Der Transmission Type ist bei default auf 255 async. bei allen PDO's.
Ich nehme an, dies gilt für die Beckhoff-Seite. Es ist aber denkbar, dass die Elmo-Steuerung den Konfigurationsdownload von der EL6751 ignoriert, wenn nicht auch auf ihrer Seite dazu passende Einstellungen vorgenommen werden. Wie schon gesagt, lies erst mal die Elmo-Doku.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenngleich ein alter Thread können die Probleme immer wieder auftauchen, daher:

Ich hatte soeben genau dasselbe Problem mit einer EL6751 und CAN Verbindung mit einer igus Dryve D1.

Ich habe es gelöst, indem ich den Transp Type der PDOs auf 240 (cyc, sync) gesetzt habe.

Dazu jeden PDO doppelklicken.

Kommunikation funktioniert jetzt einwandfrei auch mit 10ms Taktzeit und einer Baudrate von 500kbps.

Beste Grüße
LeFish
 
Zurück
Oben