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

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 42

Thema: INT oder DINT in CHAR/BYTE Umwandeln

  1. #11
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vierlagig Beitrag anzeigen
    die zeichen 1234 sehen HEX so aus: 31 32 33 34
    da das da offensichtlich schon ein string ist bzw. ein array of char, was ja nichts anderes als ein string ist, mal danach suchen.
    die null ist übrigens 30...
    jo. hab den hexwert dann auf ein SUB_I gelegt und 48(dez) abgezogen, dann müsste es ja wieder passen mit 1 2 3 4, es kommen aber leider nur wirre werte raus...

  2. #12
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Aber Achtung, FC 11 und Freunde sind aber nur auf S7-Strings anzuwenden, also muß er die Daten erst in einen S7-String umkopieren, sonst funzt das nicht.
    das verfahren wirkt irgendwie noch komplizierter. klappt es mit dem "FIND" auch, wenn sich das array jeden zyklus ändert. also statt 1 2 3 4 --> 3 1 2 2 ?

  3. #13
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Zitat Zitat von Limette Beitrag anzeigen
    jo. hab den hexwert dann auf ein SUB_I gelegt und 48(dez) abgezogen, dann müsste es ja wieder passen mit 1 2 3 4, es kommen aber leider nur wirre werte raus...
    Kann ich nachvollziehen....

  4. #14
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Verpolt Beitrag anzeigen
    Kann ich nachvollziehen....
    na gut. dann klär mich mal auf.

  5. #15
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Kurz gesagt, ein Zeichen ASCII ( CHAR ) ist ein Byte.
    Wenn ich richtig liege geht der SUB_I auf Worte, und ein Wort sind zwei(!) Byte.
    Deswegen geht eine Subtraktion von DEZ 48 = 30HEX schief.

    Es geht dann wenn du von einem BYTE diese 48DEZ abziehst. für EINE Stelle. NICHT für vier.

    Bei vier must Du die Bytes einzeln berechnen, ihnen eine Wertigkeit zuteilen, in einem Zwischenpuffer zusammennageln und dann ausgeben.
    Das Grauen lauert in der Zwischenablage !!

  6. #16
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Noch `n Hinweis:
    Das geht erst mal nur wenn ausschliesslich ASCII codierte ZAHLEN in der Zeichenkette stehen. wenn dort auch noch andere Zeichen vorkommen brauchst Du noch eine Fallprüfung auf [ Zahl im Byte ]
    Das Grauen lauert in der Zwischenablage !!

  7. #17
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von dtsclipper Beitrag anzeigen
    Kurz gesagt, ein Zeichen ASCII ( CHAR ) ist ein Byte.
    Wenn ich richtig liege geht der SUB_I auf Worte, und ein Wort sind zwei(!) Byte.
    Deswegen geht eine Subtraktion von DEZ 48 = 30HEX schief.

    Es geht dann wenn du von einem BYTE diese 48DEZ abziehst. für EINE Stelle. NICHT für vier.

    Bei vier must Du die Bytes einzeln berechnen, ihnen eine Wertigkeit zuteilen, in einem Zwischenpuffer zusammennageln und dann ausgeben.
    jo. schon immer nur eine zahl auf einmal. würde halt 4 netzwerke mit fantas code bauen und hätte dann auf 1 oder 2 oder 3 oder 4 hingeschoben. klappt aber so leider nicht.

  8. #18
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo,
    stehen die 4 Zahlen immer ganz Rechts in der Zeichenkette ?
    Wenn nein, sind es immer die führenden Nullen, die weg müssen ?

    Ganz grundsätzlich würde ich aus dem Array_of_Char einen String machen und mit den String-Operationen die Sache bearbeiten - das bringt es m.E. am Weitesten.

    Gruß
    Larry

  9. #19
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Zitat Zitat von Limette Beitrag anzeigen
    jo. schon immer nur eine zahl auf einmal.
    Erst mal richtig.

    Zitat Zitat von Limette Beitrag anzeigen
    würde halt 4 netzwerke mit fantas code bauen ....
    Wird nicht gehen.
    Fantas Code ist für eine andere Applikation. Nämlich genau andersrum.
    Und Du musst ermitteln wann was wohin geschoben wird.
    Das Grauen lauert in der Zwischenablage !!

  10. #20
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    stehen die 4 Zahlen immer ganz Rechts in der Zeichenkette ?
    Wenn nein, sind es immer die führenden Nullen, die weg müssen ?

    Ganz grundsätzlich würde ich aus dem Array_of_Char einen String machen und mit den String-Operationen die Sache bearbeiten - das bringt es m.E. am Weitesten.

    Gruß
    Larry
    jup, die 4 zahlen stehen immer ganz rechts.

Ähnliche Themen

  1. Array of Char To DINT - ich krieg die Krise
    Von Beren im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 26.11.2009, 10:12
  2. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  3. Time_of_Day umwandeln in Int oder DInt!?
    Von Chris2k8 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 05.11.2008, 18:22
  4. Array of Char umwandeln?
    Von thomzur im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.02.2008, 17:06
  5. Dint Variable in Char zerlegen
    Von Phil im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 30.11.2007, 08:26

Lesezeichen

Berechtigungen

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