Vai al contenuto

Utilizzo FB FileMemoryDump_v1 in sostituzione di versione precedente

Home Forum Programmazione IEC 61131 (LogicLab) Utilizzo FB FileMemoryDump_v1 in sostituzione di versione precedente

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #80569
    Anonimo
    Inattivo

    In un programma devo sostituire il FB FileMemoryDump con la nuova versione FileMemoryDump_v1.

    Ho visto che nella nuova versione sono stati modificati alcune variabili ed è stato inserita la variabile Mode, esiste un esempio di programma da cui trarre spunto per effettuare questa modifica.

    #80571
    Sergio Bertana
    Amministratore del forum

    Nella nuova versione FileMemoryDump_v1 è stato aggiunto parametro Mode per selezionare il modo in cui i dati sono presenti nel file. Ora definendo il modo FILEMDUMP_MODE#ASCII viene utilizzata una formattazione ascii che è più leggibile rispetto alla formattazione binaria.

    E’ stato aggiunto anche il parametro FPOfs, che permette di utilizzare un offset sull’accesso in lettura/scrittura sul file definito, questo permette di accodare ad un file esistente altra memoria.

    E’ stato modificato il nome ai parametri MBufferPtr che diventa MBAdd e MBufferSize che diventa MBSize.

    Ecco un programma che utilizza la vecchia versione.

    VAR
        DBuf : ARRAY[0..15] OF BYTE; (* Data buffer *)
        MDump : FileMemoryDump; (* FBinstance *)
    END_VAR
    
        // -------------------------------------------------------------------------
        // MEMORY DUMP
        // -------------------------------------------------------------------------
        // On set by debug the Read or Write command the memory is read or write on
        // file. The command resets when operation is finished.
    
        MDump.MBufferPtr:=ADR(DBuf); //Dump memory address
        MDump.MBufferSize:=SIZEOF(DBuf); //Dump memory size
        MDump.Filename:=ADR('C:/MRetain.txt'); //Dump memory file
        MDump(); //Execute the FB
        IF (MDump.Done) THEN MDump.Read:=FALSE; MDump.Write:=FALSE; END_IF;

    Ecco come si può modificarlo utilizzando la nuova versione.

    VAR
        DBuf : ARRAY[0..15] OF BYTE; (* Data buffer *)
        MDump : FileMemoryDump_v1; (* FBinstance *)
    END_VAR
    
        // -------------------------------------------------------------------------
        // MEMORY DUMP
        // -------------------------------------------------------------------------
        // On set by debug the Read or Write command the memory is read or write on
        // file. The command resets when operation is finished.
    
        MDump.MBAdd:=ADR(DBuf); //Dump memory address
        MDump.MBSize:=SIZEOF(DBuf); //Dump memory size
        MDump.Mode:=FILEMDUMP_MODE#BINARY; //Dump mode
        MDump.Filename:=ADR('C:/MRetain.txt'); //Dump memory file
        MDump.FPOfs:=0; //File offset
        MDump(); //Execute the FB
        IF (MDump.Done) THEN MDump.Read:=FALSE; MDump.Write:=FALSE; END_IF;
Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.