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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Zähler zählt zu schnell

  1. #11
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren

    Ich habs mir noch mal genauer angesehen, die Flanke hat ja nur einen Zyklus das VKE=TRUE, also hätte es doch gefunzt, weil ja SPBN (springe bei VKE=FALSE). Problem war wirklich nur die Temp-Variable, statt der Stat-Variable.
    Trotzdem
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  2. #12
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Gebs Beitrag anzeigen
    Hi Deep Blue,

    schau mal auf Deinen #Flanke. Als Temp-Variable nützt er Dir leider nicht viel.
    Nimm dort eine IN_OUT-Variable.

    Grüße
    Gebs

    [Edit] Helmut war mal wieder schneller! [/Edit]
    Danke Gebs, das war es!

    U ...
    L ...
    L ...

    funtioniert nicht.

    Da must du mit Sprüngen arbeiten
    Mmmmh...das versteh ich nicht. Sehe ich es denn falsch, das wenn ich:
    Code:
    L 1
    L 2
    +I
    schreibe, in der SPS folgendes passiert...

    Sie lädt die 1 ins Akku 1, lädt die 2 ins Akku 1 und schiebt die 1 ins Akku 2 und addiert danach die 2 Werte im Akku als Integer. Bis jetzt hat es jedenfalls immer so funktioniert. Aber ich will mich da nicht so weit aus dem Fenster lehnen
    Wahnsinn wohnt nur 1 Stockwerk unter dem Genie. Aber Genie ist nichts anderes, als kontrollierter Wahnsinn.

  3. #13
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Deep Blue Beitrag anzeigen
    Mmmmh...das versteh ich nicht. Sehe ich es denn falsch, das wenn ich:
    Code:
    L 1
    L 2
    +I
    schreibe, in der SPS folgendes passiert...

    Sie lädt die 1 ins Akku 1, lädt die 2 ins Akku 1 und schiebt die 1 ins Akku 2 und addiert danach die 2 Werte im Akku als Integer. Bis jetzt hat es jedenfalls immer so funktioniert. Aber ich will mich da nicht so weit aus dem Fenster lehnen
    Genau das macht sie!
    Nur das sie zuerst Akku 1 in Akku 2 schiebt und dann ladet! Sonst würde sie den Wert ja vor dem schieben überschreiben.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  4. #14
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Paule Beitrag anzeigen
    Genau das macht sie!
    Nur das sie zuerst Akku 1 in Akku 2 schiebt und dann ladet! Sonst würde sie den Wert ja vor dem schieben überschreiben.
    Ja, war natürlich anders rum gemeint. Aber dann liege ich ja mit meiner Programmiererei doch nicht so daneben
    Wahnsinn wohnt nur 1 Stockwerk unter dem Genie. Aber Genie ist nichts anderes, als kontrollierter Wahnsinn.

  5. #15
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Zitat Zitat von Gerri Beitrag anzeigen
    U ...
    L ...
    L ...

    funtioniert nicht.

    Da must du mit Sprüngen arbeiten
    Wie Gerri schon schrieb, sind Lade- und Transferfunktionen VKE-Unabhängig! Das bedeutet, es ist egal was für ein Zustand das Bit vor dem Laden hat. Geladen wird immer. Deswegen ist das U... auch sinnlos.

    Du hättest
    Code:
     
             U ...
             SPB = NEXT
             SPA = ENDE
    NEXT: L ...
             L ...
             T...
    ENDE: usw.
    Machen müssen. Dann wird nur zum Laden gesprungen, wenn vor dem SPB ein VKE=TRUE ansteht.
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  6. #16
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Das Elend geht nun weiter,

    jetzt haben wir Blut geleckt und wollten doch mir nichts - dir nichts auch noch subtrahieren. Aber da ist wieder unser erstes Problem, das der Zähler im Zyklus hoch zählt. Was ist denn nun falsch?
    Code:
    //Welche Operation soll ausgeführt werden ?
          U     #Start_Add
          SPB   Plus
          U     #Start_Sub
          SPB   Minu
          SPA   Rese
    //Addieren
    Plus: U     #Sek_TM
          FP    #Flanke
          =     #HilfsFlanke
          U     #HilfsFlanke
          L     1
          L     #DatenBst
          +D    
          T     #DatenBst
          SPA   Rese
    //Subttrahieren
    Minu: U     #Sek_TM
          FP    #Flanke
          =     #HilfsFlanke
          U     #HilfsFlanke
          L     1
          L     #DatenBst
          -D    
          T     #DatenBst
    //Nullen
    Rese: U     #Reset
          SPBN  Ende
          L     0
          T     #DatenBst
    Ende: NOP   0
    Angehängte Grafiken Angehängte Grafiken
    Wahnsinn wohnt nur 1 Stockwerk unter dem Genie. Aber Genie ist nichts anderes, als kontrollierter Wahnsinn.

  7. #17
    Registriert seit
    13.10.2007
    Beiträge
    12.035
    Danke
    2.789
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard

    Code:
    //Welche Operation soll ausgeführt werden ?
          U     #Start_Add
          SPB   Plus
          U     #Start_Sub
          SPB   Minu
          SPA   Rese
    //Addieren
    Plus: U     #Sek_TM
          FP    #Flanke
          =     #HilfsFlanke
          U     #HilfsFlanke //der gleiche Fehler wie vorhin
    SPBN Minu
          L     1
          L     #DatenBst
          +D    
          T     #DatenBst
          SPA   Rese
    //Subttrahieren
    Minu: U     #Sek_TM
          FP    #Flanke
          =     #HilfsFlanke
          U     #HilfsFlanke
    SPBN Rese
          L     1
          L     #DatenBst
          -D    
          T     #DatenBst
    //Nullen
    Rese: U     #Reset
          SPBN  Ende
          L     0
          T     #DatenBst
    Ende: NOP   0
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  8. #18
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    nix kapiert
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  9. #19
    Registriert seit
    13.10.2007
    Beiträge
    12.035
    Danke
    2.789
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard

    ich muß gerri schon wieder recht geben

    @tiefblau
    wenn du die Blaue Anweisung wegläst durchläuft die CPU die grünen Anweisungen, egal ob der Sprungmerker "1" oder "0" ist. Die
    grünen Anweisungen werden dann auch ausgefürhrt, es besteht keine Abänigkeit vom Verknüpfungsergebnis.

    Code:
    U Merker_springe SPBN ziel L zähler l 1 +i T zähler
    ziel: nop 0
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  10. Folgender Benutzer sagt Danke zu rostiger Nagel für den nützlichen Beitrag:

    Deep Blue (16.07.2009)

  11. #20
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Deep Blue Beitrag anzeigen
    Das Elend geht nun weiter,

    jetzt haben wir Blut geleckt und wollten doch mir nichts - dir nichts auch noch subtrahieren. Aber da ist wieder unser erstes Problem, das der Zähler im Zyklus hoch zählt. Was ist denn nun falsch?
    Code:
    //Welche Operation soll ausgeführt werden ?
          U     #Start_Add
          SPB   Plus
          U     #Start_Sub
          SPB   Minu
          SPA   Rese
    //Addieren
    Plus: U     #Sek_TM
          FP    #Flanke
          =     #HilfsFlanke
          U     #HilfsFlanke // das ist Käse!
          L     1
          L     #DatenBst
          +D    
          T     #DatenBst
          SPA   Rese
    //Subttrahieren
    Minu: U     #Sek_TM
          FP    #Flanke
          =     #HilfsFlanke
          U     #HilfsFlanke // das ist Käse !
          L     1
          L     #DatenBst
          -D    
          T     #DatenBst
    //Nullen
    Rese: U     #Reset
          SPBN  Ende
          L     0
          T     #DatenBst
    Ende: NOP   0
    @Deep Blue
    Hier ein Auszug aus der Step7-Hilfe:
    Die Lade- und Transferoperationen ermöglichen es Ihnen, den
    Informationsaustausch zwischen Ein- oder Ausgabebaugruppen und
    Speicherbereichen oder zwischen Speicherbereichen zu programmieren. Die CPU
    führt diese Operationen in jedem Zyklus als unbedingte Operationen aus, d. h. sie
    werden vom Verknüpfungsergebnis einer Operation nicht beeinflußt.
    Folgende Lade- und Transferoperationen stehen Ihnen zur Verfügung:


    L Lade
    L STW Lade Statuswort in AKKU 1
    LAR1 Lade Adreßregister 1 mit Inhalt von AKKU 1
    LAR1 <D> Lade Adreßregister 1 mit Pointer (32 Bit-Format)
    LAR1 AR2 Lade Adreßregister 1 mit Inhalt von Adressregister 2
    LAR2 Lade Adreßregister 2 mit Inhalt von AKKU 1
    LAR2 <D> Lade Adreßregister 2 mit Ganzzahl (32 Bit)


    T Transferiere
    T STW Transferiere AKKU 1 in Statuswort
    TAR Tausche Adreßregister 1 mit 2
    TAR1 Transferiere Adreßregister 1 in AKKU 1
    TAR1 <D> Transferiere Adreßregister 1 nach Zieladresse (32-Bit-Pointer)
    TAR1 AR2 Transferiere Adreßregister 1 in Adreßregister 2
    TAR2 Transferiere Adreßregister 2 in AKKU 1
    TAR2 <D> Transferiere Adreßregister 2 nach Zieladresse (32-Bit-Pointer)
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  12. Folgender Benutzer sagt Danke zu Approx für den nützlichen Beitrag:

    Deep Blue (16.07.2009)

Ähnliche Themen

  1. Zähler der bis unendlich zählt
    Von morpheuss im Forum Simatic
    Antworten: 40
    Letzter Beitrag: 11.04.2011, 10:50
  2. Kont. Heizen, schnell Heizen, schnell kühlen
    Von Krumnix im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 21.02.2011, 18:43
  3. Antworten: 8
    Letzter Beitrag: 05.05.2010, 19:02
  4. Schnell Zähler bei der CPU 313 C
    Von oli--pro im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 05.09.2008, 20:22
  5. Zähler zählt nicht ?
    Von Deep Blue im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.04.2008, 19:47

Lesezeichen

Berechtigungen

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