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

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

Thema: Unterschied Array [1 .. 20] of Byte bzw. Char --> Konvertierung ?

  1. #1
    Registriert seit
    25.08.2012
    Beiträge
    352
    Danke
    39
    Erhielt 33 Danke für 31 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    was ist der Unterschied zwischen einem

    Array [1 .. 20] of Byte

    und
    Array [1 .. 20] of Char ? (1)


    Beide sind doch "je Stelle" ein Byte,

    und im Array [1 .. 20] of Char steht doch zum Beispiel für ein „A“ =65 derselbe Ascii Code wie im

    Array [1 .. 20] of Byte auch stehen würde

    Wo ist mein Gedanken Fehler? (2)


    Wie bekomme ich ein Array [1 .. 500] of Char in eine Array [1 .. 500] of Byte gewandelt oder kopiert ?
    Muss ich da jede Stelle einzeln mit Konvertierung Char CHAR_TO_BYTE bearbeiten? (3)

    "Overlay" oder "AT" gibt es für Datenbausteine offensichtlich nicht , oder doch ? (4)




    S7-1200 / Tia13 CPU1215C
    Geändert von Hesse (03.04.2016 um 14:48 Uhr)
    Zitieren Zitieren Unterschied Array [1 .. 20] of Byte bzw. Char --> Konvertierung ?  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.485
    Danke
    408
    Erhielt 868 Danke für 702 Beiträge

    Standard

    Für die SPS ist alles nur "Strom fließt" oder "Strom fließt nicht", also 1 oder 0.
    Erst durch die Deklaration als Char weiß die SPS, dass der Wert als ASCII-Code zu interpretieren ist.

    Im DB gibt's auch kein CHAR_TO_BYTE.
    Die Umwandlung mittels At must Du also analog dazu auch in einem Programmbaustein machen und nicht im DB.

  3. #3
    Hesse ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.08.2012
    Beiträge
    352
    Danke
    39
    Erhielt 33 Danke für 31 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Im DB gibt's auch kein CHAR_TO_BYTE.
    Die Umwandlung mittels At must Du also analog dazu auch in einem Programmbaustein machen und nicht im DB.
    Das ist mir klar das die Umwandlung dann in einem Programbaustein erledigt werden muss.
    Stehle aber doch irgendwie auf dem Schlauch.
    Ich finde nicht mal CHAR_TO_BYTE (FUP bei der 1200er)

    Das bedeutet der Weg geht dann auch nur über "AT" in der Baustein Schnittstelle ?
    Es gibt kein Befehlt
    Array [1] of Char --- > CONVERT --- > Array [1] of Byte


    EDIT:
    Char ---- > Convert -----> USint gibt es wohl ..... mal sehen
    Geändert von Hesse (03.04.2016 um 15:33 Uhr)

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    10.111
    Danke
    838
    Erhielt 2.976 Danke für 2.400 Beiträge

    Standard

    Ein Byte ist eine Speichergröße, welche 8 Bit aufnehmen kann. Ein Char ist eine Interpretation des Inhalts eines Bytes als Datentyp Char.

    Wofür brauchst Du denn die Konvertierung von Byte zu Char? Kann man in TIA nicht einfach von Byte zu Char MOVEn?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    09.12.2011
    Ort
    Tor zum Harz
    Beiträge
    176
    Danke
    31
    Erhielt 26 Danke für 25 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Kann man in TIA nicht einfach von Byte zu Char MOVEn?

    Harald
    jupp , Tia kann das

    Raik

  6. #6
    Hesse ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.08.2012
    Beiträge
    352
    Danke
    39
    Erhielt 33 Danke für 31 Beiträge

    Standard

    Hallo,
    ich braue es andersrum, von Char zu Byte und das ging per move bei mir nicht.
    Mag sein das dies auch per Char zu USint geht, daran habe ich am WE erst ich gedacht.
    Kann es erst später testen.

    Gelöst habe ich das schon mal aber mir gefällte es so noch nicht.
    (Mache es jetzt in einer Schleife jedes Byte einzeln und brauch den Doppelten Speicherbereich)
    Brauche tu ich das ganze für dem Anhang am Tmail_C Baustein der will kein
    Array [1 .. 20] of Char akzeptieren obwohl es nach meinem Verständnis, kein unterschied fürs Versenden macht zu Array [1 .. 20] of Byte .

  7. #7
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    661
    Danke
    60
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Ich kenne mich mit der aktuellen TIA nicht im Detail aus aber Char bezeichnet einen einzelnen Buchstaben und der muss nicht zwangsläufig ein Byte sein.

    Auf dem PC hatte man sich auch lange damit rumgeärgert, dass man mit 256 verschiedenen Buchstaben nicht die ganze Welt mit allen ihren Sprachen bedienen kann. So sind in fast allen PC Programmen heute die Buchstaben 16 Bit breit.

    Da Siemens ja auch nicht nur hier verkaufen will, hat man zumindest im Compiler schon mal die Sperre in TIA eingebaut.

    Übrigens in Codesys wird der feine Unterschied so vollzogen, wie ich meine mich zu erinnern. In 'Hallo hier bin ich' ist der einzelne Buchstabe 8 Bit, in "Hallo hier bin ich" ist der Buchstabe 16 Bit.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  8. #8
    Registriert seit
    09.01.2012
    Beiträge
    443
    Danke
    22
    Erhielt 37 Danke für 34 Beiträge

    Standard

    Zitat Zitat von RobiHerb Beitrag anzeigen
    Ich kenne mich mit der aktuellen TIA nicht im Detail aus aber Char bezeichnet einen einzelnen Buchstaben und der muss nicht zwangsläufig ein Byte sein.

    Auf dem PC hatte man sich auch lange damit rumgeärgert, dass man mit 256 verschiedenen Buchstaben nicht die ganze Welt mit allen ihren Sprachen bedienen kann. So sind in fast allen PC Programmen heute die Buchstaben 16 Bit breit.

    Da Siemens ja auch nicht nur hier verkaufen will, hat man zumindest im Compiler schon mal die Sperre in TIA eingebaut.

    Übrigens in Codesys wird der feine Unterschied so vollzogen, wie ich meine mich zu erinnern. In 'Hallo hier bin ich' ist der einzelne Buchstabe 8 Bit, in "Hallo hier bin ich" ist der Buchstabe 16 Bit.
    Dann musst du mir erklären in welchen Sprachen ein Char 16bit hat? Ich kenne nämlich keine einzige, bin jedoch sehr neugierig welche es sind...

  9. #9
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.685
    Danke
    726
    Erhielt 1.151 Danke für 964 Beiträge

    Standard

    Zitat Zitat von RogerSchw85 Beitrag anzeigen
    Dann musst du mir erklären in welchen Sprachen ein Char 16bit hat? Ich kenne nämlich keine einzige, bin jedoch sehr neugierig welche es sind...
    Jetzt nicht gerade eine typische Sprache für SPS aber Java wäre ein Beispiel
    aus http://docs.oracle.com/javase/tutori...atatypes.html:

    char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).

  10. #10
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    661
    Danke
    60
    Erhielt 112 Danke für 80 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hier ist die Entwickler Seite von Microsoft

    char.jpg


    Sogar Visual Basic gehört dazu.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Hier die Seite von Microsoft  

Ähnliche Themen

  1. BYTE in STRING Konvertierung
    Von SCLNewbie im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 12.10.2012, 01:55
  2. Antworten: 9
    Letzter Beitrag: 31.08.2012, 08:55
  3. Datum bzw Uhrzeit in String bzw CHAR
    Von olddragon im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 14.03.2012, 13:48
  4. CHAR in Byte wandeln?!?
    Von blueColt im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 26.09.2011, 07:36
  5. Antworten: 25
    Letzter Beitrag: 15.06.2011, 12:14

Lesezeichen

Berechtigungen

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