Skip to main content

Modbus Implementation with Indigoscada



    အခုတစ်ခါတော့ Modbus ကဘယ်လိုပုံစံမျိုးနဲ့အလုပ်လုပ်လည်းမြင်သာအောင် ဖော်ပြပေးပါမယ်။ ကျွန်တော်က အခု Software ၂မျိုးသုံးထားပါတယ်။ Indigoscada နဲ့ PeakHMI Slave Simulator ပါ။ Slave Simulator ဘာလို့သုံးလဲဆိုရင် Slave ID သတ်မှတ်ဖို့ရယ် Data တွေအပြောင်းအလဲဘယ်လိုဖြစ်လည်းမြင်သာအောင်ပြတာပါ။ဆိုလိုတာက SCADAကနေခိုင်းဖို့ Slave တစ်ခုအနေနဲ့သုံးတာပါ။အခုဟာကတော့ PLC ရော တခြား Device တွေရော PC ကလွဲလို့ လုံး၀မရှိတဲ့သူတွေအတွက်နဲ့ အလုပ်လုပ်ဆောင်ပုံကိုမြင်သာဖို့အတွက်ပဲရည်ရွယ်တာပါ။
    ကျွန်တော် ဒီမှာ Modbus TCP/IP ကိုသုံးပါမယ်။ ဘာလို့လည်းဆိုရင် Simulation လုပ်ဖို့သုံးတာပါ။ Simulation Port Address က 127.0.0.1 သုံးပြီတော့ Port ကို 502 သုံးပါတယ်။ စုစုပေါင်း Point အရေအတွက်က 24 ခုရှိပေမယ့် လက်ရှိ point 4 ခုပဲသုံးပါမယ်။  အရင်ဆုံးကျွန်တော် က Modbus ရဲ့ သုံးမယ့်ဟာကို Data Base အရင်ဆောက်လိုက်ပါမယ်။ ပုံက တတိယမြောက်မှာရှိပါတယ်။ ပုံနဲ့တွဲကြည့်ပေးပါ။
 ပထမ Point 2ခုကို 

Slave_id = 1
modbus_read_function = 1
modbus_write_function = 5 
modbus_type = VT_Bool 
modbus_address = 0,1 လို့သတ်မှတ်ထားပါတယ်။

1 က Coil ကို Read ဖို့အတွက်နဲ့ 5 က Write Input Coil  On/Off လုပ်ဖို့အတွက်ပါ။

ဒုတိယ Point 2 ခုကတော့

Slave_id = 1
modbus_read_function = 3
modbus_write_function = 16 
modbus_type = VT_I4 
modbus_address = 2,3 လို့သတ်မှတ်ထားပါတယ်။

3 က Register ကို Read ဖို့အတွက်နဲ့ 16က Register ကို Write လုပ်ဖို့အတွက်ပါ။
ပထမ Point 2ခုက တစ်ခုစီကို 1 ပေးတာနဲ့ Address 000001 နဲ့ 000002 က 1 ဖြစ်သွားပါမယ်။ လေးပုံမြောက်ကိုကြည့်ပါ။ ModbusPoint1 ကို ကျွန်တော် On တဲ့အတွက် 000001 က 1 ဖြစ်သွားပါတယ်။
ဒုတိယ Point 2ခုကို သတ်မှတ်ထားနဲ့  နံပါတ်တွေပေးရင် 400003 နဲ့ 400004 က သတ်မှတ်ထားတဲ့နံပါတ်တွေပဲပေါ်လာမှာပါ။ နောက်ဆုံးပုံကိုကြည့်ရင် ကျွန်တော်က ModbusPoint3 ကို 23 လို့ပေးလိုက်ပါတယ်။ ဒါကြောင့် 400003 မှာ 23 ကိုသွားရေးလိုက်ပါတယ်။

Comments

Popular posts from this blog

IPv4 Vs IPv6 - What's the difference between IP Addresses

ကျွန်တော်တို့ IOT Project သို့မဟုတ် PLC တို့ HMIတို့ကို Ethernet နဲ့ချိတ်တဲ့အခါမှာ IP Address တို့ Subnet Mask တို့သတ်မှတ်ရတာတို့ကိုတွေ့ရမှာပါ။အခုကတော့ IP Addressအကြောင်းကိုမှ IPv4 နဲ့ IPv6 အကြောင်းကိုရေးမှာပါ။           IP Address ဆိုတာကတော့ ကျွန်တော်တို့ရဲ့အိမ်နံပါတ်လိုသဘောမျိုးလုပ်ထားပေးတဲ့ Internet Protocol တစ်ခုပါပဲ။ အိမ်တိုင်းအိမ်တိုင်းမှာသူရဲ့သက်ဆိုင်တဲ့နေရာလိပ်စာတွေရှိကြသလိုပဲ စက်တိုင်းမှာလည်းသူရဲ့ သက်ဆိုင်တဲ့ IP Address တွေရှိကြပါတယ်။ ဒါကတော့ IP Address အကြောင်းကိုရှင်းပြတဲ့ရိုးရှင်းတဲ့ ဥပမာတစ်ခုပါ။ ဒီမှာအဓိကထားပြီးရှင်းပြသွားမှာကတော့ IPv4 နဲ့ IPv6 ကိုရှင်းပြသွားမှာပါ။      What is IPv4 : simple meaning & features guide     ဒီ IPv4 မှာဘာတွေပါလဲဆိုတော့ Set Numbers လေးခုပါဝင်ပါတယ်။ ယေဘုယျအားဖြင့် ဘယ်လိုပုံစံနဲ့ရေးကြသလဲဆိုရင် 106.102.77.43 (ဒါကဥပမာပုံစံပါ။) လိုပုံစံမျိုးဖြစ်ပြီးတော့ မတူညီတဲ့ ကိန်းဂဏန်းလေးခုကို Cover လုပ်ပေးထားပါတယ်။ IPv4 ဘာကြောင့်ဖြစ်လာရလည်းဆိုရင် လွန်ခဲ့တဲ့ 1980 ဝန်းကျင်ကာလတွေမှာ I...

