saxumberto Posted June 7, 2024 Report Posted June 7, 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 Posted June 7, 2024 Report Posted June 7, 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 Posted June 7, 2024 Author Report Posted June 7, 2024 ti ringrazio molto Simone, non pensavo fosse così semplice
Simone.Salarsi Posted June 8, 2024 Report Posted June 8, 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
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now