Sunday, January 24, 2010

Real Comparison အေၾကာင္း

ခုတစ္ၾကိမ္မွာ Comparison Type ေတြထဲက ေနာက္တစ္ခုၿဖစ္တဲ့ "Compare Real (CMP ? R)" အေၾကာင္း ဆက္ေဆြးေႏြးၾကမယ္ေလ။



Compare Real (CMP ? R) ကလည္း အရင္ေဖာ္ၿပခဲ့တဲ့ Compare Integer ႏွင့္ Compare Double Integer တို႔လို normal contact အၿဖစ္ အသုံးၿပဳပါတယ္။ Integer, Double Integer နဲ႔ Real ဆိုၿပီး Data Type ပဲ ကြာသြားပါတယ္။ က်န္တဲ့ Comapre functionအားလုံး အတူတူပါပဲ။ IN1 နဲ႔ IN2 က Compare လုပ္မယ့္ ပထမ value နဲ႔ ဒုတိယ value ေပါ့။

Comparison ၿပဳလုပ္ၿပီး True ၿဖစ္ခဲ့လွ်င္ RLO state က "1" ရမွာပါ။ Program ထဲမွာ element box ကိုseries လုပ္ၿပီး ေရးသားထားရင္ RLO နဲ႔ AND logic အေနနဲ႔ ခ်ိတ္ဆက္တည္႐ိွေနၿပီး compare box ကို parallel ပုံခ်ိတ္ေရးသား ထားရင္ေတာ့ OR logic အေနနဲ႔ link ၿဖစ္ေနမွာပါ။

အေပၚက Example ပုံေလးမွာ ၾကည့္ပါဦး။ "Real comparison command" ကလြဲလို႔ အရင္ေဖာ္ၿပခဲ့တဲ့ Example နဲ႔ ထပ္တူပါပဲ။ Input I 0.0 နဲ႔ I 0.1 တို႔ရဲ႕ signal state "1" ကိုေစာင့္ၿပီး IN1 မွာ႐ိွတဲ့ MD0 က IN2 မွာ႐ိွတဲ့ MD4 real value နဲ႔ compare လုပ္ပါမယ္။ Comparison လုပ္တဲ့အေၿဖ True ၿဖစ္ၿပီးရင္ I 0.2 ရဲ႕ signal state "1" ကိုယူၿပီး Output Q 4.0 ဟာ set ၿဖစ္သြားပါမယ္။ သူရဲ႕ signal state ဟာလည္း "1" ရၿပီေပါ့။

အလုပ္လုပ္တဲ့ Function ေလးကေတာ့ (I 0.0 & I 0.1 = "1" and MD0 >= MD4, and I 0.2 = "1") ေပါ့။ အဲဒီ condition ေတြ အားလုံး OK ခဲ့လွ်င္ output Q 4.0 = "1" ပါ။

Saturday, January 23, 2010

Double Integer Comparison

ကဲ - ခုတစ္ေခါက္ေတာ့ "Comparison Type" ေတြထဲက ဒုတိယ comparison ၿဖစ္တဲ့ "Compare Double Integer CMP ? D" အေၾကာင္း ေၿပာၾကမယ္ေလ..။ သူရဲ႕ function ကလည္း Compare Integer အလုပ္ လုပ္ပုံနဲ႔ ထပ္တူပါပဲ။ ကြာ ၿခားတာက "Integer" ကို "compare" လုပ္တာကေန "Double Integer" ကို compare လုပ္တာေလးပါပဲ။



CMP ? D (Compare Double Integer) ကိုလည္း normal contact အၿဖစ္ အသုံးၿပဳေလ့ ႐ိွပါတယ္။ Program network ထဲမွာ normal contact အၿဖစ္ ထားသုိလို႔ရတဲ့ မည္သည့္ေနရာမွာမဆို ထည့္သြင္းေရးသားပါတယ္။ အရင္က ေဖာ္ၿပၿပီးသလုိ IN1 ဟာ compare လုပ္မယ့္ ပထမ value ၿဖစ္ၿပီးေတာ့ IN2 ကေတာ့ ဒုတိယ value ေပါ့။
Comparison ၿပဳလုပ္လို႔ "True" ၿဖစ္ခဲ့ရင္ function ရဲ႕ RLO က "1" ရမွာပါ။ Program ေရးသားခ်ိန္မွာCompare element box ကို series ၿပဳလုပ္ေရးသားရင္ RLO နဲ႔ AND logic အၿဖစ္ ခ်ိတ္ဆက္ေနမွာၿဖစ္ၿပီး parallel ၿပဳလုပ္ေရးသားရင္ ေတာ့ OR logic အေနနဲ႔ ခ်ိတ္ဆက္ေနပါမယ္။

