Vai al contenuto
PLC Forum


Conversione da array[] a DTL


saxumberto

Messaggi consigliati

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

 

Link al commento
Condividi su altri siti


Simone.Salarsi

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.

 

Link al commento
Condividi su altri siti

Simone.Salarsi

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

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...