-> Hier kostenlos registrieren
Hallo Community,
ich stehe vor einem Problem.
Ich habe einen DB in SCL Programmiert. Dieser DB soll als Puffer dienen.
Mit meinem Programm bekomme ich von der Seite_X Integer Werte die ich weiterverarbeiten muss. Auf der Seite_Y muss ich auf die Freigabe zur weiterverarbeitung warten.
Schickt jetzt Seite_X Werte, Seite_Y ist aber noch bereit, würde ich die Daten verlieren. Deswegen schreibe ich die Daten von Seite_X in den DB, und Seite_Y greift darauf zu.
Hier der Auszug des DB:
----------------------------------------
IF bef_abfuellen THEN
// Ober bzw. Untergrenze vom Index abfragen
IF index > 100 OR index < 1 THEN
index:= 1;
END_IF;
// Messwert eintragen
Zahlenwert_Farbe[index]:= akt_Farbe;
// Index um 1 erhöhen
index:= index+1;
//-------------------
END_IF;
Das mit dem hineinschreiben funktioniert ganz gut. Ich schreibe den ersten Wert nun in DB66.DBX0.0. Den zweiten in DB66.DBX2.0. Den dritten Wert in DB66.DBX4.0......
Ich möchte nun DB66.DBX0.0 auslesen. Wird DB66.DBX0.0 ausgelesen, soll der Rest im DB dann um die eine ausgelesene Stelle nachgerückt werden. (also DB66.DBX2.0 wird zu DB66.DBX0.0, DB66.DBX4.0 wird zu DB66.DBX2.0,..)
Kann mir jemand weiterhelfen? Bin leider Neuling und ziemlich Planlos
Dankeschön!!
ich stehe vor einem Problem.
Ich habe einen DB in SCL Programmiert. Dieser DB soll als Puffer dienen.
Mit meinem Programm bekomme ich von der Seite_X Integer Werte die ich weiterverarbeiten muss. Auf der Seite_Y muss ich auf die Freigabe zur weiterverarbeitung warten.
Schickt jetzt Seite_X Werte, Seite_Y ist aber noch bereit, würde ich die Daten verlieren. Deswegen schreibe ich die Daten von Seite_X in den DB, und Seite_Y greift darauf zu.
Hier der Auszug des DB:
----------------------------------------
IF bef_abfuellen THEN
// Ober bzw. Untergrenze vom Index abfragen
IF index > 100 OR index < 1 THEN
index:= 1;
END_IF;
// Messwert eintragen
Zahlenwert_Farbe[index]:= akt_Farbe;
// Index um 1 erhöhen
index:= index+1;
//-------------------
END_IF;
Das mit dem hineinschreiben funktioniert ganz gut. Ich schreibe den ersten Wert nun in DB66.DBX0.0. Den zweiten in DB66.DBX2.0. Den dritten Wert in DB66.DBX4.0......
Ich möchte nun DB66.DBX0.0 auslesen. Wird DB66.DBX0.0 ausgelesen, soll der Rest im DB dann um die eine ausgelesene Stelle nachgerückt werden. (also DB66.DBX2.0 wird zu DB66.DBX0.0, DB66.DBX4.0 wird zu DB66.DBX2.0,..)
Kann mir jemand weiterhelfen? Bin leider Neuling und ziemlich Planlos
Dankeschön!!