Petua Pengaturcaraan PHP: Melaksanakan Komunikasi TCP Modbus Sangat Boleh Dipercayai
Abstrak: Modbus TCP ialah protokol komunikasi industri yang biasa digunakan untuk melaksanakan interaksi data antara peranti dalam sistem automasi industri. Artikel ini memperkenalkan beberapa teknik untuk komunikasi Modbus TCP menggunakan bahasa pengaturcaraan PHP untuk mencapai penghantaran data kebolehpercayaan tinggi. Khususnya, ia termasuk contoh kod untuk memasang dan menggunakan perpustakaan sambungan PHP Modbus, mewujudkan sambungan TCP, menulis permintaan Modbus dan menghuraikan respons.
Kata kunci: Pengaturcaraan PHP, Modbus TCP, kebolehpercayaan, penghantaran data, contoh kod
Pengenalan:
Modbus TCP (Protokol Modbus berdasarkan TCP/IP) ialah protokol komunikasi yang digunakan secara meluas dalam bidang automasi industri. Ia biasanya digunakan untuk pertukaran data antara PLC (pengawal logik boleh atur cara), penderia, pemacu motor dan peranti lain. Dalam amalan, adalah sangat penting untuk memastikan kebolehpercayaan komunikasi Modbus TCP, terutamanya untuk aplikasi industri yang memerlukan penghantaran data yang cekap dan stabil. Artikel ini memperkenalkan beberapa teknik pengaturcaraan PHP untuk membantu pembaca mencapai komunikasi Modbus TCP yang boleh dipercayai.
Pertama, kita perlu memasang perpustakaan sambungan PHP Modbus. Pustaka sambungan ini menyediakan satu siri fungsi untuk memudahkan komunikasi dengan peranti Modbus. Ia boleh dipasang melalui langkah berikut:
Langkah 1: Muat turun kod sumber perpustakaan sambungan PHP Modbus.
Langkah 2: Nyahzip kod sumber dan masukkan direktori yang dinyahzip.
Langkah 3: Jalankan arahan berikut untuk menyusun pustaka sambungan:
$ phpize
$ ./configure
$ make
$ make install
Selepas pemasangan selesai, anda boleh menambah baris berikut dalam fail php.ini ke dayakan perpustakaan sambungan:
extension= modbus.so
Kaedah menggunakan perpustakaan sambungan PHP Modbus adalah seperti berikut:
// 建立TCP连接 $tcp = modbus_tcp_connect('192.168.0.1', 502); // 编写Modbus请求 $request = modbus_write_multiple_registers(1, 100, array(0x01, 0x02, 0x03)); // 发送请求并接收响应 $response = modbus_send_raw_request($tcp, $request); // 解析响应 $data = modbus_get_response_data($tcp, $response);
Sebelum menjalankan komunikasi Modbus TCP, anda perlu terlebih dahulu mewujudkan Sambungan TCP dengan peranti Modbus. Anda boleh menggunakan fungsi soket PHP untuk mewujudkan sambungan. Contoh khusus adalah seperti berikut:
// 建立TCP连接 $ip = '192.168.0.1'; $port = 502; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { die("Socket创建失败: " . socket_strerror(socket_last_error())); } $result = socket_connect($socket, $ip, $port); if ($result === false) { die("Socket连接失败: " . socket_strerror(socket_last_error($socket))); } // 连接建立成功,进行后续操作 // ...
Secara umumnya, permintaan Modbus terdiri daripada Kod Fungsi, Alamat Mula dan Data. Berikut ialah contoh kod untuk menulis permintaan pendaftaran berbilang Modbus dan respons penghuraian:
// 编写Modbus请求:写多个寄存器 $slave_address = 1; $start_address = 100; $data = array(0x01, 0x02, 0x03); $request = pack('CCCC', $slave_address, 0x10, ($start_address >> 8) & 0xFF, $start_address & 0xFF); $request .= pack('n', count($data) * 2); foreach ($data as $value) { $request .= pack('n', $value); } // 发送请求并接收响应 socket_write($socket, $request, strlen($request)); $response = socket_read($socket, 1024); // 解析响应 if (strlen($response) <= 0) { die("未接收到响应"); } $raw_data = substr($response, 6); // 去除响应头部 $data_length = ord($response[4]); $data = array(); for ($i = 0; $i < $data_length / 2; $i++) { $data[] = ord($raw_data[$i * 2]) << 8 | ord($raw_data[$i * 2 + 1]); } // 打印解析结果 print_r($data);
Kesimpulan:
Artikel ini memperkenalkan teknik menggunakan bahasa pengaturcaraan PHP untuk mencapai komunikasi Modbus TCP yang boleh dipercayai, termasuk menggunakan pemasangan perpustakaan sambungan PHP Modbus dan Contoh kod untuk menggunakan, mewujudkan sambungan TCP, menulis permintaan Modbus dan menghuraikan respons. Dengan mempelajari artikel ini, pembaca boleh menguasai pengetahuan dan kemahiran yang berkaitan dengan komunikasi Modbus TCP dalam pengaturcaraan PHP dengan lebih baik, dengan itu meningkatkan kecekapan penghantaran data dan kestabilan sistem automasi industri.
Rujukan:
Atas ialah kandungan terperinci Petua Pengaturcaraan PHP: Melaksanakan Komunikasi Modbus TCP Kebolehpercayaan Tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!