# Übergornete Rezeptur?



## Carsten77 (23 April 2008)

Hallo zusammen!
Ich bin Anfänger was HMI und SPS an geht.
Nun möchte ich eine Maschine automatisieren. Manuell funktioniert auch schon alles. nun geht es an eine Automatik die die Bediener selbst zusammenstellen können sollen. 
Das heisst:
Ich habe rund 10 Variablen, die der Bediener aktivieren und deren Menge oder Häufigkeit angeben kann. Das habe ich schon mal per Rezeptur gemacht. So kann der Bediener eine "Maschinenrunde" beschreiben. Ich würde mir nun eine funktion wünschen, bei der der Bediener 10 verschiedene Runden (Rezepturen) beschreiben kann und diese dann beliebig oft wiederholen kann. Zum Beispiel in einer übergeordneten Rezeptur festlegen Rezeptur1 (Runde 1) 4x, Rezeptur2 (Runde2) 2x usw...
Und jetzt der Knüller, dies alles unter eigenem Namen abspeichern kann. Also den Ablauf und die Daten in den unter geordneten Rezepturen, so dass er die Automatik jeder Zeit wiederholen kann.
Geht so was überhaupt oder muss ich das ganz anders lösen?
Danke jetzt schon für die hilfreichen Tipps..
Grüße Carsten


----------



## marlob (23 April 2008)

Welche HMI, welche SPS?


----------



## Carsten77 (23 April 2008)

Oh, Entschuldigung, das Wichtigste hab ich vergessen..

Ist ein MobilePanel 170 und eine VIPA CPU 215NET, die sich ganz normal über SIMATIC programmieren lässt.


----------



## Carsten77 (5 Mai 2008)

Hat wirklich gar niemand eine Idee oder eine Hilfestellung zu dem Thema?

Danke
Carsten


----------



## Larry Laffer (5 Mai 2008)

Das geht bestimmt ... nur hat augenscheinlich keiner dazu etwas in der Schublade liegen ...
Ich würde für so etwas aber grundsätzlich eine Runtime heranziehen und mir dann meine selbst erstellten Datensätze auf Festplatte hinterlegen.
Ich weiß nicht, ob ein Mobile-Panel dafür die richtige Wahl ist ...

Gruß
LL


----------



## vierlagig (5 Mai 2008)

also die Rezepturverwaltung am MP270 (welches mittlerweile gestrichen ist ) ist normal ausgeprägt, wie man *hier* nachlesen kann... also es sollte mit ein paar Datenschubsereien und entsprechenden Datenbausteinen möglich sein ... ich sehe das Problem also weniger im MP, welches mit WinCCflex ja einiges an Möglichkeit zur Verfügung stellt, so hat das MP Rezepturverwaltung, Script, Datenmanagment auf unterschiedlichen Datenträger z.B. auch Netzlaufwerken und diverse andere Spielereien, die es auszunutzen gilt, eher in der VIPA  ... aber jetzt so ins blaue hinein zu sagen: "Mach das so, so und so!"? Nee, da erinner ich mich gern an einen bald Ex-Kollegen der immer zu sagen pflegt "Ich sag nich so oder so, am Ende kommt einer und sagt ich hätte so oder so gesagt!" ... also stell mal einen oder mehrer Lösungsvorschläge zur Diskussion, der Rest sollte sich aus der Diskussion ergeben.

[edit] MP170 soll es sein, aber irgendwie...naja...s.u.[/edit]


----------



## marlob (5 Mai 2008)

vierlagig schrieb:


> also die Rezepturverwaltung am MP270 (welches mittlerweile gestrichen ist ) ist normal ausgeprägt, wie man *hier* nachlesen kann... …



@VL siehe hier


Carsten77 schrieb:


> …
> Ist ein MobilePanel 170 ...



[EDIT]sehe gerade, das wenigstens der Link zum MP170 zeigt    [\EDIT]


----------



## vierlagig (5 Mai 2008)

aber das Dokument ist trotzdem vom 270... versteh einer diesen *Siemens-Beitrag* 

[edit] komische siemens-dokumentationswelt ... bei mir kommt da heut nur kokolores bei raus[/edit]


----------



## marlob (5 Mai 2008)

vierlagig schrieb:


> ... ich sehe das Problem also weniger im MP, welches mit WinCCflex ja einiges an Möglichkeit zur Verfügung stellt, so hat das MP Rezepturverwaltung, Script, Datenmanagment auf unterschiedlichen Datenträger z.B. auch Netzlaufwerken und diverse andere Spielereien,
> …


