Il modulo CPU MPS050 che tu hai non ha la porta Ethernet, per avere la porta Ethernet devi utilizzare il modello MPS053, questo modello però ha solo la porta seriale RS232 e non la RS485. Per avere la porta Ethernet e la porta RS485 devi utilizzare la versione MPS046.
Come dici giustamente tu per vedere lo stato degli I/O logici da terminale devi appoggiarli nella DB100, l’area DB 100 è l’unica accessibile da Modbus. In questo topic c’è un esempio che è proprio come il tuo, se scarichi l’esempio hai sia il programma dello SlimLine che quello del terminale così puoi vedere come funziona. Attenzione nel tuo esempio le variabili mbusI0, mbusI1,… sono allocate ad indirizzo MB100.1, MB100.4,… e non và bene. Il terminale legge variabili a bit a partire da MB100.16 (0x 40016) e non indirizzi inferiori (In questo topic trovi ulteriori informazioni).
Per quanto riguarda gli esempi che noi identifichiamo con il codice PTPxxx, si trovano già installati sul tuo PC insieme alla installazione di LogicLab, sono nella cartella di installazione programma (Esempio C:Program Files (x86)ElsistLogicLabExamples).
Per quanto riguarda le funzioni SysGetPhrDI e il ByteToBit devi riferirti al Manuale programmazione IEC61131-3 e/o agli esempi che tu hai già citato. Ti ricordo che puoi anche acquisire 16 bits di stato in una unica WORD di memoria (Senza quindi suddiverli in Bits con la ByteToBit) utilizando la funzione HMI 3x_Bit che permette di testare il singolo bit di una WORD. Se per esempio appoggi tutti gli ingressi nella WORD a MW100.16 sul terminale puoi scrivere 3xBit 4000800 per il bit0, 4000801 per il bit 1 e così via fino a 4000815 per il bit 15.