PIC16F877A İle Endüstriyel Uygulama Denemesi

Başlatan eemuratozan, 05 Ağustos 2015, 14:29:08

eemuratozan

         Arkadaşlar merhaba,

         Çates Elektrik Üretim A.Ş.'de eski adıyla Çatalağzı Termik Santralinde çalışan Ölçü Kontrol ve Otomasyon Mühendisiyim. Santralimize yeni bir kamyon kantarı kurduk. Bu kantar için de yeni bir kömür numune alma sistemi kuruldu. Sistem çok basit ve hidroliktir. Kumandası ise basit bir joystick ile yapılmaktadır. Kumanda üzerindeki butonlar şunlardır: Yukarı, Aşağı, Bom İleri, Bom Geri, Sağa Dön, Sola Dön, Helezon Çalıştır, Helezonu Ters Yönde Çalıştır, Fan ve Start/Stop... Tüm butonlar direk 220 V ile çalışmaktadır. Yani Röle Bile koyulmamış. Biz de bu sistemi geliştirmek istiyoruz.
         
         Dolayısıyla ilk düşündüğümüz biraz fantazi gibi görünebilir ama picle röle çektirip numune alma işlemini tamamen otomatik gerçekleştirmek. Bunun için zaman gecikmesi koyarak kod yazdım.

         Sizlerden istediğim şey sizin çözümleriniz nelerdir? Neyi doğru neyi yanlış yaptığım hakkında fikirleriniz almak isterim.

#include "C:\Users\MuratOzanUZUNTAŞ\Desktop\CCS C Denemeleri\Numune Alma Sondası 2.h"
#use delay(clock=4000000)         // osilatör hızı 4 MHz olarak ayarlandı
#define use_portb_lcd TRUE        // b portu LCD için ayrıldı
#include <LCD.C>
#use fast_io(b)                   // b portu giriş-çıkış olarak kullanılacak
#use fast_io(c)                   // c portu giriş-çıkış olarak kullanılacak
#use fast_io(d)                   // d portu giriş-çıkış olarak kullanılacak



void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   lcd_init();

   // TODO: USER CODE!!


   set_tris_b(0x00);               //
   set_tris_c(0x00);               // b,c,d portları komple çıkış
   set_tris_d(0x00);               //

   output_b(0x00);                 //
   output_c(0x00);                 // Başlangıçta tüm portlar 0 değerinde
   output_d(0x00);                 //

   while(1)
   {

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fNumune islemi\nbasliyor...");

         delay_ms(3000);

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fYukari yonde\nkalkiyor...");
         output_high(pin_c0);
         output_high(pin_d0);
         delay_ms(1500);
         output_low(pin_d0);
         delay_ms(1500);
         output_low(pin_c0);

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fSola donuyor...");
         output_high(pin_d1);
         delay_ms(2000);
         output_low(pin_d1);

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fNumune aliniyor\nHelezon acik...");
         output_high(pin_d2);
         output_high(pin_d3);
         delay_ms(5000);
         output_low(pin_d3);
         output_low(pin_d2);

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fYukari yonde\nkalkiyor...");
         output_high(pin_c0);
         delay_ms(3000);
         output_low(pin_c0);

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fSaga donuyor...");
         output_high(pin_d4);
         delay_ms(2000);
         output_low(pin_d4);

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fNumune bosaliyor\nHelezon kapali...");
         output_high(pin_d5);
         output_high(pin_d6);
         delay_ms(1500);
         output_low(pin_d6);
         delay_ms(1500);
         output_low(pin_d5);

         lcd_gotoxy(1,1);
         printf(lcd_putc,"\fFan calisiyor...\nN. Alma Bitti...");
         output_high(pin_d7);
         delay_ms(1500);
         output_low(pin_d7);
         





         break;



   }






}






I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

Tagli

