Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Results 1 to 5 of 5

Thread: Barcodescanner mit Simatic PCS 7 programmieren

  1. #1
    Join Date
    27.08.2018
    Posts
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS-Forum,

    zurzeit arbeite ich an einem Projekt für das ich einen Baustein mit Simatic PCS7 erstellen soll (in SCL).
    Der Baustein soll zur "Auswertung" von Barcodes dienen. Er soll Freigabesignale und Fehlermeldungen beinhalten. Als kurze Erklärung: Mit dem Barcodescanner sollen Säcke die manuell dem Prozess hinzugefügt werden, kontrolliert werden, ob sie sich an der richtigen Zugabestelle befinden oder gar ein falsche Produkt beinhalten.
    Die Hardwareanbindung des Scanners erfolgt per RS232 an ein Deutschmann Unigate RS (Gateway) und von dort aus per Profibus an eine 400er CPU. Dies funktioniert soweit auch.
    Das Signal des Barcodescanners empfange ich am EB512 - EB526, wobei das EB512 pro scan nur hochzählt und das letzte EBxxx (je nach Codelänge) mir 0x0D Hex ausgibt.
    Jetzt zu meiner Frage, ich habe leider absolut keine Erfahrung mit PCS7 und SCL, wie kann ich einen Baustein erstellen der mir den Code ausliest, mit einer Selbsterstellten Datenbank an Barcodes abgleicht und je nach Vergleichsstand ein Signal ausgibt für Fehler oder Freigabe?

    Viele Dank im voraus.

    Gruß

    Pacai
    Reply With Quote Reply With Quote Barcodescanner mit Simatic PCS 7 programmieren  

  2. #2
    Join Date
    29.03.2004
    Posts
    7,057
    Danke
    164
    Erhielt 2,135 Danke für 1,523 Beiträge

    Default

    Solange du nicht ein PCS7-Faceplate dazu erstellen willst oder musst, hast du da keine Besonderheiten zu beachten.
    Es gibt aber ein paar Dinge die bei eiem FB/FC zu beachten sind, dass er in CFC praktisch zu verwenden ist. Das heißt z.B. möglichst keine Array-Parameter zu verwenden, weil diese nicht verschaltbar sind.

    In deinem Fall geht es beispielsweise um die Barcodes die vermutlich irgendwo als Strings abgelegt werden oder gespeichert werden. Anstatt diese in einem Global-DB abzuspeichern, könntest du deinen Auswertebaustein in Form eines FBs mit einer entsprechenden Anzahl an Eingangsparametern von Strings erstellen. Das können dann auch gerne mal 50 Eingänge sein, was zwar erst etwas merkwürdig aussieht und auch im Programm unpraktisch handzuhaben ist, aber dafür kannst du später im CFC-Plan online alle Strings sehen und auch online mit Werten beschreiben, oder ggf. auch mit Variablen in einem Global-DB verknüpfen wenn nötig.

  3. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Pacai (30.10.2018)

  4. #3
    Pacai is offline Neuer Benutzer
    Themenstarter
    Join Date
    27.08.2018
    Posts
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke für die Antwort, sorry das ich jetzt erst Antworte :/
    Hat soweit alles geklappt.

    Hätte nur eine Frage zu dem Thema und zwar wird das Erste Byte meines eingescannten Barcodes mit einem Any-pointer erfasst und dann als String in meinem Programm weiterverarbeitet.
    Nach einer Vergleichsbearbeitung und nach Ablauf einer Zeit für ein Freigabesignal werden die Vergleichswerte wieder genullt nur hab ich jetzt das Problem das der eingelesene Barcode immernoch ansteht.
    Kann ich durch Löschen des Eingangsbytes oder der ganzen Adresse den Barcode sozusagen zurücksetzen damit ich erst erneut einscannen muss? und wenn ja wie?
    Weil das Problem ist, wenn ich meine Verarbeitung durchlaufen habe und die Signale genullt werden, aber ein "richtiger" Barcode noch ansteht ist ja gleich ein internes Freigabesignal mit 1 belegt obwohl es sag ich mal nicht gescannt wurde.
    Hoffe meine Beschreibung ist verständlich :P

    Danke für Antworten )))

    Gruß

  5. #4
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,579
    Danke
    721
    Erhielt 3,040 Danke für 2,185 Beiträge

    Default

    Du hast ja geschrieben, dass EB512 pro Scan eins hochzählt.
    Dann könntest du eine Flanke erzeugen aus einem Vergleich von EB512 und einem internen
    Merkbyte.
    Mit der Flanke, machst du deine Aktion, schreibst den String aus den EB in einen DB und schreibst EB512 in das interne Merkbyte.
    Erst wenn wieder gescannt wird, ist EB512 <> dem internen Merkbyte und du arbeitest das Programmstück wieder ab.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Pacai (31.10.2018)

  7. #5
    Pacai is offline Neuer Benutzer
    Themenstarter
    Join Date
    27.08.2018
    Posts
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Hilfe, hat auf diese Weise einwandfrei funktioniert .

    Ich hätte noch eine letzte Frage zu diesem Thema. Der Baustein soll durch einen Ausgang (Bool) mitteilen können ob der Scanner "vorhanden" ist oder beispielsweise die Verbindung verloren hat.
    Zur Info: der Scanner ist mit RS232 an ein Gateway angeschlossen und über dieses per Profibus direkt an der CPU.

    Danke für eure Hilfe

    Gruß

    Pacai

Similar Threads

  1. SIMATIC PCS 7 Schulungen
    By Grollmus GmbH in forum Werbung und Produktneuheiten
    Replies: 0
    Last Post: 23.02.2018, 14:24
  2. Step 7 S7-300 mit Barcodescanner programmieren
    By Alex95 in forum Simatic
    Replies: 6
    Last Post: 16.09.2015, 09:03
  3. Programmieren mit Simatic erlernen
    By Andy Latte in forum Programmierstrategien
    Replies: 7
    Last Post: 19.11.2008, 20:09
  4. Schleife Programmieren mit Simatic????
    By oli--pro in forum Simatic
    Replies: 26
    Last Post: 29.09.2008, 14:45
  5. Simatic S7-200 mit S7-SCL programmieren?
    By Davood in forum Simatic
    Replies: 7
    Last Post: 19.06.2008, 19:37

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •