Autor Thema: easy Steuerung für 2 Motorsteuerungen  (Gelesen 6462 mal)

Offline Kahmui

  • Jr. Member
  • **
  • Beiträge: 40
easy Steuerung für 2 Motorsteuerungen
« am: August 10, 2021, 10:52:18 Vormittag »
Guten Morgen zusammen!

Ich stehe derzeit vor dem Problem, einen Entwurf für eine Steuerung zu entwickeln und hoffe, dass Ihr mir hier mit Rat und Tat zur Seite stehen könnt. Vorab erstmal eine kurze Erläuterung:

Ich habe eine Anlage, die eine sternförmige (wichtig bezüglich Sensoren) Platte zum einen linear und zum anderen rotativ bewegen soll. Dazu habe ich einen NEMA17 mit der igus D7 Steuerung und einen NEMA23 Motor mit einer igus D1-Steuerung. Die Mechanik ist natürlich doppelt gelagert, damit die Motoren sich nicht gegenseitig beinträchtigen.

Als übergeordnete Steuerung möchte ich meine easy E4 12RC1 verwenden. Hier haben wir ja die Bandbreite von 8 digitalen Eingängen und 4 Ausgängen. Deswegen plane ich die Steuerung mit einem 8RE1 zu erweitern. Somit haben wir in Summe 8 Ausgänge.

Die D1 Steuerung für den NEMA23 verlangt hier schon 4 Ausgänge für das Startsignal, das Stopsignal sowie zwei Ausgänge, um über den entsprechenden Eingang an der D1-Steuerung im Binärbetrieb meine beiden Bewegungsabläufe (auf und ab) zu starten. Es ist wichtig die Abläufe zu trennen, um zwei unterschiedliche Bewegungen zwecks Beschleunigung und Verzögerung umzusetzen.
Die D7 Steuerung für den NEMA17 benötigt lediglich zwei Ausgänge für STEP+ und DIR+. Damit wird die Richtung der Rotation festgelegt.
Beide Steuerungen verlangen nach einer Freigabe für die Motoren. Diese würde ich gemeinsam auf den 7. Output legen.
Damit habe ich am Ende einen Ausgang frei um letztendlich noch ein Ventil betätigen zu können.

Zur Abfrage der Positionen sehe ich 3 Sensoren vor:
Einen zum Abfragen der oberen Position, unabhhängig von der rotativen Lage. (Sensor REF)
Einen zum Abfragen der oberen Position, zum bestimmen / ausrichten der rotativen Lage. (Sensor OT)
Einen zum Abfragen der unteren Position (Sensor UT)



Die Funktion soll wie folgt aussehen:

Zu Beginn soll die Anlage vorab EINMALIG referenziert werden (entweder automatisch oder mittels Taster), da es unter Umständen dazu kommen kann, dass die Position der Platte / der Welle durch den Transport oder andere Einflüsse verändert wird.
Dazu soll der Linearmotor Bewegungsablauf 1 starten um die Platte nach oben zu verfahren und linear korrekt auszurichten. Sensor REF erkennt die Platte.
-> Nun muss die Platte rotativ ausgerichtet werden. Motor rotativ soll betätigt werden, bis Sensor OT die Platte erkennt.
-> Die Platte ist korrekt ausgerichtet und die Referenzierung abgeschlossen

AB jetzt soll das Programm im Wiederholmodus laufen.
-> Motor Linear nach unten verfahren bis Sensor UT aktiv (Ansteuerung Steuerung D1 -> Bewegungsablauf 1 bis Sensor UT aktiv)
-> Eine gewisse Zeit verweilen
-> Motor linear nach oberen verfahren bis Sensor OT aktiv (Ansteuerung Steuerung D1 -> Bewegungsablauf 2 bis Sensor OT aktiv)
-> Motor rotativ bewegen -> Sensor OT nicht mehr aktiv. Motor wird so lange weiter betätigt, bis Sensor OT erneut aktiv. (Ansteuerung Steuerung D7 -> STEP+, solange bis Sensor OT nicht mehr aktiv ist und wieder aktiv wird)
-> Anlage wieder in Ausgangsstellung
-> wiederholen