ဒီတစ္ခါ Example ေလးမွာ ၾကည့္ပါဦး။ Inputs ေတြၾကားမွာ compare element box ေလးၿဖစ္တဲ့ "Greater than or Equal" function ကို ၾကားညွပ္ ေရးသားထားပါတယ္။ Input I 0.0 နဲ႔ I 0.1 တို႔ရဲ႕ signal state "1" ၿဖစ္ၿပီးတာနဲ႔ IN1 က MD0 ဟာ IN2 က MD4 value နဲ႔ compare လုပ္ၿပီးအေၿဖက True ၿဖစ္ခဲ့မယ္ဆိုရင္ I 0.2 ရဲ႕ signal state "1" နဲ႔ေပါင္းၿပီး Output Q 4.0 မွာ set ၿဖစ္သြားပါတယ္။ Set ၿဖစ္လာတဲ့ Q 4.0 ရဲ႕ signal state ဟာလည္း "1" ရ႐ိွေနပါၿပီ။

Integer Comparison အေၾကာင္း

ဒီတစ္ခါေတာ့ Comparison type ေတြထဲက ပထမဆုံးတစ္ခုၿဖစ္တဲ့ "Compare Integer CMP ? I" အေၾကာင္း ေၿပာၾကစို႔ရဲ႕..။


CMP ? I (Compare Inter) ကို normal contact အၿဖစ္ အသုံးၿပဳေလ့႐ိွပါတယ္။ Compare function ရဲ႕ သေကၤတကုိ program ထဲမွာ box ပုံစံေလးနဲ႔ ေရးသားပါတယ္။ သူ႕ကုိ normal contact အေနနဲ႔ ထား႐ိွလို႔ရတဲ့ netwrok ရဲ႕ ဘယ္ position မွာမဆို ေနရာေပးထားသို ေရးသားေလ့ ႐ိွပါတယ္။ အေပၚက Table ေလးမွာ ၾကည့္ပါဦး။ IN1 ဟာ compare လုပ္မယ့္ ပထမ value ၿဖစ္ၿပီး IN2 က compare လုပ္တဲ့ ဒုတိယ value ပါ။ သူတို႔ဟာ မိမိေ႐ြးခ်ယ္အသုံးၿပဳတဲ့ Comparion အမ်ဳိးအစားေပၚမွာ မူတည္ၿပီး အလုပ္ လုပ္ပါတယ္။

ေ႐ြးခ်ယ္ထားတဲ့ Comaprison အမ်ဳိးအစားဆိုတာ အေပၚက Symbol မွာၿပထား သလုိ "Equal function" ေသာ္၎၊ "Unequal function" ေသာ္၎၊ "Greater than function" ေသာ္၎၊ "Less than function" ေသာ္၎၊ "Greater than or Equal function" ေသာ္၎၊ "Less than or Equal function" ေသာ္၎ တစ္ခုခု ၿဖစ္ႏိုင္ပါတယ္။

Comparison လုပ္တဲ့ value ဟာ "True" ၿဖစ္သြားရင္ RLO ကလည္း "1" ရမွာပါ။ အဲဒီ RLO ဆိုတာက compare function ရဲ႕ သေကၤတ box ေလးကို program network မွာ series ၿပဳလုပ္ေရးသားထားရင္ AND logic အၿဖစ္ခ်ိတ္ဆက္ ေနၿပီးေတာ့ compare function ရဲ႕ သေကၤတ box ေလးကို parallel ၿပဳလုပ္ေရး သားထားမယ္ဆိုရင္ေတာ့ OR logoc အၿဖစ္ program network ေလးမွာခ်ိတ္ ဆက္ေနပါမယ္။

