Utilizziamo i vostri moduli di acquisizione analogica TRP-C68 per il controllo di stringa su impianti fotovoltaici. Al fine di proteggere i nostri sistemi, sarebbe utile poter cambiare il nome del modulo, inserendo una chiave criptata calcolata sulla base dell’ID del modulo ed una chiave di criptazione segreta.
Per impostare il nome del modulo (6 bytes), si usa il comando ASCII “~IDOnnnnnn<CR>” dove al posto di “nnnnnn” viene impostato il nome da dare al modulo. Con il comando ASCII “$IDM<CR>” è possibile rileggere il nome impostato. E questi comandi funzionano perfettamente.
Il problema è che noi utilizziamo i moduli in modbus RTU, con questo protocollo non è disponibile il comando Change module’s name, quindi ho pensato di farlo in ASCII (In fase di setup dei moduli) e poi di usare la funzione modbus RTU (Documentata nel manuale) Read the module’s name “ID 46 00 00 (CRC)”.
Ma la stringa ritornata dal comando di lettura è sempre 01 46 00 00 0C 68 00, cioè come se il modulo si chiamasse sempre C68, anche se precedentemente era stato cambiato il suo nome con il comando ASCII.
Dove stò sbagliando ?