SEW Servo Adressierung

EMZ

Level-2
Beiträge
232
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

habe mich für eine erweiterte Buspositionierung mit SEW entschieden, die ich über Profibus lösen will.
Ich habe mir von SEW ein Beispielprojekt runtergeladen und mir das ganze angeschaut.
Mir wird jetzt leider nicht ganz ersichtlich, wie ich herausfinden kann, welche Adresse, bzw. wie ich die aktuelle Istposition meines Servoantriebes über Simatic Step 7 herauslesen und weiterverarbeiten kann.
Es dient rein zu Übungszwecken und deshalb keine genaue Aufgabenstellung.
Mir würde es schon reichen, wenn ich weiß, wie ich die Paramter wie aktuelle Position, akutellen Winkel etc. lesen und z.B. in meine Funktionsbausteine einfügen kann.
Ich möchte zum Üben erstmal ganz easy, den Umrichter anfahren lassen und eine Position anfahren, diese Position soll dann über einen Zähler gezählt und durch einen Vergleichswert (Vergleicher) verglichen werden.


Wäre dankbar wenn mir jemand weiterhelfen kann.

Liebe Grüße
EMZ
 
Auf der Seite von SEW findest Du ein Beispielprojekt für erweiterte Buspositionierung mit S7.
Da kann man gut drauf aufbauen.
Einfach mal auf der SEW-Seite nach "erweiterte Buspositionierung" suchen
Gruß
Erich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

danke erstmal für die Antworten, ich habe allerdings wie schon oben geschrieben das Beispielprojekt von SEW "erweiterte Buspositionierung" heruntergeladen.
Allerdings kann ich nicht nachvollziehen, wie z.B. bei dem MOVIEDRIVE B die aktuelle Position ermittelt wird.

Ich frage mal einbisschen anders:

Ich möchte ganz easy zum Üben eine Position anfahren, z.B. 150mm. Wenn die 150mm erreicht sind soll der Servoregler stoppen, eine Wartezeit von 1sekunde vergehen und dieser wieder zurückfahren.
Ich habe leider damit nicht viel zutun gehabt und deshalb noch relativ unerfahren.
Deshalb würde es mir reichen, wenn ihr mir sagen könntet wie ich step für step die aktuelle Position in mm in ein FB oder FC reinprogramieren kann.
z.b. will ich die aktuelle position an einen Zähler zuweisen und dieser soll mir dann 150 mm abzählen.
Ich habe keinerlei ansätze wie ich die aktuelle Position in ein FB/FC verarbeiten kann.
Wünschenswert wäre SCL Programmiersprache.


LG
EMZ
 
Moin,

in der Hilfe und im Baustein wird doch alles beschrieben.

Code:
Die FC140 dient als Beispielprogrammbaustein zur Ansteuerung des 
Applikationsmoduls "Erweiterte Buspositionierung" für die Gerätereihen 
MOVIDRIVE 
und MOVIDRIVEcompact in Technologieausführung.

Nach einer Inbetriebnahme des Applikationsmoduls können die Prozeßdaten im 
Monitor der Buspositionierung visualisiert werden. Weitere Informationen wie 
z.B. die Kodierung der Prozeßdaten sind in der Onlinehilfe der MOVITOOLS 
dokumentiert.

