Vai al contenuto
PLC Forum


Come Trasferire? - Bit in Word


BoLo

Messaggi consigliati

Espongo il mio problema.

Io ho 16 allarmi e ognuno attiva il suo bit.

Nel Pannello Operatore (OP77B) per la visualizzazione di ogni allarme leggo ogni singolo bit della word che contiene i 16 allarmi.

Il problema è che non so come si fa nel programma (S7-300) a trasferire lo stato di ogni singolo bit (allarme) nella word che utilizzo per il Pannello operatore.

Parliamo di linguaggio KOP.

Potete aiutarmi? Grazie.

Link al commento
Condividi su altri siti


Ciao.

Sinceramente non capisco il tuo problema.

Supponiamo che stai usando la MW10. Per modificare un bit di questa word, devi semplicemente scrivere:

// Logica di comando dell'allarme

//..............................

//..............................

= M10.0 // Così alzi (o abbassi) il bit 0 della word 10

Se vuoi che rimanga alto anche quando l'allarme scompare (consigliato), avrai:

// Logica di comando dell'allarme

//..............................

//..............................

S M10.0 // Così alzi il bit 0 della word 10

// quando l'Operatore preme il tasto Reset, abbasserai tutti i bit di allarme:

U "Reset" // questo è l'ingresso sul quale è collegato il pulsante di Reset

SPBN M001

L 0

T MW10

M0001:NOP 0

Se invece stai usando una Word di un DB (supponiamo DB10.DBW5), l'identificazione del bit (p.e.) 0 è:

U DB10.DBX5.0 // Identifica il bit 0 della Word 5 del DB10

Attenzione: nei pannelli Operatore Siemens (ma non solo), gli allarmi sono letti a bytes scambiati cioè: per far comparire il primo allarme di un elenco associato alla MW10, dovrai alzare il bit M11.0, per far comparire l'ottavo allarme dell'elenco, dovrai alzare il bit M10.0

Spero di esserti stato di aiuto.Fammi sapere

Ciao.

Link al commento
Condividi su altri siti

Ciao,

supponiamo che un bit di allarme sia M1.0

e lo devi appoggiare alla word MW100

usi il contatto Normalmente aperto di M1.0 e lo usi per eccitare la bobina di M100.0

M1.0 M100.0

-------| |--------------------------( )-------------

M1.1 M100.1

-------| |--------------------------( )-------------

e così per tutti i 16 bit

poi segui gli altri consigli di Gramma

Spero di essere stato d'aiuto ciao

Se hai bisogno di altre info rispondimi

Saluti

Betù

Link al commento
Condividi su altri siti

Ok ragazzi, fin qui tutto bene.

Ma essendo una word composta da 16 bit, quando monitorizzo la mia word nella tabella variabili succede qualcosa di strano:

MW4 - BIN - 2#0000 0000 0000 0000 (Questa è la mia word rappresentata in binario nella tabella variabili)

0(M4.7) 0(M4.6) 0(M4.5) 0(M4.4) - 0(M4.3) 0(M4.2) 0(M4.1) 0(M4.0) - 0(?) 0(?) 0(?) 0(?) - 0(?) 0(?) 0(?) 0(?)

Perchè parte dal centro la rappresentazione della word?

Come si chiamano gli altri 8 bit che si trovano a destra?

Scusatemi ma stiamo passando da GE a Siemens ed è un mondo tutto nuovo per noi.

Link al commento
Condividi su altri siti

Ciao

Siemens usa dei processori derivati dall'architettura Motorola, che lavora su bytes (insomma la spiegazione corretta non è esattamente questa, ma....). Quando carichi la Word p.e. 10, coiè MW10, essa viene letta come Byte 10 e byte 11, e caricata in ACCU1 come Byte 11 a Sx e Byte 10 a Dx. Quello che vedi (mi sembra nella tabella delle variabili) è appunto questo, cioè il Byte 11 a Sx e il Byte 10 a Dx.

La notazione è a Byte, quindi la MW10 è composta dal Byte 10 e dal Byte 11. Se tu indirizzassi la MW11, prenderesti il Byte 11 e il Byte 12, cioè la parte bassa (bassa come significato, ma alta-cioè sinistra- dell'ACCU1) della MW10.

Spero di essermi spiegato, Ciao.

Link al commento
Condividi su altri siti

Errore...

Quello che vedi (mi sembra nella tabella delle variabili) è appunto questo, cioè il Byte 11 a Sx e il Byte 10 a Dx.

correzione:

Quello che vedi (mi sembra nella tabella delle variabili) è appunto questo, cioè il Byte 11 a Dx e il Byte 10 a Sx.

Sorry...

Ciao.

Link al commento
Condividi su altri siti

Esempio, se la word di allarme e' MW10, il pannello operatore assegna gli allarmi in questo ordine:

Allarme1=M11.0

Allarme2=M11.1

Allarme3=M11.2

Allarme4=M11.3

Allarme5=M11.4

Allarme6=M11.5

Allarme7=M11.6

Allarme8=M11.7

Allarme9=M10.0

Allarme10=M10.1

Allarme11=M10.2

Allarme12=M10.3

Allarme13=M10.4

Allarme14=M10.5

Allarme15=M10.6

Allarme16=M10.7

In ogni caso, quando "scrivi" un allarme in Protool se guardi in basso a destra ti dovrebbe comparire il bit relativo all'allarme che stai editando.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...