Bir OMRON Motor Sürücü Onarımı Hikayesi

Written by bbuyukguzel. Posted in Elektronik, Genel

Omron_v7

7.5 kW gücündeki OMRON CIMR V7 serisi motor sürücüsü start edildikten sonra motor hızlanmaya başladığı anda overheat hatası vererek duruyordu. Sürücü üzerindeki her iki fanında çalışır vaziyette olduğu ve sürücü soğuk durumda iken de aynı hatayı verdiği görüldü.

Elektronik atölyesinde düşük güçlü bir motor bağlandığında sürücü hatasız olarak çalışıyordu. Hatanın motorun yüklenmeye başladığı zaman ortaya çıktığı düşünülerek 11 kW’ lık bir motor bağlanarak denendiği zaman sürücünün motorun ivmelenmeye başladığı anda hataya geçtiğini görüldü.

Sürücünün kapağını açıp devreyi incelediğim zaman sıcaklığın, IGBT modülü içerisindeki sıcaklık sensoru tarafından algılandığını ve sıcaklık değerinin LM339 dörtlü karşılaştırıcının üçüncü bölümü tarafından bir referansla karşılaştırılarak kontrol kartına gönderildiğini belirledim.

Hatanın ivmelenme esnasında ortaya çıkması nedeniyle beslemelerden birisinde gürültülenme olabileceğini düşünerek (biraz tecrübenin birazda tembelliğin etkisi ile) hemen SMPS bölümündeki 5V besleme ve referans gerilimi üretecinin beslemesi ile ilgili olan elektrolitik kapasiteleri değiştirdim ama sonuç değişmedi.

Osiloskop ile yaptığım ölçüm sonucunda hata esnasında sıcaklık sensorunun bağlı olduğu üçüncü karşılaştırıcının durum değiştirmediğini ancak kontrol kartına giden overheat hatası ucunun durum değiştirdiğini gözlendim.

Yaptığım inceleme sonucunda bu durumun üçüncü ve dördünce karşılaştırıcının çıkışlarının “veya” yapısı oluşturmak için hardwired olarak bağlanması ve dördüncü karşılaştırıcının fan konnektörlerinin yakınında bulunan optocoupler (OC) dan gelen bilgi doğrultusunda durum değiştirdiğini dolayısıyla hatanın bu OC’nin giriş tarafından kaynaklandığını tespit ettim.

OC’nin giriş uçlarının DC bara kapasitelerinin şarj akımlarını sınırlayan ve kapasite gerilimi belirli bir değerin üzerine çıktıktan sonra paralelindeki röle kontağı tarafından kısa devre edilen seri bağlı iki adet 4 ohm luk dirençlerden birisine dirençler ve diyottan oluşan bir sınırlama devresi aracılığıyla paralel olarak bağlandığını,
Sürücüye gerilim verildikten hemen sonra şarj sınırlama dirençlerini kısa devre eden rolenin çektiğini, voltmetre ile yaptığım ölçümde toplamda 8 ohm olan sınırlama dirençlerinin üzerindeki gerilimin motorun hızlanması ile paralel olarak arttığını ve yaklaşık 3 volta ulaştığı anda overheat hatasının tetiklendiğini gördüm.

Role kontağı kapalı iken sınırlama dirençleri üzerinde gerilim meydana gelmesi kontakların kapatmadığını düşündürdüğünden, role kapağını açarak ommetre ile yaptığım ölçümde role kontakların kapalı konumda tamamen izole olduğunu tespit ettim ve overheat hatası ile mantıklı bir bağlantı kuramasam da hatanın roleden kaynaklandığı sonucuna vardım.

Geçici olarak role kontaklarını kontak temizleyici ile temizledikten sonra sürücüyü start ettiğimde motorun maksimum devrine ulaştığını ve sürücünün hata vermediğini, elektronik atölyesindeki aynı hatayı veren aynı modeldeki diğer bir sürücününde rölesinin aynı şekilde arızalı olduğunu ve kontaklarını geçici olarak temizledikten sonra onunda hatasız şekilde çalıştığını gördüm.

Sonuç olarak arızayı tespit edip gidersem de DC bara kapasitelerinin şarj sınırlama dirençleri ile overheat hatası arasındaki bağlantı benim için gizemini korumakta.

Şimdilik OMRON tasarımcılarının kontrol kartı ile power kartı arasında boş bağlantı kalmayınca böyle basit bir çözüm bulduklarını düşünüyorum.

CCS PCWHD Derleyicide Timer Interrupt Sorunu

Written by bbuyukguzel. Posted in Elektronik, Genel

DSPIC30F4011 ve CCS PCWHD derleyicisini kullanarak gerçekleştireceğim bir projede TIMER1 kesmesi(interrupt) ile  belirli bir periyotta ADC değerlerini okumam gerekti. Son derece basit bir zamanlayıcı uygulaması olan bu iş için aşağıdaki PIC lerle uğraşanların çok aşina oldukları basit kodu yazdım.

TIMER1 setup:

setup_timer1(TMR_INTERNAL | TMR_DIV_BY_64);  // Timer1 ayarları yapılıyor
set_timer1(0x001);   // TMR1 değeri belirleniyor
enable_interrupts(INT_timer1);  // int_timer1 kesmesini aktif yapar
enable_interrupts(INTR_GLOBAL);     // Aktif edilen kesmelere izin ver

TIMER1 kesme servisi:

#int_timer1  // Timer1 kesmesi

void  timer1_kesme ()
 {
int i;
set_tris_D(0x00);
   i=i+1;
   if (i==5)
     output_high(pin_D0);
   if (i==10)
   {
      	output_low(pin_D0);
     	 i=0;
   }
   set_adc_channel(0);
   current1=read_adc();
   set_adc_channel(1);
   voltage1=read_adc();

if (duty<=0x3e0)
duty=0x015e; //d=%35
set_motor_pwm_duty(1,1,(duty));
set_timer1(0x0001); // TMR1 değeri yükleniyor 

}

PIC Mikrodenetleyicilerin Seri Programlanmaları

Written by bbuyukguzel. Posted in Elektronik

PIC 16FXXX Mikrodenetleyicilerinin Devre Üzerinde Seri Programlanmaları

(In-Circuit Serial Programmming-ICSP)

ICSP,  mikrodenetleyilerin uygulama devresi üzerinde iken programlanmalarına imkan sağlar.Bu özellikle ardışıl değişiklik ve test işlemlerinin gerekli olduğu geliştirme çalışmalarında önemli bir fayda sağlamaktır.

ICSP, PIC’i sadece soketten sokete taşıma esnasında bacaklarının eğilmesi yada elektrostatik deşaj tehlikesinden korumakla kalmayıp zaman tasarrufuda sağlamaktadır.

ICSP yi kullanabilmek için ne uygulama devresi programlama işaretlerini bozmalı nede programlama işaretleri uygulama devresini etkilemeleridir.

Temel programlama koşulları:

 

  1. MCLR bacağına uygulanan Vpp programlama gerilimi 0 ve 13 Volt arasında birkaç mikrosaniye içerinde anahtarlanmalıdır.
  2. Clock ve Data işaretleri rail to-rail seviyelerine birkaç mikrosaniye içerisinde ulaşmalıdır.
  3. Bazı PIC ler PGM işareti için bir bacağı kullanılrlar (RB3 yada RB4). Düşük Gerilimli Programlama – Low Voltage Programming (LVP) için bu bacağın düşük seviyede tutulması gerekir.
  4. Bazı PIC lerde Vpp nin besleme gerilimi Vdd den daha önce uygulanması gerekebilir. Bu durumlarda Vdd programlama modülü terafından uygulanmalıdır.

İlk iki şartın yerine getirilmesinin en basit yolu bu ICSP için gereken bacakların uygulama devresinde kullanılmamasıdır.