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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Zykluskontrollpunkt S7-1200 und S7-1500 mit HMI

  1. #11
    Avatar von hubert
    hubert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Miteinander,

    da bin ich ja schon beruhigt dass es nicht nur mit so geht. Aber wenn ich schon höre, dass bei "Ralph" die Sache schon 8 Monate bekannt ist und Siemens immer noch keine Lösung hat finde ich das sehr traurig. Es sollte zumindestens Siemens Wissen, wie ihre neue CPU Serien intern arbeitet und wie die Kommunikation zum Bediengerät funktioniert.
    Wir haben auch schon wegen der Sache Kontakt mit Siemens aufgenommen, aber so richtig konnten Sie uns auch nicht weiterhelfen.

    Wir haben bis jetzt S7-300 und S7-200 im Einsatz gehabt und da hatten wir die Problem mit diesem Phänomen noch nicht. Bei der S7-400 kann ich nicht viel sagen, die ist bei uns sehr sehr selten im Einsatz.
    Wir hatten das Problem erst in letzter Zeit mit der S7-1200, da wir nun unsere ganzen Standardanlage auf diese Umstellen müssen. Und hier haben wir halt nun vermehrt das Problem, dass wir die Werte mehrfach eingeben mussten.

    Aber mal eine Frage an die Runde. Wir habt ihr das bei der S7-400 immer gebacht, wenn ihr Paramter über das Bediengerät geändert habt und auch diese Werte evtl. durch Überprüfungen in der S7-400 geändert habt? Würde mich einfach nur interessieren.
    MfG

    Hubert

    \"Never change a running system. \"

  2. #12
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Zitat Zitat von hubert Beitrag anzeigen
    @PN/DP
    Wie würdest du so einen Zykluskontrollpunkt definieren, wenn du bestimmte Eingabewerte am HMI auch durch die SPS evtl. verändern musst bzw sie begrenzen würdest?
    Ich weiß jetzt nicht, ob das TIA-SCL den Code so frißt, aber ungefähr so würde ich das machen:
    Code:
    FUNCTION Check_HMI_Var_Int : BOOL
    VAR_INPUT
        HMI_Var : INT ;                  //zu prüfende Variable vom HMI
        Maxwert : INT ;
        Minwert : INT ;
    END_VAR
    VAR_OUTPUT
        PLC_Var : INT ;                  //Arbeitskopie in der PLC
        xKorrektur : BOOL ;              //True: HMI-Var muß korrigiert werden
    END_VAR
    VAR_TEMP
        Tmp_Var : INT ;
    END_VAR
    
        Tmp_Var := HMI_Var ;             //HMI_Var vorsichtshalber kopieren, falls Übergabe ByRef
    
        xKorrektur := True ;
        IF Tmp_Var > Maxwert THEN        //größer Maxwert?
            Tmp_Var := Maxwert ;         //auf Maxwert setzen
        ELSIF Tmp_Var < Minwert THEN     //kleiner Minwert?
            Tmp_Var := Minwert ;         //auf Minwert setzen
        ELSE
            xKorrektur := False ;
        END_IF;
        
        PLC_Var := Tmp_Var ;             //die geprüfte und ggf. korrigierte Arbeitskopie
        Check_HMI_Var_Int := xKorrektur ;
    
    END_FUNCTION
    Aufruf der Function:
    Code:
    // Check HMI_Var_1
        Check_HMI_Var_Int(
                 HMI_Var := HMI_Var_1    //hier der einzige Lesezugriff auf die HMI_Variable
                ,Maxwert := 100
                ,Minwert := 0
                ,PLC_Var => PLC_Var_1    //die Kopie, mit der das PLC-Programm arbeitet
             ,xKorrektur => Tmp_BOOL_Var
        );
     
        IF Tmp_BOOL_Var THEN
            HMI_Var_1 := PLC_Var_1 ;     //ggf. Korrektur auf HMI_Variable zurückschreiben
        END_IF;
    
    // oder:
    
    // Check HMI_Var_2
        IF Check_HMI_Var_Int(
                 HMI_Var := HMI_Var_2    //hier der einzige Lesezugriff auf die HMI_Variable
                ,Maxwert := 100
                ,Minwert := 0
                ,PLC_Var => PLC_Var_2    //die Kopie, mit der das PLC-Programm arbeitet
             ,xKorrektur => Tmp_BOOL_Var
        ) THEN
            HMI_Var_2 := PLC_Var_2 ;     //ggf. Korrektur auf HMI_Variable zurückschreiben
        END_IF;
    Das PLC-Programm arbeitet mit einer Kopie der HMI-Variable, welche nur ein einziges mal gelesen wird.

    Das PLC-Programm schreibt nur dann auf die HMI-Variable wenn es zur Korrektur nötig ist - hat dann aber Vorrang vor einer äußerst unwahrscheinlichen Änderung der HMI-Variable während der FC-Abarbeitung (dazu müßte sich die HMI-Variable vor UND während der FC-Bearbeitung ändern, also zweimal).

    Das PLC-Programm kann auch gelegentlich Werte auf die HMI-Variable schreiben. Solange das nicht in jedem OB1-Zyklus passiert ist die Chance für eine Kollision mit Schreiben vom HMI äußerst gering. Der Bediener müßte zur selben Zeit einen Eingabewert ändern wenn auch das PLC-Programm meint einen Wert zuweisen zu müssen.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #13
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    @PN/DP
    Mich stinkt es an, den TIA-Design-Pfusch mittels Codegebastel glatt zu ziehen.
    Das führt jedes Migrationgesülze ad Absudum, oder?

    btw. Mit S7-400 hatte ich bisher auch keine Problem mit Classic-S7

    Also ..... SIEMENS ... in TIA V14 den Fehler beheben .... fertig!
    Grüße Frank

  4. #14
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Den "Designfehler" gibt es "schon immer"; er kommt einfach daher, wenn man entscheidet, daß die Kommunikation für "bessere" Performance jederzeit Variablen beschreiben darf und nicht nur im Zykluskontrollpunkt. Bei S7-300 gab es anfangs sowas nicht und die später eingeführte "priorisierte BuB-Kommunikation" kann man abschalten. Bei S7-318 und S7-400 besteht das Problem schon, jedoch die CPUen welche ich kenne steuern große Anlagen und die Zykluszeiten sind meist entsprechend hoch, so daß das Problem kaum auffällt. Man muß es halt wissen und sein Programm entsprechend aufbauen. Wobei Siemens allerdings eine perfekte Lösung verhindert, weil man in S7 Speicherzugriffe nicht verriegeln kann.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #15
    Avatar von hubert
    hubert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    @PN/DP

    ja das stimmt. Bei der S7-400 und S7-318 ist mir die Sache bekannt. Bei der S7-300 ist es halt noch nie so aufgefallen, wie jetzt bei der S7-1200. Wobei ich das momentan auch so sehen, dass die S7-1200 eher ein Ersatz für die S7-200 ist und nach meiner Ansicht nicht weiklich in die S7-300 rein geht.
    Aber dein Ansatz mit dem getrennten HMI und SPS-Bereich ist auf jedenfall gut nur braucht man leider den Doppelt DB's Speicher um das zu machen und der normale Programmspeicher ist auch nicht unerheblich. Ich hoffe das Siemens hier eine performate Lösung hat, dass diese Phänomene nicht mehr so offensichtlich auftreten.

    Wobei ich persönlich der Bin, dass die meiste Zeit ein HMI dran hängt und da ist es mir persönlich nicht so wichtig, dass Variablen im 100ms Takt in die SPS geschrieben werden. Wenn ich große SCADA Systeme wie WINCC anschau, da sind an der Visu Reaktionszeit von 2 Sekunden ganz normal.
    MfG

    Hubert

    \"Never change a running system. \"

  6. #16
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Wie kann es drehen und wenden, es ist dem Kunden nicht zuzumuten Variablenwerte
    doppel oder dreifach eingeben zu müssen. Auch will ich nicht, außer der gewohnten
    EINGABE/AUSGABE-HMI-Anbindung, da doch ein Haufen Zusatzaufwand haben.

    Die Powerpoints reden allen immer ein, alles wird besser in effizienter ....
    da habe ich keine Lust auf - zugegebenermaßen - hübsche Workarounds.

    Der Kostendruck führt eher dazu, dass man weniger Zeit für ein Projekt hat.
    Wenn dann TIA zäh wie Kaugummi ist und man noch einen Haufen extra
    programmieren muss, dann wird man nicht fertig.
    Grüße Frank

  7. #17
    Avatar von hubert
    hubert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    @IBFS
    ja das stimmt. Den Vertrieblern wird in den ganzen Veranstaltungen weiß gemacht alles wir schneller besser und effizienter. Aber genau das Gegenteil ist momentan der Fall.
    Wie man mit TIA sieht, wird einem Hardcore Programmierer immer mehr von effizient abgenommen und er wird immer stärker in eine starres Korsett gezwängt.

    Aber man kann da leider nicht mehr viel machen. Die Dampfwalze TIA ist am anrollen. Irgendwie müssen wir uns damit anfreunden. Nur sind auch wir momentan gedrungen auf die Entwicklung von Siemens zurück zugreifen, da der Zustand auch für unsere Kunden nicht zumutbar war. Da wir dann gleich gesagt, vorher ist das alles gegangen und nun soll das auf einmal nicht mehr gehen.
    Aber bei all dem Tadl an Siemens. Das neue TIA hat auch machmal seine guten Dinge. Es ist nicht alles schlecht .
    MfG

    Hubert

    \"Never change a running system. \"

  8. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Ich habe wenig Erfahrung mit TIA (und eigentlich fast nur schlechte), doch bei diesem Problem muß ich TIA in Schutz nehmen. Denn das Problem ist kein neues TIA-Problem, das Problem existiert schon mindestens seit es die S7-400 gibt. Und es ist eigentlich kein Problem, sondern eine Standard-Aufgabe der Prozesssynchronisation und Interprozesskommunikation in Multitasking/Multithreading-Umgebungen. Das Problem ist erst deshalb ein auch für den Siemens-Support scheinbar unlösbares Problem, weil Siemens es versäumt hat, die dazu nötigen atomaren Operationen in Step7 vorzusehen, damit man Race Condition-Konstellationen vermeiden kann.

    Man kann es nicht TIA anlasten, wenn man durch den Umgang mit S7-300 und deren Zykluskontrollpunkt quasi verwöhnt wurde und sich bisher keine Gedanken um Prozesssynchronisation und Interprozesskommunikation machen mußte.

    Ich glaube zwar nicht, daß die SFC41 "DIS_AIRT" und SFC42 "EN_AIRT" zum temporären Verzögern von Interrupts auch die Kommunikationszugriffe sperrt, doch Ihr könntet ja mal auf Eurer S7-1200 ohne alles umzuprogrammieren folgendes ausprobieren:
    - die Anweisung DIS_AIRT einfügen (Interrupts verzögern)
    - Euren vorhandenen kritischen Code mit der Prüfung und Korrektur von HMI-Variablen
    - die Anweisung EN_AIRT einfügen (Interrupts freigeben)
    (en bloc oder ggf. vor und hinter jeder Eurer kritischen Stellen anwenden)

    Ich meine, die beste Lösung wäre, wenn man wählen/einstellen könnte, ob man Variablen-Zugriffe der Kommunikation nur im Zykluskontrollpunkt oder jederzeit zulassen will. Dann würde ich das wegen der einfacheren Programmierung nur zulassen, wenn ich die höhere Kommunikationsperformance tatsächlich brauche - wüsste dann aber, daß ich die höhere Performance mir erhöhtem Programmieraufwand für die Zugriffs-Synchronisation bezahlen muß.
    Aber mich fragt Siemens ja nicht

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgende 3 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    Credofire (09.01.2015),Jo (21.05.2014),Pipboy (21.05.2014)

  10. #19
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von rr_zx Beitrag anzeigen
    Wir hatten auch solche Probleme.
    Bis heute ist der Fall aber bei Siemens nicht gelöst. (scho 8Monate offen)
    Zitat Zitat von rr_zx Beitrag anzeigen
    Siemens konnte uns auch nicht das genau Verhalten des Datenaustausches sagen. Aber ich hoffe das wir irgendwan noch eine Antwort erhalten.
    Hallo Ralph,

    hast Du von Siemens eine Antwort mit Lösung erhalten?

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. TIA S7-1500 HMI-Kommunikation (Zykluskontrollpunkt)
    Von steuerung im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 08.01.2014, 13:39
  2. TIA S7-1500 >>> s7-1200
    Von kuti im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 08.07.2013, 20:52
  3. TIA HMI - KTP 400 und S7-1200
    Von Zeta90 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 03.07.2013, 21:24
  4. S7 1200, 1500 in AWL programmierbar?
    Von Flux im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 16.01.2013, 09:46
  5. Verbindungsproblem mit Logo 0BA7, S7 1200 und HMI
    Von piksieben im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 09.01.2013, 17:00

Lesezeichen

Berechtigungen

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