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

Ergebnis 1 bis 9 von 9

Thema: Programmkonzept Hausautomatisierung

  1. #1
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Erste Programmversion - Licht schalten

    Ich würde gerne eine allgemeine Frage in den Raum schmeißen und bitte um eure Meinung, ob das der "richtige" Lösungsweg ist:

    Ich schreibe ein MAIN-programm, welches z.B alle 100ms läuft (=Task) und sämtliche Schalter einließt. Gesetzte Taster werden als globale Variable abgelegt (oder z.b in einem Array). Auf diese Weise verhindere ich, daß das Programm lange in einer Schleife "hängt", nur weil ein Taster lange gedrückt wird.

    Jetzt nehme ich einen 2ten Task, der wird z.B alle 300ms ausgeführt. Er überprüft die globalen variablen. ist eine Gesetzt, so schaltet das entsprechende Licht.

    Im Falle eines Dimmers besteht aber noch immer das Problem, daß auch der 2te Task evtl. lange blockiert ist. Aber wenigstens werden alle Tasterinputs erkannt, da das MAIN-Programm immer gleichschnell durchläuft, egal was es letztendlich schaltet.

    Hoffe die Frage / meine Idee der Struktur ist verständlich. Um euch nicht zu sehr mit meinem Problem aufzuhalten, reicht mir ein kurzes ja, so macht man das oder ein paar Stichwörter wie man es besser löst! DANKE!
    Zitieren Zitieren Programmkonzept Hausautomatisierung  

  2. #2
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    Wenn das Programm in einer Schleife hängt weil ein Taster gedrückt ist, stimmt was mit dem Programm nicht. Für die "normalen" Funktionen wie Licht, Dimmer, Rolladen, usw reicht ein Task alle 50ms ohne Speicherung von irgendwelchen Tastendrücken. Für Kommunikation (Ethernet) kann wegen blockierenden Funktionen ein zusätzlicher, niedriger priorisierter Task erforderlich sein.

  3. #3
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von forellengarten Beitrag anzeigen
    Im Falle eines Dimmers .........
    Ja wie dimmst denn du eigentlich? Hoffentlich nicht mit 1-10 Volt.

  4. #4
    Registriert seit
    16.11.2007
    Beiträge
    741
    Danke
    32
    Erhielt 146 Danke für 114 Beiträge

    Standard

    Ich würde für jede Aufgabe eine Task nehmen (Taskkonfiguration).

    Bei einfachem Lichtschalten geht das direkt in der Task.

    Dimmvorgänge würde ich nicht auf die altmodische Langtastendrückmethode sondern über Start-Stop-Dimmen machen.

    Als High-end dann nur noch auf Szenen setzen.

  5. #5
    Avatar von forellengarten
    forellengarten ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Start-Stop-Dimmen: Super. Geniale Idee, danke!


    @Oberchefe:
    "Wenn das Programm in einer Schleife hängt weil ein Taster gedrückt ist, stimmt was mit dem Programm nicht"...
    Damit meinte ich: das Programm wartet an der Stelle bis der Taster losgelassen wird (=Dimmer-Stop). Und in der Zeit wären dann keine anderen Schalter abgefragt worden.

  6. #6
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Wie wäre es damit für jeden Schalter einen FB zu machen, der alle 100ms ausgeführt wird? Dann braucht es für jeden Schaltertyp nur einen FB mit einem Automaten, der dann auch nicht blockierend ist.

  7. #7
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    Damit meinte ich: das Programm wartet an der Stelle bis der Taster losgelassen wird
    Das ist eine völlig falsche Vorgehensweise bei einer SPS. Eine SPS "arbeitet" das Programm von oben bis unten durch, es werden üblicherweise maximal Teile des Programms je nach Zustand von Eingängen oder Variablen nicht abgearbeitet um Zykluszeit zu sparen. Soll die Länge eines Tastendrucks abgefragt werden oder dergleichen, verwendet man einen Timer, das Programm bleibt aber deshalb nicht an einer Stelle stehen.

  8. #8
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von Oberchefe Beitrag anzeigen
    das Programm bleibt aber deshalb nicht an einer Stelle stehen....
    ....denn sonst hättest du eine CNC-Steuerung oder ein Roboter, die arbeiten Zeilenweise (i.allg.)

    Gruß

  9. #9
    Avatar von forellengarten
    forellengarten ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hm, denke hier ist eine andere denkweise als beim mikroprozessor gefragt.

    dann läuft es wohl so ab: das main-programm fragt sequenziell alle taster ab. stoßt es auf einen gedrückten taster, so startet es einen FB, der diesen taster weiter behandelt. das main-programm läuft nebenbei ungehindert weiter. der gestartete FB läuft dann wie ein eigenständiger "task" und hält mein main-programm bei seiner ausführung nicht weiter auf.

    sorry daß ich mich so anstelle - es scheint hier ein kleines grundsatzproblem zu geben

Ähnliche Themen

  1. Sensoren für die Hausautomatisierung
    Von drfunfrock im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 03.05.2011, 11:30
  2. Hausautomatisierung Wetterdaten
    Von PBO-WE im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 23.07.2009, 18:59
  3. Touchpanel für Hausautomatisierung
    Von Justus81 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 30.11.2008, 18:19
  4. Touch-Taster für Hausautomatisierung
    Von MTec im Forum Suche - Biete
    Antworten: 3
    Letzter Beitrag: 03.07.2008, 18:00

Lesezeichen

Berechtigungen

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