fiorezzz Inserito: 22 settembre 2021 Segnala Share Inserito: 22 settembre 2021 Salve a tutti Mi capita di usare delle strutture di dati Bool utilizzati al posto dei singoli Merker (tipo pippo.bit0 ..pippo.bit1 ..pippo.bit2 ecc. anzichè M1.0 M1.1 M1.2 A volte oltre ad un accesso come bit mi interessa accedere come byte/word (se fossero merker li raggrupperei tipo L MW1 ..L MB1 ecc) Sia per leggere se tutti i bit sono a zero o impostarli tutti a zero Io non trovo di meglio che fare delle singole routine a cui passo la struct per poi azzerare o interrogare i singoli bit Ci sono soluzioni ad accesso simbolico + furbo ? (non voglio utilizzare riferimenti assoluti tramite i classici puntatori ) Link al commento Condividi su altri siti More sharing options...
batta Inserita: 23 settembre 2021 Segnala Share Inserita: 23 settembre 2021 Argomento ricorrente. Dai un'occhiata alla "Sovrapposizione con AT" (se fai una ricerca nella guida in linea ti rimanda subito all'argomento) e alle istruzioni GATHER e SCATTER. Personalmente preferisco usare gather e scatter, ma si tratta di scelte personali. Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 23 settembre 2021 Segnala Share Inserita: 23 settembre 2021 33 minuti fa, batta ha scritto: Dai un'occhiata alla "Sovrapposizione con AT" (se fai una ricerca nella guida in linea ti rimanda subito all'argomento) e alle istruzioni GATHER e SCATTER. Personalmente preferisco usare gather e scatter, ma si tratta di scelte personali. Sul 300? Link al commento Condividi su altri siti More sharing options...
fiorezzz Inserita: 24 settembre 2021 Autore Segnala Share Inserita: 24 settembre 2021 Sarei anche in ambiente TIA ..ma lavoro con una CPU ancora Step7 (un bel mix che mi confonde sempre le idee) e quindi molte funzionalità TIA CPU..1200/1500 non sono disponibili Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 24 settembre 2021 Segnala Share Inserita: 24 settembre 2021 1 ora fa, fiorezzz ha scritto: e quindi molte funzionalità TIA CPU..1200/1500 non sono disponibili Le funzionalità del 1200/1500 sul 300 non le hai, sia che usi li step7 o che usi il TIA. Strutture di dati intendi DB, nel 300 anche le db hanno l'indirizzo, es DB1.DBX0.0 - 0.1 - 0.2......., e gli stessi bit si possono raggruppare a byte e a word come i merker, DB1.DBB0 per i byte e DB1.DBW0 per le word e DB1.DBD0 per le doppie word. Link al commento Condividi su altri siti More sharing options...
fiorezzz Inserita: 24 settembre 2021 Autore Segnala Share Inserita: 24 settembre 2021 OK Ma Ho una struct di BOOL DB100.Pippo.M1 ..DB100.PIPPO.M2 ..o meglio db100.dbx0.1 Db100.dbx0.2 ..ma ci accedo appunto in modo simbolico DBnn.Pippo.M2 ..PIPPO.M1 quando in un solo colpo voglio azzerare la struct o verificare se qualche bit<>0 tipo L DB100.dbb0 o L0 T DB100.DBB0 ..ma in modo simbolico in TIA non posso scrivere L DB100.PIPPO (e neanche in step7 ..) (Ps. sono in ambiente TIA ma non con CPU 1200/1500 ma ancora condizionato da CPU S7-300) Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 24 settembre 2021 Segnala Share Inserita: 24 settembre 2021 Non puoi lavorare in simbolico, devi usare l'indirizzamento, DB100.dbb0. Se usi il TIA ti esce un warning che la variabile non è assegnata ad un simbolico, ma è solo un warning. Link al commento Condividi su altri siti More sharing options...
fiorezzz Inserita: 24 settembre 2021 Autore Segnala Share Inserita: 24 settembre 2021 Forse mi spiego male Sono con TIA e voglio usare simbolico (come prevede il TIA se possibile) ( ma non con CPU1200/1550 ma serie Step7) Avendo per comodità di scrittura/lettura codice una struct di Boolean (Potrei fare una struct di array ..ma il nome array[1]..array[0] ..è poco utile e comodo) in alcuni momenti voglio resettare tutti i bit della struct o verificare se sono solo a zero ..mi sono fatto una routine a cui passo la struct che dimensiono sempre a 16bit e poi testo singoli bit per sapere se sono a zero o res singoli bit per azzerare tutto ..mi chiedevo se esisteva un modo migliore per farlo . Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 24 settembre 2021 Segnala Share Inserita: 24 settembre 2021 (modificato) La caratteristica di usare il simbolico non è del TIA, ma del 1500/1200, se usi un 300 che lo programmo con il TIA o con lo step7 classic non cambia le funzioni che hai con un software le hai con l'altro e quello che non hai con uno non ce l'hai con l'altro. L'unica cosa che cambia è l'ambiete di sviluppo. Il 300 non prevedeva l'utilizzo del simbolico con lo step7 e non ha il simbolico con il TIA. Funzioni, simbolico ed altro non sono caratteristiche dell'ambiente di sviluppo ma del plc, se un plc non le ha, non le ha, qualunque ambiente di sviluppo usi. Ricordati che stai usando un dispositivo nato ormai più di 25 anni fa se non di più non puoi pretendere di avere funzioni di un dispositivo attuale. Modificato: 24 settembre 2021 da acquaman Link al commento Condividi su altri siti More sharing options...
batta Inserita: 25 settembre 2021 Segnala Share Inserita: 25 settembre 2021 Il 23/9/2021 alle 16:07 , acquaman ha scritto: Sul 300? Hai completamente ragione. Questa domanda, di solito, viene posta sui 1200/1500, e non mi sono accorto che si parla, invece, di 300. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora