Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan PHP dan protokol TCP MODBUS untuk berkomunikasi dengan sistem kawalan industri
Cara menggunakan PHP dan protokol TCP MODBUS untuk berkomunikasi dengan sistem kawalan industri
Abstrak: Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan PHP digabungkan dengan protokol TCP MODBUS untuk mencapai komunikasi sistem kawalan industri. Kami akan membincangkan asas-asas protokol MODBUS TCP dan menyediakan contoh kod untuk komunikasi MODBUS TCP menggunakan PHP.
1. Pengenalan kepada protokol TCP MODBUS
Protokol TCP MODBUS ialah protokol komunikasi berdasarkan TCP/IP, yang digunakan secara meluas dalam komunikasi antara peranti dalam bidang automasi industri. Ia merealisasikan komunikasi jauh antara peranti melalui Ethernet, dan menyokong fungsi seperti menghantar data, membaca daftar, dan menulis daftar.
Peranan utama komunikasi protokol TCP MODBUS termasuk: Master dan Slave. Stesen induk bertanggungjawab untuk menghantar arahan ke stesen hamba dan menerima respons, manakala stesen hamba bertanggungjawab untuk bertindak balas kepada arahan stesen induk.
2. Gunakan PHP untuk melaksanakan komunikasi MODBUS TCP
Berikut ialah contoh kod komunikasi TCP MODBUS yang ditulis dalam PHP:
<?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);
Kod di atas melaksanakan fungsi utama komunikasi MODBUS TCP. Kelas ModbusTCP
merangkum kaedah berkaitan komunikasi MODBUS TCP, termasuk mencipta dan menutup sambungan soket, daftar membaca dan menulis daftar. ModbusTCP
类封装了MODBUS TCP通信的相关方法,包括创建和关闭socket连接、读取寄存器和写入寄存器。
在使用示例中,我们创建了一个ModbusTCP
实例,并连接到IP地址为192.168.0.1
,端口为502
的MODBUS TCP从站。然后,我们读取从站的前10个寄存器的值,并将其打印出来。最后,我们将值为100
ModbusTCP
dan disambungkan ke MODBUS dengan alamat IP 192.168.0.1
dan port 502
hamba TCP. Kemudian, kami membaca nilai 10 daftar pertama hamba dan mencetaknya. Akhir sekali, kami menulis data dengan nilai 100
pada daftar pertama hamba.
3. Ringkasan
Rujukan:
Atas ialah kandungan terperinci Cara menggunakan PHP dan protokol TCP MODBUS untuk berkomunikasi dengan sistem kawalan industri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!