PHP 및 Modbus TCP: 실시간 경보 시스템 구축을 위한 모범 사례
요약:
이 기사에서는 PHP 및 Modbus TCP 프로토콜을 사용하여 실시간 경보 시스템을 구축하는 방법을 소개합니다. PHP의 네트워크 프로그래밍 기능과 Modbus TCP 프로토콜을 사용하면 원격 장치에서 쉽게 데이터를 얻을 수 있고 실시간으로 이상 상태를 감지할 수 있습니다. 동시에 독자들이 이러한 기술을 더 잘 이해하고 적용할 수 있도록 코드 예제도 제공할 것입니다.
<?php $device_ip = '192.168.1.100'; $device_port = 502; // 创建一个TCP socket $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "<br>"; exit; } // 连接远程设备 $result = socket_connect($socket, $device_ip, $device_port); if ($result === false) { echo "socket_connect() failed: " . socket_strerror(socket_last_error()) . "<br>"; exit; } // 发送读取设备数据的请求 $request = ""; socket_write($socket, $request, strlen($request)); // 读取设备返回的数据 $response = socket_read($socket, 1024); echo "设备返回的数据:" . bin2hex($response) . "<br>"; // 关闭TCP连接 socket_close($socket); ?>
<?php function readModbusRegister($socket, $address, $quantity) { $request = "" . pack('n*', $address) . pack('n*', $quantity); socket_write($socket, $request, strlen($request)); $response = socket_read($socket, 1024); // 解析设备返回的数据 $data = substr($response, 9); $values = unpack('n*', $data); return $values; } ?>
실시간 경보 시스템의 샘플 코드는 다음과 같습니다.
<?php $device_ip = '192.168.1.100'; $device_port = 502; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, $device_ip, $device_port); while (true) { // 读取设备数据 $values = readModbusRegister($socket, $address, $quantity); // 判断是否触发报警 if ($values[1] > $threshold) { // 发送报警信息 sendAlert('设备故障!当前值:' . $values[1]); } // 延迟一段时间 sleep(10); } socket_close($socket); function readModbusRegister($socket, $address, $quantity) { // ... } function sendAlert($message) { // ... } ?>
위 내용은 PHP 및 Modbus TCP: 실시간 경고 시스템 구축을 위한 모범 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!