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

Ergebnis 1 bis 7 von 7

Thema: IN-OUT-Variabletyp als ARRAY

  1. #1
    Registriert seit
    17.10.2013
    Beiträge
    27
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute,
    bin neu mit S7 und habe folgenges Problem

    hier ist mein FB1:
    ....
    Var_IN_OUT
    Gate: ARRAY [1..50] of UDT1;// UDT1 hat 6 Parameter
    end_var
    ....

    im OB1 habe ich folgenge Zuweisung gemacht: Gate:=DB2.Gate
    aber im DB1 sehe ich keine Änderung von den 6 UDT-Parametern.

    wie kann ich es gut machen?

    LG,
    Vokal12
    Zitieren Zitieren IN-OUT-Variabletyp als ARRAY  

  2. #2
    Registriert seit
    30.06.2007
    Ort
    Minden (Westf.)
    Beiträge
    178
    Danke
    42
    Erhielt 21 Danke für 21 Beiträge

    Standard

    Außer der Schnittstelle beschreibst du nichts. Wer soll jetzt erraten, wie du auf das Array zugreifst... KOP, FUP, AWL, SCL..??? Direkt, indirekt..?? Ein bisschen mehr darf es schon sein...

  3. #3
    Vokal12 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.10.2013
    Beiträge
    27
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Sorry. Das wäre in SCL und indirekte Adressierung.


    Zitat Zitat von StefanK Beitrag anzeigen
    Außer der Schnittstelle beschreibst du nichts. Wer soll jetzt erraten, wie du auf das Array zugreifst... KOP, FUP, AWL, SCL..??? Direkt, indirekt..?? Ein bisschen mehr darf es schon sein...

  4. #4
    Registriert seit
    14.05.2012
    Beiträge
    157
    Danke
    28
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Symbolischer Zugriff in SCL da sollte das normal schon klappen.

    Gib mal bisschen was von deinem CODE preis, sonst bleibt das hier eher Rätselraten.

    Abgesehen davon :

    hier ist mein FB1:
    ....
    Var_IN_OUT
    Gate: ARRAY [1..50] of UDT1;// UDT1 hat 6 Parameter
    end_var
    ....

    im OB1 habe ich folgenge Zuweisung gemacht: Gate:=DB2.Gate // DB 2
    aber im DB1 sehe ich keine Änderung von den 6 UDT-Parametern. // DB 1 ??
    wenn es sich nicht um einen Tippfehler handelt, warum sollte sich im DB1 etwas ändern?

  5. #5
    Vokal12 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.10.2013
    Beiträge
    27
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    VAR_INPUT
    Nummer:INT;
    END_VAR
    VAR_IN_OUT
    add:INT;
    GATE: ARRAY[1..100] OF UDT1;
    END_VAR
    GATE[Nummer].way:=DB1.GATE[Nummer].way;
    GATE[Nummer].Deltaway:=DB1.GATE[Nummer].Deltaway;

    GATE[Nummer].way:=GATE[Nummer].way+add; // Bei einer Änderung von Gate-Way um add
    GATE[Nummer].Deltaway:=GATE[Nummer].Deltaway+add;
    END_FUNKTION_BLOCK











    Zitat Zitat von Django2012 Beitrag anzeigen
    Symbolischer Zugriff in SCL da sollte das normal schon klappen.

    Gib mal bisschen was von deinem CODE preis, sonst bleibt das hier eher Rätselraten.

    Abgesehen davon :



    wenn es sich nicht um einen Tippfehler handelt, warum sollte sich im DB1 etwas ändern?

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.190
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Vokal12 Beitrag anzeigen
    hier ist mein FB1:
    ....
    Var_IN_OUT
    Gate: ARRAY [1..50] of UDT1;// UDT1 hat 6 Parameter
    end_var
    ....

    im OB1 habe ich folgenge Zuweisung gemacht: Gate:=DB2.Gate
    aber im DB1 sehe ich keine Änderung von den 6 UDT-Parametern.
    Zitat Zitat von Vokal12 Beitrag anzeigen
    VAR_INPUT
    Nummer:INT;
    END_VAR
    VAR_IN_OUT
    add:INT;
    GATE: ARRAY[1..100] OF UDT1;
    END_VAR
    GATE[Nummer].way:=DB1.GATE[Nummer].way;
    GATE[Nummer].Deltaway:=DB1.GATE[Nummer].Deltaway;


    GATE[Nummer].way:=GATE[Nummer].way+add; // Bei einer Änderung von Gate-Way um add
    GATE[Nummer].Deltaway:=GATE[Nummer].Deltaway+add;
    END_FUNKTION_BLOCK
    Tippst Du Deinen Code hier aus dem Gedächtnis oder ist der tatsächlich aus Deinem Programm kopiert?

    - die Größe und Indexzählung des deklarierten Arrays und des beim Aufruf übergebenen Arrays müssen exakt gleich sein: ARRAY[1..100] OF UDT1
    - im FB kopierst Du von DB1 zum übergebenen DB2 und innerhalb des DB2 - dabei ändert sich im DB1 natürlich nichts
    - wieso kopierst Du überhaupt von DB1 zu DB2? Das wird ja direkt danach überschrieben
    - Falls Du tatsächlich mit 2 Arrays arbeiten wolltest: Du solltest beide Arrays als Parameter übergeben oder auf beide direkt zugreifen, gemixt sieht scheixxe aus.
    - auch wenn in SCL die Groß/Kleinschreibung von Variablennamen egal ist, solltest Du im Baustein überall die gleiche Schreibweise benutzen.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @TE:
    Vielleicht postest du auch mal den Aufruf deines FB1 - welchen I-DB benutzt der übrigens ?

    Gruß
    Larry

Ähnliche Themen

  1. Step 7 FB In Out als Array
    Von Outrider im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 30.10.2013, 16:58
  2. Array als IN Parameter
    Von RON_87 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 20.01.2013, 14:13
  3. ST - FB mit ARRAY als OUT
    Von mike_roh_soft im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 11.01.2012, 14:32
  4. ARRAY als IN bei FB?
    Von Pinmaster im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.09.2009, 11:18
  5. ARRAY als Aktualarameter
    Von manas im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 16.01.2008, 19:11

Lesezeichen

Berechtigungen

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