PHP에서 Modbus TCP 통신 구현 방법에 대한 개요
Modbus TCP는 산업 제어 시스템에서 널리 사용되는 통신 프로토콜입니다. 도움을 받아 여러 장치가 이더넷을 통해 데이터를 효율적으로 교환 할 수 있습니다. 이 기사에서는 라이브러리 설치, 서버 연결, 읽기 및 쓰기 레지스터 및 예외 처리를 포함하여 PHP에서 Modbus TCP 통신 환경을 구축하는 방법을 보여줍니다.
Modbus 관련 종속성을 설치하십시오
PHP에서 Modbus TCP를 사용하려면 먼저 필요한 라이브러리 및 확장을 설치해야합니다.
1 단계 : Libmodbus 라이브러리를 설치하십시오
[libmodbus 공식 웹 사이트] (https://libmodbus.org/)를 방문하고 Libmodbus 압축 패키지의 최신 버전을 다운로드하여 압축을 풀습니다. 그런 다음 터미널에 감압 디렉토리를 입력하고 다음 명령을 차례로 실행하십시오.
2 단계 : PHP 확장을 설치하십시오
[PECL 공식 웹 사이트] (https://pecl.php.net/)에서 php_modbus 확장 소스 코드를 다운로드하십시오. 감압 후 디렉토리를 입력하고 다음 명령을 실행하여 설치를 완료하십시오.
Modbus 서버에 연결하십시오
다음은 PHP를 사용하여 Modbus TCP 연결을 만드는 샘플 코드입니다.
<?php
$ip = "192.168.1.1"; // Modbus섬기는 사람IP주소
$port = 502; // Modbus포트,기본값입니다502
// 만들다Modbus TCP연결하다
$connection = modbus_new_tcp($ip, $port);
if(!$connection) {
die("无法연결하다到Modbus섬기는 사람");
}
// 연결하다成功后,커뮤니케이션 작업을 수행 할 수 있습니다
// 폐쇄Modbus연결하다
modbus_close($connection);
?>
등록 데이터를 읽으십시오
연결이 설정되면 Modbus 서버의 레지스터를 다음 코드를 통해 읽을 수 있습니다.
<?php
// 첫 번째 레지스터의 값을 읽으십시오
$address = 0; // 寄存器주소
$quantity = 1; // 레지스터 수를 읽습니다
// 등록 데이터를 읽으십시오
$data = modbus_read_registers($connection, $address, $quantity);
// 읽기 데이터를 인쇄하십시오
print_r($data);
?>
등록 데이터를 작성하십시오
다음은 지정된 레지스터에 데이터를 작성하기위한 코드 예입니다.
<?php
// 첫 번째 레지스터에 기록 된 값은 다음과 같습니다100
$address = 0; // 寄存器주소
$value = 100; // 값을 쓰십시오
// 등록 데이터를 작성하십시오
$result = modbus_write_register($connection, $address, $value);
if($result === FALSE) {
echo "등록에 쓰지 못했습니다";
} else {
echo "성공적으로 등록하기 위해 작성하십시오";
}
?>
예외 처리 메커니즘
MODBUS 통신 중에 연결 또는 작동 이상이 더 일반적입니다. 오류 감지 및 처리는 다음 코드를 통해 수행 할 수 있습니다.
<?php
// 만들다Modbus TCP연결하다
$connection = modbus_new_tcp($ip, $port);
if(!$connection) {
die("无法연결하다到Modbus섬기는 사람");
}
// 예외 처리
$exception = modbus_errno();
if($exception) {
die("Modbus작업 예외:" . modbus_strerror($exception));
}
// 폐쇄연결하다
modbus_close($connection);
?>
요약
이 기사에 설명 된 방법을 통해 PHP 환경에서 Modbus TCP 장치와 성공적으로 통신 할 수 있습니다. 레지스터 데이터를 읽거나 제어 지침 작성에 관계없이 이러한 기본 운영은 산업 제어 시스템 구성을위한 안정적인 기술 지원을 제공합니다. 이러한 컨텐츠를 마스터하면 산업 자동화 관련 개발 작업을보다 효율적으로 완료하는 데 도움이됩니다.