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

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

Thema: Char(String) in WIN CC flexible anzeigen?

  1. #1
    Registriert seit
    28.01.2010
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe ein Siemens Vision Sensor System VS 130-2 mit dem ich Data Matrix Codes einlesen kann, die eingelesenen Daten landen als CHAR im DB 50 (Hab unten noch mal ein Bild eingefügt wobei ihr euch das auch sicher so vorstellen könnt).
    Die Buchstaben im Format Char möchte ich in WinCC flexible am besten in einem String darstellen. Habe schon versucht im WinCC, zum Beispiel einfach die Variable DB50.DBB0.0 anzeigen zu lassen und hatte gehofft das der Buchstabe erscheint. Das klappt aber leider nicht.
    Könnt ihr mir da einen einen Tipp geben wie das gehen könnte?

    Schon mal vielen Dank, ihr könnt mir sicher weiterhelfen.
    Angehängte Grafiken Angehängte Grafiken
    Zitieren Zitieren Char(String) in WIN CC flexible anzeigen?  

  2. #2
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Im Ausgabefeld in WinCCFlex darauf achten das Darstellung auf Zeichenkette steht.
    Die Variable unter Variablen ändern in Stringchar die Länge z.B. auf 20 setzen, sowie dann auch beim Ausgabefeld.

  3. #3
    Registriert seit
    18.10.2007
    Beiträge
    127
    Danke
    1
    Erhielt 15 Danke für 13 Beiträge

    Standard

    Zitat Zitat von jabba Beitrag anzeigen
    Im Ausgabefeld in WinCCFlex darauf achten das Darstellung auf Zeichenkette steht.
    Die Variable unter Variablen ändern in Stringchar die Länge z.B. auf 20 setzen, sowie dann auch beim Ausgabefeld.
    Eine kleine Ergänzung ist zum Gesamtverständnis noch notwendig.

    Der Variablentyp String, hat 2 führende Bytes mit Längenangaben.
    im Ersten Byte steht die max Stringlänge im 2. Byte die tatsächliche Stringlänge. Daraus ergibt sich dass der String eine Max Länge von 255 Zeichen haben kann, weil die größmögliche Zahl die sich in einem Byte darstellen lässt, 255 unsignded ist.

    Eine Variable vom Typ String mit max 20 Zeichen hat demzufolge eine Speicherbelastung von 22Byte.

    Der String wird immer Linksbündig, also beginnen mit dem zuerst auszugebenden Zeichen gefüllt. Das Längenbyte muss immer angepasst werden, sonst sieht man entweder zuwenig, oder zuviel Text, manchmal auch Müll, denn es müssen Zeichen sein die sich auch darstellen lassen.

    Ein CHAR to String Konverter ist also nicht so ganz trivial.

    Gruß Rolf

  4. #4
    eduard ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2010
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    erstmal Danke für die Antworten. Habe da aber noch einige Verständnisfragen.
    Muss ich die beiden Bytes für die Länge des Strings in meinem DB50 an erster Stelle einfügen? Denn bis jetzt werden schon ab Byte 0.0 die Buchstaben eingetragen(siehe Bild in meinem ersten Post). Wenn nein, wo muss ich die Daten für die Länge des Strings eintragen?
    Ein weiteres Problem ist, dass mein DB 502 Bytes hat, mit einem String kann man aber nur 255 darstellen, habe ich da so richtig verstanden?
    Muss ich die Länge des Strings immer vorher angeben? Denn eigentlich möchte ich Strings mit verschiedener Länge einlesen. Oder kann ich z.b. 255 angeben wenn der String nur 150 Bytes lang ist?

    Stehe im Moment noch etwas auf dem Schlauch.

    Gruß

  5. #5
    Registriert seit
    22.07.2004
    Beiträge
    749
    Danke
    41
    Erhielt 66 Danke für 47 Beiträge

    Standard

    Nein, da du ja ein Char Array ohne Längenangabe hast nimmst du für die Anzeige einfach den Datentyp "StringChar". Der hat am Anfang nämlich nicht die Längeninfos...

    Du willst aber nicht die 502 Bytes als eine Anzeige nutzen, oder?
    Im Prinzip jetzt eine Variabel vom Typ Stringchar mit der gewünschen Anzahl an Buchstaben (im Eigenschaftsfeld der Variable) anlegen und dann als Zeichenkette anzeigen
    Größer als Chuck Norris: The One and Only

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    also erstmal weiß die VS130 doch, wie lang der übertragene Datenbereich ist. Ich glaube, wenn du den komischen Siemens-Standard-FB als Hantierungs-Baustein nimmst, dann kannst du doch auch festlegen, wohin das ARRAY of CHAR geschrieben werden soll - dann nimmst du halt in dem Zielbereich eine um 2 Byte versetzte Adresse und trägst dann die Header-Info's nach.
    Ist dein String länger als 255 Zeichen, so mußt du ihn irgendwie teilen. Dafür könntest du dir aber auch eine entsprechende Routine bauen (SCL wäre dafür nicht schlecht).
    Aber "by the way" ... zeigt Flex überhaupt so lange Zeichenketten an ? Gab es da nicht eine Längenbegrenzung bei der Anzeige ? (Ich bin mir da gerade nicht sicher und kann es auch nicht überprüfen).

    Gruß
    LL

  7. #7
    eduard ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2010
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    stimmt schon, ich brauche nicht alle 502 Zeichen. Kann aber ehrlich gesagt noch garnicht sagen wieviele ich im endeffekt brauchen werde.

    @ MatMer: Falls ich es richtig ausprobiert habe geht es nicht wenn ich bei der Variable String Char angebe. Hab ein Bild angehängt in dem ihr sehen könnt wie ich die Variable eingestellt habe.

    So geht es bis jetzt nicht (
    Angehängte Grafiken Angehängte Grafiken

  8. #8
    Registriert seit
    18.10.2007
    Beiträge
    127
    Danke
    1
    Erhielt 15 Danke für 13 Beiträge

    Standard

    Zitat Zitat von eduard Beitrag anzeigen
    Hallo,

    stimmt schon, ich brauche nicht alle 502 Zeichen. Kann aber ehrlich gesagt noch garnicht sagen wieviele ich im endeffekt brauchen werde.

    @ MatMer: Falls ich es richtig ausprobiert habe geht es nicht wenn ich bei der Variable String Char angebe. Hab ein Bild angehängt in dem ihr sehen könnt wie ich die Variable eingestellt habe.

    So geht es bis jetzt nicht (
    Mit String-Arrays habe ich noch nicht gearbeitet, daher fehlt mir die Erfahrung wie sich so etwas verhält, vor allem wenn nicht darstellbare Zeichen wie 0x00 oder 0x1B (ESC) drin stehen.
    Reduziere dein Array so dass es in eine Zeile zum anzeigen passt und schreibe einige darstellbare Zeichen von Hand rein, dann siehst Du wie und ob es passt.

    Den DB 50 würde ich als Empfangspuffer für den VS130 lassen und die anzuzeigenden Zeichen in separate Strings bzw. Char-Arrays verteilen, dann gehts auch über mehrere Zeilen.
    Einen String am besten mal imn einem DB deklarien und mit Variable Beobachten die ersten Bytes anschauen, dann versteht man den String besser.

    Gruß Rolf
    Geändert von R.Blum (02.02.2010 um 09:35 Uhr)

  9. #9
    eduard ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2010
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo R.Blum,

    habe ein eigenen DB gemacht und dort selbst Buchstaben eingetragen, aber nichtmal das Anzeigen eines Bytes aus dem Char Array in WinCC klappt, zeigt im Ausgabefeld nur Rauten an. Wäre schonmal froh wenn das gehen würde. Um den String könnte man sich dann noch kümmern.

    Gruß

  10. #10
    Registriert seit
    22.07.2004
    Beiträge
    749
    Danke
    41
    Erhielt 66 Danke für 47 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    als was gibst du die Variable denn jetzt aus? als Zeichenkette? Bin heute leider nicht mehr im Büro, kann aber Morgen nachgucken wie ich alles eingestellt habe
    Größer als Chuck Norris: The One and Only

Ähnliche Themen

  1. CHAR in STRING wandeln
    Von morpheuss im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 17.08.2011, 13:29
  2. S7-1200-Array of Char in string
    Von Diplomand11 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 21.01.2011, 08:44
  3. S7-1200 String in Char
    Von fritz7110 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 13.01.2011, 16:18
  4. CHAR zusammenfassen zu einer String
    Von stepwin im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 24.04.2008, 16:46
  5. Das Array und Char/String Geheimnis...
    Von Percival im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.10.2007, 11:10

Stichworte

Lesezeichen

Berechtigungen

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