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

Ergebnis 1 bis 8 von 8

Thema: SCL Programmierung Wochentage Auswahl über HMI

  1. #1
    Registriert seit
    19.10.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Meine Aufgabe ist es eine Auswahl der Wochentag vorzunehmen über eine HMI Schnitstelle.
    An diesen Wochentagen soll dann ein gewisses Ereigniss passieren.
    Das ganze soll in SCL programmiert werden.

    Jetzt meine Frage wie schreibe ich das?

    Meine Überlegung war über jeden Button der HMI Schnitstelle ein Bit in einem DB zu setzten.

    z.B. Button SO (HMI) = DB1.DBX 0.0 = Sonntag (1)
    Button MO (HMI) = DB1.DBX 0.1 = Montag (2)
    Button DI (HMI) = DB1.DBX 0.2 = Dienstag(3)........usw.

    Das habe ich auch soweit schon fertig.
    Im SCL ist es jetzt so, sobald ein Tag aktiv ist im HMI, er mir eine Zahl (Sonntag =1, Montag = 2,....usw)
    in eine Temporäre Variable schreibt.
    Ich muss dazu sagen es können auch mehrer Tage ausgewählt werden.

    Danach soll pasieren wenn das Ereigniss z.B.an einem Montag passier ist, soll für den nächsten Tag eine Berechnung erfolgen wo das Ergebniss auf der Visu Angezeigt wird.

    Danke schon mal für die Hilfe
    Zitieren Zitieren SCL Programmierung Wochentage Auswahl über HMI  

  2. #2
    Registriert seit
    16.04.2014
    Ort
    Hamburg
    Beiträge
    49
    Danke
    3
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hi,

    Ich kann dir beim letzten Satz nicht folgen.
    Was ist nun deine Frage?

    Wir du an die Wochentage kommst oder wie du an einem darauffolgenden Tag das Ergebnis anzeigen kannst?

    Gruß

  3. #3
    marco0104 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.10.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Grüß dich,

    also mir geht es umd die Berechnung des nächsten Tages auch wenn mal einer vom Bediener nicht angewählt ist.
    Er wählt zb nur Montag und Donerstag an. Dazu soll dann in der Visu angezeigt werden das nächste Ereignis tritt dann und dann ein.

    Blöde das zu beschreiben irgendwie.


    Gruß

  4. #4
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Ich verstehe auch nicht was Du machen willst, würde aber in der Visu für Sonntag 1 nehmen, für Montag 2 usw.
    Wenn Du mit SFC1 die Uhrzeit ausliest steht dort auch der Wochentag in dieser Form drinnen.

  5. #5
    Registriert seit
    16.04.2014
    Ort
    Hamburg
    Beiträge
    49
    Danke
    3
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Ach,

    ein Countdown für das nächste Ereignis?

  6. #6
    marco0104 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.10.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich versuche es mal anhand einer Beleuchtungssteuerung zu erklären.

    Am WinCC sind 7 Button Montag bis Sonntag und ein Fenster für den Zeitraum
    Wenn Montag Dienstag und Freitag zum Beispiel gedrückt sind und ein Zeitraum von 7uhr bis 8uhr soll an diesen 3 Tagen und in diesem Zeitraum der Woche das Licht angehen und das auch immer woche für woche für woche.
    Wenn Montag das Licht angegangen ist dann soll im WinCC stehen Montag 7uhr ist das Licht angegangen und es soll da stehen Dienstag wird es um 7uhr angehen.

    Ich hoffe das warjetzt etwas verständlicher.

    Gruß

  7. #7
    Registriert seit
    16.04.2014
    Ort
    Hamburg
    Beiträge
    49
    Danke
    3
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Wenn du wie Folgt ein Array Füllst:

    arr = Array[0..13] of Bool

    So , Mo , Di , Mi , Do , Fr , Sa , So , Mo , Di , Mi , Do , Fr , Sa
    arr = [0 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 ]

    Das verdoppeln des Array ist um bei einem Überlauf wieder in der neuen Woche anzufangen.
    Also immer die Tage Doppelt setzen Montag = index 1 und 8 ...

    Dann kannst du eine Schleife durchlaufen lassen und nach dem nächsten Suchen

    bsp:
    Code:
    #arr[1] := true;  // Montag
    #arr[4] := true;  // Donnerstag
    #arr[8] := true;  // Montag
    #arr[11] := true; // Donnerstag
    #weekday := 5;  // aktueller Wochentag Fr
    #nextEventIn := 0; // init
    
    FOR #index := #weekday TO #weekday + 7 DO
        IF #arr[#index] AND #nextEventIn = 0 THEN
            #nextEventIn := #index - #weekday;
            #onDay := #index MOD 7;
        END_IF;
    END_FOR;
    
    Ergebnis 
    
    nextEventIn == 3
    onDay == 1 // Montag
    Geändert von IckeSI (21.10.2015 um 17:52 Uhr) Grund: Fehler bei den Array index

  8. #8
    marco0104 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.10.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat super geklappt, danke dir

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 15.08.2014, 12:49
  2. HMI Visualisierung + Logo Programmierung
    Von TF1978 im Forum Suche - Biete
    Antworten: 28
    Letzter Beitrag: 13.08.2013, 14:52
  3. Antworten: 1
    Letzter Beitrag: 30.01.2013, 15:35
  4. Hilfe Auswahl HMI & SPS Hersteller
    Von FlorianAmann im Forum HMI
    Antworten: 9
    Letzter Beitrag: 01.10.2010, 13:30
  5. Programmierung in S7- SCL
    Von old_willi im Forum Stammtisch
    Antworten: 5
    Letzter Beitrag: 19.06.2005, 15:29

Stichworte

Lesezeichen

Berechtigungen

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