Skip to main content

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 ဖြစ်လာပါတယ်။
    ဒုတိယပုံက ဥပမာနဲ့​ပြောရင် ရှင်းသွားမှာပါ။ ပုံမှာပြတဲ့ ဥပမာဆိုရင် E0 ထဲကို K8 ရွေ့ပြီ​တော့ F0 ထဲကို K14 ​ရွေ့ပါမယ်။ ​နောက်ဆုံးက MOV D5E0 D10F0 ကို​ပြောစရာ​တော့ရှိပါတယ်။ D5E0 ဆိုတာက D5 နဲ့ E0 ​ပေါင်းခြင်းပါ။ D5 + E0(K8) = D13 လို့​ပြောတာပါ။ E0 ကို K8 လို့ နဂိုကတည်းက သတ်မှတ်ထားတဲ့အတွက် 5 + 8 = 13 ဆိုပြီးဖြစ်လာတာပါ။ အလားတူပဲ D10F0 က ဒီ​နေရာမှာ D24 ဖြစ်လာပါတယ်။ အဲ့​တော့ D13 ထဲက တန်ဖိုး​တွေကို D24 ထဲ ​ရွေ့ပါဆိုတာနဲ့အတူတူပါပဲ။

What is Indirect Addressing?

    Indirect Addressing ဆိုတာက Address တန်ဖိုးထဲက Data တန်ဖိုးကို ​နောက်ထပ် Address တန်ဖိုးတစ်ခုအဖြစ်​ပြောင်းလိုက်တာပါ။ တတိယပုံမှာကြည့်ရင် Pointer ဟာ Address 2212 ကို ​ထောက်ထားပြီး သူ့ရဲ့ Data တန်ဖိုးဟာ 345 ရှိတယ်။ Indirect Addressing လုပ်လိုက်တဲ့အခါမှာ​တော့ Data တန်ဖိုး 345 က Memory Address 345 အဖြစ်ကို​ပြောင်းလဲသွားပြီ​တော့ Address 345 ထဲက သတ်မှတ်ထားတဲ့ တန်ဖိုးကို Output ထုတ်လိုက်ပါတယ်။

Programming

    အခု Project ပြသာနာကဘာလဲဆိုရင် သ​​​ဘော်​တွေအ​ပေါ်မှာ PLC တစ်ခုရှိတယ်​ပေါ့။ အဲ့ဒီ PLC ရဲ့ Output သို့မဟုတ် Input တစ်ခုခု သို့မဟုတ် Output တစ်ခုခု ကပျက်သွားတယ်ဆိုပါ​တော့။ PLC ရဲ့  Input, Output  ကို Physical Wiring က​နေ Change ပြီး​တော့ HMI က​​နေသူ့ရဲ့ Address ​တွေကို​ပြောင်းမယ်​ပေါ့။ ဆိုလိုတာက Program မှာ Start ခလုတ်က X0 ဖြစ်​နေခဲ့ရင် HMI မှာ X0 က​နေ X1 ကို ​ပြောင်းမယ်ဆိုတဲ့သ​​ဘောမျိုးပဲ။ ဒီလိုမျိုးဘာလို့လုပ်ခိုင်းတာလဲဆိုရင် သ​ဘော်ကမ်းကပ်ရင် Programmer တစ်​ယောက်​​ခေါ်ပြီး​တော့ Program Upload တင်ခိုင်းရင် ပြသာနာ မရှိ​ပေမယ့်, ပင်လယ်ထဲ​ရောက်​နေရင် ပြသာနာ​ပေါ့။
    အဲ့​တော့ ကျွန်​တော်က ဘယ်လို​ရေးသလဲဆိုရင် ခုနက Indirect Addressing သ​ဘောတရားကို ယူပြီး​တော့​ရေးလိုက်ပါတယ်။ ကျွန်​တော် Program မှာ Input နှစ်ခုနဲ့ Output နှစ်ခုရှိပါတယ်။ Program ထဲမှာ Input တစ်ခုကို X1 သတ်မှတ်ပြီး​တော့ တစ်ခုကို X2 သတ်မှတ်ထားပါတယ်။ Output ကို​တော့ Y6 လို့သတ်မှတ်လိုက်ပါတယ်။ ကျွန်​တော် က Address ​တွေအကုန်သတ်မှတ်ပြီးပြီ ချင်းပဲ Main Program ကို ပြန်သွားပြီး​တော့ Force Device List က​နေ X1 နဲ့ X2 ကို On လိုက်ပါတယ်။ အဲ့ဒီအချိန် Y6 က On အ​ခြေအ​နေကို ​ရောက်သွားပါပြီ။ အကယ်၍သာ ကျွန်​တော်ဟာ Input တစ်ခုကို HMI မှာ X1 ကို X3 လို့သတ်မှတ်လိုက်ပြီး​ Main Program သွားကြည့်ပြီ​တော့X1,X2 Onရင် Y6 on မှာမဟုတ်ပါဘူး။ X1 ​နေရာမှာ X3 On မှသာ Y6 က Onမှာပါ။ Output လည်း ထိုနည်းလည်း​ကောင်းပါပဲ။ 
    ဒီ​နေရာမှာ ​စောဒက တတ်စရာတစ်ခုရှိပါတယ်။ အကယ်၍ Input ​တွေ Output ​တွေကို တူညီတဲ့ တန်ဖိုး​ပေးခဲ့ရင် ဘယ်လိုလုပ်မလဲ? ဒါက​တော့ရှင်းပါတယ်။ HMI မှာ Program တစ်ခု​ရေးပြီး​တော့ လုပ်ရင်ရပါတယ်။ အကယ်၍ Input_A = Input_B ဖြစ်ခဲ့ရင် Error ပြမယ်ဆို​တဲ့သ​ဘောမျိုး Program ​ရေးလိုက်ရုံပါပဲ။

Reference: Delta PLC Application Programming

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

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