Rumah >pembangunan bahagian belakang >tutorial php >PHP dan Modbus TCP: Amalan Terbaik untuk Membina Sistem Makluman Masa Nyata

PHP dan Modbus TCP: Amalan Terbaik untuk Membina Sistem Makluman Masa Nyata

WBOY
WBOYasal
2023-07-17 18:24:071546semak imbas

PHP dan Modbus TCP: Amalan terbaik untuk membina sistem penggera masa nyata

Abstrak:
Artikel ini akan memperkenalkan cara membina sistem penggera masa nyata menggunakan protokol PHP dan Modbus TCP. Dengan menggunakan keupayaan pengaturcaraan rangkaian PHP dan protokol Modbus TCP, kami boleh mendapatkan data dengan mudah daripada peranti jauh dan mengesan status tidak normal dalam masa nyata. Pada masa yang sama, kami juga akan menyediakan contoh kod supaya pembaca lebih memahami dan menggunakan teknologi ini.

  1. Pengenalan
    Sistem penggera masa nyata memainkan peranan penting dalam banyak industri, seperti automasi industri, pemantauan peralatan dan bidang lain. Modbus TCP ialah protokol komunikasi yang biasa digunakan yang boleh merealisasikan interaksi dan kawalan data antara peranti. Digabungkan dengan fungsi pengaturcaraan rangkaian PHP, kami boleh memantau status peranti dalam masa nyata melalui protokol Modbus TCP dan mencetuskan penggera apabila keabnormalan berlaku.
  2. Seni Bina Sistem
    Sistem penggera masa nyata kami terdiri daripada komponen berikut:
  3. Halaman belakang PHP: bertanggungjawab untuk mewujudkan sambungan dengan peranti jauh, membaca data peranti dan mencetuskan penggera.
  4. Pelayan TCP Modbus: berjalan pada peranti jauh dan digunakan untuk membalas permintaan daripada bahagian belakang PHP dan menyediakan data peranti.
  5. Sistem penggera: Ia boleh menjadi e-mel, mesej teks atau bentuk pemberitahuan lain.
  6. Fungsi Pengaturcaraan Rangkaian PHP
    PHP menyediakan satu siri fungsi untuk komunikasi rangkaian, kita boleh menggunakan fungsi ini untuk mewujudkan sambungan dengan peranti jauh dan menghantar permintaan. Berikut ialah contoh mudah untuk mewujudkan sambungan dengan pelayan TCP Modbus dan membaca data peranti:
<?php
$device_ip = '192.168.1.100';
$device_port = 502;

// 创建一个TCP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "<br>";
    exit;
}

// 连接远程设备
$result = socket_connect($socket, $device_ip, $device_port);
if ($result === false) {
    echo "socket_connect() failed: " . socket_strerror(socket_last_error()) . "<br>";
    exit;
}

// 发送读取设备数据的请求
$request = "";
socket_write($socket, $request, strlen($request));

// 读取设备返回的数据
$response = socket_read($socket, 1024);
echo "设备返回的数据:" . bin2hex($response) . "<br>";

// 关闭TCP连接
socket_close($socket);
?>
  1. Protokol TCP Modbus
    Modbus TCP ialah protokol komunikasi berdasarkan protokol TCP/IP, yang mentakrifkan Kaedah interaksi data dan kawalan antara peranti. Dalam sistem penggera masa nyata, kami menggunakan protokol TCP Modbus untuk membaca data peranti dan memantau status tidak normal. Berikut ialah contoh membaca daftar Modbus:
<?php
function readModbusRegister($socket, $address, $quantity) {
    $request = "" . pack('n*', $address) . pack('n*', $quantity);
    socket_write($socket, $request, strlen($request));
    $response = socket_read($socket, 1024);
    
    // 解析设备返回的数据
    $data = substr($response, 9);
    $values = unpack('n*', $data);
    
    return $values;
}
?>
  1. Pelaksanaan sistem penggera masa nyata
    Kami boleh menyepadukan coretan kod di atas ke dalam skrip PHP yang lengkap untuk melaksanakan fungsi sistem penggera masa nyata. Proses pelaksanaan termasuk mewujudkan sambungan dengan peranti jauh, membaca data peranti dalam gelung dan menentukan sama ada untuk mencetuskan penggera. Bergantung pada keperluan khusus, kami boleh menghantar maklumat penggera ke alamat e-mel yang ditetapkan atau memberitahu kakitangan yang berkaitan melalui kaedah lain.

Berikut ialah contoh kod untuk sistem penggera masa nyata:

<?php
$device_ip = '192.168.1.100';
$device_port = 502;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $device_ip, $device_port);

while (true) {
    // 读取设备数据
    $values = readModbusRegister($socket, $address, $quantity);
    
    // 判断是否触发报警
    if ($values[1] > $threshold) {
        // 发送报警信息
        sendAlert('设备故障!当前值:' . $values[1]);
    }
    
    // 延迟一段时间
    sleep(10);
}

socket_close($socket);

function readModbusRegister($socket, $address, $quantity) {
    // ...
}

function sendAlert($message) {
    // ...
}
?>
  1. Ringkasan
    Artikel ini memperkenalkan cara membina sistem penggera masa nyata menggunakan protokol PHP dan Modbus TCP. Dengan menggunakan fungsi pengaturcaraan rangkaian PHP dan protokol Modbus TCP, kami boleh membaca data peranti jauh dengan mudah dan mengesan statusnya dalam masa nyata. Penyediaan contoh kod juga boleh membantu pembaca memahami dan menggunakan teknologi ini dengan lebih baik. Saya harap artikel ini akan memberi inspirasi kepada pembaca dalam membina sistem penggera masa nyata.

Atas ialah kandungan terperinci PHP dan Modbus TCP: Amalan Terbaik untuk Membina Sistem Makluman Masa Nyata. 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