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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Cognex Datamen erkannten Code auslesen und vergleichen

  1. #1
    Registriert seit
    14.07.2015
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    habe schon in ähnlichen Themn gesucht, jedoch nicht so recht gefunden was mir weiterhilft.
    Deshalb jetzt auf diesen weg.
    Ich habe einen Cognex Datamen DMR-302, den ich per ProfiNet mit meiner CPU315 verbunden habe.
    Dieser Scanner soll Barcodes lesen und dann im Programm vergleichen.
    Ich bekomme den ausgelesen Code in der VAT in den PEW 280 bis 286 (siehe bild) ,
    oder auch im Scanner Result DB113.dbb336-343 als Zeichen angezeigt.

    Dataman.jpg

    Jetzt meine Frage:
    Wie bekomme ich diesen gelesen Barcode als Zeichen in die Steuerung zur weiteren Bearbeitung?
    Wenn ich mir die Wörter oder Bytes in mein Programm lade bekomme ich logischerweise immer den HEX wert angezeigt!
    Kann ich diese dann auch in der Steuerung wieder zu den Zeichen umwandeln wie in der VAT um ihn dann nachher zu vergleichen?

    Sorry aber ist irgendwie blöd zu beschreibenaber ich bekomme diesen Zahlen nicht aneinander in die Steuerung ,auch nicht mit Tipps aus ähnlichen Themen.

    Vielen Dank im vorraus
    MFG
    Zitieren Zitieren Cognex Datamen erkannten Code auslesen und vergleichen  

  2. #2
    automatenkind ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2015
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn ich z.B. versuche die PEW`s in einen String zu fassen bekomme ich wieder andere Werte in denen der code auch enthalten ist, aber nicht so wie ich ihn brauche.

    Dataman2.jpg
    Geändert von automatenkind (06.08.2015 um 12:45 Uhr)

  3. #3
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Mit was und zu welchem Zweck möchtest du denn Vergleichen? Die HEX-Werte sind ja auch für jedes Zeichen einmalig. Könntest also auch die HEX-Werte vergleichen.

  4. #4
    automatenkind ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2015
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das sind Artikelnummern , die verglichen werden sollen ob Kartons und angewählter Artikel übereinstimmen.
    wollte an andererer Stelle im Programm also eigentlich nur die Artikelnummern eintragen und dann vergleichen.
    Klar würde das auch im Hex gehen, aber ich bekomme ja nicht einmal diese HEX werte hintereinander zu einem wert oder string oder ähnlichem zusammengefügt.

    Ich hätte also gerne aus diesen PEW`s oder den Bytes eine zusammenhängende Nummer , wenn das irgendwie möglich ist!
    Geändert von automatenkind (06.08.2015 um 12:05 Uhr)

  5. #5
    Registriert seit
    15.07.2008
    Ort
    Ørting Danmark
    Beiträge
    121
    Danke
    13
    Erhielt 19 Danke für 16 Beiträge

    Standard

    Wo bekomms du deine Artikelnummer her mit der du vergleichen willst?
    HMI oder haendischer eintrag in einem DB?
    aber eigentlich egal wie du kannst doch deine vergleiche mit jedem möglichen Format durchführen, also Byte, Word oder Doppelword. Oder willst du es unbedingt in einem zusammenhängenden Format durchführen?

  6. #6
    automatenkind ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2015
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erstmal vielen Dank für die schnellen Antworten!!!!
    Am HMI wird das Programm angewählt ,welches dann die Artikelnummer hinterlegt hat.
    Ich hätte dann natürlich gerne eine zusammenhängende "Artikelnummer" die ich der im Programm hinterlegten gegenüberstellen und vergleichen kann.
    Wie schon beschrieben bekomme ich diese ja in der VAT als Zeichen zu sehen, es muss doch nun möglich sein diese auch so im Programm anzuzeigen und diese EW`s aneinanderzu reihen, oder?

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Es macht eigentlich immer Sinn, eine Variable so weiter zu verarbeiten wie es ihren eigentlichen Inhalts entspricht.
    Von da her würde es m.E. schon Sinn machen, aus dem Char-Array, dass der Scanner zurückliefert, einen String zu machen und den dann mit den SPS-Funktionen (wie z.B. EQ_String) weiter zu verarbeiten.

    @TE:
    Du machst einfach folgendes :
    Du legst dir einen String an, dessen Länge ausreichend ist.
    Diesen String initialisierst du (Einträge in die Header-Bytes).
    Nun überträgst du deine Scanner-Bytes in den Nutzdatenbereich des Strings (ab Byte 2 des Strings-Anfangs).
    Fertig ...

    Gruß
    Larry

  8. #8
    Registriert seit
    15.07.2008
    Ort
    Ørting Danmark
    Beiträge
    121
    Danke
    13
    Erhielt 19 Danke für 16 Beiträge

    Standard

    Na dann mach dir doch in einem DB einen String wo du dann entsprechend deine PEW rein kopierst. musst nur dran denken die ersten Zeichen sind für die laenge des Strings. Damit, wenn du dir das zusammengebastelt hast ,kannst du aus den Standard Library den FC10 "eq_String_IEC" nehmen und deine beiden Strings vergleichen

  9. #9
    automatenkind ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2015
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für euren super Einsatz!!!
    Ich stehe da nur etwas auf dem Schlauch, habe noch nie mit Strings hantiert und bin ziemlich am Anfang beim Programmieren.
    Ich habe mir ja einen FB angelegt, indem ich eine Statische VAR als String angelegt habe. Was muss ich mir da jetzt initialisieren?
    Wie lade ich dei PEW`s in den String? Einfach L PEW... T DB...String[3,4,5 usw.]? Oder wie lasse ich die ersten beiden bytes frei?
    Entschuldigt meine Unwissenheit.

  10. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Naja ... du hast dir einen String deklariert mit der Länge 10 Zeichen (z.B.)
    Nun besteht der String aus 2 Kopfbytes - das erste gibt die deklarierte Länge an (hier müßtest du dann die 10 reinschreiben), das 2.Byte die tatsächliche Länge (das wären dann vielleicht 8 Zeichen - also der Bereich, den du wirklich davon nutzt). In den folgenden Bytes stehen dann deine Nutzdaten. Hier könntest du nun tatsächlich die Daten Byte- oder Wortweise hineinkopieren (mit L PEW xyz und T W xyz) bzw. in deinem Fall besser : du bildest dir einen Pointer auf deine Stringdeklaration und überträgst mittels des Pointers.

    Gruß
    Larry

Ähnliche Themen

  1. Uhrzeit auslesen und vergleichen
    Von Sch.junior im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 10.01.2017, 10:20
  2. NC CODE (Zeile) aus 840d auslesen
    Von Sybkal im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 14.09.2010, 15:14
  3. Code-Zeitstempel auslesen
    Von SohnVonRobotron im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 24.07.2010, 14:10
  4. Bechkoff: Uhrzeit auslesen und vergleichen
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 08.12.2007, 11:55
  5. Antworten: 21
    Letzter Beitrag: 22.05.2006, 20:19

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •