PHP と Modbus TCP: 分散デバイス制御を実現する方法に関する議論
概要:
モノのインターネットの急速な発展に伴い、分散デバイス制御が重要な課題となっています。この記事では、PHP と Modbus TCP プロトコルを使用して分散デバイス制御を実装する方法と、読者がその方法をよりよく理解できるようにコード例を作成する方法について説明します。
準備:
コードを書き始める前に、Modbus TCP ライブラリがインストールされていることを確認する必要があります。次のコマンドを使用して Linux システムにインストールできます:
sudo apt-get install php7.4-mbstring
function connectModbusDevice($ip, $port) { $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { die("无法创建套接字"); } $result = socket_connect($socket, $ip, $port); if ($result === false) { die("无法连接到Modbus设备"); } return $socket; }
$ip
および $port
パラメーターが設定されていることを確認してください。 Modbus デバイスの IP アドレスとポート。
function readModbusRegister($socket, $registerAddress) { $request = "" . pack('n', $registerAddress) . ""; socket_write($socket, $request, strlen($request)); $response = socket_read($socket, 2048); // 解析响应数据,获取寄存器的值 $registerValue = unpack('n', substr($response, 9, 2))[1]; return $registerValue; }
必ず $registerAddress
パラメータを、読み取りたいレジスタのアドレスに設定してください。
function writeModbusRegister($socket, $registerAddress, $registerValue) { $request = "" . pack('n', $registerAddress) . pack('n', $registerValue); socket_write($socket, $request, strlen($request)); $response = socket_read($socket, 2048); // 解析响应数据,检查写入操作是否成功 $statusCode = unpack('n', substr($response, 7, 2))[1]; if ($statusCode != 6) { die("写入寄存器失败"); } }
$registerAddress
パラメータには、書き込み先のレジスタのアドレスを設定してください。および $registerValue
パラメータは書き込まれる値に設定されます。
function disconnectModbusDevice($socket) { socket_close($socket); }
完全なサンプル コードは次のとおりです:
$modbusIp = "192.168.1.100"; $modbusPort = 502; $modbusDevice = connectModbusDevice($modbusIp, $modbusPort); $registerAddress = 100; $registerValue = readModbusRegister($modbusDevice, $registerAddress); echo "寄存器 $registerAddress 的值为: $registerValue" . PHP_EOL; $registerAddress = 200; $registerValue = 500; writeModbusRegister($modbusDevice, $registerAddress, $registerValue); echo "成功将值 $registerValue 写入寄存器 $registerAddress" . PHP_EOL; disconnectModbusDevice($modbusDevice);
概要:
この記事では、PHP と Modbus の使用方法を紹介します。分散デバイス制御を実現する TCP プロトコル。 Modbus デバイスへの接続、レジスタ値の読み取り、レジスタ値の書き込み、接続の終了などの主要な機能のコード例を提供します。これらの例を使用することで、読者は PHP と Modbus TCP をよりよく理解し、活用して分散デバイス制御を実装することができます。
以上がPHP と Modbus TCP: 分散デバイス制御を実現する方法についてのディスカッションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。