PHP 및 MODBUS TCP 프로토콜을 사용하여 산업 제어 시스템과 통신하는 방법
요약: 이 기사에서는 MODBUS TCP 프로토콜과 결합된 PHP 프로그래밍 언어를 사용하여 산업 제어 시스템 통신을 달성하는 방법을 소개합니다. MODBUS TCP 프로토콜의 기본 사항을 논의하고 PHP를 사용한 MODBUS TCP 통신에 대한 코드 예제를 제공합니다.
1. MODBUS TCP 프로토콜 소개
MODBUS TCP 프로토콜은 TCP/IP 기반의 통신 프로토콜로 산업 자동화 분야에서 기기간 통신에 널리 사용됩니다. 이더넷을 통해 장치 간 원격 통신을 구현하고 데이터 전송, 레지스터 읽기, 레지스터 쓰기 등의 기능을 지원합니다.
MODBUS TCP 프로토콜 통신의 주요 역할은 마스터와 슬레이브입니다. 마스터 스테이션은 슬레이브 스테이션에 명령을 보내고 응답을 받는 역할을 담당하고, 슬레이브 스테이션은 마스터 스테이션의 명령에 응답하는 역할을 담당합니다.
2. PHP를 사용하여 MODBUS TCP 통신 구현
다음은 PHP로 작성된 MODBUS TCP 통신의 코드 예입니다.
<?php class ModbusTCP { private $socket; public function __construct($ip, $port) { $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($this->socket, $ip, $port); } public function readRegisters($slaveId, $registerAddress, $registerCount) { $buffer = pack("nnnn", $slaveId, 0x03, $registerAddress, $registerCount); socket_send($this->socket, $buffer, strlen($buffer), 0); $response = ''; $bytes = socket_recv($this->socket, $response, 2048, MSG_WAITALL); $registers = unpack("n*", substr($response, 9)); return $registers; } public function writeRegister($slaveId, $registerAddress, $registerValue) { $buffer = pack("nnn", $slaveId, 0x06, $registerAddress, $registerValue); socket_send($this->socket, $buffer, strlen($buffer), 0); } public function __destruct() { socket_close($this->socket); } } // 使用示例 $modbus = new ModbusTCP('192.168.0.1', 502); $registers = $modbus->readRegisters(1, 0, 10); foreach ($registers as $address => $value) { echo "Register $address: $value "; } $modbus->writeRegister(1, 0, 100);
위 코드는 MODBUS TCP 통신의 주요 기능을 구현합니다. ModbusTCP
클래스는 소켓 연결 생성 및 닫기, 레지스터 읽기, 레지스터 쓰기 등 MODBUS TCP 통신과 관련된 방법을 캡슐화합니다. ModbusTCP
类封装了MODBUS TCP通信的相关方法,包括创建和关闭socket连接、读取寄存器和写入寄存器。
在使用示例中,我们创建了一个ModbusTCP
实例,并连接到IP地址为192.168.0.1
,端口为502
的MODBUS TCP从站。然后,我们读取从站的前10个寄存器的值,并将其打印出来。最后,我们将值为100
ModbusTCP
인스턴스를 생성하고 IP 주소 192.168.0.1
및 포트 502
TCP 슬레이브로 MODBUS에 연결했습니다. 그런 다음 슬레이브의 처음 10개 레지스터 값을 읽고 이를 인쇄합니다. 마지막으로 슬레이브의 첫 번째 레지스터에 100
값의 데이터를 씁니다.
3. 요약
참고 자료:
위 내용은 PHP 및 MODBUS TCP 프로토콜을 사용하여 산업 제어 시스템과 통신하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!