要實現實時監控和數據采集,可以使用PHP Modbus庫與Modbus TCP通信來讀取和寫入Modbus設備的寄存器。
以下是一個簡單的示例代碼,演示如何使用PHP Modbus庫與Modbus TCP服務器通信:
<?php
require_once 'vendor/autoload.php';
use PHPModbus\ModbusMaster;
// Modbus TCP服務器的IP地址和端口號
$serverIp = '127.0.0.1';
$serverPort = 502;
// 創建ModbusMaster對象
$modbus = new ModbusMaster($serverIp, 'TCP', $serverPort);
// 讀取寄存器的值
$startAddress = 0;
$quantity = 10;
try {
$data = $modbus->readMultipleRegisters(1, $startAddress, $quantity);
var_dump($data);
} catch (Exception $e) {
echo $e->getMessage();
}
// 寫入寄存器的值
$startAddress = 0;
$data = [1, 2, 3, 4, 5];
try {
$modbus->writeMultipleRegisters(1, $startAddress, $data);
} catch (Exception $e) {
echo $e->getMessage();
}
在上面的示例中,我們首先創建了一個ModbusMaster對象,然后使用該對象讀取和寫入Modbus設備的寄存器值。您可以根據自己的需求更改寄存器的起始地址和數量,并處理讀取和寫入操作的結果。
請注意,此示例假定您已經安裝了PHP Modbus庫并正確配置了Modbus TCP服務器。您需要根據實際情況修改服務器的IP地址和端口號,并確保您具有適當的權限來訪問Modbus設備。