Hier gestaltet sich schon meine erste Problematik. Wie sage ich am einfachsten, dass er die Referenzierung (mal abgesehen davon, dass ich einen Taster nutzen könnte) automatisch zu Beginn / nach Einschalten der Anlage nur ein einziges mal ausführen soll? Zähler?

Ich gestalte die Programmierung mittels FUP.
Vorher habe ich die Taster / Sensoren und Ausgänge mittels Merker festgelegt. Siehe Anhang.

Bevor ich weiter einsteige und die Abläufe bestimme -> Ist das mit den Merkern so richtig? Wenn ich es richtig verstanden habe, dürfen die Ausgänge ja nur einmal im Programm vorkommen.
Wie und wo setze ich anschließend am besten an?


Besten Dank und einen guten Start in den Tag! :)

« Letzte Änderung: August 10, 2021, 12:37:47 Nachmittag von Kahmui »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #1 am: August 10, 2021, 13:53:05 Nachmittag »
Hallo Kahmui,

zum ersten brauchst du nicht die Eingänge auf Merker umzuladen, du nimmst sie einfach direkt im Programm.

Wird die Steuerung eingeschaltet, so kann man mit einen Taster eine Referenzierung für beide Achsen anstoßen. Das kann zB in einer Schrittkette erfolgen, die Beide Achsen nacheinander ref. Als gültiges "referenziert" nimmst du einen Merker der nicht remanent ist und gesetzt wird, wenn die Referenzierung erfolgreich abgeschlossen wurde.
Direkt nach dem Einschalten automatisch losfahren zum Ref. würde ich nicht machen (Sicherheit).

Den Bewegungsablauf kann man ebenfals mit einer Schrittkette abarbeiten, da es sich immer um die gleichen Abläufe handelt. Da ich mit ST arbeite, nehme ich dafür eine CASE-Anweisung. In FUP kann man sich eine stehende Kette mit Merkern basteln, oder mit einem Zähler arbeiten.

Es ist immer hilfreich sich für die Programmierung der Bewegungen ein Ablaufdiagramm aufzuzeichnen. Da kann man auch gleich besse sehen wie viele Schritte man braucht und was wann stattfindet.

Die OT/UT Schalter müssten parallel auf E4 und Motortreiber gehen, da der D1 diese benötigt.

Gruß Thomas
« Letzte Änderung: August 10, 2021, 14:00:47 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline Kahmui

  • Jr. Member
  • **
  • Beiträge: 40
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #2 am: August 10, 2021, 14:07:31 Nachmittag »
Hallo Kahmui,

zum ersten brauchst du nicht die Eingänge auf Merker umzuladen, du nimmst sie einfach direkt im Programm.

Rausgekickt

Zitat
Wird die Steuerung eingeschaltet, so kann man mit einen Taster eine Referenzierung für beide Achsen anstoßen. Das kann zB in einer Schrittkette erfolgen, die Beide Achsen nacheinander ref. Als gültiges "referenziert" nimmst du einen Merker der nicht remanent ist und gesetzt wird, wenn die Referenzierung erfolgreich abgeschlossen wurde.
Direkt nach dem Einschalten automatisch losfahren zum Ref. würde ich nicht machen (Sicherheit).

Dann bleibe ich hier erst einmal beim Taster um die Referenzierung in Gange zu bringen.

Zitat
Den Bewegungsablauf kann man ebenfals mit einer Schrittkette abarbeiten, da es sich immer um die gleichen Abläufe handelt. Da ich mit ST arbeite, nehme ich dafür eine CASE-Anweisung. In FUP kann man sich eine stehende Kette mit Merkern basteln, oder mit einem Zähler arbeiten.

Es ist immer hilfreich sich für die Programmierung der Bewegungen ein Ablaufdiagramm aufzuzeichnen. Da kann man auch gleich besse sehen wie viele Schritte man braucht und was wann stattfindet.

