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

Results 1 to 6 of 6

Thread: Web-Visu Geschwindigkeit, Bedienung zeitgesteuerter Tasks, Lösung für den Zeitversatz

  1. #1
    Join Date
    07.07.2011
    Location
    Schrobenhausen/Schiefling
    Posts
    309
    Danke
    56
    Erhielt 31 Danke für 24 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi all, Ausgangssituation: Haussteuerung mit Webvisu. Bestimmte Funktionen (z.B. Heizungssteuerung) laufen in einer Task z.B. alle 10 Sekunden. In diesen Funktionen sollen Bedienungen (z.B. Umschaltung Heizbetrieb) stattfinden. Ich will in der WebVisu natürlich den Taster nicht 10 Sekunden lang festhalten bis er im nächsten Task abgefragt wird. Deshalb lasse ich heute Tasks viel schneller laufen, als es für die Funktion eigentlich erforderlich wäre. Daher denke ich an eine "Zwischenebene", in der Eingaben aus der Visu zwischengespeichert und später vom zeitgesteuerten Task abgeholt wird. Mein Lösungsansatz wäre ein array "Visuvariablen" mit struct string für den Variablennamen und bool für den Zustand. Ich scheitere aber bereits an der Übergabe des Variablennamens an das array weil ich eine Funktion "Varname_to_string" nicht gefunden habe. Oder ist mein Lösungsansatz Unsinn und es gibt eine elegantere Lösung? Grüße
    Reply With Quote Reply With Quote Web-Visu Geschwindigkeit, Bedienung zeitgesteuerter Tasks, Lösung für den Zeitversatz  

  2. #2
    Join Date
    25.02.2010
    Posts
    738
    Danke
    40
    Erhielt 156 Danke für 137 Beiträge

    Default

    Hallo Tomrey
    Das Übergeben des VarNamen der sich geändert hat halte ich für zu aufwendig (weis auch gar nicht ob es geht). Mach doch einfach ein Array oder Struct in die deine Visu alle Variablen reinschreibt und zusätzlich ein Kennungsbit was immer gesetzt wird wenn sich Daten in der Visu ändern.
    Jetzt liest du in deinem Heizungstask das Kennungsbit. ist es TRUE werden alle Variablen übernommen und anschließend zu 0 geschrieben.

    Mal abgesehen davon. Ist die Systemlast so hoch das sich das reduzieren der Taskzeit lohnt? Nur weil der Task logisch weniger Zeit braucht würde ich ihn nicht hochnehemen. Ob der Prozessor nun im Leerlauf arbeitet oder Programme abarbeitet ist letztlich egal.
    Holger

  3. #3
    tomrey is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.07.2011
    Location
    Schrobenhausen/Schiefling
    Posts
    309
    Danke
    56
    Erhielt 31 Danke für 24 Beiträge

    Default

    Hi Holger,
    danke, daß du dich mit meiner Herausforderung beschäftigst!
    Hab's im Moment so gelöst: Die Visu macht ein ASSIGN des VisuVar-Namens in eine tempVar.
    Ein Visu_lies.PRG sucht aus einem array mit allen VisuVars anhand der tempVar den Index der VisuVar raus und schreibt dann ein Kennungsbit so wie von dir vorgeschlagen.
    Nach Abarbeitung im langsamen Task setzt dieser ein Quittungsbit, das dann die array-Suchroutine als reset nutzt.
    Probleme dabei:
    1. das array muß mit allen Visuvars initialisiert werden, die in langsamen Tasks vorkommen. (Einmalaufwand, nicht so schlimm)
    2. die Visu ist solange blockiert, bis das Quittungsbit die array-Suchroutine resettet hat.
    Um das zu verhindern fällt mir nur ein, anstelle eines Visu_lies.PRG jeweils 1 FB und 1 VisuVar-array je Task zu machen..??

    Abgesehen davon: Ich glaube das lohnt sich deshalb, weil die Webvisu nur soviel Zeit bekommt, wie die Tasks übrig lassen. Deshalb habe ich alles auf zeitgesteuerte Tasks umgestellt.
    Hab aber meine Weisheizen zu 90% hier aus dem Forum...
    Grüße

  4. #4
    Join Date
    25.02.2010
    Posts
    738
    Danke
    40
    Erhielt 156 Danke für 137 Beiträge

    Default

    ich würde mir das mal nachstellen wollen.
    Mit was ist es denn gemacht Codesys2.3, 3.5, eCockpit // Version?

    das array muß mit allen Visuvars initialisiert werden, die in langsamen Tasks vorkommen.
    Von wievielen reden wir denn hier? und welcher Datentyp?
    Last edited by holgermaik; 17.05.2019 at 12:15. Reason: Frage hinzugefügt

  5. #5
    tomrey is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.07.2011
    Location
    Schrobenhausen/Schiefling
    Posts
    309
    Danke
    56
    Erhielt 31 Danke für 24 Beiträge

    Default

    here comes the code:
    var Global:
    Screen Shot 05-17-19 at 01.10 PM.JPG
    stru:
    Screen Shot 05-17-19 at 01.09 PM 002.JPG
    Die Initialisierung:
    Screen Shot 05-17-19 at 01.14 PM.JPG

    Das Visu-lese Programm:
    Screen Shot 05-17-19 at 01.09 PM.JPG
    Die Tesk-Task (10sec):
    Screen Shot 05-17-19 at 01.09 PM 001.JPG
    Die Test-Visu kommt im nächsten Beitrag...

  6. #6
    tomrey is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.07.2011
    Location
    Schrobenhausen/Schiefling
    Posts
    309
    Danke
    56
    Erhielt 31 Danke für 24 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Test-Visu:
    Screen Shot 05-17-19 at 01.16 PM.JPG
    Das ganze in 2.3
    geschätzte 20 Vars nur für die lang-Tasks,
    bool, byte und int.
    Glücklicherweise sind die boolsche mit kurz/lang-Auswertung für die Rollos und Dimmer nur im Haupt-(kurz)-Task...
    Grüße
    Last edited by tomrey; 17.05.2019 at 13:21.

Similar Threads

  1. Sonstiges Panel für Web Visu Anzeige
    By j_poool in forum HMI
    Replies: 5
    Last Post: 11.08.2016, 11:39
  2. cx9010 (web) visu für android
    By ozznet in forum CODESYS und IEC61131
    Replies: 1
    Last Post: 05.02.2016, 22:09
  3. Visu: Lichttaster und Visu-Bedienung - Anfängerfrage
    By tomrey in forum CODESYS und IEC61131
    Replies: 3
    Last Post: 15.11.2012, 12:06
  4. Replies: 9
    Last Post: 08.10.2012, 11:24
  5. Web Visu für Simatic
    By babylon05 in forum HMI
    Replies: 6
    Last Post: 01.02.2011, 20:29

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •