Weiterschaltbedingung bei Positionsregelung eines Penuamtikzylinders

M&M

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

bin neu und hoffe das passenden Unterforum erwischt zu haben. Des Weiteren kenne ich mich auch in Sachen SPS-Programmierung nur wenig aus, bin momentan jedoch gezwungen mich damit zu beschäftigen und hoffe daher auf euren Rat.

Folgende Aufgabenstellung.
Die Position eines Pneumatikzylinders soll mittels Proportionalventil und Wegmesssystem geregelt werden. Es sollen dann verscheidenen Positionen angefahren werden. An diesen Positionen wird dann ein weiterer Arbeitsablauf gestartet.


Ich habe hierzu einen Funktionsbaustein für einen PID-Regler geschrieben.
Ob die gewünschte Position erreicht wurde wird innerhalb des Bausteins einfach durch eine If-Anweisung abgefragt. Diese sieht (vereinfacht) wie folgt aus:

IF ABS(Soll-Ist) > Toleranzband THEN
Position_erreicht := FALSE;
ELSE
Position_erreicht :=TRUE;
END_IF;


Wird der Regler alleine betrieben funktioniert das Positionieren auch wie gewollt.

Ich habe nun das Problem die Weiterschaltbedingung, zum einleiten des nächsen Arbeitsschritt, zu definieren.
Benutze ich beispielsweise etwas in der Form: IF(Position_erreicht) Then XXXX
tritt die Problematik auf, dass im Falle eines Überschwingens o.Ä. Position_erreicht kurzzeitig TRUE wird und die nächste Aktion gestartet wird,
obwohl die Position noch nicht eingeregelt ist und der Zylinder somit noch verfährt / in Bewegung ist.

Hier wäre ich um jede Hilfe und Idee dankbar.

P.S.
Programmiert wird mittels IndraWorks Enginieering, welches m.W.n auf CODESYS V3 basiert.
Die Steruerung ist einen Rexroth IndraControl L25
 
Du könntest einfach "Position_Erreicht" als Eingang für eine Einschaltverzögerung nutzen. Erst wenn das Signal für eine Zeit X ansteht wird die Weiterschaltung aktiv. Damit Entprellst du quasi das Signal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eventuell könntest Du auch zusätzlich zur Verzögerung den PID-Ausgang auf z.B. zwischen -1% und +1% vergleichen und in die "Position erreicht" Signalbildung einpflegen.

Edit:
Natürlich nur darstellbar, wenn Stillstand annähernd Null bedeutet.
Habe vielleicht vorschnell gedacht, da ich den Anwendungsfall nicht kenne.
 
Zuletzt bearbeitet:
Kurze Frage, wenn du doch ein wegmesssystem benutzt, könntest du dann nicht die reale Ist-Position direkt benutzen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das wird er wahrscheinlich tun. Nur hat er das Problem das sein System beim erreichen des Ziels leicht überschwingt und er erst weiter schalten will, wenn der Zylinder sicher auf der Position zum Stillstand gekommen ist ...
 
Zurück
Oben