Siemens Leistungsschuetz


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Textilschneider


Textiltisch mit Kreismesser


Ein Gestell mit einem Kreismesser zum Schneiden von Textilmaterialien bewegt sich bei einem Schnittvorgang quer über einen Textiltisch. Je nach aktueller Position erfolgt die Bewegung bei einem Schnitt entweder von der linken zur rechten Seite des Tisches oder umgekehrt. Das Messergestell wird von einem elektrischen Motor, der an einen Frequenzumrichter angeschlossen ist, angetrieben. Die Bewegung des Messergestells kann im Bereich von 5 bis 15 m/min stufenlos eingestellt werden. In einer Entfernung von jeweils 35 cm von den Rändern des Tisches sind zwei Initiatoren angebracht, die ein kurzes Signal ausgeben, sobald das Messergestell vorbei fährt. Die Entfernung der beiden Initiatoren voneinander beträgt 2 m. Bei der Parametrierung des Umrichters wurde eine feste Beschleunigung und Verzögerung von 0,2 m/s² festgelegt. Das Messergestell muss nach jedem Schnitt stets an gleicher Position zum Stehen kommen. Ein SPS-Programm soll die zeitliche Verzögerung des Stoppsignals berechnen, nachdem ein Initiator passiert wurde. Mit dem Stoppsignal soll der Bremsvorgang eingeleitet werden.

Lösung:

Textilschneider Skizze


Bei unterschiedlichen Geschwindigkeiten ergibt sich bei konstanter Verzögerung jeweils ein anderer Bremsweg. Würde man z.B. die Bremsung mit dem Signal vom Initiator initiieren, würde das Gestell stets an einem anderen Punkt zum Stehen kommen. Es gilt die Zeit zu berechnen, wie lange das Gestell mit der aktuellen Geschwindigkeit, nachdem der Initiator passiert wurde, noch weiter fahren muss, bevor mit einem Stoppsignal die Bremsung gestartet werden kann.

Variablen

Zunächst muss die aktuelle Geschwindigkeit ermittelt werden. Die Zeit, die das Gestell für die Strecke zwischen den beiden Initiatoren (2 m) benötigt, kann mit dem Zeitbaustein TONR gemessen werden. Aus der Formel v=s/t kann dann anschließend die aktuelle Geschwindigkeit errechnet werden. Im nächsten Schritt wird für die aktuelle Geschwindigkeit und vorgegebene Verzögerung die Bremszeit errechnet. Die gesuchte Verzögerungszeit ergibt sich aus der Differenz zwischen der Zeit, die das Gestell benötigt hätte, um bei aktueller Geschwindigkeit die Endlage zu erreichen und der errechneten Bremszeit. Sobald die Zeit verstrichen ist, kann mit einem Stoppbefehl die Bremsung gestartet werden.

Das Programm kann man z.B. in einem Funktionsbaustein erstellen. Die verwendeten Variablen sind:

// Vorbelegung

#Messstrecke := 2.0;
#Verzögerung := 0.2;
#Abstand_Ini_PHalt := 0.35;

// Schere Start

"R_TRIG_DB"(CLK:="Start_Taster", Q=>#Start_Flanke);

// Start Bedingungen

IF #Start_Flanke AND NOT #Schere_In_Bewegung THEN
         #Zeitmessung_Aktiv := FALSE;
         #Timer_Rücksetzen := TRUE;
         #Schere_In_Bewegung := TRUE;
END_IF;

// Intervall der Zeitmessung bestimmen

IF #Schere_In_Bewegung THEN
         IF ("Initiator_Links" OR "Initiator_Rechts") AND NOT #Zeitmessung_Aktiv THEN
                  #Zeitmessung_Aktiv := TRUE;
                  #Start_Initiator_Belegt := TRUE;
         END_IF;
         IF NOT "Initiator_Links" AND NOT "Initiator_Rechts" THEN
                  #Start_Initiator_Belegt := FALSE;
         END_IF;
         IF NOT #Start_Initiator_Belegt AND ("Initiator_Links" OR "Initiator_Rechts") THEN
                  #Zeitmessung_Aktiv := FALSE;
                  #Schere_In_Bewegung := FALSE;
         END_IF;
END_IF;

// Zeitmessung

"Strecke_Timer".TONR(IN := #Zeitmessung_Aktiv,
         R := #Timer_Rücksetzen,
         PT := t#100s,
         Q => #Messung_Abgelaufen,
         ET => #Zeit_Gemessen);

// Geschwindigkeit v = s/t (m/Sek)

IF #Zeit_Gemessen > 0 THEN
         #t1 := DINT_TO_REAL(#Zeit_Gemessen);
         #Geschwindigkeit := (#Messstrecke / #t1) * 1000;
         #Geschw_m_min := #Geschwindigkeit * 60;
END_IF;

// Bremszeit t = v/a (Sek)

#Bremszeit := #Geschwindigkeit / #Verzögerung;

// Zeit für die Strecke Initiator - Endlage t = s/v (Sek)

#t_Ini_PHalt := #Abstand_Ini_PHalt / #Geschwindigkeit;

// Die gesuchte Verzögerungszeit (ms)

#t_Ini_PStop := (#t_Ini_PHalt - #Bremszeit) * 1000;

// Stopp - Signal aktivieren

#Zeit_Verzögerung := REAL_TO_DINT(#t_Ini_PStop);
"IEC_Timer_0_DB".TON(IN:=("Initiator_Links" OR "Initiator_Rechts") AND NOT #Zeitmessung_Aktiv,
         PT:=#Zeit_Verzögerung,
         Q=>#Stop_Signal,
         ET=>#t_ist);


S7-Programmierung TIA-Portal (Übersicht):




Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz