acquaman Inserito: 18 gennaio 2023 Segnala Inserito: 18 gennaio 2023 Buongiorno a tutti, ho la necessità di dividere una tag reale (2 word) per caricarle su 2 registri modbus quindi 2 interi, in testo strutturato o in ladder. Grazie
Area_Federico Inserita: 18 gennaio 2023 Segnala Inserita: 18 gennaio 2023 Ciao, in ST ho avuto la necessità di splittare una word in 2 byte e ho fatto nel seguente modo. Byte1 := WORD_TO_BYTE(miaword) Byte2 := WORD_TO_BYTE(SHR(miaword,8)) Probabilmente adattando il tipo di dato e il numero di bit da shiftare, potrebbe funzionare anche nel tuo caso
Operational Amplifier Inserita: 18 gennaio 2023 Segnala Inserita: 18 gennaio 2023 (modificato) Ciao Acquaman, Potresti valutare la seguente opzione tramite Slice Access: "MyDWord" := REAL_TO_DWORD("MyReal"); "MyWord1" := "MyDWord".%W0; "MyWord2" := "MyDWord".%W1; Modificato: 18 gennaio 2023 da Operational Amplifier
Mattia Spoldi Inserita: 18 gennaio 2023 Segnala Inserita: 18 gennaio 2023 (modificato) Dubito posano funzionare i metodi sopra, nel momento in cui si usa una funzione REAL_TO_XXX(), viene troncata la parte decimale. Se stai usando un plc relativamente nuovo, il mio consiglio è di dichiarare un array di 2 word, poi usi la funzione COP(), come sorgente dai il tuo float, come destinazione l'array appena creato, da qui poi ti basta assegnare ad i registri MB le 2 word dell'array. Ho trovato anche un esempio https://www.prosoft-technology.com/knowledge-base/Rockwell-In-chassis/CompactLogix/How-do-I-convert-an-integer-to-floating-point-and-vice-versa-in-a-Rockwell-Controller Modificato: 18 gennaio 2023 da Mattia Spoldi
acquaman Inserita: 18 gennaio 2023 Autore Segnala Inserita: 18 gennaio 2023 @Area_Federicocon i dati tipo reale non è possibile usare quel metodo. @Operational Amplifier il client modbus leggerà i miei dati in reale, convertendo i dati in doppia word cambi la formattazione e il client dovrà leggere un intero a 32 bit non un reale perdendo la precisione dei decimali. @Mattia Spoldi Grazie, è proprio quello di cui avevo bisogno, funziona egregiamente, conoscendo poco Rockwell non avevo trovato questa istruzione.
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