Cerco di darti una idea di come realizzare il programma che desideri, il modo più semplice è di utilizzare il blocco funzione ModbusRTUMaster_v1 che è l’ultima evoluzione del blocco funzione di gestione modbus master di cui allego estratto documentazione. La caratteristica di questo blocco funzione è che può essere eseguito in cascata, cioè terminata l’esecuzione di una istanza può iniziare l’esecuzione di un’altra istanza. Ogni istanza eseguirà la lettura o la scrittura di uno specifico registro e così inserendo più le istanze potrai gestire tutti i registri che ti occorrono.
Ti ho realizato un semplice programma ladder che esegue la lettura di 3 registri, come vedi dalla stampa del programma ho definito 3 istanze della FB che ho denominato Reg1, Reg2, Reg3, ogni istanza esegue la lettura (Comando 03) di un registro dell’analizzatore. L’uscita Done di ogni istanza attiva l’istanza successiva e l’ultima istanza fà ripartire la sequenza. Per temporizzare la comunicazione basta definire opportunamente il tempo nel parametro Delay.
Naturalmente questa è una idea, per i registri consecutivi conviene usare una unica istanza definendo in Points il numero di registri da leggere. Attenzione all’indirizzo modbus del registro, modbus ha un offset di 1 che alcuni dispositivi non gestiscono, percui se non ti torna la lettura prova a sommare/sottrarre 1 all’indirizzo del registro definito in Address, download programma.