Vai al contenuto
PLC Forum


Istruzione c200h per settare sempre a 1 piu' bits


Messaggi consigliati

Inserito:

Buongiorno a tutti.

Un istruzione che mi permetta di settare sempre a 1, magari mettendo un p-on sull'attivazione, un gruppo di bit hr?

Per evitare di mettere sempre a 1 con il p-on bit per bit uno sotto l'altro e occupare parecchia memoria...

Ho visto l'istruzione block set sul manuale.. potrebbe essere una valida  alternativa?

Grazie tante!


Inserita:

La cosa più semplice è usare l'istruzione OR sul canale che si vuole impostare. Nel valore di comando si metterà un 1 per ogni bit che si vuole alto, gli altri non vengono toccati.

Con una OR si lavora su un gruppo di 16 bit con una sola istruzione.

La BSET (block set) imposta lo stesso valore su più word (canali) successivi.

Domanda: ma dato che gli HR sono ritentivi, perché li devi reimpostare? Altrimenti usa i bit CIO e li setti all'accensione, ha più senso.

Inserita:

Grazie Ctec per la tua risposta..Ummm... credo di non aver capito molto bene... riusciresti a farmi un disegnino per favore?

Si posson9 allegare foto qui?

 

Grazie!

Inserita:
10 minuti fa, Johnny T. ha scritto:

Si posson9 allegare foto qui?

Si, io lo faccio tramite copia/incolla, altrimenti selezioni un file da allegare.

 

Per la OR, facciamo un esempio. Supponiamo che te hai la HR5 in cui vuoi settare i bit 3,6,9: quindi, rappresentando in binario, dovresti scrivere 0000001001001000b, che in esadecimale si scrive 0x0248. Pertanto, per attivarli tutti e tre contemporaneamente, dovrai scrivere:

image.png.6859fc99ae445c3630e58597bd38efe4.png

Notare che questo vale per qualsiasi dato a 16bit e per qualsiasi PLC che non abbia la sequenza dei byte rovescia (Siemens). Ma il concetto è quello.

 

Se invece tu volessi mettere a 0 dei bit specificati in una word, dovrai avere una costante word con tutti 1 eccetto i bit da azzerare, e usare la AND (ANDW)

 

Anche questo fa parte della logica booleana, per cui vale per qualsiasi cosa lavori in digitale

Inserita:

Grazie Ctec! 

Tutto chiaro ora! 

Scusami, non sono dei bit hr che devo lavorare ma dell'area di lavoro Ir...

Voglio solamente metterli sempre a 1.

Questa istruzione orw, cosi" come da te scritta, e' sempre a 1 giusto? Non e' attiva solo sul fronte positivo?

E' come scrivere:

--PON-----------------------(233.01)

 GRAZIE.

 

Inserita:
15 minuti fa, Johnny T. ha scritto:

Non e' attiva solo sul fronte positivo?

No, se la vuoi attiva al fronte positivo, o metti invece di P_on usi P_First_Cycle (attivo solo il primo ciclo), oppure metti la @ davanti (@ORW)

Inserita:

Beh, contatto 253.13 che comanda un MOV #FFFF in H0, basta e avanza.

Oppure se la vuoi si fronte di salia contatto 253.13 che comanda un @MOV #FFFF in H0.

E tutti i bitr del canale vanno allo stato 1.

 

HO può essere anche (CIO) 60, CIO si può omettere,

Inserita:

Grazie a tutti.

Mi basta davvero e ho gia' realizzato la soluzione di Ctec, con istruzione orw monostabile, con il p-on.

Ho recuperato un po' di canali di memoria programma per fortuna!

Grazie.

Inserita:

Per far capire: la MOV imposta forzatamente a 1 o 0 ciascun bit indipendentemente dallo stato precedente, mentre la ORW e ANDW impostano o resettano solo i bit specificati.

Inserita:

Si è vero, ma Johnny T chiede sempre a 1 e risparmio memoria, va da se che #FFFF deve essere modificato in base ai bit richiesti sempre a 1 così come nell'esempio di ORW.

Ma dalla domanda, direi che il nostro collega non è pratico di questo tipo di istruzioni matematiche ... e la potenza dei PLC rispetto ai relè cablati sono queste istruzioni (sorvolando sui fili da collegare).

 

I miei programmi sono capiti da pochi dato che di istruzioni matematiche nelle parti di logica combinatoria c'è una presenza enorme (così come è fondamentale l'ordine di scrittura), ma di contro 20 K di programma diventano 6.

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...