Probleme mit 2 For Next Schleifen in SCL

Gerold

Level-1
Beiträge
82
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

heute ein neuer Tag und neue Problemchen.
Da ich mich erst seit ein paar Tagen mit SCL beschäftige gibt es tausende von Fragen.
Ein davon ist.Warum geht die CPU mit der Fehlermeldung in Stop ,wenn ich folgendes Programmiere:
FUNCTION_BLOCK FB100
VAR_TEMP
// temporäre Variablen

END_VAR
VAR
Fuellstand:int; // statische Variablen
i:INT;
j:INT;
END_VAR
VAR_OUTPUT
Akt_Fuellstand:INT;
END_VAR


BEGIN

FOR i:= 0 TO 20 BY 2 DO // Abfrage ob in Absetzplätzen 1 bis 10 eine "1" steht
IF DB10.DW=1 THEN Fuellstand:=i;
END_IF;
END_FOR;

FOR j:=0 TO 20 BY 2 DO // Abfrage ob Absetzplätze leer sind
IF DB10.DW[j]=1 THEN EXIT;
ELSE Fuellstand:=0;
END_IF;
END_FOR;


Akt_Fuellstand:=Fuellstand;// Ausgabe des Kammerfüllstandes
END_FUNCTION_BLOCK


Wenn ich nur die erste Schleife verwende,funktioniert das.Füge ich die zweite ein,geht alles auf stop.WARUM??????????

Danke
Gruß Gerold
 
Auf den ersten Blick kann ich keinen Fehler entdecken.
Sieh dir doch mal die CPU-Fehlermeldung an (Stopursache).
Vielleicht ist es nur eine Zykluszeitüberschreitung auf Grund der Schleifenaufrufe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ralle,

ich teste das Programm mit PLC SIM.
Wenn ich die Stopursache nachschaue ,steht dort Stopursache durch Bereichslängenfehler beim Schreiben. Instanz DB, Wortzugriff,Zugriffsadresse 6 FB 100 Bausteinadresse 100

Die Adresse 100 ist genau dort ,wo die 2 te Schleife anfängt.Ich verstehe das nicht.
 
Fehler gefunden!!!!!!!!!!!!!!!!!!!!!

Ich habe den Instanzdatenbaustein gelöscht und nochmals erzeugt.
Schon bleibt die CPU in RUN auch mit 2 Schleifen.

Ist schon merkwürdig ,aber hauptsache es funktioniert.
Gruß Gerold
 
Wenn du neue Variablen im FB einfügst, mußt du tatsächlich immer den Instanz-DB neu erzeugen, das gilt auch für FB's als oder in Multiinstanzen.
 
Zurück
Oben