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

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 ဖြစ်လာပါတယ်။     ဒုတိယပုံက...

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...

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 ​တွေ အများကြီး​တွေသုံး...