Eingänge der FC:
"DRIVE_IO_ADDRESS": Anfangsadresse des E/A-Bereichs => Hardwarekonfiguration
"ENABLE_RAPID_STOP" = true: Freigabe; false: Schnellstopp
"RESET": Fehler quittieren
Die Betriebsart wird mit den Eingängen "Jog_plus_mode, Jog_minus_mode; 
Ref_travel und Positioning_mode angewählt.
[COLOR=#ff0000]"SETPOINT_POS": Positionssollwert (DINT) in Anwendereinheit.
Die Anwendereinheit ist abhängig von der Inbetriebnahme der "Erweiterten 
Buspositionierung"[/COLOR]
"SETPOINT_SPEED": Positioniergeschwindigkeit (INT) in rpm
"START_RAMP": Beschleunigungsrampe (INT) in ms
"STOP_RAMP": Verzögerungsrampe(INT) in ms

Ausgänge der FC"
Ist die Datenübertragung/PROFIBUS gestört, so werden alle Ausgänge abgelöscht.
=> "COMMUNICATION_OK = false (selbstquittierend)
"FAULT_OF_AXIS" = true: Ein Fehler steht an.
"WARNING_OF_AXIS" = true: Eine Warnung steht an.
"INVERTER_READY" = true: Es liegt kein Fehler vor & Netzspannung EIN"
"REFERENCED" = true: Die Achse ist referenziert
TARGET_POS_REACHED" = true: Die Zielposition ist erreicht.
"AXIS_INTERLOCKED" = true: Meldet zurück, daß eine unplausible Modeanwahl 
vorliegt. (=> keine oder mehrere Modi angewählt)
"FAULT_NO" <> 0: Die Fehlercodes sind im Systemhandbuch dokumentiert und werden 
in den MOVITOOLS (Status, Busmonitor) angezeigt.
[COLOR=#ff0000]"ACTUAL_POSITION": Positionsistwert (DINT) in Anwendereinheit.[/COLOR]
"ACTUAL_SPEED": Istgeschwindigkeit (INT) in rpm
"ACTUAL_CURRENT": Stromistwert (Wirkstrom) in Prozent vom Gerätenennstrom


Hinweis: Endschalter freifahren (F27):
Ist einen Endschalter angefahren, so wird die Achse mit Notstopp stillgesetzt 
und F27 gemeldet. Wählen Sie Reset und richtungsabhängig Tippen_plus bzw. 
Tippen_minus an. Der Antrieb wird dadurch automatisch mit der Motordrehzahl n = 
100 1/min freigefahren.
 
Was der Servo zurück gibt (Zählwert im Geber, mm, o.ä.) ist erstmal davon abhängig, wie du den im "Motion Studio" in Betrieb genommen hast. Da werden Dinge gefragt wie z.B. Übersetzung vom Getriebe o.Ä..

Die Daten kannst du dann ganz normal wie jede andere Peripherie auslesen. Wo du diese findest hast du in deiner Hardware config eingestellt (hoffe ich :p).

Edit: Solltest du den Umrichter noch garnicht mit dem "Motion Studio" inbetrieb genommen haben, empfehle ich die SEW Hotline. Kostenfrei und innerhalb von 10 minuten läuft das Teil (zumindest über die Buspositionierung in der SEW Software). Der Schritt zur SPS-Steuerung ist dann ganz einfach.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

danke erstmal für eure Hilfe.
Ich habe mir die Buspositionierung angeschaut aber komme trotzdem nicht auf einen grünen Zweig wie das gemacht wurde.
Im Beispielprojekt von SEW "erweiterte Buspositionierung" steht z.B. als aktuelle Position in der Symboltabelle "MD210".
Als Datenwörter sind 6 stück von 265... verfügbar.
Wie kann ich jetzt die aktuelle Position egal in welcher Einheit aufrufen.
Ist die aktuelle Position immer fest als "MD 210" festgelegt oder ist die aktuelle Positon als z.B. MD 265.1 o.Ä. festgelegt.

Ich möchte das ganze nämlich in SCL Sprache programmieren, da mir AWL nicht wirklich liegt und ich in den beiden Programmiersprachen Neuling bin möchte ich mir von Anfang an SCL beibringen.
Ich möchte dann z.B. sowas einfacher als erste Übung programmieren:

IF ACTUAL_POS_ = 2048 then Freigabe_POS_1 := true;
END_IF;

undsoweiter.


PS: Da ich in diesen Bereichen noch Neuling bin, hoffe ich dass Ihr mir sämtliche Denkfehler etc. nicht ernst nimmt.


LG
EMZ
 
So wird das nix ... Ein NC Antrieb hält seine Position nie genau. Zum Abfragen brauchst du ein Positionsfenster.

Wo liegt man da normalerweise eigentlich ,wenn man jetzt die gesamte Verfahrstrecke in 0..100% deklariert?
Ich meine in % die Abweichung.Nur so Erfahrungswerte, ich weiss das dies unterschiedlich ist.
Wartet man auch noch eine kleine Zeit ab, wenn der Wert im Fenster ist?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ok es geht mir eigentlich auch nicht um die genauigkeit des nc antriebes.
In erster Linie möchte ich nur wissen, wie das mit dem Programmieren geht.

Warum ist im beispiel in der busposi als aktuelle position "md210" hinterlegt.
Ist dieser merkerdoppelwort abhängig von den PAE's und PAA's, die von Sew fest deklariert sind,
oder kann man den "MD " frei deklarieren?

LG
EMZ
 
Zuletzt bearbeitet:
Der Beispielbaustein von SEW ist eigentlich gut dokumentiert. Wenn du damit nicht klar kommst, solltest du erstmal deine Grundkenntnisse erweitern.
Wie das MD210 zustande kommt findest du in der Hilfe zum SFC14 und SFC 15. In der Doku zur erweiterten Buspositionierung findest du die Belegung der Prozessworte.
Auf welche Einheit dir der Umrichter skaliert legst du mit der Parametrierung mit dem SEW-Motionstudio fest.

Die erweiterte Buspositionierung von SEW gehört sicherlich zu den einfachsten Positionierungen auf dem Markt.
Aber als absoluter Einsteiger bringst du das Ding nichtmal eben in einer Stunde zum laufen.

Gruß
Dieter
 
Hallo Sorry dass ich mich erst jetzt melde, ware ich Urlaub.

Bei der Hilfe zu SFC 14 /15 finde ich leider keine Angaben dazu, warum die als aktuelle Position "MD210" gewählt haben.
ich möchte das ganze in der SCL Programmiersprache im TIA mal umsetzen. Deshalb möchte ich wissen, wie die auf das MD210 gekommen sind.
wäre gut wenn mir jemand das erklären kann.
Ich habe leider in AWL und SCL nur Basic Kenntnisse und wenn ich schon eins lerne, dann mache ich es lieber mit SCL.
Fällt mir persönlich einfacher.
Deshalb würde ich gerne so eine Programmierung von null auf selber programmieren. Auch wenn dahinter viel Wissen steckt, das werde ich mir zwar schulisch aneignen, aber ich möchte soweit es geht auch selber rumprobieren.
Ist ja alles nur als Übung.

Danke im voraus
Ich hoffe ihr könnt mir helfen.


LG
EMZ
 
Zuviel Werbung?
-> Hier kostenlos registrieren
MD210 ist völlige Willkür. Der FU bekommt nur das mit was an den Projektierten Ausgängen anliegt, und sendet nur an die projektierten Eingänge.

Und auch wenn du dir alles selbst aneignen willst, kann ich mich den anderen ur anschließen: Schau dir das Beispiel von SEW an. Da hat sich jemand die mühe gemacht, alles wunderbar zu erklären. Und wenn das nicht hilft, dann Ruf die SEW Hotline an. Die kennen sich zwar mit der SPS wenig aus, aber dann weißt du zumindest, ob der FU richtig eingerichtet ist.
 
Hallo,

danke für deine Antwort.
Also den FU habe ich garnicht in Betrieb, sondern momentan alles nur über S7.
Also die Hilfe habe ich angeschaut, aber ich finde da keine Erklärung die mir genaues über dir PEA's und PAA's verrät.
Zum Beispiel : ist position ist laut doku Pe2+3 dann sind dort 0-15 bit für low und high
Das ist ja die belegung der PEA's ...und was bringt mir wenn ich weiss dass PE 2 Ist position high ist?
Wie kann ich daraus die Adresse des PEA's herausfinden. Diese Basics fehlen mir noch da ich leider noch nie damit was zutun hatte.
Kann mir da jemand weiterhelfen?

Lg
EMZ
 
Hallo,

danke für deine Antwort.
Also den FU habe ich garnicht in Betrieb, sondern momentan alles nur über S7.
Also die Hilfe habe ich angeschaut, aber ich finde da keine Erklärung die mir genaues über dir PEA's und PAA's verrät.
Zum Beispiel : ist position ist laut doku Pe2+3 dann sind dort 0-15 bit für low und high
Das ist ja die belegung der PEA's ...und was bringt mir wenn ich weiss dass PE 2 Ist position high ist?
Wie kann ich daraus die Adresse des PEA's herausfinden. Diese Basics fehlen mir noch da ich leider noch nie damit was zutun hatte.
Kann mir da jemand weiterhelfen?

Lg
EMZ

Du musst den FU zuerst in deine Hardware Configuration einfügen. Dort kannst du die Adressen der PE und PA selbst bestimmen. Die Daten hinterher auswerten ist eine völlig andere Geschichte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast du die .gsd Datei von SEW schon im HW-MANAGER eingefügt?
Anschließend ein Modul in die HW-CONFIG einfügen. Da wird die Adresse festgelegt. Meistens liegt die nicht mehr im Prozessabbild und Du musst die Daten mit SFC 14 / SFC 15 lesen bzw. schreiben.
 
Hallo die gsd datei habe ich bereits heruntergeladen. Die ist auch beim Beispielprojekt mit dabei.
Da steht ja dann zum Beispiel 6 Datenwort PA oder ähnlich
und dann eine Adresse z.B 300....

Leider kann ich aber damit nichts anfangen wenn ich z.B. die ist-Position in einem FB bearbeiten will.
Ich will doch bestimmt kein hexenwerk.
Das muss doch fürn erfahrenen ziemlich schnell gehen. Kann mir vllt jmd step für step erklären wie ich nach dem ich die gsd datei in hw drinne hab, mit dem parameter "ist- position" im FB arbeiten kann.
Und warum kann ich im beispielprojekt sfc 14/15 nicht offnen bzw. Warum sind die lese/-schreibgeschützt?.

Danke im voraus

Lg
EMZ
 
SFC14 / SFC15 sind Sytembausteine von Siemens. Da musst du auch nicht reingucken. Es gibt aber doch in dem Beispielprojekt einen FB oder FC, wo der Aufruf schon so drin ist, dass man nur noch Variablen an die IN/OUT-Parameter antragen muss. So ungefähr hab ich das grad in Erinnerung. Bei dir ist das z.B. konkret das MD210 wovon du geschrieben hast.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Problem das du hast ist doch, das dir wirklich alle Grundlagen fehlen.
Sinngemäß versuchst du also Sprint-Weltmeister zu werden bevor du laufen kannst.

Sprich beginne mit den Siemens Ausbildungsunterlagen, und wenn du dann früher oder später Begriffe wie PE PA auseinander halten kannst kümmerst du dich wieder um den Servo. Das ist selbst dann noch komplex genug.
 
Hier wird auch der 2. Schritt vor dem ersten gemacht. Nimm erst den Servo in Betrieb. Nach dem du diesn inbetrieb genommen hast, bekommst du von der SEW Software die Angaben:
1. Wieviele PE und PA musst du überhaupt Projektieren
2. Was liegt auf welchem PE/PA

Auch muss bei der Inbetriebnahme des Servos die Übersetzung vom Geber auf die entsprechende Maßeinheit eingestellt werden. Dazu musst du wissen, was der Servo antreibt, und mit welcher Übersetzung und Massenträgheit (da kann dir der mechanische Konstrukteur helfen). "Einfach mal eben mit ner Position arbeiten" funktioniert so nicht.

Zu SFC14/15: Die Bausteine lesen und schreiben Daten auf die eingestellte Busadresse. Was darin passiert, ist völlig egal. Vom Prinzip musst du nur wissen:
SPS-Daten -> *magic* -> Bus-Daten
bzw
Bus-Daten -> *magic* -> SPS-Daten

Die SPS muss die Daten für den FU auf den Bus legen, und umgekehrt, die SFC 14/15 übernehmen das nur für dich.
 
Zurück
Oben