Example ပုံေလးကေတာ့ Comparison type ေတြထဲက "Greater than or Equal function" ေလးကို ေ႐ြးခ်ယ္အသုံးၿပဳၿပီး ေရးသားထားတဲ့ "network" ေလးပါ။ Input I 0.0 နဲ႔ I 0.1 တို႔ရဲ႕ signal state တၿပိဳင္နက္ "1" ၿဖစ္ၿပီ ဆိုရင္ေတာ့ IN1 မွာ႐ိွေသာ MW0 တန္ဖုိးဟာ IN2 မွာ႐ိွတဲ့ MW2 တန္ဖိုးနဲ႔ Comparison မွာ ေပးထားတဲ့ command အတိုင္း ႏွဳိင္းယွဥ္မွဳ ၿပဳလုပ္ၿပီးမွန္ကန္ ခဲ့လွ်င္ Output Q 4.0 မွာ set အၿဖစ္နဲ႔ "1" ကို ထုတ္ေပးပါမယ္။

ၿပဳလုပ္တဲ့ fucntion ပုံစံက Input (I 0.0 & I 0.1 = "1" AND MW0>=MW2) ၿဖစ္ၿပီး Q 4.0 = "1" ေပါ့...။

Friday, January 22, 2010

Comparison Instructions မိတ္ဆက္

Bit Logic Instructions ေတြေၿပာၿပီးတဲ့ေနာက္မွာ ဆက္လက္ေဆြးေႏြးဖို႕ စဥ္းစား ထားတာက Comparison Instructions အေၾကာင္းပါ။

Comparison Instruction မွာ Input ႏွစ္ခုၿဖစ္တဲ့ IN1 နဲ႔ IN2 ဟာ မိမိေ႐ြးခ်ယ္အ သုံးၿပဳတဲ့ comparison အမ်ဳိးအစားေပၚမွာ မူတည္ၿပီး တစ္ခုနဲ႔တစ္ခု compared ၿပဳလုပ္တာပါ။ ေအာက္မွာ အသုံးမ်ားတဲ့ Comparison type ေတြကို ေရးသားေပး လိုက္ပါတယ္။


1) "Equal" function
သေကၤတက "==" ပါ...။
IN1 is equal to IN2





2) "Not Equal" function
သေကၤတက "<>" ပါ...။
IN1 is not equal to IN2





3) "Greater than" function
သေကၤတက ">" ပါ...။
IN1 is greater than IN2






4) "Less than" function
သေကၤတက "<" ပါ...။
IN1 is less than IN2






5) "Greater than or Equal" function
သေကၤတက ">=" ပါ...။
IN1 is greater than or equal to IN2




6) "Less than or Equal" function
သေကၤတ က "<=" ပါ...။
IN1 is less than or equal to IN2



Comparison ရဲ႕ relult ဟာ true ၿဖစ္ေနၿပီဆိုရင္ function ရဲ႕ RLO သည္ "1" ၿဖစ္ေနပါမယ္။ အဲဒီ RLO ဟာ program ထဲမွာ compare element ကို "series" အေနနဲ႔ အသုံးၿပဳေရးသားထားရင္ "AND logic" အၿဖစ္ program network နဲ႔ link ခ်ိတ္ဆက္ေနတာပါ။ အကယ္၍ paralle အေနနဲ႔ အသုံးၿပဳ ေရးသားထားမယ္ဆို ရင္ေတာ့ "OR logic" အၿဖစ္နဲ႔ Program network မွာ link ခ်ိတ္ဆက္ေနမွာပါ။


RS Reset-Set Flip Flop အေၾကာင္း

ကဲ ဒီတစ္ခါ RS Flip Flop ေလးအေၾကာင္း ဆက္ေၿပာၾကရေအာင္..။ RS Flip Flop က SR Flip Flop နဲ႔ အလုပ္လုပ္ပုံ ေၿပာင္းၿပန္ပါ။

