PLC ladder ödevi

Başlatan predator, 23 Nisan 2014, 21:24:18

predator

Arkadaşlar PLC hocam bi ödev verdi işin içinden çıkamadım, ladder diyagramı çizmemiz gerekiyor,karşılaştırma komutları kullanmamız gerekiyormuş, soru şu;

"Artımlı bir enkoderin A kanalı PLC nin I0.0 girişine B kanalı ise I0.1 girişine bağlanmıştır. Enkoder saatin tersine döndürüldüğünde Q0.0 çıkışı aktif olacaktır, saat yönünde döndürüldüğünde ise Q0.1 çıkışı aktif olacaktır. Q0.2 çıkışı ise sadece enkoder herhangi bir yöne dönerken aktif olacaktır. (yani dönme durunca Q0.2 pasif olacak saat yönünde dönerken durduysa Q0.1 aktif kalıcak yada saatin tersine dönerken durduysa Q0.2 aktif kalıcak)"

yardımcı olabileceklere teşekkür ederim.

zerog26

Buyur kardes istedigin islemi yapan lader diagrami zipli dosyada kucuk bi program var onu ac sonrada dosya ac bolumunden ladderr odev dosyasini sev anlatiminida yaptim....

http://s3.dosya.tc/server21/a0ywhS/Desktop.rar.html

icindeki program ile kucuk capta simulasyonda yapabilirsin....

predator


Salih

Alıntı yapılan: zerog26 - 23 Nisan 2014, 23:10:43
Buyur kardes istedigin islemi yapan lader diagrami zipli dosyada kucuk bi program var onu ac sonrada dosya ac bolumunden ladderr odev dosyasini sev anlatiminida yaptim....

http://s3.dosya.tc/server21/a0ywhS/Desktop.rar.html

icindeki program ile kucuk capta simulasyonda yapabilirsin....
Yaptığın programı inceledim. Anladığım kadarıyla arkadaşın istediği gibi çalışmıyor.
Şöyle ki;
Enkoder'ın A ve B çıkışları her iki yönde de pals üretir.
Yön farkı pals ler arasındaki faz farkından bilinebilir.

predator

doğrusu nasıl olacak?

Salih

Alıntı yapılan: predator - 24 Nisan 2014, 20:29:16
doğrusu nasıl olacak?

A ve B girişlerini XOR yap. XOR'un devamında eğer A girişi 1 ise saat yönü kabul et ve Q0.0 ı set et Q0.1'i reset et.
eğer B girişi 1 ise Q0.0'ı reset yap, Q0.1'i set yap.
A girişinin pozitif kenarını M0.0'a ata. ve aynı anda Q0.2'yi set yap
M0.0'ı normalde kapalısını bir timer'a seri bağla.
Timer kontağının normalde açık kontağının çıkışıyla Q0.2'yi reset yap.


predator

pek anlamadım da zamanınız varsa çizebilirseniz çok sevinirim

Salih

Alıntı yapılan: predator - 26 Nisan 2014, 11:55:54
pek anlamadım da zamanınız varsa çizebilirseniz çok sevinirim

PLC S7 200'mü?

zerog26

#8
salih yaptigim ornegi iyi incele arkadasin anlattigina gore A ve B cikislari var saat yonunde donerken ornegin A isimli cikis pini sinyal verirken tersi yonde donerkende B isimli cikis sinyal veriyor... reset yada set islemi yapmana gerek yok merkerler ile halledebilirsin olayi set reset olayina girmek boyle kolay bir odevde kafa karistirir... burda yapilan yalin halde ladder diagrami plc icin herhangi 1 plc olabilir mantiken gosterdim.. tavsiyem elinize 1 adet encoder alin hangi yonde hangi cikis sinyal uretio ona bakin eger dedigin gibiyse encoder salih benim sistem yanlistir ama ben genelleme yaparak A ucunu saatin donme yonunde B ucunu ise saatin ter donme yonunden uretilecek sinyale gore yaptim ve bu uclardan gelen sinyallere gore islem yaptirdim. ;) ortada yanlis olan bisey yok

Salih

Alıntı yapılan: zerog26 - 26 Nisan 2014, 13:22:07
salih yaptigim ornegi iyi incele arkadasin anlattigina gore A ve B cikislari var saat yonunde donerken ornegin A isimli cikis pini sinyal verirken tersi yonde donerkende B isimli cikis sinyal veriyor... reset yada set islemi yapmana gerek yok merkerler ile halledebilirsin olayi set reset olayina girmek boyle kolay bir odevde kafa karistirir... burda yapilan yalin halde ladder diagrami plc icin herhangi 1 plc olabilir mantiken gosterdim.. tavsiyem elinize 1 adet encoder alin hangi yonde hangi cikis sinyal uretio ona bakin eger dedigin gibiyse encoder salih benim sistem yanlistir ama ben genelleme yaparak A ucunu saatin donme yonunde B ucunu ise saatin ter donme yonunden uretilecek sinyale gore yaptim ve bu uclardan gelen sinyallere gore islem yaptirdim. ;) ortada yanlis olan bisey yok
Hiç artırımlı encoder'la çalışma yaptın mı?

zerog26

