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

Ergebnis 1 bis 6 von 6

Thema: Anfangsadresse Array im Instanz-Datenbaustein lesen ?

  1. #1
    Registriert seit
    14.09.2015
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich muss meinen FB so allgemeingültig wie nur irgendwie möglich erstellen.
    Ich habe im Instanz-DB diesen FB´s ein Array deklariert ["Datenkanal" Array (0..63)of char].
    Ich möchte nun ab der 5. Stelle in diesem Array eine Zeichenkette schreiben (z.b. "12345abcde).
    Das wollte ich mit einem Offset machen, dafür benötige ich die Anfangsadresse dieses Array.

    Anfangsadresse_Datenkanal + 5 = Start_Zeichenkette

    z.B.
    DB1
    0.0 Eingang_1
    1.0 Eingang_2
    2.0 Eingang_3
    3.0 Eingang_4
    4.0 Datenkanal[0]
    5.0 Datenkanal[1]
    ...

    Wie bekomme ich die Anfangsadresse dieses Arrays heraus?
    Zitieren Zitieren Anfangsadresse Array im Instanz-Datenbaustein lesen ?  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Bei einer S7-300/400 geht es in AWL unter Step7 V5.x so:
    Code:
    L P##Datenkanal   //relative Adresse #Datenkanal in dieser Instanz (DI) 
    TAR2              //Lade Adressregister2 mit Offset dieser Multiinstanz (DB) in Akku1 
    UD DW#16#FFFFFF   //Bereichskennung (DB) ausblenden 
    +D                //Addiere 
    LAR1              //Lade AR1 mit Inhalt von Akku1: absolute Adresse #Datenkanal im IDB (DI)
    Welche CPU programmierst Du in welcher Programmiersprache mit welchem Programmiersystem?
    Bei anderen CPU oder anderen Programmiersprachen geht das anders oder sogar gar nicht.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    dumos4 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.09.2015
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    danke erstmal für deine super schnelle antwort

    CPU315-2 PN/DP
    AWL
    SIMATIC Manager

    ich bin derzeit noch student (Mechatronik) und schreib gerade mein bachelor. hab lange nichts mehr mit programmieren zu tun gehabt
    db1.JPGschnittstelle.JPG
    so siehts aus.
    im ersten bereich 26.0 -30.0 steht eine Anfangskennung und danach erst soll die Zeichenkette kommen

    L P##OUT.DATENKANAL (Syntaxfehler)

    grüße erik
    Geändert von dumos4 (21.09.2015 um 11:02 Uhr)

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Das Array DATENKANAL darf nicht in einem Struct liegen. Die Adressen von Struct-Membern können nicht symbolisch referenziert werden, d.h. es kann nur die Anfangsadresse des äußersten Struct oder des äußersten Array symbolisch referenziert werden.

    Du könntest den Inhalt Deines CHAR-Arrays in TEMP (oder in STAT außerhalb einer Struktur) zusammenbauen und dann mit BLKMOV in die Struktur kopieren.

    Du könntest den FB in SCL schreiben, da kann man symbolisch auf die Array-CHARs in einem Struct im IDB zugreifen.

    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
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Du könntest jedes einzelne CHAR in der Struktur ansprechen:
    Code:
          L     'A'
          T     #OUT.DATENKANAL[4]
          L     'B'
          T     #OUT.DATENKANAL[5]
    ...
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    dumos4 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.09.2015
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    diese einzelne Ansprechweise nutze ich für die anfangskennung.
    ich werd mal probieren das ding im tmp bereich zusammen zu basteln und dann zu verschieben.
    danke für deine schnellen und hilfreichen ratschläge

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 03.06.2013, 10:55
  2. ANY Pointer auf Array of Real im Instanz-DB
    Von Potz Blitz im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 28.02.2012, 12:48
  3. Datenbaustein im OPC lesen
    Von motamas im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 18.11.2010, 08:29
  4. Datenbaustein eingestellte Werte lesen
    Von MandiNice im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 19.03.2009, 13:00
  5. Datenbaustein Instanz DB ???
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 26.07.2005, 14:57

Stichworte

Lesezeichen

Berechtigungen

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