Vai al contenuto

Settare bit di una variabile WORD

Home Forum Programmazione IEC 61131 (LogicLab) Settare bit di una variabile WORD

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

    Vorrei cortesamente sapere come si possa attivare un solo bit della word nei PLC Elsist, con una sola word vorrei gestire 12 allarmi. Nel Siemens ad esempio:

    Word = %MW500 voglio un solo bit = %MW500.%X0 := 1;

    Attivo solo il bit 0 della word.

    Come fare con SlimLine?

    #59871
    Sergio Bertana
    Amministratore del forum

    Tra gli improvements che Axel ha annunciato nelle prossime versioni di LogicLab ci dovrebbe essere anche l’accesso ai bits delle singole variabili. Al momento non è gestito, quindi o ti affidi alle classiche operazioni di AND e OR, esempio:

    VAR
        Alarm : ARRAY[0..15] OF BOOL; (* Alarm conditions *)
        WAlarm : WORD; (* Alarm word *)
    END_VAR
    
        WAlarm:=16#0000;
        IF (Alarm[0]) THEN WAlarm:=WAlarm OR 16#0001; END_IF;
        IF (Alarm[1]) THEN WAlarm:=WAlarm OR 16#0002; END_IF;
        ...
        IF (Alarm[15]) THEN WAlarm:=WAlarm OR 16#8000; END_IF;

    Dove come vedi per semplicità ho definito un array di BOOL per le varie condizioni di allarme ma tu potrai mettere le tue variabili. Naturalmente dovrai inserire la gestione di tutti i bits che usi ed il programma deve essere scritto così in sequenza.

    In alternativa puoi utilizzare la funzione VBitSet che opera su di una variabile a 32 bits.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.