razzo1 Inserito: 6 luglio 2006 Segnala Inserito: 6 luglio 2006 Salve, avrei la necessità di utlizzare il valore in hex memorizzato su un DM come valore decimale, senza conversione, mi spiego meglio, un DM con valore HEX "32" io vorrei utilizzarlo come valore decimale "32" e non come valore 50 (Conversione da hex a dec) esiste un modo per farlo da PLC??.Questo valore lo devo leggere da un pannello NS5 eventualmente potrei fare l'eventuale conversione con qualche macro??Grazie a tutti.
ifachsoftware Inserita: 6 luglio 2006 Segnala Inserita: 6 luglio 2006 E se ti trovi 1AF0 cosa lo fai diventare ?
razzo1 Inserita: 6 luglio 2006 Autore Segnala Inserita: 6 luglio 2006 non troverò mai dei numeri diversi da 10-20-30---90 perchè sono numeri scritti da un programma di ricettazione.
emanuele.croci Inserita: 6 luglio 2006 Segnala Inserita: 6 luglio 2006 Devi usare le funzioni di conversione da decimale a BCD, se sono presenti nel tuo plc.Ad es. in step7 con l'istruzione BTD risolvi il tuo problema:vediamo....carico HEX 0032 BTD (trasforma da BCD a decimale , interpretando 32 come se fosse "trentadue")mi restituisce HEX 0020 (che per il plc è di fatto "trentadue")spero che ti sia utile...Ciao, Emanuele
razzo1 Inserita: 6 luglio 2006 Autore Segnala Inserita: 6 luglio 2006 non ho bisogno della pura conversione hex-bcd ma che il valore HEX 32 lo posso trattare come valore BCD 32.in sostanza io sul PLC ho un valore in una DM = 0030 Hex tale valore lo devo leggere da NS5 e scriverlo su un area del terostato, in quest'area posso scriverci solo in BCD quindi il valore 0030 hex è necessario che mi diventa 30 BCD.Se io lo converto non ho più 30 ma 48 quindi sul termostato scriverei il settaggio della temperatura con un valore errato.
ifachsoftware Inserita: 6 luglio 2006 Segnala Inserita: 6 luglio 2006 Potresti fare una conversione Ascii prendendo un byte alla volta ...Ciao
emanuele.croci Inserita: 6 luglio 2006 Segnala Inserita: 6 luglio 2006 Dipende che cosa HAI e che cosa VUOI.Ad es. se dici:in sostanza io sul PLC ho un valore in una DM = 0030 Hextale valore lo devo leggere da NS5 e scriverlo su un area del terostato, in quest'area posso scriverci solo in BCD quindi il valore 0030 hex è necessario che mi diventa 30 BCD.OK molto bene, allora non devi fare nessuna conversione in quanto 30HEX (cioè 0000-0000-0011-0000) equivale perfettamente al 30BCD (cioè 0000-0000-0011-0000).30 HEX, per inciso, è anche il numero "quarantotto".Però se a te va bene mettere sul display 3-0, allora sei già a posto.Ciao, Emanuele
edogol Inserita: 7 luglio 2006 Segnala Inserita: 7 luglio 2006 Nel numeral display dell'NS devi mettere BCD2 come Storage Type e Decimal come display type. In questo modo il tuo 30Hex viene letto come 30 e se scrivi 10 ti ritrovi 10Hex e non A.Ciao!
razzo1 Inserita: 7 luglio 2006 Autore Segnala Inserita: 7 luglio 2006 Grazie Edogol, un ulteriore informazione in un post vecchio mi avevi suggerito di settare l'area dati nella list selection del tipo $HWXX, sei sicuro che si possa fare perchè il programma non me lo permette e non so come fare grazie..
edogol Inserita: 17 luglio 2006 Segnala Inserita: 17 luglio 2006 Ciao; scusa il ritardo...E' vero, le aree $HW non sono indirizzabili direttamente dall'oggetto list selection, ma il problema è facilmente aggirabile con una bella macro MEMCOPY con la quale copi il tuo blocco di dati $HW nei $W ai quali farà riferimento la listselection (e viceversa in caso di modifiche...) Ciao!
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