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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 29 von 29

Thema: Puffer beschreiben

  1. #21
    Registriert seit
    12.04.2008
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Okay, dann ist das nun mein endgültiger Code (hoffentlich):
    Code:
           L    #Ptr
           LAR1
           L    #NeuerWert
           T    MW [AR1,P#0.0]
    
           L    #Ptr
           L    P#        2.0
           +D
           T    #Ptr
    
           L    #Pufferlaenge
           L    2
           *I
           SLD            3
           L    P#       40.0
           +D
           T    #EndePtr
    
           L    #Ptr
           L    #EndePtr
           >=D
           SPB  VOLL
           SPA Ende
    
    VOLL  :NOP  1
           S    #PufferVoll
           R    #PufferFrei
     
    Ende  :NOP  0
    Warum aber nun ein absoluter Sprung verwendet wird, statt einfach nach SPB VOLL ein BE zu notieren, ist mir noch unklar.

    Ansonsten vielen Dank für eure Hilfe!

    Gruß -PHANTOMIAS-

  2. #22
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von PHANTOMIAS Beitrag anzeigen
    ...Warum aber nun ein absoluter Sprung verwendet wird, statt einfach nach SPB VOLL ein BE zu notieren, ist mir noch unklar.
    ...
    Funktionell ist das kein Unterschied

  3. #23
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von marlob Beitrag anzeigen
    Funktionell ist das kein Unterschied
    funktionell nicht, aber die bausteingröße hängt davon ab ... allerdings nur geringfügig

    aber wenn der sprung zu end schon mal vorbereitet ist kann man da ja dann gleich weiter proggen - was? findet sich schon was!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #24
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    funktionell nicht, aber die bausteingröße hängt davon ab ... allerdings nur geringfügig

    aber wenn der sprung zu end schon mal vorbereitet ist kann man da ja dann gleich weiter proggen - was? findet sich schon was!
    Ich bevorzuge auch die Version mit dem Sprung. Genau aus dem selben Grund, falls man mal etwas weiter programmierne will. Die Bausteingrösse ist mir in dem Zusammenhang völlig egal.

  5. #25
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von marlob Beitrag anzeigen
    Ich bevorzuge auch die Version mit dem Sprung. Genau aus dem selben Grund, falls man mal etwas weiter programmierne will. Die Bausteingrösse ist mir in dem Zusammenhang völlig egal.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #26
    Registriert seit
    12.04.2008
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Okay, wenn wir grad bei Sprüngen sind (OB1)
    Code:
           U    "PufferFrei"                 // Puffer ist freigegeben
           UN   "PufferVoll"                 // Puffer ist nicht voll
           U    "NeuerMW"                    // Neuer Messwert
           FP   "FlankeNeuerMW"              // liegt als positive Flanke an
           SPB  ScPu
           BE
    ScPu  :NOP  1
           L 5
           T "PufferLang"
           CALL "SchreibePuffer"
             NeuerWert:="AblNeuMW"
             Pufferlaenge:="PufferLang"
             PufferVoll:="PufferVoll"
             PufferFrei:="PufferFrei"
             Ptr:="Pointer"
             EndePtr:="EndePointer"
           BE
    
           CALL "Blinkmeldung"
             Blink_Takt:="Blinktakt"
             Puffer_Voll:="PufferVoll"
             Blink_Ausgang:="Blinkmeldung"
    
    
           U "PufferVoll"
           FP "FlankePufferVoll"
           SPB Zeit
           BE
    Zeit   :NOP 1
           CALL "Zeitenauswertung"
             Zeiger_Anfang:="Pointer"
             Zaehler_Werte:="Wertzaehler"
             Laenge_Puffer:="PufferLang"
             Anzahl_Werte:="AnzahlWerte"
    
    BEA
    Wenn ich in ScPu reinkomme, wie geht es dann weiter? Ich müsste zurückkommen und dort das BE beendet das alles oder komme ich zum CALL "Blinkmeldung" und anschließend zu U "PufferVoll" ... ?
    In "Blinkmeldung" will ich bei jedem Durchlauf des OB1 kommen, in "Zeitenauswertung" immer wenn die Flanke anliegt.

    Zumindest ist es das was ich erwarte

    Gruß -PHANTOMIAS-

  7. #27
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    NEE!

    der OB1 endet bei dir auf jeden fall spätestens nach "SchreibePuffer" (... wenn ENO richtig belegt ist ... ) ... wie auch immer: "Blinkmeldung" wird nie aufgerufen!

    am besten: vergiss BE im OB1 ... besser is das! mach ne sprungmarke end und da springste im zweifelsfalle hin.

    glaube ein verständnisproblem zu erkennen: BE bedeutet zwar bausteinende, aber es beendet den aktuellen baustein! also, ich probier es mal, ein BE in "SchreibePuffer" beendet die abarbeitung vom Baustein "SchreibePuffer" und die abarbeitung wird in dem aufrufenden baustein, in deinem fall OB1 fortgesetzt. das BE in deinem OB1 beendet den OB1 und dieser wird vom start abgearbeitet.
    Geändert von vierlagig (17.04.2008 um 00:42 Uhr) Grund: wechstabenverbuchselung
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #28
    Registriert seit
    12.04.2008
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Okay, ich hoffe ich habe es verstanden und dieser Code im OB1 wird das so machen wie ich es gerne hätte:
    Code:
           U    "PufferFrei"                 // Puffer ist freigegeben
           UN   "PufferVoll"                 // Puffer ist nicht voll
           U    "NeuerMW"                    // Neuer Messwert
           FP   "FlankeNeuerMW"              // liegt als positive Flanke an
           SPB  ScPu
           SPA  TuEs
    
    ScPu  :NOP  1
           L 5
           T "PufferLang"
           CALL "SchreibePuffer"
             NeuerWert:="AblNeuMW"
             Pufferlaenge:="PufferLang"
             PufferVoll:="PufferVoll"
             PufferFrei:="PufferFrei"
             Ptr:="Pointer"
             EndePtr:="EndePointer"
    
    TuEs: NOP 1
           CALL "Blinkmeldung"
             Blink_Takt:="Blinktakt"
             Puffer_Voll:="PufferVoll"
             Blink_Ausgang:="Blinkmeldung"
    
    
           U "PufferVoll"
           FP "FlankePufferVoll"
           SPB Zeit
           SPA Ende
    Zeit   :NOP 1
           CALL "Zeitenauswertung"
             Zeiger_Anfang:="Pointer"
             Zaehler_Werte:="Wertzaehler"
             Laenge_Puffer:="PufferLang"
             Anzahl_Werte:="AnzahlWerte"
    
    Ende   :NOP 1
    Gruß -PHANTOMIAS-

  9. #29
    Registriert seit
    12.04.2008
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich danke Euch allen für eure Hilfe.

    Es sieht so aus in einem ersten Versuch, als ob nun alles funktionieren würde.

    Vielen Dank + Gruß -PHANTOMIAS-

Ähnliche Themen

  1. FIFO Puffer mit 32Bit
    Von Anonymous im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 22.06.2011, 18:58
  2. OP 177B Kurvenanzeige Puffer bitgetriggert
    Von The Dude im Forum HMI
    Antworten: 7
    Letzter Beitrag: 12.11.2010, 10:42
  3. E/A Puffer DB oder Merker
    Von Robot-Sun im Forum Programmierstrategien
    Antworten: 28
    Letzter Beitrag: 02.11.2008, 18:12
  4. Puffer Initialisierung
    Von PHANTOMIAS im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 12.04.2008, 22:14
  5. CP343-1 Advance / Libnodave Puffer voll?
    Von Hand im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 29.03.2007, 11:22

Lesezeichen

Berechtigungen

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