PHP 및 Modbus TCP: 장치의 상태 보고를 처리하는 방법
개요:
Modbus는 서로 다른 장치 간에 데이터를 전송하는 데 사용되는 통신 프로토콜입니다. 이는 장치 간 통신을 단순화하도록 설계되었으며 산업 자동화 애플리케이션에 널리 사용됩니다. PHP는 Modbus TCP 프로토콜과 함께 사용하여 장치 상태 보고서를 처리하는 데 도움이 되는 강력한 서버측 스크립팅 언어입니다. 이 문서에서는 PHP 및 Modbus TCP 프로토콜을 사용하여 장치의 상태 보고를 처리하는 방법을 설명하고 몇 가지 코드 예제를 제공합니다.
1. Modbus TCP 라이브러리 설치
먼저 PHP에서 Modbus 프로토콜을 사용하려면 Modbus TCP 라이브러리를 설치해야 합니다. 인기 있는 라이브러리는 GitHub에서 찾을 수 있는 phpmodbus 라이브러리입니다. 라이브러리를 다운로드하고 설치한 후 PHP를 사용하여 장치의 상태 보고를 처리할 수 있습니다.
2. 장치와 연결을 설정합니다
다음 단계는 장치와 연결을 설정하는 것입니다. 연결을 설정하려면 장치의 IP 주소와 포트 번호가 필요합니다. PHP에서는 소켓 함수를 사용하여 연결을 만들 수 있습니다. 다음은 Modbus TCP 연결을 설정하는 샘플 코드입니다.
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $deviceIP = "192.168.0.1"; $devicePort = 502; if (socket_connect($socket, $deviceIP, $devicePort) !== false) { echo "与设备连接成功"; } else { echo "连接设备失败"; } // 连接建立后,我们可以开始通过Modbus协议与设备进行通信。
3. Modbus 요청을 보내고 응답을 받습니다.
다음으로, 장치의 상태 보고서를 받기 위해 Modbus 요청을 보내야 합니다. Modbus 프로토콜의 사양에 따라 다양한 데이터를 얻기 위해 다양한 유형의 요청을 보낼 수 있습니다. 다음은 요청을 보내고 응답을 받기 위한 샘플 코드입니다.
$response = ''; if (socket_write($socket, $request, strlen($request)) !== false) { // 读取响应数据 while ($buffer = socket_read($socket, 2048)) { $response .= $buffer; } } // 响应数据获取完毕后,我们可以对其进行解析和处理,从中提取设备的状态报告。
IV. 응답을 구문 분석하고 장치 상태 보고서를 처리합니다.
Modbus 응답을 받은 후 장치 상태 보고서를 추출하려면 이를 구문 분석하고 처리해야 합니다. Modbus 프로토콜은 응답 데이터의 형식을 지정하며 프로토콜 사양에 따라 데이터를 처리해야 합니다. 다음은 응답을 구문 분석하고 장치 상태 보고서를 처리하는 샘플 코드입니다.
if (!empty($response)) { // 解析响应数据 $mbapHeader = substr($response, 0, 6); $tcpHeader = substr($response, 6, 6); $modbusHeader = substr($response, 12, 2); $data = substr($response, 14); // 解析设备状态报告数据 // 这里根据具体设备的协议规范来处理数据 // 处理设备的状态报告 // 这里可以根据具体需求,将设备的状态报告存储到数据库或做其他处理 }
5. 연결 닫기
장치 상태 보고서를 처리한 후 장치와의 연결을 닫고 리소스를 해제해야 합니다. 다음은 연결을 닫는 샘플 코드입니다.
socket_close($socket);
결론:
이 문서에서는 PHP 및 Modbus TCP 프로토콜을 사용하여 장치의 상태 보고를 처리하는 방법을 설명합니다. 장치에 대한 연결 설정, Modbus 요청 전송 및 응답 수신, 응답 분석 및 장치 상태 보고 처리를 통해 장치의 상태 정보를 쉽게 얻고 처리할 수 있습니다. 이 기사가 PHP 및 Modbus TCP를 사용하여 장치 상태 보고를 처리하는 방법을 이해하는 데 도움이 되기를 바랍니다.
위 코드 예시는 참고용일 뿐입니다. 실제 사용에는 특정 장치의 프로토콜 사양에 따라 적절한 수정 및 조정이 필요합니다.
위 내용은 PHP 및 Modbus TCP: 장치 상태 보고를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!