Anfänger braucht Hilfe bei kleinem S7 Programm

Fender85

Level-1
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,

ich mache jetzt seid 4 Wochen ein SPS Lehrgang (Schwerpunkt S7) und habe jetzt für das Wochenende eine Aufgabe bekommen.

Ich soll einen "Kran" mit nur einer Achse programmieren.
Er hat eine Strecke von 1000 (Int. Wert).
Bisher bin ich so weit, dass wenn ich ins MW 10 ein Int. Zahl eingebe, dass er dann zu dieser Pos. fäht und stehen bleibt. Dies funktioniert auch schon in beide Richtungen. ( Mit +I und -I )
Jetzt ist die Vorgabe, dass der Kran auf seinem weg den ich eingebe, langsamm starten und langsamm vor ende abbremsen soll.
Die Geschwindigkeiten sollen wir über mehrere Taktmerker der CPU Steuern
(zB. M100.0 schnell und bis 100.6 langsamm)
Ich habe mir dabei nun gedacht, dass ich das nur prozentual realisieren kann, da die zu fahrende Strecke ja nicht immer gleich lang ist.

Meine Vorstellung der aufteilung währe zB:

5% =M100.4 / 10% =M100.3 / 15% =M100.2 / 20% =M100.1(Softstart)

ab 25 % M100.0 (Vollgas)

80% =M100.1 / 85% =M100.2 / 90% =M100.3 / 95% =M100.4

dann Stop ...

Jetzt meine Frage: Wie kann ich das am einfachsten programmieren ??

Ich würde mich sehr freuen wenn Ihr mir helfen könntet.

Vorab schon mal vielen dank.

Liebe Grüße

Fender85 :TOOL: *g*
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Um die rampe hoch sie machen ist das het einfachste um das uber zeit zu machen z.b. in OB 35 jede 0.1 sec eine facktor bei die alte geschwindigkeit addieren bis sie auf 100% sind.
Um ab zu bremsen muste sie uber weg machen. Um eine glatte rampe zu bekommen mussen sie das mit dieser formule machen.

L Rest_Bremsweg //real
L totale_Bremsweg //real
/R
L 10000.0
*R
SQRT
T Geschwindigkeit_procent //real
 
Erst mal danke für die Mühe, doch leider verstehe ich nichts davon.

Ich bin ja noch Anfänger und kann gerade davon nichts verstrehen. Ich weis ja noch nicht mals wie ich genau vorgehen muss bei dieser Problematik.

Ich warte mal auf weitere Hilfe... :)

Ih bin den ganzen Tag hier online und somit Live dabei ....


LG Fender
 
Ihr sollt das über die verschieden Taktmerker die Rampen regeln? Das ist ja mal übelst an der Praxis vorbei..
Musst du denn am ende wieder auf dem Punkt ankommen? (Positionieren).

Ist das mit den veschiedenen Taktmerkern so pflicht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
nehmen wir mal an, mit den % meinst du den Anteil an der Strecke (100% = 1000 Int). Dann könnte man mit Vergleichern arbeiten. Hast du einen Modellkran oder arbeitest du mit PLCSIM? Ist der Antrieb ein Schrittmotor, dessen Controller mit Impulsen gesteuert wird?

Gruß
Cosman
 
Also wir müssen es nicht so machen er sagte nur das es eine Möglichkeit währe.

Der Kran soll immer zu der stelle fahren die ich im ins MW 10 schreibe.
Dies tut er bis jetzt auch nur soll er auf seinem Weg egal wie lang der Weg ist immer langsamm starten und langsam ankommen. In der Mitte soll er schnell fahren wenn es ne langestrecke ist.

Maximale Strecke ist von 0 ... bis 1000 (Int.)

Ob man das jetzt wirklich mit den CPU Taktmerker machen kann bezweifle ich langsamm auch. Ich sitze die ganze Zeit an dem scheiß hier und komme einfach nicht zur Lösung.
 
Ich arbeite nur in der Simulation. Und das Problem ist ja das die 1000 nicht immer die 100% sind, denn wenn der Kran sich auf der Pos 666 befindet und ich will zu 412 fahren dann ist ja 254 meine 100%
Und diese 100% müssen dann ja auch diese abstufungen mit den Geschwindigkeiten haben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit dem Vergleicher hört sich nach einem ersten Schritt an, nur wie kann man so was Programmieren ??

Zu Info:

