saxumberto Inserito: 7 giugno 2024 Segnala Inserito: 7 giugno 2024 Buongiorno, sono nuovo del forum, saluto e ringrazio tutti in anticipo. Vorrei convertire i dati (data e ora) ottenuti da una comunicazione modbus e salvati in un array di interi, nel formato DTL da visualizzare su HMI. Come si può procedere? Grazie
Simone.Salarsi Inserita: 7 giugno 2024 Segnala Inserita: 7 giugno 2024 io senza perderci troppo tempo dichiarerei una variabile "dataOra" di tipo DTL in un DB Dopodichè molto semplicemente e velocemente scriverei : dataOra.YEAR := INT_TO_UNIT(modbusData[0]); dataOra.MONTH := INT_TO_USINT(modbusData[1]); dataOra.DAY := INT_TO_USINT(modbusData[2]); dataOra.HOUR := INT_TO_USINT(modbusData[3]); dataOra.MINUTE := INT_TO_USINT(modbusData[4]); dataOra.SECOND:= INT_TO_USINT(modbusData[5]); Poi se ti da fastidio vedere in mezzo al resto del codice queste righe puoi fare una piccola funzione in cui passi con parametri di IN l'array di interi del modbus e come parametro di OUT un DTL e sposti tutto al suo interno.
saxumberto Inserita: 7 giugno 2024 Autore Segnala Inserita: 7 giugno 2024 ti ringrazio molto Simone, non pensavo fosse così semplice
Simone.Salarsi Inserita: 8 giugno 2024 Segnala Inserita: 8 giugno 2024 A volte le cose sono più semplici di quanto sembrano 😀 Alla fine il DTL non è altro che un tipo composto da dati semplici. Il che lo rende anche comodo da utilizzare, per esempio per confrontare date e/o ore
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