Modbus PHP是一個用于與Modbus設備通信的PHP庫。要進行批量讀寫,你可以使用mb_read_input_registers()
和mb_write_multiple_registers()
函數。以下是一個簡單的示例,展示了如何使用這些函數進行批量讀寫操作:
<?php
require_once 'vendor/autoload.php'; // 確保已安裝Modbus PHP庫
use Modbus\Client\TcpClient;
use Modbus\Exception\ModbusException;
// 創建一個TCP客戶端實例
$client = new TcpClient('127.0.0.1', 502);
try {
// 連接到Modbus設備
$client->connect();
// 批量讀取寄存器
$startAddress = 0;
$quantity = 10;
$result = $client->readInputRegisters($startAddress, $quantity);
// 輸出讀取到的數據
echo "Read data:\n";
foreach ($result as $value) {
echo $value . "\n";
}
// 批量寫入寄存器
$writeAddress = 0;
$values = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000];
$result = $client->writeMultipleRegisters($writeAddress, $values);
// 輸出寫入結果
echo "Write result: " . ($result ? 'Success' : 'Failed') . "\n";
} catch (ModbusException $e) {
echo "Error: " . $e->getMessage() . "\n";
} finally {
// 斷開與設備的連接
$client->disconnect();
}
在這個示例中,我們首先創建了一個TCP客戶端實例,然后連接到Modbus設備。接下來,我們使用mb_read_input_registers()
函數批量讀取寄存器,并使用mb_write_multiple_registers()
函數批量寫入寄存器。最后,我們輸出讀取到的數據和寫入結果,并斷開與設備的連接。
請注意,這個示例假設你已安裝了Modbus PHP庫。你可以使用Composer進行安裝:
composer require modbus-php/modbus-php