Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua Pengaturcaraan PHP: Melaksanakan Komunikasi Modbus TCP Kebolehpercayaan Tinggi

Petua Pengaturcaraan PHP: Melaksanakan Komunikasi Modbus TCP Kebolehpercayaan Tinggi

WBOY
WBOYasal
2023-07-18 10:14:021393semak imbas

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.

  1. Pemasangan dan penggunaan menggunakan perpustakaan sambungan PHP Modbus

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);
  1. Mewujudkan sambungan TCP

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)));
}

// 连接建立成功,进行后续操作
// ...
  1. Contoh kod untuk menulis permintaan Modbus dan menghuraikan respons

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:

  1. Dokumentasi rasmi perpustakaan sambungan Modbus PHP
  2. Dokumentasi rasmi PHP: Fungsi soket
  3. Spesifikasi protokol TCP Modbus

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn