PHP Modbus可以通過使用Modbus TCP或Modbus RTU通信協(xié)議來實(shí)現(xiàn)數(shù)據(jù)的讀取操作。以下是一個簡單的示例代碼,用于從Modbus設(shè)備中讀取數(shù)據(jù):
// Modbus TCP連接信息
$host = '192.168.1.100'; // Modbus設(shè)備IP地址
$port = 502; // Modbus設(shè)備端口號
// 創(chuàng)建Modbus TCP連接
$connection = new ModbusMaster($host, 'TCP', $port);
// 讀取保持寄存器中的數(shù)據(jù)
$slaveId = 1; // 設(shè)備的Slave ID
$startAddress = 0; // 起始地址
$quantity = 10; // 讀取數(shù)據(jù)的數(shù)量
try {
$data = $connection->readMultipleRegisters($slaveId, $startAddress, $quantity);
// 處理讀取的數(shù)據(jù)
for ($i = 0; $i < $quantity; $i++) {
echo "Register " . ($startAddress + $i) . ": " . $data[$i] . "\n";
}
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
在上面的示例中,首先創(chuàng)建了一個Modbus TCP連接,然后使用readMultipleRegisters
方法從Modbus設(shè)備的保持寄存器中讀取數(shù)據(jù)。最后,對讀取的數(shù)據(jù)進(jìn)行處理并輸出。
需要注意的是,要使用PHP Modbus庫進(jìn)行Modbus通信,需要先安裝PHP Modbus庫,并根據(jù)具體情況修改連接信息和讀取操作的參數(shù)。