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

Ergebnis 1 bis 6 von 6

Thema: SCL Variablennamen zusammensetzen

  1. #1
    Registriert seit
    09.09.2005
    Beiträge
    108
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen folgendes Problem.

    Ich schreibe gerade meinen ersten Baustein in SCL.
    Der Baustein soll nachher bis zu 50 Gewichte und Zeiten ausgeben und dies zusammenadieren.

    Das ganze wird in PCS7 erstellt.
    Die Gewichte und Zeiten müssen als Ausgänge am Baustein verfügbar sein. Also in etwa so. Die Daten an sich kommen aus einem DB

    VAR_Output

    Gewicht1 {S7_m_c := 'true'}: REAL := 0;
    Zeit1 {S7_m_c := 'true'}: DINT := 0;
    Gewicht2 {S7_m_c := 'true'}: REAL := 0;
    Zeit2 {S7_m_c := 'true'}: DINT := 0;
    Gewicht3 {S7_m_c := 'true'}: REAL := 0;
    Zeit3 {S7_m_c := 'true'}: DINT := 0;
    GesamtGewicht {S7_m_c := 'true'}: REAL := 0;
    GesamtZeit {S7_m_c := 'true'}: DINT := 0;
    END_VAR


    Gibt es eine Möglichkeit Die Variablennamen dynamisch zu generieren? Also in der Art

    for i :=1 to 50 by1 do

    Zeit+i := DB.DW[104+i*2];
    Gewicht+i :=DB.DW[104+i*2];

    end_for
    Zitieren Zitieren SCL Variablennamen zusammensetzen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo,
    du kannst jede Variable auch als Array anlegen und sie innerhalb von SCL dann indexiert ansprechen - also etwa so :
    Code:
    Gewicht  : Array [1..32] of Real ;
    
    und im Code dann z.B. :
    
    mein Wert := Gewicht[i] ;
    oder :
    Code:
    [for i :=1 to 50  by1 do
    
     Zeit[i]      := DB.DW[104+i*2];
     Gewicht[i]  :=DB.DW[104+i*2];
    
    end_for ;
    Gruß
    Larry

  3. #3
    Adenauer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.09.2005
    Beiträge
    108
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Das mit dem Array ist wäre ne schöne Sache.
    Soweit ich weiss können VAR_ OUT aber nicht als Array angeleg werden.

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Ich denke schon - du mußt dann aber auch halt ein Array von Aussen an den Out übergeben.
    Allerdings stellt sich hier für mich die Frage (ich hatte noch nie so eine Notwendigkeit und habe es deshalb auch noch nie gemacht) : Warum willst du das so machen ?

    Gruß
    Larry

  5. #5
    Adenauer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.09.2005
    Beiträge
    108
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Habe es gerade versucht. Einen Bausteinausgang kann man als Array deklarieren . Scl wird auch ohne Fehler übersetzt.
    Der: bersetzte Baustein lasst sich Leder aber nicht in einen cfc enfügen. Hier wird dass Array nicht kompatibel angezeigt

  6. #6
    Registriert seit
    20.02.2008
    Beiträge
    332
    Danke
    16
    Erhielt 40 Danke für 37 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ist das auch so, wenn Du das Array in einen UDT einbettest?

Ähnliche Themen

  1. in SCL zwei bytes zu einem int zusammensetzen
    Von Züttu im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 27.04.2011, 20:07
  2. string in scl zusammensetzen
    Von Bensen83 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 27.04.2011, 09:50
  3. Variablennamen mit VB auslesen
    Von Adenauer im Forum HMI
    Antworten: 0
    Letzter Beitrag: 26.08.2010, 08:50
  4. B&R Variablennamen ändern
    Von kiestumpe im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 28.04.2008, 21:29
  5. Auf Variablennamen im DB zugreigen?
    Von Darkhobbit im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 07.02.2008, 17:59

Lesezeichen

Berechtigungen

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