PHP တွင် Modbus TCP ဆက်သွယ်ရေးကိုအကောင်အထည်ဖော်ရန်နည်းလမ်းကိုခြုံငုံသုံးသပ်ချက်
Modbus TCP သည်စက်မှုထိန်းချုပ်မှုစနစ်များတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသောဆက်သွယ်ရေးပရိုတိုကောဖြစ်သည်။ ၎င်း၏အကူအညီဖြင့်ကိရိယာမျိုးစုံသည် Ethernet မှတစ်ဆင့်အချက်အလက်များကိုထိရောက်စွာဖလှယ်နိုင်သည်။ ဤဆောင်းပါးသည် PHP တွင် Modbus TCP ဆက်သွယ်ရေးပတ် 0 န်းကျင်ကိုမည်သို့တည်ဆောက်ရမည်ကိုပြသပါမည်။ စာကြည့်တိုက်တပ်ဆင်ခြင်း, ဆာဗာချိတ်ဆက်မှု,
Modbus နှင့်သက်ဆိုင်သောမှီခိုမှုကိုထည့်သွင်းပါ
PHP တွင် Modbus TCP ကိုအသုံးပြုရန်အတွက်လိုအပ်သောစာကြည့်တိုက်များနှင့် extensions များကိုအရင်ထည့်သွင်းရမည်။
အဆင့် 1: Libmodbus စာကြည့်တိုက်ကို install လုပ်ပါ
[libmodbus တရားဝင်ဝက်ဘ်ဆိုက်] (https://////sibmodbus.org/) သို့သွားရောက်ကြည့်ရှုပါ။ ထို့နောက် terminal အတွင်းရှိ decompression လမ်းညွှန်ကိုရိုက်ထည့်ပြီးအောက်ပါ command များကိုအလှည့်ဖြင့်လုပ်ဆောင်ပါ။
အဆင့် 2 - PHP extension ကို install လုပ်ပါ
PHP_MODBUS extension source source source code ကို [PECL တရားဝင်ဝက်ဘ်ဆိုက်] (https://pecl.php.net မှ) download လုပ်ပါ။ decompression ပြီးနောက် directory ကိုရိုက်ထည့်ပြီး installation ကိုဖြည့်စွက်ရန်အောက်ပါ command ကို Execute လုပ်ပါ။
Modbus ဆာဗာကိုဆက်သွယ်ပါ
PHP ကိုအသုံးပြုပြီး Modbus TCP ဆက်သွယ်မှုကိုဖန်တီးခြင်းအတွက်နမူနာကုဒ်ဖြစ်သည်။
<?php
$ip = "192.168.1.1"; // ModbusဆာဆာIPစကားပေြာဟော
$port = 502; // Modbusသငေ်္ဘာဆိပ်ကမ်း,ပုံမှန်ဖြစ်ပါတယ်502
// ဖန်တီးModbus TCPဆက်
$connection = modbus_new_tcp($ip, $port);
if(!$connection) {
die("无法ဆက်到Modbusဆာဆာ");
}
// ဆက်成功后,ဆက်သွယ်ရေးလုပ်ငန်းများကိုဖျော်ဖြေနိုင်ပါသည်
// ရုပ်သိမ်းခြင်းModbusဆက်
modbus_close($connection);
?>
မှတ်ပုံတင်ဒေတာကိုဖတ်ပါ
ဆက်သွယ်မှုကိုစတင်တည်ထောင်ပြီးသည်နှင့် MODBUS ဆာဗာရှိမှတ်ပုံတင်များကိုအောက်ပါကုဒ်ကိုဖတ်ရှုနိုင်ပါသည်။
<?php
// ပထမမှတ်ပုံတင်၏တန်ဖိုးကိုဖတ်ပါ
$address = 0; // 寄存器စကားပေြာဟော
$quantity = 1; // မှတ်ပုံတင်အရေအတွက်ဖတ်ပါ
// မှတ်ပုံတင်ဒေတာကိုဖတ်ပါ
$data = modbus_read_registers($connection, $address, $quantity);
// ဒေတာကိုဖတ်ပါ
print_r($data);
?>
မှတ်ပုံတင်ဒေတာကိုရေးပါ
ဤတွင်သတ်မှတ်ထားသောမှတ်ပုံတင်ရန်ဒေတာများကိုရေးသားရန်ကုဒ်ဥပမာတစ်ခုဖြစ်သည်။
<?php
// ပထမ ဦး ဆုံးမှတ်ပုံတင်မှရေးသားထားသောတန်ဖိုးဖြစ်ပါတယ်100
$address = 0; // 寄存器စကားပေြာဟော
$value = 100; // Value ကိုရေးပါ
// မှတ်ပုံတင်ဒေတာကိုရေးပါ
$result = modbus_write_register($connection, $address, $value);
if($result === FALSE) {
echo "မှတ်ပုံတင်ရန်ရေးသားရန်မအောင်မြင်ပါ";
} else {
echo "အောင်မြင်စွာမှတ်ပုံတင်ရန်ရေးပါ";
}
?>
ခြွင်းချက်ကိုင်တွယ်ယန္တရား
Modbus Communication, Connection သို့မဟုတ်လည်ပတ်မှုသည်ပုံမှန်မဟုတ်သောပုံမှန်မဟုတ်သောအရာများသည်ပိုမိုများပြားသည်။ အောက်ပါကုဒ်များမှတဆင့်အမှားရှာဖွေတွေ့ရှိခြင်းနှင့်ပြုပြင်ခြင်းများကိုပြုလုပ်နိုင်သည်။
<?php
// ဖန်တီးModbus TCPဆက်
$connection = modbus_new_tcp($ip, $port);
if(!$connection) {
die("无法ဆက်到Modbusဆာဆာ");
}
// ခြွင်းချက်ကိုင်တွယ်
$exception = modbus_errno();
if($exception) {
die("Modbusစစ်ဆင်ရေးခြွင်းချက်:" . modbus_strerror($exception));
}
// ရုပ်သိမ်းခြင်းဆက်
modbus_close($connection);
?>
အကျဉ်းချုပ်
ဤဆောင်းပါးတွင်ဖော်ပြထားသောနည်းလမ်းများမှတစ်ဆင့် PHP ပတ်ဝန်းကျင်တွင် Modbus TCP ကိရိယာများနှင့်အောင်မြင်စွာဆက်သွယ်နိုင်သည်။ Reading data or controls ညွှန်ကြားချက်များကိုဖတ်ရှုခြင်းရှိမရှိ, ဤအခြေခံစစ်ဆင်ရေးများသည်စက်မှုထိန်းချုပ်မှုစနစ်များဆောက်လုပ်ရန်အတွက်ယုံကြည်စိတ်ချရသောနည်းပညာအထောက်အပံ့များဖြစ်သည်။ ဤအကြောင်းအရာများကိုကျွမ်းကျင်ရာများကစက်မှုလုပ်ငန်းအလိုအလျောက်နှင့်သက်ဆိုင်သောဖွံ့ဖြိုးရေးလုပ်ငန်းများကိုပိုမိုထိရောက်စွာဖြည့်ဆည်းပေးနိုင်လိမ့်မည်။