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

Ergebnis 1 bis 2 von 2

Thema: SCL - OB und Array als Parameter

  1. #1
    Registriert seit
    07.03.2006
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    EDIT: Im Thema sollte es natürlich DB heißen, nicht OB!

    Hallo,

    ich komme grad nicht weiter.
    Ich habe eine Funktion in SCL, darin befindet sich ein Array[1..10] mit Realwerten. Diese Realwerte sollen nun in einen globalen DB (hier DB101) kopiert werden. Das benötigte Ziel-Array("Messwerte") ist in dem DB vorhanden. Hart kodiert geht das auch ganz gut:

    z.B in einer Schleife:
    DB101.Messwerte[x]:= SCL_Messwerte[x];

    Allerdings möchte die DB-Nummer und den Arraynamen als Paramter der SCL-Function übergeben (am liebsten als getrennte Eingangsvariablen, ansonsten am Stück).
    Leider scheitere ich bereits an der Deklaration der Eingangsvariablen, mal von der äußeren Beschaltung der Funktion abgesehen.

    Kann mir evtl jemand auf die Sprünge helfen? Welche Typen benötige ich als Eingangvariablen? Wie muss die äußere Beschaltung aussehen?

    Vielen Dank im Vorraus

    Bluescreener
    Das Leben ist manchmal wie ein schlechtes Adventure-Game!
    Aber die Grafik ist VERDAMMT GUT!
    Zitieren Zitieren SCL - OB und Array als Parameter  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das geht dann leider nur so:

    Bsp.:
    WORD_TO_BLOCK_DB(wErg_DBNr).DD[N*8] := DINT_TO_DWORD(STRNG_DI(S := MyString_Nr));

    Also mit Absolutadressierung. Oben ist nur ein allgemeines Bsp.

    Was aber gehen würde, das Array am SCL-Baustein als IN_OUT anlegen. Im Baustein geht dann dieser Aufruf:

    Code:
    FUNCTION FC110 : INT
    
    VAR_INPUT
        
    END_VAR
    VAR_TEMP
        // temporäre Variablen
        I: INT;
    END_VAR
    VAR_OUTPUT
        ERG: INT;    
    END_VAR   
    
    VAR_IN_OUT
        TestArray: ARRAY[0..100] OF INT;
    END_VAR 
    
        // Anweisungsteil
        I := 10;
        ERG := TestARRAY[i];
        
        
        ;
        FC110 := 100;
    END_FUNCTION
    Der Funktionsaufruf:

    Code:
           CALL  FC   110
           RET_VAL  :=#RetVal
           ERG      :=MW10
           TestArray:="DBMyArray".MyArray
    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

  3. Folgende 2 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    Bluescreener (15.02.2008),Ganz (17.02.2008)

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. S5 - FB - IN/OUT-Parameter
    Von Hawkster im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 26.10.2012, 18:53
  3. Array in FB mit Größe als Parameter
    Von Heimchen im Forum CODESYS und IEC61131
    Antworten: 15
    Letzter Beitrag: 26.11.2010, 10:33
  4. Parameter vom Typ ANY
    Von blume_mercan im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 17.01.2008, 15:37
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Lesezeichen

Berechtigungen

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