အရင်တုန်းကလည်း Modbus အကြောင်းကိုရေးဖူးပါတယ်။ အခုထက်ပြီးတော့ အကျဥ်းချုပ်လောက်ပဲ နားလည်လွယ်မယ့် သဘောနဲ့ပြန်ရေးပေးမှာဖြစ်တဲ့အတွက် အမှားပါရင်ပြောသွားပေးပါလို့ပြောချင်ပါတယ်။
Modbus ကိုအရင်တုန်းက Modicon ကလုပ်ခဲ့တာပါ။ Modicon ကအခု Schneider ရဲ့လက်အောက်ရောက်သွားပါပြီ။ သို့သော်လည်း Modbus ဟာ Non-Profit Organization ဖြစ်တဲ့အတွက် Open Source အနေနဲ့အခုထိရပ်တည်တုန်းပါပဲ။ Modbus ဆိုတာကလည်း Communication Protocol တစ်ခုပါပဲ။ Communication Protocol တစ်ခုဖြစ်တဲ့အတွက် Modbus Support ပေးထားတဲ့ မတူညီတဲ့ ပစ္စည်းတွေကိုတစ်ခုနဲ့တစ်ခုချိတ်ဆက်ဖို့အတွက်အသုံးများကြပါတယ်။ ဥပမာ Siemen PLC ကနေပြီ Delta VFD ကို Modbus နဲ့သုံးသလိုမျိုးပေါ့။
Modbus မှာ Communication အတွက် Modbus RTU, Modbus ASCII,Modbus TCP/IP, Modbus Plus အစရှိသဖြင့် လိုအပ်ချက်ပေါ် မွမ်းမံပြီး တည်ဆောက်ထားတာတွေလည်းရှိပါတယ်။ Popular အဖြစ်ဆုံးကတော့ Modbus RTU,Modbus ASCII နဲ့ Modbus TCP/IP ကတော့ အသုံးများပါတယ်။
ဒီနေရာမှာ အသုံးအနှုန်းတစ်ခုသုံးတာနဲ့ Braud Rate အကြောင်း ပြောချင်ပါတယ်။ Master/ Slave ကိုဘယ်အခါမှာသုံးလဲဆိုရင် RTU မှာသုံးကြပါတယ်။ Client/Server ကိုတော့ TCP/IP မှာသုံးကြပါတယ်။ အဲ့တာက အသုံးနှုန်းအပိုင်း, Braud Rateဆိုတာ Data ပေးပို့မှု အမြန်နှုန်းပါ။ သူ့ အကြောင်းမပြောခင် အရင် RTU မှာ RS232,422,485 ဆိုတာရှိတယ်။ RS485 က Braud Rate က Maximum 10MB/s အထိသုံးလို့ရတယ်။ RS 485 ရဲ့ Maximum Length ကလည်း မီတာ ၁၂၀၀ လောက်ကောင်းကောင်း သုံးလို့ရပါတယ်။ Master ကနေ Slave 32 ခုလောက်သုံးလို့ရတယ်။ ဒီထက်ပိုသုံးချင်ရင် Repeater ခံသုံးရမယ်။ အဲ့မီတာ ၁၂၀၀ ကို Braud Rate 10MB/s နဲ့ သုံးလို့အဆင်မပြေပါဘူး။ တကယ်တမ်းပြောရရင် 10MB/s က ၁၀မီတာအတွင်းမှာပဲ ကောင်းကောင်းလုပ်တာပါ။ အဲ့တော့ တကယ်က ၁၂၀၀ မီတာမှာ 9600 လောက်ပဲသုံးလို့ရတာပါ။ ဒါကြောင့် Setting တွေထဲမှာ ဘာကြောင့် Default အနေနဲ့ 9600 ပဲသုံးရလဲဆိုတာနားလည်လောက်ပြီလို့ထင်မိပါတယ်။
Modbus Protocol မှာ အဓိက အပိုင်းလေးပိုင်းရှိတယ်။
•Slave ID
•Function Code
•Data Address နဲ့
• Error Check (ခေါ် ) Sum Check
ဆိုပြီးတော့ ရှိပါတယ်။
Slave ID ကတော့ Master ကနေခိုင်းဖို့ နာမည်သတ်မှတ်ပေးတာပါပဲ။ သတ်မှတ်ထားတဲ့ Slave နာမည်ကို Master က Request လုပ်ပြီး Slave က Respond လုပ်ရတာပါ။ Slave to Slave အချင်းချင်းပြောလို့မရသလို Slave ကနေ Master ကို Request လုပ်လို့လည်းမရပါဘူး။
Function Code နဲ့ Data Address ကိုပေါင်းပြီး ဘယ်လိုခေါ်သေးလဲဆိုရင် Program Organization Units (POU) လည်းခေါ်ပါတယ်။ Modbus ရဲ့ Main ပါပဲ။ Function Code က ဘယ် Address ဆိုရင် ဘာလုပ်ရမလဲ Command ပေးတာပါ။ Data Address ကို Memory Area ဆိုပြီးခေါ်ပါသေးတယ်။ Data Address ဆိုတာ Input, Output ရဲ့ Digital,Analog တွေရဲ့ Address တွေပါပဲ။ တချို့ Address တွေက Decimal သုံးတာလည်းရှိသလို Hexa လည်းသုံးတာရှိပါတယ်။ အဲ့တော့ ဥပမာပေးရရင် Slave ID 1 Temperature Sensor ကို 03 Function Code ဆိုတဲ့ Read Holding Register နဲ့ 40001 Address မှာ သုံးပါ ဆိုရင် Temperature Sensor ထဲက တန်ဖိုးတွေကို ဖတ်ခိုင်းတာပါပဲ။
Error Check ဆိုတာ ကိုယ်သုံးတဲ့ Command တွေကိုပြန်စစ်တာပါပဲ။ တစ်ချို့က အဲ့တာကို CRC လို့လည်းခေါ်ကြပါတယ်။ တကယ်တော့ CRC က RTU အတွက် Error Check တဲ့နည်းတစ်မျိုးပါ။ LRC က ASCII အတွက်ပါပဲ။
Reference : instrumentationtools, Realpars
Comments
Post a Comment