WinCCflex 2008 Rezepturanwahl über Barcode

Matze001

Level-3
Beiträge
2.814
Reaktionspunkte
573
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

bei einem zukünftigen Projekt habe ich die Aufgabe die Rezepturanwahl via Barcode zu realisieren. Sollte eigentlich kein Problem darstellen, aber meine Rezeptur ist etwas anders aufgebaut (Standard kann ja jeder)

Meine Rezepturverwaltung ist wie folgt aufgebaut:

Rezeptur Einstellungen:

Variablen Syncronisieren JA
Variablen Offline NEIN

Ich habe einen DB mit 2 Identischen STRUCTS. Die Variablen in den STRUCT für die Visu beinhaltet immer die aktuellen Daten die in der Visu sichtbar sind, die STRUCT Maschine beinhaltet die Variablen mit der die Maschine arbeitet.
Übernehmen der Rezeptur passiert durch BLK_MOV und einen Button. Soweit so schlecht. Mit diesen System bin ich bisher immer Bestens gefahren, ich habe nur die Vermutung, dass mir der Barcodescanner ein wenig Probleme bereiten könnte.

Was ich gern machen würde wäre folgendes: Der Barcodescanner scannt den Barcode in dem der Datensatzname hinterlegt ist. Es gibt im Flex eine Systemfunktion um aus einer Datensatznummer einen Datensatznamen anzeigen zu lassen.
Schön wäre es auch genau anders herrum! (Meine Rezepturauswahl arbeitet mit den Datensatznummern!).

Ein Ansatz wäre jetzt:

Den Barcode scannen
ein Script aufrufen bei Eingabe abgeschlossen
eine Schleife durchlaufen und alle Rezepturnummern (1-xxx) durchlaufen und Datensatzname auslesen und mit Eingabe vergleichen, wenn gleich -> Datensatznummer schreiben
Fertig

Ein weiterer:

Eine extra Seite für das Barcode-Scannen erstellen
Die Rezepturanwahl in diesem Fall über den Datensatznamen (nicht die Nummer) machen.
Irgendwie hinbekommen, dass die Datensatznummer trotzdem mitgezogen wird (gar nicht so einfach?!)
Fertig(?)

Hat jemand von euch schonmal diese Konstellation umgesetzt und/oder einen Tipp für mich?

Grüße

Marcel
 
Hallo Marcel,

ja ... etwas Ähnliches ... dies dann allerdings komplett um Flex herum-gebaut (also komplett ohne die Siemens-Rezeptur-Verwaltung), da ich mit den Flex-internen Funktionen das, was ich gebraucht habe, einfach nicht umsetzen konnte.
Vorteil davon : es arbeitet wie ich es haben wollte.
Nachteil davon : es macht "ein wenig" Arbeit.

Dein Barcode-Scanner (bei mir ist es ein RFID-Leser) liefert dir einen String in ein Eingabefeld (oder in eine Datei).
Da ich mich für Eingabefeld entschieden hatte gibt es erstmal das Problem mit dem Focus - das läßt sich aber lösen.
Dann gab es noch das Problem, das die Bediener gerne an so etwas herum-murkeln wollen. Also machst du ein sehr niedriges Eingabefeld mit Focus.
Liefert dir dein Scanner am Ende ein CR-LF mit, dann kann Flex das selbstständig als abgeschlossene Eingabe erkennen.

Gruß
Larry
 
Hallo Marcel,

zunächst eine Frage:
wieso arbeitest du mit zwei Strukturen und Umkopieren zwischen diesen, wenn du mit 'Variablen offline = JA' (um bei deiner Beschreibung zu bleiben) und 'Transferiere Datensatz zur Steuerung' das gleiche erreichen könntest?


Aber zu deiner eigentlichen Frage:
Ich verstehe nicht so ganz, wofür du bei deiner zweiten Variante eine extra Seite erstellen willst. Bei einem früheren Projekt habe ich den Scanner mit der Steuerung 'verbandelt' und einfach des Leseresultat als String an das HMI gesendet. Ein Script, getriggert durch die Wertänderung der Leseresultatsvariable, besorgte dann die Datensatz-/Rezept-Auswahl.


Gruß, Fred
 
Hallo,

Warum zwei Strukturen?

Ich will zum einen die Zwei vergleichen können und eine Meldung ausgeben wenn sie nicht übereinstimmen! Außerdem ist die visu nicht die einzige Quelle für Eingaben der Rezepturdaten! Es werden ein paar Werte verrechnet
Und automatisch eingetragen und können bei bedarf manuell angepasst werden. Das macht mit der Datensatz in Steuerung schreiben und zurücklesen nicht so wirklich Spaß.

Der Scanner den ich bekomme wird wohl nur als Tastatur funktionieren, also keine Chance den als String direkt in die SPS zu holen. Wie genau das dann gelöst wird mit neuer Seite etc war erstmal nur ein Ansatz

Grüße

Marcel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Marcel.

So wie du die Rezepturdaten verwendest ist eine Zwei-Strukturen-Methode natürlich nachvollziehbar, ich gehe bei Rezepturen grundsätzlich davon aus, dass deren Werte niemals berechnet werden. Daraus resultierende, berechnete Parameter sind bei mir nicht Bestandteil, sondern werden nach dem Laden immer neu ermittelt.

Zu dem Scanner: Welche Schnittstelle an welchem Gerät/Bauteil verwendest du denn? Ein Scanner selbst agiert nicht als Tastatur, es ist dann die Treibersoftware, die diese Verhalten nachbildet (etwas laienhaft ausgedrückt). Sendet der Scanner z.B. sein Leseergebnis direkt als ASCII-Zeichenfolge plus CrLf an die serielle Schnittstelle einer Steuerung, sollte die Auswertung relativ einfach machbar sein, Dasselbe gilt für eine Ethernet-Anbindung: ich habe momentan ein Euchner-EKS-Schlüsselsystem per Ethernet an eine B&R-Steuerung angebunden, wo ich mittels permanentem Pollen der Socketverbindung das 'Leseergebnis' als ASCII-Zeichenfolge empfange und danach auswerte.


Gruß, Fred
 
Hallo,

wie sxhonmal erwähnt die Technik des Scanners ist nicht das Problem!
ich komme mit beiden Versionen zurecht, weis aber noch nicht welche es wird (also ob Tastatureingabe oder String via Ethernet.

grüße

marcel
 
... wie schon geschrieben ... ich habe dann irgendwann den ganzen Siemens Rezeptur-Kram über den Haufen geschmissen und habe mir mit ein paar Scripten etwas eigenes gebaut, das so funktioniert, wie ich es brauche - und wenn sich meine Vorstellung davon ändert dann ändere ich die Scripte halt auch - ist keine Hexenwerk ... macht aber "ein bißchen" Arbeit ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das man es auch über scripte lösen kann ist mir auch klar.
Irgendwie will ich mich aber noch nicht ganz von der Rezepturverwaltung trennen, sie hat ein paar komfortable Funktionen und außerdem versteht auch jemand fremdes was da
passiert.

dann beginnt halt bald mal die Testphase wie man es lösen konnte! Ich werd dann mal berichten!

Grüße

Marcel
 
Zurück
Oben