Vai al contenuto
PLC Forum


estrarre bit da una variabile locale


vergalabs

Messaggi consigliati

ciao ragazzi

ho creato un fb dichiarato non ottimizzato ,quindi con gli offset delle variabili, e vorrei sapere quando il bit 0 della word locale 'shift' che ha offset 14.0 vale 1, tanto per intenderci il bit 0 della mw15 è il bit m14.0, ma non conosco la sintassi per "estrarre" il bit dalla locale 14.0 e metterlo su un contatto aperto, ho provato a scrivere shift.0 o #l14.0 ma non trovo la sintassi giusta

grazie 

Link al commento
Condividi su altri siti


Simone.Salarsi

penso che tu abbia diverse possibilità per fare ciò che chiedi :

 

1) utilizzi la seguente sintassi : miaVariabile.%Xn dove "X" indica che vuoi puntare ad un bit ed "n" indica quale bit. Per es. : "shift.%X11"

2) Utilizzi la sovrapposizione variabili AT su una struct di bool

3) spalmi la word su un array di bool con SCATTER

 

ti lascio un paio di link sui punti 1 e 2

https://support.industry.siemens.com/cs/document/57374718/come-è-possibile-accedere-in-step-7-(tia-portal)-ai-tipi-di-dati-non-strutturati-bit-per-bit-byte-per-byte-o-parola-per-parola-o-simbolicamente-?dti=0&lc=it-IT

 

https://support.industry.siemens.com/cs/document/57132240/come-programmare-in-step-7-(tia-portal)-la-sovrapposizione-di-variabili-con-la-parola-chiave-quot-at-quot-?dti=0&lc=it-IT

Link al commento
Condividi su altri siti

Per leggere o scrivere il bit 0 di una variabile Int o Dint uso (.%X0). Per il tuo esempio "MW15.%X0" (che dovrebbe essere il bit M16.0).

 

Link al commento
Condividi su altri siti

grazie mille ragazzi, uso questo tipo di formattazione nei vecchi plc schneider ma (ignoranza mia) in siemens non ci avevo proprio pensato, adesso mi direte ma comeee è l'ABC della programmazione

Link al commento
Condividi su altri siti

utilizzando step 7 con un s300 ho sempre fatto come dice 84paolo ma con tia cpu1200 sembra non funzionare, invece scrivendo %x0 funziona

Link al commento
Condividi su altri siti

Il 6/5/2022 alle 18:52 , 84paolo ha scritto:

se hai dichiarato l'FB non ottimizzato deve funzionare anche scrivere direttamente L14.0 senza #

Sì, ma perché rimanere ancorati al vecchio indirizzamento assoluto se si può evitare?

 

Link al commento
Condividi su altri siti

si si batta assolutamente d'accordo infatti ho chiesto proprio per "aggiornarmi" se esistono nuove modalità, così ne ho già scoperto una.

ora  ve ne chiedo un'altra, sempre in un fb ho dichiarato 16 ingressi bool vorrei sapere quando tutti i bool sono a zero tipo eb0==0 ma come per la richiesta precedente non so come scrivere 

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