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

Ergebnis 1 bis 6 von 6

Thema: Indirekter Datenbausteinaufruf in SCL

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich habe einen FB, der in SCL programmiert ist.

    Der FB macht verschiedene Dinge und benötigt dazu Werte aus mehreren Datenbausteinen. Der Aufbau all dieser Datenbausteine ist aber gleich.

    Die Nummer dieser Datenbausteine soll als Eingangsparameter angegeben werden:

    Code:
    VAR_INPUT
      Datenbausteinnummer : INT;
    END_VAR
    Wie kann ich nun im FB auf den Datenbaustein bzw. dessen Inhalt zugreifen?

    Jens
    Zitieren Zitieren Gelöst: Indirekter Datenbausteinaufruf in SCL  

  2. "Zufall "


  3. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Hier mal ein Mini-Beispiel:

    Code:
    FUNCTION FC113 : INT
    
    Title = 'Maximum'
    //
    // Maximum aus Input-Werten
    //
    Version : '1.2'
    author  : Ralle
    name    : MAXIMUM
    family  : SYSTEM
    
    // Bausteinparameter
    VAR_INPUT
      // Eingangsparameter
      DB_Nr: INT;
      StartP: INT;
      Anzahl: INT;
     
    END_VAR
    
    VAR_IN_OUT
      // Durchgangsparameter
    END_VAR
    
    VAR_OUTPUT
     // Ausgangsparameter
      MAXIMUM: DINT;
    END_VAR
    
    VAR_TEMP
      // temporäre Variablen
      Wert: DINT;
      I: INT;
    END_VAR
    
    BEGIN
      // Anweisungsteil
      MAXIMUM := 0;
     
       FOR I := 1 TO Anzahl DO
           Wert := DWORD_TO_DINT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_Nr)).DD[StartP+((I-1)*4)]); 
          
           IF MAXIMUM < Wert THEN MAXIMUM &#58;= Wert; END_IF;          
    END_FOR;
                    
      FC113 &#58;= 100;
    END_FUNCTION
    Die eigentliche Funktion ist WORD_TO_BLOCK_DB
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #3
    Anonymous Gast

    Standard

    Wow, ich hatte gerade mal Zeit, die Kaffemaschine anzustellen...

    Vielen Dank.

  5. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zufall
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #5
    Anonymous Gast

    Standard

    Mit

    Code:
    WORD_TO_DINT&#40;WORD_TO_BLOCK_DB&#40;INT_TO_WORD&#40;DB_Nr&#41;&#41;.DW&#91;DW_Nr&#93;&#41;;
    kann man in SCL auf Worte zugreifen.

    Geht das auch genauso einfach , wenn man auf einzelne Bits zugreifen möchte (und wenn ja, wie) oder muss man das Wort maskieren?

  7. #6
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    OK, hat sich erledigt. Für alle, die das auch mal brauchen:

    Code:
    WORD_TO_DINT&#40;WORD_TO_BLOCK_DB&#40;INT_TO_WORD&#40;DB_Nr&#41;&#41;.DX&#91;DW_Nr, Bit_Nr&#93;&#41;;

Ähnliche Themen

  1. Datenbausteinaufruf wie bei S5 ... A DB...
    Von AndreK im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 24.11.2011, 15:26
  2. Indirekter Bausteinaufruf
    Von Supervisor im Forum Simatic
    Antworten: 26
    Letzter Beitrag: 03.12.2007, 11:47
  3. Indirekter Zugriff auf DB und DB-Inhalt
    Von KingShango im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 27.11.2007, 20:09
  4. SCL - Indirekter Zugriff auf DB/AR1,2
    Von Floh im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.06.2006, 10:32
  5. indirekter DB zugriff
    Von bassknecht im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 20.08.2005, 12:44

Lesezeichen

Berechtigungen

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