Rein theoretisch sind es, abgesehen von der Referenzierung, nur 3 Schritte die ausgeführt werden sollen. Linear runter -> Linear hoch -> drehen

Zitat
Die OT/UT Schalter müssten parallel auf E4 und Motortreiber gehen, da der D1 diese benötigt.

Gruß Thomas

Die Endlagenschalter der dryve würde ich gerne außen vor lassen und alles mit der easy abfrühstücken. In der dryve sollen letztendlich nur die beiden Befehle für das Hoch- und Runterfahren hinterlegt sein, die dann über die entsprechenden Bits abgerufen werden.
Hier sollte man erwähnen, dass der Stop Befehl nötig ist, um die Abläufe bei den entsprechenden Sensoren diekt abzubrechen / zu stoppen.

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #3 am: August 10, 2021, 15:47:17 Nachmittag »
Brauchst du noch irgend welche Zwischenschritte?? Wartezeiten etc.


Ablauf wäre dieser:
Grundstellung (oben, in pos) -> automatik -> runter bis UT -> Ventil 2s -> hoch bis OT -> drehen bis nächste Pos ->
Wiederholen bis automatik aus
Weil Einfach einfach Einfach ist!

Offline Kahmui

  • Jr. Member
  • **
  • Beiträge: 40
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #4 am: August 10, 2021, 16:25:10 Nachmittag »
Die jeweiligen Signale müssen für mindestens 10 ms anliegen , damit die D1 diese verarbeitet.
Ich scheitere aktuell schon daran die Referenzierung "sauber" umzusetzen.

Anlage wird eingeschaltet. Als erstes Betätige ich kurz meinen Taster, um alles in Nullstellung zufahren (Referenzierung).

Schritt 1 Referenzierung:
Taster antippen und Sensor REF nicht aktiv
-> Lineare Bewegung nach oben, bis Sensor REF aktiv ist
-> STOP lineare Bewegung
-> Merker setzen für nächsten Schritt (Stromstoß?)

Schritt 2 Referenzierung:
Rotative Bewegung, bis Sensor OT aktiv ist
-> STOP rotative Bewegung und Rücksetzen des Merkers aus Schritt 1
-> Merker setzen um Automatikmodus freizugeben

So in etwa? Wenn die Platte jetzt schon in der oberen Position wäre und Sensor REF aktiv ist, würde er doch rein theoretisch direkt in den zweiten Schritt weiterspringen.
« Letzte Änderung: August 10, 2021, 16:27:31 Nachmittag von Kahmui »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #5 am: August 10, 2021, 19:08:52 Nachmittag »
Ich nehme mal an du verwendest die manuelle Positionierung. Dann brauchst du eigentlich nicht die Steppereingänge start+stop, sondern nur Freigabe, fahren+ und fahren -
siehe Handbuch:
Zitat
6.3.2 Signalabfolge Tip/Teach
Manuelle Positionierung
1. Erteilen Sie der dryve durch Schalten von DI 7 die „Freigabe“
2. Nutzen Sie die an DI 4 und DI 5 angeschlossene Steuerungshardware und positionieren Sie die angeschlossene
Linearachse, Rotationsachse oder Motor mit der voreingestellten Tippgeschwindigkeit (S.54)

Zitat
Manuelle Positionierung
Voraussetzungen zum Ausführen einer manuellen Fahrbewegung
- „Vorschub“
- „Max. Geschwindigkeit
- „Tippgeschwindigkeit“ (≤ Max. Geschwindigkeit)
- „Max. Beschleunigung“
- Setzen der „Freigabe“ DI 7
- Signal „Bereit“ über DO 1
- Kein „Aktiv“-Signal über DO 2
- Kein „Error“-Signal über DO 5
- Setzen eines Bewegungssignals über DI 4 „Tippen negativ“ oder DI 5 „Tippen positiv
Weil Einfach einfach Einfach ist!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #6 am: August 10, 2021, 19:25:16 Nachmittag »
Probier mal das Programm, ist erst mal ein Entwurf.