pardon salih arttirimli encoder kismini kacirmisim ben ozur arkadaslar eywah eywah yanlis bilgilendirme oldu ... ben kendi yaptigim bi kac projede ucuz olmasi acisindan encoder degilde karsilikli yerlestirilmis ir alici ve verici sistemi kullandim bahsettigim tipte yapmistim onlarida kucuk 1 12f serisi islemci ile donus yonune gore bilgi alip burdan isliyordum yon bilgisini, salih arkadasin dedigi dogru ... ;) deneysel amacli ogrenmek icin artirimsal encoder kullandim ama projelerde hic kullanmadim ....cok zaman once tekstil atolyesinin birinide kumas makinasi motorunun arizalanan sensoru bulunamadigindan dolayi bolyle 1 cozum uretmistik kendi cozumum ile karistirdim olayi tekrar ozur...daha sonra gelen sensor motor icin ben ne kadar sensor desemde encoder 3 uclu ve motorun yonune gore cikis veriyordu bu yuzden o sekilde bi cozum yazdim ben arttirimsal bolumunu kacirmisim tekrar ozur...

predator

Alıntı yapılan: salih - 26 Nisan 2014, 12:04:00
PLC S7 200'mü?
evet aynen öyle, ödev teslimim yarın, bugün yardımcı olabilirseniz inanılmaz makbule geçer

Salih

Alıntı yapılan: predator - 29 Nisan 2014, 10:41:40
evet aynen öyle, ödev teslimim yarın, bugün yardımcı olabilirseniz inanılmaz makbule geçer

Programı yapmaya başla yardımcı olayım.
Önce iki kontakla XOR devresi yapmaya çalış.
Oradan devam ederiz.

atrox

kendi üyeliğim olmadığı için arkadaşımın üyeliğinden soruyu sormuştum. söylediğiniz şeylerden bu kadar gelebildim onuda doğru mu geldim yanlış mı geldim bilmiyorum

Alıntı yapılan: salih - 29 Nisan 2014, 10:45:34
Programı yapmaya başla yardımcı olayım.
Önce iki kontakla XOR devresi yapmaya çalış.
Oradan devam ederiz.





Salih

#14
Alıntı yapılan: atrox - 29 Nisan 2014, 18:47:56
kendi üyeliğim olmadığı için arkadaşımın üyeliğinden soruyu sormuştum. söylediğiniz şeylerden bu kadar gelebildim onuda doğru mu geldim yanlış mı geldim bilmiyorum





Tmm. İlk kısmı olmuş. Şimdi diğer tarafı yapabilirsin.

mesaj birleştirme:: 29 Nisan 2014, 20:07:31

@atrox  özür dilerim.
Aceleye gelmişti.
Yanlış yapmışım.

Denediğim çözümü söylüyorum.
Elimde S7-200 programı olmadığı için yazılı tarif ediyorum.

A girişinin pozitif kenarıyla network'ü başlat. Devamında B girişinin normalde kapalı kontağı ile Q0 set, Q1 reset yap.
bu çıkışa paralel B girişinin normalde açık kontağı ile Q0 reset, Q1 set yap.

Bu problemi çözmek için yazdığım CCS programını ve isis şemasını veriyorum.
Bu program sayesinde pic ve c programı yardımıyla encoder lı bir motorun devir yönünü ve dönüp dönmediğini
tespit edebiliyoruz.

Program
#include <16F877.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer. Watch Dog Timer kullanılmıyor
#FUSES HS                       //Normal hızlı kristal osilatör
#FUSES PUT                      //Power Up Timer. Pic'e besleme verilince zaman gecikmesi var.
#FUSES NOPROTECT                //Code not protected from reading. Kod koruma yok
#FUSES NOBROWNOUT               //No brownout reset. Brownout reset devre dışı.
#FUSES NOLVP                    //No low voltage programing, B3(PIC16) or B5(PIC18) used for I/O. 
                                //Düşük gerilimle programlama devre dışı.
#FUSES NOCPD                    //No EE protection. EEprom koruma yok. 
#FUSES NOWRT                    //Program memory not write protected. Program belleği yazma koruması yok.
#FUSES NODEBUG                  //No Debug mode for ICD. Debug yok.

#use delay(clock=20000000)       // 4 MHz osilatör kullanılacak
#Define A      (input(PIN_B0))
#Define B      (input(Pin_B1))
#Define L0On   Output_High(PIN_C0)
#Define L0Off  Output_Low(PIN_C0)
#Define L1On   Output_High(PIN_C1)
#Define L1Off  Output_Low(PIN_C1)
#Define L2On   Output_High(PIN_C2)
#Define L2Off  Output_Low(PIN_C2)
int16 say=0;
#INT_EXT
void kesme()
{
say =0;
l2on;
if (B) {l0off;l1on;}
         else
       {l0on;l1off;}  
}
void main()
{   
   setup_adc_ports(NO_ANALOGS);              // Anolog giriş kullanılmayacak
   setup_adc(ADC_OFF);                       // ADC kapalı 
   setup_psp(PSP_DISABLED);                  // PSP(Parallel Slave Port)  devre dışı
   setup_spi(SPI_SS_DISABLED);               // (Synchronous Serial Port (SSP) with SPI  (Master mode) and I2C  (Master/Slave)
                                             //  SPI devre dışı
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);  // Timer0 ön ayarı
   setup_timer_1(T1_DISABLED);               // Timer1 devre dışı
   setup_timer_2(T2_DISABLED,0,1);           // Timer2 devre dışı
   enable_interrupts( INT_EXT_L2H );
   enable_interrupts( Global );
   l0off;
   l1off;
   l2off;
   
while(True)
{
delay_ms(1);
if (say++ > 500) l2off;
}
}


Denemek için şema.