Vai al contenuto

Problema nella inizializzazione variabili

Home Forum Programmazione IEC 61131 (LogicLab) Problema nella inizializzazione variabili

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

    Trovo alcuni problemi sull’inizializzazione di variabili, funziona la dichiarazione:

        VarC at %MX100.4001 : byte := 16#07;
        VarX AT %MX100.3000 : string[19] := 'zc$01'

    Invece non funziona la dichiarazione:

        VarC at %MX100.4001 : byte := 16#00;
        VarX AT %MX100.3000 : string[19] := 'zc$00';

    In pratica non è possibile inizializzare con byte o char di valore 0x00, come posso risolvere?

    #78398
    Sergio Bertana
    Amministratore del forum

    Hai problemi di inizializzazione perchè stai operando sull’area di backup (Area in DB100 da 2048 a 4095). Siccome l’area è in backup il comportamento dell’init è particolare, in pratica se il valore di init è diverso da 16#00 la variabile viene inizializzata.

    Se il valore di init è 16#00 la variabile non viene inizializzata e rimane con il valore che aveva allo spegnimento del sistema.

    In questa verifica poi mi sono accorto di un problema che sembra avere LogicLab, quando si inizializza una stringa con “$00” in realtà anzichè inserire il valore 16#00 che coincide con il codice tappo viene inserito il valore “0” codice hex 16#30.

    Quindi per rispondere alla tua domanda o sposti le variabili in area non backup, oppure le inizializzi da programma sulla task di Boot o testando la variabile SysFirstLoop.

        VarC:=16#00;
        VarX:='zc$00';
Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.