mirkoconsoli Inserito: 8 febbraio 2015 Segnala Share Inserito: 8 febbraio 2015 (modificato) Ciao a tutti, Ho inserito la macro : READHOSTW($HW101,1,101,201,1); per leggere dal plc il valore contenuto in H201 e portarlo su $HW 101 nel teminale ns5 Ma qundo lo visualizzo vedo numeri differenti: H201 $HW201 0 = 1536 120 = 0 180 = 288 300 = 384 420 = 768 600 = 1056 Successivamente al valore posto su $hw101 dovrò fare delle operazioni matematiche e quindi visualizzarlo (alla pressione di un tasto in cui è inserita la macro stessa) pertanto la macro finale sarà: READHOSTW($HW101,1,101,201,1); $HW201=$HW101/60; ho fatto svariate prove sostituendo N READHOSTW($HW101,1,101,201,N); con i numeri da 1 fino a 16 pensando che il pannello prelevasse i dati in binario dal plc ma ottengo sempre gli stessi risultati anche cambiando il 'tipo di memorizzazione' sulla finestra ' tipo di visualizzazione numeri' cosa sto sbagliando ? Modificato: 8 febbraio 2015 da mirkoconsoli Link al commento Condividi su altri siti More sharing options...
mirkoconsoli Inserita: 8 febbraio 2015 Autore Segnala Share Inserita: 8 febbraio 2015 Ho capito che il valore che visualizzo è in esadecimale come saffio a convertirlo in numero intero ? Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 9 febbraio 2015 Segnala Share Inserita: 9 febbraio 2015 Per visualizzare e/o immettere un valore in BCD (che è un esadecimale codificato binario, quindi una cosa particolare), devi selezionare in Tipo di Visualizzazione Numeri la visualizzazione Decimale (se la vuoi vedere in decimale), e BCD2 nel tipo di memorizzazione. Questo vale in particolar modo per i valori da associare ai timer in BCD. Se hai un numero intero "normale" (quindi contenuto in una word ma senza codifica BCD), la conversione tra esadecimale e decimale non serve, perchè nella memoria hai esattamente lo stesso valore. Cambia solo la sua visualizzazione. Pertanto, dovrai specificare Decimale se la vuoi vedere in decimale, Esadecimale altrimenti. L'unica cosa è definire se l'intero è con (INT) o senza (UINT) segno, che cambia qualcosa per numeri oltre 32767... Un Intero ha la stessa rappresentazione interna sia in esadecimale che in decimale (la prima è quella realmente usata dal processore interno). Quindi il valore #100 (cioè 100 in esadecimale) è lo stesso identico di 256 in decimale. Cambia solo la sua rappresentazione a display. 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