-> Hier kostenlos registrieren
Hallo,
ich möchte folgende Funktion von Schneider eigenständig umsetzen:
	
Hierbei geht es mir nur um die Totzeitkompensation.
Ich habe die ist-Geschwindigkeit und die ist-Position eines Antriebes.
Nun wird eine Zeit vorgegeben. Der Antrieb soll vor erreichen der Position (um diese Zeit) ein Ventil schalten.
Z.B.
Soll-Position des Antriebes ist 1000mm
Totzeit 50ms
Hier soll der Antrieb also 50ms bevor er seine Soll-Position erreicht hat, ein Ventil geschaltet werden.
Wie kann ich nun die Position berechnen die der Antrieb in diesem Moment haben wird?
Ich hatte an das gedacht:
PositionVentil = Sollposition - (IstGeschwindigkeit x Totzeit)
Pro Zyklus und je weiter der Antrieb fährt würde dies sich ja Kurvenartig der richtigen Position nähern.
IF IstPosition >= PositionVentil Then
Bremse := TRUE;
END_IF
Würde dann die Bremse frühzeitig einfallen lassen.
Liege ich hiermit korrekt?
	
		
			
		
		
	
				
			ich möchte folgende Funktion von Schneider eigenständig umsetzen:
Hierbei geht es mir nur um die Totzeitkompensation.
Ich habe die ist-Geschwindigkeit und die ist-Position eines Antriebes.
Nun wird eine Zeit vorgegeben. Der Antrieb soll vor erreichen der Position (um diese Zeit) ein Ventil schalten.
Z.B.
Soll-Position des Antriebes ist 1000mm
Totzeit 50ms
Hier soll der Antrieb also 50ms bevor er seine Soll-Position erreicht hat, ein Ventil geschaltet werden.
Wie kann ich nun die Position berechnen die der Antrieb in diesem Moment haben wird?
Ich hatte an das gedacht:
PositionVentil = Sollposition - (IstGeschwindigkeit x Totzeit)
Pro Zyklus und je weiter der Antrieb fährt würde dies sich ja Kurvenartig der richtigen Position nähern.
IF IstPosition >= PositionVentil Then
Bremse := TRUE;
END_IF
Würde dann die Bremse frühzeitig einfallen lassen.
Liege ich hiermit korrekt?
			
				Zuletzt bearbeitet: 
			
		
	
								
								
									
	
		
			
		
		
	
	
	
		
			
		
		
	
								
							
							 
	 
  
  
 
 
 