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

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

Thema: Warteschleife

  1. #11
    Registriert seit
    12.08.2008
    Beiträge
    30
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ICH schreibe Werte in Variablen
    Code:
     L     0
          L     #Zaehler                    // Lädt den Zaehler und vergleicht ihn mit der 0
          ==I   
          SPB   YES3                        // Wenn es nicht der erste Durchlauf ist d.h. Zaehler > 0 werden die Nocken aktiviert on morgens bis Abends 
          L     #Zaehler
          T     #Nocken_NR
          L     12
          T     #EIN_STUNDE
          T     #EIN_MINUTE
          T     #AUS_STUNDE
          T     #AUS_MINUTE
          L     #DAY_AKTUELL
          T     #EIN_TAG
          T     #AUS_TAG
          R     #deaktiviert
          R     #taeglich
          S     "M603.7"
    Danach soll der M603.7 gesetzt werden, um die VAriablen in den DB zu schreiben.

    Nach den Zähler um 1 erhöhen die Nocken_NR erhöhen und das ganze von vorne!

    Sollte doch gehen! sehe den fehler nicht!

  2. #12
    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 Beidendorfer Beitrag anzeigen
    Sollte doch gehen!
    nö!

    Zitat Zitat von Beidendorfer Beitrag anzeigen
    sehe den fehler nicht!
    kannst du auch nicht, hast es ja nicht programmiert ... an welcher stelle schreibst du in den DB? ... dir ist klar, dass du erst deine schleife durchläufst und dann irgendwann nachher die daten in deinen db schreibst?

    vielleicht sollteste dir mal das mit den pointern und so angucken, sicher hilfreich bei dieser aufgabe
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #13
    Registriert seit
    30.08.2003
    Beiträge
    2.197
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    so wie dus es vorhast darfst du nicht mit Rücksprung arbeiten, sondern machst je Zyklus einen Durchlauf. Willst du dass alles in einem Zyklus passiert musst du das Schreiben in die Schleife mit einbauen.

    André
    www.raeppel.de
    mit innovativen SPS-Tools schneller ans Ziel ....
    Zitieren Zitieren Schleife  

  4. #14
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... was ist denn der Sinn der Übung ?
    Nach meiner bisherigen Erfahrung ist es so, dass man viel besser (und effizienter) helfen kann, wenn man verstanden hat, worum es geht ...

    Gruß
    LL

  5. #15
    Registriert seit
    12.08.2008
    Beiträge
    30
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Sinn und Zweck des ganzen soll sein

    Eine Schaltuhr zu bauen, die man an irgendeinem Tag einschalten kann und und Tage, Wochen , Monate später zu einer Bestimmten Zeit wieder ausschalten kann.
    Dazu habe ich das Program von Hartmut Lux Wochenschaltzeituhr

    http://www.sps-forum.de/showthread.php?t=9600&page=2

    Jetzt wollte ich die TAGE in einer Schleife Ein/Ausschalten

    Sollte so funktionieren!

    http://www.sps-forum.de/attachment.p...1&d=1219997668

    Code:
          UN    "M603.6"
          SPB   END6
          L     0
          T     #Zaehler                    // Zähler und Nocken Nr mit 0 Initialisieren 
          T     #Nocken_NR
          L     "MW548"                     // im OP ausgewählte Tagesanzahl
          T     #TAGE                       // Nach Tage kopieren
          L     "MW532"                     // im OP ausgewählter Wochentag
          T     #EIN_TAG                    // Nach EIN_TAG kopieren  
          L     #TAGE                       // Addition der des Starttages mit der Laufzeit
          L     #EIN_TAG
          +I    
          T     #TAGE
          T     #DAY_AKTUELL                // Werte werden auch nach DAY.. gespeichert um bei der späteren division die TAGE nicht zu verändern
    ANF2: L     #Zaehler                    // Vergleiche die TAGE und den Zähler
          L     "MW548"                     // Um das Ende des Durchlaufs zu finden
          ==I   
          SPB   YES1
          L     7                           // Vergleiche die TAGE mit der Wochentagsanzahl
          L     #TAGE
          <=I   
          SPBN  YES2                        // Wenn nicht kleiner gleich, springe zu Yes2
          L     #DAY_AKTUELL                // Lade die addition der Starttage und der Laufzeit
          L     7                           // Teile Sie durch 7 um Sie in jeder Woche einschalten zu können.
          /I    
          SRD   16                          // Das Ergebnis um 16 stellen nach rechts Schieben, um den Rest der Division zu bekommen
          T     #DAY_AKTUELL
          L     0                           //Vergleiche das Divisionsergebnis in DAY_AKTUELL mit den 0
          L     #DAY_AKTUELL
          ==D   
          SPBN  YES2                        // Wenn es 0 ist, setzte 7, da die Siemenswoche von 1..7 geht
          L     7
          T     #DAY_AKTUELL
    YES2: L     0
          L     #Zaehler                    // Lädt den Zaehler und vergleicht ihn mit der 0
          ==I   
          SPB   YES3                        // Wenn es nicht der erste Durchlauf ist d.h. Zaehler > 0 werden die Nocken aktiviert on morgens bis Abends 
          L     #Zaehler
          T     #Nocken_NR
          L     12
          T     #EIN_STUNDE
          T     #EIN_MINUTE
          T     #AUS_STUNDE
          T     #AUS_MINUTE
          L     #DAY_AKTUELL
          T     #EIN_TAG
          T     #AUS_TAG
          R     #deaktiviert
          R     #taeglich
          S     "M603.7"
          S     M    101.1
    
    YES3: NOP   0
          L     #Zaehler
          L     1
          +I    
          T     #Zaehler
          T     "MW704"
    YES1: NOP   0
    END6: NOP   0
    @sps-concept:
    Hast Recht, laufe in meiner Schleife und setzte Meine Werte erst beim nächsten Zyklus!
    Leider setzte ich meine Werde am Anfang vor mit 0
    damit ist meine Schleife Kaputt.
    Angehängte Grafiken Angehängte Grafiken

  6. #16
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Warum liest du nicht einfach die aktuelle Datum und Uhrzeit aus und vergleichst diese mit einer parametrierter-Schaltzeit?
    Eine quasi endlos-Schleife darfst du auf keinen Fall programmieren, da wird deine CPU über kurz oder lang die Krätsche machen und die anderen Anweisungen kommen nicht mehr zum Zug.
    Was ist das überhaupt ein FC oder ein FB?
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

  7. #17
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... wäre es dann nicht sinnvoller ein bestimmtes Datum zum Ein- bzw. Ausschalten zu verwenden ?
    Aber davon ab ... was soll denn konkret passieren ?
    EIN : Morgen (in einem Tag) um 8:37 Uhr
    AUS: in 77 Tagen um 11:55 Uhr
    etwa so ?

    Wenn ja, dann würde ich mir beim Einschalten den DATE laden (der beinhaltet nämlich Tage) und abspeichern und das Ausschalten bei wenn DATE = DATE(gespeichert) + 76 und der richtigen Uhrzeit ...

    Gruß
    LL

    Nachsatz:
    Kiestumpe war schneller - sagt im Grunde das selbe ...

  8. #18
    Registriert seit
    12.08.2008
    Beiträge
    30
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    DANKE LL

    Liegst da schon ganz Richig, werde meine Schaltuhr noch mal überdenken,

    Will ja auch die möglichkeit haben diese in 5 Tagen einzuschalten müsste aber auch machbar sein!

    Schön wäre das ganze ja als Kalenderforum in WINCC Flex. zu starten, aber glaube das wäre zu viel!

  9. #19
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... ohne das jetzt weiter zu hinterfragen ... aber das mit dem Kalender geht sicher auch. In dem Fall istb es m.E. mehr eine Frage, wieviel Mühe du dir damit machen willst. Persönlich würde ich hier eine direkte Datums-Eingabe realisieren. Das Andere geht sicherlich mit etwas Anschubhilfe durch die SPS ...

  10. #20
    Registriert seit
    12.08.2008
    Beiträge
    30
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe aber immer noch ein Problem,
    Habe jetzt ein TOD, wie bekomme ich da jetzt die stunde heraus? BCD umwandlund?

Lesezeichen

Berechtigungen

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