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

Seite 98 von 119 ErsteErste ... 488896979899100108 ... LetzteLetzte
Ergebnis 971 bis 980 von 1181

Thema: TIA Frust

  1. #971
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    11.851
    Danke
    500
    Erhielt 2.591 Danke für 1.870 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich behaupte mal, TIA ist mit Upd8 Absturzanfälliger geworden.
    Heute schon 3 Mal vorzugsweise bei irgendwelchen Drag- und Drop-Versuchen.
    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

  2. #972
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.255
    Danke
    669
    Erhielt 576 Danke für 442 Beiträge

    Standard

    Das konnte ich nicht feststellen, allerdings geht TIA seit dem Upd8 nicht mehr in Standby sondern hängt sich immer auf sobald das Notebook auf Standby oder hybernation geht.

    mfG René

  3. #973
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    9.418
    Danke
    800
    Erhielt 2.773 Danke für 2.240 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Ich hab gerade einen FB gestestet und mich gewundert, dass mein "Start", der über eine INOUT kommt und im FB dann nach einem Handshake zurückgesetzt wird, nur sporadisch (eher selten) funktionierte. An der INOUT steht eine DB-Variable, die ich über eine Beobachtungstabelle gesetzt habe.
    Kann man bei den TIA-Beobachtungstabellen den Trigger-/Schreibzeitpunkt festlegen? (bei Step7 classic geht das)


    Zitat Zitat von Ralle Beitrag anzeigen
    Kann es sein, dass hier auch dieser ominöse Zykluskontrollpunkt eine Rolle spielt? Passiert das etwa auch, wenn ich das so über die HMI machen will? Muß man also solche INOUT immer "Zwischenpuffern"?
    Einfache Variablen an IN_OUTs kann man nicht in Multitasking-Umgebungen verwenden, ebenso wenn es keinen kontrollierten HMI-Zugriffszeitpunkt gibt. Der HMI-Zugriff gleicht einer Unterbrechung durch eine höherpriore Task (z.B. OB3x)

    Weil die HMI-Kommunikation nun "effizient" irgendwann im Zyklus zuschlägt kann es folglich passieren, daß es genau dann passiert, wenn die Instanz bearbeitet wird. Wenn die HMI-Variable eine an einem INOUT-Parameter angeschlossene einfache Variable ist, dann werden Variablen-Änderungen während der Instanzbearbeitung nicht erkannt bzw. überschrieben. Die HMI muß direkt in die Instanz schreiben oder die HMI-Variable muß auf eine IN-Variable kopiert werden:
    Code:
    U "HMI_Bit"
    R "HMI_Bit"
    = #temp_HMI_Bit
    
    CALL FB123, DB123
     IN_Var:=#temp_HMI_Bit
    Auf Variablen, welche in einer anderen Task beschrieben werden, darf man außerdem nur ein einziges mal lesend zugreifen, weil sie sich zwischen den Lesezugriffen verändert haben können.
    Variablen, die in der HMI angezeigt werden, dürfen nur ein einziges mal beschrieben werden. Gibt es mehrere Schreibzugriffe mit verschiedenen Werten, dann wird die Anzeige auf der HMI flackern (z.B. wenn man zunächst "vorsichtshalber" initialisiert und später einen anderen Wert zuweist).

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    ducati (29.03.2016)

  5. #974
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    11.851
    Danke
    500
    Erhielt 2.591 Danke für 1.870 Beiträge

    Standard

    @PN/DP

    Triggerzeitpunkt seh ich mir mal an. In der Beobachtungstabelle ist das an sich nicht soooo schlimm, aber in der HMI ... wirklich furchtbar.
    So müssen jetzt alle aus der HMI in die PLC geschriebenen Variablen, die an eine INOUT gehen wie in deinem o.g. Bsp. umgesetzt werden.
    Vielleicht ist es besser gleich auf INOUT für diese Zwecke zu verzichten, schade, war immer ganz gut zu lösen, mit dem Rücksetzen des Starts im FB, nach getaner Arbeit. Geht natürlich auch anders zu lösen, eine IN als Start und eine DONE, das dann desn Start außerhalb des FB zurücksetzt. Mal sehen.

    Zu deinem obigen Code:

    Man kann es bei der INOUT belassen, funktioniert dann auch noch (Test heute), ist ja schon fast ein Zykluskontrollpunkt.
    Geändert von Ralle (29.03.2016 um 22:31 Uhr)
    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

  6. #975
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    9.418
    Danke
    800
    Erhielt 2.773 Danke für 2.240 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Zu deinem obigen Code:

    Man kann es bei der INOUT belassen, funktioniert dann auch noch (Test heute), ist ja schon fast ein Zykluskontrollpunkt.
    Wie meinst Du das?

    Der INOUT darf nicht beschaltet werden (bzw. nur mit zusammengesetzten Variablen oder einer extra beschriebenen Variablen-Kopie), weil sonst nach Ende des FB der INOUT in die angeschaltete Variable zurückkopiert wird und zwischenzeitliche Änderungen der angeschalteten Variable dadurch überschrieben werden und verloren gehen. Wie willst Du Dir merken bzw. dokumentieren, daß ein nach außen geführter INOUT nicht beschaltet werden darf? Dann besser ganz weglassen.

    Bei dem gezeigten Umkopieren auf einen IN ist ein Beschreiben/Rücksetzen im FB nicht nötig, der IN ist eh nur 1 Zyklus lang TRUE.

    Harald
    Geändert von PN/DP (29.03.2016 um 23:00 Uhr)
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #976
    Registriert seit
    13.10.2007
    Beiträge
    11.537
    Danke
    2.648
    Erhielt 2.967 Danke für 2.030 Beiträge

    Standard

    Code:
    U "HMI_Bit"
    R "HMI_Bit"
    = #temp_HMI_Bit
    
    CALL FB123, DB123
     IN_Var:=#temp_HMI_Bit
    Ich finde das doch wieder schwach das man sich mit solchen Krücken helfen muß, das
    hätte man auch besser lösen können, wenn man sich seine Kundschaft vergrault, bei
    der neuentwicklung einer Software.

    Warum können die nicht einen Typen-Kontrollpunkt einführen, bei den ich einen Hacken
    setze, das ich diesen nutzen möchte oder nicht.
    Das Code geschnipsel passt doch eher zu S5 Zeiten als zu TIA, macht ein Programm
    unübersichtlich und bläht es auf. Überwachung ob eine Variable aus der HMI gesetzt
    bleibt, im falle das die Verbindung abreißt, so etwas hat die Steuerung im Hintergrund
    zu erledigen, reißt die Verbindung ab, wird im Typen-Kontrollpunkt die Variable auf einen
    definierten Wert gesetzt, so wird das gemacht .... aber nicht bei Siemens, die bleiben lieber
    im S5 Zeit-Alter mit Cloud anbindung.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  8. #977
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    11.851
    Danke
    500
    Erhielt 2.591 Danke für 1.870 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Wie meinst Du das?

    Der INOUT darf nicht beschaltet werden (bzw. nur mit zusammengesetzten Variablen oder einer extra beschriebenen Variablen-Kopie), weil sonst nach Ende des FB der INOUT in die angeschaltete Variable zurückkopiert wird und zwischenzeitliche Änderungen der angeschalteten Variable dadurch überschrieben werden und verloren gehen. Wie willst Du Dir merken bzw. dokumentieren, daß ein nach außen geführter INOUT nicht beschaltet werden darf? Dann besser ganz weglassen.

    Bei dem gezeigten Umkopieren auf einen IN ist ein Beschreiben/Rücksetzen im FB nicht nötig, der IN ist eh nur 1 Zyklus lang TRUE.

    Harald
    Es muß kein In-Var sein, ich (in meinem Fall) kann die vorhandene INOUT so belassen, wenn ich vohrer in eine Var umkopiert, so meine ich das.
    Das hatte ich gestern dann auch als Lösung gefunden und das hat funktioniert.

    Es betrifft natürlich nur Variablen, die man irgendwie als Flanke von der HMI rüberbringen möchte. Krass wird es halt beim Steuern von Variablen per Einmal-Flanke aus dem TIA /Step7 heraus, das hat mich erst wieder auf die Problematik gestoßen.
    Läßt man so ein Signal (Button gedrückt) länger anstehen, dann funktioniert das auch, eine Flankenbildung (vor oder im FB) wäre dann sicher angebracht.
    Mal sehen wie rum ich das lösen.
    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

  9. #978
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.255
    Danke
    669
    Erhielt 576 Danke für 442 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Läßt man so ein Signal (Button gedrückt) länger anstehen, dann funktioniert das auch, eine Flankenbildung (vor oder im FB) wäre dann sicher angebracht.
    Mal sehen wie rum ich das lösen.
    Bei mir sind diese Sachen in Strukturen gelöst (bei der 400er war das mit dem Zykluskontrollpunkt schon immer so ein Thema).
    Wenn man eine Struktur anhängt wird ja nur ein Pointer übergeben. Die Laufzeit des Bausteins spielt dann also keine Rolle mehr. Und es wird keine Kopie im Temp/Stat/IDB whatever angelegt.

    Code:
    IF #Bedienung.Sort THEN // Auslöser von HMI per IN/OUT übergeben
        #Bedienung.Sort := false; // Quittierung Auslöser
        REPEAT
            #swapped := false;
            FOR #index := 1000 TO 1 BY -1 DO
                IF #values_sortet.ArraySort[#index - 1] > #values_sortet.ArraySort[#index] THEN
                    #merker := #values_sortet.ArraySort[#index];
                    #values_sortet.ArraySort[#index] := #values_sortet.ArraySort[#index - 1];
                    #values_sortet.ArraySort[#index - 1] := #merker;
                    #swapped := true;
                END_IF;
            END_FOR;
        UNTIL NOT #swapped
        END_REPEAT;
    END_IF;
    Und wie gesagt das war schon in Classic ein Problem mit HMI als auch Fetch/Write von fremd.
    Und ich mach das eigentlich immer so. Zu quittierende Sachen werden von der HMI z.B per Klicken gesetzt. Und dann von der PLC zurückgesetzt und zwar nicht nach ausführen der Funktion sondern direkt nach erkennen der Anforderung.

    mfG René

  10. #979
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    11.851
    Danke
    500
    Erhielt 2.591 Danke für 1.870 Beiträge

    Standard

    @vollmi

    Ja richtig, ich hab aber nicht für alles Strukturen verwendet, irgendwie mag ich es, wenn man außen am Baustein auch noch sieht, was da rein geht. (Freigabe, Start etc.) Aber das ist ja, wie bei vielen Dingen, Ansichtssache.
    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

  11. #980
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.255
    Danke
    669
    Erhielt 576 Danke für 442 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wie läuft das eigentlich bei anderen SPSen? SAIA? Codesys?

    mfG René

Ähnliche Themen

  1. [TIA-V11] Rechnet TIA falsch bei SCL
    Von BlackLizzard im Forum Simatic
    Antworten: 43
    Letzter Beitrag: 09.02.2016, 02:59
  2. Frust mit SPS/Step7
    Von plc_from_hell im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 03.03.2015, 17:52
  3. Antworten: 21
    Letzter Beitrag: 08.10.2014, 13:36
  4. Frust mit der Projektpflege
    Von Jens_Ohm im Forum Sonstige Steuerungen
    Antworten: 16
    Letzter Beitrag: 10.01.2008, 07:25

Lesezeichen

Berechtigungen

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