Position actuelle: Accueil> Derniers articles> Comment utiliser le protocole PHP et Modbus TCP pour la communication du système de contrôle industriel

Comment utiliser le protocole PHP et Modbus TCP pour la communication du système de contrôle industriel

M66 2025-06-06

Présentation du protocole Modbus TCP

MODBUS TCP est un protocole de communication industriel basé sur TCP / IP, couramment utilisé pour la communication entre les PLC, les E / S à distance, les capteurs et d'autres dispositifs d'automatisation. Ce protocole est basé sur Ethernet et prend en charge les fonctions, notamment la lecture des données, la rédaction du registre et le contrôle des périphériques.

Dans une architecture de communication, Modbus TCP est généralement initié par le maître et a répondu à la commande par l'esclave. Cette structure permet à la station maître de centraliser efficacement le contrôle de plusieurs équipements industriels, réalisant ainsi l'acquisition centralisée de données et la télécommande.

Créer un module de communication Modbus TCP à l'aide de PHP

Bien que largement utilisée dans le développement Web, PHP est également compétent pour certaines tâches de communication industrielles, en particulier dans les systèmes de calculs Edge ou de couche intermédiaire. Voici un exemple de code pour l'utilisation de PHP pour implémenter la communication Modbus TCP:
<?php
class ModbusTCP {
    private $socket;

    public function __construct($ip, $port) {
        $this-> socket = socket_create (af_inet, sock_stream, sol_tcp);
        socket_connect ($ this-> socket, $ ip, $ port);
    }

    Fonction publique ReadRegisters ($ slaveid, $ regrinsAddress, $ registerCount) {
        $ buffer = pack ("nnnn", $ slaveid, 0x03, $ regrinsAddress, $ registerCount);
        socket_send ($ this-> socket, $ buffer, strlen ($ buffer), 0);

        $ réponse = &#39;&#39;;
        $ bytes = socket_recv ($ this-> socket, $ réponse, 2048, msg_waitall);

        $ registres = déball ("n *", substr ($ réponse, 9));
        retour $ registres;
    }

    fonction publique WriteRegister ($ slaveid, $ regrinsAddress, $ registervalue) {
        $ buffer = pack ("nnn", $ slaveid, 0x06, $ regrinsAddress, $ registerValue);
        socket_send ($ this-> socket, $ buffer, strlen ($ buffer), 0);
    }

    Fonction publique __Drestruct () {
        socket_close ($ this-> socket);
    }
}

// Utilisez l&#39;exemple $ modbus = new ModBustCP (&#39;192.168.0.1&#39;, 502);
$ registres = $ modbus-> readregisters (1, 0, 10);

foreach ($ registres as $ adresse => $ value) {
    echo "enregistrez $ adresse: $ valeur \ n";
}

$ modbus-> writeRegister (1, 0, 100);

Ce code montre une classe ModBustCP de base, qui implémente la connexion avec les esclaves, les registres de lecture et d'écriture via la fonction de socket php. En usage réel, les développeurs n'ont qu'à initialiser l'instance de classe et à transmettre le périphérique IP et le port pour réaliser l'interaction des données de l'équipement industriel.

Analyse de l'exemple d'application

Dans l'exemple ci-dessus, le système est connecté à un esclave Modbus avec une adresse IP de `192.168.0.1` et un port de« 502 ». Lisez les valeurs des 10 premiers registres via la méthode «ReadRegisters» et sortez-les un par un. Enfin, la méthode «WriteRegister» écrit la valeur «100» au premier registre. Ce processus reflète deux fonctions les plus couramment utilisées de MODBUS TCP: l'émission des instructions de lecture et de contrôle des données.

Conclusion

Cet article présente en détail comment utiliser le protocole PHP et Modbus TCP pour réaliser la communication des données dans les systèmes de contrôle industriel. De la structure du protocole à la mise en œuvre de PHP, les développeurs peuvent rapidement créer leurs propres modules de communication pour fournir des capacités d'interaction de données fiables pour les projets d'automatisation industrielle. Bien que PHP ne soit pas un langage de contrôle industriel traditionnel, il peut toujours être compétent pour certaines tâches d'intégration du système de contrôle industriel grâce à la programmation de socket.

Références:
[1] Spécification du protocole d'application Modbus V1.1b3 - https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf