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

Seite 107 von 119 ErsteErste ... 75797105106107108109117 ... LetzteLetzte
Ergebnis 1.061 bis 1.070 von 1181

Thema: TIA Frust

  1. #1061
    Registriert seit
    11.11.2008
    Ort
    Westerstede
    Beiträge
    23
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von rostiger Nagel Beitrag anzeigen
    Dann haben wir es doch jetzt, es sollte kein Zugriff auf
    Instanzvariablen erfolgen, ansonsten schmort man in der
    Hölle.

    Anscheinend sind in der Hölle mehr SPS-Programmierer als
    erwartet.

    Ich lege noch mal ein paar Stücke Holz nach.
    Und was schlägt Siemens selbst so vor ?





    Das bedeutet in diesem Fall (Baustein SINA_SPEED), dass ich z.B. für eine Drehrichtungsänderung direkt den Instanz-DB "manipulieren" MUSS, da ich ja die Schnittstelle des geschützen Bausteins nicht ändern kann.
    Gut nä?
    Noch besser finde ich in diesem Zusammenhang, dass Siemens in der Bibliothek für das Steuerwort ein UDT hinterlegt hat, diesen aber selbst in dem Baustein gar nicht verwendet.- wäre ja auch zu einfach.
    Und nun versuche man ein Word auf ein Struct zu verschieben/kopieren. Ich habe noch keine Möglichkeit gefunden - jedenfalls nicht mit optimierten DB's (welches der Instanz DB ja ist)

    Surprise, surprise.....
    Angehängte Grafiken Angehängte Grafiken
    Geändert von herrwernersens (18.07.2016 um 15:01 Uhr)

  2. #1062
    Registriert seit
    29.03.2004
    Beiträge
    5.075
    Danke
    128
    Erhielt 1.473 Danke für 1.085 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Q und ET muss man nicht zwingend mit einem Dummy beschalten. Man muss sich nur bewusst sein, dass ein direkter Zugriff auf Q und ET den Timer aktualisiert. Im selben Zyklus an verschiedenen Stellen kann Q und wird ET einen anderen Wert haben.

    Hingegen wenn man ein Dummy drauflegt bleibt der Wert den ganzen Zyklus bis zur nächsten Zuweisung gleich.
    Nicht einen Dummy auflegen, sondern eine Variable die den Wert von .Q aufnimmt, und im folgenden bei der Abfrage ob der Timer abgelaufen ist ausschließlich abgefragt werden darf.

    Wenn im Programm #TIMER_MF.Q (und ET ebenfalls) nur ein einziges Mal abgefragt wird, gibt es keine Probleme.

    Hast du aber beispielswiese:

    #boolVar1 := #TIMER_MF.Q;

    Und es überlegt sich jemand das Programm zu erweitern, und dann den Timer ebenfalls abzufragen:

    #boolVar1 := #TIMER_MF.Q;
    #boolVar2 := #TIMER_MF.Q;

    Dann kann es sein, dass bei #boolVar1 der Timer noch nicht abgelaufen ist, bei #boolVar2 aber schon. Und wenn dann im nächsten Zyklus die Bedingung für den Timer auf false steht, dann bekommt #boolVar1 niemals mit, dass der Timer abgelaufen ist.


    Jetzt müsste ich mal überlegen, ob das bei S5-Timern nicht auch schon so war. Ich habe Txx bei Verknüpfungen nie direkt verwendet, sondern immer über eine extra Variable.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  3. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    de vliegende hollander (18.07.2016)

  4. #1063
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.241
    Danke
    667
    Erhielt 575 Danke für 441 Beiträge

    Standard

    Das versteh ich jetzt nicht.

    Wenn der Timer beim ersten
    #boolVar1 := #TIMER_MF.Q;

    noch läuft also Timer_MF.q false ist, dann ist auch boolVar1 false.
    Wenn jetzt im nächsten Netzwerk der Timer abgelaufen ist. Q also true.

    Dann ist boolVar1 und 2 auch true.

    #boolVar1 := #TIMER_MF.Q;
    #boolVar2 := #TIMER_MF.Q;

    Und beim nächsten Zyklus ist boolVar1 auch true.

    Wenn das Programm nur aus
    #boolVar1 := #TIMER_MF.Q; // hier timer noch false
    #boolVar2 := #TIMER_MF.Q; // hier timer schon true

    dann ist im nächsten zyklus ja der Timer immernoch abgelaufen und q true also wird halt im zweiten zyklus boolVar1 auch noch true.

    Anders ist das ja nur wenn man den Timer mit der variable boolVar2 wieder zurücknimmt.
    Dann würde boolVar1 nicht true werden.

    Das war aber in s5 Timern auch schon so.
    Und das ist immer so wenn eine Variable mitten im Zyklus gesetzt und am ende des Zyklus zurückgesetzt wird (z.B. Reset durch HMI bei 400er oder 1500er serie ohne Zykluskontrollpunkt oder wenn Variablen aus höherprioren OBs gesetzt werden)

    mfG René

  5. #1064
    Registriert seit
    29.03.2004
    Beiträge
    5.075
    Danke
    128
    Erhielt 1.473 Danke für 1.085 Beiträge

    Standard

    Aber nicht wenn im nächsten Zyklus #TIMER_MF.IN false ist (bei einem TON). Dann sind alle abfragen auf Q ebenfalls false, weil der Timer ja nicht gestartet wurde.

    Beispielweise wenn du eine Schrittkette hast und an Timer.IN steht Vergleich auf Schrittnummer x, und mit Timer.Q wird der Schritt weitergeschaltet.

    Etwas konstruiertes Beispiel:
    Code:
    Timer1.IN := Schritt = 2;
    
    IF Schritt = 2 THEN
      MotorEin := true;
    END_IF;
    
    IF Timer1.Q then
      MotorEin := false;
    END_IF;
    
    IF Timer1.Q then
      Schritt := 3;
    END_IF;
    MotorEin bleibt unter Umständen immer ein.
    Geändert von Thomas_v2.1 (18.07.2016 um 19:06 Uhr)
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  6. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    de vliegende hollander (18.07.2016),vollmi (18.07.2016)

  7. #1065
    Registriert seit
    12.12.2013
    Ort
    Kaiserslautern
    Beiträge
    1.177
    Danke
    312
    Erhielt 179 Danke für 146 Beiträge

    Standard

    Jetzt hab ich es verstanden..
    Augen zu und durch

  8. #1066
    Registriert seit
    13.10.2007
    Beiträge
    11.527
    Danke
    2.636
    Erhielt 2.953 Danke für 2.025 Beiträge

    Standard

    Was ich nicht verstehe, warum die mal wieder nicht nach Links oder Rechts
    geschaut haben, wie es andere machen oder wie die Anwender es gerne hätten.

    Wenn sie einfach nur den Bug mit PT := 0 behoben hätten, währe 95% der
    Anwender geholfen gewesen, für die restlichen hätten die ja eine Biblothek
    mit den Namen 'Für_die_ewig_Gestrigen' einführen können die dann so Funkionen
    wie 'S5TON' usw. Beinhaltet .
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  9. Folgende 2 Benutzer sagen Danke zu rostiger Nagel für den nützlichen Beitrag:

    IBFS (21.07.2016),van (18.07.2016)

  10. #1067
    Registriert seit
    23.05.2008
    Beiträge
    121
    Danke
    55
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    [..]

    Jetzt müsste ich mal überlegen, ob das bei S5-Timern nicht auch schon so war. Ich habe Txx bei Verknüpfungen nie direkt verwendet, sondern immer über eine extra Variable.
    ja, da gab es dieses thema auch schon, ein Txx konnte innerhalb eines zyklus bei direkter abfrage verschiedene zustände haben.

  11. #1068
    Registriert seit
    29.03.2004
    Beiträge
    5.075
    Danke
    128
    Erhielt 1.473 Danke für 1.085 Beiträge

    Standard

    Wann kommt denn eigentlich die V14?
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  12. #1069
    Registriert seit
    13.10.2007
    Beiträge
    11.527
    Danke
    2.636
    Erhielt 2.953 Danke für 2.025 Beiträge

    Standard

    Im Spätherbst bzw. Frühwinter.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  13. #1070
    Registriert seit
    29.03.2004
    Beiträge
    5.075
    Danke
    128
    Erhielt 1.473 Danke für 1.085 Beiträge

    Standard

    Und dann wird endlich alles gut...
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  14. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    vollmi (21.07.2016)

Ä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
  •