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

Ergebnis 1 bis 9 von 9

Thema: Multiinstanz hat keine Lust mehr

  1. #1
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo allerseits,

    hab mal wieder ein paar Unstimmigkeiten mit meiner S7.

    Aktuell streikt ein getesteter Baustein, der bereits funktionierte wie er sollte. An dem Baustein selbst wurde nichts verändert, an dem Programm drum herum notwendiger Weise schon.

    Der FB wird je einmal in verschiedenen anderen FB’s als Multiinstanz aufgerufen. Der zyklische Aufruf scheint gesichert – zumindest sieht es im Status so aus.

    Hier mal die AWL-Quelle:
    Code:
    FUNCTION_BLOCK "A_Stufung_02"
    TITLE =
    //Stufenweise Zuordnung:
    //Für den Eingangswert "rIN" können mehrere Stufen in der "Stufung" angegeben 
    //werden. Bei erreichen wird die nächste Stufe weiter geschalten und deren 
    //"Ausgabe" in "rOUT" ausgegeben.
    //
    //Eine Hysterese ist nicht erforderlich, weil die Stufen ihren Zustand speichern. 
    //Sind sie einmal aktiviert, können sie nur mit "Reset" zurückgenommen werden.
    AUTHOR : Chräshe
    VERSION : 0.1
    
    
    VAR_INPUT
      Start : BOOL ;    
      Reset : BOOL ;    
      rIN : REAL ;    
    END_VAR
    VAR_OUTPUT
      rOUT : REAL ;    
    END_VAR
    VAR_IN_OUT
      Para : STRUCT     
       Stufung : ARRAY  [0 .. 11 ] OF REAL ;    
       Ausgabe : ARRAY  [0 .. 11 ] OF REAL ;    
      END_STRUCT ;    
    END_VAR
    VAR
      Stufe : ARRAY  [0 .. 11 ] OF BOOL ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    //
    //
          U     #Reset; 
          R     #Stufe[0]; 
          R     #Stufe[1]; 
          R     #Stufe[2]; 
          R     #Stufe[3]; 
          R     #Stufe[4]; 
          R     #Stufe[5]; 
          R     #Stufe[6]; 
          R     #Stufe[7]; 
          R     #Stufe[8]; 
          R     #Stufe[9]; 
          R     #Stufe[10]; 
          R     #Stufe[11]; 
    
    NETWORK
    TITLE =
    
          U     #Start; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[0]; 
          >=R   ; 
          )     ; 
          S     #Stufe[0]; 
    // -----------------------------------------
          U     #Stufe[0]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[1]; 
          >=R   ; 
          )     ; 
          S     #Stufe[1]; 
    // -----------------------------------------
          U     #Stufe[1]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[2]; 
          >=R   ; 
          )     ; 
          S     #Stufe[2]; 
    // -----------------------------------------
          U     #Stufe[2]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[3]; 
          >=R   ; 
          )     ; 
          S     #Stufe[3]; 
    // -----------------------------------------
          U     #Stufe[3]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[4]; 
          >=R   ; 
          )     ; 
          S     #Stufe[4]; 
    // -----------------------------------------
          U     #Stufe[4]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[5]; 
          >=R   ; 
          )     ; 
          S     #Stufe[5]; 
    // -----------------------------------------
          U     #Stufe[5]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[6]; 
          >=R   ; 
          )     ; 
          S     #Stufe[6]; 
    // -----------------------------------------
          U     #Stufe[6]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[7]; 
          >=R   ; 
          )     ; 
          S     #Stufe[7]; 
    // -----------------------------------------
          U     #Stufe[7]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[8]; 
          >=R   ; 
          )     ; 
          S     #Stufe[8]; 
    // -----------------------------------------
          U     #Stufe[8]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[9]; 
          >=R   ; 
          )     ; 
          S     #Stufe[9]; 
    // -----------------------------------------
          U     #Stufe[9]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[10]; 
          >=R   ; 
          )     ; 
          S     #Stufe[10]; 
    // -----------------------------------------
          U     #Stufe[10]; 
          U(    ; 
          L     #rIN; 
          L     #Para.Stufung[11]; 
          >=R   ; 
          )     ; 
          S     #Stufe[11]; 
    
    NETWORK
    TITLE =
    //
    //
    
          U     #Stufe[11]; 
          L     #Para.Ausgabe[11]; 
          SPB   END; 
          U     #Stufe[10]; 
          L     #Para.Ausgabe[10]; 
          SPB   END; 
          U     #Stufe[9]; 
          L     #Para.Ausgabe[9]; 
          SPB   END; 
          U     #Stufe[8]; 
          L     #Para.Ausgabe[8]; 
          SPB   END; 
          U     #Stufe[7]; 
          L     #Para.Ausgabe[7]; 
          SPB   END; 
          U     #Stufe[6]; 
          L     #Para.Ausgabe[6]; 
          SPB   END; 
          U     #Stufe[5]; 
          L     #Para.Ausgabe[5]; 
          SPB   END; 
          U     #Stufe[4]; 
          L     #Para.Ausgabe[4]; 
          SPB   END; 
          U     #Stufe[3]; 
          L     #Para.Ausgabe[3]; 
          SPB   END; 
          U     #Stufe[2]; 
          L     #Para.Ausgabe[2]; 
          SPB   END; 
          U     #Stufe[1]; 
          L     #Para.Ausgabe[1]; 
          SPB   END; 
          U     #Stufe[0]; 
          L     #Para.Ausgabe[0]; 
          SPB   END; 
          L     0.000000e+000; 
    END:  NOP   0; 
          T     #rOUT; 
    
    END_FUNCTION_BLOCK
    Da in dem Baustein nicht viel Spektakuläres passiert, sollte es doch nicht notwendig sein das
    Adressregister zu sichern?

    Die „Baustein-Konsistenz-Prüfung“ ergab einige Abweichungen, worauf ich „Alles neu übersetzen“ lies.

    Bereits in anderen Projekten hatte ich solche Erscheinungen. Aus Zeitgründen bin ich bisher immer hingegangen und hab die „Problemfälle“ wieder in FB’s mit konventionellen DB’s umgewandelt. Längerfristig ist das aber keine befriedigende Lösung!

    Kennte jemand diese Erscheinungen oder ähnlich geartete Fälle?
    Muss das Adressregister doch gesichert werden?
    Fällt jemand etwas am Baustein auf?
    Was würdet ihr prüfen?

    Gruß
    Chräshe
    ------
    Hardware:
    IM151-8 PN/DP CPU / TP 277 6"

    Softwarestand:
    STEP 7 - 2010 Professional V5.5 V5.5.0.0_25.6.0.1 V5.5.0.0
    SIMATIC WinCC flexible 2008 SP2 K1.3.2.0_1.58.0.1 K1.3.2.0
    Zitieren Zitieren Multiinstanz hat keine Lust mehr  

  2. #2
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    357
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Chräshe,

    was macht den der Baustein jetzt nicht mehr, wenn er in einer Multiinstanz aufgerufen wird? Also wenn ich mir das so mal durchschau finde ich eigentlich nix, was nicht gehen soll. Ist doch alles ganz normal Programmiert. Außerdem auch nicht mit indirekter Adressierung und Pointer. Zumindest nichts selbstgebasteltes. Alles mit Siemens Boardmittel.
    MfG

    Hubert

    \"Never change a running system. \"

  3. #3
    Registriert seit
    13.10.2007
    Beiträge
    12.024
    Danke
    2.784
    Erhielt 3.268 Danke für 2.156 Beiträge

    Standard

    Adressregister muß im Deinen Bautein nicht gesichert werden, weil du ja nicht darauf zugreifst.

    Hast du den Daran gedacht alles betroffene FB's und alle IDB's in die Steuerung zu Laden?

    Hat die Bausteinkonsitänzprüfung keine Diskrepanz mehr aufgezeigt?

    Hast du daran gedacht das vor der Konsitänzprüfung, der Operandenvorang auf symbolisch
    gestellt wurde. Blöderweise ist er ja Defaulteinstellung Absolut.

  4. #4
    Avatar von Chräshe
    Chräshe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Standard

    Zitat Zitat von hubert Beitrag anzeigen
    was macht den der Baustein jetzt nicht mehr, wenn er in einer Multiinstanz aufgerufen wird?
    Der Baustein soll bei ansteigendem Eingang, bei den entsprechenden Stufen den zugeordneten Ausgabewert ausgeben. Der erste Wert wird ausgegeben, dann passiert nichts mehr. Als würde die Kiste einfrieren. Der Rest vom Programm läuft scheinbar Fehlerfrei weiter...

    Zitat Zitat von rostiger Nagel Beitrag anzeigen
    Adressregister muß im Deinen Bautein nicht gesichert werden, weil du ja nicht darauf zugreifst.
    Hast du den Daran gedacht alles betroffene FB's und alle IDB's in die Steuerung zu Laden?
    Hat die Bausteinkonsitänzprüfung keine Diskrepanz mehr aufgezeigt?
    Hast du daran gedacht das vor der Konsitänzprüfung, der Operandenvorang auf symbolisch
    gestellt wurde. Blöderweise ist er ja Defaulteinstellung Absolut.
    Der Operanden- Vorrang steht schon die ganze Zeit auf symbolisch. Es ist alles fehlerfrei übersetzt und die Baustein- Konsistenzprüfung ist im Moment auch zufrieden (bis ich das nächste mal zwinker oder weg schaue ). Komplett alles, mit Ausnahme dem DB für die ganzen Einstellungen, ist frisch in die SPS übertragen. Auch das HMI hat seine Aktualisierung durch und ist übertragen. Laut Variablentabelle liegen die korrekten Werte an den beiden Bausteinen an.

    Mir fällt wirklich nichts mehr ein...

    Könnte ein SCL Baustein mit Index das Adressregister zerlegen (sofern es nicht gesichert wird), und den Aufruf einer folgenden Multiinstanz stören?

    Habe ich mit einem statischen hoch sporadischen Fehler zu tun?!?

    Gruß
    Chräshe

  5. #5
    Registriert seit
    13.10.2007
    Beiträge
    12.024
    Danke
    2.784
    Erhielt 3.268 Danke für 2.156 Beiträge

    Standard

    Das mit dem SCL Baustein wäre vorstellbar.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  6. #6
    Avatar von Chräshe
    Chräshe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Standard

    Hallo Helmut,

    meine Hoffnung war, bei SCL geht das ordnungsgemäß im Hintergrund.
    Wie sichert man bei SCL das Adressregister?

    Gruß
    Chräshe

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    im SCL-Code selber mußt du dich um so etwas selbst nicht kümmern. SCL macht das selbst wenn es mit dem AR herumspielt. Das ein laufendender SCL-Baustein aber den gezeigten Baustein beeinflußt kann ich mir nicht so recht vorstellen.
    Was heißt den genau "der Baustein scheint einzufrieren ..." ?

    Gruß
    Larry

  8. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Chräshe (07.08.2012)

  9. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Sind in Para.Stufung[0] ... [11] noch die korrekten Werte eingetragen? Gleiche Frage zu Para.Ausgabe...
    Kannst du den Baustein denn nicht beobachten?
    Hast du 2 Multiinstanzen deklariert und getrennt aufgerufen oder rufst du einen deklarierte Multiinstanzbaustein zwei Mal auf (was schlecht wäre).
    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

  10. #9
    Avatar von Chräshe
    Chräshe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    war heute gut eingespannt und konnte nur nebenher der Sache nachgehen. Inzwischen besteht das Problem nicht mehr. Die Fehlersuche war etwas komplexer, weil es nicht „Den Fehler“ sondern leider ein paar davon gegeben hatte.

    Unter anderem ist der Reset länger angestanden als der Start – man darf erwarten, dass das nicht funktioniert…

    Gruß
    Chräshe

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 14.05.2012, 21:45
  2. Antworten: 2
    Letzter Beitrag: 21.03.2012, 21:41
  3. Wer hat Lust ein Kinco HMI zu testen?
    Von spstiger im Forum Werbung und Produktneuheiten
    Antworten: 23
    Letzter Beitrag: 07.10.2011, 08:04
  4. Ampelsteuerung - wer Lust und Zeit hat
    Von Airpower im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 11.06.2009, 13:49
  5. Logo hat keine Uhr mehr ?!
    Von Nachbar im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 17.11.2004, 09:19

Stichworte

Lesezeichen

Berechtigungen

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