Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 2 von 2

Thema: Motorsteuerung mittels CANopen

  1. #1
    Registriert seit
    09.12.2014
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Erstmal ein großes Hallo an alle.

    Habe zurzeit einige Verständnisprobleme mit der CANopen Ansteuerung meines Motors. Hoffe mir kann jemand helfen und dafür sorgen das ich hier etwas schlauer werde, da ich ein absoluter CAN Anfänger bin.

    Erstmal zu meinem Aufbau.

    Ich hab einen Servomotor ( Schneider Electric BCH0401O02A1C ) und die dazu passende Ansteuerung ( Schneider Electric LXM23AU01M3X ). Diese wird über ein USB-to-CAN compact Interface von IXXAT mit meiner LabVIEW Software auf dem Computer verbunden. IXXAT bietet für LabVIEW eine CAN Bibliothek an und auch ein ausführbares Demo.vci, mit welchem ich CAN Befehle Senden soll.

    In dieser Demo.vci kommt es immer zu Fehlern und es passiert einfach nichts.

    Meine Eingabemöglichkeiten sind in LabVIEW sind folgende:
    - CAN Number
    - CAN Baudrate

    Arbitration ID DLC Command Code Index Subindex DATA
    00 00 00 00 00 00 00 00


    Wenn ich das bisher richtig verstanden habe, dann müssen die Baudrate der Schnittstelle und der Motorsteuerung übereinstimmen. Das hab ich festgelegt und beide auf 500 kBd gesetzt.

    Mit Arbitration ID kann ich leider nichts anfangen. Irgendwo hab ich gelesen das sie auch COB ID genannt wird und mit einer Node-ID addiert wird.
    Eine Node-ID hab ich meiner Steuerung zugewiesen. Das ist aber auch das einzige was ich hier wirklich verstanden habe.

    DLC steht für Data Lenght Code und sollte doch theoretisch auf auf einen Wert zwischen 1 und 4 gestellt werden, oder? Also je nachdem wieviele Bits bei DATA verwendet werden.

    Command Code ist, je nach Anwendung von der Datenlänge abhängig, siehe Tabelle.
    Message Type Command Code 4 Byte 3 Byte 2 Byte 1 byte
    Write Request 23h 27h 2Bh 2Fh
    Write Response 60h 60h 60h 60h
    Read Request 40h 40h 40h 40h
    Read Response 43h 47h 4Bh 4Fh
    Error Response 80h 80h 80h 80h


    Index bezeichnet die Adresse der Funktion welche gelesen oder verändert werden soll.

    Subindex: keine Ahnung was hier hin kommt. Bisher hab ich noch keine Funktion im Handbuch gesehen die einen Subindex hatte.

    DATA: beinhaltet den zu übertragenden Wert.


    Was ich zurzeit versuche ist folgendes. Wenn ich die Motorsteuerung mittels der eingebauten Konsole bediene, kann ich einen sogenannten JOG Mode aktivieren und den Motor per Hand mit zwei Pfeiltaste ansteuern und die Umdrehung pro Minute einstellen.

    Das möchte ich jetzt über CANopen Befehle in LabVIEW realisieren.
    Der Befehl um den Motor zu aktivieren heißt in der eingebauten Konsole P2-30 und wird in der Anleitung mit folgender Adresse definiert:

    023Ch , 023Dh (Wieso zwei ???)

    Hier die Quelle:
    http://download.schneider-electric....9232252&p_File_Name=LXM23A_Manual_V201_EN.pdf
    Auf Seite 336 findet man den Befehl P2-30 und die dazugehörigen Adressen und Werte.

    Der Wert zum aktivieren des Motors ist 1.
    Da ich den Wert ändern möchte benötige ich als Command Code 2F, da ich nur ein Byte übergeben möchte.
    Meiner Meinung nach müsste der Code wie folgt aussehen:

    Arbitration ID DLC Command Code Index Subindex DATA
    ??? (602 = 601 + Node-ID) 1 2F 3C 02 00 01 00 00 00


    Die werte von Index und DATA werden über Kreuz Bitweise vertauscht. Ich weis nicht wieso, aber laut der Anleitung zur CANopen Programmierung stimmt die Anordnung der Werte. Ich bin mir nur nicht sicher ob die Werte an sich korrekt sind. Und ich weis halt nicht was ich bei Arbitration ID eingeben soll, habe da einfach mal einen Wert aus einem Beispiel zum schreiben neuer Werte übernommen und meine Node ID (=1) hinzuaddiert.

    CANopen Anleitung:
    http://download.schneider-electric.c...al_V200_EN.pdf

    Bei der Übertragung kommt es zu Fehlern und ich weis wirklich nicht was ich ändern muss damit es funktioniert. Hoffe jemand kann mir helfen und ich hab mein Problem halbwegs verständlich geschildert.

    Mit freundlichen Grüßen
    DocBader
    Zitieren Zitieren Motorsteuerung mittels CANopen  

  2. #2
    Registriert seit
    08.10.2010
    Beiträge
    107
    Danke
    6
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also Du wirst nicht herumkommen, Dir ein paar Details der CANopen Spec durchzulesen. Ansonsten wird das hier endlos.

    Grundsätzlich gibt es PDO's und SDO's, die auf verschiedenen Identifierbereichen definiert sind. Auch bestimmt der Bereich ob es ein Request vom Master oder ein Response vom Slave ist.

    Willst Du also Parameter umschreiben, so ist Dein ID Bereich 600+Node Id richtig, der Response kommt dann entsprechend auf 580+NodeID.

    Den anderen Bereich den Du angibt's, sind die Prozessdaten. Dabei ist es merkwürdig mit den zwei Adressen (oder nicht CANopen konform), denn eigentlich hat das zweite PDO einen Offset von 100hex.

    Das ist aber nur ein kleiner Teil der CANopen Welt. Wenn Du Deinen Teilnehmer noch konfigurieren musst und anschließend operational zum Senden und Empfangen von PDO#s bringen willst, dann wird es länger ...

Ähnliche Themen

  1. Motorsteuerung Inbetriebnahme
    Von Dzhordi im Forum Antriebstechnik
    Antworten: 1
    Letzter Beitrag: 24.07.2013, 21:03
  2. Motorsteuerung
    Von agmasi im Forum Schaltschrankbau
    Antworten: 1
    Letzter Beitrag: 20.07.2009, 11:34
  3. FB für motorsteuerung
    Von Matze-Atze im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 14.12.2007, 13:55
  4. motorsteuerung wichtig!!
    Von Anonymous im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 01.02.2006, 22:24
  5. FB für Motorsteuerung
    Von Max im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 21.01.2004, 22:34

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •