動態

詳情 返回 返回

php使用sockets實現Modbus TCP串口通信 - 動態 詳情

sockets文檔地址:https://www.php.net/manual/zh/book.sockets.php

一:安裝sockets拓展

1:windows安裝sockets

找到php.ini文件,將下面這行註釋即可

extension=sockets

2:Linux安裝sockets

pecl install sockets

找到php.ini文件,增加下面這行即可

extension=socket.so

3:docker安裝

再docker容器中執行下面這行即可

docker-php-ext-install sockets

二:sockets簡單實現Modbus TCP信息報送

$serverIP = 'XXX.XXX.XXX.XXX';  // Modbus TCP服務器IP
$serverPort = 8000;  // Modbus TCP服務器端口

// 創建TCP連接
$socket = \socket_create(AF_INET, SOCK_STREAM, SOL_TCP);


if ($socket === false) {
    die("socket_create() failed: reason: " . socket_strerror(socket_last_error()));
}
try {
    \socket_connect($socket, $serverIP, $serverPort);
} catch (\Exception $e) {
    die("無法連接到Modbus TCP服務器");
}
//請求報文
$request = 'XXXX';
//將報文轉為十六進制字符串
$request = pack('H*', $request);
//發送請求報文
\socket_write($socket, $request);
// 接收響應報文
$response = \socket_read($socket, 2048);
//處理響應報文
$data = unpack('h*', $response);
// 關閉TCP連接
\socket_close($socket);
user avatar zhouzhenchao 頭像 danieldx 頭像
點贊 2 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.