-> Hier kostenlos registrieren
Hallo zusammen,
ganz kurz, ich bin noch extrem neu was SCL Programmierung bzw. allgemein Zeitkritische Programmierung angeht (Musste mir bislang da nie gedanken machen).
Ich habe ein Tanklager mit verschiedenen Komponenten, Tanknummer etc. und bekomme vom Batch eine Rezeptvorgabe wie die nächste Mischung auszusehen hat. Bevor dies passiert werden aber die vom Rezept übergebenen Daten Tanknummer/Komponente vom Routecontrol überprüft, ob denn auch wirklich die gewünschte Komponente im entsprechenden Tank ist.
Ich kriege eine Meldung zurück passt alles. Nun muss ich ein sogenanntes Event für jede Komponenten/Tank Zeile des Rezeptes an eine übergelagerte Datenbank senden. Also in dieser Art:
EV1 : Tank1 Komp1 Menge1
EV2 : Tank2 Komp2 Menge2
usw.
die Eventbausteine sind bereits vorhanden und müssen benutzt werden. Das entscheidene dabei, sie Arbeiten im 200ms OB , sonst funktiniert das ganze nicht.
Nun zu meiner Frage:
Ich möchte jetzt so einfach wie möglich sobald ich die Meldung alles OK bekomme die einzelnen EV´s senden.
Habe mir dazu folgende kleine Schleife in SCl Programmiert:
Mit Haltepunkten versehen Funktioniert das ganze auch sehr schön am Ausgang des CFC`s nur mein Bedenken bzw. ich bin mir eigentlich sicher ist, dass der Baustein viel zu schnell ist und schon alle Zustände ausgegeben hat bevor der dahinter liegende EV Baustein sie überhaupt bearbeiten konnte.
Also Quasi bei jede´r positives Flanke von Q_Start_Ev die drei Werte an den Ausgängen als EV senden.
Mhmm ich hoffe ich hab mich halbswegs verständlich ausgedrückt
Vielen Dank schonmal!
ganz kurz, ich bin noch extrem neu was SCL Programmierung bzw. allgemein Zeitkritische Programmierung angeht (Musste mir bislang da nie gedanken machen).
Ich habe ein Tanklager mit verschiedenen Komponenten, Tanknummer etc. und bekomme vom Batch eine Rezeptvorgabe wie die nächste Mischung auszusehen hat. Bevor dies passiert werden aber die vom Rezept übergebenen Daten Tanknummer/Komponente vom Routecontrol überprüft, ob denn auch wirklich die gewünschte Komponente im entsprechenden Tank ist.
Ich kriege eine Meldung zurück passt alles. Nun muss ich ein sogenanntes Event für jede Komponenten/Tank Zeile des Rezeptes an eine übergelagerte Datenbank senden. Also in dieser Art:
EV1 : Tank1 Komp1 Menge1
EV2 : Tank2 Komp2 Menge2
usw.
die Eventbausteine sind bereits vorhanden und müssen benutzt werden. Das entscheidene dabei, sie Arbeiten im 200ms OB , sonst funktiniert das ganze nicht.
Nun zu meiner Frage:
Ich möchte jetzt so einfach wie möglich sobald ich die Meldung alles OK bekomme die einzelnen EV´s senden.
Habe mir dazu folgende kleine Schleife in SCl Programmiert:
Code:
IF E_Start_EV = true THEN
FOR e := 1 TO 8 DO
Q_Start_Ev := 0;
IF E_Proz[e] = 0 THEN
EXIT;
ELSE
Q_Komp := E_Komp[e];
Q_Tank := E_Tank[e];
Q_Proz := E_Proz[e];
Q_Start_Ev:= 1;
END_IF;
END_FOR;
Q_EV_Fertig := 1;
ELSE
Q_EV_Fertig := 0;
END_IF;
Mit Haltepunkten versehen Funktioniert das ganze auch sehr schön am Ausgang des CFC`s nur mein Bedenken bzw. ich bin mir eigentlich sicher ist, dass der Baustein viel zu schnell ist und schon alle Zustände ausgegeben hat bevor der dahinter liegende EV Baustein sie überhaupt bearbeiten konnte.
Also Quasi bei jede´r positives Flanke von Q_Start_Ev die drei Werte an den Ausgängen als EV senden.
Mhmm ich hoffe ich hab mich halbswegs verständlich ausgedrückt
Vielen Dank schonmal!