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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Achsen Parameter in TwinCat System Manager einbinden und überschreiben

  1. #1
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forum,
    ich habe ein Problem beim ansteuern einer Achse.
    Und zwar geht es darum, dass ich am entwickeln eines Achsenprüfstands bin, hierbei wäre es toll, wenn ich diverse Parameter der Achse direkt über TwinCat System-Manager und damit über die SPS (PLC Control) ansteuern und überschreiben bzw. lesen könnte. Ich habe die Achse bereits in den SystemManager geladen und kann diese soweit auch verfahren und ansteuern. Lediglich das beschreiben gewisser Parameter bekomme ich nicht hin. Kann es sein, dass nur ein Teil der verfügbaren Parameter beschreibbar sind? Ich kann z.B. den Momentanen Stromwert (P-0-0043) einlesen, dies habe ich hinbekommen. Allerdings den Parameter Motor Spitzenstrom (S-0-0109) lässt sich nicht in den SystemManager einbetten. Hier wird mir dann immer ein Fehler beim Konfig übernehmen geworfen (d.h. ich komme nicht von Phase2 auf Phase3)...

    Falls jemand eine Idee hat, wie ich den beschrieben Parameter doch als Variable in den SystemManager geladen bekomme, wäre ich sehr dankbar, dies würde den Prüfstand um einiges vereinfachen und automatisierbarer machen.

    Grüße Benni
    Zitieren Zitieren Achsen Parameter in TwinCat System Manager einbinden und überschreiben  

  2. #2
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Bitte mehr Infos!
    Welcher Servoverstärker? AX5000?

    Wie beschreibst du die Parameter denn?
    Über das Prozessabbild der Achse, über SoE-Bausteine mit der PLC, oder über die Konfigurationsoberfläche des Servoverstärkers im System Manager?

  3. #3
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    also wir benutzen einen Regler von Bosch Rexroth, genauer gesagt den "IndraDrive C".

    Also ich habe vor, die Paraeter dann über Funktionen, Bausteine oder direkte aufrufe im PLC zu beschreiben. Falls noch weitere Fragen bestehen, dann stellt sie bitte ruhig, damit die Sache klarer wird.

    Gruß Benni

  4. #4
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Mit Beckhoff-Antrieben wär die Sache sehr einfach

    Dann könnte man einfach mit den FBs der EtherCAT.lib arbeiten und damit alle denkbaren Parameter per SoE-Read/Write lesen und schreiben.
    Ist dein Regler über Ethercat oder Sercos angeschlossen ? (Klingt mir fast nach Sercos.)

  5. #5
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo trinitaucher,

    ja die Achse ist über Sercos angeschlossen.

    Zur Zeit versuche ich es bereits mit den FBs SoE_Read zu realisieren. Ich habe diese Bausteine genau so deklariert wie es im InfoSYS von Beckhoff beschrieben ist. Jedoch ist das Ergebnis nur annähernd befriedigend. Zum einen kann ich die Variable in der mein Wert geschrieben werden soll nicht vom TYP UINT setzen, da ich eine 4 Byte lange Variable habe. Aber egal, ich habe da einfach den Typ LREAL genommen. Hier bekomme ich auch einen Wert angezeigt, welcher immer etwas variiert, ähnlich wie mein Strom im Stillstand eben. Von dem her bin ich mir auch ziemlich sicher, dass es sich um den Richtigen Parameter und auch Wert handelt. Mein Problem ist nur, dass irgendwas vom Format her nicht stimmen kann, denn die Zahl die es mir anzeigt, ist viel viel zu klein. Hier wird nämlich ungefähr die Zahl 2,156814514...*E-233 wiedergegeben.
    Was mache ich hier also Falsch? Oder ne Idee woran das liegen könnte?

    Gruß Benni

  6. #6
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Die FBs mit SoE... sind doch aus der EhterCAT-Lib und auch dafür bestimmt. Die funktionieren bestimmt nicht mit Sercos.
    Welche Bausteine benutzt du genau?

  7. Folgender Benutzer sagt Danke zu trinitaucher für den nützlichen Beitrag:

    Benni (10.09.2012)

  8. #7
    Registriert seit
    19.07.2008
    Ort
    Aachen
    Beiträge
    270
    Danke
    2
    Erhielt 21 Danke für 20 Beiträge

    Standard

    Dass dein Wert so merkwürdig aussieht, wird wohl daran liegen, dass es eigentlich ein UINT ist, du es aber als LREAL interpretierst. Da wird das UINT-Bitmuster wohl einem LREAL mit nem ziemlich kleinen Wert entsprechen.

    Die EtherCAT-Antriebe verwenden doch quasi auch Sercos, nur eben eingebettet in EtherCAT. Es kann also durchaus sein, dass die FB's dennoch funktionieren. Das kannst du allerdings einfach testen, indem du dir mal nen Parameter schnappst, dessen Wert du ganz genau kennst und diesen ausliest Da sollte dann was sinnvolles bei rumkommen.

    Wenn du einen Parameter nicht verwenden kannst: Schau in die Dokumentation ob du den lesen/schreiben darfst und unter welchen Bedingungen. Der Motorspitzenstrom ist doch ein für die Antriebsregelung notwendiger Grenzwert, es ist also unwahrscheinlich, dass du da im Betrieb drauf zugreifen darfst.

  9. Folgender Benutzer sagt Danke zu Majestic_1987 für den nützlichen Beitrag:

    Benni (10.09.2012)

  10. #8
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Leute,
    erstmal Danke für eure nützlichen Beiträge, ich habe es heute Morgen durch ettliches ausprobieren endlich hinbekommen.

    Das Problem lag ganz einfach im Aufruf der Funktion FB_SoERead.
    Ich durfte den Eingang dDstBufLen nicht auf die Variable beziehen, in welche ich einlesen möchte. Also nicht so machen wie es im InfoSYS beschrieben ist. Ich habe nun also meine Variable als INT deklariert, welche vollkommen ausreichend ist um mA zu lesen. Und meine Bufferlänge habe ich auf 8 gesetzt. Ich kann mir zwar leider nicht erklären warum dies so ist, aber es geht auf jeden Fall.
    Somit kann ich nun Parameter aus dem Regler auslesen und durch setzen von diversen Kommandos mithilfe von Bausteinen, kann ich die Regelung in den Parametriermodus schalten, Parameter nach Lust und Laune beschreiben und anschließend wieder in den normalen Run-Modus wechseln.

    Aber damit ich das auch richtig verstehe, kann mir noch jemand erklären, woran es liegt, dass ich den SIZEOF()-Eingang nicht wie den ADR()-Eingang auf die zu beschreibende Variable beziehen darf?

    Ich hoffe es ist alles verständlich.
    Danke euch nochmal

    Gruß Benni

  11. #9
    Registriert seit
    19.07.2008
    Ort
    Aachen
    Beiträge
    270
    Danke
    2
    Erhielt 21 Danke für 20 Beiträge

    Standard

    Du kannst und darfst das tun, jedoch muss die Zielvariable in ihrer Länge mit dem Parameter übereinstimmen. Näheres zur Länge der jeweiligen Parameter findest du in der Dokumentation des Antriebs. Wenn du da auf ein INT mit Sizeof verweist, der Parameter aber meinetwegen 4 Byte lang ist, dann passt das nicht.

    Was du jetzt machst ist jedenfalls...problematisch. Wenn du in ein INT speicherst, aber angibst, dass du 8 Byte Platz hast, dann schreibst du in Speicherbereiche außerhalb deiner INT-Variablen. Wenn du jetzt nicht viel Glück hast wirst du dich im Betrieb über ziemlich seltsame und schwer zu findende Fehler wundern....

  12. #10
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja das Problem ist nur, ich lese beispielsweise einen 4 Byte Parameter aus, und ich verweise bei beiden Difinitionen auf ein und dieselbe Variable, welche ich so gewählt habe, dass diese auch 4 Byte platz hat (z.B. Real) dann wird mir ein Fehler gebracht. Das ist eben mein Problem. Mir wäre es natürlich auch um einiges lieber, wenn ich eine andere Lösung hätte.
    Aber prinzipiell kann ich doch auch einfach ein Variablen Typ nehmen, welcher immer größer ist als die benötigte Anzahl, kostet zwar Speicherplatz aber wäre doch rein theoretisch machbar oder? Oder ich muss eben meine zu Speichernde Variable vorher genau definieren und schauen was da für Datengrößen möglich sind.
    Ich versteh eben einfach nicht, warum es nicht mit Bezug auf die eine zu beschreibende Variable geht, obwohl ich darau achte, dass die Datentypgröße passt.

Ähnliche Themen

  1. Wie cx 9010-0000 in System Manager einbinden ?
    Von der dude im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 22.03.2012, 17:03
  2. TwinCAT System Manager
    Von -ASDF- im Forum CODESYS und IEC61131
    Antworten: 31
    Letzter Beitrag: 07.11.2011, 13:27
  3. twincat system manager
    Von slaud im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 25.10.2011, 16:15
  4. TwinCat System Manager Fehlermeldung
    Von jojo-schneider im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 19.10.2009, 12:52
  5. Beckhoff Twincat System Manager und L-Force 9400
    Von stefmaster im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 19.07.2007, 00:25

Stichworte

Lesezeichen

Berechtigungen

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