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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: FC16 Integer in String wandeln

  1. #1
    Registriert seit
    20.11.2008
    Ort
    Hochstadt
    Beiträge
    67
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    nach langem ausprobieren und lesen im Forum, bin zu keinem erfolgreichem ergebnis gekommen.

    Daher die Frage: Hat jemand schon mal die Funktion FC16 eingesetzt?
    Habe die String Variable mit verschiedenen längen probiert und auch das Kontrollbyte mit der maximalen Läne vorbelegt.
    Aber aus der FC16 kommt keine wert raus.

    Soweit mal der Aufruf:

    CALL "I_STRNG"
    I :="Daten_Teil".Tag
    RET_VAL:=#sTag

    Muss die zu beschreibende Stringvariable genau 1 Byte größer sein (wegen dem Vorzeichen) oder kann die auch beliebig größer sein.
    Vielleicht ist es ja nur ne Kleinigkeit.
    Danke schon mal.

    Gruß peraho
    Zitieren Zitieren FC16 Integer in String wandeln  

  2. #2
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von peraho Beitrag anzeigen
    ..
    Muss die zu beschreibende Stringvariable genau 1 Byte größer sein..
    2 Byte länger!

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard

    Zitat Zitat von peraho Beitrag anzeigen
    Hallo zusammen,

    nach langem ausprobieren und lesen im Forum, bin zu keinem erfolgreichem ergebnis gekommen.

    Daher die Frage: Hat jemand schon mal die Funktion FC16 eingesetzt?
    Habe die String Variable mit verschiedenen längen probiert und auch das Kontrollbyte mit der maximalen Läne vorbelegt.
    Aber aus der FC16 kommt keine wert raus.

    Soweit mal der Aufruf:

    CALL "I_STRNG"
    I :="Daten_Teil".Tag
    RET_VAL:=#sTag

    Muss die zu beschreibende Stringvariable genau 1 Byte größer sein (wegen dem Vorzeichen) oder kann die auch beliebig größer sein.
    Vielleicht ist es ja nur ne Kleinigkeit.
    Danke schon mal.

    Gruß peraho
    Und wenn du eine Temp-Var benutzt (#sTag), auf jeden Fall Byte 0 und 1 mit max. Länge und tatsächlicher Länge beschreiben, evtl. auch schon mal mit char-Werten befüllen, also die Variable initialisieren. Bin nicht sicher ob das beim Fc16 unbedingt nötig ist, aber wenn nichts geht, versuche das einmal.
    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

  4. #4
    peraho ist offline Benutzer
    Themenstarter
    Registriert seit
    20.11.2008
    Ort
    Hochstadt
    Beiträge
    67
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo marlob,

    ich bekomms einfach nicht hin. ich gehe davon aus 2 byte größer als das zu wandelnde Datenformat?

    L L#1212
    T MW 190

    CALL "I_STRNG"
    I :=MW190
    RET_VAL:=#sTag

    Die Variable #sTag hat eine Länge von 18 Zeichen: 16 Zeichen für die Größe der Wort-Variable und 2 Byte für Vorzeichen?

    Ich stell mich heut wieder blöd dran.

    Gruß peraho

  5. #5
    peraho ist offline Benutzer
    Themenstarter
    Registriert seit
    20.11.2008
    Ort
    Hochstadt
    Beiträge
    67
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Ralle werd ich nochmal ausprobieren.

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard

    Nimm ruhig mal eine viel größere Länge. in der Hilfe steht nur, daß es nicht geht, wenn der String zu kurz ist!
    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

  7. #7
    peraho ist offline Benutzer
    Themenstarter
    Registriert seit
    20.11.2008
    Ort
    Hochstadt
    Beiträge
    67
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    keine Ahnung was da noch fehlt oder falsch ist.
    Das habe ich ausprobiert:

    L P##sTag
    LAR1
    L 100
    T DBB [AR1,P#0.0]

    L 'a'
    T #sTag[1]
    T #sTag[2]
    T #sTag[3]
    T #sTag[4]
    T #sTag[5]
    T #sTag[6]
    T #sTag[7]
    T #sTag[8]
    T #sTag[9]
    T #sTag[10]
    T #sTag[11]
    T #sTag[12]
    T #sTag[13]
    T #sTag[14]
    T #sTag[15]
    T #sTag[16]
    T #sTag[17]
    T #sTag[18]
    T #sTag[9]
    T #sTag[20]


    L L#1212
    T MW 190

    CALL "I_STRNG"
    I :=MW190
    RET_VAL:=#sTag

    Die Variable #sTag hat eine Länge von 100 Zeichen.

    Hast da noch eine Idee?

    Gruß peraho

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    ich habe die mich mit den meißten der String-FC's schon herum-geärgert. Eines habe sie alle gemeinsam : Sie funktionieren nur (wie schon von Ralle beschrieben) wenn die zu verwendenden String-Variablen initialisiert sind.
    Das heißt, das mindestens die Länge der Deklaration in den String-Header einzutragen ist.

    Gruß
    LL

  9. #9
    peraho ist offline Benutzer
    Themenstarter
    Registriert seit
    20.11.2008
    Ort
    Hochstadt
    Beiträge
    67
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe die Initialisierung noch von einer Variablen abhängig gemacht, damit die Werte nicht zyklisch geschrieben werden aber das hat auch nicht geholfen.

    gruß peraho

  10. #10
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das 2. Byte des Strings auch noch beschreiben:
    Code:
    L P##sTag
    LAR1 
    L 100
    T DBB [AR1,P#0.0]
    L  20
    T DBB [AR1,P#1.0]
    .....
    ....
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

Ähnliche Themen

  1. integer 32Bit in integer 16 Bit wandeln
    Von slk230-power im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 09.11.2009, 22:35
  2. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  3. Integer in S5Time wandeln
    Von Nethacks im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.08.2009, 09:46
  4. String in einer DB nach Integer wandeln
    Von noeppkes im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 01.10.2007, 14:32
  5. Integer in S7 Zeit wandeln
    Von Anwender im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.02.2007, 10:47

Lesezeichen

Berechtigungen

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