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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Schaltzeiten ermitteln

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forenmitglieder.

    Wir haben ein kniffliges Problem, in der Theorie auch schon gelöst, vielleicht gibt es aber was besserer/einfacheres:

    Man stelle sich einen Anlagenteil mit 12 Ventilen vor.

    Für jedes Ventile gibt es eine gewünschte Intervallzeit, wann dieses öffnen soll, sowie eine Öffnungszeit, wie lange dieses offen sein soll.
    Intervallzeit: 30min - 180min, für jedes Ventil separat einstellbar
    Öffnungszeit: 1-5min, für jedes Ventil separat einstellbar

    Jetzt wird ein Algorithmus benötigt, die Ventile so zu schalten, dass das INTERVALL zwischen den jeweiligen Auf-Impulsen maximal ist.
    Natürlich dürfen auch 2 Ventile nie gleichzeitig offen sein.

    Gruß
    Karl
    Zitieren Zitieren Schaltzeiten ermitteln  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Fängt ja schonmal damit an, dass es überhaupt keine Lösung gibt wenn:
    Sum(Tö) > Max(Tin -Tön)

    D.h. wenn für alle 12 Ventile ein Intervall (Ti) von 30 Minuten und eine Öffnungsdauer (Tö) von 5 Minuten eingestellt wird, gibt es keine Lösung.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Oder muss das Ventil nur irgendwann in der eingestellten Intervallzeit öffnen, d.h. egal wann, und nicht fest wenn 100 Minuten Intervall und 5 Minuten Öffnungszeit, dann alle 95 Minuten öffnen?

    Die Sequenzdauer nach der sich das Muster für die 12 Ventile wiederholt wird ansonsten nämlich sehr lang, wenn im ungünstigsten Fall bei allen Zeiten Primzahlen eingestellt werden.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  4. #4
    borromeus ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Sum(Tö) < Max(Tin -Tön)
    Das ganze wird jetzt manuell gemacht, pi mal Auge.
    Also das geht sich schon aus.
    Was ich noch verschwiegen habe, es können 1-12 Ventile angewählt werden, das heisst meistens sind ja nur 5-6 in Betrieb. Theoretisch können es aber 1-12 sein.

    Leider wird man aber keine fixe Sequenz finden, sondern das Öffnen wird dynamisch ermittelt.
    Unsere Lösung schaut in etwa so aus (wurde auch schon programmiert und funktioniert auch so):

    es läuft für jedes Ventil ein Integrator (T_Kx, x=1…12) vom Wunschintervall (PARA_Tx) mit TI=1
    und U=-1 nach unten (pro Sekunde zählt er 1 runter).
    Es wird das minimale Wunschintervall ermittelt, das ein Ventil hat (=T_MIN).
    Es wird die Anzahl der Ventile gezählt, die innerhalb von T_MIN betätigt werden wollen (=NUM_K).
    T_MIN/NUM_K gibt die Taktzeit (=T_TAKT).
    Wenn T_TAKT abgelaufen ist, wird das Ventil mit dem niedrigsten Wert von T_Kx geöffnet und
    die Zeit beginnt mit neu berechnetem T_TAKT erneut zu laufen.
    Wollen mehrere Ventile gleichzeitig öffnen gewinnt das, mit der niedrigsten Nummer, das andere kommt unmittelbar als nächstes.

  5. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    D.h. jemand gibt ein, dass sein Ventil alle 100 Minuten für 5 Minuten öffnen soll, aber es öffnet dann manchmal doch nicht nach 95 Minuten? Das ist aber unschön.

    Die Frage ist dann, was hat Priorität.
    Denn wenn die eingestellten Zeiten zu 100% eingehalten werden müssen, kommt man nicht umhin die Sequenzen komplett vorab zu analysieren.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  6. #6
    borromeus ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Ja Tom, unschön hin oder her, es ist die Anforderung des Betriebes, dass möglichst lange Intervalle eingehalten werden sollen, das ist die höchste Prämisse.

    zu vorab analysieren: das habe ich probiert, ich schaffe keinen deterministischen Algorythmus.
    Stell Dir auch vor, fünf Ventile sind in Betrieb und nun schaltet einer ein sechstes dazu. Den wird man nicht so einfach einreihen können, weil sich ja nun die nächsten Pausen- Intervalle verkürzen werden.

    Bei unserem Test mit realen Zeiten und Schaltdauern waren die Abweichungen im Bereich von Sekunden zu 2 Minuten.

    Aber wenn Du- und Du bist vermutlich eh dafür geeignet , etwas besseres auf Lager hast, schreib es bitte auf- softwaretechnische Umsetzung ist kein Problem... solange ich keinen Quine programmieren muss......

  7. Folgender Benutzer sagt Danke zu borromeus für den nützlichen Beitrag:

    Verpolt (21.02.2016)

  8. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Grad' nochmal drüber nachgedacht. Es wird so gut wie immer Überschneidungen geben, wenn die Intervallzeiten der einzelnen Ventile unterschiedlich eingestellt werden. Darum ist es wenig sinnvoll da vorab etwas zu analysieren. Außer man würde die eingegebenen Zeiten dann so anpassen, dass es keine Überschneidungen mehr gibt. Aber das macht dein Algorithmus ja jetzt auch.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  9. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    borromeus (22.02.2016)

  10. #8
    borromeus ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Schade, ich hatte gehofft, Dir fällt noch was- wie immer- aussergewöhnliches ein.
    Danke

  11. #9
    Registriert seit
    26.11.2012
    Ort
    Gummersbach
    Beiträge
    502
    Danke
    18
    Erhielt 71 Danke für 69 Beiträge

    Standard

    Könntest Du vielleicht noch erklären, warum die Anzahl der Ventile, der Intervall- und Öffnungszeiten variabel ist, Du aber trotzdem alle diese Ventile zeitlich verteilen musst?
    Ich verstehe gerade noch nicht, warum diese Ventile alle einzelne, unabhängige, manuell eingestellte Parameter bekommen und dann aber alle zusammen verarbeitet werden...
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  12. #10
    Registriert seit
    06.10.2003
    Beiträge
    3.410
    Danke
    449
    Erhielt 504 Danke für 407 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von borromeus Beitrag anzeigen
    ..Intervallzeit: 30min - 180min, für jedes Ventil separat einstellbar
    Öffnungszeit: 1-5min, für jedes Ventil separat einstellbar..
    Ich hätte da auch noch ein paar Fragen.

    Werden sowohl für die Intervallzeit als auch für die Öffnungszeit jeweils MIN- und MAX-Werte als Parameter vorgegeben? Es sind also insgesamt vier Parameter pro Ventil? Wie soll nach einer Freigabe gestartet werden? Was soll geschehen wenn die Aufteilung nicht mehr aufgeht? Auch wenn du sagst, in der Praxis passt das schon, so muss man es in einem Algorithmus ja irgendwie berücksichtigen.

    Vielleicht hilft die Relativitätstheorie, um einen Raum für eine neue Zeit zu schaffen ?


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Ähnliche Themen

  1. Struct im DB ermitteln
    Von marcel_ im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 02.03.2012, 16:46
  2. Schaltzeiten programieren
    Von roberthaidi im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 13.01.2012, 08:05
  3. DBW ermitteln
    Von WL7001 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 07.04.2008, 15:10
  4. Tagesleistung ermitteln
    Von HerrBert im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.03.2008, 06:45
  5. DB-Länge ermitteln
    Von Fliegertiger im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 18.12.2007, 15:39

Lesezeichen

Berechtigungen

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