Jump to content
PLC Forum


Conversione da array[] a DTL


Recommended Posts

saxumberto
Posted

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

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

ti ringrazio molto Simone, non pensavo fosse così semplice

Simone.Salarsi
Posted

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...