လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> စက်မှုထိန်းချုပ်မှုစနစ်ဆက်သွယ်ရေးအတွက် PHP နှင့် Modbus TCP protocol ကိုအသုံးပြုနည်း

စက်မှုထိန်းချုပ်မှုစနစ်ဆက်သွယ်ရေးအတွက် PHP နှင့် Modbus TCP protocol ကိုအသုံးပြုနည်း

M66 2025-06-06

Modbus TCP protocol protoview

Modbus TCP သည် PLC, Remote I / O, Sensors နှင့်အခြားအလိုအလျောက်ပစ္စည်းကိရိယာများအကြားဆက်သွယ်ရေးအတွက်အသုံးပြုလေ့ရှိသော TCP / IP အခြေပြုစက်မှုဆက်သွယ်ရေးဆိုင်ရာဆက်သွယ်ရေး protocol ဖြစ်သည်။ ဤ protocol သည် Ethernet ပေါ်တွင်အခြေခံသည်။ ဒေတာဖတ်ရှုခြင်း, မှတ်ပုံတင်ခြင်းနှင့်ကိရိယာထိန်းချုပ်ခြင်းအပါအ 0 င်လုပ်ဆောင်ချက်များကိုထောက်ပံ့သည်။

ဆက်သွယ်ရေးဗိသုကာဆောင်းပါးများတွင် Modbus TCP သည်များသောအားဖြင့် သခင်မှ အစပြု . ကျွန်၏ command ကိုတုံ့ပြန်သည်။ ဤဖွဲ့စည်းပုံသည် Master Station သည်စက်မှုဆိုင်ရာပစ္စည်းမျိုးစုံကိုထိန်းချုပ်နိုင်စွမ်းကိုထိရောက်စွာဗဟိုပြုခွင့်ပြုသည်။

PHP ကို ​​အသုံးပြု. Modbus TCP ဆက်သွယ်ရေး module ကိုတည်ဆောက်ပါ

Web Development တွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသော်လည်း PHP သည်အထူးသဖြင့်အစွန်းကွန်ပျူတာသို့မဟုတ်အလယ်အလတ်အလွှာစနစ်များတွင်အချို့သောစက်မှုဆက်သွယ်ရေးလုပ်ငန်းများအတွက်ကျွမ်းကျင်မှုရှိသည်။ Modbus TCP ဆက်သွယ်ရေးကိုအကောင်အထည်ဖော်ရန် PHP ကိုအသုံးပြုခြင်းအတွက်ဥပမာကုဒ်ဖြစ်သည်။
<?php
class ModbusTCP {
    private $socket;

    public function __construct($ip, $port) {
        $this-> Socket = Socket_create (AF_inet, Sock_Stream, Sol_tcp);
        Socket_Connect ($ T-> Socket, $ IP, $ port);
    }

    Public function radregisters ($ Slipid, $ Registeraddress, $ Registercount) {
        $ Buffer = Pack ("NNNN", $ Slavid, 0x03, $ regondaddress, $ regiscount);
        Socket_send ($ T: Socket, Buffer, strlen ($ buffer), 0);

        $ တုံ့ပြန်မှု = &#39;&#39;;
        $ bytes = Socket_recv ($ T-socket, socket, $ တုံ့ပြန်မှု, 2048, msg_waitall);

        $ register = ဖြည် ("N *", substrict ($ တုံ့ပြန်မှု, 9),
        $ မှတ်ပုံတင်ပြန်ပို့;
    }

    Public Function WriteRIGERERGister ($ Slipid, $ registeraddress, $ registervalue) {
        $ Buffer = Pack ("NNN", $ slavid, 0x06, $ regondaddress, $ registervalue);
        Socket_send ($ T: Socket, Buffer, strlen ($ buffer), 0);
    }

    အများပြည်သူ function __destruct () {)
        Socket_Close ($ ဒီ -> Socket);
    }
}

// အသုံးပြုမှုဥပမာ $ Modbus = New Modbustcp (&#39;192.168.0.1&#39;, 502);
$ Registers = $ Modbus-> Readregisters (1, 0, 10),

foreach ($ address => $ တန်ဖိုးကိုအဖြစ် $ မှတ်ပုံတင် ($ မှတ်ပုံတင်)
    ECHO "Register $ address: $ တန်ဖိုး \ n";
}

$ Modbus -> Writeregister (1, 0, 100),

ဤကုဒ်သည် PHP Socket function မှတစ်ဆင့်ကျွန်များနှင့်ဆက်သွယ်မှုကိုဖတ်ရန်, Registers ကိုဖတ်ရန်နှင့်ရေးရန်မှတ်ပုံတင်ထားသောအခြေခံ Modbustcp အတန်းကိုပြသသည်။ အမှန်တကယ်အသုံးပြုမှုတွင် developer များသည် Class Aimstance ကိုစတင်ရန်နှင့် Device IP နှင့် Port တွင်သာ Pass ကိုစတင်ရန်လိုအပ်သည်။

လျှောက်လွှာဥပမာခွဲခြမ်းစိတ်ဖြာခြင်း

အထက်ပါဥပမာတွင်စနစ်သည် IP 192.168.0.1.1.1.1.1.1.1.1.1`` `502 ၏ port တစ်ခုပါသော Modbus ကျွန်တစ် ဦး နှင့်ချိတ်ဆက်ထားသည်။ ပထမ ဦး ဆုံး 10 မှတ်ပုံတင်၏တန်ဖိုးများကို `radregisters` နည်းလမ်းကိုဖြတ်ပြီးတ ဦး တည်းအနေဖြင့်တ ဦး တည်း output ကိုမှတဆင့်ဖတ်ပါ။ နောက်ဆုံးတွင် `writeeregister`. ဤနည်းလမ်းသည်တန်ဖိုး` 100 ၏ပထမနံပါတ်ကိုရေးသားခဲ့သည်။ ဤဖြစ်စဉ်သည် Modbus TCP ၏အသုံးအများဆုံးလုပ်ဆောင်ချက်နှစ်ခုကိုထင်ဟပ်သည် - ဒေတာဖတ်ရှုခြင်းနှင့်ထိန်းချုပ်ခြင်းညွှန်ကြားချက်များထုတ်ပေးသည်။

ကောက်ချက်

စက်မှုထိန်းချုပ်မှုစနစ်များရှိအချက်အလက်ဆက်သွယ်ရေးကိုနားလည်သဘောပေါက်ရန် PHP နှင့် Modbus TCP protocol ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးသည်အသေးစိတ်ဖော်ပြထားသည်။ PHP အကောင်အထည်ဖော်မှုအတွက် protocol ဖွဲ့စည်းပုံဖွဲ့စည်းပုံမှ developer များသည်စက်မှုလုပ်ငန်းအလိုအလျောက်စီမံကိန်းများအတွက်ယုံကြည်စိတ်ချရသောအချက်အလက်အပြန်အလှန်ဆက်သွယ်နိုင်စွမ်းများကိုဖြည့်ဆည်းရန်သူတို့၏ကိုယ်ပိုင်ဆက်သွယ်ရေး module များကိုလျင်မြန်စွာတည်ဆောက်နိုင်သည်။ PHP သည်ရိုးရာစက်မှုထိန်းချုပ်မှုဘာသာမဟုတ်သော်လည်းစက်မှုလုပ်ငန်းထိန်းချုပ်ရေးစနစ်ပေါင်းစည်းမှုလုပ်ငန်းများကို Socket Programming မှတစ်ဆင့်အရည်အချင်းရှိနိုင်သည်။

ကိုးကားချက်များ -
[1] MODBUS Application Protocol Specification v1.1b3 — https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf