www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPS verzählt sich


Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich gebe mit einer SPS (S7 CPU 214) über deren Ausgänge Impulse zu einer 
Schrittmotorkarte, welche mit einen Schrittmotor verbunden ist. Um die 
Schwenkposition zu bestimmen, zählt die SPS die Anzahl der 
Ausgangsimpulse. Bei jeder Schwenkung (vor und zurück) wird über einen 
Sensor dieser Zähler wieder auf 0 gesetzt.
Trotzdem stimmt die Schwenkposition nach ca. 200-500 
Schwenkwiederholungen nicht mehr. Auch ein Neustart der CPU hilft nicht. 
Wenn ich das Programm neu in die CPU lade. Funktioniert es wieder.

Hat jemand eine Idee an was dies liegen könnte?
Ich bin um jeden Hinweis dankbar.

Mit freundlichen Grüßen
Andi

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
andi schrieb:
> Hat jemand eine Idee an was dies liegen könnte?
> Ich bin um jeden Hinweis dankbar.

Sicherlich nicht an der SPS selber.
Zu 90% an deinem Code. 10% an deiner Schaltung.
Aber irgendwie scheint beides geheim zu sein.

Autor: TicTac (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da wird wohl dein Schrittmotor ab und an etwas weiter laufen als er 
soll.
Lass ihn mal ohne Last laufen, evtl. liegt da das Prob.

Den Output der SPS zählen ist nicht das sinnvollste.

Autor: Paul Baumann (paul_baumann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst Du keinen Inkrementalgeber an dem Motor befestigen? Dann hättest
Du die reale Position des Kollegen.

MfG Paul

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es wird doch eher so sein, dass eine bestimmte Anzahl von Impulsen 
ausgegeben werden müsste, um auf die Position zu gelangen.

Wenn Du für beide Schwenkpositionen einen Sensor hast, wozu dann 
überhaupr zählen?

Evtl. hast Du Probleme mit der Zykluszeit - Eingänge werden nur einmal 
pro SPS-Zyklus eingelesen.

Otto

Autor: _andi_ (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal für die Hinweise.
Ich habe leider keinen besseren Schaltplan meiner Schaltung. Über meine 
Ausgänge der SPS 5V gehe ich direkt auf die Schrittmotorkarte. Ein 
Signal für die Richtung und ein weiteres für die Impulse. Die 
Schrittmotorkarte habe ich mit dem IC L298 selbst gelötet. Diese ist 
dann mit einen Bipolaren Schrittmotor verbunden.

Den Code habe ich derzeit leider nicht zur Stelle. Ich habe für die 
Impulse einen Blinker programmiert. Ein Zeitbaustein (TON), welcher nach 
1ms einen Merker setzt. Ist dieser gesetzt erfolgt, wird der Ausgang 
gesetzt und dieser resetet den Merker. Jedesmal wenn der Ausgang gesetzt 
ist, zählt ein Zählbaustein (Vorwärtszähler) 1 weiter. Ist der Zähler 
bei 180 angekommen, wird die Richtung geändert und es wird zurückgedreht 
bis zum Ausgangpunkt (bis zum Referenzpunkt)

Was ich nicht verstehe warum das manchmal bis zu 500mal einwandfrei 
funktioniert und erst dann nicht mehr.

Schönen Gruß
Andi

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ist eine ".emf" Datei ?

Autor: TicTac (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass dir mal die ganzen Variablen über die Variablentabelle anzeigen und 
beobachte die dann bis die Anlage abstürzt, häufig siehst du schon 
vorher Ungereimtheiten und den Fehler.

Allerdings weiß ich nicht ob die 200er Software überhaupt eine 
Variablentabelle anzeigen kann... :-)

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen Bild Datei. Kann mit Windows Bild und Faxanzeige geöffnet werden.

Autor: TicTac (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Otto schrieb:
> was ist eine ".emf" Datei ?

Weiß ich auch nicht, geht aber mit paint.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo sind die Sensoren angeschlossen ?

Was sind das für blaue Klötzchen ?

Weshalb die Reihenschaltung mit einer Zenerdiode ?

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du evtl. die Anlauf- bzw. Bremsfunktion etwas stramm eingestellt 
und er überspringt ab und zu ein paar Steps?

Autor: fd.hlkjdhv (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei solchen Problemen sollte man einen Sensor fuer die Ruheposition 
vorsehen.

Gast

Autor: Terminator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Bei solchen Problemen sollte man einen Sensor fuer die Ruheposition
vorsehen."

Es ist bei Schrittmotoren generell notwendig, eine Referenzfahrt 
einzubauen. Denn beim Einschalten oder durch Schrittfehler kann sich die 
Position sehr leicht geändert haben. Ich frage mich sowieso, wie er das 
beim Einschalten handhaben möchte...

Autor: Fort-Schritt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Schrittmotoren sollte man tunlichst einen
Sensor für die Null-Position haben.
Diese Position anfahren, Schrittcounter auf 0 setzen.
Beim Fahren pro Impuls den Schrittcounter um eins erhöhen/
verringern und gut ist.

Weiter beachten daß die Schritte nicht "zu schnell" kommen,
d.h. der Motor muß den Schritten folgen können, sonst
kommt es genau zu diesen Effekten.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> was ist eine ".emf" Datei ?
Windows Enhanced Metafile (EMF)
Irgend so ein Zwischenablageformat...
http://de.wikipedia.org/wiki/Windows_Enhanced_Metafile

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage:

> was ist eine ".emf" Datei

sollte darauf hinweisen, dass diese nicht unbedingt dem hier Üblichen 
entspricht....

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe keine Anlauf und Bremsfunktion, denn der Motor dreht sehr 
langsam. Der Zähler wird nach jedem Zyklus auf 0 gesetzt.

Aber der Sensor befindet sich nicht in der Ruheposition (Linksanschlag), 
sondern im Rechtsanschlag, sobald dieser Sensor aktiv wird der Zähler 
auf 0 gesetzt und der Motor fährt sofort zurück.
Könnte dies das Problem verursachen?
Muss ich den Sonsor in die Ruheposition bauen, oder reicht es aus, wenn 
ich einige ms auf diesen Sensor verweile und dann erst zurückschwenke?

Schönen Gruß
Andi

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zumindest solltest Du sicherstellen, dass die SPS auch Zeit hat, den 
Sensor zu erfassen - ich kenne jetzt die Zyluszeit Deiner 200er 
nicht....

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
andi schrieb:
> Ich habe keine Anlauf und Bremsfunktion, denn der Motor dreht sehr
> langsam. Der Zähler wird nach jedem Zyklus auf 0 gesetzt.
>
> Aber der Sensor befindet sich nicht in der Ruheposition (Linksanschlag),
> sondern im Rechtsanschlag, sobald dieser Sensor aktiv wird der Zähler
> auf 0 gesetzt und der Motor fährt sofort zurück.

Wie fährst du zurück? Langsam/Schnell?
Ist dort ein Sensor, der dir anzeigt, dass du wieder in der Ausgangslage 
bist?

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Zykluszeit weiß ich jetzt leider auch nicht, aber der Sensor wird 
erfasst, denn wenn diese nicht kurz aktiv wäre würde das Programm 
stoppen und der Motor erst gar nicht zurückschwenken. Aber wie gesagt, 
er verweilt dort nur wenige ms und schwenkt sofort zurück.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut - nehmen wir mal an, dass die Sensorerfassung sicher funktioniert - 
ohne eine Startrampe wirst Du recht sicher Schrittfehler bekommen.

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß die Geschwindigkeit nicht 100%. Da die schnellste Zeitfunktion 
meiner SPS 1 ms ist. Anfangs programmierte ich einen Binker mit zwei 
Zeitfunktionen. Somit war erfolge je 2ms ein Step, dann ersetzte ich 
einen Zeitbaustein mit einem Merker. Somit drehte der Motor schneller. 
Ich bin mir nicht ganz sicher ob dieser dann tatsächlich je einer ms 
einen Step macht, oder ein bisschen langsamer ist.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal mit dem Scope nachgesehen ?

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldige ich schreib immer ein wenig zu langsam.
Ich frage mich nur warum 200 - 500 mal die Position exakt stimmt und 
dann von einem Zyklus auf den anderen die Position nicht mehr passt.
Wenn der Motor "schlüpfen" würde, müsste sich ja langsam die Position 
verschlechtern, oder?

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein mit dem oszilloskop habe ich, das noch nicht überprüft.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kommt u. A. darauf an, ob die mechanische Last variiert

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie dem aber auch sei, die Frage wäre:

a) ist es ein "Hobbyprojekt" und Du hast Zeit, den Fehler zu analysieren

b) ist es ein professionelles Projekt und die Anlage muss laufen.

Bei b) solltest Du darüber nachdenken, ob Sensoren in beiden Positionen 
den Fehler beheben würden.

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Last variiert nicht und der Motor ist auch überdimensioniert.

Autor: Capo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke ...

... entweder du verlierst Schritte am Schrittmotor - dann 
Start/Stopfrequenz prüfen (Wenn deine Drehzahl höher liegt wirds eh mit 
ner Rampe komplizierter), Last prüfen, ggf. ohne Last fahren, ggf. Strom 
mit Stromzange messen, wie regelt dein Schrittmotorbaustein den Strom?, 
etc....

... oder Du hast n Zykluszeitproblem mit der SPS (TON - 1ms!! ?? !!), so 
daß langsam bei deinem Wendepunkt immer mal 1 Tick verloren geht. Dazu 
würden man das Programm gerne sehen.

so long ... ich würde eher zweiteres vermuten ...

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Otto ich danke dir jetzt schon mal.
Ich werde deine Ratschläge jetzt mal testen und mich auf Fehlersuche 
begeben. Sollte dies nich zum erfolg führen, darf ich dir dann den 
entprechenden Programmteil mailen und würdest du vielleicht einen kurzen 
Blick drauf werfen?

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stelle diese doch bitte hier ein - notfalls auch als ".emf" ;) - viele 
Augen sehen immer mehr als zwei und ich behaupte auch nicht, dass meine 
Hinweise unbedingt richtig sein müssen.

Otto

Autor: _andi_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das Problem ist nur, dass ich die ganze Woche nicht zuhause bin und 
somit auch keinen zugang zu der anlage und dem programm habe.
Ich melde mich am Freitag einfach wieder in diesem Thread.

Gruß
Andi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.