Zaman gecikmesi kullanmak genelde tehlikeli bir yaklaşımdır. En basit şekliyle bile olsa kapalı çevrim kontrol şart. Örneğin cihazın hareket ederken biz dizi düğmeyi tetikleyerek durması veya bir sonraki harekete geçmesi daha güvenilir olur.
Gökçe Tağlıoğlu

eemuratozan

işin içinde zamanlayıcı ile çıkamazsak sensör ile desteklemeyi düşünüyoruz. çünkü numune alma sondası kamyon kasasından random şekilde numune alacak yani hep aynı noktalardan almayacak. bir de diğer bir çekincem şu eğer sistem aniden durursa tekrar çalıştırdığımda nasıl tepki verecek kaldığı yerden devam etmesini nasıl sağlarım ? ve son olarak picle bu işi yapabilir miyim ?
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

Erol YILMAZ

Bu iş PIC'le de olur daha basit yapılar ile de olur olur (Büyüklerimiz yapmış ?)

PIC16F877, EMC konusunda sıkıntı yaşatabilen bir mcu,
Öncelikle bunu aynı pin yapısında daha güncel olan PIC18F46K22 tavsiye ederim.

24V bobinli kontaktörleri ULN 2003A ile rahatlıkla çektirebilirsiniz.

Mcu'da Analog yada Dijital Girişlerinizi kesinlikle 1 kere bakarak değerlendirmeyin, en az 8 örnek alın.

Programınız hakkında çok şey söyleyemeyeceğim ama while ın içindeki break ın ne iş yaptığını anlayamadım.
direkt break varsa while niye var ?

eemuratozan

break komutu deneme amaçlı koydum bu programın son hali değil sadece temeli diyebilirim çünkü zamanlayıcı ile random numune alma işlemini başaramazsak devreye sensör de girecek onun da verisinin işlenmesi gerekecek yani program daha karmaşık hale gelecek. önerdiğiniz pici kullanmadım ama 24 v ile röle çektirebiliosak onu kullanmayı denerim. ama hala yardımlarınıza ihtiyacım olacak çünkü endüstriyel ve profesyonel bir uygulama olacak bu.
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

Salih


eemuratozan

#6
pic kullanırsam karşılaşacağım sorunlar nelerdir neden plc kullanmam gerek ?

mesaj birleştirme:: 05 Ağustos 2015, 16:32:35

Picle denemeyi düşünüyorum adımları paylaşacağım sizlerle
I&C Engineer in Bereket Enerji Çates Elektrik Üretim A.Ş.

RaMu

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Erol YILMAZ


RaMu

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

mehmet

Alıntı yapılan: Allegro - 06 Ağustos 2015, 09:50:43
138 lira 50 kuruş.
Aç- Bitir reklamindaki gibi olmuş.
"-150 olsun"
"- Yok yok.138 lira 50 kuruş. Kalıyo sonra."
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr


Salih

Alıntı yapılan: eemuratozan - 05 Ağustos 2015, 16:27:43
pic kullanırsam karşılaşacağım sorunlar nelerdir neden plc kullanmam gerek ?

mesaj birleştirme:: 05 Ağustos 2015, 16:32:35

Picle denemeyi düşünüyorum adımları paylaşacağım sizlerle
Plc'ler endüstriyel ortamlara göre hazırlanmış kontrol
Cihazlarıdır.
Eğer seri üretim yapmayacaksanız, çektiğiniz eziyete ve emeğe değmez.

mmuslubas

Naçizane düşüncem bir uygulamada röle varsa pic yerine PLC kullanmanızdır. Edindiğim tecrübeler endüktif uygulamalarda pic herzaman sıkıntı yaratmıştır.

Gökhan BEKEN

@mmuslubas olur mu öyle şey, PLC sanki başka bir teknoloji mi? Eğer sırf bu yüzden PLC kullanmak zorunda hissediyorsanız kendinizi, boşuna üzülmeyin PIC ile yapılabiliyor böyle şeyler. Hadi PIC olmuyor diyelim, başka marka mcu mu kalmadı piyasada?
Özel mesaj okumuyorum, lütfen göndermeyin.