ကၽြန္ေတာ္တုိ႔ ဒီဘေလာက္ခ္ ကေလးကုိ ၾကိဳးစားၿပီး ေရးၾကည့္ရၿခင္း အေၾကာင္းအရင္းက
- လက္ရွိ ကုိယ္သိထားၿပီး၊ နားလည္ၿပီးသား ေသာ အေၾကာင္းအရာမ်ား၊
- သိေအာင္ေလ့လာဆဲ၊ နားလည္ေအာင္ ၾကိဳးစားဆဲ အေၾကာင္းအရာမ်ား၊
ကုိ မွ်ေ၀ေပးခ်င္တဲ့ ရည္ရြယ္ခ်က္ပင္ ၿဖစ္ပါသည္။ အထူးသၿဖင့္ ကၽြန္ေတာ္ ( ကုိငယ္ ) က Electrical & Automation System အေၾကာင္းအရာမ်ား ႏွင့္ ကၽြန္ေတာ့္ ဇနီး ( မငယ္ ) မွ Civil နဲ႔ဆက္စပ္တဲ့ အေၾကာင္းအရာမ်ားကုိွ လုပ္ငန္းခြင္ အေတြ႔အၾကဳံမ်ားႏွင့္ ယွဥ္ၿပီး မွ်ေ၀သြားဖုိ႔ ရည္ရြယ္ထားပါသည္။
သုိ႔ေပသိ .. ကၽြန္ေတာ္တုိ႔ ကုိယ္တုိင္လည္း အစစအရာရာ ၿပီးၿပည့္စုံေနေသာ ပညာရွင္မ်ား မဟုတ္သည့္အတြက္ တစုံတရာ လြဲမွားသည့္ ေဖာ္ၿပခ်က္မ်ား ရွိလာပါက နားလည္ခြင့္လြတ္ေပးၾကပါရန္ ၾကိဳတင္ ေတာင္ပန္းအပ္ပါသည္ ခင္ဗ်ား။
ကၽြန္ေတာ္ တစ္ခါတုန္းက ၿမန္မာအင္ဂ်င္နီယာ ဖုိရမ္မွာ ကုိငယ္ဆုိတဲ့ နာမည္နဲ႔ ကၽြန္ေတာ္သိေသာ PLC ဆုိၿပီး ပုိစ့္ေတြ ေရးခဲ့ဘူးတယ္။ အခု အဲ့ဒီအေၾကာင္းအရာကုိပဲ ဆက္ေဆြးေႏြးခ်င္ပါတယ္။
ကၽြန္ေတာ္သိေသာ .... PLC ... ဆုိသည္မွာ Relay အၾကီးစားၾကီးပါပဲဗ်ာ။ သူ႔မွာ ကုိယ္လုိခ်င္ရင္ လုိခ်င္သေလာက္ NO / NC Contacts ေတြ အမ်ားၾကီး ထုတ္ေပးလုိ႔ရတယ္။ ကုိယ့္စိတ္ၾကိဳက္ လုိသလုိ လုပ္လုိ႔ရတဲ့ Relay ၾကီးေပါ့ဗ်ာ။
တစ္ခါက သူငယ္ခ်င္းေတြနဲ႔ စကား၀ုိင္းတစ္ခုမွာ ေလနဲနဲၾကီးတဲ့ သူငယ္ခ်င္းတစ္ေယာက္နဲ႔ သြားဆုံတယ္။ သူကလည္း PLC Programming ေတြေရးေနတာပါ။ Siemens PLC ထင္တယ္။ သူက တၿခားသူေတြကုိ ေၿပာေနတာ .. PLC Programming ဆုိတာ ဘယ္လုိခက္ခဲ၊ နက္နဲ၊ ရွဳပ္ေထြး တယ္ဆုိတဲ့ အေၾကာင္းေတြပါ။ ကၽြန္ေတာ္ကေတာ့ ၿပန္ေၿပာလုိက္တယ္။ PLC Programming ေရးဖုိ႔ဆုိရင္ ...
• Logic အေၾကာင္း သိထားရင္၊
• Digital Gates ေတြအေၾကာင္း တီးမိေခါက္မိရင္၊
• Relay အေၾကာင္း နားလည္ရင္၊
• C Programming အေၾကာင္းေလး သေဘာေလာက္ တတ္ထားရင၊္
ထင္သေလာက္ မခက္ခဲပါဘူးလုိ႔ ေၿပာလုိက္တယ္။ အဟဲ .. သူငယ္ခ်င္းကေတာ့ ႏွာကစ္သြားရွာတာေပါ့ဗ်ာ။
Logic အေၾကာင္း က ဘာေတြ သိထားရမွာလဲ ဆုိေတာ့ ...။ Binary Logic ၿဖစ္တဲ့ 1 & 0 ကုိ သိထားရင္ ရမယ္ထင္တယ္။ High & Low ... Open & Close ေပါ့ဗ်ာ။ Open / Close ဆုိမွ ေက်ာင္းတုန္းက ဆရာ ဦးကလဲမက္ၾကီး PLC အေၾကာင္းသင္တုန္းက ဆရာက မီးလုံး နဲ႔ ဆားကစ္ပါတ္လမ္းေလး တစ္ခုနဲ႔ ဥပမာ ေပးတယ္။ မ်က္စိထဲ ၿမင္ေအာင္ ေၿပာရရင္ .. မီးလုံးတစ္လုံးကုိ Switch တစ္ခုနဲ႔ Series ခ်ိတ္ထားတယ္။ တစ္ဖက္မွာေတာ့ Batteries နဲ႔ ခ်ိတ္ထားတယ္ေပါ့ဗ်ာ။ ဆရာက ေၿပာတယ္ ..။ မီးခလုပ္ကုိ ပိတ္လုိက္ရင္ ( Close လုိက္ရင္္ ) မီးလင္းသြားမယ္ ... မီးခလုတ္ကုိ ဖြင့္လုိက္ရင္ ( Open လုိက္ရင္ ) မီးလုံးမိွတ္ သြားမယ္ေပါ့။ ခပ္တုံးတုံး .. ကၽြန္ေတာ္ကေတာ့ မ်က္စိလည္သြားတယ္။ ဘယ္ႏွယ့္ မီးခလုတ္ပိတ္ရင္ မီးကမမိွတ္ပဲ နဲ႔ မီးခလုပ္ဖြင့္ ( မီးဖြင့္ ) မွ မီးက ပိတ္သြားတာပါလိမ့္လို႔။ အဲ့ဂလုိၾကီးကုိ .. ၿမန္မာမွဳ ၿပဳမိခဲ့တာ။
Digital Gates ေတြအေၾကာင္းကုိေတာ့ သာမာန္ NOT / AND / OR Gates ေတြေလာက္သိရင္ ရပါၿပီၤဗ်ာ။ XOR တုိ႔ XNOR တုိ႔ မလုိဘူးလုိ႔ ေၿပာလုိ႔ရမယ္ထင္တယ္။ ထပ္ၿပီး Boolean Algebra နဲ႔ Truth Table ေတြလည္း အကၽြမ္းတ၀င္ေရးတတ္ဖုိ႔လုိမယ္။ ကၽြန္ေတာ္ကေတာ့ Truth Table ကုိ 5 Variables ထိ ေရးခဲ့ဘူးတယ္။ ကၽြမ္းကုိ ၿပန္လုိ႔ ..။
Relay အေၾကာင္းကေတာ့ နားလည္ဖုိ႔ လုိတယ္ဗ်။ ရုိးရုိး Relays ( Contactors ) တစ္လုံးရဲ့ လုပ္ရုိးလုပ္စဥ္ေကာ၊ ရွယ္ Relays ( Latch Relays .. တုိ႔ဘာတုိ႔ေပါ့ ) တစ္လုံးရဲ့ လုပ္စဥ္ေတြပါ သိထားသင့္ပါတယ္။ Latch Relay ကုိ တခ်ဳိ႔ေတာ့ Set – Reset Relay လုိ႔လည္း ေခၚၾကတယ္။ Digital Electronic မွာေတာ့ Flip Flop ( D type ) နဲ႔ အတူတူပဲဗ်။
C Programming အေၾကာင္းကေတာ့ မ်ားမ်ားစားစား သိစရာမလုိပါဘူး။ ဒါေပမဲ့ PLC ရဲ့ Structure Text လုိမ်ဳိး နဲ႔ Programming ေရးတဲ့အခါမ်ဳိးမွာေတာ့ C Programming နဲ႔ သေဘာတရားတူေနတာကို ေတြ႔ရလိမ့္မယ္။ ကၽြန္ေတာ္ကေတာ့ အဲ့ဒီအပုိင္းကုိ မၿဖစ္မေန မွပဲ ေရးတတ္တယ္။ ပုံမွန္ကေတာ့ ေလွကားပဲ ေထာင္တတ္တယ္။
ဒါေတြကေတာ့ ကၽြန္ေတာ္သိေသာ ... PLC အေၾကာင္းပါပဲဗ်ာ။
PLC Programming ကုိ စၿပီး ေရးေတာ့မယ္ဆုိရင္ အရင္ဆုံး ေအာက္ပါအခ်က္ေတြကုိ စလုပ္ရပါေတာ့မည္။
1. ကုိယ့္အသုံးၿပဳလုိသည့္ PLC အမ်ဳိးအစား ႏွင့္ Program Manager ကုိ ေရြးခ်ယ္ၿခင္း။
2. Hardware Configuration တပ္ဆင္ၿခင္း။
3. Structure & Symbolize the Data ၿပဳလုပ္ၿခင္း။
4. Programming Language ကုိ ေရြးခ်ယ္ၿခင္း။
5. Simulation & Downloading ။
1. ကုိယ့္အသုံးၿပဳလုိသည့္ PLC အမ်ဳိးအစား ႏွင့္ Program Manager ကုိ ေရြးခ်ယ္ၿခင္း။
PLC အမ်ဳိးစားေပါင္း မ်ားစြာရွိပါသည္။ ထုိသုိ႔ေသာ မတူညီတဲ့ PLC အမ်ဳိးစားမ်ားကုိ မူတည္ၿပီး Program Manager မ်ားလည္း မ်ားစြာရွိလာပါသည္။ Siemens PLC ကုိ Step 7 လုိမ်ဳိး Program Manager နဲ႔သာ Program ေရးလုိ႔ရပါသည္။ Modicon Premium PLC ကုိ Siemens Step 7 နဲ႔ ေရးခ်င္လုိ႔ မရႏုိင္ပါ။ အဲ့ဒီေတာ့ ကၽြန္ေတာ္တုိ႔ အရင္ဆုံး လုပ္ရမွာက ဘယ္ PLC ကုိ သုံးမွာလဲ ... ဘယ္ Program Manager နဲ႔ ေရးၾကမွာလဲ .. ဆုိတာေပါ့။
ကၽြန္ေတာ္ကေတာ့ လက္ရွိ Project မွာ WAGO PLC ကုိ အသုံးၿပဳၿပီး Codesys V2.3 နဲ႔ Program ေရးေနရပါတယ္။ ေရွ႔ေလွ်ာက္ .. ဥပမာေပးသြားရင္ Codesys နဲ႔ ေရးၿပသြားပါ့မယ္။
2. Hardware Configuration တပ္ဆင္ၿခင္း။
Hardware Configuration ကုိ Physically တပ္ဆင္ေပးရပါ့မယ္။ မ်ားေသာအားၿဖင့္ PLC Unit တစ္ခုမွာ CPU ပါမည္။ Inputs / Outputs Modules ေတြပါမည္။ ဒီထက္ပုိၿပီး Serial Communication ( RS485 ) လုိမ်ဳိး Interfacing Modules ေတြပါလာမည္။ ေၿပာရရင္ေတာ့ အမ်ားၾကီးပဲ။ အားလုံးက ကုိယ္ဘာအတြက္ သုံးမွာလဲ .. ဘယ္ Application အတြက္လဲ ဆုိတာကုိ မူတည္ေနတာပါ။
CPU ကုိ ေရြးခ်ယ္ၿပန္ေတာ့လည္း ကုိယ့္ Application မွာလုိအပ္မဲ့ Inputs / Outputs အေရအတြက္ကုိ ၾကည့္ၿပီး ေရြးခ်ယ္သင့္ပါတယ္။ မလုိအပ္ပဲ Small Application အတြက္ High End CPU ေတြ မေရြးသင့္ပါဘူး။ ေရြးလည္း ဘာမွမၿဖစ္ဘူး။ ပုိက္ဆံပဲ ပုိေပးရလိမ့္မယ္။
Inputs / Outputs Modules ေတြမွာ Discrete ( Digital ) Inputs ( DI ) / Discrete ( Digital ) Outputs ( DO ) ရယ္ ... Analogue Inputs ( AI ) / Analogue Outputs ( AO ) ရယ္ဆုိၿပီး ေတြ႔ရလိမ့္မယ္။ ဒါကလည္း အသုံးခ်တဲ့ အရာေပၚမူတည္ၿပီး ေရြးယူရပါလိမ့္မည္။
မ်ားေသာ အားၿဖင့္ ကၽြန္ေတာ္ တပ္ဆင္တဲ့ Hardware Configuration မွာ Power Supply ကုိ အရင္ဆင္ပါတယ္။ ၿပီးရင္ CPU ကုိ ဆင္ပါတယ္။ အဲ .. WAGO မွာကေတာ့ CPU မွာပဲ Power Supply က တပါတည္း တပ္ဆင္ထားၿပီးသာပါ။ သီးသန္႔ ပါ၀ါ မလုိဘူးေပါ့ဗ်ာ။ CPU ၿပီးရင္ DI .. ၿပီးရင္ ..AI ...ၿပီးရင္ AO ... ၿပီးရင္ DO အေနနဲ႔ ဆင္တတ္ပါတယ္။ အဲ .. အားလုံးတပ္ဆင္ၿပီးရင္ ေနာက္ဆုံးမွာ End Slot အေနနဲ႔ End Module တစ္ခုတပ္ေပးလုိက္ပါတယ္။ တပ္ဆင္မွဳမွာေတာ့ သီးသန္႔ Standard ေတာ့ ရွိမယ္ မထင္ပါဘူး။ ဒါေပမဲ့ ကၽြန္ေတာ္ကေတာ့ Power Consumption အမ်ားဆုံးကုိ Power Supply နဲ႔ နီးနီးမွာ ထားေပးလုိက္တာပါပဲ။
Physically Hardware Configuration လုပ္ၿပီးသြားရင္ေတာ့ ကုိယ့္ Program Manager မွာလည္း အလားတူမ်ဳိး PLC Configuration လုပ္ေပးရပါမည္။ ဒါမွ လုိခ်င္တဲ့ Inputs နဲ႔ ရခ်င္တဲ့ Outputs ေတြ မွန္မွန္ကန္ကန္ ရရွိပါလိမ့္မယ္။
3. Structure & Symbolize the Data ၿပဳလုပ္ၿခင္း။
အဲ့ဒါကေတာ့ IO Data ေတြကုိ နာမည္ေပးၿခင္း နဲ႔ အမ်ဳိးအစား သတ္မွတ္ေပးၿခင္းပါပဲ။ ကုိယ့္ IO ေတြက Bits ေတြလား၊ Words ေတြလား၊ Strings ေတြလား၊ Tables ေတြနဲ႔လား ဆုိတာကုိ သတ္မွတ္ေပးရမယ္။ ၿပီးေတာ့ သူတုိ႔ကုိ ကုိယ္ပုိင္နာမည္ေတြ ေပးရမယ္။ အဲ .. နာမည္ဆုိတာကလည္း PLC က နားလည္မဲ့ နာမည္ေတြပါ။ ဘုိလုိေတာ့ Variable Name လုိ႔ ေခၚတာေပါ့ဗ်ာ။ တစ္ခါတေလလည္း ဘုိလုိမ်ဳိးေၿပာရင္ နားလည္လြယ္မယ္ထင္ပါတယ္။ ဒုတိယ ပုိစ့္က ဥပမာနဲ႔ ေၿပားရရင္ Switch AT %IX1.0: BOOL; လုိ႔ ဆုိပါေတာ့။ Switch ဆိုတဲ့ နာမည္က ကုိယ္ေတြသိတဲ့ အသိ ( လူသိတဲ့အသိ ) ..။ အဲ့ဒီေနာက္က %IX1.0 ဆိုတာက Switch မွန္း စက္က သိတဲ့အသိ ( PLC က သိတဲ့အသိ ) Address လုိ႔ေၿပာလုိ႔ရတယ္။ %IX ဆုိတာက I = Input & X = Digital ကုိ ဆုိလုိတာပါ .. ။ အတိအက်ေၿပာရရင္ Digital Input လုိ႔ေၿပာတာပါ။ အဲ .. ဒါေပမဲ့ သူကလည္း ပုံေသေတာ့ မွတ္မရဘူးေနာ့္။ PLC ကြဲရင္ အသုံးအႏူန္းကြဲသြားေကာ။ ဥပမာ ... Modicon မွာဆုိရင္ %I1.0 လုိ႔ပဲ ေတြ႔ရလိမ့္မယ္။ ေနာက္ဆုံးက BOOL ဆုိတာက Type of Data လုိ႔ ေၿပာရမယ္ .. BOOL ဆိုတာက Boolean ( Binary Digit - Bits ) ကုိ ကုိယ္စားၿပဳတာပါ။
မွတ္ရမွာက ... % IX = Digital Input, % QX = Digital Output, %QW = Analog Output, %IW = Analog Input ဆုိတာကုိပါပဲ။ ထပ္ၿပီး သတိေပးမယ္ေနာ္ ... ။ အဲ့ဒီဟာေတြက PLC အမ်ဳိးစားကြဲရင္ လုိက္ကြဲသြားလိမ့္မယ္။
4. Programming Language ကုိေရြးခ်ယ္ၿခင္း။
PLC Program တစ္ခုကုိ ေရးမယ္။ ကုိယ္က ဘယ္ Language နဲ႔ ေရးမလဲဆုိတာကုိေတာ့ ကုိယ့္ဘာသာ ကုိယ္ ဆုံဲးၿဖတ္ရပါမယ္။ ေရးလုိ႔ရတဲ့ Language ေတြတုိင္းကလည္း သူ႔အပုိင္းလုိက္ သူ အားသာခ်က္ရွိတာကုိ ေတြ႔ရပါတယ္။ အဓိက အပုိင္းကုိေတာ့ ကုိယ့္အားသန္ရာနဲ႔ ကုိယ္ေရးေပါ့ဗ်ာ။ အဟဲ ... ကၽြန္ေတာ္ကေတာ့ ေလွကားပဲ ေထာင္ေလ့ရွိပါတယ္ .. မ်ားေသာအားၿဖင့္ ေပါ့ဗ်ာ။
PLC Programming Languages ေတြကုိ ေယဘူယ် အားၿဖင့္ဆုိရင္ ( 2 ) ပုိင္း ခြဲမွတ္လုိ႔ရတယ္။
• စာနဲ႔ေဖာ္ၿပတဲ့ Language ( Textual Languages ) နဲ႔
• တုတ္ေခ်ာင္းေလးေတြနဲ႔ ပုံေဖာ္ၿပီး ၿပတဲ့ Languages ( Graphic Languages )
လုိ႔ ကၽြန္ေတာ္က ခြဲမွတ္တာပဲ။
နဲနဲထပ္ရွင္းရရင္ Textual Languages မွာ ထပ္ၿပီးခြဲလုိက္ရင္
• Instruction List ( IL )
• Structured Text ( ST )
လုိ႔ ခြဲလုိ႔ရေသးတယ္။
Instruction List ( IL ) က ဘာနဲ႔ တူသလဲဆိုေတာ့ ေက်ာင္းတုန္းက သင္ေပးလုိက္တဲ့ Assembly Language နဲ႔ ဆင္တယ္ဗ်ာ။ ကၽြန္ေတာ္က အဲ့ဒီအပိုင္းကုိ သိပ္ၿပီး မေရးေတာ့ သိပ္ၿပီး မရွင္းၿပတတ္ဘူး။
Structured Text ( ST ) ဆုိတာကေတာ့ C Programming မွ IF .. THEN .. ELSE ဘာညာကိြကြ ေတြနဲ႔ ေရးပုံေရးနည္း တူတယ္။ မ်ားေသာအားၿဖင့္ Input Datas 2 ခုကုိ Compare လုပ္တာမ်ိုးဆုိရင္ ST က အရမ္းေကာင္းတယ္။ တစ္ခ်ဳိ႔ေသာ သူေတြက ST နဲ႔ Program ေရးတာကုိ အားရေလ့ရွိတယ္။ ဒါကလည္း ေကာင္းပါတယ္။ ေတာ္ရုံတန္ရုံ လူက Program ကုိၾကည့္ရုံနဲ႔ ရုတ္တရက္ နားမလည္ႏုိင္ဘူးေပါ့။ လူရွိန္တယ္လုိ႔ ဆုိရမယ္။
ဒါေတြက Textual Languages နဲ႔ ပါတ္သတ္တဲ့ အေၾကာင္းေတြပါ။
Graphis Language ေတြကုိလည္း ခြဲလုိ႔ရေသးတယ္။
• Sequential Functional Chart ( SFC )
• Ladder Diagram ( LD ) ( ကၽြန္ေတာ္ကေတာ့ ေလွကားေထာင္ တယ္လုိ႔ ေၿပာတယ္ )
• Function Block Diagram ( FBD )
လုိ႔ ခြဲလုိ႔ရေသးတယ္။
Sequential Functional Chart ဆိုတာက Flow Chart လုိမ်ုိး ေရးတာ။ နားလည္ရေတာ့ ေတာ္ေတာ္ေလး လြယ္ကူပါတယ္။ ဘာ့ေၾကာင့္ေတာ့ မသိဘူး။ သိပ္ၿပီး အသုံးမၿပဳၾကဘူး။
Ladder Diagram ( LD ) ကေတာ့ ကၽြန္ေတာ့္ အၾကိဳက္ပါပဲဗ်ာ။ Electronic နဲ႔ ေက်ာင္းၿပီးခဲ့လုိ႔လား မသိဘူး။ စဥ္းစားလုိ႔ ေကာင္းတယ္။ တပါးသူကုိလည္း အလြယ္တကူ ရွင္းၿပလုိ႔ရတယ္။ Program ေၿပာင္းခ်င္ရင္ ခ်က္ခ်င္းေၿပာင္းလုိ႔ရတယ္ဗ်ာ။ တကယ့္ ..Circuit Diagram ေလး တစ္ခုလုိပဲ။ ေတာ္ေတာ္မ်ားမ်ားကလည္း ဒီ Language နဲ႔ အသုံးမ်ားသလုိပဲ။ ကၽြန္ေတာ့္ ရုံးမွာ Siemens PLC Specialist ရွိတယ္။ သူလည္း LD ပဲ သုံးတယ္။ Sixnet ေရးတဲ့သူရွိတယ္။ လာထား .. LD ပဲဗ်။ Modicon ေရးတဲ့လူကလည္း မၿဖစ္မေနမွ တၿခား Language ကုိသုံးတယ္။ ပုံမွန္ကေတာ့ LD ပါပဲဗ်ာ။
Function Block Diagram ( FBD ) ကလည္း လူသုံးမ်ားပါတယ္။ အမွန္ေတာ့ သူက အလြယ္ဆုံးပဲဗ်။ ေက်ာင္းတုန္းက သင္ေပးလုိက္တဲ့ Digital Electronic ေတြမွာ ဆြဲရတဲ့ Microcontroller အလုပ္လုပ္ပုံ လုိမ်ဳိးလုိလုိ၊ Gate Circuit Drawing လုိလုိ နဲ႔ အေတာ္ လြယ္သဗ်။
ကၽြန္ေတာ္ ေနာက္မွ ပုံေလးေတြနဲ႔ နဲနဲ ထပ္ရွင္းၿပပါ့မယ္။
5) Simulating & Downloading
PLC Program တစ္ခုကုိ ေရးၿပီးသြားၿပီဆုိရင္ ကုိယ္ေရးလုိက္တဲ့ Program က မွန္၏၊ မမွန္၏ ။ ဆုိတာကုိ ၿပန္စစ္ရပါ့မယ္။ Codesys မွာေတာ့ Built လုိ႔ သုံးႏူန္းပါတယ္။ C Program ေတြမွာဆုိရင္ Compile လုပ္တယ္လုိ႔ ဆုိမလားပဲ။ ကုိယ့္ Program ကုိ Built လုပ္ၿပီးလုိ႔ Error ေလးေတြ ၿဖစ္ေနေသးတယ္ဆုိရင္ Program Manager မွာ အနီေရာင္ နဲ႔ Highlight လုပ္ေပးထားလိမ့္မယ္။ အဲ့ဒါေလးကုိ Click လုပ္ၿပီး အမွန္လုိက္ၿပင္ေပးရပါလိမ့္မယ္။ အဲ့ဒီေနာက္ပုိင္း .. အားလုံး မွန္သြားၿပီဆုိရင္ေတာ့ .. PLC ရိွရင္ Download လုပ္ၿပီး အသုံးခ်လုိ႔ ရပါၿပီ။ ကုိယ္က PLC ကုိ Download မလုပ္ခင္ Application Process ေတြ မွန္ မမွန္ ၾကည့္ခ်င္ေသးရင္ PLC mode ကုိ Simulation Mode ကို ေၿပာင္းၿပီး Program Manager နဲ႔ စမ္းၾကည့္လုိ႔ရပါသည္။ ကုိယ္ေပးခ်င္တဲ့ Input ေတြကုိ Force ေပးၿပီး .. လုိခ်င္တဲ့ Output ကုိ ရ မရ ၾကည့္လုိ႔ရပါသည္။ အားလုံး စိတ္တုိင္းက် စမ္းၿပီးသြားၿပီ ဆုိရင္ေတာ့ .. PLC ထဲကုိ Programming Cable or Ethernet Cable နဲ႔ Download လုပ္ေပးလုိက္ရုံပါပဲ။ အဲ့ဒီေနာက္ေတာ့ PLC နဲ႔ ပါတ္သတ္ၿပီး အလုပ္ေတြ ၿပီးသြားပါၿပီ။
ကၽြန္ေတာ္ တစ္ခါတုန္းက ၿမန္မာအင္ဂ်င္နီယာ ဖုိရမ္မွာ ကုိငယ္ဆုိတဲ့
နာမည္နဲ႔ ကၽြန္ေတာ္သိေသာ PLC ဆုိၿပီး ပုိစ့္ေတြ ေရးခဲ့ဘူးတယ္။ အခု
အဲ့ဒီအေၾကာင္းအရာကုိပဲ ဆက္ေဆြးေႏြးခ်င္ပါတယ္။
ကၽြန္ေတာ္သိေသာ .... PLC ... ဆုိသည္မွာ Relay အၾကီးစားၾကီးပါပဲဗ်ာ။
သူ႔မွာ ကုိယ္လုိခ်င္ရင္ လုိခ်င္သေလာက္ NO / NC Contacts ေတြ အမ်ားၾကီး
ထုတ္ေပးလုိ႔ရတယ္။ ကုိယ့္စိတ္ၾကိဳက္ လုိသလုိ လုပ္လုိ႔ရတဲ့ Relay
ၾကီးေပါ့ဗ်ာ။
တစ္ခါက သူငယ္ခ်င္းေတြနဲ႔ စကား၀ုိင္းတစ္ခုမွာ ေလနဲနဲၾကီးတဲ့
သူငယ္ခ်င္းတစ္ေယာက္နဲ႔ သြားဆုံတယ္။ သူကလည္း PLC Programming
ေတြေရးေနတာပါ။ Siemens PLC ထင္တယ္။ သူက တၿခားသူေတြကုိ ေၿပာေနတာ .. PLC
Programming ဆုိတာ ဘယ္လုိခက္ခဲ၊ နက္နဲ၊ ရွဳပ္ေထြး တယ္ဆုိတဲ့
အေၾကာင္းေတြပါ။ ကၽြန္ေတာ္ကေတာ့ ၿပန္ေၿပာလုိက္တယ္။ PLC Programming
ေရးဖုိ႔ဆုိရင္ ...
• Logic အေၾကာင္း သိထားရင္၊
• Digital Gates ေတြအေၾကာင္း တီးမိေခါက္မိရင္၊
• Relay အေၾကာင္း နားလည္ရင္၊
• C Programming အေၾကာင္းေလး သေဘာေလာက္ တတ္ထားရင၊္
ထင္သေလာက္ မခက္ခဲပါဘူးလုိ႔ ေၿပာလုိက္တယ္။ အဟဲ .. သူငယ္ခ်င္းကေတာ့ ႏွာကစ္သြားရွာတာေပါ့ဗ်ာ။
Logic အေၾကာင္း က ဘာေတြ သိထားရမွာလဲ ဆုိေတာ့ ...။ Binary Logic ၿဖစ္တဲ့
1 & 0 ကုိ သိထားရင္ ရမယ္ထင္တယ္။ High & Low ... Open &
Close ေပါ့ဗ်ာ။ Open / Close ဆုိမွ ေက်ာင္းတုန္းက ဆရာ ဦးကလဲမက္ၾကီး PLC
အေၾကာင္းသင္တုန္းက ဆရာက မီးလုံး နဲ႔ ဆားကစ္ပါတ္လမ္းေလး တစ္ခုနဲ႔ ဥပမာ
ေပးတယ္။ မ်က္စိထဲ ၿမင္ေအာင္ ေၿပာရရင္ .. မီးလုံးတစ္လုံးကုိ Switch
တစ္ခုနဲ႔ Series ခ်ိတ္ထားတယ္။ တစ္ဖက္မွာေတာ့ Batteries နဲ႔
ခ်ိတ္ထားတယ္ေပါ့ဗ်ာ။ ဆရာက ေၿပာတယ္ ..။ မီးခလုပ္ကုိ ပိတ္လုိက္ရင္ ( Close
လုိက္ရင္္ ) မီးလင္းသြားမယ္ ... မီးခလုတ္ကုိ ဖြင့္လုိက္ရင္ ( Open
လုိက္ရင္ ) မီးလုံးမိွတ္ သြားမယ္ေပါ့။ ခပ္တုံးတုံး .. ကၽြန္ေတာ္ကေတာ့
မ်က္စိလည္သြားတယ္။ ဘယ္ႏွယ့္ မီးခလုတ္ပိတ္ရင္ မီးကမမိွတ္ပဲ နဲ႔
မီးခလုပ္ဖြင့္ ( မီးဖြင့္ ) မွ မီးက ပိတ္သြားတာပါလိမ့္လို႔။
အဲ့ဂလုိၾကီးကုိ .. ၿမန္မာမွဳ ၿပဳမိခဲ့တာ။
Digital Gates ေတြအေၾကာင္းကုိေတာ့ သာမာန္ NOT / AND / OR Gates
ေတြေလာက္သိရင္ ရပါၿပီၤဗ်ာ။ XOR တုိ႔ XNOR တုိ႔ မလုိဘူးလုိ႔
ေၿပာလုိ႔ရမယ္ထင္တယ္။ ထပ္ၿပီး Boolean Algebra နဲ႔ Truth Table ေတြလည္း
အကၽြမ္းတ၀င္ေရးတတ္ဖုိ႔လုိမယ္။ ကၽြန္ေတာ္ကေတာ့ Truth Table ကုိ 5
Variables ထိ ေရးခဲ့ဘူးတယ္။ ကၽြမ္းကုိ ၿပန္လုိ႔ ..။
Relay အေၾကာင္းကေတာ့ နားလည္ဖုိ႔ လုိတယ္ဗ်။ ရုိးရုိး Relays (
Contactors ) တစ္လုံးရဲ့ လုပ္ရုိးလုပ္စဥ္ေကာ၊ ရွယ္ Relays ( Latch Relays
.. တုိ႔ဘာတုိ႔ေပါ့ ) တစ္လုံးရဲ့ လုပ္စဥ္ေတြပါ သိထားသင့္ပါတယ္။ Latch
Relay ကုိ တခ်ဳိ႔ေတာ့ Set – Reset Relay လုိ႔လည္း ေခၚၾကတယ္။ Digital
Electronic မွာေတာ့ Flip Flop ( D type ) နဲ႔ အတူတူပဲဗ်။
C Programming အေၾကာင္းကေတာ့ မ်ားမ်ားစားစား သိစရာမလုိပါဘူး။ ဒါေပမဲ့
PLC ရဲ့ Structure Text လုိမ်ဳိး နဲ႔ Programming ေရးတဲ့အခါမ်ဳိးမွာေတာ့ C
Programming နဲ႔ သေဘာတရားတူေနတာကို ေတြ႔ရလိမ့္မယ္။ ကၽြန္ေတာ္ကေတာ့
အဲ့ဒီအပုိင္းကုိ မၿဖစ္မေန မွပဲ ေရးတတ္တယ္။ ပုံမွန္ကေတာ့ ေလွကားပဲ
ေထာင္တတ္တယ္။
ဒါေတြကေတာ့ ကၽြန္ေတာ္သိေသာ ... PLC အေၾကာင္းပါပဲဗ်ာ။
( ကၽြန္ေတာ္ေၿပာတာကုိ မၿပည့္စုံၿခင္း၊ မွားယြင္းၿခင္း၊ အယူအဆ
မတူၿခင္းမ်ား ရွိႏုိင္ပါတယ္။ ရွိခဲ့ရင္ၿဖင့္ ကၽြန္ေတာ္၏ ေလ့လာအားထုတ္မွဳ
မွားယြင္းခဲ့မွဳေၾကာင့္သာ ၿဖစ္ေၾကာင္း ၀န္ခံပါရေစခင္ဗ်ား )
ကုိငယ္
(11.01.2009)
PLC အေၾကာင္း ေလ့လာၾကည့္ရေအာင္ ( အပိုင္း-၂ )
PLC Programming ကုိ စၿပီး ေရးေတာ့မယ္ဆုိရင္ အရင္ဆုံး ေအာက္ပါအခ်က္ေတြကုိ စလုပ္ရပါေတာ့မည္။
1. ကုိယ့္အသုံးၿပဳလုိသည့္ PLC အမ်ဳိးအစား ႏွင့္ Program Manager ကုိ ေရြးခ်ယ္ၿခင္း။
2. Hardware Configuration တပ္ဆင္ၿခင္း။
3. Structure & Symbolize the Data ၿပဳလုပ္ၿခင္း။
4. Programming Language ကုိ ေရြးခ်ယ္ၿခင္း။
5. Simulation & Downloading ။
1. ကုိယ့္အသုံးၿပဳလုိသည့္ PLC အမ်ဳိးအစား ႏွင့္ Program Manager ကုိ ေရြးခ်ယ္ၿခင္း။
PLC အမ်ဳိးစားေပါင္း မ်ားစြာရွိပါသည္။ ထုိသုိ႔ေသာ မတူညီတဲ့ PLC
အမ်ဳိးစားမ်ားကုိ မူတည္ၿပီး Program Manager မ်ားလည္း မ်ားစြာရွိလာပါသည္။
Siemens PLC ကုိ Step 7 လုိမ်ဳိး Program Manager နဲ႔သာ Program
ေရးလုိ႔ရပါသည္။ Modicon Premium PLC ကုိ Siemens Step 7 နဲ႔ ေရးခ်င္လုိ႔
မရႏုိင္ပါ။ အဲ့ဒီေတာ့ ကၽြန္ေတာ္တုိ႔ အရင္ဆုံး လုပ္ရမွာက ဘယ္ PLC ကုိ
သုံးမွာလဲ ... ဘယ္ Program Manager နဲ႔ ေရးၾကမွာလဲ .. ဆုိတာေပါ့။
ကၽြန္ေတာ္ကေတာ့ လက္ရွိ Project မွာ WAGO PLC ကုိ အသုံးၿပဳၿပီး Codesys
V2.3 နဲ႔ Program ေရးေနရပါတယ္။ ေရွ႔ေလွ်ာက္ .. ဥပမာေပးသြားရင္ Codesys နဲ႔
ေရးၿပသြားပါ့မယ္။
2. Hardware Configuration တပ္ဆင္ၿခင္း။
Hardware Configuration ကုိ Physically တပ္ဆင္ေပးရပါ့မယ္။
မ်ားေသာအားၿဖင့္ PLC Unit တစ္ခုမွာ CPU ပါမည္။ Inputs / Outputs Modules
ေတြပါမည္။ ဒီထက္ပုိၿပီး Serial Communication ( RS485 ) လုိမ်ဳိး
Interfacing Modules ေတြပါလာမည္။ ေၿပာရရင္ေတာ့ အမ်ားၾကီးပဲ။ အားလုံးက
ကုိယ္ဘာအတြက္ သုံးမွာလဲ .. ဘယ္ Application အတြက္လဲ ဆုိတာကုိ မူတည္ေနတာပါ။
CPU ကုိ ေရြးခ်ယ္ၿပန္ေတာ့လည္း ကုိယ့္ Application မွာလုိအပ္မဲ့ Inputs
/ Outputs အေရအတြက္ကုိ ၾကည့္ၿပီး ေရြးခ်ယ္သင့္ပါတယ္။ မလုိအပ္ပဲ Small
Application အတြက္ High End CPU ေတြ မေရြးသင့္ပါဘူး။ ေရြးလည္း
ဘာမွမၿဖစ္ဘူး။ ပုိက္ဆံပဲ ပုိေပးရလိမ့္မယ္။
Inputs / Outputs Modules ေတြမွာ Discrete ( Digital ) Inputs ( DI ) /
Discrete ( Digital ) Outputs ( DO ) ရယ္ ... Analogue Inputs ( AI ) /
Analogue Outputs ( AO ) ရယ္ဆုိၿပီး ေတြ႔ရလိမ့္မယ္။ ဒါကလည္း အသုံးခ်တဲ့
အရာေပၚမူတည္ၿပီး ေရြးယူရပါလိမ့္မည္။
မ်ားေသာ အားၿဖင့္ ကၽြန္ေတာ္ တပ္ဆင္တဲ့ Hardware Configuration မွာ
Power Supply ကုိ အရင္ဆင္ပါတယ္။ ၿပီးရင္ CPU ကုိ ဆင္ပါတယ္။ အဲ .. WAGO
မွာကေတာ့ CPU မွာပဲ Power Supply က တပါတည္း တပ္ဆင္ထားၿပီးသာပါ။ သီးသန္႔
ပါ၀ါ မလုိဘူးေပါ့ဗ်ာ။ CPU ၿပီးရင္ DI .. ၿပီးရင္ ..AI ...ၿပီးရင္ AO ...
ၿပီးရင္ DO အေနနဲ႔ ဆင္တတ္ပါတယ္။ အဲ .. အားလုံးတပ္ဆင္ၿပီးရင္ ေနာက္ဆုံးမွာ
End Slot အေနနဲ႔ End Module တစ္ခုတပ္ေပးလုိက္ပါတယ္။ တပ္ဆင္မွဳမွာေတာ့
သီးသန္႔ Standard ေတာ့ ရွိမယ္ မထင္ပါဘူး။ ဒါေပမဲ့ ကၽြန္ေတာ္ကေတာ့ Power
Consumption အမ်ားဆုံးကုိ Power Supply နဲ႔ နီးနီးမွာ ထားေပးလုိက္တာပါပဲ။
Physically Hardware Configuration လုပ္ၿပီးသြားရင္ေတာ့ ကုိယ့္
Program Manager မွာလည္း အလားတူမ်ဳိး PLC Configuration လုပ္ေပးရပါမည္။
ဒါမွ လုိခ်င္တဲ့ Inputs နဲ႔ ရခ်င္တဲ့ Outputs ေတြ မွန္မွန္ကန္ကန္
ရရွိပါလိမ့္မယ္။
3. Structure & Symbolize the Data ၿပဳလုပ္ၿခင္း။
အဲ့ဒါကေတာ့ IO Data ေတြကုိ နာမည္ေပးၿခင္း နဲ႔ အမ်ဳိးအစား
သတ္မွတ္ေပးၿခင္းပါပဲ။ ကုိယ့္ IO ေတြက Bits ေတြလား၊ Words ေတြလား၊ Strings
ေတြလား၊ Tables ေတြနဲ႔လား ဆုိတာကုိ သတ္မွတ္ေပးရမယ္။ ၿပီးေတာ့ သူတုိ႔ကုိ
ကုိယ္ပုိင္နာမည္ေတြ ေပးရမယ္။ အဲ .. နာမည္ဆုိတာကလည္း PLC က နားလည္မဲ့
နာမည္ေတြပါ။ ဘုိလုိေတာ့ Variable Name လုိ႔ ေခၚတာေပါ့ဗ်ာ။ တစ္ခါတေလလည္း
ဘုိလုိမ်ဳိးေၿပာရင္ နားလည္လြယ္မယ္ထင္ပါတယ္။ ဒုတိယ ပုိစ့္က ဥပမာနဲ႔
ေၿပားရရင္ Switch AT %IX1.0: BOOL; လုိ႔ ဆုိပါေတာ့။ Switch ဆိုတဲ့ နာမည္က
ကုိယ္ေတြသိတဲ့ အသိ ( လူသိတဲ့အသိ ) ..။ အဲ့ဒီေနာက္က %IX1.0 ဆိုတာက Switch
မွန္း စက္က သိတဲ့အသိ ( PLC က သိတဲ့အသိ ) Address လုိ႔ေၿပာလုိ႔ရတယ္။ %IX
ဆုိတာက I = Input & X = Digital ကုိ ဆုိလုိတာပါ .. ။ အတိအက်ေၿပာရရင္
Digital Input လုိ႔ေၿပာတာပါ။ အဲ .. ဒါေပမဲ့ သူကလည္း ပုံေသေတာ့
မွတ္မရဘူးေနာ့္။ PLC ကြဲရင္ အသုံးအႏူန္းကြဲသြားေကာ။ ဥပမာ ... Modicon
မွာဆုိရင္ %I1.0 လုိ႔ပဲ ေတြ႔ရလိမ့္မယ္။ ေနာက္ဆုံးက BOOL ဆုိတာက Type of
Data လုိ႔ ေၿပာရမယ္ .. BOOL ဆိုတာက Boolean ( Binary Digit - Bits ) ကုိ
ကုိယ္စားၿပဳတာပါ။
မွတ္ရမွာက ... % IX = Digital Input, % QX = Digital Output, %QW =
Analog Output, %IW = Analog Input ဆုိတာကုိပါပဲ။ ထပ္ၿပီး သတိေပးမယ္ေနာ္
... ။ အဲ့ဒီဟာေတြက PLC အမ်ဳိးစားကြဲရင္ လုိက္ကြဲသြားလိမ့္မယ္။
ကုိငယ္
(11.01.2009 )
PLC အေၾကာင္း ေလ့လာၾကည့္ရေအာင္ ( အပိုင္း-၃)
PLC Program တစ္ခုကုိ ေရးမယ္။ ကုိယ္က ဘယ္ Language နဲ႔ ေရးမလဲဆုိတာကုိေတာ့ ကုိယ့္ဘာသာ ကုိယ္ ဆုံဲးၿဖတ္ရပါမယ္။ ေရးလုိ႔ရတဲ့ Language ေတြတုိင္းကလည္း သူ႔အပုိင္းလုိက္ သူ အားသာခ်က္ရွိတာကုိ ေတြ႔ရပါတယ္။ အဓိက အပုိင္းကုိေတာ့ ကုိယ့္အားသန္ရာနဲ႔ ကုိယ္ေရးေပါ့ဗ်ာ။ အဟဲ ... ကၽြန္ေတာ္ကေတာ့ ေလွကားပဲ ေထာင္ေလ့ရွိပါတယ္ .. မ်ားေသာအားၿဖင့္ ေပါ့ဗ်ာ။
PLC Programming Languages ေတြကုိ ေယဘူယ် အားၿဖင့္ဆုိရင္ ( 2 ) ပုိင္း ခြဲမွတ္လုိ႔ရတယ္။
• စာနဲ႔ေဖာ္ၿပတဲ့ Language ( Textual Languages ) နဲ႔
• တုတ္ေခ်ာင္းေလးေတြနဲ႔ ပုံေဖာ္ၿပီး ၿပတဲ့ Languages ( Graphic Languages )
လုိ႔ ကၽြန္ေတာ္က ခြဲမွတ္တာပဲ။
နဲနဲထပ္ရွင္းရရင္ Textual Languages မွာ ထပ္ၿပီးခြဲလုိက္ရင္
• Instruction List ( IL )
• Structured Text ( ST )
လုိ႔ ခြဲလုိ႔ရေသးတယ္။
Instruction List ( IL ) က ဘာနဲ႔ တူသလဲဆိုေတာ့ ေက်ာင္းတုန္းက သင္ေပးလုိက္တဲ့ Assembly Language နဲ႔ ဆင္တယ္ဗ်ာ။ ကၽြန္ေတာ္က အဲ့ဒီအပိုင္းကုိ သိပ္ၿပီး မေရးေတာ့ သိပ္ၿပီး မရွင္းၿပတတ္ဘူး။
Structured Text ( ST ) ဆုိတာကေတာ့ C Programming မွ IF .. THEN .. ELSE ဘာညာကိြကြ ေတြနဲ႔ ေရးပုံေရးနည္း တူတယ္။ မ်ားေသာအားၿဖင့္ Input Datas 2 ခုကုိ Compare လုပ္တာမ်ိုးဆုိရင္ ST က အရမ္းေကာင္းတယ္။ တစ္ခ်ဳိ႔ေသာ သူေတြက ST နဲ႔ Program ေရးတာကုိ အားရေလ့ရွိတယ္။ ဒါကလည္း ေကာင္းပါတယ္။ ေတာ္ရုံတန္ရုံ လူက Program ကုိၾကည့္ရုံနဲ႔ ရုတ္တရက္ နားမလည္ႏုိင္ဘူးေပါ့။ လူရွိန္တယ္လုိ႔ ဆုိရမယ္။
ဒါေတြက Textual Languages နဲ႔ ပါတ္သတ္တဲ့ အေၾကာင္းေတြပါ။
Graphis Language ေတြကုိလည္း ခြဲလုိ႔ရေသးတယ္။
• Sequential Functional Chart ( SFC )
• Ladder Diagram ( LD ) ( ကၽြန္ေတာ္ကေတာ့ ေလွကားေထာင္ တယ္လုိ႔ ေၿပာတယ္ )
• Function Block Diagram ( FBD )
လုိ႔ ခြဲလုိ႔ရေသးတယ္။
Sequential Functional Chart ဆိုတာက Flow Chart လုိမ်ုိး ေရးတာ။ နားလည္ရေတာ့ ေတာ္ေတာ္ေလး လြယ္ကူပါတယ္။ ဘာ့ေၾကာင့္ေတာ့ မသိဘူး။ သိပ္ၿပီး အသုံးမၿပဳၾကဘူး။
Ladder Diagram ( LD ) ကေတာ့ ကၽြန္ေတာ့္ အၾကိဳက္ပါပဲဗ်ာ။ Electronic နဲ႔ ေက်ာင္းၿပီးခဲ့လုိ႔လား မသိဘူး။ စဥ္းစားလုိ႔ ေကာင္းတယ္။ တပါးသူကုိလည္း အလြယ္တကူ ရွင္းၿပလုိ႔ရတယ္။ Program ေၿပာင္းခ်င္ရင္ ခ်က္ခ်င္းေၿပာင္းလုိ႔ရတယ္ဗ်ာ။ တကယ့္ ..Circuit Diagram ေလး တစ္ခုလုိပဲ။ ေတာ္ေတာ္မ်ားမ်ားကလည္း ဒီ Language နဲ႔ အသုံးမ်ားသလုိပဲ။ ကၽြန္ေတာ့္ ရုံးမွာ Siemens PLC Specialist ရွိတယ္။ သူလည္း LD ပဲ သုံးတယ္။ Sixnet ေရးတဲ့သူရွိတယ္။ လာထား .. LD ပဲဗ်။ Modicon ေရးတဲ့လူကလည္း မၿဖစ္မေနမွ တၿခား Language ကုိသုံးတယ္။ ပုံမွန္ကေတာ့ LD ပါပဲဗ်ာ။
Function Block Diagram ( FBD ) ကလည္း လူသုံးမ်ားပါတယ္။ အမွန္ေတာ့ သူက အလြယ္ဆုံးပဲဗ်။ ေက်ာင္းတုန္းက သင္ေပးလုိက္တဲ့ Digital Electronic ေတြမွာ ဆြဲရတဲ့ Microcontroller အလုပ္လုပ္ပုံ လုိမ်ဳိးလုိလုိ၊ Gate Circuit Drawing လုိလုိ နဲ႔ အေတာ္ လြယ္သဗ်။
ကၽြန္ေတာ္ ေနာက္မွ ပုံေလးေတြနဲ႔ နဲနဲ ထပ္ရွင္းၿပပါ့မယ္။
ကုိငယ္
(၁၁.၀၁.၂၀၀၈ )
PLC အေၾကာင္း ေလ့လာၾကည့္ရေအာင္ ( အပိုင္း-၄)
5) Simulating & Downloading
PLC Program တစ္ခုကုိ ေရးၿပီးသြားၿပီဆုိရင္ ကုိယ္ေရးလုိက္တဲ့ Program က မွန္၏၊ မမွန္၏ ။ ဆုိတာကုိ ၿပန္စစ္ရပါ့မယ္။ Codesys မွာေတာ့ Built လုိ႔ သုံးႏူန္းပါတယ္။ C Program ေတြမွာဆုိရင္ Compile လုပ္တယ္လုိ႔ ဆုိမလားပဲ။ ကုိယ့္ Program ကုိ Built လုပ္ၿပီးလုိ႔ Error ေလးေတြ ၿဖစ္ေနေသးတယ္ဆုိရင္ Program Manager မွာ အနီေရာင္ နဲ႔ Highlight လုပ္ေပးထားလိမ့္မယ္။ အဲ့ဒါေလးကုိ Click လုပ္ၿပီး အမွန္လုိက္ၿပင္ေပးရပါလိမ့္မယ္။ အဲ့ဒီေနာက္ပုိင္း .. အားလုံး မွန္သြားၿပီဆုိရင္ေတာ့ .. PLC ရိွရင္ Download လုပ္ၿပီး အသုံးခ်လုိ႔ ရပါၿပီ။ ကုိယ္က PLC ကုိ Download မလုပ္ခင္ Application Process ေတြ မွန္ မမွန္ ၾကည့္ခ်င္ေသးရင္ PLC mode ကုိ Simulation Mode ကို ေၿပာင္းၿပီး Program Manager နဲ႔ စမ္းၾကည့္လုိ႔ရပါသည္။ ကုိယ္ေပးခ်င္တဲ့ Input ေတြကုိ Force ေပးၿပီး .. လုိခ်င္တဲ့ Output ကုိ ရ မရ ၾကည့္လုိ႔ရပါသည္။ အားလုံး စိတ္တုိင္းက် စမ္းၿပီးသြားၿပီ ဆုိရင္ေတာ့ .. PLC ထဲကုိ Programming Cable or Ethernet Cable နဲ႔ Download လုပ္ေပးလုိက္ရုံပါပဲ။ အဲ့ဒီေနာက္ေတာ့ PLC နဲ႔ ပါတ္သတ္ၿပီး အလုပ္ေတြ ၿပီးသြားပါၿပီ။
Chapter 1 Introduction
to Programmable Logic Controllers
၁.၁ Definition
Programmable Logic
Controller (PLC) ကို Computer နည္းပညာကုိ အေျခခံ၍ microprocessor
မ်ားၿဖင့္ တည္ေဆာက္ထားၿပီး Control function မ်ားေဆာင္ရြက္ရန္အတြက္
integrated Circuit မ်ားကုိ အသုံးျပဳထားသည္။ စက္မွဳလုပ္ငန္းမ်ားတြင္
သံုးသည့္ Automated machine မ်ားႏွင့္ process မ်ားကုိ Control
လုပ္ရန္အတြက္ လုိအပ္ေသာ ညႊန္ၾကားခ်က္မ်ား (instructions)တုိ႔
သိမ္းဆည္းထားႏုိင္ၿပီး ထုိ instruction မ်ားအတုိင္း PLC မ်ားက လုပ္ကုိင္
ေဆာင္ရြက္ေပးႏုိင္သည္။ ညႊန္ၾကားခ်က္မ်ား (instructions)မွာ Sequencing ၊
timing ၊ counting ၊ arithmetic ၊ Data manipulation ႏွင့္ Communication
တုိ႔ျဖစ္ၾကသည္။
PLC မ်ားကုိ
အမ်ိဳးမ်ိဳးေသာနည္းမ်ားျဖင့္ အဓိပၸါယ္ဖြင့္ ဆုိၾကသည္။
အရိုးရွင္းဆုံးေသာ PLC ၏ အဓိပၸါယ္မွာ “PLC သည္ industrial Computer
တစ္မိ်ဳးျဖစ္ၿပီး Central Processing Unit (CPU ကုိုဆုိလုိသည္။) ႏွင့္
တျခားေသာ field device မ်ားကုိ interfacing circuitry ျဖင္
့ခ်ိတ္ဆက္ထားသည္။
၁.၂
ယေန့ Programmable Logic Controllers
ယေန႔ ေခတ္တြင္
Automation industry ၌ နည္းပညာအသစ္အဆန္းမ်ား ေန႔စဥ္လုိလုိ ေပၚထြက္
လွ်က္ရိွသည္။ထိုနည္းပညာမ်ားေၾကာင့္ PLC မ်ား၏ ဒီဇုိင္းမ်ား တုိးတက္လာသလုိ
Control System တစ္ခုလုံး၏ architecture အေပၚရႈျမင္သည့္ ယူဆခ်က္မ်ား
(Philosophical approach ) လည္းေျပာင္းလဲလာသည္။ Hardware ႏွင္
့သက္ဆုိင္ေသာ နည္းပညာမ်ားသာမက Software ႏွင့္ သက္ဆုိင္နည္းပညာမ်ားလည္း
အတူတကြတစ္ၿပိဳင္နက္တုိးတက္လာသည္။
(က) အဆင့္ၿမင့္သည့္
Microprocessor နည္းပညာအသစ္မ်ားႏွင့္ electronic နည္းပညာမ်ားေၾကာင့္ PLC ၏
scan time ပုိ၍ျမန္ဆန္လာသည္။ တနည္း PLC မ်ား၏ လုပ္ေဆာင္ခ်က္မ်ား
ပိုမုိလွ်င္ၿမန္လာသည္။
(ခ) PLC
မ်ား၏အရြယ္အစားပုိ၍ ေသးငယ္လာၿပီး ေစ်းႏႈန္းလည္းပုိ၍ နည္းလာသည္။
ေစ်းႏႈန္းနည္းလာေသာေၾကာင့္ အခ်ိဳ႕ေသာေနရာမ်ားတြင္ Relay မ်ား၏ ေနရာတြင္
PLC မ်ားကို အစားထုိးအသုံးျပဳလာၾကသည္။
(ဂ) PLC
တစ္ခုတြင္ရွိႏုိင္သည့္ input/output (I/O) မ်ားပုိ၍ မ်ားမ်ားလာသည္။
ထုိ႔ေၾကာင့္ ေစ်း ႏႈန္းက်ဆင္းလာသည္။
(ဃ) PLC မ်ား
တစထက္တစ ပုိ၍ ဥာဏ္ရည္ၿမင့္မားလာသည္။ intelligent ျဖစ္လာသည္။ interface
မ်ားတြင္ PID loop မ်ား ပါရိွလာျခင္း၊ protocol မ်ားစြာျဖင့္ Communicate
လုပ္ႏုိင္ျခင္း၊ High level language ျဖစ္ေသာ BASIC ၊ C ၊ Pascal
တုိ႔ျဖင့္ ေရးသားႏိုင္ျခင္း တုိ႔ျဖစ္သည္။
(င) Mechanical
ဒီဇုိင္းမ်ားပုိ၍ ေကာင္းမြန္တုိးတက္လာသည္။
(စ) Special
interface မ်ားကုိ အသုံးျပဳ၍ အခ်ိဳ႕ေသာ device မ်ားကုိ PLC ႏွင့္
တုိက္ရုိက္ ခ်ိတ္ဆက္(Connect) ႏိုင္သည္။ အသံုးမ်ားသည့္ Special Interface
မ်ားမွာ thermocouple မ်ား၊ strain gauge မ်ားႏွင့္ fast response input
မ်ားျဖစ္သည္။
အေသးငယ္ဆုံးေသာ PLC
မ်ားတြင္ I/O point ၃၂ခုပါဝင္၍ အၾကီးဆံုး PLC မ်ားတြင္ I/O point ၈၀၀၀
ခန္႔ပါဝင္ စာလုံး (word) ၁၂၈၀၀၀ ခန္႔ကုိသိမ္းဆည္းႏုိင္သည့္ memory
ပါဝင္သည္။ PLC မ်ားအားလုံးလုိလုိတြင္ industrial တြင္
အမ်ားဆံုးအသံုးၿပဳေလ့ရွိေသာ I/O system မ်ားပါဝင္သည္။ Programming
လုပ္ႏုိင္သည့္ feature မ်ားႏွင့္ Local communication Network ႏွင့္
ဆက္သြယ္ႏိုင္သည့္ interface မ်ားပါဝင္သည္။PLC မ်ားတြင္ object oriented
programming tool မ်ားႏွင့္ IEC 1131-3 standard ကုိိ အေျခခံထားသည့္
language မ်ားပါဝင္သည္။
BASIC ႏွင့္ C
တုိ႔ကဲ့သုိ႔ေသာ High-level language မ်ားကုိလက္ခံႏုိင္သည့္ PLC မ်ားသည္
peripheral device မ်ားႏွင့္ ပုိမိုလြယ္ကူစြာ program ေရးႏုိင္သည္။ PLC
မ်ားသည္ Data မ်ားကုိ ပုိမိုလြယ္ကူစြာ ကိုင္တြယ္နုိင္သည္။ manipulating
လုပ္ႏုိင္သည္။
Ladder diagram
instruction မ်ားတြင္ Advanced functional block instruction
မ်ားပါဝင္လာေသာေၾကာင့္ software မ်ား၏စြမ္းရည္ပုိမိုျမင့္မားလာသည္။
ခ်ိဳ့ယြင္းခ်က္မ်ားရွာေဖြၿခင္း
(Diagnostics) ႏွင့္ အမွားရွာေဖြၿခင္း (fault detection) စြမ္းရည္မ်ား
တုိးတက္လာျခင္းေၾကာင့္ PLC မ်ား၌ ျဖစ္ေနေသာ fault မ်ားကုိ သိႏို္င္ျခင္း၊
machine ႏွင့္ Field device မ်ား၌ ျဖစ္ေပၚေနေသာ fault မ်ားကုိ
သိႏိုင္ျခင္းတုိ႔အျပင္ Process အတြင္း၌ ျဖစ္ေပၚေနေသာfault
မ်ားကုိသိရိွႏုိင္သည္။
Control
application မ်ားအတြက္ လုိအပ္သည့္ ခက္ခဲေသာတြက္ခ်က္မွဳ (Complex
calculation) မ်ားျဖစ္ေသာ gauging ၊ balancing ႏွင့္ statistical
computation မ်ားကုိလည္း PLC က တြက္ခ်က္ေပး ႏုိင္သည္။
Data handling
ႏွင့္ manipulation instruction မ်ားလည္းပုိ၌ တုိးတက္ေကာင္းမြန္လာသည္။
Data မ်ားသိမ္းဆည္းျခင္း (storage) ၊ tracking လုပ္ျခင္း၊ အလြန္မ်ားသည့္
Data မ်ားကုိ retrieve လုပ္ျခင္း စသည့္ data acquisition
လုပ္ငန္းမ်ားကုိလည္း ပုိ၍ ေကာင္းမြန္စြာလုပ္ႏုိင္လာၿပီျဖစ္သည္။
PLC မ်ားသည္
လုံးဝျပည့္စုံဖြံ႕ၿဖိဳးၿပီးေသာ Control System မ်ားအျဖစ္
ရပ္တည္ေနႏုိင္ၿပီျဖစ္သည္။ ထင္ထားသည္ထက္ပုိမ်ားသည့္ စြမ္းေဆာင္ရည္မ်ားကုိ
ေပးႏုိင္သည္။ PLC မ်ားသည္ တျခားေသာ Control System (PLC မဟုတ္သည့္)
ႏွင့္ဆက္သြယ္ႏုိင္သည္။ (Communicate လုပ္ႏုိင္သည္။)
ကုန္ထုတ္လုပ္မွဳလုပ္ငန္းမ်ားအတြက္ Schedule ေရးဆဲြႏုိင္ျခင္း (scheduling
production) ၊ PLC မ်ား failure ျဖစ္ေနျခင္းကုိျပန္သိႏိုင္ျခင္း၊
စက္မ်ားပ်က္ေနျခင္း (သုိ႔) Process မ်ားပုံမမွန္ျဖစ္ေနျခင္းကုိ
သိႏိုင္ျခင္းတုိ႔ျဖစ္သည္။ ထုိ႔ေၾကာင့္ PLC မ်ားသည္ ယေန႔စက္မႈလုပ္ငန္းမ်ား၏
ေတာင္းဆုိခ်က္ျဖစ္ေသာ အရည္အေသြးၿမင့္မား(High quality) ေအာင္ ႏွင့္
ကုန္ထုတ္စြမ္းအားၿမင့္မား (High productivity) ေအာင္ေဆာင္ရြက္ေပးႏုိင္သည္။
၁-၃ Principle of Operation
ပုံ 1-5 တြင္ျပထားသည့္အတုိင္း PLC တစ္ခု၌ အပုိင္း ၂ ပုိင္း ပါဝင္သည္။
(က) Central processing unit ႏွင့္
(ခ) Input/output interface system
တို႕ၿဖစ္သည္။
Central Processing Unit (CPU) သည္ PLC ၏လုပ္ေဆာင္မႈမွန္သမွ်
အားလုံးကုိ ထိန္းခ်ဳပ္ ထားသည္။ ပုံ 1-6 တြင္ CPU တစ္ခု၌ ပါရိွေသာ
Component (၃) ခုကုိေဖာ္ျပထားသည္။
(၁) Processor
(၂) Memory ႏွင့္
(၃) Power supply တုိ႔ျဖစ္သည္။
PLC တစ္ခု၏ အလုပ္လုပ္ပုံ (operation) မွာ အလြန္ရွင္းလင္းသည္။
Field device မ်ားႏွင့္ PLC ရိွ Input/output (I/O) System ကို
ဝုိင္ယာႀကိဳးမ်ား ျဖင့္ ခ်ိတ္ဆက္ (Connect) ထားသည္။ Field device မ်ားသည္
စက္အစိတ္အပုိင္းမ်ား သို႕မဟုတ္ process တစ္ခု၌ ရိွေသာ sensor ႏွင့္
actuator မ်ားျဖစ္ၾကသည္။
Field device မ်ားသည္ limit switch မ်ား၊ pressure traduce မ်ား၊ push
button မ်ား၊ motor starter မ်ား၊ Solenoid စသည့္ discrete device မ်ား
သို႔မဟုတ္ Analog input/output device မ်ားျဖစ္ၾကသည္။
I/O interface သည္ CPU ႏွင့္ Input (information provider) information
ပုိ႔ေပးသည့္ input ႏွင့္ Controllable Device မ်ားျဖစ္သည့္ Output
တုိ႔အၾကားတြင္ အျပန္အလွန္ဆက္သြယ္ႏိုင္ေအာင္ ၾကားခံအျဖစ္ ေဆာင္ရြက္ေပးသည္။
Operation လုပ္ေနစဥ္ CPU သည္ ေအာက္ပါလုပ္ငန္း ၃ မ်ိဳးကုိ ေဆာင္ရြက္ေပးသည္။
(၁) Field
device မွ input data ကုိလက္ခံသည္။ သုိ႔မဟုတ္ data ကုိ input interface
မွတဆင့္ လွမ္းဖတ္သည္။
(၂) Memory ထဲ၌ ထည့္ၿပီး သိမ္းဆည္းထားသည့္ instruction မ်ား ( Control
program) အတုိင္း လုိအပ္သည့္ control action မ်ားကို ေဆာင္ရြက္သည္။
execute လုပ္သည္။ perform လုပ္သည္။
(၃) Output interface မွတဆင့္ output device ဆီသုိ႔ output signal
ထုတ္ေပးသည္။ write လုပ္သည္။ update လုပ္သည္။ ထုိကဲ့သုိ႔ စနစ္တက်
အစီအစဥ္အတုိင္း input ဖတ္ျခင္း (reading) ၊ memory ထဲသုိ႔ program အတုိင္း
execute လုပ္ျခင္းႏွင့္ output update လုပ္ျခင္းကုိ “Scanning ”
လုပ္သည္ဟုေခၚဆုိသည္။
ပုံ 1-7 တြင္ Scan
တစ္ခု ျဖစ္ပုံကုိ ဂရပ္ပုံျဖင့္ ေဖာ္ျပထားသည္။
ပုံ 1-8 တြင္ field device မ်ားကို controller ႏွင့္ ခ်ိတ္ဆက္ကာ
input/output system တစ္ခု ျဖစ္ေပၚလာပုံကုိ ေဖာ္ျပထားသည္။
Interface အလုပ္မွာ external device မ်ားထံမွ ရရိွေသာ အမ်ိဳးမ်ိဳးေသာ
signal မ်ားႏွင့္ external device သုိ႔ေပးပုိ႔ေသာ အမ်ိဳးမ်ိဳးေသာ Signal
မ်ားကုိ ျပဳျပင္စီမံျခင္း (Conditioning လုပ္ျခင္း ) ျဖစ္သည္။ Push button
၊ limit switch ၊ Analog sensor ၊ Selector switch ႏွင့္ thumb wheel
switche မ်ားသည္ input interface ရွိ terminal ၌ ဝါယာႀကိဳးမ်ားျဖင့္
ခ်ိတ္ဆက္ ၾကသည္။ ထုိ device မ်ား လက္ခံရရိွသည့္ data မ်ားကုိ incoming
Signal ဟုေခၚဆုိသည္။ control လုပ္ျခင္းခံရမည့္ motor starterမ်ား၊
solenoid valve မ်ား၊ Pilot light မ်ားႏွင့္ Position Valve မ်ား၊
စသည္တုိ့သည္ output interface ရွိ terminal မ်ား၌
ဝါယာႀကိဳးမ်ားျဖင့္ခ်ိတ္ဆက္ထားသည္။ System power supply သည္ လုိအပ္ေသာ
power ကုိ လုံေလာက္ေအာင္ ပံ့ပုိးေပးသည္။
Programming device မ်ားျဖစ္သည့္ Personal computer (သုိ႔)
miniprogramming unit တုိ႔ကုိ PLC ၏အစိတ္အပုိင္းတစ္ခုအျဖစ္ မသတ္မွတ္ေပ။
သို႔ေသာ္ထုိ Programming device မ်ားသည္ PLC memory အတြင္းသို႔ program
မ်ားထည့္သြင္းရန္အတြက္လုိအပ္သည္။ PLC အတြင္းသုိ႔ control program မ်ား
ထည့္သြင္းရန္၊ Monitor လုပ္ရန္အတြက္ PLC ႏွင့္ Programming device တုိ႔ကုိ
ခ်ိတ္ဆက္ (connect) ထားရန္လုိသည္။
အခန္း ၄ ႏွင့္ ၅ တြင္ CPU ႏွင့္ input/output interface တုိ႔အျပန္အလွန္
လုပ္ကုိင္ေဆာင္ရြက္ပုံကုိ ေဖာ္ျပထားသည္။ အခန္း၆၊ ရ ႏွင့္ ၈ တုိ႔တြင္
Input/output system မ်ားအေၾကာင္းကုိေဖာ္ျပထားသည္။
၁.၄
PLCs မ်ားႏွင့္ Other Types of Controls
၁.၄.၁
PLC ႏွင့္ Relay control
လြန္ခဲ့သည့္ႏွစ္မ်ားစြာက
အင္ဂ်င္နီယာမ်ား၊ မန္ေနဂ်ာမ်ားႏွင့္ ထုတ္လုပ္သူမ်ား ေမးေလ့ရိွသည့္
ေမးခြန္းတစ္ခုမွာ PLC ကုိ အသုံးျပဳရန္သင့္မသင့္ ျဖစ္သည္။ PLC ႏွင့္ Relay
Control တုိ႔၏ ေစ်းႏႈန္းနုိင္းယွဥ္ၿခင္း ႏွင့္ အက်ိဳးရိွမရိွ
ကုိေလ့လာဆန္းစစ္ကာ အခ်ိန္ကုန္ခဲ့ၾကသည္။ ယေန႔ထက္တုိင္ အခ်ိဳ႕ေသာ Control
System ဒီဇုိင္နာမ်ားက စဥ္းစားေနၾကဆဲျဖစ္သည္။
ယေန႔လုိအပ္ခ်က္ျဖစ္သည့္
High quality ႏွင့္ High Productivity ရရိွေအာင္ PLCမ်ား က ေဆာင္ရြက္
ေပးႏုိင္သည္။ ယေန႔အခ်ိန္တြင္ PLC မ်ား၏ ေစ်းႏႈန္းသည္
အလြန္က်ဆင္းလာေသာေၾကာင့္ PLC ႏွင့္ relayတုိ႔၏ ေစ်းႏႈန္းကုိ ႏိႈင္းယွဥ္ရန္
မလုိအပ္ေတာ့ေပ။ PLC မ်ား၌ အားသာခ်က္ မ်ားစြာရိွသည္။ PLC based System
ႏွင့္ hardwired relay system ကုိေရြးခ်ယ္ရန္အတြက္ Designer မ်ားသည္
ေအာက္ပါ ေမးခြန္းမ်ားစြာကုိ ေမးျမန္းရန္လုိအပ္သည္။
(က) အသုံးျပဳသည့္ Control logic သည္ မၾကခဏျပဳျပင္ေျပာင္းလဲရန္ လုိအပ္မႈရိွ
မရိွ ၊
(ခ) High reliability လုိအပ္ျခင္းရိွ မရိွ ၊
(ဂ) ရသည့္ေနရာ အက်ယ္အဝန္းသည္ အဓိကက်မက် ၊
(ဃ) ေနာင္တခ်ိန္တြင္ ပိုၿမင့္မားသည့္ စြမ္းေဆာာင္ရည္ လုိအပ္နုိင္မႈ
ရိွမရိွ ၊
(င) အခ်ိန္ခဏအတြင္း control logic တစ္ခုလုံးကုိ ျပဳျပင္ရန္လုိအပ္မႈ
ရိွမရိွ ၊
(စ) တူညီသည့္ control logic တစ္မ်ိဳးကုိ အျခားေသာ စက္မ်ားတြင္ အသုံးျပဳရန္
လုိအပ္မႈ ရိွမရိွ ၊
(ဆ) ေနာက္တခ်ိန္တြင္ ထပ္မံတုိးခ်ဲ႕ရန္လုိအပ္မႈ ရိွမရိွ ႏွင့္
(ဇ) စုစုေပါင္း ကုန္က်စရိတ္ တုိ့ၿဖစ္သည္။
ပုံ 1-10
တြင္ျပထားသည့္အတုိင္း PLC ကုိအသုံးျပဳ ျခင္းျဖင့္ ေနရာက်ဥ္းက်ဥ္း၌
သပ္ရပ္သန္႕ရွင္းသည့္
control panel
တစ္ခုသာလုိသည္။ Relay မ်ားကုိ အသုံးျပဳပါက အလြန္ႀကီးမားၿပီး ဝါယာႀကိဳးမ်ား
ရႈပ္ေထြးေနသည့္
အလြန္ႀကီးမားသည့္ Control panel တစ္ခုျပဳလုပ္ရမည္။
Contol System
တစ္ခုသည္ ခဏအတြင္းလုိအပ္သလုိေၿပာင္းလဲရန္ (flexibility) (သို႔) future
growth (ေနာင္တခ်ိန္တြင္ တုိးခဲ်႕ရန္လုိအပ္လွ်င္) PLC ကုိအသုံးျပဳသင့္သည္။
မၾကာခဏ Control logic ျပဳျပင္ေျပာင္းလဲရန္လုိပါက PLC ကုိအသုံးျပဳသင့္သည္။
အလြန္တုိေတာင္းသည့္
cycle time (သုိ႔) အလြန္ျမန္သည့္ scan time ရိွရန္လုိအပ္လွ်င္ relay
ကုိအသုံးျပဳသင့္သည္။Relay Control၏အစပုိင္း ကုန္က်စရိတ္မွ နည္းႏုိင္သည္။
သုိ႔ေသာ္
ပ်က္ႏႈန္းအလြန္မ်ားၿပီး၊ ပ်က္လွ်င္ Down time အလြန္ၾကာ ေသာေၾကာင့္
ဝင္ေငြဆုံးရံႈးႏုိင္သည္။
(၂) Memory ထဲ၌ ထည့္ၿပီး သိမ္းဆည္းထားသည့္ instruction မ်ား ( Control program) အတုိင္း လုိအပ္သည့္ control action မ်ားကို ေဆာင္ရြက္သည္။ execute လုပ္သည္။ perform လုပ္သည္။
(၃) Output interface မွတဆင့္ output device ဆီသုိ႔ output signal ထုတ္ေပးသည္။ write လုပ္သည္။ update လုပ္သည္။ ထုိကဲ့သုိ႔ စနစ္တက် အစီအစဥ္အတုိင္း input ဖတ္ျခင္း (reading) ၊ memory ထဲသုိ႔ program အတုိင္း execute လုပ္ျခင္းႏွင့္ output update လုပ္ျခင္းကုိ “Scanning ” လုပ္သည္ဟုေခၚဆုိသည္။
Programmable Logic Controllers Chapter 2 - Number System and Codes
Programmable Logic ControllersChapter 2 - Number System and Codes
PLC မ်ားကုိ ကၽြမ္းက်င္စြာအသံုးခ်ႏုိင္ရန္ number system မ်ားႏွင့္ Digital codes မ်ားအေၾကာင္းကို အေၿခခံမွစ၍ စနစ္တက် နားလည္ရန္လုိအပ္သည္။ Input/Output တုိ႔၏ address မ်ား သတ္မွတ္ေပးရန္ႏွင့္ programming လုပ္ရန္အတြက္ Number system ၄ မ်ိဳးကုိ ပထမဦးစြာရွင္းလင္း ေဖာ္ၿပထားသည္။
Binary Coded Decimal (BCD) ႏွင့္ Gray codes မ်ားႏွင့္အတူ ASCII character set ႏွင့္ PLC register format မ်ားအေၾကာင္းကုိ ရွင္းလင္းေရးသားထားသည္။ Number System မ်ားသည္ PLC logic မ်ား၏ အေျခခံ အုတ္ျမစ္မ်ားျဖစ္သည္။ ဤ code မ်ားကုိနားလည္ႏွံစပ္ျခင္းျဖင့္ PLC မ်ားအ အလုပ္လုပ္ပံုကုိ ေကာင္းစြာသိျမင္နားလည္ႏုိင္သည္။(က)Binary System
(ခ) Octal System
(ဂ) Decimal System ႏွင့္
(ဃ) Hexadecimal System တို႔ျဖစ္သည္။
၂.၁ Number System
Number System မ်ားကုိ ကြ်မ္းက်င္ ပုိင္ႏုိင္လွ်င္ PLC မ်ားကိုမိမိလုိသလုိ ေကာင္းစြာအသံုးခ်နုိင္သည္။ အေျခခံက်ေသာ (Basic) function မ်ားမွာ Number မ်ားျဖင့္ ေဖာ္ျပျခင္း (representation) , Number မ်ားကုိ သိမ္းဆည္းျခင္း (Store) ႏွင့္ Number မ်ားကုိ ေပါင္းႏႈတ္ေျမွာက္စား စသည့္ Operation မ်ားၿပဳလုပ္ျခင္းတုိ႔ျဖစ္သည္။ PLC မ်ားသည္ Binary Number မ်ားကိုအသံုးၿပဳ၍တန္ဘုိးမ်ားကိုေဖာ္ၿပၿခင္း၊ သိမ္းဆည္းၿခင္း တုိ့ၿပဳလုပ္သည္။
မည္သည့္ Number System ပင္ျဖစ္ပါေစေအာက္ပါအခ်က္မ်ားအားလုံးအက်ဳံးဝင္သည္။သက္ဆိုင္ သည္။
(က) Number System အားလံုးတြင္ Base တန္ဘုိး တစ္မ်ိဳးမ်ိဳးကို အေၿခခံ၍တည္ေဆာက္ထားသည္။Number System တစ္ခု၏ Base သည္ ထုိ System က အသုံးျပဳသည့္ unique symbol ျဖစ္သည္။ အျမင့္ဆုံး (အမ်ားဆုံး) တန္ဘုိးသည္ Base ထက္ ၁ ေလ်ာ့သည္။ ၂ ကုိ အေျခခံ၍ တည္ေဆာက္ထားေသာ Number System ကုိ Base 2 ဟုေခၚဆုိသည္။ မည္သည့္ တန္ဘိုးကုိမဆုိ Base အျဖစ္တည္ေဆာက္ႏုိင္ေသာ္လည္း ၊ PLC မ်ားတြင္အသုံးမ်ားေသာ Number System မ်ားမွာ Base 2 ၊ Base 8 ၊ Base 10 ႏွင့္ Base 16 တုိ႔ျဖစ္ သည္။
(ခ) Number System အားလံုးကို ေရတြက္ရာတြင္ (Counting လုပ္ၿခင္း) အသံုးၿပဳႏိုင္သည္။
(ဂ) Number System အားလံုးကို တန္ဘုိးမ်ား ၊ ပမာဏမ်ား(quantities)ႏွင့္ code မ်ားကို ေဖာ္ၿပရန္ အသံုးၿပဳသည္။
(ဃ) Number System အားလံုးတြင္ သေကၤတမ်ား (set of symbol) ရွိၾကသည္။
Base 2 System ကုိ Binary System ဟုလည္းေကာင္း၊ထုိ System မ်ားအားလုံးကုိ နားလည္ရန္ ပထမဦးဆုံး ရင္းႏွီးနားလည္ၿပီးသားျဖစ္သည့္ Decimal System မွစတင္ရေအာင္…
Base 8 System ကုိ Octal System ဟု လည္းေကာင္း၊
Base 10 System ကုိ Decimal System ဟု၍ လည္းေကာင္း၊
Base 16 number System ကုိ Hexadecimal number System ဟူ၍၎ ေခၚဆုိသည္။
၂.၂ Decimal System
Decimal System ကုိ ကၽြႏု္ပ္တုိ႔အားလုံး နားလည္ၿပီးျဖစ္သည္။ လူမ်ားတြင္လက္ေခ်ာင္းက ေလးမ်ား ၁၀ ေခ်ာင္း၊ ေျခေခ်ာင္းကေလးမ်ား ၁၀ ေခ်ာင္းစီရိွၾကေသာေၾကာင့္ Decimal Number System ႏွင့္အလြန္ရင္းႏွီး ကြ်မ္းဝင္ၿခင္း ျဖစ္သည္။ Decimal Number System သည္ ၁၀ ကုိအေျခခံထားသည့္ Base 10 System ျဖစ္သည္။ 0,1,2,3,4,5,6,7,8 ႏွင့္ 9 တုိ႔ကို Symbol မ်ား သုိ႔ မဟုတ္ Digits မ်ားဟုေခၚဆုိသည္။
ထုိ႔ေၾကာင့္ System symbol အားလုံးစုစုေပါင္း 10 ခုရိွသည္။ ( ဝ မွ ၉ အထိ) အ ျမင့္ဆုံးတန္ဘုိး 9 သည္ Base ျဖစ္သည့္ 10 ထက္ ၁ ေလ်ာ့ေနသည္။ Decimal System မ်ားသည္ အလြန္ ရင္းႏွီးလြန္းေသာေၾကာင့္ အျမင့္ဆုံးတန္ဘိုးျဖစ္သည္ 9 ထက္မ်ားပါ မည္ကဲ့သုိ႔ေဖာ္ျပရမည္ကုိ စဥ္းစားမိရန္ခဲယဥ္းသည္။ အျမင့္ဆုံးဂဏန္း (Largest Symbol) ထက္ပုိမ်ားသည့္တန္ဘိုးကုိေဖာ္ျပသည့္နည္းမ်ားသည္ Number System အားလုံးတြင္တူညီၾကသည္။
Decimal System တြင္ ပါဝင္သည့္ဂဏန္းမ်ားတန္ဘုိးသည္ ေနရာကုိလုိက္၍ ေျပာင္းလဲသည္။ Place Value သုိ႔မဟုတ္ weight ဟုေခၚသည္။ ညာဘက္မွ ဘယ္ဘက္သုိ႔ (from right to Left ) သုိ႔ ေရာက္သြားေလေလ တန္ဘုိးမ်ားေလေလျဖစ္သည္။
ပုံ2-1 တြင္ေဖာ္ျပထားသည္။ ညာဘက္အစြန္ဆုံး (right most) ေနရာ၏ position တန္ဘိုး သည္ ၀ (သုည) ျဖစ္သည္။ အကယ္၍ Base 10 (သုိ႔) Decimal ျဖစ္ခဲ့လွ်င္ ပုံ ၂-၂ တြင္ position (ေနရာ) မ်ားအားလုံး ၏ weight value ကုိ 10 ကုိ အေျခခံ၍ေဖာ္ျပထားသည္။ Decimal System အတြက္ ညာဘက္မွ ဘယ္ဘက္ သို႔ (from right to left) position weight မ်ားမွာ ၁ ၊ ၁၀ ၊ ၁၀၀ ၊ ၁၀၀၀ စသည္တုိ႔ျဖစ္သည္။ ထုိကဲ့သို႔ တန္ ဘုိုးမ်ားကုိ ေရတြက္သည္နည္းကုိ “Sum of the Weight Method” ဟုေခၚသည္။
Decimal number မ်ား၏တန္ဘုိးကုိရရန္ Digit ႏွင့္ေနရာ၏တန္ဘိုး (Weight value) တုိ႔ကုိ ေျမွာက္ၿပီး တန္ဘုိးမ်ားအားလုံးကုိေပါင္းယူျခင္းျဖစ္သည္။ ဥပမာ-အေနျဖင့္ 9876 ကုိ “Sum of the Weight Method” method ျဖင့္ ေအာက္ပါအတုိင္းတြက္ယူႏုိင္သည္။
ဂဏန္းတုိင္း (Digit တုိင္း) ကုိ Base ကုိမူတည္၍ ေနရာ၏ ထပ္ကိန္းတန္ဘုိးရွာယူျခင္းျဖစ္ သည္။ထုိ႔ေၾကာင့္ No မွ Nn အထိေပါင္းလွ်င္ Base “b” ျဖစ္ေသာ Decimal equipment တန္ဘိုးကုိရသည္။
၂-၃ Binary Number System
Binary number System သည္ ၂ ကုိအေျခခံ၍ တည္ေဆာက္ထားေသာ (Base 2) စနစ္ျဖစ္သည္။ ထုိ႔ ေၾကာင့္ Binary Number System တြင္ရိွ 0 ႏွင့္ 1 သာရိွႏုိင္သည္။ ၂ ၊ ၃ ၊ ၄ စသည့္ ဂဏန္းမ်ားမပါဝင္ႏုိင္ေပ၊ PLC ႏွင့္ Digital Computer မ်ားကဲ့သုိ႔ေသာ Device မ်ားအတြက္ Binary Number System သည္အသုံးအဝင္ဆုံးျဖစ္သည္။ Binary Number System ကုိသာသုံး၍ Operation လုပ္ႏုိင္သည္။ 0 ႏွင့္ 1 ႏွစ္မ်ိဳးကုိသာ အေျခခံ၍ ဒီဇုိင္းလုပ္ထားေသာေၾကာင့္ Device မ်ားအတြက္ Operate လုပ္ရန္ လြယ္ကူသည္။ မီး လုံး ၊ ဘား (value) ႏွင့္ ခလုပ္ (switch) စသည့္ physical element မ်ားတြင္ ON/OFF , Close/Open ႏွင့္ Start/Stop စသည္ အေျခအေန (state) ၂ မ်ိဳးသာရိွႏုိင္သည္။
Computer ကုိအသုံးျပဳသည့္အခါတုိင္း Binary Number System ကုိ ေတြ႔ျမင္ႏုိင္သည္။ Computer ကုိသုံးလုိလွ်င္ ခလုပ္ကုိဖြင့္ (ON) လုိက္သည့္ႏွင္တစ္ၿပိဳင္နက္ ခလုပ္သည္ Position “0” မွ Position “1” အျဖစ္သိ႔ုေျပာင္းသြားသည္။ Computer ကုိ အသုံးမျပဳေတာ့လွ်င္ Position “0” သုိ႔ျပန္ေရာက္ေစၿပီး ပိတ္ (OFF) ပစ္လုိက္သည္။ Digital circuit မ်ားတြင္ Voltage ၂ မ်ိဳးျဖင့္ခဲြျခားထားသည္ +5 V ႏွင့္ 0 V ျဖစ္သည္။ ထုိ႔ေၾကာင့္ Digital application မ်ားအတြက္ Binary number System သည္အလြန္အသုံးဝင္သည္။ Binary Number System တြင္ 1 သည္ အၾကီးဆံုးတန္ဘုိး( largest valued System) ျဖစ္သည္။
Decimal System မ်ားမွာကဲ့သုိ႔ပင္ Binary Number System တြင္ Largest valued System ထက္ႀကီးသည့္တန္ဘုိးကုိ ေဖာ္ျပလုိလွ်င္ ညာဘက္မွ ဘယ္ ဘက္သို႔ (From Right To Left) ေနရာတစ္ေနရာေရြ႕၍ weighted value ကုိ assign လုပ္ျခင္းျဖစ္သည္။ Weight Value (Decimal equipment) မ်ား တြက္ပုံမွာ Decimal Number System ႏွင့္ Binary Number System တုိ႔တြင္တူညီသည္။ ကဲြျပားသည့္အခ်က္မွာ Decimal Number System တြင္ Base ျဖစ္သည့္ ၁၀ ၏ အေပၚ၌ ထပ္ကိန္းတင္ျခင္းျဖစ္ၿပီး၊ Binary Number System ၌ Base ျဖစ္သည့္ ၂ အေပၚတြင္ထပ္ကိန္းတင္ ျခင္းျဖစ္သည္။ ထပ္ကိန္းသည္ position ၏ ေနရာပင္ျဖစ္သည္။ Binary Number System တြင္ ညာမွဘယ္သုိ႔ (From Right To Left) ေရႊ႕သြားသည္ weight value မွာ 1,2, 4, 16, 32, 64 စသည္တုိ႔ျဖစ္ၿပီး ေနရာ 0,1,2,3,4,5,6 တုိ႔ျဖစ္သည္။
ဥပမာ-အေနျဖင့္ Binary Number 10110110 ႏွင့္ တန္ဘိုးတူညီသည့္ Decimal value ကုိ တြက္ၾကရေအာင္၊
Binary number 10110110 သည္ Decimal Number System မွ 182 ႏွင့္ တန္ဘုိးတူညီသည္။ Binary number ၈ လုံး (8 digit) ကုိ bit တစ္ခုအျဖစ္သတ္မွတ္သည္။ Binary Number 10110110 (182 decimal ) သည္ 8bit ရိွသည္။ bit ၈ ခုရိွသည္။ bit ၄ ခုရိွလွ်င္ Nibble ဟုသတ္မွတ္သည္။ bit ၈ ခုရိွလွ်င္ byte တစ္ခုအျဖစ္သတ္မွတ္သည္။ ၁ ခု ထက္ပိုမ်ားသည့္ byte မ်ားကုိ “word” အျဖစ္သတ္မွတ္သည္။ ပုံ၂-၄ တြင္ bit ၁၆ ခုရိွသည့္ Binary Number ကုိေဖာ္ျပထား သည္။
ဘယ္ဘက္အစြန္ဆုံး၌ရိွသည့္ ဂဏန္း (Digit) မွာ Least Significant bit (Lowest valued bit) ျဖစ္သည္။ ညာဘက္အစြန္ဆုံး၌ရိွသည့္ ဂဏန္း (Digit) မွ Most Significant bit (MSB) ျဖစ္ၿပီး အမ်ားဆုံး တန္ဘိုးရိွသည့္ bit (Most significant bit) ျဖစ္သည္။
Binary Number မ်ားကုိေရတြက္ရန္ အလြန္ခြတိခြက်ႏုိင္ျခင္းမွာ Binary Number မ်ားကုိ Decimal Number မ်ားကဲ့သုိ႔မရင္းႏွီးေသာ ေၾကာင့္ ျဖစ္သည္။ Binary Number System ႏွင့္ 0 ႏွင့္ 1, ၁ ၿပီးေနာက္ေနရာတစ္ေနရာေရႊ႕ၿပီးျပန္ျဖစ္သည္။ Decimal Number တြင္ ၁ မွ ၉ ၊ ၉ၿပီး ေနာက္ေနရာေရႊ႕ၿပီး ၁ ျပန္ျဖစ္သည္။
Table 2-1 တြင္ Binary Number ႏွင့္ Decimal Number တုိ႔ကုိ ယွဥ္၍ေဖာ္ျပထားသည္။
၂.၄ Octal Number System
Binary Number System တြင္ Digit မ်ားစြာပါရိွရန္လုိသည္။ Decimal Number ထက္ပုိ၍မ်ားသည္။ ဥပမာ- Decimal Number မွ 9110 သည္ Binary Number 10110112 ႏွင့္ညီသည္။ Digit မ်ားကုိေရးရန္၊ ဖတ္ရန္ အလြန္ခက္ခဲသည္။ အထူးသျဖင့္ လူမ်ားဖတ္ယူရန္ အတြက္ပုိ၍ အဆင္မေျပေပ။
ထုိ႔ေၾကာင့္ အလြန္ Digit မ်ားသည့္ Binary Number မ်ားကုိ ေဖာ္ျပရန္အတြက္ Octal Number System ကုိအသုံးျပဳေလ့ရိွ သည္။ Octal Number System သည္ ၈ ကုိအေျခခံထားသည့္ Base 8 စနစ္ျဖစ္သည္။ Digit ၈ လုံးသာပါဝင္သည္။ 0,1,2,3,4,5,6 ႏွင့္ 7 တုိ႔ျဖစ္သည္။ Table 2-2 တြင္ ၁ မွ ၁၅ အထိကုိ Decimal ၊ Binary ႏွင့္ Octal တုိ႔ျဖင့္ ယွဥ္ တဲြေဖာ္ျပထားသည္။
ျခားေသာ Number System မ်ားကဲ့သို႔ပင္ Octal Number တြင္ေနရာ (position ) တန္ဘုိးကုိ weighted ျဖင့္ေဖာ္ျပ သည္ ။ ဥပမာ- Octal Number 1767 ႏွင့္ တန္ဘုိးတူညီသည့္ Decimal Number မွာ 1015 ျဖစ္သည္။
ေအာက္တြင္ 16-bit ရွိသည့္ binary number ကို six digits သာ octal number ၿဖင့္ေဖာ္ၿပထားသည္။
Octal Number သည္ Binary Number မ်ားကုိပုိ၍ အဆင္ေျပစြာ ေဖာ္ျပႏုိင္ရန္အတြက္ သုံးျခင္းျဖစ္သည္။ Binary Number ရိွ Digit ၃ ခု( binary bit 3) ကုိ တစ္ခုခုလုိက္ၿပီး Octal Number တစ္လုံး (Digit 1 ခု) အျဖစ္ေဖာ္ျပႏုိင္သည္။ ထို႔ေၾကာင့္ အလြန္ မ်ားျပားသည့္ (ရွည္လ်ားသည့္) Binary Number မ်ားကုိ ON ကုိသုံး၍ Digit အနည္းငယ္ျဖင့္ ေဖာ္ျပႏုိင္သည္။ ဥပမာ- 16bit Binary Number ကုိ Octal Number ျဖင့္ေဖာ္ျပလွ်င္ ဂဏန္း ၆လုံး ( 6 Digits) သာလုိသည္။ PLC မ်ားတြင္ input/output address မ်ား ႏွင့္ memory address မ်ားကုိေဖာ္ျပရန္အတြက္ Octal Number ကုိအသုံးျပဳၾကသည္။
ေကာင္းထက္ညြန့္
Programmable Logic Controllers - Chapter 3 - Logic Concept
Programmable Logic Controllers - Chapter 3 - Logic ConceptLogic Concept
PLC မ်ား၏အလုပ္လုပ္ပုံ ႏွင့္ အသုံးျပဳပုံမ်ားကုိ နားလည္ရန္အတြက္ Logic concept ကုိ ပထမဦးစြာ နားလည္ရန္ လုိအပ္သည္။ အေျခခံ Logic function ၃ မိ်ဳးျဖစ္သည့္ AND ၊ OR ႏွင့္ NOT တုိ႔ကုိ ကြဲၿပားေအာင္ Electric Circuit မ်ား ႏွင့္ Ladder Diagram မ်ားႏွင့္တကြ ေသးစိတ္ရွင္းလင္းေဖာ္ျပထားသည္။ ထုိ Logic function ၃ မ်ိဳးကုိအေျခခံ၍ ရိုးရွင္းလြယ္ကူသည့္ Control decision မ်ားမွစ၍ ခက္ခဲ ရႈပ္ေထြးသည့္ Control Decision မ်ားအထိ တည္ေဆာက္ထားသည္။ ေနာက္ပုိင္းတြင္ Boolean algebra ၏ အေျခခံ သေဘာတရားမ်ား (fundamental) ႏွင့္ ယင္းတုိ႔ႏွင့္သက္ဆုိင္သည့္ Operator မ်ားကုိေဖာ္ျပထားသည္။
ထုိ႔ေနာက္ Boolean Logic ႏွင့္ Logic contact Symbology တုိ႔၏ ဆက္သြယ္ပုံမ်ားကုိ ရွင္းလင္းထားသည္။ ဤအခန္းကုိေက်ညက္စြာေလ့ လာၿပီးလွ်င္ PLC processor မ်ားႏွင့္ ယင္းတုိ႔၏ programming Device မ်ားကုိ ဆက္လက္ေလ့လာႏုိင္လိမ့္္မည္။
၃.၁ The Binary concept
Binary concept သည္ အုိင္ဒီယာအသစ္တစ္ခု မဟုတ္ပါ။ Binary concept ကုိ ေရွးယခင္ကတည္းက စတင္သုံးစဲြခဲ့ၾကသည္။ ဥပမာ-မီးလုံး (သုိ့) မီးေခ်ာင္း(Light)သည္ ပြင့္ (ON) ေနႏုိင္သည္။ ပိတ္ (OFF) ေနႏိုင္သည္။ ခလုပ္(switch) သည္ Open ျဖစ္ ေနႏိုင္သည္။ Close ျဖစ္ေနႏုိင္သည္။ ေမာ္တာ (motor) တစ္လုံးသည္ေမာင္း(running) ေနႏုိင္သည္။ ရပ္(stop) ေနႏုိင္သည္။ Digital System မ်ားတြင္ အေျခအေန ၂ မ်ိဳး(two state condition) သာရိွႏို္င္သည္။ signal ရိွျခင္း (Signal activated) (သုိ႔) မရိွျခင္း (not activated)၊ high (သို႔) Low ၊ ON (သို႔) OFF ၊ Open (သုိ႔) Close စသည့္တုိ႔ကဲ့သုိ႔ အေျခအေန ၂ မ်ိဳးအနက္မွ တစ္ခ်ိန္တြင္ တစ္မ်ိဳးသာျဖစ္ေနႏုိင္သည္။ ထုိ Two State concept (Binary concept) သည္ Decision မ်ားခ်ရန္ အတြက္ အေျခခံျဖစ္သည္။ အခန္း ၂ တြင္ေဖာ္ျပထား သည္ Binary Number System ၏သေဘာမ်ားကုိ အေျခခံသည္။ Binary Number System (သုိ႔) Binary concept သည္ PLC မ်ား၏ function Block မ်ားျပဳလုပ္ရန္ ႏွင့္ Digital Computer မ်ား၏ အေျခခံ(fundamental) သေဘာတရားမ်ား ျဖစ္သည္။
ဤစာအုပ္တြင္ Binary 1 သည္ Signal ရိွျခင္းကုိ ဆုိလုိသည္။ Binary 0 သည္ Signal မရိွျခင္း (absence of signal) ကုိရည္ညႊန္းသည္။ Digital System မ်ားတြင္ ဤအေျခအေန ၂ မ်ိဳး(two state) ကုိ မတူညီသည့္ Voltage Level ၂ ခုျဖင့္ ေဖာ္ျပသည္။ +V volt ႏွင့္ 0V volt တုိ႔ကုိ Table 3-1 တြင္ ေဖာ္ျပထားသည္။ Volt တစ္ခုသည္ တျခား Volt တစ္ခုထက္ အေပါင္းဓါတ္အား (သို႔) အဖုိဓါတ္အား (more positive) ပုိမ်ားသည္။ တစ္ခါတရံ Binary 1 (သို႔) Logic 1 ကုိ TRUE ၊ ON ၊ HIGH စသည္ အဓိပၸါယ္မ်ား အျဖစ္ ရည္ညႊန္းေျပာဆုိၿပီး Binary 0 (သို႔) Logic 0 ကုိ FALSE ၊ OFF ၊ LOW စသည့္ အဓိပၸါယ္မ်ား အျဖစ္ရည္ညႊန္း ေျပာဆုိသည္။
Click this bar to view the full image. |
၃.၂ Logic Function
Table 3-1 တြင္ေဖာ္ျပထားသည့္ more Positive Voltage ကုိ Logic 1 အျဖစ္သတ္မွတ္သည္။ ပုိနည္းသည့္ (Less positive voltage)ကုိ Logic 0 အျဖစ္သတ္မွတ္ထားသည္။ မိမိႏွစ္သက္သလုိ အဆင္ေျပသလုိ ေရြးခ်ယ္သတ္မွတ္ထားျခင္း ျဖစ္သည္။
Table 3-2 တြင္ Logic 0 ကုိ positive voltage level အျဖစ္ ရည္ညႊန္းသတ္မွတ္သည္။ Occurrence of event တစ္ခုရိွျခင္းကုိ Logic 0 ျဖင့္သတ္မွတ္သည္။ Non Occurrence of event ကုိ Logic 1 ျဖင့္သတ္မွတ္သည္။ Less positive voltage level ျဖင့္သတ္မွတ္သည္။ Table 3-1 မွ Positive Logic သည္ အသုံးျပဳေနက်ပုံစံ (conventional) မ်ိဳးျဖစ္သည္။ သုိ့ေသာ္ Negative logic သည္ application မ်ားအတြက္ အဆင္ေျပ ေစသည့္ (convenient) နည္းမ်ိဳးျဖစ္သည္။
Binary concept သည္ physical quantities (Binary variables) မ်ား အေျခအေန ၂ မ်ိုဳး (two state) ကုိ 0 ႏွင့္ 1 ျဖင့္ေဖာ္သည္။ အေျခအေန ၂ မ်ိဳးအနက္ တစ္ခ်ိန္၌ အေျခအေနတစ္မ်ိဳးသာျဖစ္ႏုိင္သည္။ ၂ခုထက္ပုိသည့္ Binary variable မ်ားေပါင္းစပ္ၿပီး ရရိွသည့္ရလာဒ္ကုိ True 1 (သုိ႔) False 0 အေျခအေန တစ္မ်ိဳး မ်ိဳးျဖင့္ေဖာ္ျပပုံ ဆက္လက္ေလ့လာမည္။ PLC မ်ားသည္ logical statement မ်ားကုိ အေျခခံ၍ ဆုံးျဖတ္ခ်က္မ်ားခ်မွတ္ (make decision) ၾကသည္။ PLC မ်ားသည္ Digital equipment မ်ား ျဖစ္ၾကေသာေၾကာင့္ AND ၊ OR ႏွင့္ NOT စသည့္ အေျခခံ (fundamental) Logic function ၃ မ်ိဳးကုိ အေျခခံ၍ Operation မ်ားျပဳလုပ္ၾကသည္။ ထုိ function မ်ားေပါင္းစပ္ၿပီး Binary Variable မ်ားကုိ Statement အျဖစ္တည္ေဆာက္ၾကသည္။
Function တုိင္းတြင္ စည္းကမ္းခ်က္ (rule) မ်ားရိွၾကသည္။ ထုိစည္းကမ္းခ်က္ (rule) မ်ားအရ ရလာဒ္ (result) ကိုထုတ္ေပးသည္။ ဆုံးျဖတ္ေပးသည္။ ကုိ္ယ္ပုိင္သေကၤတ (Symbol) မ်ားရိွၾကသည္။ နားလည္မႈရွင္းလင္းေစရန္အတြက္ ရလာဒ္ (result of statement) ကုိ output ဟုသတ္မွတ္ ေခၚဆုိသည္။ output ကို အဂၤလိပ္အကၡရာ (Y) ၿဖင့္သတ္မွတ္ေဖာ္ၿပသည္။ Statement မ်ား၏ အေျခအေန(Condition) မ်ားကုိ input (A ႏွင့္ B) မ်ားဟု သတ္မွတ္သည္။ input ႏွင့္ output ၂ ခုစလုံးကုိ အေျခအေန ၂ မ်ိဳး (two state variable) ျဖင့္ေဖာ္ျပႏုိင္သည္။
၃.၂.၁ “AND” Function
ပုံ 3-1 သည္ AND gate တစ္ခု၏ သေကၤတ (Symbol) ျဖစ္သည္။ AND function ကုိပုံျဖင့္ ေဖာ္ျပထားျခင္းျဖစ္သည္။ Input မ်ားအားလုံး True (1) ျဖစ္မွသာ AND output သည္ True (1) ျဖစ္သည္။
The AND output is True (1) only if all inputs are True (1).
ဥပမာ - ၃-၁
Input ၂ ခုျဖစ္သည့္ Push Button 1 (BP1) ႏွင့္ Push Button 2 (BP2) ႏွစ္ခုတုိ႔ တစ္ၿပိဳင္ နက္တည္း ဖိ (Press) မွသာလွ်င္ (ON ျဖစ္မွသာ) Alarm Horn မွအသံျမည္ေစရန္အတြက္ Logic gate ၊ truth Table ႏွင့္ Electric Circuit ၊ Ladder Diagram (Circuit ) မ်ားျဖင့္ ေဖာ္ျပေပးပါ။
၃.၂.၂ The “OR” Function
ပုံ 3-3 သည္ OR gate တစ္ခုကုိ သေကၤတ (Symbol) ျဖင့္ေဖာ္ျပထားသည္။ OR function ကုိ ပုံျဖင့္ ေဖာ္ျပထားျခင္းျဖစ္သည္။
The OR output is True (1) if on or more inputs are True (1).
OR gate ၏ input မ်ားအားလုံးအနက္မွ အနည္းဆုံး input ၁ ခု True ျဖစ္လွ်င္ output သည္ True (1 ) ျဖစ္သည္။
AND function (AND Gate) ႏွင့္ OR function (OR Gate ) တုိ႔တြင္ input ေပါင္းမ်ားစြာရိွႏုိင္ ေသာ္လည္း output ၁ ခုသာရိွမည္။ ပုံ 3-4 တြင္ OR function ၏ True Table ကုိ ေဖာ္ျပထားသည္။ input မ်ားအားလုံး၏ ျဖစ္ႏုိင္သည့္ Combination ကုိအေျခခံ၍ output Y ကုိထုတ္ေပးထားသည္။
ဥပမာ ၃-၂
Input ၂ ခုျဖစ္သည္ Push Button (BP1) ႏွင့္ Push Button (BP2) တုိ႔အနက္ မည္သည့္ Push Button တစ္ခုခု ႏွိပ္လွ်င္ (ON ၿဖစ္လွ်င္) Alarm Horn အသံထြက္ေစမည့္ Logic Gate ၊ true tableႏွင့္ Circuit တို႔ေရးဆဲြေဖာ္ျပပါ။
Solution
၃.၂.၃ The “NOT” function
ပုံ 3-5 NOT function ကုိ သေကၤတ (Symbol) ျဖင့္ေဖာ္ျပထားသည္။ NOT function ၏ input မွာ FALSE (0) ျဖစ္လွ်င္ output သည္TRUE (1) ျဖစ္သည္။ အျပန္အလွန္အားျဖင့္ input မွာ True (1) ျဖစ္လွ်င္ output သည္ FALSE (0) ျဖစ္သည္။ NOT Gate ၏ Operation မွာ input ၏ state ကုိေျပာင္းျပန္(inverse) လုပ္ေပးရန္ ျဖစ္သည္။ ထုိ႔ေၾကာင့္ NOT Gate ကုိ inverter ဟုလည္းေခၚသည္။
တျခားေသာ AND function ႏွင့္ OR function မ်ားႏွင့္မတူသည့္အခ်က္မွာ NOT function တြင္ input တစ္ခုတည္း သာပါရိွျခင္းျဖစ္သည္။ လက္ခံႏုိင္ျခင္းျဖစ္သည္။ NOT function ကုိ တစ္ခုတည္း အသုံးျပဳေလ့မရိွေပ။ AND gate (သုိ႔) OR gate တုိ႔ျဖင့္တြဲ၍ အသုံးျပဳေလ့ရိွသည္။
ပုံ ၃-၆ တြင္ NOT Operation ႏွင့္ ယင္း၏ true table ကုိေဖာ္ျပထားသည္။ A အေပၚတြင္ဘား ( Bar) ကေလးတင္၍ Ᾱ အျဖစ္ေဖာ္ျပျခင္းသည္ NOT A ကုိ ရည္ညႊန္းသည္။
NOT function အလြယ္တကူသိျမင္ႏုိင္ရန္(Visualize လုပ္ရန္) ခဲယဥ္းသည္။ AND ႏွင္ OR တို႔၏ function ကုိ သိျမင္ႏုိင္ရန္(Visualize လုပ္ရန္) လြယ္သည္။ သိလြယ္၊ျမင္လြယ္သည္။ သုိ႔ေသာ္ NOT function သည္ အလြန္ရိုးရွင္းၿပီး၊ အလြန္အသုံးဝင္ၾကသည္။
အစပုိင္းတြင္ ရွင္းျပထားသည့္အခ်က္ (၃) ခ်က္
(၁) 1 သုိ႔ 0 မိမိႏွစ္သက္သည့္အတုိင္းေရြးခ်ယ္ပါ။
(၂) logic 1 သည္ ပုံမွန္အားျဖင့္(မ်ားေသာအားျဖင့္) TRUE ၊ HIGH ၊ ON ျဖစ္သည္။ logic 1 သည္ Device တစ္မ်ိဳးမ်ိဳးကုိ Activate လုပ္ရန္ရည္ရြယ္သည္။ ဥပမာ- Output Y=1 ျဖစ္လွ်င္ ေမာ္တာကုိ ေမာင္းရန္ျဖစ္သည္။
(၃) logic 0 သည္ ပုံမွန္အားျဖင့္ (မ်ားေသာအားျဖင့္) FALSE ၊ LOW ၊ OFF ျဖစ္သည္။ logic 0 သည္ device တစ္မ်ိဳးမ်ိဳးကုိ deactivate လုပ္ရန္ျဖစ္သည္။
ဥပမာ- Output Y =0 ျဖစ္လွ်င္ ေမာ္တာကုိရပ္ရန္ျဖစ္သည္။ အကယ္၍ ထုိအေျခအေနကုိ ေျပာင္းလုိလွ်င္ NOT function ကုိသုံးသည္။ ဥပမာ- logic 0 သည္ Device တစ္မ်ိဳးမ်ိဳး Active လုပ္လုိလွ်င္ NOT function ကုိ အသုံးျပဳသည္။ ဥပမာ- output Y=0 ျဖစ္လွ်င္ ေမာ္တာကုိေမာင္းရန္ျဖစ္သည္။ NOT function သည္အသုံးဝင္ သည္။
(က) NOT ကုိအသုံးျပဳသည္။ logic 0 (low condition) ျဖစ္လွ်င္ Device တစ္မ်ိဳးမ်ိဳးကုိ Active လုပ္ရန္
(ခ) Logic 1 (High Condition) ျဖစ္လွ်င္ Device တစ္မ်ိဳးမ်ိဳးကုိ deactivate လုပ္ရန္အတြက္ NOT ကုိအသုံးျပဳသည္။
ေအာက္တြင္ NOT function ကုိသုံးထားသည့္ ဥပမာ ၂ ခုကုိေဖာ္ျပထားသည္။
NOT function ကုိ AND ႏွင့္ OR function မ်ားျဖင့္အသုံးျပဳေလ့ရိွၾကေသာ္လည္း ပထမဥပမာတြင္ NOT function တစ္ခုတည္းကုိ သာသုံးထားသည္။
No comments:
Post a Comment
အခုလို လာေရာက္အားေပးၾကတာ အထူးပဲ ၀မ္းသာ ပီတိျဖစ္ရပါတယ္ဗ်ား ... ။ေက်းဇူးအထူးတင္ပါတယ္။
ေက်ာ္ထက္၀င္း နည္းပညာ (ဘားအံ)
www.kyawhtetwin.blogspot.com