Friday, 31 October 2008

LDU ၏ေနာက္ဆက္တြဲ

LDU နဲ႔ ပါတ္သတ္ၿပီး ေျပာစရာေလးေတြ က်န္ေနလို႔ ဆက္ေရးတာပါ။ ပံုက LDU Wiring Diagram ပါ။ ေျပာမွာက Weigher နဲ႔ LDU ခ်ိတ္မည့္ ကိစၥပါ။ ကၽြန္ေတာ့္ အရင္သံုးထားတဲ့ LDU က 4 wire ပဲခ်ိတ္စရာ လိုပါတယ္။ Exc+, Exc-, Sig+, Sig- ေတြေပါ့။ ေနာက္အသစ္က 6 wire ခ်ိတ္ရပါတယ္။ အမွန္က 6 wire ခ်ိတ္ရတာေပါ့။ ဘာေၾကာင့္ Sen+, Sen- ပိုပါလည္းဆိုေတာ့ Compensate လုပ္ဖို႔အတြက္ပါ။ ပထမ LDU ရဲ့ Firmware မွာ Sen+/ - ကို checiking လုပ္ထားတာမပါပါဘူး။ ေနာက္ LDU က်ေတာ့မပါမျဖစ္ေအာင္ စစ္ထားတဲ့အတြက္ Sen (2 wire) ထည့္ကို ထည့္ေပးရပါတယ္။ တစ္ကယ္လို႔ Weigher မွာ 4 wire ပဲထြက္ရင္ေတာ့ Exc+ နဲ႔ - ကို loop ျပန္ပါတ္ ထည့္ေပးလိုက္ (short) ပါ။

ေအာက္ဆံုးက ေနာက္တစ္ပံုက LDU အေဟာင္းနဲ႔ ခ်ိတ္ထားတဲ့ 4 wire ပံုပါ။ ညာဘက္က ႀကိဳးေတြက Power နဲ႔ Rs-232C ႀကိဳးေတြပါ။

Thursday, 23 October 2008

Load Cell Degitizing Unit (LDU 78.1) for Weighting Machine

ဒီပစၥည္းက Weighting Machine ေတြမွာပဲ သံုးတဲ့ပစၥည္းပါ။ ၁ x ၂ လက္မ ပတ္လည္ပဲ ရွိပါတယ္။ သူရဲ႕လုပ္ငန္းကေတာ့ Weighter နဲ႔ PLC or MCU ၾကားမွာ အေလးခ်ိန္ကို တြက္ခ်က္ ေဖၚျပေပးတဲ့ အလုပ္ပါပဲ။ High Precision Measuremment Tool တစ္ခုပါ။ ကၽြန္ေတာ္သံုးတဲ့ Load Cell Unit က FLINTEC/ SOEMER ပါ။ Germany (EU) က ထုတ္ပါတယ္။ သူက RS-485 Communication ကိုပဲ လုပ္ေပးတာပါ။ ဒါေပမယ့္ MCU နဲ႔ သံုးတဲ့အခါမွာ RS-232 ကိုပဲ အလုပ္လုပ္တဲ့အတြက္ converter (adaptor) တစ္ခုထပ္ထည့္ေပးရပါတယ္။ အဲဒီ Converter က ပံုမွာျပထားတဲ့ အစိမ္းေရာင္ ေအာက္ခံေလးပါ။ ပံုကိုၾကည့္မယ္ဆိုရင္ ဘယ္ဘက္ပိုင္းက Weighter နဲ႔ ဆက္ရၿပီးေတာ့ ညာဘက္ပိုင္းက Power supply, MCU/ PLC ေတြနဲ႔ ဆက္ရပါတယ္။ သူ႔မွာ Firmware သပ္သပ္ပါတဲ့အတြက္ command level communication လည္းလုပ္လို႔ရပါတယ္။ PC's HyperTerminal ဒါမွမဟုတ္ သူ႔ရဲ႕သက္ဆိုင္ရာ software (DOP program) ကိုသံုးရင္လည္း ရပါတယ္။

Monday, 20 October 2008

PIC18F4420 Timer Module (8 bit/ 16 bit)

Timer ေတြနဲ႔ပါတ္သတ္တဲ့ ပို႔စ္ေတြေတာ့ တင္ဘူးပါတယ္။ ခုေရးမွာက Datasheet ေတြမွာပါတဲ့ Block Diagram ကိုဖတ္ၿပီး Timer ရဲ႕အလုပ္လုပ္ပံုကို ေလ့လာတဲ့ သေဘာပါ။ ေအာက္မွာ ကၽြန္ေတာ္ျပထားတာက 8 bit နဲ႔ 16 bit Timer ရဲ႕ Diagram ေတြပါ။
ထံုးစံအတိုင္း ဘယ္ကေန ညာကို စဖတ္မယ္ဆိုရင္ -
၁။ Timer ရဲ႕ speed က Oscillator (External) ရဲ႕ ၄ ပံုတစ္ပံု ရွိပါတယ္။ အဲဒါကို Timer interrupt နဲ႔ တစ္ၿပိဳင္နက္ ON ပါတယ္။ Interrupt က Pin (Hardware) ဒါမွမဟုတ္ Software interrupt ရွိပါမယ္။
၂။ Prescaler သံုးရင္ Prescaler အတြက္ Ratio ထည့္တြက္ပါတယ္။
၃။ Internal clock က Timer interval အတြက္ သံုးပါတယ္။ သံုးတဲ့ Register ကေတာ့ datasheet ကေန ထပ္ေလ့လာရပါတယ္။
၄။ TM0L က Tick တန္ဖိုးတစ္ခုပါ။ Tick ေပါင္း 00 FF (256) အထိရပါတယ္။ 8 bit ျဖစ္ေနလို႔ပါ။ TM0H မွာၾကည့္လိုက္ရင္ 16 bit ရတဲ့အတြက္ FF FF (65535) tick အထိ ထည့္ေပးလို႔ရပါတယ္။ ပိုၿပီး interval ရွည္လို႔ရတဲ့ သေဘာေပါ့။
ဒါက PIC18F4420 MCU အတြက္သံုးတဲ့ Timer Routine ပါ။
အထက္က အဆင့္ေတြအတိုင္း ေရးရင္ Timer sub routine ကိုရမွာပါ။ ေရးတာကေတာ့ compiler ေပၚမူတည္ၿပီး လြယ္တာ ခက္တာေတာ့ ရွိပါလိမ့္မယ္။