Kann das MP170 wirklich Scripte verarbeiten. Ich müsste auch nachlesen aber ich meine nicht


----------



## marlob (5 Mai 2008)

vierlagig schrieb:


> aber das Dokument ist trotzdem vom 270... versteh einer diesen *Siemens-Beitrag*


Weshalb, es wird doch das Handbuch vom 170er angezeigt


----------



## vierlagig (5 Mai 2008)

marlob schrieb:


> Kann das MP170 wirklich Scripte verarbeiten. Ich müsste auch nachlesen aber ich meine nicht



hier nun das richtige *Handbuch

*und die Erkenntnis: marlob könnte mal wieder recht haben ... deswegen: nicht so oder so!


----------



## Carsten77 (5 Mai 2008)

Danke schon mal für die ein oder andere Mühe.

Lösungsansatz von mir: 
Man kann 10 verschiedenen Runden definieren. = 10 Rezepturen
In einer 11. Rezeptur legt man per Merker fest wie oft jede der 10 Runden wiederholt werden oder eben auch nicht. 0 = diese Definition auslassen z.b. 3 = diese Runde 3x wiederholen.
Nachteil bei dieser Lösung, ich hab keine Ahnung wie man dann diese Version der Automatik speichern kann. Man kann zwar jede Rezeptur für sich speichern, aber nicht alles auf einmal unter einem Namen oder Datum.
Hat da jemand eine Idee oder eine Lösung?
Wie gesagt, ich bin Anfänger und kann deshalb nicht auf innerhalb einer oder zwei Wochen zig Lösungsansätze für alles finden da ich leider auch nicht pausenlos daran arbeiten kann.

Lösungsansatz 2:
Man schreibt keine Rezeptur, sondern Datenbausteine, die man direkt per Eingabe am Panel (E/A-Felder) verändert und die in der CPU liegen.
Ich mein glaube leider nur zu wissen, dass man irgendwie Datensätze von Datenbausteinen per SCL auslesen und abspeichern kann. Wie und ob das geht weiß ich leider auch nicht.
Ich könnte mir das so vorstellen, einen Datenbaustein mit den sagen wir 10 Variablen x 10 Runden = 100 Variablen + je Runde eine Variable ob und wie oft einen Runde wiederholt wird. Sagen wir also 110 Variablen.
Beim "speichern" den Datensatz auslesen und unter gewähltem Namen oder Datum ablegen. Nur wie und wohin?

Könnte das so funktionieren wenn man Rezepturen mal vernachlässigt?

Trotzdem würde mich mal interessieren, ob man sowas nicht doch recht "einfach" per Rezeptur lösen kann. Also wenn jemand einen Idee hat?


----------



## Larry Laffer (5 Mai 2008)

Die Rezeptur erscheint mir für dieses Vorhaben nicht die richtige Lösung zu sein. Ich würde mich da auch an DB's orientieren, die ich variabel von der Visu aus beschreibe. An diesem Punkt fehlen deinem System aber die Möglichkeiten. Hierfür würde ich die VB-Script-Fähigkeiten der Runtime und deren Abspeicher-Fähigkeiten nutzen.

Wenn du für das Daten hin- und herschaufeln in der SPS SCL einsetzen kannst / willst ist das für weitere Dinge sicher hilfreich ...

Gruß
LL


----------



## marlob (5 Mai 2008)

Carsten77 schrieb:


> …
> 
> Trotzdem würde mich mal interessieren, ob man sowas nicht doch recht "einfach" per Rezeptur lösen kann. Also wenn jemand einen Idee hat?


Das Problem sind die bei dir eingesetzten Komponenten (HMI, SPS usw.)
Für andere Panels, SCADA usw. gibt es Rezepturverwaltungen mit Auftragssteuerung. In deinem Fall wird dir nichts anderes übrig bleiben, als selbst etwas zu programmieren. Die Idee mit den Datenbausteinen geht schon in die richtige Richtung. Siehe auch Beitrag von LL


----------



## marlob (5 Mai 2008)

Ein Lösungsansatz könnte folgendes sein.
Du legst 2 Rezepte an.
Ein Rezept mit deinen 10 Variablen

```
Rezept 1:
Nummer
Wert_01
Wert_02
..
Wert_10
```
dafür legst du 11 Variablen und einen DB an. Der DB enthält dann n-mal die Struktur deines Rezeptes. Abhängig von der Rezeptnummer schreibst du die Werte aus den Variablen an die richtige Stelle im DB.

Ein 2. Rezept legt nun die Anzahl der Runden fest.

