PHP에서 Modbus TCP 응답 메시지를 구문 분석하고 처리하는 방법
개요:
Modbus는 산업 제어 시스템에서 데이터를 전송하는 데 사용되는 통신 프로토콜입니다. Modbus TCP는 TCP/IP 프로토콜을 기반으로 데이터를 전송하는 Modbus 프로토콜을 구현한 것입니다. PHP에서는 일부 라이브러리를 사용하여 Modbus TCP 응답 정보를 구문 분석하고 처리할 수 있습니다. 이 기사에서는 구문 분석 및 처리를 위해 phpmodbus 라이브러리를 사용하는 방법을 설명합니다.
phpmodbus 라이브러리 설치:
먼저 phpmodbus 라이브러리를 설치해야 합니다. 프로젝트에서 다음 명령을 사용하여 Composer를 통해 설치할 수 있습니다.
composer require php-modbus/php-modbus
Modbus TCP 응답 정보 구문 분석:
Modbus TCP 요청을 보낸 후 요청한 데이터가 포함된 응답을 받습니다. 이 응답을 구문 분석하기 위해 phpmodbus 라이브러리의 ModbusMaster 클래스를 사용할 수 있습니다.
먼저 ModbusMaster 클래스를 인스턴스화하고 연결할 Modbus TCP 장치의 IP 주소와 포트 번호를 지정해야 합니다.
<?php require_once 'vendor/autoload.php'; use PHPModbusModbusMaster; $modbus = new ModbusMaster("192.168.1.1", "TCP");
그런 다음 ModbusMaster 클래스의 readMultipleRegisters 메서드를 사용하여 Modbus 레지스터의 데이터를 읽을 수 있습니다. . 이 메소드는 장치 ID, 읽을 레지스터 주소, 읽을 레지스터 수 등 3개의 매개변수를 허용합니다. 반환된 응답에는 요청된 데이터가 포함됩니다.
$deviceId = 1; $startAddress = 0; $quantity = 10; $response = $modbus->readMultipleRegisters($deviceId, $startAddress, $quantity);
Modbus TCP 응답 정보 처리:
Modbus TCP 응답을 받으면 처리할 수 있습니다. 응답에서 데이터는 16비트 정수로 반환됩니다. 이 데이터는 phpmodbus 라이브러리의 decodeRegister 메소드를 사용하여 디코딩할 수 있습니다.
$data = $response['data']; $decodedData = $modbus->decodeRegister($data);
decodeRegister 메소드는 디코딩된 데이터가 포함된 배열을 반환합니다.
또한 phpmodbus 라이브러리의 다른 방법을 사용하여 Modbus TCP 응답을 처리할 수도 있습니다. 예를 들어 단일 레지스터의 값을 읽으려면 readSingleRegister 메서드를 사용할 수 있습니다. 마찬가지로 writeMultipleRegisters 메소드를 사용하여 여러 레지스터의 값을 쓸 수 있습니다. 필요에 따라 코드에서 이러한 메서드를 적절하게 호출할 수 있습니다.
전체 샘플 코드:
다음은 phpmodbus 라이브러리를 사용하여 PHP에서 Modbus TCP 응답 정보를 구문 분석하고 처리하는 방법을 보여주는 전체 샘플 코드입니다.
<?php require_once 'vendor/autoload.php'; use PHPModbusModbusMaster; $modbus = new ModbusMaster("192.168.1.1", "TCP"); $deviceId = 1; $startAddress = 0; $quantity = 10; $response = $modbus->readMultipleRegisters($deviceId, $startAddress, $quantity); $data = $response['data']; $decodedData = $modbus->decodeRegister($data); foreach ($decodedData as $value) { echo $value . " "; } ?>
요약:
PHP에서 Modbus TCP 응답 정보를 구문 분석하고 처리할 수 있습니다. 이를 달성하려면 phpmodbus 라이브러리를 사용하십시오. ModbusMaster 클래스를 사용하여 Modbus TCP 응답을 구문 분석하고 처리할 수 있습니다. readMultipleRegisters, decodeRegister 및 기타 관련 메소드를 사용하여 Modbus 레지스터의 데이터를 읽고 처리할 수 있습니다. 이 기사가 PHP에서 Modbus TCP 응답 메시지를 구문 분석하고 처리하는 방법을 이해하는 데 도움이 되기를 바랍니다.
위 내용은 PHP에서 Modbus TCP 응답 메시지를 구문 분석하고 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!