Jump to content

Istruzione c200h per settare sempre a 1 piu' bits


Recommended Posts

Posted

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!

Posted

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.

Posted

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!

Posted
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

Posted

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.

 

Posted
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)

Marco Fornaciari
Posted

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,

Posted

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.

Posted

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.

Marco Fornaciari
Posted

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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...