Elau C400 mit MC-4 und PS-5/ iSH, zyklische Geschwindigkeitsvorgabe/ Fehler einzelner Achsen "ignorieren"

ServoSven

Level-2
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin derzeit bei uns in der Firma (Reparatur von Servomotoren und -reglern) dabei, eine Elau C400-Steuerung mit zwei Achsen neu in Betrieb zu nehmen.
Eine Achse ist ein MC-4 zum Anschluss der "normalen" Servomotoren und ein PS-5 zum Anschluss von iSH-Antrieben. Genutzt wird der Aufbau für Probeläufe der Motoren in einfacher Geschwindigkeitsregelung ohne weitere Anforderungen.

Bisher wurden die Achsen einfach im Tippbetrieb mit dem "Jogging3"-Baustein, fester Drehzahlvorgabe und Enable/ rechts/ links über Digitaleingänge gesteuert. Das habe ich seinerzeit so aufgebaut und mich damals per "Learning-by-doing" in die EPAS-4 V24 Software eingearbeitet. Noch zur Info, ich bin kein Programmierer und habe mir (bis auf die nötigsten Grundlagen, die ich mal bei B&R mitgenommen habe) alles selbst oder mit Kollegen angeeignet.

Jetzt sollen die Achsen nicht mehr mit fester Drehzahl laufen, sondern diese soll über den Analogeingang eingestellt werden können. Ich habe es schon geschafft, den Eingangssollwert zu verarbeiten und mittels vom Motor ausgelesener Maximaldrehzahl zu skalieren und an den Jogging3-Baustein zu übergeben und den Motor damit auch laufen zu lassen.
Was ich bisher in mehreren Stunden nicht hinbekommen habe, ist, dass der laufende Motor auf Sollwertänderungen reagiert. Bei B&R konnte ich das mit einem Baustein lösen, der automatisch mit jedem Zyklus den Sollwert neu eingelesen hat. Das machen die normalen Bausteine ja offensichtlich nicht.

Ich habe es versucht mit verschiedenen Arten von Timerbausteinen, z.B. das die Jog-Eingänge im Zyklus einmal neu gesetzt werden oder auch der Enable-Eingang. Bei ersterer Variante hat der Antrieb trotzdem nicht auf Sollwertänderungen reagiert, bei zweiter Variante hat der Motor natürlich mit jedem FALSE am Enable-Eingang hart gestoppt und dann wieder neu beschleunigt (aufgrund der Zykluszeiten war das natürlich nur ein Zucken).

Probiert habe ich es aber auch mit dem EndlessFeed, da hatte ich dann aber das Problem, dass der Baustein mir immer nur "Controller not ready" ausgegeben hat. Vermutlich muss die Achse für diesen Baustein referenziert sein? Das habe ich bisher nicht gemacht. Und bei diesem Baustein war mir auch noch nicht klar, wie ich eine negative Drehzahlvorgabe realisiere, da am Eingang ein Wert >0 erwartet wird (wenn ich mich jetzt gerade richtig erinnere).

Wahrscheinlich ist es ein sehr triviales Problem und mir fehlt nur der richtige Ansatz. Ich würde mich über eure Unterstützung sehr freuen.

Ein zweites Anliegen hätte ich allerdings auch noch, das ist aber nicht so elementar wichtig. Bisher müssen an beiden Achsen auch Motoren angeschlossen werden, damit die Steuerung nicht in den Fehlerstatus geht und man gar keinen Motor laufen lassen kann (macht ja in Maschinen auch durchaus Sinn). Jetzt würde es die Sache natürlich aber vereinfachen, wenn man die nicht genutzte Achse einfach "deaktivieren" könnte und die andere trotzdem laufen würde. Mein Gedanke wäre da z.B. die Achse, die keine Motortype auslesen konnte, per Programm automatisch zu deaktivieren. Ist das mit relativ geringem Aufwand zu machen?

Schonmal einen riesigen Dank im Voraus und schönen Abend bzw. schönes langes Wochenende
Sven
 
Schau dir mal den Baustein PDL_FB_EndlessFeed an. Der ist eigentlich für virtuelle Masterachsen gedacht, könnte aber für diesen Fall funktionieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
danke für den Tipp, aber das war genau der Baustein, der mir immer "Controller not ready" ausgespuckt hat. Ich hatte dann an der Stelle aber keine Zeit mehr. Frühestens Mittwoch habe ich wieder Gelegenheit, weiter zu forschen.

Danke und Gruß
Sven
 
Achsen lassen sich deaktivieren, indem die Sercosadressen in den Bereich 100 bis 200 verschoben werden wenn ich das noch richtig im Kopf habe.

Der Baustein PDL_FB_EndlessFeed ist wie oben bereits geschrieben eigentlich für eine Masterachse gedacht. Auf diese könnten die Antriebsachsen per elektronischem Getriebe draufgehängt werden und dabei die Drehrichtung invertiert werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