Indirect Addressing

Indirect Addressing      တကယ်တမ်း​တော့ ဒီစာကို​ရေးဖြစ်တာကလည်း ဆရာရဲ့ Project Problem တစ်ခုချ​ပေးပြီ ​ဖြေရှင်းရင်းနဲ့ ​တွေ့လာတာပါ။ အဲ့​တော့ အဲ့ဒီဟာက ဘယ်​နေရာမှာ ဘယ်လိုသုံးတာလဲ,ဘာ​တွေသုံးတယ်,ဘယ်လို Program နဲ့​ရေးတာလဲဆိုတာ အဓိကထားပြီး​တော့ ​ပြောပြ​ပေးသွားမှာမယ်။ သူ့အ​ကြောင်းသိဖို့အရင် Index Register ကိုအရင်​ပြောပါမယ်။ What is Index Register?     Index Register ဆိုတာက Process Register လို့လဲ​ခေါ်ပြီး​တော့ Program ကို Operand ​တွေရဲ့ Address ကို Program က Run ​နေတဲ့အချိန်မှာ Modify လုပ်တာပါ၊ PLC မှာရှိတဲ့ Register ​တွေက PLC ထုတ်တဲ့ Company အမျိုးအစား​ပေါ်မူတည်ပြီး​တော့ ​သုံးစွဲတာမတူကြ​ပေမယ့် သ​ဘောတရားက​တော့အတူတူပါပဲ။ အခု ဥပမာ​ပေးမှာက Delta PLC နဲ့ ဥပမာ​ပေးပါမယ်။     Delta မှာရှိတဲ့ Index Register က​တော့ E နဲ့ F ဆိုပြီးသတ်မှတ်ထားပါတယ်။ E နဲ့ F ကိုတစ်လုံးချင်း သုံးရင်​တော့ 16 bit အ​နေနဲ့သုံးလို့ရပါတယ်။ Eနဲ့F ဟာတွဲခဲ့ရင်​တော့ 32 bit ဖြစ်သွားပါပြီ။ E ဟာ Lower 32 bit ဖြစ်လာပြီး​တော့ F ဟာ Higher 32 bit ဖြစ်လာပါတယ်။     ဒုတိယပုံက...

PLC Scan Time Problem

PLC Scan Time Problem     ဒီ Post ကို အရင် account အ​ဟောင်းမှာတုန်းက​တော့တင်ဖူးတယ်။ ဒါ​ပေမယ့် အခုကပြန်ပြီး နားလည်လွယ်မယ့်ပုံစံမျိုးနဲ့ပဲကျွန်​တော်​ရေး​ပေးပါမယ်။     ကျွန်​တော်တို့  PLC project ​တွေမှာဆိုရင် Programming ကို Ladder Diagram နဲ့​ရေးကြတာများပါတယ်။ တခြား Structure Text တို့ Function  Block တို့ Sequence တို့နဲ့လည်း​ရေးလို့ရပါတယ်။သို့​သော်လည်း ဒီကိစ္စမှာ​တော့ Ladder Diagram နဲ့ ဥပမာကိုတင်ပြသွားပါမယ်။      Scan Time ဆိုတာ ဘာလဲအရင် အကျဥ်းချုံပြီး​ပြောပါမယ်။ ပထမပုံက Ladder Diagram လိုပုံစံမျိုး​ရေးထားတယ်ဆိုပါစို့။ Program ရဲ့ ထိပ်ဆုံးအပိုင်းက​နေ Program ရဲ့ အဆုံးအထိ PLC က Scan ဖတ်ပါတယ်။ Scan ဖတ်နှုန်းဟာလည်း ​ရေးတဲ့ Program ​ပေါ်မူတည်ပြီး တစ်စက္ကန့်ကို Scan ဘယ်နှကြိမ်ဖတ်လည်းဆိုတာ​တွေရှိပါတယ်။      ကျွန်​တော်တို့ PLC Ladder Diagram မှာ Program ​တွေ​ရေးတယ်ဆိုရင် သာမန် Line 20 ခု, 30 ခု​လောက်​တော့ ပြသာနာမရှိ​လောက်ပါဘူး။ သို့​သော်လည်း Line အခု 20တို့ 30တို့မှာ High Counter ​တွေတို့ တခြား API ​တွေ အများကြီး​တွေသုံး...