Il FB ACModbus è nato appositamente per permettere di gestire comunicazioni Modbus con apparecchiature connesse in multidrop su porta seriale. Riferendoti all’esempio riportato nella pagina del manuale devi definire un array di strutture ACMODBUS_DATA una per ogni indirizzo di nodo e comando da eseguire. In questo modo puoi gestire più nodi e più comandi per ogni nodo.
Nella esecuzione il FB ACModbus itera su tutte le strutture dato definite gestendo i relativi comandi. Il parametro Delay del FB ModbusMaster definisce il tempo di pausa tra l’esecuzione dei comandi. Il parametro Timeout del FB ModbusMaster definisce il tempo di attesa risposta dal dispositivo prima di generare errore. Nel caso di un errore nella esecuzione di un comando quel comando verrà ignorato nelle sequenze successive per il tempo definito nel parametro RTime, in questo modo un eventuale nodo in errore non rallenta la comunicazione con gli altri.
Per il salvataggio dei dati acquisiti su disco puoi prendere ad esempio il programma ST_DataLoggerOnCSVFile che trovi in questo articolo. Potrai salvare file ad ogni mese come nell’esempio oppure ogni giorno, ogni ora, ecc. Potrai leggere i dati salvati connettendoti in FTP allo SlimLine oppure inviarli automaticamente ad un server FTP remoto (Vedi articolo).
Quando si utilizza il disco è preferibile aggiungere una SDCard al sistema perchè come noto i dischi su memoria FLASH come il disco C: o anche le SDCard hanno una “vita” cioè un numero di operazioni in scrittura definito (Circa 100.000). Ma se scrivi ogni minuto avendo implementato il wear leveling sul disco hai una vita torica di circa 100 anni. Ma se scrivessi ogni secondo la vita sarebbe solo di 20 mesi.