Meines Wissens übernehmen die Achsen nur einen neuen Geschwindigkeitswert wenn einmal das "Start" Signal FALSE wird. Ich hab den Baustein gerade nicht vor Augen aber du hast ja sicher einen Eingang für Vor Bzw Zurück. Den müsstest du nur einen Zyklus lange deaktivieren. Dann sollte er die neue Geschwindigkeit übernehmen. Die Erkennung kannst du ja machen indem du dir einen Speicher des Sollwerts machst und den zyklisch mit deinem Eingangswert vergleichst. Aber Achtung, so ein Analogeingang kann sicher auch etwas "flimmern" vielleicht besuchst du dafür eine Hysterese für deine Änderungserkennung.

Zum anderen Thema: das geht wie oben schon gesagt, Achsadresse auf >99 und dann ist diese virtuell geschaltet. Wie das früher im Hochlauf abgefragt wurde weiß ich jetzt adhoc nicht mehr.
 
Nabend,

Hi,

Meines Wissens übernehmen die Achsen nur einen neuen Geschwindigkeitswert wenn einmal das "Start" Signal FALSE wird. Ich hab den Baustein gerade nicht vor Augen aber du hast ja sicher einen Eingang für Vor Bzw Zurück. Den müsstest du nur einen Zyklus lange deaktivieren. Dann sollte er die neue Geschwindigkeit übernehmen. Die Erkennung kannst du ja machen indem du dir einen Speicher des Sollwerts machst und den zyklisch mit deinem Eingangswert vergleichst. Aber Achtung, so ein Analogeingang kann sicher auch etwas "flimmern" vielleicht besuchst du dafür eine Hysterese für deine Änderungserkennung.

jetzt bin ich mir tatsächlich gar nicht mehr sicher, ob ich das probiert habe, den jeweiligen Eingang für einen ganzen Zyklus zu deaktivieren. Aber das ist ja schnell getestet am Mittwoch. Wenn das tatsächlich so einfach klappt, dann habe ich da einfach den Wald vor lauter Bäumen nicht gesehen. Danke schonmal! Aber brauche ich überhaupt eine Änderungserkennung? Der Sollwert kommt ja mit jedem Zyklus wieder neu am Baustein an. Und wenn dieser dann neu aktiviert wird, nimmt er ja den Wert dann hoffentlich auch an. Oder war dein Gedanke der, dass der Baustein nur bei einer Änderung des Sollwertes für einen Zyklus deaktiviert wird und ansonsten ständig aktiv bleibt?

Achsen lassen sich deaktivieren, indem die Sercosadressen in den Bereich 100 bis 200 verschoben werden wenn ich das noch richtig im Kopf habe.

Ja, Adressen ab >99 werden als virtuelle Achse gehandelt.
Danke, das war mir tatsächlich auch schon so bekannt. Ich hatte nur die Hoffnung, dass man das per Programm irgendwie umgehen kann, damit die Benutzer zum Prüfen der Motoren EPAS gar nicht mehr öffnen müssen.
Der Baustein PDL_FB_EndlessFeed ist wie oben bereits geschrieben eigentlich für eine Masterachse gedacht. Auf diese könnten die Antriebsachsen per elektronischem Getriebe draufgehängt werden und dabei die Drehrichtung invertiert werden.

Das hört sich für mich gerade tatsächlich sehr kompliziert an, wenn ich aber auf dem anderen Weg nicht weiterkomme, werde ich mich wohl damit beschäftigen müssen. Aber ich werde mir die Hilfe zu dem Thema mal anschauen, hoffe da steht was zur Masterachse drin.

Besten Dank an alle und einen schönen Abend
Sven
 
Guten Abend,

dank eurer Mithilfe bin ich zu einer für mich gut funktionierenden Lösung für das Drehzahlproblem gekommen. Meine Idee, den Jog-Eingang zyklisch zu disablen hat natürlich nicht funktioniert. Innerhalb eines Zyklus hat der Antrieb natürlich auch garkeine Zeit um zu beschleunigen...

Ich habe mir also eine kleine Funktion geschrieben, die z.B. jeden 20. Zyklus den Jog-Eingang disabled. Das funktioniert für unsere Anwendung wunderbar und lässt die Drehzahl angenehm über den Analogeingang regeln.

Das Thema mit den virtuellen Achsen funktioniert interessanterweise nicht so, wie es soll. Die Steuerung geht totz "virtuellem" MC-4 in Störung, wenn an diesem kein Motor angeschlossen ist. Bei PS-5 und iSH funktioniert es hingegen, solange der SERCOS-Bus über DB-5 abgeschlossen wird. Aber das Problem ist wie gesagt zweitrangig.

Besten Dank für eure Beiträge!
Alles Gute,
Sven
 
Zurück
Oben