Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie das Lesen und Schreiben von Modbus TCP-Daten über PHP

So implementieren Sie das Lesen und Schreiben von Modbus TCP-Daten über PHP

WBOY
WBOYOriginal
2023-07-17 14:48:141414Durchsuche

So implementieren Sie das Lesen und Schreiben von Modbus TCP-Daten über PHP

Modbus ist ein häufig verwendetes Kommunikationsprotokoll für die Kommunikation zwischen Geräten im industriellen Bereich. Modbus TCP ist eine Variante des Modbus-Protokolls, die das TCP/IP-Protokoll für die Kommunikation im Netzwerk verwendet. In diesem Artikel stellen wir vor, wie man Modbus TCP-Daten über PHP liest und schreibt.

  1. Modbus-PHP-Erweiterung installieren
    Bevor wir PHP zur Implementierung der Modbus-TCP-Kommunikation verwenden, müssen wir eine Modbus-PHP-Erweiterung installieren. Eine häufig verwendete Erweiterung ist phpmodbus. Sie können den Code unter https://github.com/angeloc/phpmodbus herunterladen und in Ihr PHP-Projekt kopieren.
  2. Einrichten einer Modbus-TCP-Verbindung
    Mit der Erweiterung phpmodbus ist das Einrichten einer Modbus-TCP-Verbindung ganz einfach. Zuerst müssen wir ein ModbusMaster-Objekt erstellen und die IP-Adresse und Portnummer des Modbus-Servers angeben. Beispiele sind wie folgt:
require_once('modbus/ModbusMaster.php');

$modbus = new ModbusMaster("192.168.1.1", "TCP");
  1. Modbus-Daten lesen
    Das Modbus-Protokoll unterstützt mehrere Methoden zum Lesen von Daten, z. B. das Lesen von Halteregistern (Holding Register), Eingaberegistern (Input Registers), Spulen (Coil) usw. Wir können die Methode readMultipleRegisters() des ModbusMaster-Objekts verwenden, um die Daten des Halteregisters zu lesen. Ein Beispiel ist wie folgt:
$startAddress = 0;
$length = 10;

$data = $modbus->readMultipleRegisters(1, $startAddress, $length);

for ($i = 0; $i < $length; $i++) {
    echo "寄存器 " . ($startAddress + $i) . " 的值: " . $data[$i] . "
";
}
  1. Modbus-Daten schreiben
    Wenn wir Daten auf den Modbus-Server schreiben möchten, können wir die Methode writeSingleRegister() oder writeMultipleRegisters() des ModbusMaster-Objekts verwenden. Ein Beispiel ist wie folgt:
$address = 1;
$value = 123;

$modbus->writeSingleRegister($address, $value);

echo "写入成功
";
  1. Fehlerbehandlung
    In praktischen Anwendungen müssen wir eine Fehlerbehandlung für die Modbus-Kommunikation durchführen. Jede Methode des ModbusMaster-Objekts gibt einen booleschen Wert zurück, der angibt, ob die Kommunikation erfolgreich ist. Wenn die Kommunikation fehlschlägt, können wir die Methode getError() verwenden, um Fehlerinformationen abzurufen. Ein Beispiel ist wie folgt:
if (!$modbus->writeSingleRegister($address, $value)) {
    echo "写入失败:" . $modbus->getError() . "
";
}

Zusammenfassend können wir PHP verwenden, um Modbus TCP-Daten zu lesen und zu schreiben, indem wir die Erweiterung phpmodbus verwenden. Durch die Einrichtung des ModbusMaster-Objekts und die Auswahl der geeigneten Methode können wir die Modbus-Kommunikation problemlos durchführen. Wenn Sie auf die Fehlerbehandlung achten, können Sie die Stabilität und Zuverlässigkeit des Programms verbessern.

Obwohl dieser Artikel nur die Grundlagen der Implementierung von Modbus TCP in PHP vermittelt, bietet er Ihnen einen guten Ausgangspunkt, damit Sie komplexere Modbus-Anwendungen weiter erlernen und entwickeln können. Ich hoffe, dass Sie weiterhin in der Praxis forschen und lernen und das Potenzial von Modbus voll ausschöpfen können!

Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Lesen und Schreiben von Modbus TCP-Daten über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn