> 백엔드 개발 > PHP 튜토리얼 > PHP를 통해 Modbus TCP 데이터 기록 및 분석을 구현하는 방법

PHP를 통해 Modbus TCP 데이터 기록 및 분석을 구현하는 방법

王林
풀어 주다: 2023-07-17 21:32:02
원래의
1633명이 탐색했습니다.

PHP를 통해 Modbus TCP 데이터 기록 및 분석을 구현하는 방법

Modbus는 산업 자동화 분야에서 널리 사용되는 통신 프로토콜입니다. Modbus TCP는 이더넷을 통해 전송하는 Modbus 프로토콜의 변형으로 더 높은 속도와 안정성을 제공합니다. 이 기사에서는 PHP 언어를 사용하여 Modbus TCP 데이터 기록 및 분석을 구현하는 방법을 소개합니다.

1. PHP Modbus 확장 설치
먼저 PHP Modbus 확장을 설치해야 합니다. 다음 명령으로 설치할 수 있습니다:

$ pecl install modbus

설치 후 php.ini 파일에 다음 줄을 추가합니다:

extension=modbus.so

PHP를 저장하고 다시 시작합니다.

2. Modbus 연결 설정
PHP Modbus 확장을 사용하면 Modbus 장치와 쉽게 연결할 수 있습니다. 먼저 ModbusMaster 클래스를 사용하여 Modbus 마스터를 생성해야 합니다.

require_once('ModbusMaster.php');

$ip = '192.168.1.100'; // Modbus 장치의 IP 주소
$port = 502; device

$ modbus = new ModbusMaster($ip, $port);
?>

3. Modbus 레지스터 값 읽기
다음으로 ModbusMaster 클래스의 readMultipleRegisters 메소드를 사용하여 값을 읽을 수 있습니다. Modbus 장치에 등록하십시오.

$slaveId = 1; // 슬레이브 주소
$startAddress = 0; // 시작 주소
$numberOfRegisters = 10; // 읽을 레지스터 수

$data = $modbus- > readMultipleRegisters($slaveId, $startAddress, $numberOfRegisters);

var_dump($data); //읽은 레지스터 값을 인쇄합니다
?>

4. Modbus 레지스터 값을 씁니다
ModbusMaster writeSingleRegister를 사용할 수도 있습니다. 클래스의 메소드는 Modbus 장치에 레지스터 값을 쓰는 데 사용됩니다.

$slaveId = 1; // 슬레이브 주소
$registerAddress = 0; // 등록 주소
$value = 123; // 쓸 값

$modbus->writeSingleRegister($ $registerAddress, $value);
?>

5. 데이터 기록 및 분석
위 단계를 통해 Modbus 장치와의 연결을 성공적으로 설정했으며 레지스터 값을 읽고 쓸 수 있습니다. 다음으로, PHP의 파일 작업 기능을 사용하여 데이터 기록 및 분석을 구현할 수 있습니다.

$file = 'data.txt'; // 데이터 기록 파일

// 파일의 기록 데이터 읽기
$historyData = [];
if (file_exists($file)) {

$historyData = file($file, FILE_IGNORE_NEW_LINES);
로그인 후 복사

}

// 현재 시간을 가져와서 값을 등록합니다
$time = date('Y-m-d H:i:s');
$value = $data['response'];

// 현재 시간을 결합하고 레지스터의 값은 기록 데이터 끝에 추가됩니다
$historyData[] = $time . ',' . $value;

// 파일에 새 기록 데이터 쓰기
file_put_contents($file, implode(PHP_EOL , $historyData)) ;

//데이터 분석
$total = 0;
$count = count($historyData);
foreach($historyData를 $line으로) {

$parts = explode(',', $line);
$total += $parts[1];
로그인 후 복사

}
$average = $total / $ count;

echo '이력 데이터 기록이 완료되었습니다. '.PHP_EOL;
echo '총 과거 데이터 수:' . PHP_EOL;
echo '과거 데이터의 평균:' . $average

위의 단계를 통해 우리는 PHP 언어를 사용하여 Modbus TCP 데이터 기록 및 분석을 성공적으로 구현했습니다. Modbus 연결을 설정하고, 레지스터 값을 읽고 쓰고, 데이터 기록 및 분석을 위한 파일 작업 기능을 사용함으로써 Modbus 장치의 데이터를 쉽게 모니터링하고 제어할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 PHP를 통해 Modbus TCP 데이터 기록 및 분석을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