sorecaro Inserito: 31 marzo 2017 Segnala Share Inserito: 31 marzo 2017 Buongiorno a tutti, sto cercando il modo di fare una cosa ma non ne sono venuto a capo. Come da titolo vorrei assegnare un nome ad 1 bit di una variabile dichiarata word. Nel programma che sto facendo devo visualizzare su hmi una 30 di allarmi. Ora wincc mi chiede la word di allarme ma nel programma devo lavorare a bit. Come posso fare per avere il bit specifico di allarme con il suo nome invece del solito Db1.dbx3.0 ? Sperò di essere stato chiaro . Buona giornata e grazie Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 31 marzo 2017 Segnala Share Inserita: 31 marzo 2017 Io su Simotion dichiaro un array di word. La tabella seguente è la mappatura per un paio di word: penso che sia la stessa solfa per il plc....... Numero di bit della variabile HMI_Variabili_Globali.boallarmidigitali in Simotion Numero di bit da dichiarare nella progettazione WinCC boAllarmiDigitali[0].0 .0 boAllarmiDigitali[0].1 .1 boAllarmiDigitali[0].2 .2 boAllarmiDigitali[0].3 .3 boAllarmiDigitali[0].4 .4 boAllarmiDigitali[0].5 .5 boAllarmiDigitali[0].6 .6 boAllarmiDigitali[0].7 .7 boAllarmiDigitali[0].8 .8 boAllarmiDigitali[0].9 .9 boAllarmiDigitali[0].10 .10 boAllarmiDigitali[0].11 .11 boAllarmiDigitali[0].12 .12 boAllarmiDigitali[0].13 .13 boAllarmiDigitali[0].14 .14 boAllarmiDigitali[0].15 .15 boAllarmiDigitali[1].0 .16 boAllarmiDigitali[1].1 .17 boAllarmiDigitali[1].2 .18 boAllarmiDigitali[1].3 .19 boAllarmiDigitali[1].4 .20 boAllarmiDigitali[1].5 .21 boAllarmiDigitali[1].6 .22 boAllarmiDigitali[1].7 .23 boAllarmiDigitali[1].8 .24 boAllarmiDigitali[1].9 .25 boAllarmiDigitali[1].10 .26 boAllarmiDigitali[1].11 .27 boAllarmiDigitali[1].12 .28 boAllarmiDigitali[1].13 .29 boAllarmiDigitali[1].14 .30 boAllarmiDigitali[1].15 .31 Link al commento Condividi su altri siti More sharing options...
sorecaro Inserita: 31 marzo 2017 Autore Segnala Share Inserita: 31 marzo 2017 Anche io faccio così ma non è quello che sto cercando di fare. Provo con un esempio : nel mio programma dichiaro un word allarmi.nel mio hmi assegno ogni bit della variabile alle varie segnalazioni . Ora quello che vorrei fare è avere un FC dove i vari bit della word sono "nominati" in modo simbolico e non assoluto. Spero di essere stato il più chiaro possibile Link al commento Condividi su altri siti More sharing options...
attiliovolpe Inserita: 31 marzo 2017 Segnala Share Inserita: 31 marzo 2017 La dico così, magari non si può... Appoggia la Word bit a bit a dei merker, ogni merker avrà il nome che ti serve Link al commento Condividi su altri siti More sharing options...
Giuseppe Signorella Inserita: 31 marzo 2017 Segnala Share Inserita: 31 marzo 2017 Come puoi ben comprendere non puoi nominare ogni singolo elemento di un array. Personalmente ti consiglierei di fare come detto da "attiliovolpe". Creati un numero "n" di variabili di tipo bool, rinominate simbolicamente, e trasferire il singolo valore nella word allarme. Ciao Link al commento Condividi su altri siti More sharing options...
odx Inserita: 31 marzo 2017 Segnala Share Inserita: 31 marzo 2017 In alternativa puoi crearti tutti i tuoi bool di allarme (assegnando il simbolico che più ti piace) nella DB e usarli per creare la Word di allarme. Come sistema di organizzazione, se usi la word e basta, puoi farti un foglio excel in cui ti scrivi a cosa corrispondono. Molti fanno così Link al commento Condividi su altri siti More sharing options...
sorecaro Inserita: 31 marzo 2017 Autore Segnala Share Inserita: 31 marzo 2017 Ok grazie Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 1 aprile 2017 Segnala Share Inserita: 1 aprile 2017 Quote Come sistema di organizzazione, se usi la word e basta, puoi farti un foglio excel in cui ti scrivi a cosa corrispondono. Molti fanno così In effetti io ho fatto un copia-incolla del foglio Excel dei miei 2000 allarmi. Ho volutamente tolto la colonna con i testi del messaggio ...... Link al commento Condividi su altri siti More sharing options...
batta Inserita: 1 aprile 2017 Segnala Share Inserita: 1 aprile 2017 Sinceramente, dover lavorare con un foglio excel per poter riconoscere un allarme, non mi sembra molto comodo. Preferisco creare un DB con tutti bit di allarme, e un DB con un array di word per passare gli allarmi al pannello operatore. Basta una copia da un DB all'altro per risolvere sia il problema del pannello operatore che vuole le variabili di allarme in un certo modo, sia la comodità di avere ogni bit di allarme col proprio nome e commento. Anzi, visto che nei pannelli operatore gli allarmi vengono letti scambiando l'ordine dei byte nella word (difficile spiegare perché dispositivi della stessa casa non siano capaci di mettersi d'accordo su una cosa così banale), generalmente anziché fare una semplice copia, faccio lo swap dei byte e mi ritrovo quindi anche col vantaggio di avere tutti gli allarmi in ordine numerico, e non con l'allarme Nr.1 che punta al bit 8 e l'allarme Nr.9 che punta al bit 0. Basta un semplice ciclo FOR per fare tutto con poche righe di codice, anche nel caso di un numero elevato di allarmi. Di solito, nello stesso ciclo FOR, inserisco anche le istruzioni per rilevare la presenza di allarmi, l'entrata di un nuovo allarme, il reset degli allarmi. Link al commento Condividi su altri siti More sharing options...
sorecaro Inserita: 1 aprile 2017 Autore Segnala Share Inserita: 1 aprile 2017 Grazie Batta, saresti così gentile da spiegare meglio il discorso di passare i bit allarme alle word di allarme?? Link al commento Condividi su altri siti More sharing options...
batta Inserita: 1 aprile 2017 Segnala Share Inserita: 1 aprile 2017 Supponiamo tu abbia bisogni di 80 allarmi. Crei, per esempio, DB100 con 80 variabili booleane (da DB100.dbx0.0 a DB100.dbx9.7). Poi crei DB101 con un array di 5 word. Nel programma utilizzi i bit del DB100. Poi fai una copia di tutti i bit di allarme (5 word) da DB100 a DB101. Nel pannello operatore vai a leggere l'array di 5 word del DB101. Devi solo avere l'accortezza di dichiarare i DB come "non ottimizzati". Da non dimenticare poi che si potrebbero anche usare i merker. Con i merker puoi assegnare i nomi ai singoli bit e alle word. La soluzione con i merker però mi sento di consigliarla solo per piccoli lavori. E, anche utilizzando i merker, farei comunque una copia (magari con swap dei byte) su un DB per dare in pasto gli allarmi al pannello operatore. Link al commento Condividi su altri siti More sharing options...
sorecaro Inserita: 2 aprile 2017 Autore Segnala Share Inserita: 2 aprile 2017 Ok. Domani provo.grazie 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