ဆက်သွယ်ရေးဗိသုကာဆောင်းပါးများတွင် Modbus TCP သည်များသောအားဖြင့် သခင်မှ အစပြု . ကျွန်၏ command ကိုတုံ့ပြန်သည်။ ဤဖွဲ့စည်းပုံသည် Master Station သည်စက်မှုဆိုင်ရာပစ္စည်းမျိုးစုံကိုထိန်းချုပ်နိုင်စွမ်းကိုထိရောက်စွာဗဟိုပြုခွင့်ပြုသည်။
<?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); $ တုံ့ပြန်မှု = ''; $ 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 ('192.168.0.1', 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 ကိုစတင်ရန်လိုအပ်သည်။
ကိုးကားချက်များ -
[1] MODBUS Application Protocol Specification v1.1b3 — https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf