easy-forum
Deutsch - Software => easySoft => Thema gestartet von: marc_ am November 23, 2005, 08:21:39 Vormittag
-
Hallo
Habe ein (hoffentlich) kleines Problem mit einem Programm (siehe Anhang).
Das Ziel ist:
In einer Endlosschleife sollen 3 Motoren angesteuert werden mit folgender Abfolge
1. Kette vor
2. Senken (Heben zurück)
3. Rollen vor
4. Heben
5. Kette zurück
6. Senken
7. Rollen zurück
8. Heben
Ich habe die Dauer der einzelnen Bewegungen über Zeitrelais geschaltet, die mit der abfallenden Flanke die nächste Bewegung starten sollen.
In der Simulation läuft alles wunderbar, nur wenn ich das Programm an die SPS übertrage laufen 2 Motoren gleichzeitig. Habe noch kein System erkennen können welche Motoren zusammen laufen.
Vielleicht hat mir einer einen Tipp.
Danke
Marc
-
Hallo hier CAS ! ;D
hab mir mal kurz dein Programm angeschaut. Im groben würde ich sagen, dass da keine Schrittkette programmiert ist. Versuch mal folgendes:
Startbit Setzen (z.B. wenn I1 dann SM01)
wenn M01 dann Motor 1 an
Wenn Motor 1 an und Endschalter M1 erreicht dann: SM02, RM01
Wenn M02 dann Motor 2 an
Wenn Motor 2 an und Endschalter M2 erreicht dann: SM03, RM02
Wenn M03 dann Motor 3 an
Wenn Motor 3 an und Endschalter M3 erreicht dann: SM04, RM03
...
Wenn M08 dann Motor 8 an
Wenn Motor 8 an und Endschalter M8 erreicht dann: SM01, RM08
(von vorne)
PS: Es ist nicht notwendig den Stop -und Start-Befehl seperat auszuwerten. Entweder an oder aus geht nur!
Hoffe geholfen zu haben...
CAS
[www.cas-solution.de]
-
Hallo CAS
Hallo hier CAS ! ;D
hab mir mal kurz dein Programm angeschaut. Im groben würde ich sagen, dass da keine Schrittkette programmiert ist. Versuch mal folgendes:
Startbit Setzen (z.B. wenn I1 dann SM01)
wenn M01 dann Motor 1 an
Wenn Motor 1 an und Endschalter M1 erreicht dann: SM02, RM01
...
Das Problem ist, da sind keine Endschalter drin. Ist nur ein Versuchsstand, der Zeitgesteuert seinen Ablauf machen soll. Hast Du es bei Dir auch simuliert? Die Simulation funktioniert bei mir gut, nur die Realität ist halt anders.
Marc
-
Hallo hier CAS ! ;D
Als ich das Programm auf meinem Rechner simultan laufen ließ ist mir aufgefallen, dass viele Merker sehr schnell flackern. Das bedeutet bestimmt nichts gutes !!!
Du kannst natürlich statt der Endschalter auch timer nutzen. Also statt dem Endschalter heisst es dann:
Wenn M01 dann Starte Einschaltverzögert Timer 1
Wenn Timer 1 dann RS M01, SM 02
Wenn M02 dann Starte Einschaltverzögert Timer 2
Wenn Timer 2 dann RS M02, SM 03
usw...
Wichtig ist immer, dass nur ein Merker Aktiv ist !!!
Hoffe geholfen zu haben !!! ::)
Mfg
CAS
[www.cas-solution.de]
-
Hallo CAS
Ich habe gedacht, daß ich diese Lösung in meinem Beispiel schon gemacht habe. Oder ist das falsch? Die Merker die "flackern" sind nur die Merker die das Zeitrelais aufrufen. Ist das richtig, diese Merker mit der abfallenden Flanke zu schalten? Meine Timer sind ausschaltverzögert. Werde es mal mit der Variante einschaltverzögert probieren.
Wenn du in der Simulation siehst, ist immer nur ein "Motorenmerker" aktiv.
Danke schon mal.
Gruß
Marc
-
Hallo zusammen,
ich bin für eine Schrittkette mit einem Zähler.
Da ist automatisch immer nur ein Schritt Aktiv. Merker Rücksetzen kann gespart werden. Schrittanzeige einfach..
Rücksetzen auf 0 durch ansteuern des Zählers.
Sind die Zeiten alle gleich, reicht ein Timer um den Zähler weiter zu schalten.
Auswerten des Zähers mit 1 Vergleicher je Schritt oder über Schrittmerker.
mfg Jürgen
-
Hallo zusammen,
ein Beipiel für eine Schrittkette mit Zählern, findet ihr hier.
http://easy-forum.net/index.php?topic=1313.msg4887#msg4887
-
Hallo Jürgen.
Vielen Dank für das Beispiel.
Leider habe ich es noch nicht verstanden. Wo wird mit dem Zählerstand verglichen oder wie wird entschieden, welcher Ausgang gerade gesetzt wird?
Gruß
Marc
-
Hallo Marc,
Das Beispiel unter Download sprichst du an?
Hast du das getestet?
In dem Beispiel wird der Zähler von einem Timer gesteuert.
Der Timer gibt zum weiterschalten.
alle xxx Sekunden einen Impuls.
Mit dem Baustein AR und dem Zähler werden die Schrittmerker gebildet.
Starten aus der Grundstellung (Zählerstand 0) mit I1
Der Zähler hat den Stand 1
Schritt 1 Merker 81 ist aktiv
Der Timer gibt nach xx Sek. den Impuls zum weiterschalten.
Schritt 2 Merker 82 ist Aktiv.
Der Timer gibt nach xx Sek. den Impuls zum weiterschalten.
Schritt 3 Merker 83 ist Aktiv.
und so weiter.
Zähler
Nur in Schritt 0 und 1 ist die Zählernummer auch die Schrittnummer.
Durch Berechnung mit dem Baustein AR wird der Zählerstand von 0, 1, 2, 4, 8, 16, 32, 64 ... durchlaufen
So werden der reihe nach die Merker 81, 82, 83... durchlaufen.
Das ist mit einem Schieberegister zu vergleichen
Mit dem Merker 81 legst du fest welchen Ausgang oder auch mehrere du in Schritt 1 ansteuern möchtest.
Mit dem Merker 82 legst du fest welchen Ausgang du in Schritt 2 ansteuern möchtest.
und so weiter
-----------------------------------------------------------------------
Zu deinem Programm
Ich habe es nicht ganz verstanden.
Es ist auch für mich nicht einfach in fremden Programmen den überblick zu bekommen.
Sind das 8 Schritte die durchlaufen werden?
Ausgänge
Q1 Kette_vor
Q2 Kette_rueck
Q3 Hub_vor
Q4 Hub_rueck
Q5 Rollen_vor
Q6 Rollen_rueck
Wie passen die in die Ausgänge in die Schritte?
Ist das so richtig?
Schritt 1. Kette vor / Q1 ein
Schritt2. Senken (Heben zurück) /Q4
Schritt3. Rollen vor /Q5
Schritt4. Heben /Q3
Schritt5. Kette zurück / Q2
Schritt6. Senken /Q4
Schritt7. Rollen zurück / Q6
Schritt8. Heben /Q3
In meinem Programm würde die Auswertung so sein.
M81------------Q1
M85------------Q2
M84--|---------Q3
M88--|
Q82--|----------Q4
Q86--|
Q83-------------Q5
Q87--------------Q6
Zitat von dir
"Das Problem ist, da sind keine Endschalter drin. Ist nur ein Versuchsstand, der Zeitgesteuert seinen Ablauf machen soll."
In deinem Programm sind aber Schalter I5 I6....
Reicht eine weiterschaltung mit einem Timer
für alle Schritte?
mfg Jürgen
-
Hallo Marc,
ich habe das Programm nach der Beschreibung oben angepast.
I1 Start einmal
I2 Rücksetzen
I3 Dauerbetieb
Ausgänge
Q1 Kette_vor
Q2 Kette_rueck
Q3 Hub_vor
Q4 Hub_rueck
Q5 Rollen_vor
Q6 Rollen_rueck
Schritt1. M81 Kette vor / Q1 ein
Schritt2. M82 Senken (Heben zurück) /Q4
Schritt3. M83 Rollen vor /Q5
Schritt4. M84 Heben /Q3
Schritt5. M85 Kette zurück / Q2
Schritt6. M86 Senken /Q4
Schritt7. M87 Rollen zurück / Q6
Schritt8. M88 Heben /Q3
Für jeden Schritt einen Timer (T1 bis T8) für die Zeit den der Schritt aktiv ist.
Deine Schalter I4 I5 I6... habe ich nicht verwendet.
Da die Funktion nicht klar.
Weiterschaltung nur über die Zeit lese ich aus deiner beschreibung.
Es kann ein Timer durch Schalter und den passenden Schrittmerker für die weiterschaltung ersetzt werden.
Das Programm ist für ein MFD
Ich kann nur mit einem MFD Testen, du kanst dieses durch eine 800er ersetzen. Dann sind die Anzeigen nicht mehr vorhanden.
Teste das mal in der Simulation
Da ist sicher eine erweiterung nötig damit zum Beispiel nach Rücksetzen der Schrittkette auch die Antriebe in die Grundstellung fahren...
Das geht zum Beispiel durch eine Handsteuerung mit den anderen Tastern direkt auf den Ausgang.... Auch ein Schalten der Schritte von Hand ohne Zeitsteuerung mit einem Taster ist möglich...
Ein Tatser z.b Not-Aus der nur die Ausgänge abschaltet und nach Reset wieder im gleichen Schritt weiter fährt geht.
mfg Jürgen
-
Hallo Jürgen
Vielen dank für deine Hilfe und Mühe.
Habe die Version 3 getestet und umgearbeitet. Das System wie du es gemacht hast ist mir schon klar, nur habe ich den Vergleicher gesucht, der den Zählerstand mit einem Sollwert für den jeweiligen Schritt vergleicht. Woher wissen die Merker, bei welchen Wert sie gesetzt sind?
...
Mit dem Baustein AR und dem Zähler werden die Schrittmerker gebildet.
...
Durch Berechnung mit dem Baustein AR wird der Zählerstand von 0, 1, 2, 4, 8, 16, 32, 64 ... durchlaufen
So werden der reihe nach die Merker 81, 82, 83... durchlaufen.
Warum machst du das mit Multiplizieren? Geht addieren auch?
Ich habe mittlerweile Endschalter eingebaut (nur für das Heben und Senken), weil die Steuerung über die Zeit nicht sehr genau war.
Mein Programm läuft jetzt ganz gut, habe es auf deiner Version 3 aufgebaut und stelle es online, wenn ich die endgültige version habe. Teste dann auch deine Version 10.
Was ich auch noch nicht verstanden habe, daß mein Programm manchmal in der Simulation sehr gut läuft und in der Easy "verrückt spielt".
Die Eingänge 3-6 waren für die Handschaltung, bzw für eine Richtungsumkehr (vor zurück).
Habe die Handschaltung jetzt rausgenommen und die Eingänge mit deinen Funktionen belegt.
Meld mich wieder.
Marc
-
Hallo Marc,
du kannst das auch mit Vergleichern machen.
In der neuen Easy Hardware und Software ist das auch mit dem Schieberegister zu Lösen
Ich habe das mit dem Baustein AR gemacht, da das Programm kleiner ist als mit Vergleichern und ich nur alte Hard und Software habe.
I1 gibt den ersten Impuls an den Zähler +1
Die anderen Schritte werden mit ansteuern der Spule SE "bei positiver Flanke Vorgabe-Istwert übernehmen
" gemacht.
Wenn der Zählerstand = 1 ist wird Berechnet 1* 2 = 2
Also wird beim nächsten Impuls an die Spule SE der Zähler auf 2 gesetzt
Berechnen 2* 2 = 4
Beim nächsten Impuls wird der Zähler auf 4 gesetzt
Berechnen 4*2 =8
Beim nächsten Impuls wird der Zähler auf 8 gesetzt.
und so weiter
Der Zahlenwert der Merker im Wort ist M81 = 1, Merker 82= 2, M83 =4, M84 = 8 und so weiter.
Wird in das Wort 6 die Zahl 1 geschrieben ist M81 Aktiv
Wird in das Wort 6 die Zahl 2 geschrieben ist M82 Aktiv
....
Wird in das Wort 6 die Zahl 128 geschrieben ist M88 Aktiv
und so weiter.
Mit + im Baustein AR geht diese Rechnung nicht auf.
Simulation und Hardware Testen
Schaltzeiten bzw Verarbeitungszeiten spielen hier eine Rolle.
mfg Jürgen
-
Hallo Marc
Das Problem bei deinem ursprünglichen Programm liegt in der Startbedingung. Genauer gesagt in Merker 30. Die Fehlfunktion tritt auf, wenn die Starttaste I1 zu lange gedrückt wird. In diesem Fall wird der Ablauf nochmals gestartet. Das selbe Verhatlen ergibt sich auch, wenn während dem automatischen Ablauf nochmals die Starttaste betätigt wird. Beide Ursachen konnte ich auch in der Simulation beobachten.
Marco