TIA Mithilfe eines Barcode Scanners ein Rezept auswählen

SPS'ler

Level-2
Beiträge
139
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

Ich habe folgende Hardware an meiner Anlage: S7-1212C mit einem KTP900 Basic 2. Generation. Auf dem KTP besteht eine Siemens Rezepturverwaltung.

Mein Vorhaben ist nun folgendes:
Da die Liste der Rezepte zurzeit zu lang wird und es mühselig wird die Rezepte auszuwählen, soll über einen Barcode Scanner (vermutlich Keyence SR-G100 über Profinet) der im Barcode hinterlegte Rezeptname eingelesen werden. Wenn dieses geschehen ist, soll die SPS die eingelesene Nummer erkennen und die richtigen Rezeptdaten auswählen. Soweit erstmal mein Plan.

Meine Frage wäre nun, kommt die SPS an den Datenbereich des HMI‘s um die passenden Daten einzustellen? Oder gibt es Befehle die dieses veranlassen können?
Habt ihr so ein Vorhaben schon einmal lösen können? Das KTP kann nicht scripten. Bei einer Lösung über das HMI habe ich Angst das es zu Fehlern kommt (weil z.B. das falsche Eingabefeld ausgewählt ist oder Ähnliches).

Vielen Dank für eure Unterstützung.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

allerdings muss ich dann ja irgendwie alle Rezeptnamen in einen DB kriegen (welcher sich laufend aktualisieren kann durch Neu erstellte Rezepte). Also müsste ich zusätzlich zu einem neuen Rezept die Nummer in den DB schreiben? Gibt es dafür einen Befehl?
 
Ich verwende keine Rezepte, deshalb weiss ich nicht obs ganz der richtige Beitrag ist. https://www.sps-forum.de/threads/wincc-steuerungsauftrag-70.54376/
Hier wird erklärt wie man per Steuerungsauftrag ein Rezept laden kann. Der Scanner muss dann nur alle möglichen Rezepte vergleichen ( in einem DB hinterlegt) und den entsprechen Wert in die Auftragsnummer schreiben und den Auftrag starten.
Benutzt du denn was anderes als Rezepte oder generell keine Datensätze ?
 
Hallo spsler,

kann das basic Panel nicht bei einer VariablenÄnderung eine Aktion ausführen? z.b in den string wo du den Aufbereiteten String von der SR 1000 bei Wertänderung Lade Datensatz ausführen?

Achtung um dies sauber zu bekommen werden noch ein paar Handshakes nötig sein aber mal als Gedanken Spiel

Gruß TIA
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also man kann Rezeptdaten von der SPS aus über Steuerungsaufträge laden.
Ob die Basic Panels das können, kann ich nicht sagen (glaube aber, das geht), den dazu nötigen Bereichszeiger findet man unter Verbindungen/Reiter--> Bereichszeiger--> Steuerungsauftrag.

Hier wäre Auftrag 70

70
Datensatz in Steuerung schreiben


Parameter 1
Rezepturnummer (1-999)

Parameter 2
Datensatznummer (1-65535)

Parameter 3
-

Allerdings geht das über die Rezeptnummer + Datensatznummer, nicht über den Namen.
Möglichkeiten:

1. Du nimmst als Scancode nicht den Rezeptnamen, sondern die Nummer.
2. Du lädst einen Code nach dem anderen, bis Rezeptname = Scanname. (Kann dauern)
3. Du pflegst einen DB, der extra Rezeptname und Rezeptnummer enthält, so dass du den NAmen in der SPS aus diesem DB heraussuchst und anschließend den Rezeptdatensatz lädst.

Hatte vor Jahren mal einen kleinen Baustein geschrieben, kann ich bei Bedarf auch raussuchen.
 
Hallo spsler,

kann das basic Panel nicht bei einer VariablenÄnderung eine Aktion ausführen? z.b in den string wo du den Aufbereiteten String von der SR 1000 bei Wertänderung Lade Datensatz ausführen?

Achtung um dies sauber zu bekommen werden noch ein paar Handshakes nötig sein aber mal als Gedanken Spiel

Gruß TIA
Ein Interessanter Gedanke, allerdings muss das HMI dann ja trotzdem den richtigen Datensatz auswählen, was ja vermutlich wieder nur über die Datensatznummer funktioniert.
 
Also man kann Rezeptdaten von der SPS aus über Steuerungsaufträge laden.
Ob die Basic Panels das können, kann ich nicht sagen (glaube aber, das geht), den dazu nötigen Bereichszeiger findet man unter Verbindungen/Reiter--> Bereichszeiger--> Steuerungsauftrag.

Hier wäre Auftrag 70



Allerdings geht das über die Rezeptnummer + Datensatznummer, nicht über den Namen.
Möglichkeiten:

1. Du nimmst als Scancode nicht den Rezeptnamen, sondern die Nummer.
2. Du lädst einen Code nach dem anderen, bis Rezeptname = Scanname. (Kann dauern)
3. Du pflegst einen DB, der extra Rezeptname und Rezeptnummer enthält, so dass du den NAmen in der SPS aus diesem DB heraussuchst und anschließend den Rezeptdatensatz lädst.

