Per la gestione del ricettario ti rimando a questa Knowledge dove puoi trovare sicuramente uno spunto interessante. Come vedi nel progetto riportato viene utilizato un pannello operatore per operare su files di ricetta presenti nel file system di un sistema SlimLine. Nella mia risposta considero di utilizzare un modulo MPS054A100 con la nuova versione del sistema operativo (Che rilasceremo a breve e che incrementa notevolmente le capacità del sistema). Se utilizzi una SDCard come directory di memorizzazione dei files di ricetta puoi sicuramente contenere più di 300 files, ma puoi anche utilizzare l’FB FTPClient per trasferire i files di ricetta su di un server FTP.
Veniamo ora alla dimensione di ogni ricetta, 3500 strutture composte da un valore (Utilizzerei un UDINT) e da un numero (Utilizzerei un UINT) richiedono 21 Kbytes di memoria. La DB 100 non ha tutta questa dimensione disponibile e lo stesso Modbus standard non prevede la gestione di un’area così grande. Io consiglio di allocare dinamicamente un’area di memoria (Funzione RMalloc) e istanziando un FB ModbusSlave permettere di accedere a tutta l’area di memoria allocata. Poco importa che l’area non sia ritentiva tanto con il FB FileMemoryDump la trasferirai nel file system. Tu chiedi file di tipo csv, è fattibile ma dovrai realizzare tu un FB che trasferisce la struttura di ricetta in un file di tipo csv (Vedi topic).
Naturalmente nessun problema a gestire gli I/O logici, lo SlimLine è nato per questo, mentre per la connessione remota ti consiglio un router UMTS o LTE.