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

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

Thema: String := '$Byte';

  1. #1
    Registriert seit
    01.11.2010
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich hoffe Ihr könnt mir weiterhelfen...

    Für eine serielle Kommunikation mit einem RFID benötige ich z.B. folgenden String := '$186'.

    Problem:
    Wie kann ich einen String mit einem '$'Byte dynamisieren?

    So gehts nicht:
    Variable : Byte := 186;
    String := '$Variable';

    Danke im Voraus!

    Grüße, Thomas
    Zitieren Zitieren String := '$Byte';  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Mal rein theoretisch:
    Du mußt das Byte in String wandeln (Dafür gibts Funktionen, z.Bsp. Int_To_String. Und dann mit einer Funktion (Concat) die Strings verbinden. Concat findest du in der Standard.Lib unter String functions.
    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

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Versuche es mal so:
    Code:
    String := CONCAT (‘$$’, BYTE_TO_STRING(Variable));
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    SirTom78 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.11.2010
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Ralle,
    Danke für die Idee, aber leider geht das nicht so einfach... Das Byte bzw. bei dir die Int Variable wird dann als dreistelliger String gewandelt => 3x Byte! Somit ist mein '$186' anschließend länger als ein Byte...


    Danke

    Grüße Thomas

  5. #5
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Sieht gut aus.
    Du solltest generell bei der Kommunikation beachten, dass ein "$" - Zeichen ein Steuerzeichen ist. Somit drauf achten, dass Du die Zeile so wie PN/DP gezeigt, schreibst.

    Interessant bei der seriellen Kommunikation können auch noch die Funktionen

    F_ToAsc
    F_TChr
    aus der TcSystem.lib

    für Dich sein.

    Gruß,
    Mac203

  6. #6
    SirTom78 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.11.2010
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo pm/dp,
    Danke für die Antwort, aber leider geht das auch nicht...
    Der Concat-Befehl macht dann einen vierstelligen String daraus => '$186'!

    Danke!

    Grüße Thomas

  7. #7
    Registriert seit
    08.01.2007
    Beiträge
    54
    Danke
    1
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Zitat Zitat von SirTom78 Beitrag anzeigen
    Für eine serielle Kommunikation mit einem RFID benötige ich z.B. folgenden String := '$186'.


    Hallo pm/dp,
    Danke für die Antwort, aber leider geht das auch nicht...
    Der Concat-Befehl macht dann einen vierstelligen String daraus => '$186'!

  8. Folgender Benutzer sagt Danke zu soma für den nützlichen Beitrag:

    PN/DP (02.09.2011)

  9. #8
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Speicheraufbau:

    Code:
    1234
    $186\0

  10. #9
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Idee

    Zitat Zitat von SirTom78 Beitrag anzeigen
    Hallo Ralle,
    Danke für die Idee, aber leider geht das nicht so einfach... Das Byte bzw. bei dir die Int Variable wird dann als dreistelliger String gewandelt => 3x Byte! Somit ist mein '$186' anschließend länger als ein Byte...
    Hallo Thomas,

    wenn das nicht gewünscht ist, verstehe ich die Frage nicht.

    Die Funktion mit „CONCAT“ ist ansonsten für solche Anwendungen wie geschaffen…
    Code:
    sTrennzeichen:= '$T';  (* vorbelegt mit Tabulator *)
    
    String := CONCAT ('$$', BYTE_TO_STRING(Variable));
    String := CONCAT (String, sTrennzeichen);  
    String := CONCAT (String, BYTE_TO_STRING(Variable_2));
    String := CONCAT (String, sTrennzeichen);  
    String := CONCAT (String, BYTE_TO_STRING(Variable_3));
    Gruß
    Chräshe
    Geändert von Chräshe (02.09.2011 um 13:26 Uhr) Grund: …war mal wieder zu voreilig.

  11. #10
    SirTom78 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.11.2010
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Chräshe,

    in deinem Beispiel ist der String dann mehrere Byte's lang!

    Ich wollte hingegen ein Steuerzeichen mit einem String. Mein Steuerzeichent (String) sieht so aus '$BA' und ist auch nur ein Byte groß!

    Danke für die Antwort!

    Ich habe das Problem mit einer Funktion gelöst!

    case Variable of
    0: String := '$01';
    1: String := '$02';
    .
    .
    .
    186: String := '$BA'
    .
    .
    .
    und so weiter!!!

    Grüße Thomas

Ähnliche Themen

  1. Byte in String wandeln
    Von matchef im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 15.10.2010, 17:03
  2. Array of Byte to String[12] ,S7
    Von sb9674 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.09.2009, 19:15
  3. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  4. Byte to String umwandeln S7-315 2PN DP
    Von Sunny4251 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 28.08.2008, 09:31
  5. Byte -> Wort->String
    Von Reblaus im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 13.12.2006, 16:35

Stichworte

Lesezeichen

Berechtigungen

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