Idea pengaturcaraan PHP: Bina aplikasi komunikasi Modbus TCP yang cekap
Dengan perkembangan pesat Internet Perkara, semakin banyak peranti perlu bertukar data dengan pelayan melalui komunikasi TCP. Modbus ialah protokol komunikasi yang biasa digunakan yang digunakan secara meluas dalam bidang automasi industri. Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan PHP untuk membina aplikasi komunikasi Modbus TCP yang cekap dan menyediakan contoh kod.
Sebelum membina aplikasi komunikasi TCP Modbus, anda perlu menentukan kaedah komunikasi. Modbus TCP boleh dilaksanakan menggunakan sambungan soket PHP, atau anda boleh menggunakan perpustakaan pihak ketiga seperti phpmodbus untuk memudahkan proses pembangunan. Di sini kami memilih untuk menggunakan perpustakaan phpmodbus kerana ia merangkumi butiran protokol Modbus dan menyediakan API yang mudah digunakan.
Menggunakan Komposer untuk memasang perpustakaan phpmodbus ialah cara yang paling mudah. Buka tetingkap baris arahan, masukkan direktori projek, dan laksanakan arahan berikut untuk memasang perpustakaan phpmodbus:
composer require phpmodbus/phpmodbus
Komposer akan memuat turun dan memasang perpustakaan phpmodbus dan kebergantungannya.
Pertama, kita perlu mencipta sambungan Modbus TCP. Dalam PHP, ini boleh dicapai menggunakan kelas ModbusMaster. Berikut ialah contoh kod untuk menyambung ke peranti Modbus TCP:
require __DIR__ . '/vendor/autoload.php'; use PhpmodbusPhpmodbus; $ip = '192.168.0.1'; // 设备的IP地址 $port = 502; // Modbus TCP的默认端口号 $modbus = new ModbusMaster($ip, $port);
Setelah sambungan berjaya diwujudkan, kita boleh menggunakan kaedah readMultipleRegisters dalam kelas ModbusMaster untuk membaca data daftar peranti Modbus. Berikut ialah kod sampel yang membaca data daftar yang memegang peranti Modbus:
$unitId = 0; // 设备的单元标识符 $startAddress = 0; // 开始地址 $numberOfRegisters = 10; // 读取寄存器的数量 $data = $modbus->readMultipleRegisters($unitId, $startAddress, $numberOfRegisters); $values = Phpmodbus::byteArrayToRegisterArray($data);
Dalam contoh di atas, kaedah readMultipleRegisters menerima pengecam unit peranti, alamat permulaan dan bilangan daftar sebagai parameter dan mengembalikan tatasusunan bait. Kita boleh menukar tatasusunan bait kepada tatasusunan nilai daftar menggunakan kaedah byteArrayToRegisterArray daripada perpustakaan Phpmodbus.
Jika anda perlu menulis data pada peranti Modbus, anda boleh menggunakan kaedah writeMultipleRegisters dalam kelas ModbusMaster. Berikut ialah contoh kod yang menulis data ke daftar pemegang peranti Modbus:
$data = [1, 2, 3, 4, 5]; // 要写入的数值数组 $startAddress = 0; // 开始地址 $unitId = 0; // 设备的单元标识符 $modbus->writeMultipleRegisters($unitId, $startAddress, $data);
Dalam contoh di atas, kaedah writeMultipleRegisters menerima sebagai parameter pengecam unit peranti, alamat permulaan dan tatasusunan nilai yang akan ditulis sebagai parameter. . Ambil perhatian bahawa panjang tatasusunan yang mana data ditulis mestilah sama dengan bilangan daftar yang ditulis.
Apabila komunikasi dengan peranti Modbus tidak lagi diperlukan, sambungan harus ditutup untuk mengeluarkan sumber. Sambungan boleh ditutup menggunakan kaedah putus sambungan dalam kelas ModbusMaster. Berikut ialah contoh kod untuk menutup sambungan Modbus TCP:
$modbus->disconnect();
Ringkasan
Artikel ini memperkenalkan cara menggunakan bahasa pengaturcaraan PHP untuk membina aplikasi komunikasi Modbus TCP yang cekap. Dengan menggunakan perpustakaan phpmodbus, kami boleh menyambung dengan mudah ke peranti Modbus dan membaca dan menulis data daftar menggunakan API mudah. Saya harap artikel ini telah memberikan sedikit bantuan untuk anda dalam membina aplikasi komunikasi Modbus TCP.
Nota: Contoh kod di atas adalah untuk rujukan sahaja Dalam aplikasi sebenar, beberapa pelarasan dan sambungan mungkin diperlukan berdasarkan keadaan tertentu.
Atas ialah kandungan terperinci Idea pengaturcaraan PHP: membina aplikasi komunikasi Modbus TCP yang cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!