Datensatzauswahlfeld wird rückgesetzt bei Anwahl neuer Rezeptur?

egger

Level-2
Beiträge
49
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo erstmal an alle aus dem Forum.

Folgendes Problem:

In einer übergeordneten Steuerung einer Produktionslinie können Rezepturen für die Grunddaten ausgewählt werden (Produktinfo, Parameter Maschine 1, Par. Maschine 2 usw.). Es sind 6 Rezepturen.
Im Datensatz kann aus 100 verschiedenen Produktionsteilen ausgewählt werden wodurch die Rezepturen mit den produktspezifischen Daten gefüllt werden.

Beim Anwählen der Rezeptur für zB. Maschine 2 kann ich das das jeweilige Produkt aus dem Datensatz wählen. Wechsle ich nun in die Rezeptur für Maschine 3 wird mir das Datensatzauswahlfeld automatisch genullt und ich muss immer wieder das aktuelle Teil aus der Liste anwählen (bei über 100 Teilen ist da immer wieder scrollen und suchen angesagt was mit der Zeit ziemlich auf die Nerven geht).

Sollzustand sollte so sein dass Datensatzfeld sich nicht ändert bis ich ein anderes Teil auswähle.

Dachte zuerst dass die Variable von der Steuerung jedesmal genullt wird weil Steuerungs-FBs für die Verwaltung der Datenbank verwendet werden.
Habe dann mal die FBs deaktiviert doch der Datensatz wird immer noch zurückgesetzt, muss dann wohl direkt vom MP geschehen doch ich habe nichts gefunden.
Verwendet ist MP 370 mit ProTool.
Ich hoffe ihr habt das Problem verstanden und könnt mir irgendwie helfen.
 
Ich muss dir gestehen, dass ich noch nicht mit der Rezepturanzeige herumgespielt habe. Ähnliche Aufgabenstellungen habe ich bisher immer mit selbstgebauten Bildern bewältigt, wobei die Daten durchaus in der von dir beschriebenen Weise hin- und hergeschmissen werden.

In deinem Fall scheint sich die Rezepturanzeige nicht merken zu können, was du von wo zuletzt angewählt hattest. Gibt es die Möglichkeit, dass du den Index und die Quelle noch irgendwo zusätzlich hinterlegst ?
 
ja die Möglichkeit gibt es. falls es wirklich keine Einstellung dafür gibt muss ich wohl wirklich etwas umprogrammieren und den zuletzt angewählten Datensatz speichern und dann erneut übertragen. mal sehen ob das funktioniert. wird aber nur die notlösung sein.
 
ja werden wir mal sehen ob noch jemand vielleicht was weiß....
aber danke für die schnelle hilfe.
 
Das hat mich noch nicht losgelassen. Ich habe mir das jetzt mal angesehen. Der Schlüssel ist m.E. die "Variable für Datensatznummer /-Name". Hast du dort eine interne genommen ("keine Steuerung") oder geht die über die SPS ?
Außerdem - du benutzt mehrere Rezepturanzeigen, nicht war ? Wenn ja, ist die Index-Variable für alle die gleiche oder unterschiedlich ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also die Variable für Datensatznummer geht über die SPS.
mehrere Rezepturanzeigen benutze ich nicht falls du das meinst, ich benutze nur mehrere Rezepturen die alle 6 unter "Rezepturen" angelegt sind
 
durch Drücken auf das vorgegebene Auswahlfeld, dann öffnet sich die Liste und ich kann eine Rezeptur auswählen.
 
ja benutze die variable aber der datensatz soll ja nicht in abhängigkeit von der gewählten rezeptur sein.
im moment hab ich echt keinen plan. mal abwarten
 
Meiner Meinung nach musst du dir für jede deiner Rezepturen den Index "merken". Dadurch müsste erreicht werden, dass bei einem Rezeptwechsel die Steuerung noch weiss, wo sie zuletzt in dem Rezept war und damit die zugehörigen Variablen der letzten Anwahl wieder anzeigen.
(Soweit die Theorie).
Du verwendest im Augenblick ja den gleichen Index für alle unterschiedlichen Rezepte und das hat beim Rezept-Wechsel den beschriebenen Effekt zur Folge. Deine Ausgabe weiss nicht mehr, wo sie in dem Rezept zuletzt gestanden hat. Damit geht alles auf "0" und du musst erst etwas anwählen, damit du wieder eine brauchbare Anzeige hast.

Du müsstest jetzt in der "Variable für Datensatznummer /-Name" ein ARRAY-Element anlegen und dieses über die "Variable für Rezepturnummer /-Name" indexieren. Das heisst, es gibt für jedes Rezept einen eigenen Index.
Ich kann dir nicht versprechen, ob das so funktioniert, aber den Versuch wäre es m.E. schon wert ...;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also mein aktueller Datensatzname wird in der Steuerung gehalten (String)
In Abhängigkeit vom entsprechenden Bild öffne ich per Skript den entsprechenden Datensatz so dass die Daten in den Eingabefeldern sind.

Sieht in etwa so aus...

'Datensatz laden
'
'Bearbeitungsstatus der Lade und Schreibfunktionen
'2 = Systemfunktion wird gerade ausgeführt.
'4 = Systemfunktion wurde erfolgreich beendet.
'12 = Systemfunktion wurde nicht ausgeführt, weil ein Fehler aufgetreten ist.
Dim a, b
a = Rezepturname
b = Datensatzname
If Rezepturname <> "" And Datensatzname <> "" Then
LoadDataRecord a, b, SmartTags("Rezeptur\DatensatzBearbeitungStatus")
Do While SmartTags("Rezeptur\DatensatzBearbeitungStatus") = 2
'Nichts'
Loop

If SmartTags("Rezeptur\DatensatzBearbeitungStatus") = 4 Then
SmartTags("Rezeptur\RezepturEditDatensatzNamen") = Datensatzname
End If

If SmartTags("Rezeptur\DatensatzBearbeitungStatus") = 12 Then
ShowSystemAlarm "Datensatz laden fehlgeschlagen"
End If
End If
 
Zuletzt bearbeitet:
danke für die tipps

im moment hab ich frei, werd mir das demnächst nochmal auf der arbeit ansehen und mal ausprobieren.
 
Zurück
Oben