SPS Forum sowie Forum für Digitaltechnik, Computer, Internet, Programmierung  
Zurück   SPS Forum sowie Forum für Digitaltechnik, Computer, Internet, Programmierung > Automatisierung und Steuerungstechnik > Automation Studio
Registrieren Hilfe Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Automation Studio Programmiersoftware von B&R, Bernecker + Rainer Industrie Elektronik Ges.m.b.H.

Antwort
 
Themen-Optionen Thema durchsuchen
  #1  
Alt 12.07.2007, 19:54
hawky hawky ist offline
Neuer Benutzer
 
Registriert seit: 11.05.2007
Beiträge: 5
Standard Strukturierter Text Ersatz für While Schleife

hallo zusammen,

ich bin immernoch fleissig am sps programmieren und bin auf ein mehr oder weniger großes problem gestossen. um genauzu sein brauch ich ein ersatz für eine WHILE Schleife in der programmiersprache Sturkturierter Text. die software die ich verwende ist B&R.

ich kopiere hier einfach mal mein bisherigen quellcode rein:

Code:
(* init program *) S2 := FALSE; (* Variable definiert setzen *) S3 := FALSE; (* Variable definiert setzen *) m_3 := FALSE; (* Variable definiert setzen *) m_2 := FALSE; (* Variable definiert setzen *) Y2 := FALSE; (* Variable definiert setzen *) Y3 := FALSE; (* Variable definiert setzen *) State := 4; (* Variable definiert setzen *) heizen := TRUE; (* Variable definiert setzen *) (* cyclic program *) W_K := 3; IF (S2 = TRUE) THEN m_3 := TRUE; END_IF; IF (S3 = TRUE) THEN m_2 := TRUE; END_IF; IF (m_3 = TRUE) THEN (* Heizung Teillast *) State := 3; WHILE (W_K = 3) DO (* Solange W_K = 3 pulsiert der Ausgang Y2 im 2 Sekunden Takt *) TON_10ms_0(IN:=heizen, PT:=200); (* Einschaltverzögerung von 2 Sek*) Y2 := TON_10ms_0.Q; (* Geht Ausgang Q auf 1, wird Y2 ebenfalls 1 *) TP_10ms_0(IN:=Y2, PT:=200); (* Sobald Y2 auf 1 ist bleibt es für 2 Sek an *) Y2 := TP_10ms_0.Q; (* Nach 2 Sek geht Y2 auf 0 und die Schleife wird von vorne gestartet *) END_WHILE; END_IF; IF (m_2 = TRUE) THEN (* Heizung Halblast *) State := 2; WHILE (W_K = 3) DO (* Solange W_K = 3 pulsiert der Ausgang Y3 im 4 Sekunden Takt *) TON_10ms_1(IN:=heizen, PT:=400); (* Einschaltverzögerung von 4 Sek *) Y3 := TON_10ms_1.Q; (* Geht Ausgang Q auf 1, wird Y3 ebenfalls 1 *) TP_10ms_1(IN:=Y3, PT:=400); (* Sobald Y3 auf 1 ist bleibt es für 4 Sek an *) Y3 := TP_10ms_1.Q; (* Nach 4 Sek geht Y3 auf 0 und die Schleife wird von vorne gestartet *) END_WHILE; END_IF;

das ist nur ein teil eines programms aber so wie es da steht sollte es auch funktionieren.
die variable W_K is nicht veränderlich und bleibt dauerhaft auf dem wert 3 (Integer). sobald ich dann die Taste S2 oder S3 drücke werden dann die entsprechenden variablen m_2 oder m_3 auf TRUE gesetzt und das programm springt in eine der beiden IF strukturen rein. innerhalb dieser IF strukturen soll dann eine variable (State) auf einen bestimmten wert gesetzt werden und danach soll eine endlose WHILE Schleife gestartet werden. die WHILE bewirkt dann das der entsprechende ausgang Y2 oder Y3 im 2 sek oder 4 sek takt pulsiert, sprich 2 sek aus und 2 sekunden an. dann wieder von vorne.

sobald ich dann die Taste S2 oder S3 loslasse wird die entsprechende variable m_2 oder m_3 auf FALSE gesetzt und demzufolge springt mein programm auch aus dieser endlosschleif raus, da diese schleife ja in einer IF struktur drinsteckt. soviel zur theorie

das problem ist jetzt ich darf wegen dieser programmiersprache oder wegen des sps keine endlosschleifen verwenden. das steht auch in der Hilfedatei. aber genau das muss ich, denn solang ich die Taste S2 oder S3 gedrückt halt soll der ausgang pulsieren, und das endlos.

ich hab schon viel ausprobiert bin aber auf keine lösung gekommen. vielleicht hat hier jemand eine idee wie ich diese WHILE durch etwas anderes ersetzen kann

gruß
hawky
Mit Zitat antworten
  #2  
Alt 18.07.2007, 00:16
hawky hawky ist offline
Neuer Benutzer
 
Registriert seit: 11.05.2007
Beiträge: 5
Standard

hat sich erledigt, hab rausgefunden wies geht
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:02 Uhr.


Powered by vBulletin® Version 3.5.8 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.