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

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

Thema: Über USB-Stick Programm Updaten

  1. #1
    Registriert seit
    22.06.2015
    Beiträge
    35
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    ich möchte in ein bestehendes Projekt die Funktion einbinden ein Update auszuführen.
    Es soll möglich sein in der Visu einen Button "Update" zu klicken und es wird geprüft, ob ein USB-Stick angeschlossen ist und ob sich die benötigten Daten darauf befinden.
    Wenn dies der Fall ist, soll sich die Visu und/oder Codesys aktualisieren.

    Wie ist dies zu realisieren? Ich habe leider überhaupt keinen Anhaltspunkt und bei meinen Recherchen treffe ich nur auf SysFile Open,Write,Close. Dazu finde ich aber z.B. keinerlei Doku.

    Eckdaten:
    Visuprogramm: Galileo 10 von Eaton
    Codesys 3.5.6
    Steuerung: XV 303

    MfG
    Messi
    Zitieren Zitieren Über USB-Stick Programm Updaten  

  2. #2
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    166
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Hey Messi,

    ein paar sachen kann ich dir beantworten. Ich habe das ganz in ST und mit TwinCat2 programmiert.

    USB-Stick prüfen:

    Du kannst mit dem FB_EnumFindFileList nicht nur nach Dateien suchen sondern auch nach Ordner. Bei meinem Zielsystem ist der USB-Stick ein Ordner. Ich suche einfach jede Sekunde oder so ähnlich nach dem Ordner. In meinem Fall "\Hard Disk2".

    Auf Updatedatei prüfen:

    Hier haben wir es intern so geregelt, das eine Updatedatei die Endung ".bin" hat. Und genau nach diesen Endungen suche ich mit der EnumFindFileList Funktion. Die ".bin" Dateien lasse ich mir dann auflisten.

    Um sicherzustellen ob es nicht eine andere Datei vom typ ".bin" ist haben wir der Datei eine Kennung mit gegeben. (Das ist aber etwas komplizierter (hat jemand anders Programmiert :P ))

    Bei TwinCat ist es so, das ein Bootprojekt auf dem Zielsystem angelegt wird. Diese tausche ich wie folgt aus.

    1. Backup der alten Datei anlegen
    2. Neue datei anlegen
    3. Backup löschen ( aber nur wenn alles gut gegangen ist) Ansonsten zurück kopieren.
    4. System neustart


    Dateien Anlegen usw. macht man tatsächlich mit den von dir genannten FBs
    Was ich aber leider am anfang nicht berücksichtigt habe waren die Persistenten Daten. Diese werden bei dieser Art des Updates unter umständen gelöscht. Hier für musst du vor dem Austauschen ein Backup anlegen welches du nach dem Update wieder zurückliest.

    MfG
    Hendrik

  3. Folgender Benutzer sagt Danke zu Hendrik für den nützlichen Beitrag:

    Messi90 (08.10.2015)

  4. #3
    Registriert seit
    22.06.2015
    Beiträge
    35
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke dir erstmal für deine Antwort.
    Das was du da beschriebst ist auch so ziemlich genau das was ich gern möchte.
    Nun besteht für mich leider weiterhin das Problem, dass ich diesen FB von Twincat leider nicht nutzen kann, da ich ja mit der Codesys Version von Eaton (XSoft-Codesys-3) arbeite.
    Korrigiere mich bitte falls ich falsch liege aber nutzen kann ich diesen so nicht, richtig?

    Gibt es vllt einen ähnlichen FB für XSoft mit einer gescheiten Dokumentation? Irgendwie ist genau das Mangelware bei Eaton und macht es für einen Einsteiger nicht unbedingt leichter...

    Danke schon mal im Voraus!

  5. #4
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    166
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Da TwinCat2 auf Codesys aufgebaut ist bzw. Codesys ist. Sollte es eigentlich auch die Funktionsbausteine dort geben.

    Ich habe leider bis her nur TIA, Step7 und TwinCat2 programmiert. Kann dir deine deshalb nicht beantworten. Wie ist die Software von Eaton aufgebaut?
    Kannst du Bibiliotheken hinzufügen?

    Aber vielleicht kennt sich jemand anders mit Eaton aus. Sonst hilft dir nur der Eaton Support...

    Gruß Hendrik

  6. #5
    Registriert seit
    22.06.2015
    Beiträge
    35
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also genau diesen FB gibt es bei XSoft leider nicht.

    Die Software von Eaton (XSoft) ist im Prinzip 1:1 das Gleiche wenn ich mir die Bilder von Twincat3 ansehe.
    Ich finde leider auch keine .lib Dateien von Twincat zum download. Sonst hätte ich es einfach mal ausprobiert.

    Eaton Support ist kontaktiert aber deren Hilfe schwankt auch je nach Tagesform :-/

  7. #6
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    166
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Die .lib werden mit installiert wenn du TwinCat installierst. Und die Software von TwinCat kannst du ja also Demo runterladen.

    Probieren kostet also nichts =)

  8. Folgender Benutzer sagt Danke zu Hendrik für den nützlichen Beitrag:

    Messi90 (08.10.2015)

  9. #7
    Registriert seit
    22.06.2015
    Beiträge
    35
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok, aber wie binde ich die .libs dann von TwinCat in mein XSoft mit ein? Irgendwie müsste ich ja dann die .lib verschieben. Ich hoffe die "EnumFindFileList" ist auch bei der TwinCat3 vorhanden, da ich es ja für eine Codesys Version 3.5.6 bräuchte.

    Ich versuch das gleich mal so.

  10. #8
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    166
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Hey ja verschieben musst du es. Aber dafür findest du bestimmt einen Hinweis hier im Forum oder im Inet.

    melde dich mal ob das einbinden funktioniert hat.

    MfG
    Hendrik

  11. #9
    Registriert seit
    22.06.2015
    Beiträge
    35
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich glaube ich habe den FB für die XSoft Variante gefunden. Siehe Anhang
    Jetzt weiß ich allerdings trotzdem noch nicht wie das Ding genau funktioniert, da ich keinerlei richtige Doku dazu finde.
    Angehängte Grafiken Angehängte Grafiken

  12. #10
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    166
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey also mit dem Bild kann ich dir leider so auch nicht weiter helfen.

    Man kann auch überhaupt nicht erkennen welches IN und OUTPuts sind...

    Ich kann dir aber hier kurz meinen CODE vom suchen zeigen vll kannst du dir dann etwas zusammen Reimen. =D

    Code:
    VAR_INPUT
        Execute:                    BOOL;                (* Start durch steigende Flanke *)
        PathAndFolderName:        T_MAXSTRING;        (* z.B.' \Hard Disk3\Log' oder '\Hard Disk3\Log\2015_04_21' *)
    END_VAR
    VAR_OUTPUT
        Error:                BOOL;
        Busy:                BOOL;
        ErrorID:                 TempDataWrite_error_t;
        Folder_OK:            BOOL;                    (* TRUE= Folder Created *)
    END_VAR
    VAR
        EnumFindFileList2:     FB_EnumFindFileList;
        cbFindList:             UDINT;
        pFindList:             ST_FindFileEntry;
        bError:                 BOOL;
        eCmd:                 E_EnumCmdType := eEnumCmd_First;
        TMOUT:                 TIME := DEFAULT_ADS_TIMEOUT;
        nFindFiles:             UDINT;
        sPathName:            STRING;
        TestUSB:             INT;
        Trigger:                 R_TRIG;
    END_VAR
    
    
    Trigger( CLK := Execute );
    
    CASE TestUSB OF
    
        0:
            IF Trigger.Q = TRUE THEN
                Error:= FALSE;
                Busy := TRUE;
                ErrorID:= 0;
                EnumFindFileList2.bExecute := FALSE;
                sPathName := '';
                sPathName := PathAndFolderName;
                TestUSB := 5;
            END_IF
        
        5:
            IF EnumFindFileList2.bBusy = FALSE THEN
                EnumFindFileList2.bExecute:= TRUE;
                TestUSB := 10;
            ELSE
                TestUSB := 0;
            END_IF
    
        10:
            IF EnumFindFileList2.bBusy = FALSE THEN
                IF EnumFindFileList2.bError = FALSE THEN
                    TestUSB := 15;
                ELSE
                    TestUSB := 50;
                END_IF
            ELSE
                TestUSB := 10;
            END_IF
        15:
            IF EnumFindFileList2.nFindFiles <>0 THEN
                Folder_OK := TRUE;
                Busy := FALSE;
            ELSE
                Busy := FALSE;
                Folder_OK := FALSE;
            END_IF
            TestUSB := 0;
        
        50:
            Error:= EnumFindFileList2.bError;
            ErrorID:= TD_ERR_NOT_FOUND_DIR ;
            Folder_OK := FALSE;
            Busy:= FALSE;
            TestUSB := 0;
        
    
    END_CASE
    
    EnumFindFileList2(
    
        sPathName:=sPathName ,
        eCmd:=eCmd ,
        pFindList:=ADR (pFindList) ,
        cbFindList:=SIZEOF (pFindList),
        tTimeout:=TMOUT );
    Damit kannst du halt direkt nach einer Datei oder einem Ordner suchen... du musst dafür aber den genauen Pfad wissen.

  13. Folgender Benutzer sagt Danke zu Hendrik für den nützlichen Beitrag:

    Messi90 (12.10.2015)

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 31.01.2011, 18:33
  2. Antworten: 11
    Letzter Beitrag: 19.11.2010, 21:04
  3. WinCC Benutzerverwaltung über USB-Stick
    Von franzlurch im Forum HMI
    Antworten: 3
    Letzter Beitrag: 15.04.2008, 09:40
  4. USB Stick über software abschalten?
    Von georg im Forum PC- und Netzwerktechnik
    Antworten: 6
    Letzter Beitrag: 10.08.2006, 09:24
  5. OP 177B über USB programmieren/updaten
    Von Fireball im Forum HMI
    Antworten: 9
    Letzter Beitrag: 11.05.2006, 07:42

Stichworte

Lesezeichen

Berechtigungen

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