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

Seite 6 von 14 ErsteErste ... 45678 ... LetzteLetzte
Ergebnis 51 bis 60 von 140

Thema: Wenn ein PEW als Eingang an einem FC nicht erreichbar ist, wird FC nicht bearbeitet

  1. #51
    ducati ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    3.150
    Danke
    765
    Erhielt 558 Danke für 466 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    so, jetzt noch der Workaround von PN/DP und modifiziert von mir und meinem Kollegen:

    funktioniert jetzt für Verschaltungen von PEW, EW, MW, Temp. und DB-Variablen für nicht optimierte FC/FB:

    Code:
    //Im FC "MyFC":
    //  IN: IN_POINTER : POINTER
    // Temp: Adr_0 : WORD
    // Temp: Adr_2 : DWORD
    
          L     P##IN_POINTER
          LAR1
    
          L W [ AR1 , P#0.0 ]
          T     #Adr_0
          L D [ AR1 , P#2.0 ]
          T     #Adr_2
    
          L     #Adr_0
          L     0
          ==I
          SPB   XXX1
          AUF DB [ #Adr_0]
    XXX1: NOP 0
    
          L D [ AR1 , P#2.0 ]
          LAR1
          L W [ AR1 , P#0.0 ] // Lesen des Wortes, diese Anweisung löst ggf. den OB122 wegen Peripheriezugriffsfehler aus
          T MW100      // hier liegt der Wert vom eingelesenen Signal

  2. #52
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.926
    Danke
    457
    Erhielt 874 Danke für 633 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    so, jetzt noch der Workaround von PN/DP und modifiziert von mir und meinem Kollegen:
    Ist DAS ein IRRSINN. Und alles das nur für ein völlig absurdes Verhalten von TIA. Seid ihr Selbständig oder Angestellte in einer
    Firma? Solchen MIST für größere Projekte nun "vorübergehend" nachrüsten zu müssen, kann sich ein Freelancer eigentlich
    gar nicht leisten. Absurdes Theater.
    Grüße Frank

  3. #53
    ducati ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    3.150
    Danke
    765
    Erhielt 558 Danke für 466 Beiträge

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    Ist DAS ein IRRSINN. Und alles das nur für ein völlig absurdes Verhalten von TIA. Seid ihr Selbständig oder Angestellte in einer
    Firma? Solchen MIST für größere Projekte nun "vorübergehend" nachrüsten zu müssen, kann sich ein Freelancer eigentlich
    gar nicht leisten. Absurdes Theater.
    Mein Problem ist nur, dass dieser Irrsinn mir und meinem Kollegen 3 Tage meiner eh schon knappen Projektzeit gekostet hat. Welche ich jetzt irgendwie wieder reinholen muss. Bezahlen muss das mein Chef

    Als Freiberufler kannst Du eigentlich keine TIA-Projekte auf pauschaler Abrechnung umsetzen

    Hoffe diesen Thread hier lesen auch die 2-3 TIA Befürworter hier im Forum

    Gruß.
    Geändert von ducati (07.10.2016 um 11:06 Uhr)

  4. Folgender Benutzer sagt Danke zu ducati für den nützlichen Beitrag:

    IBFS (07.10.2016)

  5. #54
    Registriert seit
    25.01.2008
    Ort
    Hamburg
    Beiträge
    224
    Danke
    12
    Erhielt 63 Danke für 33 Beiträge

    Standard

    Ich habe es gelesen.
    Wieso ist denn der direkte Zugriff auf die Peripherie so wichtig?
    It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is most adaptable to change.


  6. #55
    ducati ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    3.150
    Danke
    765
    Erhielt 558 Danke für 466 Beiträge

    Standard

    Zitat Zitat von miasma Beitrag anzeigen
    Ich habe es gelesen.
    Wieso ist denn der direkte Zugriff auf die Peripherie so wichtig?
    Beitrag #36

    wie kriege ich einen Link dazu hier rein?

  7. #56
    Registriert seit
    25.01.2008
    Ort
    Hamburg
    Beiträge
    224
    Danke
    12
    Erhielt 63 Danke für 33 Beiträge

    Standard

    Ich habe es jetzt auch gelesen.

    Ich kann nachvollziehen das der Fehler ärgerlich ist auch wenn er mich nicht betrifft.

    Mir ist vor einer Weile mal der GET_ERROR Baustein aufgefallen.
    Dort gibt es den Hinweis.

    Hinweis
    Die Anweisung "Fehler lokal abfragen" aktiviert die lokale Fehlerbehandlung innerhalb eines Bausteins. Wenn "Fehler lokal abfragen" im Programmcode eines Bausteins eingefügt ist, werden voreingestellte Systemreaktionen beim Auftreten von Fehlern ignoriert.

    Könnte es sich hier um so eine Systemreaktion handeln bei dir ?

    Get_Error.jpg

    Weiterhin heißt es bei der lokalen Fehlerbehandlung

    Wenn Fehler während der Bearbeitung eines Bausteins mit lokaler Fehlerbehandlung auftreten, wird eine voreingestellte Reaktion abhängig von den folgenden Fehlerarten ausgelöst:

    • Schreibfehler: Die Fehler werden ignoriert und die Bearbeitung des Programms einfach fortgesetzt.
    • Lesefehler: Die Bearbeitung des Programms wird mit dem Ersatzwert "0" fortgesetzt.


    Das klingt fast so als ob die Globale Fehlerbehandlung die Bearbeitung abbricht, bzw. nach dem von Dir beschriebenen Verhalten.

    LokaleFehlerbehandlung.jpg
    Geändert von miasma (07.10.2016 um 11:42 Uhr) Grund: Anhang
    It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is most adaptable to change.


  8. #57
    ducati ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    3.150
    Danke
    765
    Erhielt 558 Danke für 466 Beiträge

    Standard

    Zitat Zitat von miasma Beitrag anzeigen
    Mir ist vor einer Weile mal der GET_ERROR Baustein aufgefallen.
    Den hatte ich auch mal spaßeshalber in meinem FC eingebaut. Hat aber nix geholfen, der FC wurde trotzdem nicht bearbeitet...

  9. #58
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    9.414
    Danke
    799
    Erhielt 2.772 Danke für 2.239 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    Ja, es werden 2 Zugriffsfehler im Diagnosepuffer angezeigt, Baustein wird trotzdem NICHT bearbeitet.
    Es scheint so, als ob bei dem Bug wohl tatsächlich fälschlicherweise der EN-Mechanismus zuschlägt, so wie von Thomas in #44 vermutet.

    Hilft vielleicht ein explizites "SET" direkt vor dem "CALL FC..."? Oder ein Aufruf des FC in FUP/KOP mit explizit verschaltetem EN-Eingang mit einem AlwaysTrue-Bool?


    Zum Workaround mit der Übergabe als POINTER: hier eine Variante, die funktioniert mit Verschaltungen mit PE, E, A, M, L und DB/DI für nicht optimierte FC
    Code:
    //FC "MyFC":
    // IN  : IN_POINTER : POINTER
    // TEMP: DB_Nr : WORD
    
          L     P##IN_POINTER               //Adresse des FC-IN-Parameters IN_POINTER (Typ POINTER)
          LAR1  
    
          L     W [AR1,P#0.0]               //DB-Nummer aus dem außen angeschlossenen POINTER
          T     #DB_Nr
    
          L     D [AR1,P#2.0]               //Speicherbereich + Adresse aus dem außen angeschlossenen POINTER
          LAR1
    
    //Lesen des Wortes, auf das der verschaltete POINTER zeigt, aus PE/E/A/M/L/DB/DI
          AUF   DB [#DB_Nr]                 // (*)
          L     W [AR1,P#0.0]               //Lesen des Wortes, auf das der POINTER zeigt
          T     #MyValue                    //der Wert vom eingelesenen Signal
    (*)
    Bei S7-1500: Die AUF-Anweisung eventuell nur ausführen, wenn der Speicherbereich des Pointers "DB" (B#16#84) oder "DI" (B#16#85) ist.

    Bei S7-300: die AUF-Anweisung muß nicht übersprungen werden, sie kann immer ausgeführt werden, weil bei POINTERN mit korrektem Format bei allen Speicherbereichen außer DB und DI die DB-Nummer 0 ist und "AUF DB 0" keinen Fehler wirft. Sollte bei einem POINTER inkorrekterweise eine DB-Nummer <> 0 enthalten sein, so stört das "AUF DB x" hier nicht - es sei denn, der DB existiert nicht, dann wird ein Programmierfehler (OB121) gemeldet.

    Hinweise:
    • ein POINTER enthält keine Information über Größe oder Datentyp des adressierten Bereiches, sondern nur die Anfangsadresse. Der FC kann daher nicht prüfen, ob außen z.B. EW200, EB200, ED200 oder E200.0 verschaltet ist --> er liest in allen Fällen EW200
    • Vorsicht beim Verschalten von BOOL: der FC prüft/korrigiert nicht, ob die Bitadresse .0 ist --> ein Verschalten von z.B. E200.3 löst einen Ausrichtungsfehler-Programmierfehler (OB121) aus.
    • Wenn ein POINTER auf Peripherieadressen zeigt, dann adressiert ein Lesezugriff immer PE..., ein Schreibzugriff adressiert immer PA...



    PS:
    Zitat Zitat von ducati Beitrag anzeigen
    Beitrag #36

    wie kriege ich einen Link dazu hier rein?
    Die Linkadresse kopieren, die beim Beitrag oben rechts auf dem #36 liegt.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    ducati (07.10.2016)

  11. #59
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    9.414
    Danke
    799
    Erhielt 2.772 Danke für 2.239 Beiträge

    Standard

    Was passiert eigentlich, wenn im folgenden Code das DB10.DBW100 nicht existiert? Wird der FC dann ebenfalls nicht aufgerufen?
    Code:
          CALL  "FC01"
           IN_WORD:=DB10.DBW100
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  12. #60
    ducati ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    3.150
    Danke
    765
    Erhielt 558 Danke für 466 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Was passiert eigentlich, wenn im folgenden Code das DB10.DBW100 nicht existiert? Wird der FC dann ebenfalls nicht aufgerufen?
    Code:
          CALL  "FC01"
           IN_WORD:=DB10.DBW100
    Harald
    Jo, dann wird der FC auch nicht bearbeitet !!! (Der Compiler bringt aber ne Warnmeldung und falls OB121 nicht vorhanden ist, dann geht die CPU in STOP)

    Ein SET vor dem CALL bringt nix.

    KOP/FUP hab ich noch nicht probiert

    Gruß.
    Geändert von ducati (07.10.2016 um 14:15 Uhr)

  13. Folgender Benutzer sagt Danke zu ducati für den nützlichen Beitrag:

    PN/DP (07.10.2016)

Ähnliche Themen

  1. Step 7 In SCL ermittel ob ein FB Eingang belegt ist oder nicht
    Von BlueDogi im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.06.2015, 20:35
  2. Hilfe wenn ein Beitrag oder Thema nicht freigeschaltet wird
    Von rostiger Nagel im Forum Stammtisch
    Antworten: 5
    Letzter Beitrag: 04.03.2014, 21:01
  3. Step 7 Bit wird nicht bearbeitet
    Von Der Dreschi im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 26.04.2013, 16:52
  4. Eingang wird nicht bearbeitet
    Von namseg2 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 11.03.2011, 08:12
  5. Baustein wird nicht bearbeitet
    Von rabit im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 23.09.2010, 10:48

Lesezeichen

Berechtigungen

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