>  기사  >  백엔드 개발  >  PHP 개발 실습: 확장성이 뛰어난 Modbus TCP 통신 애플리케이션 구축

PHP 개발 실습: 확장성이 뛰어난 Modbus TCP 통신 애플리케이션 구축

WBOY
WBOY원래의
2023-07-17 16:37:431067검색

PHP 개발 실습: 확장성이 뛰어난 Modbus TCP 통신 애플리케이션 구축

산업 자동화 분야에서 Modbus는 장치 간 데이터 전송을 위해 일반적으로 사용되는 통신 프로토콜입니다. Modbus TCP는 이더넷을 통해 장치 간 원격 통신을 실현하는 TCP/IP 프로토콜을 기반으로 하는 Modbus 변형입니다. 이 기사에서는 PHP 언어를 사용하여 확장성이 뛰어난 Modbus TCP 통신 애플리케이션을 개발하는 방법을 소개하고 관련 코드 예제를 제공합니다.

먼저 Modbus 장치와 통신하기 위한 PHP 확장 라이브러리를 설치해야 합니다. 여기서는 Modbus TCP 통신을 위한 편리한 기능 세트를 제공하는 phpmodbus 라이브러리를 사용합니다. 다음 명령을 통해 Composer를 사용하여 설치할 수 있습니다.

composer require phpmodbus/phpmodbus

설치가 완료되면 PHP 코드 작성을 시작하여 Modbus TCP 통신 기능을 구현할 수 있습니다. 다음은 Modbus 장치에서 레지스터 값을 읽는 간단한 예입니다.

<?php
require_once('vendor/autoload.php');

use PHPModbusModbusMaster;

// 设备的IP地址和端口号
$ip = '192.168.0.1';
$port = 502;

// 创建一个ModbusMaster对象
$modbus = new ModbusMaster($ip, $port);

// 读取保持寄存器的值(寄存器地址为0,数量为10)
$result = $modbus->readMultipleRegisters(0, 10);

// 输出结果
if (!empty($result)) {
    echo "读取成功:" . PHP_EOL;
    foreach ($result as $key => $value) {
        echo "寄存器" . $key . "的值:" . $value . PHP_EOL;
    }
} else {
    echo "读取失败。" . PHP_EOL;
}
?>

위의 예 코드는 phpmodbus 라이브러리에서 제공하는 ModbusMaster 클래스를 사용하여 Modbus TCP 통신을 구현합니다. readMultipleRegisters 함수를 통해 레지스터에서 여러 값을 읽을 수 있습니다. 반환 결과는 연관 배열이고 키는 레지스터 주소이며 값은 레지스터 값입니다. 우리는 실제 필요에 따라 이러한 값을 처리하고 사용할 수 있습니다. ModbusMaster类来实现Modbus TCP通信。通过readMultipleRegisters函数可以从寄存器中读取多个值。返回结果是一个关联数组,键为寄存器地址,值为寄存器的值。我们可以根据实际需求对这些值进行处理和使用。

除了读取寄存器的值,我们还可以通过phpmodbus库进行写操作,例如写入寄存器的值、设置线圈的状态等等。以下是一个写操作的示例代码:

<?php
// ...

// 写入保持寄存器的值(寄存器地址为0,写入的值为100)
$result = $modbus->writeSingleRegister(0, 100);

// 输出结果
if ($result) {
    echo "写入成功。" . PHP_EOL;
} else {
    echo "写入失败。" . PHP_EOL;
}
?>

上面的示例代码使用了phpmodbus库提供的writeSingleRegister函数来写入寄存器的值。成功写入后,函数会返回true,否则返回false

레지스터 값을 읽는 것 외에도 phpmodbus 라이브러리를 통해 레지스터 값 쓰기, 코일 상태 설정 등과 같은 쓰기 작업을 수행할 수도 있습니다. 다음은 쓰기 작업에 대한 샘플 코드입니다.

rrreee

위 샘플 코드는 phpmodbus 라이브러리에서 제공하는 writeSingleRegister 함수를 사용하여 레지스터의 값을 씁니다. 쓰기에 성공하면 함수는 true를 반환하고, 그렇지 않으면 false를 반환합니다. 이러한 방식으로 Modbus 장치와 양방향 통신을 수행하여 데이터 읽기 및 쓰기를 실현할 수 있습니다.

기본적인 읽기 및 쓰기 작업 외에도 phpmodbus 라이브러리는 코일 상태 읽기, 여러 레지스터의 값 쓰기 등과 같은 기타 풍부한 기능도 제공합니다. 구체적인 사용 방법 및 매개 변수는 관련 문서 및 소스 코드를 참조하여 실제 프로젝트의 요구 사항을 충족하십시오.

요약하자면, PHP 언어와 phpmodbus 라이브러리를 사용하면 Modbus TCP 통신 기능을 쉽게 구현할 수 있습니다. Modbus 장치와 상호 작용하기 위해 실제 필요에 따라 읽기 및 쓰기 작업을 수행할 수 있습니다. 동시에 phpmodbus 라이브러리는 풍부한 기능과 사용하기 쉬운 인터페이스를 제공하므로 확장성이 뛰어난 Modbus TCP 통신 애플리케이션을 보다 쉽고 편리하게 개발할 수 있습니다.
  • 참조:
🎜phpmodbus 라이브러리 GitHub 주소: https://github.com/phpmodbus/phpmodbus🎜🎜

위 내용은 PHP 개발 실습: 확장성이 뛰어난 Modbus TCP 통신 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.