# WAGO CANOpen, PDO Mapping Frage



## Gnu0815 (27 April 2008)

Hallo,

ich bin ein Neuling in Codesys und evaluiere momentan die Wago CanOpen Steuerungen. Leider bin ich jetzt an einem Punkt wo ich nicht mehr weiter komme, ich hoffe hier findet sich jemand der sich auskennt:

Mein Problem:
*Wie kann ich ein PDO Mapping auf den internen Steuerungsprozess abbilden RX-PDOs , TX-PDOs?*

Im Steuerungskonfigurator habe ich einmal den K-Bus womit ich die „lokalen I/Os“ mappen kann, das funktioniert auch wunderbar.

Dann gibt es noch einmal die „Fieldbus variables“ wo ich dann den dann PFC Feldbusvariablen definieren kann (wozu auch immer das gut ist).

Der CANopen Stack von WAGO (CIA405) hält sich beim mapping auch recht „bescheiden“. Hier kann man nur das Node guarding konfigurieren, SDO Operationen und durchführen und eine simple CANsend Funktion nutzen. 

In der Dokumentation gibt es tatsächlich einen CanOpenManager, der das PDO mapping beherrscht. Leider kann ich diesen nicht finden. 

Hat jemand eine Idee?


----------



## Controllfreak (27 April 2008)

PFC-Variablen ist das richtige Stichwort. Die PFC-Variablen ab Speicherstelle %QB512 können in die PDO gemappt werden.  Näheres dazu findest im Manual des 750-837 ab Seite 161.


----------



## Gnu0815 (27 April 2008)

Hallo,

erstmal Danke für die Antwort.

Ich bin auch auf die PFC Feldbusvariablen gestoßen, konnte aber damit nichts anfangen. Hierbei adressiere ich ja nur die PFC Variablen mit den Einträgen vom Objektverzeichnis. 

Damit kann ich zwar über SDO Up/Downloads auf die Prozessdaten zugreifen, aber das ist ja mehr als umständlich?

Gibt es eine Möglichkeit diesen „3s CanOpenManager“ von codesys auf der Wago837 zu nutzen?

Im Prinzip möchte ich die I/Os von einem Slave (Wago307) direkt adressieren ohne umständliche SDO Operationen durchzuführen.


----------



## Gnu0815 (28 April 2008)

Hallo,

ich habe mein Problem nun doch gelöst. Es hat zwar etwas gedauert,  aber immerhin. Für diejenigen die irgendwann mal das gleiche Problem haben hier die Lösung:

*Konfiguration TX-PDOs*
1.) PFC Output Variablen deklarieren 
z.B. outword AT %QB512
2.) Über den CAN bus testen ob sich "outword" über Objekt 0xA040/0x01 auslesen lässt.
3.) TX-PDO Mapping deaktivieren:
TXPDO1: 0x1A01/0x1 auf 0 setzen
4.) Nun das "outword" Objekt (0xA040/0x1) in das TX-PDO1 mappen
z.B. 0x601:23,01,1A,01,08,01,40,A0
5.) Anzahl der mapping Objekte in 0x1A01/0x1 schreiben (z.B 1)
6.) Kommunikation für TXPDO1 frei geben: 0x1801/0x1 -> 0x0....281
7.) Optional: Kommunikationsparameter vor Punkt 6 einstellen (siehe Manual)

*Konfiguration RX-PDOs*
1.) PFC Input Variablen deklarieren 
z.B. inword AT %IB512
2.) Über den CAN bus testen ob sich "inword" über Objekt 0xA4C0/0x01 beschreiben lässt. (in codesys prüfen ob schreiben erfolgreich war)
3.) RX-PDO Mapping deaktivieren:
RXPDO1: 0x1601/0x1 auf 0 setzen
4.) Nun das "inword" Objekt (0xA4C0/0x1) in das RX-PDO1 mappen
z.B. 0x601:23,01,16,01,08,01,C0,A4
5.) Anzahl der mapping Objekte in 0x1601/0x1 schreiben (z.B 1)
6.) Kommunikation für RXPDO1 frei geben: 0x1401/0x1 -> 0x0....301
7.) Optional: Kommunikationsparameter vor Punkt 6 einstellen (siehe Manual)

Man kann die Konfiguration natürlich auch "automatisieren" per CanOpenManager. Aber ein einfacher Peak-PCANview tut es auch


----------

