Heim > Artikel > Backend-Entwicklung > PHP-Programmierideen: Erstellen effizienter Modbus TCP-Kommunikationsanwendungen
PHP-Programmierungsideen: Erstellen Sie effiziente Modbus-TCP-Kommunikationsanwendungen
Mit der rasanten Entwicklung des Internets der Dinge müssen immer mehr Geräte Daten mit Servern über TCP-Kommunikation austauschen. Modbus ist ein häufig verwendetes Kommunikationsprotokoll, das im Bereich der industriellen Automatisierung weit verbreitet ist. In diesem Artikel wird erläutert, wie Sie mit der Programmiersprache PHP eine effiziente Modbus TCP-Kommunikationsanwendung erstellen und Codebeispiele bereitstellen.
Bevor Sie eine Modbus TCP-Kommunikationsanwendung erstellen, müssen Sie die Kommunikationsmethode bestimmen. Modbus TCP kann mithilfe der Socket-Erweiterung von PHP implementiert werden, oder es können Bibliotheken von Drittanbietern wie phpmodbus verwendet werden, um den Entwicklungsprozess zu vereinfachen. Hier entscheiden wir uns für die Verwendung der phpmodbus-Bibliothek, da sie die Details des Modbus-Protokolls kapselt und eine benutzerfreundliche API bereitstellt.
Die Verwendung von Composer zur Installation der phpmodbus-Bibliothek ist der einfachste Weg. Öffnen Sie ein Befehlszeilenfenster, geben Sie das Projektverzeichnis ein und führen Sie den folgenden Befehl aus, um die phpmodbus-Bibliothek zu installieren:
composer require phpmodbus/phpmodbus
Composer lädt die phpmodbus-Bibliothek und ihre Abhängigkeiten herunter und installiert sie.
Zuerst müssen wir eine Modbus TCP-Verbindung erstellen. In PHP kann dies mithilfe der ModbusMaster-Klasse erreicht werden. Das Folgende ist ein Beispielcode zum Herstellen einer Verbindung mit einem Modbus TCP-Gerät:
require __DIR__ . '/vendor/autoload.php'; use PhpmodbusPhpmodbus; $ip = '192.168.0.1'; // 设备的IP地址 $port = 502; // Modbus TCP的默认端口号 $modbus = new ModbusMaster($ip, $port);
Sobald die Verbindung erfolgreich hergestellt wurde, können wir die Methode readMultipleRegisters in der ModbusMaster-Klasse verwenden, um die Registerdaten des Modbus-Geräts zu lesen. Das Folgende ist ein Beispielcode, der die Registerdaten des Modbus-Geräts liest:
$unitId = 0; // 设备的单元标识符 $startAddress = 0; // 开始地址 $numberOfRegisters = 10; // 读取寄存器的数量 $data = $modbus->readMultipleRegisters($unitId, $startAddress, $numberOfRegisters); $values = Phpmodbus::byteArrayToRegisterArray($data);
Im obigen Beispiel akzeptiert die Methode readMultipleRegisters die Gerätekennung, die Startadresse und die Anzahl der Register des Geräts als Parameter und gibt ein Byte-Array zurück. Mit der Methode byteArrayToRegisterArray aus der Phpmodbus-Bibliothek können wir ein Byte-Array in ein Array von Registerwerten konvertieren.
Wenn Sie Daten auf das Modbus-Gerät schreiben müssen, können Sie die Methode writeMultipleRegisters in der ModbusMaster-Klasse verwenden. Hier ist ein Beispielcode, der Daten in die Halteregister des Modbus-Geräts schreibt:
$data = [1, 2, 3, 4, 5]; // 要写入的数值数组 $startAddress = 0; // 开始地址 $unitId = 0; // 设备的单元标识符 $modbus->writeMultipleRegisters($unitId, $startAddress, $data);
Im obigen Beispiel akzeptiert die Methode writeMultipleRegisters als Parameter die Gerätekennung des Geräts, die Startadresse und das Array der zu schreibenden Werte . Beachten Sie, dass die Länge des Arrays, in das Daten geschrieben werden, mit der Anzahl der geschriebenen Register übereinstimmen muss.
Wenn die Kommunikation mit dem Modbus-Gerät nicht mehr benötigt wird, sollte die Verbindung geschlossen werden, um Ressourcen freizugeben. Die Verbindung kann mit der Disconnect-Methode in der ModbusMaster-Klasse geschlossen werden. Im Folgenden finden Sie einen Beispielcode zum Schließen einer Modbus TCP-Verbindung:
$modbus->disconnect();
Zusammenfassung
In diesem Artikel wird erläutert, wie Sie mit der Programmiersprache PHP eine effiziente Modbus TCP-Kommunikationsanwendung erstellen. Mithilfe der phpmodbus-Bibliothek können wir problemlos eine Verbindung zu Modbus-Geräten herstellen und über eine einfache API Registerdaten lesen und schreiben. Ich hoffe, dieser Artikel hat Ihnen beim Erstellen von Modbus TCP-Kommunikationsanwendungen geholfen.
Hinweis: Die oben genannten Codebeispiele dienen nur als Referenz. In tatsächlichen Anwendungen können aufgrund spezifischer Umstände einige Anpassungen und Erweiterungen erforderlich sein.
Das obige ist der detaillierte Inhalt vonPHP-Programmierideen: Erstellen effizienter Modbus TCP-Kommunikationsanwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!