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

Ergebnis 1 bis 6 von 6

Thema: Array von Strings beschreiben

  1. #1
    Registriert seit
    08.10.2007
    Beiträge
    125
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo
    ich habe in einem Datenbaustein einen Array von 20 Strings von jeweils 20 Bytes.
    Wie kann ich in AWL diese Bereiche nun beschreiben.

    ich wollte das auf diese weise machen aber das haut nicht hin

    U #Ereignis
    L "abcdefg"
    T DB100.DBB0 (oder .DBB20,.DBB40,usw)
    Zitieren Zitieren Array von Strings beschreiben  

  2. #2
    Registriert seit
    27.03.2007
    Beiträge
    59
    Danke
    28
    Erhielt 34 Danke für 28 Beiträge

    Standard

    Hi,

    wie hast du denn deine Strings im DB initialisiert? Als String[20]?
    Denn dann besteht der String aus 22 Bytes. In den ersten beiden Bytes ist die initialisierte Länge des Strings und die tatsächlich verwendete Anzahl der Zeichen hinterlegt. Du kannst einfach ein 1414 (hex) in das erste Wort eines jeden Strings schreiben.
    Die Zeichen musst du in AWL leider einzeln laden:
    l 'a'
    T DB100.DBB 2

    Gruß puzzlefreak

  3. #3
    Fluffi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.10.2007
    Beiträge
    125
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ARRAY[0..20] mit jeweils STRING[20]

    wobei der Array eigentlich nicht so wichtig ist. Mir gehts primär darum ganze Texte in den String zu schreiben.
    Geht das nur Zeichenweise ?

    Ist es möglich vorher einen DB mit den Texten zu erstellen und diese dann in den anderen zu kopieren ?
    so ungefähr:

    U #Ereigneis
    L DB2.String04
    T DB1.Sting13

  4. #4
    Registriert seit
    27.03.2007
    Beiträge
    59
    Danke
    28
    Erhielt 34 Danke für 28 Beiträge

    Standard

    Hi,

    du kannst einen DB mit Texten erstellen und anschließend in deinen DB kopieren.
    Wenn du die Strings dort auch mit String[20] deklariert hast kannst du es folgenderweise machen:

    UN #Ereignis // String nur schreiben, wenn das Ereignis auch da ist
    SPB end

    CALL "BLKMOV"
    SRCBLK :=P#DB2.DBX 0.0 BYTE 22
    RET_VAL:=#ret_val
    DSTBLK :=P#DB1.DBX 0.0 BYTE 22

    end: nop 0

  5. #5
    Fluffi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.10.2007
    Beiträge
    125
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    danke. werd ich gleich mal ausprobieren

    warum eigentlich BYTE 22 ?

  6. #6
    Registriert seit
    27.03.2007
    Beiträge
    59
    Danke
    28
    Erhielt 34 Danke für 28 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    1 Byte : Länge des initialisierten Strings
    1 Byte : Anzahl der verwendeten Zeichen
    20 Byte: Der String selber

    Kuck mal in der Siemens-Hilfe beim String nach. Da ist's beschrieben.

    Viele Anwendungen brauchen die ersten beiden Bytes (ok, nicht alle). Aber manche Funktionen (z.B. Wandlungsfunktionen), die z.B. als Eingang einen String erwarten benutzen diese beiden Bytes. Wenn sie leer sind, dann interpretieren sie das als leeren String.

Ähnliche Themen

  1. Array von FB Ausgang beschreiben
    Von michal im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 03.08.2011, 08:58
  2. Array beschreiben
    Von focus81 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.08.2010, 14:25
  3. Eindimensionales Array beschreiben
    Von SPS_LB im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 06.09.2009, 03:04
  4. Array indirekt beschreiben
    Von Airpower im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 22.06.2009, 08:34
  5. Array im Script beschreiben
    Von Neuling74 im Forum HMI
    Antworten: 2
    Letzter Beitrag: 16.06.2007, 08:59

Lesezeichen

Berechtigungen

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