Aktueller Standort: Startseite> Neueste Artikel> PHP realisiert Modbus TCP -Kommunikation: Erstellen Sie die Lösung der Dateninteraktion für industrielle Automatisierungen

PHP realisiert Modbus TCP -Kommunikation: Erstellen Sie die Lösung der Dateninteraktion für industrielle Automatisierungen

M66 2025-06-06

Modbus TCP -Protokollübersicht

Modbus TCP ist ein TCP/IP-basierter industrieller Kommunikationsprotokoll, das üblicherweise für die Kommunikation zwischen SPS, Remote-E/A, Sensoren und anderen Automatisierungsgeräten verwendet wird. Dieses Protokoll basiert auf Ethernet und unterstützt Funktionen einschließlich Datenlesen, Register schreiben und Gerätesteuerung.

In einer Kommunikationsarchitektur wird Modbus TCP normalerweise vom Master initiiert und vom Sklaven auf den Befehl reagiert. Diese Struktur ermöglicht es der Master -Station, die Kontrolle mehrerer industrieller Geräte effizient zu zentralisieren, wodurch die zentralisierte Datenerfassung und die Fernbedienung realisiert werden.

Bauen Sie das Modbus -TCP -Kommunikationsmodul mit PHP auf

Obwohl PHP in der Webentwicklung weit verbreitet ist, ist es auch für bestimmte industrielle Kommunikationsaufgaben kompetent, insbesondere für Edge -Computing- oder Zwischenschichtsysteme. Hier ist ein Beispielcode für die Verwendung von PHP zum Implementieren von Modbus TCP -Kommunikation:
<?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);
    }

    öffentliche Funktionsreadegister ($ slaveid, $ registerAddress, $ registerCount) {
        $ buffer = pack ("nnnn", $ slaveid, 0x03, $ registerAddress, $ registerCount);
        socket_send ($ this-> socket, $ buffer, strlen ($ buffer), 0);

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

        $ registers = pack ("n*", substr ($ response, 9));
        Return $ Register;
    }

    public function writeeregister ($ slaveid, $ registerAddress, $ registerValue) {
        $ buffer = pack ("nnn", $ slaveid, 0x06, $ registerAddress, $ registerValue);
        socket_send ($ this-> socket, $ buffer, strlen ($ buffer), 0);
    }

    öffentliche Funktion __Destruct () {
        Socket_CLOSE ($ this-> Socket);
    }
}

// Beispiel $ modbus = new modbustcp (&#39;192.168.0.1&#39;, 502);
$ registers = $ modbus-> readregister (1, 0, 10);

foreach ($ register als $ addres => $ value) {
    echo "Register $ addres: $ value \ n";
}

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

Dieser Code zeigt eine grundlegende ModbustCP -Klasse, die die Verbindung mit Sklaven implementiert, Register durch PHP -Socket -Funktion liest und schreibt. Im tatsächlichen Gebrauch müssen Entwickler nur die Klasseninstanz initialisieren und in die Geräte -IP und den Hafen übergeben, um die Dateninteraktion von industriellen Geräten zu realisieren.

Analyse der Anwendungsbeispiele

Im obigen Beispiel ist das System mit einer IP -Adresse von 192.168.0.1` und einem Port von 502 "an einen Modbus -Slave verbunden. Lesen Sie die Werte der ersten 10 Register über die "Readregister" -Methode und geben Sie sie nacheinander aus. Schließlich schreibt die "Writeregister` -Methode den Wert" 100 "in das erste Register. Dieser Prozess spiegelt zwei am häufigsten verwendete Funktionen von Modbus TCP wider: Datenles- und Steuerungsanweisungen zur Ausgabe von Daten.

Abschluss

In diesem Artikel wird detailliert eingeführt, wie das TCP -Protokoll von PHP und Modbus verwendet wird, um die Datenkommunikation in industriellen Steuerungssystemen zu realisieren. Von der Protokollstruktur bis zur PHP -Implementierung können Entwickler schnell ihre eigenen Kommunikationsmodule erstellen, um zuverlässige Dateninteraktionsfunktionen für industrielle Automatisierungsprojekte bereitzustellen. Obwohl PHP keine traditionelle industrielle Kontrollsprache ist, kann es für einige Integrationsaufgaben für industrielle Steuerungssysteme durch Socket -Programmierung kompetent sein.

Referenzen:
[1] Modbus -Anwendungsprotokollspezifikation v1.1b3 - https://modbus.org/docs/modbus_application_protocol_v1_1b3.pdf