Rezeptur Datensatz in die SPS übertragen

Timey

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hy liebe Leser,

wollt mal fragen ob mir jemand bei meinem Problem auf die Sprünge helfen kann.

Ich habe in Winncc flexible 2008 eine Rezeptur angelegt.In dieser Rezeptur habe ich mehrere Rezeptur Datensätze angelegt.

Diese Datensätze werden mir mittels"einfache Rezepturanzeige" auf meinem Bediengerät (TP177A) angezeigt. Die Elemente die sich in einem Datensatz befinden kann ich nach belieben mit dem Eingabefeld mit Werten versehen (z.B. Lötbadtemperatur= 50).

Nun möchte ich von der SPS (S7 300/CPU 315-2 pn dp) einen bestimmten Datensatz, der sich im internen Rezepturspeicher des TP's befindet,lesen und in die SPS schreiben bzw. in einem DB schreiben.

Bin bei meiner Recherche bin ich auf den "Steuerungsauftrag Nr.70 gestossen".
Mit dieser Funktion soll man Datensätze aus einem Rezept in die SPS schreiben können.Hab leider noch keine Erfahrung mit Steueraufträgen :neutral:
Kann mit Bereichszeiger "Steuerungsauftrag " und Statuswort usw. nicht viel anfangen


Ist es generell möglich einen Datensatz der auf dem Bediengerät gespeichert ist in die SPS zu schreiben?

oder gibt es eine elegantere Variante an Rezepturdatensätze zukommen?

Würde mich sehr freuen wenn mir jemand weiterhelfen könnte :)

Danke schonmal im voraus
 
Ich habe das "Rezept laden" auch schon über einen Steuerauftrag gelöst und kann sagen, dass das ganz gut funktioniert.

In WinCC 'flex" unter Verbindungen mußt Du Variablen (vorzugsweise in einem DB) definieren, die Du von deinem Programm ansprichst. Wenn unter der WinCC Hilfe mal nachschaust, dann findest Du den genauen Aufbau dazu. Zu den Wörtern des Steuerauftrags kommen dann noch die Wörter des Datenfachs (? ich glaube so heißen die, hab grad kein WinCC hier) hinzu, die Du ebenfallst brauchst.

Per Steuerflanke Steuerauftrag + Rezeptur + Datensatz hintereinander in die Variablen schreiben und alle Wörter im Datenfach löschen, fertig ist das Laden Deiner Rezeptur.

Du erhältst dann im Datenfach eine Bestätigung des Vorgangs (deswegen auch per Flanke vorher Inhalte löschen (Wert "0" !)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort :)

werd das am Montag gleich mal ausprobieren.

Ist irgendwas im Winncc flexible noch zubeachten?

z.B, Bereichszeiger für Datensatz oder Steuerauftrag.

würde das so in etwa schreiben

U Merker1

L 0 // lade 0 und Lösche Datensatz
T Statuswort (z.B MW6)
L3 // Rezept Nr.3 laden
T Rezepturwort (z.B.MW10)
L 1
T Datensatz



.mal schaun obs klappt danke nochmal für die schnelle antwort :-D
 
Du musst einen Variablenbereich (DB) deklarieren, in dem der Steuerungsauftrag abgelegt werden kann. (Bereichszeiger)
Die Deklararion erfolgt unter "Kommunikation" -> "Verbindungen" im Flex.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich mach das immer so
Für jedes Rezept einen FC mit zugehörigen DB
z.B Programm 1 hat den FC1 mit DB 1
mit Aufruf FC 1 ein wird dann der DB 1 mit Move in den aktuell DB eingelesen.
DB100
dieser Aktual DB wird dann im WINCC mit Daten gefüttert. Die Daten dann wiederum mit Move in den Speicher DB 1 abgelegt.

Also 10 Rezepte mit 10 Fc und 10 DB
 
Zuletzt bearbeitet:
Ich mach das immer so
Für jedes Rezept einen FC mit zugehörigen DB
z.B Programm 1 hat den FC1 mit DB 1
mit Aufruf FC 1 ein wird dann der DB 1 mit Move in den aktuell DB eingelesen.
DB100
dieser Aktual DB wird dann im WINCC mit Daten gefüttert. Die Daten dann wiederum mit Move in den Speicher DB 1 abgelegt.

Also 10 Rezepte mit 10 Fc und 10 DB

Wozu brauchst du die 10 FC? Die Repezte können doch auch so in beliebig viele DB und bei Bedarf auch in den DB noch einmal in beliebig viele Rezeptfächer gespeichert werden.
 
Vielen Dank für die Antworten :smile:


Also ich lege in Step7 irgendein Datenbaustein an worauf der Bereichszeiger in Wincc zeigt z.B DB2.DW0.

IM SPS-Programm schreib ich in den DB meine Steuerungsauftrags- Paramater z.B

L 6 (Rezept.Nr.6)
T DB2.DBW1
L 4 (Datensatz 4)
T DB2.DBW2
L 70 (Steuerungsauftrag 70)
T DB2.DBW0
...
Bediengerät setzt erste Datenwort auf "0"


Und jetzt lädt er im internen Rezepturspeicher Rezept 6 - Datensatz 4 und schreibt die Werte in die Variablen (die dem Elementen eines Datensatzes zugeordnet wurde)

müssen beide Bereichszeiger(Steuerungsauftrag und Datensatz) unter Verbindungen eingeschaltet sein ?

danke im voraus schnonmal für die antworten:wink:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
L 6 (Rezept.Nr.6)
T DB2.DBW1
L 4 (Datensatz 4)
T DB2.DBW2
L 70 (Steuerungsauftrag 70)
T DB2.DBW0
Das wird nicht funktionieren, da Word immer +2

zB
L 6 (Rezept.Nr.6)
T DB2.DBW2
L 4 (Datensatz 4)
T DB2.DBW4
L 70 (Steuerungsauftrag 70)
T DB2.DBW0

DBW0 besteht aus DBB 0+1
DBW1 besteht aus DBB 1+2
DBW2 besteht aus DBB 2+3

so hättest du eine Überschneidung, man sollte sich angewöhnen, Word oder Doppelword immer gerade. zB DBW0, DBW2 usw
 
Ich mach das immer so
Für jedes Rezept einen FC mit zugehörigen DB
z.B Programm 1 hat den FC1 mit DB 1
mit Aufruf FC 1 ein wird dann der DB 1 mit Move in den aktuell DB eingelesen.
DB100
dieser Aktual DB wird dann im WINCC mit Daten gefüttert. Die Daten dann wiederum mit Move in den Speicher DB 1 abgelegt.

Also 10 Rezepte mit 10 Fc und 10 DB

WinnCC flex kann bis zu 65536 Datensätze in einer Rezeptur haben, heißt das für Dich auch 65536 FC's?

Wozu dieser ganze Aufwandt? Während der Automatik ist in vielen Fällen das Rezept laden unerwünscht, also sperre ich einfach den Zugriff auf die Rezeptauswahl! Die Datensätze, die ich lade verteile ich direkt dorthin, wo ich diese benötige!
 
Zurück
Oben