Hatte vor Jahren mal einen kleinen Baustein geschrieben, kann ich bei Bedarf auch raussuchen.
Also man kann Rezeptdaten von der SPS aus über Steuerungsaufträge laden.
Ob die Basic Panels das können, kann ich nicht sagen (glaube aber, das geht), den dazu nötigen Bereichszeiger findet man unter Verbindungen/Reiter--> Bereichszeiger--> Steuerungsauftrag.

Hier wäre Auftrag 70



Allerdings geht das über die Rezeptnummer + Datensatznummer, nicht über den Namen.
Möglichkeiten:

1. Du nimmst als Scancode nicht den Rezeptnamen, sondern die Nummer.
2. Du lädst einen Code nach dem anderen, bis Rezeptname = Scanname. (Kann dauern)
3. Du pflegst einen DB, der extra Rezeptname und Rezeptnummer enthält, so dass du den NAmen in der SPS aus diesem DB heraussuchst und anschließend den Rezeptdatensatz lädst.

Hatte vor Jahren mal einen kleinen Baustein geschrieben, kann ich bei Bedarf auch raussuchen.
Ok, das klingt auch interessant. Ja wäre super wenn du mir in die Richtung ein wenig helfen könntest. Dann muss ja nur vorher festgelegt werden, welcher Datensatz welche Nummer bekommt. Dann darf nur ein Löschen nicht möglich sein, sprich der ganze Löschen Button sollte herausgenommen werden. Sonst würde sich ja alles verschieben. Wenn du ein Beispiel hast wäre das Super.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein Interessanter Gedanke, allerdings muss das HMI dann ja trotzdem den richtigen Datensatz auswählen, was ja vermutlich wieder nur über die Datensatznummer funktioniert.
Hallo Sps ler,

dies geht auch über den Namen zumindest Projektiert werden kann dies auch für Basic Panels hier ist ein String bei diesem bei Wertänderungen eine Funktion ausgeführt wird z.b einen neuen Datensatz laden über den Status bekommst in der Sps dann mit ob es funktioniert hat oder nicht.
 

Anhänge

  • 3B93A000-84FD-4CBB-A48B-F927553B0DC0.jpeg
    3B93A000-84FD-4CBB-A48B-F927553B0DC0.jpeg
    74,1 KB · Aufrufe: 63
  • 92BB8281-0DFB-4954-9BC3-1B90C9252C57.jpeg
    92BB8281-0DFB-4954-9BC3-1B90C9252C57.jpeg
    284,9 KB · Aufrufe: 58
Hallo Sps ler,

dies geht auch über den Namen zumindest Projektiert werden kann dies auch für Basic Panels hier ist ein String bei diesem bei Wertänderungen eine Funktion ausgeführt wird z.b einen neuen Datensatz laden über den Status bekommst in der Sps dann mit ob es funktioniert hat oder nicht.

Achsoo ok, also wird das Barcode-Ergebnis (Rezeptname) bei dem Scann Vorgang in einen DB geschrieben.

Dann wird der Wert aus dem DB in eine Variable geschrieben die dann als Rezeptname zum Laden verwendet wird.

Da sich der Wert der Variable ändert, wird hierdurch der passende Datensatz geladen. Ist doch so dein Gedanke oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo Sps ler,

ganz genau!

wir verwenden halt immer Advancded Panels mit einem Script.

wir hatten das aber auch schon so ähnlich. würde dir aber raten wegen der S7 1200 ( kein Zykluskontrollpunk) das laden nicht mit dem String zu starten sondern mit einem Bit Starten, also den String und das Bit auf Zyklisch vortlaufend lesen Stelle. und das Start Bit um 500ms verzögern nachdem du den String geschrieben hast.

mfg Tia
 
@Wincctia
ich stehe aktuell auch vor so einem Problem. Ich bekomme von einem SICK Scanner aus einem QR Code einen langen String. Aus diesem suche ich die 13 stellige SAP Materialnummer heraus und habe die dann als String anstehen. Ich wollte zuerst den String in Hex wandeln und dann dadurch die Rezepturverwaltung im Comfort Panel aufrufen, doch ich habe gesehen, dass die Variable nur bis 65... geht. Deine Ansatzweise finde ich irgendwie interessanter, kannst Du mir mal hierzu ein Beispiel geben?

Gruß

Jürgen
 
Zuletzt bearbeitet:
Hallo Jürgen

meinst du mich?
Was würdest du als Beispiel brauchen? Könnte dir ein Paar Fotos machen bei Bedarf. Kann dir leider kein Projekt von der Arbeit hier hochladen weil unsere PGs keinen Internet Zugang haben.

Gruß Tia
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ja sorry meinte Dich, Habe mich verschrieben 🙃 Ich steige aktuell noch nicht dahinter wie Du das mit dem String aufrufst. Wie gesagt ich habe einen 13 stelligen String und muss dem ja irgendwie eine Nummer für die Rezepturverwaltung sozusagen aufdrücken, damit er mir die richtige Rezepturen lädt. Ich habe heute schon so viele Varianten getestet, das ich bald nimmer weiß was ich noch testen soll.
 
Hallo Jürgen,

ich versteh, als Rezeptnummer wirst du mit deiner 13 Stelligen Sap Nummer nicht verwenden können. Ich verwende unsere 7 Stellige SAP Numme ( bei dir halt 13 Stelllig) als Name für das Rezept. Dies kannst du dann als Rezept Name verwenden. Ich mache dir morgen ein Foto.

Gruß Tia
 
Zurück
Oben