```
Rezept 2:
Name
Rezept_Runde_01
Anzahl_Runde_01
Rezept_Runde_02
Anzahl_Runde_02
..
Rezept_Runde_n
Anzahl_Runde_n
```
Hier legst du soviele Werte an, wie du Runden fahren willst.
Für jede Rezeptvariable brauchst du dann wieder jeweils eine Variable (also 2*n+1) in der SPS.

Damit kannst du mit deinem 1. Rezept deine Maschinenvariablen ändern.
Im 2. Rezept kannst du dann verschiedene Runden anlegen und sie unter einem Namen speichern.
Damit kannst du dann mit deinem 2. Rezept die Maschine starten. Du liest dann erst die Werte von Rezept_Runde_01 und Anzahl_Runde_01 aus. Abhängig vom Wert in Rezept_Runde_01 liest du deine Werte aus dem Datenbaustein für das Rezept 1 usw.

Ich hoffe das Prinzip ist klar und ich hoffe das ich dich richtig verstanden habe


----------



## Carsten77 (5 Mai 2008)

Danke für den Ansatz, den habe ich mir nun auch überlegt. Einen Datenbaustein, die die Rezepte schreiben. Hab dann wie du schreibst über den zweiten die Möglichkeit die Rundenanzahl und die Rezepturnummer zu wählen. Vielleicht sogar die Reihenfolge der Rezepturnummern ändern.
Ist im Prinzip fast die Lösung, nur alle Rezepturen sprich die Daten im DB + die Rezeptur 2 in einem Schritt unter einem Usernamen+Datum zu speichern  und sie so auch wieder aufrufen zu können geht wenn ich das Prinzip richtig verstanden habe nicht. Oder?

Ich habe mir nun gedacht, warum schreibe ich nicht einfach alle Variablen(beschreiben wir mal eine Runde als Sequenz, die man beliebig oft und die Sequenzen in beliebiger Reihenfolge für die Automatik festlegen könnte) zu sagen wir 10 verschiedenen Sequenzen in einen Rezeptur, die in einen DB auf der CPU schreiben kann. Inklusive der Variablen, Wiederholungsanzahl / Sequenz, Reihenfolge bzw. Startnummer der Sequenz.

Nun stellt sich für mich schnell die Frage,  10 Seqenzen x 12 Variablen von denen die Hälfte Wörter oder Doppelwörter sind, passt das in eine Rezeptur bzw. wieviel kann ich in den auf der CPU liegenden DB schreiben?

Wenn das nämlich geht, dann wäre ich alle Sorgen los und hätte die Lösung..


----------



## Larry Laffer (5 Mai 2008)

Das passt auf jeden Fall in den DB.
Ich meine, die Grenze läge da bei 32 k Bytes ...
Gruß
LL


----------



## vierlagig (5 Mai 2008)

Larry Laffer schrieb:


> Ich meine, die Grenze läge da bei 32 k Bytes ...



auch bei VIPA  ... das handbuch schweigt sich darüber aus ... aber die paar werte, die Carsten da ablegen will passen sicher ...


----------



## Larry Laffer (5 Mai 2008)

vierlagig schrieb:


> auch bei VIPA  ... das handbuch schweigt sich darüber aus ...


 
Das könnte ich mir aus Kompatiblitätsgründen so vorstellen ...


----------



## Carsten77 (5 Mai 2008)

Also ich hab mal nachgeschaut, die 200er Reihe von VIPA wird wie eine 315er CPU von Siemens konfiguriert und deshalb gilt für diese wie bei der Siemens CPU 16kB für einen DB.

Nur falls das jemand mal wissen muss.

Also um noch mal Rückmeldung zu geben. 
Ich werde nun mal versuchen, alle Variablen einfach in eine Rezeptur zu schreiben. Und die mit dem dazu gehörigen DB auf der CPU verbinden, dann müsste ich die eine Rezeptur ja auf eine CF-Card im Panel speichern können und mein Problemn wäre gelöst. Den Rest muss ich dann eben per SCL auf der CPU lösen.

Denkt ihr das geht so?
Danke und Grüße 
Carsten


----------



## Larry Laffer (5 Mai 2008)

Je nachdem wie fit du in SCL bist und wie das Ziel letztendlich genau aussehen soll. Ich denke aber, dass du 1. mit SCL auf dem richtigen Weg bei der Sache bist und 2. dir nicht viel was anderes übrig bleiben wird, wenn es so ungefähr wie schon beschrieben werden soll.

Gruß
LL


----------

