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

Results 1 to 9 of 9

Thread: Problem mit Funktionsbausteinen in TIA Portal

  1. #1
    Join Date
    14.11.2018
    Posts
    26
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich habe folgendes Problem:
    Ich habe einen Funktionsbaustein erstellt um auf ein Device zugreifen und das steuern zu können. Dazu verwende ich hauptsächlich "RDREC" und "WRREC".
    Damit greife ich über die HW-Kennung und den Index-Parameter auf die entsprechenden Werte zu.
    Er soll kompatibel für die S7-1200 und S7-1500 sein.

    Mit einem Device funktioniert dieser perfekt ohne Probleme. Nur wenn ich zwei Devices verwende, dann funktioniert immer nur der Erst verwendete. Beim zweiten erhält man dann den Status Error bei den Anweisungen für die Dezentrale Peripherie.

    Jemand eine Idee woran das liegen kann? Werden mehr Informationen benötigt?
    Reply With Quote Reply With Quote Problem mit Funktionsbausteinen in TIA Portal  

  2. #2
    Join Date
    19.08.2010
    Posts
    364
    Danke
    12
    Erhielt 76 Danke für 71 Beiträge

    Default

    Du musst glaube ich gucken das diese nicht gleichzeitig laufen.
    Gruß

    blackpeat

  3. #3
    Paule79 is offline Neuer Benutzer
    Themenstarter
    Join Date
    14.11.2018
    Posts
    26
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke für deine Antwort. Habe ich versucht. Jedoch immer einer in "Error" Stellung.

    InkedError_LI.jpg

    ID ist eben die HW-Kennung vom Gerät. Ich musste den Index Parameter... sowie den Schreibparameter unkenntlich machen.

    Ich komm einfach nicht auf den Fehler...

  4. #4
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    14,717
    Danke
    1,210
    Erhielt 4,345 Danke für 3,502 Beiträge

    Default

    Warum musst Du Parameter unkenntlich machen? Damit wir Deinen Fehler nicht sehen?

    Wenn man einen Baustein mehrmals bzw. für verschiedene Geräte aufrufen will, dann muß man alle je Aufruf/Instanz unterschiedlichen Parameter (als Aufrufparameter) übergeben und im Baustein nicht fest sondern mit den übergebenen Parametern beschalten.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Paule79 is offline Neuer Benutzer
    Themenstarter
    Join Date
    14.11.2018
    Posts
    26
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo Harald,
    danke für deine Antwort. Nein, es sind Daten die ich nicht nach außen geben soll/darf. Bin Student und aktuell in der Praxisphase in einer Firma.

    Ich bin hingegangen und habe die EN (enable) Eingänge der Bausteine immer so beschaltet, damit ich den richtigen aktiviert habe. Aber es funktioniert nicht wie gedacht.
    Verstehe ich deinen Text richtig, dass ich die unterschiedlichen Parameter von außen eingeben? Jedoch unterscheiden die Geräte sich nur in der HW-Kennung. Die Zugriffsparameter (Index) sind identisch.

    Paul

  6. #6
    Join Date
    19.08.2010
    Posts
    364
    Danke
    12
    Erhielt 76 Danke für 71 Beiträge

    Default

    Nutzt du vielleicht zweimal die gleiche Instanz?
    Gruß

    blackpeat

  7. #7
    Join Date
    05.06.2018
    Location
    Landkreis Osnabrück
    Posts
    306
    Danke
    27
    Erhielt 50 Danke für 37 Beiträge

    Default

    Quote Originally Posted by Paule79 View Post
    Hallo Harald,
    danke für deine Antwort. Nein, es sind Daten die ich nicht nach außen geben soll/darf. Bin Student und aktuell in der Praxisphase in einer Firma.

    Ich bin hingegangen und habe die EN (enable) Eingänge der Bausteine immer so beschaltet, damit ich den richtigen aktiviert habe. Aber es funktioniert nicht wie gedacht.
    Verstehe ich deinen Text richtig, dass ich die unterschiedlichen Parameter von außen eingeben? Jedoch unterscheiden die Geräte sich nur in der HW-Kennung. Die Zugriffsparameter (Index) sind identisch.

    Paul
    Dein Problem ist das Du den Baustein etwa 100 mal oder häufiger aufrufst.

    EN zu deaktivieren/aktivieren ist der falsche Weg. Damit nimmt man Bausteine komplett raus. Wenn aber nun eine Verbindung angestossen wurde, diese nicht beendet, enable aber wegfällt, dann gibts keinen Abschluss. Timeout dauert.

    Weiters hast Du REQ=1 - Heisst, mit jedem Zyklus aktivierst Du eine Aufgabe, daher die zu häufigen Aufrufe.
    Die CPU wird damit nicht klarkommen und alle Ressourcen belegen, wodurch sie binnen kürzester Zeit auf Error geht, je nach Dauer des Aufrufs sogar bevor der erste Aufruf beendet wurde.
    Wenn man read dann write programmiert, dann würde der read den write dauerhaft blockieren, in jedem Zyklus.

    Besser ist z.B.:
    Merker nutzen:
    1, wenn RDREC done meldet
    0 wenn WRREC done meldet

    Aufruf:
    RDREC wenn Merker=0 und RDREC_Busy false und WRREC Busy false
    S Merker P_Trig RDREC_DONE
    WRREC wenn Merker=1 und RDREC_Busy=false und WRREC Busy=false and RDREC_error=false
    R Merker P_Trig WRREC_DONE

    Dann würden immer abwechselnd diese beiden Bausteine den gleichen Bereich lesen, dann schreiben, letzteres aber nur wenn Read keinen Fehler verursacht hat. Dann würde man das Schreiben in der Regel weglassen und eine Fehlerbehandlung durchführen.
    Ein Aufruf geht über mehrere Zyklen, halt so lang wie es dauert.

    Da Du einen FB nutzen willst (mache ich auch immer), einfach im statischen Teil "Aufrufmerker":bool

    Der obere Aufruf ist kurz gehalten, kann natürlich größer werden je nachdem was Du brauchst.
    Wenn Du mehrere FBs nutzen willst kann ab einer bestimmten Anzahl auch ein Ressourcenproblem aufkommen. Das unterbindest Du indem Du die Anzahl vorhandener Ressource ausschöpfst und nur soviele FBs starten lässt wie auch vorhandene Ressourcen benötigt werden.
    Also bei 500 Aufrufen zum Beispiel 50 Aufrufe mit je 10 Ressourcenanbindungen gleichzeitig. Heisst - 50 Durchläufe. Wie lang das dauert und ob es sinnvoll ist, ist eine andere Frage.

    Warum nochmal ist eine Geheimhaltung des Index nötig? Da sieht glaube ich keiner einen Sinn drin.


    EDIT: Ich sehe, das alle Ä Ö Ü unleserlich sind. Kommt bei mir häufiger vor. Kann mir jemand den Workaround geben? Nutze Win10/Chrome. Sorry das ich die Fehler da grad nicht rausnehme.
    Last edited by escride1; 07.09.2019 at 08:25.

  8. #8
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    14,717
    Danke
    1,210
    Erhielt 4,345 Danke für 3,502 Beiträge

    Default

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    Paule79 is offline Neuer Benutzer
    Themenstarter
    Join Date
    14.11.2018
    Posts
    26
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo escride1,

    vielen Dank für deine Nachricht, auch wenn das danke ziemlich spät kommt!
    Ich war wieder in der Theoriephase und habe deshalb nicht weiter an diesem Projekt gearbeitet.
    Jetzt geht es eben weiter.
    Danke ich werde mir das anschauen und mich ggfs. bei fragen helfen!

Similar Threads

  1. Replies: 0
    Last Post: 27.05.2019, 07:38
  2. Replies: 16
    Last Post: 30.08.2018, 14:45
  3. TIA TIA Portal 12 und S7-300 Problem
    By ToniMahoni in forum Simatic
    Replies: 8
    Last Post: 24.08.2016, 09:47
  4. Replies: 4
    Last Post: 27.05.2015, 08:01
  5. Replies: 24
    Last Post: 05.06.2012, 14:55

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •