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

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

Thema: Was benötige ich um SPS-Achsen zu verfahren?

  1. #1
    Registriert seit
    05.07.2010
    Beiträge
    7
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forengemeinde,
    ich muss eine Maschine mit TwinCat-PTP realisieren und erstmal die Achsbausteine schreiben. Anscheinend gibt es da ein paar Bausteine, die für diese Aufgabe sinnvoll und "notwendig" sind.
    - MC_Power
    - MC_Reset
    - MC_Stop
    - MC_MoveAbsolutOrRestart

    Frage 1:
    Das sehe ich doch so erst einmal richtig, oder?

    Nur für gewisse Dinge möchte ich auch weitere Informationen haben, wie z.B. "aktuelle Geschwindigkeit" oder "aktuelle Position". Diese kann ich anscheinend einmal mit ADS-Read Befehle rauslesen oder direkt aus den Strukturen PLCTONCAXLESTRUCT und NCTOPLCAXLESTRUCT.
    Frage 2:
    Sehe ich das richtig?

    Frage 3:
    Was wäre schneller, ADS oder aus der Struktur?

    Wenn das alles so stimmt, dann würde ich mir ja einen Baustein mit den o.g. Bausteinen programmieren und drum herum die zusätzlichen Informationen, die ich mir selbst herauslese. Ich finde das etwas durchwuschelt.

    Wenn ich mir schon Dinge per Hand rausziehen muss, warum nicht alles?
    Ich kann ja Vorschubfreigaben, Geschwindigkeiten und Positionen und alles Andere im Achinterface PLCTONCAXLESTRUCT und NCTOPLCAXLESTRUCT finden.
    Dieses Interface wäre nun für mich etwas überladen. Doch ich kann mir doch meine eigene Struktur schreiben und dort nur die wichtigsten Dinge reinpacken, oder?

    Frage 4:
    Wie seht Ihr das?

    Grüße,
    Michael
    Zitieren Zitieren Was benötige ich um SPS-Achsen zu verfahren?  

  2. #2
    Registriert seit
    01.07.2010
    Beiträge
    9
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    also ich benutze für die einfache Achspositionierung die Bausteine
    MC_MoveAbsolute
    MC_Home (Fürs Referenzieren der Achse beim Neustart)
    MC_Jog (Für Handfahrten)
    MC_Power
    MC_Reset


    Die aktuelle Pos und Geschwindigkeit bekommst du aus der Struktur
    PLCTONCAXLESTRUCT und NCTOPLCAXLESTRUCT
    einfach
    NCTOPLCAXLESTRUCT.fPosIst
    NCTOPLCAXLESTRUCT.fVeloIst

    Was schneller ist kann ich nicht sagen, habe mit ADS noch nichts gemacht.

    Ich habe mir einen eigenen FB geschrieben, mit den wichtigsten Befehlen die ich brauche. Ist sehr hilfreich.

    Ich hoffe ich konnte dir ein wenig weiter helfen


    MfG

  3. Folgender Benutzer sagt Danke zu PeterPan83 für den nützlichen Beitrag:

    MichaelHe (06.07.2010)

  4. #3
    MichaelHe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.07.2010
    Beiträge
    7
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo PeterPan,
    danke für die Antwort. Wenn Du anstelle MC_MoveAbsolute den Baustein MC_MoveAbsoluteORRestart benutzt, kannst Du Zielposition und/oder Geschwindigkeit verändern, bevor das ursprüngliche Ziel erreicht ist.

    Ich würde gerne noch von jemadem wissen, ob ich diese Bausteine theoretisch brauche:
    Ich kann ja jeden Zustand aus der angesprochenen Struktur rauslesen.
    Wenn ich sehe, dass die Achse Betriebsbereit ist usw. Dann kann ich sie doch über die Struktur so beschalten, dass sie verfährt?
    Also z.B.:

    PLCTONC_AXLESTRUCT.Enable=TRUE (*Reglerfreigabe*)
    PLCTONC_AXLESTRUCT.FeedEnablePlus=TRUE (*Vorschubfreigabe Plus*)
    PLCTONC_AXLESTRUCT.FeedEnablePlus=TRUE (*Vorschubfreigabe Minus*)

    usw.
    aber wo beschreibe ich nun die Sollposition und Sollgeschwindigkeit?
    Da steht nur etwas von externer Sollposition?
    Heißt das dann die Achse bekommt gleich die ultimative Sollposition?
    Hätte den Vorteil, dass der Rechner weniger belastet würde, oder? Denn der Regler würde nicht die ganze Zeit mit Zwischensollpositionen gefüttert werden(welche die nc ja berechnen muss), sondern mit dem letzten Sollwert. Dadurch muss der Servo halt selbst geregelt dorthin fahren (ich sag mal, das könnte BoschRexroth gut).
    Entschuldigt, dass ich so viel frage, aber ich habe viele Vermutungen, wie das Ganze geht, aber bin mir nicht sicher und ich darf jetzt nicht 2 Wochen in die falsche Richtung programmieren. Die Maschine ist in 4 Wochen mechanisch fertig und ich habe ca. eine Woche Zeit für die Inbetriebnahme.
    Außerdem möchte ich diese Bausteine so gut wie möglich und flexibel programmieren, da sie der Grundbaustein für nächste Projekte werden sollen.
    Vielen Dank

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

    Standard

    Zitat Zitat von MichaelHe Beitrag anzeigen
    Ich würde gerne noch von jemadem wissen, ob ich diese Bausteine theoretisch brauche:
    Ich kann ja jeden Zustand aus der angesprochenen Struktur rauslesen.
    Wenn ich sehe, dass die Achse Betriebsbereit ist usw. Dann kann ich sie doch über die Struktur so beschalten, dass sie verfährt?
    Also z.B.:

    PLCTONC_AXLESTRUCT.Enable=TRUE (*Reglerfreigabe*)
    PLCTONC_AXLESTRUCT.FeedEnablePlus=TRUE (*Vorschubfreigabe Plus*)
    PLCTONC_AXLESTRUCT.FeedEnablePlus=TRUE (*Vorschubfreigabe Minus*)

    usw.
    aber wo beschreibe ich nun die Sollposition und Sollgeschwindigkeit?
    Da steht nur etwas von externer Sollposition?
    Fahrbefehle kannste nur über die Bausteine abschicken, da der Sollwertgenerator ja arbeiten muss. Istwerte bekommste über die Achsstrukturen.

    Die ADS-Bausteine brauchste nicht unbeding. Für die Istwerte eigentlich gar nicht. Nur wenn du Parameter verändern willst.

    Wenn du in das Thema neu einsteigst, kannst du auch gleich mal die neue Bibliothek MC2 anschauen (TcMc2.lib). Die Achsstrukturen sind ein wenig anders aufgebaut und es gibt keinen FB_MoveAbsoluteOrRestart mehr.
    Zitat Zitat von MichaelHe Beitrag anzeigen
    Heißt das dann die Achse bekommt gleich die ultimative Sollposition?
    Hätte den Vorteil, dass der Rechner weniger belastet würde, oder? Denn der Regler würde nicht die ganze Zeit mit Zwischensollpositionen gefüttert werden(welche die nc ja berechnen muss), sondern mit dem letzten Sollwert. Dadurch muss der Servo halt selbst geregelt dorthin fahren (ich sag mal, das könnte BoschRexroth gut).
    Meinst du das hier mit Externen Solwlerten?:
    http://infosys.beckhoff.com/index.ph...e.htm&id=14721
    Das macht nur Sinn, wenn du über die SPS ein vernüftiges Sollwertprofil berechnen kannst (unter Berücksichtigung von Geschwindigkeit, Beschleunigung, Ruck).
    Ich denke das ist für deine Zwecke zu aufwendig.

    Wenn du aber eh schon eine Achse hast, die ein Positionsinterface besitzt (Verarbeitung von Positionssollwerten, statt Geschwindigkeitssollwerten), dann brauchst du im einfachsten Fall nicht einmal die NC. Du würdest einfach Geschwind., Beschleun. und Ruck am Antrieb parametrieren und über die Prozessdaten stur einen Positionssollwert rausschicken. Der Antrieb rennt dann immer hinterher.

    Zitat Zitat von MichaelHe Beitrag anzeigen
    Entschuldigt, dass ich so viel frage, aber ich habe viele Vermutungen, wie das Ganze geht, aber bin mir nicht sicher und ich darf jetzt nicht 2 Wochen in die falsche Richtung programmieren. Die Maschine ist in 4 Wochen mechanisch fertig und ich habe ca. eine Woche Zeit für die Inbetriebnahme.
    Im Idealfall machst du erstmal eine NC-Schulung bei Beckhoff. Kann ich sehr empfehlen!
    Zitat Zitat von MichaelHe Beitrag anzeigen
    Außerdem möchte ich diese Bausteine so gut wie möglich und flexibel programmieren, da sie der Grundbaustein für nächste Projekte werden sollen.
    Dann solltest du nach und nach alle Grundfunktionen implementieren:

    Power
    Reset
    Home
    MoveAbsolute (bzw. MoveAbsolutOrRestart bei MC1)
    MoveVelocity
    MoveModulo

  6. Folgende 2 Benutzer sagen Danke zu trinitaucher für den nützlichen Beitrag:

    MichaelHe (06.07.2010),ostermann (11.03.2015)

  7. #5
    MichaelHe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.07.2010
    Beiträge
    7
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Trinittaucher,
    jetzt wird mir einiges klarer, danke.
    Ich werde es dann über Deine angesprochenen Bausteine machen.

    Ich habe noch ein paar kleine Fragen:
    1.
    Benötige ich wirklich den Baustein MC_Stop oder reicht es, wenn ich die Reglerfreigabe vom Powerbaustein nehme?

    2.
    Wenn die Achse verfährt und ich nehme die Freigabe und gebe sie anschließend zurück, fährt die Achse dann weiter oder muss ich das "Execute" am "MoveAbsolute" Baustein erneut ausführen?

    Vielen Dank!

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

    Standard

    Zitat Zitat von MichaelHe Beitrag anzeigen
    1.
    Benötige ich wirklich den Baustein MC_Stop oder reicht es, wenn ich die Reglerfreigabe vom Powerbaustein nehme?
    Ja, brauchst du.
    Ziehst du zum Bremsen etwa den Zündschlüssel bei deinem Auto?

    Wenn du Reglerfreigaben während der Fahrt entziehst, gibt's wahrscheinlich nen Haufen Fehler.
    Zitat Zitat von MichaelHe Beitrag anzeigen
    2.
    Wenn die Achse verfährt und ich nehme die Freigabe und gebe sie anschließend zurück, fährt die Achse dann weiter oder muss ich das "Execute" am "MoveAbsolute" Baustein erneut ausführen?
    Siehe oben.
    Im Fehlerfall werden alle Fahraufträge gelöscht.

    Die Achse (auch NC-seitig) sollte immer Enable bleiben. Die Kommandos dann über die Bausteine.
    Nur im Fehlerfall oder bei Not-Halt sollte die Freigabe entzogen werden. Und natürlich zum "ausschalten" der Antriebe.

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

    MichaelHe (06.07.2010)

  10. #7
    MichaelHe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.07.2010
    Beiträge
    7
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Frage

    Hallo Trinittaucher,
    noch mal vielen Dank.
    Ich habe den Baustein fast fertig.
    Ich habe da noch eine Frage zum "Fahren auf Festanschlag". Ich bin nicht sicher, ob ich weiß, wie das funktioniert.
    Meine Vermutung:
    Ich muss erstmal den "Drehmoment/Kraft-Grenzwert bipolar" auf meine gewünschte Grenze setzen (S-0-0092).
    Dann gebe ich über das Signalsteuerwort (S-0-0145) an, dass ich nun "auf Festanschlag" fahren möchte.
    Wenn ich dann diese Position erreicht habe, bekomme ich das mit, in dem ich Über S-0-0084 auswerte, dass der Drehmoment/Kraft-Istwert größer sein Grenzwert ist, richtig?

    Was muss ich dann tun? Der Fahrauftrag steht doch dann noch an? Muss ich dann "nur" das Execute beim MC_MoveAbsoluteOrRestart zurücksetzen? Oder braucht man das nicht?

    Schon mal vielen Dank und schönes Wochenende,
    Rafael

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

    Standard

    Du hast also nen Sercos-Antrieb. Welcher Hersteller?

    Wie du vom Antrieb die Meldung bekommt, weiß ich nicht.

    Du musst bei Festanschlagfahrten aber auf die NC-Reaktion aufpassen.
    Wenn der Antrieb bei Fahrt auf den Anschlag sein "Bereit" im Statuswort wegnimmt, wird die NC bestimmt nen Fehler bringen, da der Antrieb während der Fahrt sich nicht mehr als enable meldet.
    Dafür gibt's bei der TwinCAT-NC ein Bit zu setzen, welches zulässt, dass der Antrieb während der Fahrt sein "Bereit" wegnimmt (Bit 8, "accept blocked drive"):
    http://infosys.beckhoff.de/index.php...c.htm&id=14844
    Dann wird die NC erst einen Fehler bringen, wenn die Schleppabstandsüberwachung zuschlägt. Der Sollwert wird weiter erhöht, der Antrieb kann aber nicht folgen.
    Wenn du bspw. die Grenze bei 15mm setzt, der Schleppabstand aber 5mm übersteigt, weißt du, dass der Anschlag erreicht ist und stoppst die Achse mit MC_Stop (langsam fahren, sonst kommt die Überwachung zu schnell). Ein MC_Move... wird dann abgebrochen.
    Bedenke, dass der Sollwert dann noch ansteht (wg. dem Schleppfehler)! Man könnte dann die Achse resetten, um den Schleppabstand auf null zu setzen. Oder du setzt Sollwert = Istwert.
    Zusätzlich kannste den Anschlagpunkt als Software-Endlage setzen.

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

    MichaelHe (15.07.2010)

  13. #9
    MichaelHe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.07.2010
    Beiträge
    7
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Trinittaucher,
    danke für die Antwort. Ich werde zunächst eine andere Variante versuchen. Wir benutzen Regler von BoschRexroth. Erschwerend kommt hinzu, dass es sich um Advancedregler handelt, also Regler mit besonderer Sicherheitstechnik (Regler dürfen am Netz bleiben, wenn Bediener ins Lichtgitter geht). Das Problem wird sein, dass ich das Drehmoment bei den Advancedreglern nicht beliebig runterschrauben darf. Wenn der Regler merkt, dass seine Drehmomenteinstellungen nicht ausreichen um in vorgegebener Zeit "sicher" zum Stillstand zu kommen, gibt es einen Fehler.
    Deshalb versuche ich es mit dem Parameter S-0-0126 Drehmomentschwelle Mdx. Dies ist ein Drehmoment das man beliebig wählen kann. Wird es überschritten, dann passiert nichts weiter, als dass man dies über das Bit 3 in S-0-0013 auslesen kann.
    Ich muss ein Brett spannen und weiß ziemlich genau wo es liegt. Ich gehe mit der Achse auf eine Vorposition ca. 4mm vor dem Ort, an dem der Bediener nun das Werkstück platziert. Ich fahre langsam weiter (ca. 8mm)und löse ein MC_Stop aus (und damit einen Abbruch des aktuellen Auftrags) sobald das Bit 3 von S-0-0013 gesetzt wird. Dieser Stop in dieser Konstellation, signalisiert mit, dass das Ziel erreicht wurde, da ich meinen NC-Baustein so geschrieben habe.

    Das ist alles Theorie bis jetzt. Die Anlage ist noch im Aufbau und ich kann hoffentlich ab KW31 an die Anlage.
    Ich werde dann bestimmt noch so einige Schwächen und Fehler in meinem NC-Baustein finden, aber ich hoffe, dass ich nach diesem Projekt einen guten Baustein geschaffen habe.
    Bis hierher noch einmal viele Dank.
    Gruß,
    Michael

  14. #10
    Registriert seit
    01.08.2014
    Beiträge
    16
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo leute,

    das theme ist paar Jährchen her, aber hoffe trotzdem, dass einer meine Frage beantworten kann.

    Ist es möglich den Strom vom Schrittmotor AS1060 auslesen zu können? Also möchte gerne den Strom-Wert in der SPS integrieren,
    so daß ich jeder Zeit den Strom von der VISU auslesen kann.


    Danke im Voraus

    Gruß

Ähnliche Themen

  1. Zylinder verfahren lassen
    Von Vauxhall1983 im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 02.09.2009, 15:44
  2. 2 Achsen Positionserrechnung
    Von Bensen83 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 30.08.2009, 00:00
  3. Uhrzeitsynchronisation über NTP-Verfahren
    Von Susi im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 08.05.2008, 07:49
  4. Achse im Handbetrieb verfahren
    Von Drain im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 29.08.2006, 12:28
  5. Problem beim Verfahren mit FM 354
    Von Kastele im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 22.10.2004, 17:18

Lesezeichen

Berechtigungen

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