Motor Simulation

motamas

Level-1
Beiträge
65
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
also ich versuche mich gerade an einer Simulation für einen Motor.
Mein jetziger Versuch sieht so aus

U Taktmerker
U Motorfreigegeben
UN Motor läuft nicht an ist also auf Drehzahl
U(
L Ist-Position
L 2000
==I
)
SPBNB end3
S Merker für den Bremsvorgang
L 0
T Soll-Drehzahl
L 1000
L Zwischenwert
-I
T Ist-Drehzahl
L Zwischenwert
L 2
*I
T Zwischenwert
L Ist-Drehzahl
L 488
==I
SPBNB set2
L 0
T Ist-Drehzahl
R Merker für Bremsvorgang
R DB30.DBX 8.0
L 1000
T Soll-Drehzahl
end3: NOP 0
set2: NOP 0

So nun zur Erklärung.
Also es ist ein Motor der sich über eine festgelegt Strecke Vor- und Zurückbewegen kann. Dazu simuliere ich einen mehr oder weniger genauen Anlauf der die Differenz vom Soll- und Istwert nimmt und dass durch 2 teilt und als neuen Istwert setzt. Das ganze wird so lange gemacht bis der Sollwert von 1000 erreicht ist.
Soweit so gut jetzt will ich das ganze so realisieren, dass die Drehzahl kurz vor der Soll-Position wo der Kranhinfahren soll runter auf null geht und zwar mit einem ähnlichen Prinzip.

Dazu habe ich das oben geschrieben quasi der Bremsvorgang.
Eine kleine Erklärung zum Programm. Der Bremsvorgang soll bei Position 0 eintreten (Startposition). Ich nutze den posititiven Bereich des Integers also 32000.
Das ganze soll ja in einer gewissen zeit zyklisch ablaufen deswegen brauche ich den Taktmerker und diverse freigaben.
Wenn die Ist-Position kurz vor dem Ziel 0 ist also bei einem Integer wert von 2000 soll der Bremsvorgang starten.
dazu setze ich dann zur gegenverriegelung einen Merker dass der Vorgang aktiv ist und den SOlwert für die Drehzahl auf 0.
Dann nehme ich mir einen Zwischenwert (am anfang 1) den ich von der ehemaligen Drehzahl (1000) abziehe. Was mein neuer Ist-Wert ist.
Dann multipliziere ich den Zwischenwert mit 2 um ihn im nächsten Zyklus wieder von 1000 abzuziehen. Das wird so lange gemacht bis die Drehzahl einen wert von 488 erhält.
Wenn dem so ist soll die Ist-Drehzahl auf 0 gesetzt werden, da das der letzte Schritt ist.
ja soviel dazu.
Das Prinzip klappt wenn ich eine Position ansteuere die ich über einen Eingang als erreicht makiere.
Aber wenn ich hier mit einem Istwert vergleich am anfang die sache starten will nicht.
Hat jemand ne Idee um das irgendwie so zu realisieren wie ich mir das vostelle.

Vielen Dank.
 
Zuletzt bearbeitet:
Zurück
Oben