Mein MW10 ist der wert den ich vorgebe weo er hin fahren soll.

Mein MW20 ist der Kran der von 0 bis 1000 Int. fähren. (vor + und zurück -)
 
dann mußt du halt mal den istwert vom sollwert abziehen oder umgekehrt.
und die differenz sind dann deine 100%.
Code:
L  MW 10
L  Istwert
>I
spb klein
L  Istwert
L MW10
-I
T SollStrecke  //100% Fahrweg
klein: L MW 10
L Istwert
-I
T SollStrecke

oder so ähnlich
 
Es gibt zwei Möglichkeiten: Du regelst die Rampe über Zeit oder über den Weg.

Über die Zeit zu regeln wird schwer wenn man auf die Endposition fahren muss, dafür ist es etwas einfacher.
Beschleunigen = jeden Takt den Sollwert + X addieren bis max. Sollwert erreicht ist.
Abbremsen = jeden Takt den Sollwert - X subtrahieren bis min. Sollwert erreicht ist.
Die Rampe wird mit X verändert, wenn X groß ist, wird die Rampe kurz, ist X klein wird die Rampe klein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das dachte ich mir auch, nur das Problem dabei ist das er es Zyklich abarbeitet und bei der abarbeitung der Errechnete weg immer kleiner wird je weiter er fährt...

Und selbst wenn er bleiben würde weis ich immer noch nicht wie man dann die geschwindigkeiten realisieren könnte !?!?!?..


:confused::confused::confused:
 
@ Delta:

das hört sich super an ... wie kann ich das nun in awl schreiben ?? :)

Addieren, Subtrahieren, Vergleicher, Positive Flanke.. sollte nicht so wild werden?

Frage dich lieber, wie du den "Punkt finden willst" an dem du mit dem Abbremsen anfangen musst, um genau im Ziel den Sollwert 0 zu haben?
 
Hi Leute ... ich brauche noch mal eine Hilfe.

Ich habe gerade das Problem das ich einen Wert in ein MW schreibe und will und es gerne so lange darin belassen möchte bist der Kran stehen bleibt. Wenn der Kran wieder sthet soll in das MW wieder eine 0 null gesatz werden.


Wie kann ich das machen... wenn ich meinen wert einfach nur hinein tranferiere (T MW 35) dann wird der werd verändert wenn der kran fährt.

??????
 
Hallo,
ich würde vorschlagen, du machst aus dem Ganzen eine Schrittkette. Die könnte dann wie folgt aussehen :
Code:
Warten auf Start
- U DT Start
Fahrpositionen berechnen (auch Zwischen-Positionen für Langsamfahrt)
- U M Fahrpositionen berechnet
Fahrmotor Ein (100 %)
- U M Istposition >= Langsam 1
Fahrmotor Ein (50 %)
- U M Istposition >= Langsam 2
Fahrmotor Ein (25 %)
 - U M Istposition >= Langsam 3
 Fahrmotor Ein ( 5 %)
  - U M Istposition >= Stop-Fenster
Fahrmotor Aus 
lösche letzte Ziel-Position
  gehe zum Anfang
wie wäre das ?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie jetzt?

Wenn Kran steht eine Null in MW35
Wenn er läuft nicht mehr ändern?
Was soll denn da drin stehen?

Aber ok
Code:
U Kran fährt 
SPB wart
L X
T MW 35
wart:NOP 0
 
U Kran stopp
FP Mx.x
SPBN Null
L 0
T MW35
Null: NOP 0
 
@ paule:

hi paule ... die idee ist ok nur habe ich leider keine schlater oder taster wo ich los fahre und stoppe ... ich habe nur einen wert den ich in MW10 schreibe und MW 20 fährt dahin ... im MW 30 speichere ich MW10 - MW20 (also die strecke die der kran fahren soll) und in MW 35 will ich die strecke die er fahren soll fest speichern und nicht das er die jeden zyklus wieder runterrechnet.

mit der schrittkette ist nicht möglich denke ich ...


wenn jemand msn oder icq hat der kann mich gerne anschreiben:

msn: fender85@hotmail.de

icq: 599336009
 
Dann mach es halt mit der Istposition:
Die wird doch berechnet oder?

Wenn:
Code:
L Ist Pos
L 0
> I
= Kran fährt
 
L Ist Pos
L Ziel Pos
==I
= Kran stopp
 
Zurück
Oben