WCF: 10 Rezepturen + 1 Datensatz möglich

Yozepherus

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

bin neu hier, drum erst mal ein Hallo!

Ich hätte eine Frage zu WinCC flexible und der Rezepturenverwaltung. Über die Suche habe ich nichts zu meinem Problem gefunden.

Ist es mit WinCCf möglich mit mehreren gleichen Rezepturen auf einen (1) Datensatz zuzugreifen?
(Ich glaube nicht und in der Hilfe finde ich nichts, aber fragen kostet ja nix :) )

Hintergrund (grob zusammengefasst): Ein Kunde hat eine Bestandsanlage mit 10 "Automaten". Die alle können Produkt 1-20 produzieren. Über das Panel möchte ich für jeden Automat Daten übergeben, was er gerade produzieren soll. Die Datensätze sind je Produkt für jeden Automaten identisch. Ich will mir einerseits die Arbeit ersparen 10 mal die gleichen Datensätze einzugeben bzw. copy/pasten. Andererseits will der Kunde eine Möglichkeit Datensätze nachzutragen. Dem kann man schlecht zumuten die Daten 10x einzugeben.
Am geschicktesten wäre es, wenn ich mit 10 Rezepturen, auf eben einen Datensatz zugreifen könnte.

Danke schon mal für die Hilfe und Gruß,
Yozepherus
 
ich denke das müsste machbar sein, die Rezepte z.b. auf einen Firmen-
Server abzulegen. Du solltest es nur Koordinieren das immer nur einer
auf das Rezept zugreift. Aber auch das ist lösbar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Helmut,
danke für die schnelle Antwort. Die Anlage arbeitet als "Insellösung" ohne Anbindung an einen PC und intern sowieso "nur" mit Profibus.
Ich bin ziemlicher WinCC-Neuling und der Einarbeitungsaufwand in deinen Lösungsvorschlag wäre mir glaub ich zu groß.
Aber nur Interessehalber: Wenn ich die Rezepturen auf einem PC ablege, dann müsste ich mir ja auch noch eine Lösung auf dem PC überlegen um die Datensätze für die Rezepturen synchron zu halten oder?

Ich glaube meine Lösung wäre das Multiplexen. Über einen Index den Automat anwählen und dann übertrage ich je nach Index aus der Rezepturenverwaltung in den entsprechenden DB. Aber scheinbar lassen sich Multiplex-Variablen nicht in Rezepturen verwenden :-/
(Zumindest steht mir meine Testvariable nicht zur Auswahl)
 
jetzt helf mir noch mal auf die sprünge, du hast 10 Automaten, sind diese
Automaten, eigene Maschinen mit eigenen Steuerungen und du willst dann
mit einen Panel Rezepturdaten auf diese verteilen?
Oder wie habe ich mir das Vorzustellen?
 
Werden alle über die gleiche SPS gesteuert. Die Daten liegen in DB1-10. Für jeden Automat einen. Es ist wie gesagt eine Bestandsanlage wo nur das Panel getauscht wird. Die Software habe ich nicht geschrieben. Bisher wurden die Daten per Hand für jeden Automaten aus einer Liste (Papier) über ein OP17 eingegeben. Auf dem neuen Panel wünscht sich der Kunde aus einer Liste anhand einer Produktnummer das Produkt auszuwählen und dann werden die Daten in den betreffenden DB geschoben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja grundsätzlich ist das möglich, du kannst versuchen es mit Multiplex-
zeiger in Flex zu lösen. Das heist du wählst dein Automat mit einen
Symbolischen Auswahlfeld aus und stellst damit den Zeiger.
Dann kannst du in dein Rezepteintrag auswählen und mit der Steuerung
Syncronisieren bzw. übertragen. Dafür gibt es in der Rezptanzeige "Buttons".
 
Wie weiter oben geschrieben habe ich es bereits mit einem Multiplex-Zeiger versucht. Nur leider verträgt sich die Rezepturenverwaltung scheinbar nicht mit Multiplex-Variablen. Ich bekomme die Variable in der Variablenauswahl gar nicht erst angezeigt...

Die Buttons habe ich schon entdeckt, bzw. mich mit der Rezepturverwaltung soweit auseinandergesetzt.

Es scheint 2 Lösungswege zu geben.
Entweder 10 Rezepte (mit fest verlinkten Variablen zu den DBs) die alle auf den gleichen Datensatz zugreifen können (geht scheinbar nicht).
Oder 1 Rezept mit einem Datensatz. Dafür sind die Variablen variabel über den Multiplex-Zeiger verlinkt. (geht scheinbar auch nicht).

*seufz*
 
eigentlich verträgt sich die Rezepturverwaltung mit Multiplex Var. ich habe
das gerade erst bei einer Anlage gemacht und zur sicherheit nocheinmal
angetestet bevor ich geantwortet habe.
Was vlt. Probleme bereiten könnte ist dein Panel (OP17 ist ja nicht gerade neu),
versuche es doch testweise mit einenen anderen...nur in Flexibel.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und danke für deine Hilfe Helmut.
Es ist schon mal gut zu hören, dass es grundsätzlich funktioniert. Das OP17 ist das alte, derzeit verbaute Panel. Das neue ist ein TP277-6".

Aus irgendeinem Grund wird mir die Multiplex-Variable in den Rezepturelementen nicht zur Auswahl angeboten. Alle anderen schon, auch die angelegte Index-Variable.

Wenn ich ein EA-Feld erzeuge habe ich die betreffende Variable zur Auswahl. Darum habe ich angenommen, dass es an der Rezepturenverwaltung liegt.
 
Hier die Screeshots. ich versuche die Multiplexfunktion in den Variableneigenschaften zu verwenden.
Einmal ein Screeshot der angelegten Variable. Der 2. Screeshot mit dem Variablenauswahlfenster in der Rezeptur.
 

Anhänge

  • MultiplexVar.jpg
    MultiplexVar.jpg
    136 KB · Aufrufe: 15
  • MultiplexVar2.jpg
    MultiplexVar2.jpg
    132 KB · Aufrufe: 12
Zuviel Werbung?
-> Hier kostenlos registrieren
es kann sein das sich bei der art des Multiplexen, die du da ausgewählt
hast deine Rezeptur sagt ich will nicht. Diese ist geeignet wenn deine
Variablen z.b. in einen Datenbaustein sehr verteilt angeordnet sind.

In deine Beispiel bietet sich eine andere Art des Multiplexen an, die ich
auch verwende und auch schneller zu parametrieren geht. Du legst
einen Zeiger an, für den gewünschten Datenbaustein. Dann ziehst du
alle Variabeln einmal aus einen Datenbaustein in flexibel rein.
Dann änderst du bei den Eigenschaften -> Adressierung den Parameter
DB von Konstant auf Multiplex. Hier kannst du jetzt dein DB Zeiger aus-
wählen.

multipex.JPG
 
Hmm... auf diesem Wege kann ich zwar die Variable an ein Rezepturelement binden, aber der Generator sagt beim Generieren:
"Variablen mit indirekter Adressierung können nicht als Rezepturvariablen verwendet werden".
Siehe Screenshot

Welche WCF-Version verwendest du?
Ich habe WinCC flexible advanced 2008 SP2
 

Anhänge

  • MultiplexVar3.jpg
    MultiplexVar3.jpg
    129,6 KB · Aufrufe: 5
Zuviel Werbung?
-> Hier kostenlos registrieren
stimmt es geht nicht, ich habe die noch mit einen Script umgeladen, so ist halt flexibel, einfach unflexibel.
Hier ein Beispiel:
Code:
'aus Rezept in die Variabeln umladen
SmartTags("Heizung_1\PID.D_SEL")  =  SmartTags("001\001-OP.PID-Rezept_daten")(0)
SmartTags("Heizung_1\PID.DEADB_W") =  SmartTags("001\001-OP.PID-Rezept_daten")(1)
SmartTags("Heizung_1\PID.GAIN")  =  SmartTags("001\001-OP.PID-Rezept_daten")(2)
SmartTags("Heizung_1\PID.I_ITL_ON") =  SmartTags("001\001-OP.PID-Rezept_daten")(3)
SmartTags("Heizung_1\PID.I_ITLVAL") =  SmartTags("001\001-OP.PID-Rezept_daten")(4)
SmartTags("Heizung_1\PID.I_SEL") =  SmartTags("001\001-OP.PID-Rezept_daten")(5)
SmartTags("Heizung_1\PID.INT_HOLD") =  SmartTags("001\001-OP.PID-Rezept_daten")(6)
SmartTags("Heizung_1\PID.LMN")  =  SmartTags("001\001-OP.PID-Rezept_daten")(7)
SmartTags("Heizung_1\PID.LMN_FAC") =  SmartTags("001\001-OP.PID-Rezept_daten")(8)
SmartTags("Heizung_1\PID.LMN_HLM") =  SmartTags("001\001-OP.PID-Rezept_daten")(9)
SmartTags("Heizung_1\PID.LMN_LLM") =  SmartTags("001\001-OP.PID-Rezept_daten")(10)
SmartTags("Heizung_1\PID.LMN_OFF") =  SmartTags("001\001-OP.PID-Rezept_daten")(11)
SmartTags("Heizung_1\PID.MAN")  =  SmartTags("001\001-OP.PID-Rezept_daten")(12)
SmartTags("Heizung_1\PID.MAN_ON") =  SmartTags("001\001-OP.PID-Rezept_daten")(13)
SmartTags("Heizung_1\PID.P_SEL") =  SmartTags("001\001-OP.PID-Rezept_daten")(14)
SmartTags("Heizung_1\PID.PV")  =  SmartTags("001\001-OP.PID-Rezept_daten")(15)
SmartTags("Heizung_1\PID.PV_FAC") =  SmartTags("001\001-OP.PID-Rezept_daten")(16)
SmartTags("Heizung_1\PID.PV_IN") =  SmartTags("001\001-OP.PID-Rezept_daten")(17)
SmartTags("Heizung_1\PID.PV_OFF") =  SmartTags("001\001-OP.PID-Rezept_daten")(18)
SmartTags("Heizung_1\PID.PV_PER") =  SmartTags("001\001-OP.PID-Rezept_daten")(19)
SmartTags("Heizung_1\PID.PVPER_ON") =  SmartTags("001\001-OP.PID-Rezept_daten")(20)
SmartTags("Heizung_1\PID.SP_INT") =  SmartTags("001\001-OP.PID-Rezept_daten")(21)
SmartTags("Heizung_1\PID.TI" ) =  SmartTags("001\001-OP.PID-Rezept_daten")(22)
SmartTags("Heizung_1\PID.TM_LAG") =  SmartTags("001\001-OP.PID-Rezept_daten")(23)

Code:
'in Rezept aus die Variabeln umladen
SmartTags("001\001-OP.PID-Rezept_daten")(0)  = SmartTags("Heizung_1\PID.D_SEL") 
SmartTags("001\001-OP.PID-Rezept_daten")(1)  = SmartTags("Heizung_1\PID.DEADB_W")
SmartTags("001\001-OP.PID-Rezept_daten")(2)  = SmartTags("Heizung_1\PID.GAIN")  
SmartTags("001\001-OP.PID-Rezept_daten")(3)  = SmartTags("Heizung_1\PID.I_ITL_ON") 
SmartTags("001\001-OP.PID-Rezept_daten")(4)  = SmartTags("Heizung_1\PID.I_ITLVAL")
SmartTags("001\001-OP.PID-Rezept_daten")(5)  = SmartTags("Heizung_1\PID.I_SEL") 
SmartTags("001\001-OP.PID-Rezept_daten")(6)  = SmartTags("Heizung_1\PID.INT_HOLD") 
SmartTags("001\001-OP.PID-Rezept_daten")(7)  = SmartTags("Heizung_1\PID.LMN")  
SmartTags("001\001-OP.PID-Rezept_daten")(8)  = SmartTags("Heizung_1\PID.LMN_FAC")
SmartTags("001\001-OP.PID-Rezept_daten")(9)  = SmartTags("Heizung_1\PID.LMN_HLM") 
SmartTags("001\001-OP.PID-Rezept_daten")(10) = SmartTags("Heizung_1\PID.LMN_LLM") 
SmartTags("001\001-OP.PID-Rezept_daten")(11) = SmartTags("Heizung_1\PID.LMN_OFF") 
SmartTags("001\001-OP.PID-Rezept_daten")(12) = SmartTags("Heizung_1\PID.MAN")  
SmartTags("001\001-OP.PID-Rezept_daten")(13) = SmartTags("Heizung_1\PID.MAN_ON") 
SmartTags("001\001-OP.PID-Rezept_daten")(14) = SmartTags("Heizung_1\PID.P_SEL") 
SmartTags("001\001-OP.PID-Rezept_daten")(15) = SmartTags("Heizung_1\PID.PV")  
SmartTags("001\001-OP.PID-Rezept_daten")(16) = SmartTags("Heizung_1\PID.PV_FAC") 
SmartTags("001\001-OP.PID-Rezept_daten")(17) = SmartTags("Heizung_1\PID.PV_IN") 
SmartTags("001\001-OP.PID-Rezept_daten")(18) = SmartTags("Heizung_1\PID.PV_OFF") 
SmartTags("001\001-OP.PID-Rezept_daten")(19) = SmartTags("Heizung_1\PID.PV_PER") 
SmartTags("001\001-OP.PID-Rezept_daten")(20) = SmartTags("Heizung_1\PID.PVPER_ON") 
SmartTags("001\001-OP.PID-Rezept_daten")(21) = SmartTags("Heizung_1\PID.SP_INT") 
SmartTags("001\001-OP.PID-Rezept_daten")(22) = SmartTags("Heizung_1\PID.TI") 
SmartTags("001\001-OP.PID-Rezept_daten")(23) = SmartTags("Heizung_1\PID.TM_LAG")
 
Args...
hätte nicht gedacht, dass dieses egtl simple Problem in sowas ausartet.

Ich werde mir die Sache mit den Skripten ansehen. Allerdings übersteigt da langsam der Einarbeitungs- und Entwicklungsaufwand den Nutzen und den Zeitplan. Vieleicht finde ich ja auch noch eine andere Lösung als Rezepte.

Danke für deine Hilfe!
 
Zurück
Oben