La domanda và oltre quello che può essere il nostro supporto alla programmazione dei moduli SlimLine, ti serve una risposta articolata e multidisciplinare. Occorre un programmatore Codesys per lo sviluppo del programma sul modulo CPU ed un programmatore Web PHP per quanto riguarda lo script sul server.
Siccome oltre a programmare i PLC (Sia in ambiente Codesys che LogicLab) mi diverto a giocherellare con il PHP, così partendo da quanto fatto in questo topic e dall’ottimo lavoro di Jan Krakora che ha scritto la classe Phpmodbus, mi sono dilettato a costruire una classe per gestire le comunicazioni Modbus TCP.
Ho sviluppato un progetto dimostrativo con un programma su SlimLine Codesys (Stampa programma) che acquisisce la temperatura tramite una Pt1000 e uno script PHP da installare su di un server per l’interrogazione via Modbus TCP (Stampa script).
Come si vede dai programmi sullo SlimLine viene gestito il Modbus slave ed è allocato un buffer di tipo MODBUSDATASTRUCT che può essere gestito da Modbus all’indirizzo 1000. Nel buffer vi è un counter CmdCount incrementato ad ogni comando Modbus ed un valore REAL di temperatura.
Nello script ReadTemp.php viene istanziata una classe Modbus e viene eseguito un comando Read Multiple Registers ad indirizzo 1000 di 4 registri (Uno è CmdCount ad offset 0, uno è un valore Dummy, e due sono il dato di temperatura REAL ad offset 4). I valori acquisiti dallo SlimLine sono poi stampati in echo per la visualizzazione.
A scopo di test viene anche stampato lo stato del comando Modbus (Questa parte può essere omessa dallo script). Allego tutti i programmi sia Codesys che PHP per il download.