Vai al contenuto

Accesso a variabili Modbus da script PHP

Home Forum Obsoleti SlimLine (CODESYS) Accesso a variabili Modbus da script PHP

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35786
    Paolo
    Partecipante

    Ho provato a modificare il tuo progetto che ho trovato sul sito per il collegamento Modbus TCP del modulo CPU Codesys ma non riesco ad ottenere i risultati che desidero. Forse faccio prima a spiegare cosa mi serve e vediamo se avetu un qualche esempio già pronto.

    Il mio obiettivo è creare una pagina PHP su di un server che legge i dati dal modulo CPU Codesys utilizzando il protocollo modbus TCP. In pratica dovrei acquisire dal PC tramite lo script PHP dei valori di temperatura acquisiti dal sistema SlimLine.

    #38910
    Sergio Bertana
    Amministratore del forum

    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.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.