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

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 61

Thema: Viele Fragen zum Rundtisch...

  1. #41
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vollmi Beitrag anzeigen

    Code:
       ArrayofUDT : ARRAY[0..100] OF testudt ;
    testudt wäre jetzt dein UDT das du definiert hast und die Arraygrösse muss mindestens so gross sein wie das Array das du anhängen willst.

    Index kann in VAR oder Temp. da in einem Zyklus abgearbeitet.
    Wenn man dass dann z.B. mit WHILE über mehrere Zyklen verteilt muss dass beachtet werden. Wird dann aber eh aufwändiger.

    mfG René
    Ok, vielen Dank!

    Habe das mit dem Array in SCL jetzt so gelöst - bekomme jetzt keine Fehlermeldung beim Übersetzen mehr; aber dieses "OF INT" ist noch nicht ok, oder?

    Array.jpg
    LG
    spirit

  2. #42
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Nachtrag...

    Glaube so ist es besser:

    Array.jpg


    Ein Problem (schon wieder eines!) noch beim Aufruf im OB1 von oben dargestelltem FB:

    ArrayofUDT:=

    Fehler: Aktualdatentyp BLOCK_DB passt nicht zu formalem Typ ARRAY des Formalparameters ArrayofUDT
    Geändert von spirit (24.04.2014 um 12:09 Uhr)
    LG
    spirit

  3. #43
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... du mußt das Array natürlich genau so, wie du es als INOUT-Parameter erwartest irgendwo deklariert haben.
    Das kannst du dann (am Besten symbolisch) an den Parameter des FB antragen ...

    Gruß
    Larry

  4. #44
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.647
    Danke
    788
    Erhielt 654 Danke für 497 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Ein Problem (schon wieder eines!) noch beim Aufruf im OB1 von oben dargestelltem FB:

    ArrayofUDT:=

    Fehler: Aktualdatentyp BLOCK_DB passt nicht zu formalem Typ ARRAY des Formalparameters ArrayofUDT
    Am besten gibst du dem UDT11 einen symbolischen namen und in SCL weist du den UDT per symbolischem namen zu.

    wo kommt der fehler? Beim Uebersetzen oder beim aufrufen des Bausteins?

  5. #45
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... du mußt das Array natürlich genau so, wie du es als INOUT-Parameter erwartest irgendwo deklariert haben.
    Das kannst du dann (am Besten symbolisch) an den Parameter des FB antragen ...

    Gruß
    Larry
    Nun, ich habe ja ein Array[0..10] of UDT11 deklariert.

    Und im FB (SCL) steht (siehe Post #42): ArrayofUDT : ARRAY[0..10] OF UDT11;


    @vollmi: Der Fehler kommt beim Aufruf des FB's im OB1...
    LG
    spirit

  6. #46
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Nun, ich habe ja ein Array[0..10] of UDT11 deklariert.
    Wo ?
    Davon das du es als IN-OUT-Parameter an dem FB hast ist es noch nicht wirklich irgendwo vorhanden. Du mußt das Gleiche jetzt noch in einem DB deiner Wahl deklarieren und diese Deklaration dann beim Aufruf deines FB (also im OB1 bei dir) an denselben übergeben.
    Also vielleicht in etwa so :[CODE]call FB123 , db123[
    ArrayOfUDT := "DB11".meinArray/CODE]

    Gruß
    Larry

  7. #47
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Wo ?
    Davon das du es als IN-OUT-Parameter an dem FB hast ist es noch nicht wirklich irgendwo vorhanden. Du mußt das Gleiche jetzt noch in einem DB deiner Wahl deklarieren und diese Deklaration dann beim Aufruf deines FB (also im OB1 bei dir) an denselben übergeben.
    Also vielleicht in etwa so :[CODE]call FB123 , db123[
    ArrayOfUDT := "DB11".meinArray/CODE]

    Gruß
    Larry
    Also den DB11 (Array[0..10] of UDT11) gibt es ja physikalisch im Bausteinordner!


    Code:
    Call FB123, DB123
    ArrayofUDT := DB11.INDEX

    DB11.jpg
    Geändert von spirit (24.04.2014 um 14:46 Uhr)
    LG
    spirit

  8. #48
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Wenn es den DB11 gibt und er den symbolischen Namen DB11 hat dann müßte es dann trotzdem so heißen :

    Zitat Zitat von spirit Beitrag anzeigen
    Call FB123, DB123
    ArrayofUDT := "DB11".INDEX
    Falls der DB11 einen anderen symbolisch Namen hat, dann den zwischen den Gänsefüßchen eintragen. Falls er gar keinen symbolischen Namen hat dann solltest du ihm einen geben ...

    Gruß
    Larry

  9. #49
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Wenn es den DB11 gibt und er den symbolischen Namen DB11 hat dann müßte es dann trotzdem so heißen :


    Zitat von spirit
    Call FB123, DB123
    ArrayofUDT := "DB11".INDEX

    Falls der DB11 einen anderen symbolisch Namen hat, dann den zwischen den Gänsefüßchen eintragen. Falls er gar keinen symbolischen Namen hat dann solltest du ihm einen geben ...

    Gruß
    Larry
    Hm, irgendwie nichts zu machen...

    Ja, den DB11 gibt es - war zwar bisher ohne symbol. Namen; aber auch mit symbol. Namen zwischen den Gänsefüßchen ist das Ergebnis dasselbe!

    Beim Überfahren mit der Maus kommt die bekannte Meldung: Aktualdatentyp BLOCK_DB passt nicht zu formalem Typ ARRAY des Formalparameters ArrayofUDT


    Danke...



    Ahhh - Entwarnung!

    Habe jetzt mal "Zugriffe prüfen und aktualisieren" geklickt und plötzlich hat es geklappt.

    Ein Wunderwerk das Ganze...
    Geändert von spirit (24.04.2014 um 16:23 Uhr)
    LG
    spirit

  10. #50
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So, neuer Tag, neues Glück!

    Bevor ich noch einige theoretische Fragen anbringe, wollte ich das Ganze jetzt mal im Kleinen probieren. Dazu habe ich mir in einem DB ein Array[1..3] of UDT gebastelt:

    DB.jpg

    Ferner einen Schleifen-FB zum kopieren:

    Schleifen_FB.jpg

    Und schließlich der Aufruf im OB1:

    OB1.jpg

    Hm, und dann war die Enttäuschung groß - da PLCSIM in Stop geht!

    Fehler: Bereichslängenfehler beim Lesen

    Das muss doch was mit dem Array zu tun haben, oder?

    Den UDT kann man ja nicht in die SPS laden, richtig?

    Vielen Dank für erneute Hilfe!
    LG
    spirit

Ähnliche Themen

  1. CP341 Modbusmaster viele Fragen
    Von Gustel im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 08.11.2011, 16:46
  2. Fragen zum DB
    Von SPS_Neuling im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 11.10.2011, 19:37
  3. Fragen zum Datenbaustein
    Von anne im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 11.05.2010, 10:00
  4. Neu und viele Fragen zur Haussteuerung
    Von Plentman im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 24.06.2008, 23:42
  5. Viele Fragen zu S7 (Anfänger)
    Von draXo im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 08.05.2004, 12:26

Lesezeichen

Berechtigungen

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