benutzung eines Ringspeichers

zloyduh

Level-1
Beiträge
226
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

kennt sich jemand mit der Verwendung eines FiFo aus?

Habe folgendes vor:

Möchte Datensätze mittels OP definieren, bestehend aus ; (Nr, Länge, Breite, Höhe usw.) welche der reihe nach abgearbeitet werden sollen.
Das ganze möchte ich ohne Rezepturverwaltung lösen.
Bis jetzt habe ich einen UDT erstellt welcher meinem Datensatz entspricht,
diesen habe ich in einem DB aufgerufen.
Wie beschreibe ich einen FiFo und wie kann ich diese Daten verwalten??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wenn Du SCL zur Verfügung hast solltest es z.B. so machen:

über den AUfruf und den index kannst Du Dir den nächsten Datensatz holen

Code:
TYPE UDT_Datensatz
    STRUCT
        Wert_1_Bool: BOOL;
        Wert_2_Bool: BOOL;
        Wert_3_Bool: BOOL;
        Wert_1_Word: WORD;
        Wert_2_Word: WORD;
    END_STRUCT
END_TYPE
 
DATA_BLOCK DB_Datensaetze
    STRUCT
        Datensatz_aktuell: UDT_Datensatz;
        Datensatz_Rezept: ARRAY [1..100] OF UDT_Datensatz;
    END_STRUCT
BEGIN
END_DATA_BLOCK
 
FUNCTION_BLOCK FB_Datensatz_holen
    VAR_INPUT
        index: INT;
    END_VAR
BEGIN
    DB_Datensaetze.Datensatz_aktuell := DB_Datensaetze.Datensatz_Rezept [index]; 
END_FUNCTION_BLOCK
 
Hallo,
ich würde hier auch (wie von Sarek schon vorgeschlagen) den Weg mittels SCL gehen. Das würde dein Vorhaben auch gut durchschaubar und übersichtlich machen ...

Gruß
Larry
 
Hallo Zloyduh,

wenn ich dich richtig verstehe möchtest du auf einem OP einen Datensatz bearbeiten, fortlaufend über Nummern oder Namen.
Anstatt einer Rezeptur sind die Datensätze in einem bzw. mehreren DBs abgelegt.
Auf dem OP hättest du ein Bild mit dem du den jeweiligen Datensatz editieren kann.
In der Steuerung wird durch einer Indexvariable der entsprechende Datensatz abgearbeitet. Suchst du so etwas?

Die Bausteine sind alle in AWL Programmiert.
Im OP erfolgt die Zuweisung der Datensatzvariaben über zwei Indexvariablen, eine für den DB und eine für die Adresse.

Gruß Waldi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zloyduh,

wenn ich dich richtig verstehe möchtest du auf einem OP einen Datensatz bearbeiten, fortlaufend über Nummern oder Namen.
Anstatt einer Rezeptur sind die Datensätze in einem bzw. mehreren DBs abgelegt.
Auf dem OP hättest du ein Bild mit dem du den jeweiligen Datensatz editieren kann.
In der Steuerung wird durch einer Indexvariable der entsprechende Datensatz abgearbeitet. Suchst du so etwas?

Die Bausteine sind alle in AWL Programmiert.
Im OP erfolgt die Zuweisung der Datensatzvariaben über zwei Indexvariablen, eine für den DB und eine für die Adresse.

Gruß Waldi

Hallo Waldi,
hast du ein Beispiel für diese Anwendung??
 
Ja habe ich, brauchst du es für ein bestimmtes OP?
Falls ja, was für ein OP wäre es dann?
Allerdings muss ich die Bausteine erst aus bestehenden Projekten rausziehen.
Kann 2-3 Tage dauern, falls du so viel Zeit hast, weil ich auch zwischen den Jahren im Einsatz bin.

Gruß Waldi
 
Hallo,

entschuldigung, dass es länger gedauert hat, hatte aber zwischen den Jahren viel Arbeit.
Habe dir ein funktionsfähiges Beispielprogramm zusammengestellt. (siehe Bild) Mit 5 Progammen à 20 Datensätze zum ausprobieren und testen.
Step 7 Version 5.5 WinCC 2008 SP2.
Leider habe ich noch keine Zeit für eine Doku gehabt.
Werde sie in den nächsten Tagen, auch auf dieser Seite nachreichen.

Vorgehensweise zum Testen:

In dem Programm ist ein Verzeichnis CPU030111, Simulation öffnen und diese Bausteine in die Simulation laden.
Oder bei Simualtion öffnen, letzte Simulation starten.

Mit "Bild 1" WinCC öffnen, danach mit dem Button "Runtime start" Projekt aktivieren.

Nun müsste, wenn die Simulation auf Run steht, der Datenbankeditor funktionsfähig sein.

Die Step7 Programme, FB51, können mit dem im Onlinesatus beobachtet werden.

Ich hoffe du kommst mit diesem Programm klar. Hier kannst du die komplette Aufbau und Funktionsweise des Programms nachvollziehen.

Der Datensatz kann von der Datenbank auf den Prozess geladen und auch umgekehrt zurückkopiert werden auf einen beliebigen Datensatz.

Mit einem zusätzlichen Index könntest du ein Programm Satzweise abarbeiten.

Das Programm kann auch an dritte weitergeben werden, einzige Bedingung dabei ist, dass ich als Autor genannt werde.

Viel Spaß beim Testen.

Mit freundlichen Grüßen

Waldi
 

Anhänge

  • OP-Ansicht.jpg
    OP-Ansicht.jpg
    192,7 KB · Aufrufe: 47
  • Datenban.zip
    2,1 MB · Aufrufe: 24
Zurück
Oben