Symbol ပုံေလးမွာ ၿပထားသလုိပဲ Input "R" ရဲ႕ signal state "1" နဲ႔ Input "S" ရဲ႕ signal state "0" ရတဲ့အခ်ိန္မွာ RS Flip Flop ဟာ reset ၿဖစ္ပါမယ္။ အၿပန္အ လွန္အားၿဖင့္ Input "R" ရဲ႕ signal state ဟာ "0" ၿဖစ္ၿပီး Input "S" ရဲ႕ signal state "1" ရတဲ့အခ်ိန္မွာေတာ့ Flip Flop ဟာ set ၿပန္ၿဖစ္သြားပါတယ္။ အကယ္၍ Input "R" ေရာ "S" ေရာ ႏွစ္ခုလံုးရဲ႕ signal state "1" ၀င္လာသည့္ အခ်ိန္တြင္ ေတာ့ Flip Flop ဟာ သူရဲ႕ အလုပ္လုပ္ပုံ အစီအစဥ္အတိုင္း ေဆာင္႐ြက္ၿပီး သက္ ဆိုင္ရာ address က အေၿပာင္းအလဲ မ႐ိွပဲ "set value" အေနနဲ႔ တည္ေနပါမယ္။ S (Set) ႏွင့္ R (Reset) instructions ေတြဟာ RLO value "1" ၿဖစ္ေနခ်ိန္မွာသာ အလုပ္လုပ္ေဆာင္ၿပီး RLO တန္ဖိုး "0" ၿဖစ္ေနခ်ိန္ တြင္ေတာ့ သက္ဆိုင္ရာ address ကအေၿပာင္းအလဲ မ႐ိွပဲ တည္႐ိွေနပါလိမ့္မယ္။

Example ပံုေလးကို ၾကည့္လိုက္ပါဦး။ Input I 0.0 ရဲ႕ signal state "1" နဲ႔ I 0.1 signal state "0" ရခ်ိန္မွာ "Memory bit M0.0" ဟာ "set" ၿဖစ္သြားၿပီး output Q 4.0 မွာ "0" အေနနဲ႕ reset ၿဖစ္ပါမယ္။ အၿခားနည္းအားၿဖင့္ Input I 0.0 ရဲ႕ signal state "0" ႏွင့္ I 0.1 ရဲ႕ signal state "1" ရလာသည့္ အခ်ိန္မွာေတာ့ Memory bit M 0.0 ဟာ set ၿဖစ္သြားၿပီး Output Q 4.0 မွာ "1" အေနနဲ႔ set ကို ထုတ္ေပးပါတယ္။ Input ႏွစ္ခုစလုံးရဲ႕ signal state ေတြ "0" ၿဖစ္ေနတယ္ဆိုရင္ မည္သည့္ေၿပာင္းလဲမွဳမွ မ႐ိွပဲ Input ႏွစ္ခုစလုံး အတူတူ "1" ရတ့ဲအခ်ိန္မွာေတာ့ Memory bit M 0.0 ဟာ set ၿဖစ္သြားၿပီး Output Q 4.0 မွာ "1" ကုိထုတ္ေပးပါမယ္။

Thursday, January 21, 2010

SR Set-Reset Flip Flop အေၾကာင္း

ဒီတစ္ခါ ေၿပာမယ့္ေခါင္းစဥ္ေလးက SR Set-Reset Flip Flop အေၾကာင္းပါ။

အေပၚက Symbol ပုံေလးကို ၾကည့္ပါ။ SR Flip Flop ဟာ input "S" ရဲ႕ signal state "1" နဲ႕ input "R" ရဲ႕ signal state "0" ၿဖစ္ခ်ိန္မွာ set ၿဖစ္သြားပါတယ္။ တၿခားနည္းအားၿဖင့္ "S" input "0" နဲ႔ "R" input "1" ရခ်ိန္မွာေတာ့ reset ၿဖစ္သြားပါမယ္။ အကယ္၍ Inuput "S" နဲ႕ "R" တို႕ ရဲ႕ RLO value ဟာ တၿပိဳင္နက္ "1" ၿဖစ္ခဲ့မယ္ဆိုရင္ေတာ့ Flip Flop Function ရဲ႕ အစီအစဥ္တိုင္း သက္ဆိုင္ရာ address မွာ reset အေနနဲ႕ပဲ တည္ေနပါလိမ့္မယ္။

S (Set) နဲ႕ R (Reset) တို႔ လည္ပတ္ပုံဟာ RLO value "1" ၿဖစ္ေနခ်ိန္မွာသာ အလုပ္ လုပ္ပါတယ္။ RLO တန္ဖိုး "0" ၿဖစ္ေနစဥ္မွာေတာ့ သက္ဆိုင္ရာ address က အေၿပာင္းအလဲမ႐ိွ တည္ေနပါလိမ့္မယ္။

