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

Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 48 von 48

Thema: Char umwandeln in Integer

  1. #41
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... am Besten symbolisch ...

    Du erzeugst in deinem DB eine Variable vom Typ String (mit der richtigen Größe). Du gibst dem DB einen symbolischen Namen (z.B. "myDB") und dann kannst du dem FC den String als Parameter in der Form "myDB".myString übergeben. Du mußt aber daran denken, dass der String initialisiert sein will - das heißt, dass im 1.Header-Byte des String dessen deklarierte Länge drinstehen muss (also von dir händisch dort eingetragen).

    Zu dem Thema würde übrigens auch die Forums-Suche so Einiges ausspucken ...

    Gruß
    Larry

  2. #42
    Registriert seit
    20.04.2010
    Beiträge
    65
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo!

    Ich habe auf der Suche nach einer Lösung für mein Problem diesen Thread hier gefunden und poste das hier einfach mal

    Prinzipiell habe ich bei mir einen Messumformer der mit einen 7 Byte langen rückgabe Wert in Form zurückgibt. Auch dieser ist nach meinen Informationen im ASCII Code codiert. Soweit so gut!
    Das Hauptproblem was ich hatte war ein laufendes Komma zeichen. Sprich es ist nicht bekannt in welchem Byte es nun steht. Dafür hab ich vor jedem übertragen eine Überprüfung mit dem Dezimalwert für das Komma aus der ASCII tabelle eingefügt.
    Leider hab ich den Messumformer auch nicht zum testen, was mich ja nicht daran hindert ne kleine Testumgebung zu basteln.
    Da hab ich also angefangen mein Programm zu schreiben, welches dem hier gepostetem Beispiel von Kai sehr ähnlich aussieht.
    Mein Hauptproblem ist allerdings dass die Werte von Step 7 in Hex umgerechnet werden und somit komplett falsche Werte entstehen.
    Wenn ich also in meinem DB in eines der 7 Datenbytes (sind als char deklariert) eine '0' schreibe, dann habe ich den Wert 30 mit dem weiter gerechnet wird.
    Zum mindestens steht das so im beobachten Modus der AWL Tabelle.
    Woran kann das liegen?
    Jemand ne Idee wo mein Denkfehler liegt?

  3. #43
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von motamas Beitrag anzeigen
    Wenn ich also in meinem DB in eines der 7 Datenbytes (sind als char deklariert) eine '0' schreibe, dann habe ich den Wert 30 mit dem weiter gerechnet wird.
    0dez = 30char
    1dez = 31char
    ...

    http://de.wikipedia.org/wiki/America...on_Interchange
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    0dez = 30char
    1dez = 31char
    ...


    '0' Char ^ 30 Hex ^ 48 Dez
    '1' Char ^ 31 Hex ^ 49 Dez
    ...
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  5. Folgender Benutzer sagt Danke zu jabba für den nützlichen Beitrag:

    vierlagig (07.03.2011)

  6. #45
    Registriert seit
    20.04.2010
    Beiträge
    65
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für die super schnelle Antwort ;D
    Dieser Punkt ist mir allerdings schon klar Nur versteh ich nicht warum er dann auch mit 30 rechnet als hex bzw. 48 in dez.
    Denn in meiner Tabelle AWL Tabelle steht wenn ich eine '0' eingegeben habe:
    Operation - Daten - VKE - STA - Standard
    L DB1.dbb0 (Datenbyte) 1 1 30
    ITD 1 1 30
    L L#0 1 1 0
    -D 1 1 30
    L L#1 (1er-Stelle) 1 1 1
    *D 1 1 30
    L DB1.dbd50 (Daten) 1 1 0
    +D 1 1 30
    T DB1.dbd50 (Daten) 1 1 30

    Somit steht in dem DINT Daten eine 30 wo aber eine Null stehen sollte. Das wirkt sich dann so aus dass wenn ich die Daten auslesen möchte eine 48 im DB steht. Wie bekomme ich das weg sodass da dann die 0 steht ;D

    Danke
    Geändert von motamas (07.03.2011 um 15:04 Uhr)

  7. #46
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Schau dir die Tabelle an, dann wirds vielleicht klarer

    http://www.torsten-horn.de/techdocs/ascii.htm
    Wenn ich einen meiner Finger in eines deiner Nasenlöcher stecke, haben wir beide nen Finger in der Nase

  8. #47
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von jabba Beitrag anzeigen


    '0' Char ^ 30 Hex ^ 48 Dez
    '1' Char ^ 31 Hex ^ 49 Dez
    ...
    ja, natürlich ist deine darstellung richtiger
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  9. #48
    Registriert seit
    20.04.2010
    Beiträge
    65
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So danke euch für die schnellen Links. Ich hab mein Problem gefunden, welches darin lag dass ich anstatt von L#48 L#0 abgezogen habe.
    Dadurch wird dann wohl genau diese Umrechnung ermöglicht.
    Danke nochmal!

Ähnliche Themen

  1. INT oder DINT in CHAR/BYTE Umwandeln
    Von MAVI im Forum Simatic
    Antworten: 41
    Letzter Beitrag: 29.04.2016, 12:51
  2. Antworten: 25
    Letzter Beitrag: 15.06.2011, 12:14
  3. Integer in Char Array wandeln ?
    Von Power_Pete im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 28.01.2010, 15:26
  4. Array of Char umwandeln?
    Von thomzur im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.02.2008, 17:06
  5. REAL in Integer umwandeln
    Von dummyuser im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.10.2006, 14:59

Lesezeichen

Berechtigungen

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