Ich würde dir aufgrund der möglichen Schaltzyklen eine EASY-E4-DC-12TC1 empfehlen und nur das Ventil über Relais schalten.

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline Kahmui

  • Jr. Member
  • **
  • Beiträge: 40
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #7 am: August 10, 2021, 20:43:19 Nachmittag »
Hey. Erstmal danke für dein Feedback und deine Mühe. Ich kann die Art der Programmierung allerdings nur schwierig nachvollziehen, da ich lediglich einige Grundlagen mit der FUP-Methode kenne.

Ich nutze die D1 im Binärmodus. Dadurch kann ich 2 Fahrprofile vordefinieren und über entsprechende DI´s an der D1 ausführen (und mittels STOP Befehl abbrechen). Vor allem in Hinsicht darauf, dass ich verschiedene Geschwindigkeiten und Beschleunigungen / Verzögerungen brauche, damit die Mechanik am Ende zuverlässig und prozesssicher läuft ist das ein großer Vorteil.

Siehe Handbuch dryve D1 Kapitel 6.2 und fortlaufend

6.2 Binär 

Positionierbewegungen, die unter Fahrprofile (S.72) erstellt wurden, können anschließend auch von einer übergeordneten
Steuerung gestartet werden. Zur Kommunikation werden dazu die Ein/Ausgänge verwendet.
Zur Ausführung der parametrierten Positionierbewegungen gibt es Voraussetzungen, welche erfüllt werden müssen. 
Diese Voraussetzungen sind abhängig vom Modus der jeweiligen Positionierbewegung.

6.2.1 Voraussetzungen Binär

Generell gilt, dass das jeweilige Signal für die Vorwahl einer Fahrbewegung bei Verwendung der Binärcodierung an DI 1 bis DI
5 für mindestens 10 ms an den jeweiligen digitalen Eingang anliegen muss, bevor ein Startsignal über DI 6 gesetzt werden
kann.
 
HINWEIS
Für die Ausführung einer Verfahrbewegung im Modus „Binär“ wird die positive Flanke des Signals an Digital Eingang DI 6
benötigt

Das hat bei einigen Versuchen auch schon gut geklappt. Allerdings hat sich im Laufe der Tests gezeigt, dass ich ohne Sensorik und einen zweiten Motor nicht weiter komme.

Daher würde ich nun gerne alles mit der eaton realisieren. Dafür brauch ich dann auch keine Geräte für hohe Schaltzyklen,da ich lediglich über eine kurze Ansteuerung den Fahrbefehl ausführen lasse.

Die D7 möchte ich im JOG Mode nutzen. Daher reicht auch hier ein simpler dauerhafter Output zum betätigen des Motors.

Würde ich die Motoren über Frequenzen / hohe Taktzyklen steuern käme natürlich ein Steuergerät mit Transistoren statt Relais zum Einsatz. Um meinen Prototypen zum Laufen zu bekommen reicht es aber erstmal aus :)


Nachtrag: Ich hab mir deine Steuerung jetzt mal in Ruhe angeschaut und kann es auch halbwegs nachvollziehen. Allerdings würde ich wie ein Ochs vorm Berge stehen wenn ich jetzt irgendwo Änderungen vornehmen wollte  :-\

Gibt es eine Möglichkeit das relativ "einfach" in einen FUP zu ändern?
« Letzte Änderung: August 11, 2021, 08:16:36 Vormittag von Kahmui »

Offline Eulhofer

  • Full Member
  • ***
  • Beiträge: 107
  • Man ist nie zu alt neue Dummheiten zu begehen...
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #8 am: August 11, 2021, 15:26:29 Nachmittag »
Probier mal das Programm, ist erst mal ein Entwurf.

Hallo Thomas,

ich habe mir auch erlaubt Dein Script zu studieren. Im Prinzip komme ich mit.
Was genau - oder wie/warum genau - macht Dein UF2 R_TRIG seinen Job? Ist ja leider PW-gesperrt.

Von den Antireben / Steuereinheiten etc. habe ich gar keine Ahnung / Erfahrung, mich interessiert einfach die Umsetzung.

Erste Gehversuche mit der EasyE4 - nachdem ich jahrelang auf der Schneider/Telemecanique TSX-Micro programmiert habe....

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #9 am: August 11, 2021, 16:35:30 Nachmittag »
Hi Eulhofer,
Der UF02 ist eine einfache steigende Flanke. Den Code gab es auch schon hier, sind nur zwei Zeilen:
Q01 := I01 AND NOT M1;
M1 := I01;

@Kahmui,
werde mich nachher noch mal dran setzen um die Ausgänge nach deinen Anforderungen zu ändern. Da hatte ich etwas falsch interpretiert.
Der Code ist so einfach wie möglich gehalten! Es sind nur "wenn, dann" Anweisungen und die Case eine Mehrfachauswahl. Hier wird nur das ausgeführt, was entsprechend dem Wert im MB100 dann hinter der Nummer steht. Eigentlich sehr übersichtlich, denn im FUP hast du zig Netzwerke mit RS nur um die Schrittkette nachzubilden. Da sind die Anweisungen noch garnicht dabei.
Weil Einfach einfach Einfach ist!

Offline Kahmui

  • Jr. Member
  • **
  • Beiträge: 40
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #10 am: August 11, 2021, 16:42:21 Nachmittag »
Super, danke. Ich habe allerdings eine Frage. Wenn ich dein Programm durchsimuliere gelingt es mir nicht, den Automatikmodus einzuschalten.

Was mache ich falsch, oder ist irgendwo ein Fehler drin?
« Letzte Änderung: August 12, 2021, 08:40:01 Vormittag von Kahmui »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #11 am: August 11, 2021, 16:53:17 Nachmittag »
Der Taster Auto Aus ist, wie es sich gehört, ein Öffner. Wahrscheinlich liegt es daran...
Weil Einfach einfach Einfach ist!

Offline Eulhofer

  • Full Member
  • ***
  • Beiträge: 107
  • Man ist nie zu alt neue Dummheiten zu begehen...
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #12 am: August 11, 2021, 17:01:04 Nachmittag »
Genau... Taster I03 muss quasi für den Betrieb nicht gedrückt "high" bringen...
Erste Gehversuche mit der EasyE4 - nachdem ich jahrelang auf der Schneider/Telemecanique TSX-Micro programmiert habe....

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #13 am: August 11, 2021, 21:32:32 Nachmittag »
Fehler gefunden: M02 wurde nicht zurückgesetzt nach referenzieren.

Probiert mal das Programm aus. Jetzt mit Verfahrsequenzen für den Linearantrieb.

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline Kahmui

  • Jr. Member
  • **
  • Beiträge: 40
Antw:easy Steuerung für 2 Motorsteuerungen
« Antwort #14 am: August 20, 2021, 15:36:06 Nachmittag »
Hallo zusammen. Nachdem ich jetzt endlich mal ein wenig Zeit gefunden habe, wollte ich das Programm testen.
Allerdings musste ich die Geräte auf eine EASY-E4-UC-12RC1 mit einer EASY-E4-DC-16TE1 umstellen. Jetzt bekomme ich einen merkwürdigen Fehler. Kann da jemand weiterhelfen?

Prüfe Konsistenz der Projektkonfiguration
Prüfe Konsistenz des Hauptprogramms
Fehler  : Zeile 78, Zeichen 8 - Der Zeitbereich der Konstante entspricht nicht der Parametrierung des Bausteins.
Prüfe Konsistenz des Anwenderbausteins UF - R_TRIG V1.00
Es wurde(n) 1 Fehler in der Anwendung festgestellt.
Erst nach Beseitigung aller Fehler ist das Programm für Programmtransfers, Simulationen oder für Vergleiche geeignet.

Das Problem ist dabei an der Stelle  I1 := T#2s,

T01 (
EN := M12,
RE := ,
ST := ,
I1 := T#2s,
I2 := ,
Q1 => ,
QV => );

Hab es mal mit den richtigen Geräten in den Anhang geschoben.

Besten Dank  :)
« Letzte Änderung: August 20, 2021, 15:40:16 Nachmittag von Kahmui »