Example ပုံေလးကို ၾကည့္ပါဦး။ Input I 0.0 ရဲ႕ signal state "1" နဲ႔ I 0.1 ရဲ႕ signal state "0" ၀င္လာခဲ့ရင္ memory bit M 0.0 ဟာ set ၿဖစ္သြားၿပီး Output Q 4.0 "1" အေနနဲ႕ ouput ရ႐ိွပါမယ္။ ေၿပာင္းၿပန္အားၿဖင့္ Input I 0.0 ရဲ႕ siganl state "0" နဲ႕ I 0.1 ရဲ႕ singal state "1" ၿဖစ္လာခဲ့ရင္ memory bit M 0.0 ကုိ reset ႐ိုက္လိုက္ၿပီး "Q 4.0" ရဲ႕ signal state ဟာ "0" ၿဖစ္သြားပါတယ္။ "Input" I 0.0 နဲ႕ I 0.1 ႏွစ္ခုလုံးရဲ႕ signal states ေတြမွာ "1" ခ်ည္းသာ ၀င္လာလွ်င္ memory bit M 0.0 ဟာ reset အေနနဲ႕Output Q 4.0 က မေၿပာင္းလဲပဲ "0" အၿဖစ္ တည္ေနပါမယ္။

Tuesday, January 19, 2010

Reset Coil Function

ဆက္ၿပီးေတာ့ Reset Coil အေၾကာင္းေလး ေဆြးေႏြးၾကစို႕။ Reset Coil ဟာ Set Coil နဲ႕ ေၿပာင္းၿပန္ပါ။



Reset Coil ဟာလည္း လက္႐ိွ Instruction ရဲ႕ RLO "1" ႐ိွခ်ိန္မွာ coil ဆီကို power စီးဆင္းသြားၿပီး အလုပ္လုပ္ပါတယ္။ RLO တန္ဖိုး "1" ရ႐ိွခ်ိန္မွာ သက္ ဆိုင္ရာ address က activate ၿဖစ္သြားၿပီး "0" ကို reset လုပ္ပါတယ္။ "RLO" value "0" ဆိုရင္ေတာ့ "coil" ဆီကို "power" စီးဆင္းၿခင္းမ႐ိွပဲ မူလအတိုင္း မေၿပာင္းလဲပဲ တည္ေနပါတယ္။

သက္ဆိုင္ရာ Reset Coil ရဲ႕ address ဟာ Timer တစ္ခုၿဖစ္ႏိုင္သလုိ Counter တစ္ခုလည္း ၿဖစ္ႏိုင္ပါတယ္။ Timer ၿဖစ္ခဲ့ရင္ သူရဲ႕ timer value ကေန "0" အ ၿဖစ္ reset လုပ္မွာၿဖစ္ၿပီး "Counter" တစ္ခု ၿဖစ္ခဲ့မယ္ဆိုရင္လည္း သူရဲ႕ counter value က "0" အေနနဲ႕ reset လုပ္သြားမွာပါ။ Example ရဲ႕ network 2 နဲ႕ 3 မွာ ၾကည့္လုိက္ပါ။

Network No 1 မွာဆိုရင္ Input I 0.0 နဲ႕ I 0.1 တို႕ရဲ႕ signal state "1" ရတဲ့အ ခ်ိန္ (သို႕မဟုတ္) I 0.2 ရဲ႕ signal state "0" ၿဖစ္တဲ့ အခ်ိန္မွာ "Output Q 4.0" ဟာ "0" အေနနဲ႔ reset ၿဖစ္ပါတယ္။ က်န္တဲ့အခ်ိန္ RLO value "0" ဆိုရင္ ေတာ့ Q 4.0 ဟာ ဘာမွေၿပာင္းလဲမွဳ မ႐ိွပဲမူလ siganl state အတိုင္း တည္႐ိွေနပါမယ္။

Network No 2 မွာေတာ့ Reset Coil address ေနရာမွာ "Timer" အသုံးၿပဳေရး သားထားတာပါ။ Input I 0.3 ရဲ႕signal state "1" ရခ်ိန္မွာ "Timer" စတင္ run ၿပီး "0" အေနနဲ႔ reset လုပ္ပါတယ္။

Network No 3 မွာလည္း Rest Coil address ေနရာမွာ Counter ကို ထည့္ေရး ထားပါတယ္။ Input I 0.4 ရဲ႕ signal state "1" ၿဖစ္ခ်ိန္မွာေတာ့ "Counter" က စတင္ "count" လုပ္ၿပီး "count value" ၿပည့္တဲ့အခ်ိန္ မွာ "0" ကို reset လုပ္သြား မွာပါ။