Eigene Task für Syslibfile

Anonymous
2011-02-18
2011-02-21
  • Anonymous - 2011-02-18

    Originally created by: ca

    Hallo,
    in der Doku zur Syslibfile.lib von Wago steht folgendes.

    Dieser Befehl arbeitet blockierend. Es ist deshalb sinnvoll, File Operationen
    in einer eigenen Task auszuführen.

    Was ja soweit kein Problem wäre, aber bei allen Beispielen die ich gesehen habe läuft eigentlich das ganze Programm in dieser Task. Wenn ich aber das eigentliche Steuerungsprogramm in einer andern Task laufen lasse, damit es von dem Dateihandling nicht beeinträchtigt wird, muss ich die Daten die ich schreiben will von der einen in die andere Task übergeben. Wie kann ich das machen, ohne dass ein gleichzeitiger Zugriff, den Programmablauf stört.

    Oder sehe ich da ein Problem, dass es nicht gibt?

    Schönen Tag
    Christian

     
  • KlOis - 2011-02-21

    Morgen,

    Zitat:
    Oder sehe ich da ein Problem, dass es nicht gibt?

    Doch das ist ein Problem.
    Du kannst global eine Verriegelung einbauen. Dazu deklarierst du global eine BOOL-Variable. Wenn du in einem Task auf die Daten zugreifen willst, überprüfst du ob die Vraiable TRUE ist, wenn nicht setzt du sie TRUE und bearbeitest die Daten. Bist du fertig, setzt du die globale Variable wieder FALSE --> es kann wieder darauf zugegriffen werden.

    Bsp.:

    IF NOT g_boDataLog THEN
       g_boDataLog:=TRUE;
       Datenverarbeitung;
       g_boDataLog:=FALSE;
    END_IF
    
     

Log in to post a comment.