Beyin Cimlastiği - Gereksiz bir tasarım sorusu

Başlatan Gurkan-Demirbas, 24 Nisan 2008, 14:46:51

Gurkan-Demirbas

Merhabalar;
Geçen gün bir arkadaşım ile konuşurken; bir soru sordu. Soru şöyle

Normalde açık tek kontaklı bir buton var (TEK KONTAKLI)
Ve de bir Motor.
Butona basıldığı anda motor çalışmaya başlayacak ve aynı butona ikinci kez basıldığında duracak.
Akıllı röle felan kullanamayız; sadece normal kontaktör ve/veya röle kullanabiliriz. Kullanabileceğimiz kontaktör veya röle sayısının sınırı yok, istediğimiz kadar kullanabiliriz.


Ancak bu tasarımı Durum diagramı, durum tablosu, Karnaugh diagramları boolen fonksiyonları ile gerçekleyip Ladder diagramına ulaşmamız gerekiyor.

Tasarımın nasıl olması gerektiğini bir örnek ile anlatayim; 2 buton ve 1 motordan oluşacak sistemin tasarımını şu şekilde olur. X butonuna basıldığında motor çalışacak, ancak Y butonuna basıldığında motor duracak. Durum diagramından Ladder diagramna kadar güzelce tasarlanmış. A durumu Motor off, B durumu ise Motor ON
http://www.resimekle.gen.tr/view/1944    

Önce soru bana baya basit gibi geldi ama durum diagramlarından gidemedim. Deneme yanılma yolu direk ladder diagramına ulaştım ama kafayı resmen yedim. Bulduğum ladder diagramı şöyledir.
http://www.resimekle.gen.tr/view/1947

Ladder diagramına ulaştıktan sonra geriye dönük durum diagramlarına ulaşabilirsiniz (Tümden gelim) ama iş Tüme varım olmalı. Bu konuda yorumu olan varmıdır? Bu tasarımda, durum diagramını oluştururken nasıl bir yol izlemek gereklidir sizce? ve neden?

controller

counter ile yapılabiliyor. counter max değerini 2 yaparsın, yani counter 2 değerine ulaşınca kendini resetler 0 değerine döner. butonuda counter girişine bağlarsın, yani her butona basıldığında counter bir artar. counter 1 değerinide çıkış kontağına eşitlersin. bu mantık ile s7-200 de uygulama vardı. uzun zaman önce yapmıştım. ladder diyagramını tam hatırlamıyorum.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

picusta


Gurkan-Demirbas

Hocam soruyu yanlış anladınız;
Elinizde sadece ve sadece tek kontaklı (normalde) açık bir buton ile sınırsız sayıda kontaktör var; sadece (sayısı sınırsız) normal kontaktör kullanacaksınız.
Konudan da anlaşılacağı üzere bu bir beyin cimlastiği sorusu. Normalde böyle bir tasarıma ihtiyaç duyulmaz zaten.

Sadece buton ve kontaktörle yapacağız. Ama nasıl?

mesmert

Kompazisyon panolarda genelde bu şekilde start ve stop yapılıyor hatta oraya led dahi bağlanır start stop ışıkları şeklinde

kadirbas

Sizin çizdiğiniz "Ladder diagram"ı ile aynı sonucu verip vermediğine bakmadım fakat; bu soruya şöyle bir yaklaşımda bulunulabilir.

http://www.resimekle.gen.tr/view/2306

Linkini verdiğim bu ilk resimde, aslında sizden istenen işlemin, olası durum diyagramının benim kafamdaki hali var. Bu diyagramda, şu rahatlıkla görülebilir ki giriş 1 olduğu sürece motorun durumu sürekli değişmektedir (daha sonra çizdiğim durum tablosundan da bunu göreceksiniz). Buradaki durum, girişin 1 durumu için durumun stabil olmaması olarak özetlenebilir.

Bu gibi bir durumunu önlemek için farklı yöntemler olabilir fakat burada yapılması gereken şey durum sayısını arttırmaktır. Yukarıdaki linkte görüebilecek resimde yeşil durumdan kırmızı duruma ve kırmızı durumdan yeşil duruma geçişlere birer ara durum eklenirse:

http://www.resimekle.gen.tr/view/2308

gibi bir durum diyagramı oluşur. Bu durum diyagramında da durum geçişleri için, girişler ve motorun durumu gibi karar verilmesi gereken bazı şeyler vardır. Ben yukarıdaki linkte görüldüğü gibi olmasını uygun buldum.

Buradan eski ve yeni durumlara göre tabloları çıkartırsak:

http://www.resimekle.gen.tr/view/2309

şeklinde tablolar olduğunu görürüz.

Burada, belki sizin bildiğiniz fakat benim yine de belirtmek istediğim bir nokta var. Durum diyagramında kırmızı halka içine aldığım durumlar stabil durumlardır. Çünkü bu durumda giriş değişmedikçe durum değişmez. Bir nevi durumun kendinde kalması aslında..
Yukarıdaki durum geçiş tablosunda ilk durum diyagramının iki  durumuna a ve b isimlerini verdim. Burada durum geçiş tablosuna bakarak, daha önce de söylediğimiz gibi stabil olmayan bir durum olduğunu kolaylıkla söyleyebiliriz. Çünkü giriş 1 durumunda kaldığı sürece durumlar arası geçiş yaşanmaktadır.
(a->b->a->b...)
İkinci durum geçiş tablosunda (yani yeni durum geçiş tablosunda) ise bu durumun önlendiğini görürüz.

Durumları birbirlerine geçişleri göz inünde bulundurularak kodlarsak
(a = 00, b = 01, c = 11, d = 10) Karnaugh haritasına yerleştirebileceğimiz son halleri elde etmiş oluruz.

http://www.resimekle.gen.tr/view/2311

Bu kısımdan sonra "ladder diagram" kısmını gerçekleştirmeye, biraz zamanımı alacağı için, açıkçası üşendim. Ama sanırım yukarıdaki diyagramlar ve tablolar anlamanıza yardımcı olur.

Yeterince anlaşılır olmasa da size bir bakış açısı kazandırır umarım...

Gurkan-Demirbas

Hocam Emeğine sağlık; anlaşılır cevap vermek için oldukça zaman harcamışsın ve de zaman en değerli şeydir, ayırdığın değerli zaman için tekrar teşekkürlerimi sunuyorum.

Benim amacım verilen senaryoya göre durum diagramlarının ve akabinde karnaugh diagramlarından en sade tasarıma ulaşma mantığı.

Ama daha iyi anlayabilmem için biraz daha üzerinde çalışıp değişik problemleri çözebilmem lazım

Kolay Gelsin

Gürkan

kadirbas

Takıldığınız bi yer olduğunda tekrar mesajlaşabiliriz.

Şunu belirtmeliyim ki her zaman en sade ifade en doğru ifade değildir. Farkettiyseniz bir önceki mesajımda kullnadığım karnaugh haritasında tam bir indirgeme yapmadım. Örnek olarak

"d1 = x'd2 + xd2 + d1d2"

ifadesinde d1d2 indirgenebilir. Fakat bu ifadenin indirgenmesi asenkron devrelerde yarış diye adlandırılan bir duruma yol açar.

Tam olarak anlatmaya çalıştığım şey, en sade ifadenin her zaman en doğru ifade olmadığıdır.

Size çalışmalarınızda başarılar.
Kolay gelsin..

Gurkan-Demirbas

Hocam Bir şeyi merak ettim de;

d1= X'd2 +  Xd1 + d1d2
d2 = Xd1' +X'd2 +d1'd2

ifadeleri Consensus theoremi'ne göre indirgenebiliyor.
Teorem şöyle
F = XY + X'Z + YZ  
= XY + X'Z + (X + X') YZ
= XY + X'Z + XYZ + X'YZ
                            = (XY + XYZ) + (X'Z + X'YZ)
                            = XY(1 + Z) + X'Z (1 + Y)
                            = XY + X'Z

Dolayısı ile d1 ve d2 ifadeleri
d1= X'd2 +  Xd1 + d1d2 = X'd2 + Xd1
d2 = Xd1' +X'd2 +d1'd2 = Xd1' + X'd2
oluyor; zaten bunu senin yaptığın karnaugh diagramlarından da görünüyor; yaptığın tablodaki kırmızı ile aldığın 1'ler teorik olarak alınmasa da olur.
Ama, bu şekilde indirgenirse, gerçek dünyada devre çalışmıyor (denedim) ama senin yaptığın gibi indirgemeden gerçekleştirdiğimiz taktirde hiç bir sorun yaşanmıyor devre arzu edildiği gibi çalışıyor

Sorum şu; Karnaugh diyagramlarını oluşturduktan sonra, oluşturduğun d1 ve d2 fonksiyonlarında, gereği olmadığı halde kırmızı yuvarlak içine alıp bunu fonksiyona dahil ettin; çünkü doğrusu bu. Bunun dahil edilmesi mantığı nedir? dahil edilmesi gerektiğini nasıl gördün? bunu merak ettim.

teşekkürler

Gürkan

kadirbas

Alıntı yapılan: "Gurkan-Demirbas"
Sorum şu; Karnaugh diyagramlarını oluşturduktan sonra, oluşturduğun d1 ve d2 fonksiyonlarında, gereği olmadığı halde kırmızı yuvarlak içine alıp bunu fonksiyona dahil ettin; çünkü doğrusu bu. Bunun dahil edilmesi mantığı nedir? dahil edilmesi gerektiğini nasıl gördün? bunu merak ettim.

teşekkürler

Gürkan

O teoremi tabii ki biliyorum fakat burada asenkron devre tasarımında dikkat edilmesi gereken başka bir kurala dikkat etmek gerekiyor. Zaten diğer mesajımda da

Alıntı yapılan: "kadirbas"
Şunu belirtmeliyim ki her zaman en sade ifade en doğru ifade değildir. Farkettiyseniz bir önceki mesajımda kullandığım karnaugh haritasında tam bir indirgeme yapmadım. Örnek olarak

"d1 = x'd2 + xd2 + d1d2"

ifadesinde d1d2 indirgenebilir. Fakat bu ifadenin indirgenmesi asenkron devrelerde yarış diye adlandırılan bir duruma yol açar.

Tam olarak anlatmaya çalıştığım şey, en sade ifadenin her zaman en doğru ifade olmadığıdır.

şeklinde bir ifadeyle bunu anlatmaya çalışmıştım.

Buradaki durum, kapı gecikmelerinden kaynaklanıyor diyebiliriz. İdeal olarak biz bu gecikmeleri sıfır aldığımızdan herhangi bir sorun çıkmıyormuş gibi görünse de, zaman gecikmeleri bazı durumlarda farkedilmeyen ve istenmeyen sonuçlar doğurabilir.

Esasında buradan anlatması biraz zor olacak gibi duruyor ama özetlemem ve sabit bir kuralmış gibi, mantığını ve durumu fazla anlatmadan açıklamak gerekirse,

<d1 = x'd2 + xd2 + d1d2>

gibi bir ifadede, <x'd2 + xd2>  ifadenin içerisindeki d1 ve d2 değişkenlerinin 1 olduğunu düşünelim. Bu durumda 3. terim olmasaydı

<d1 = x' + x> olarak x e bağlı bir sonuç göreceğimizi düşünürdük. Fakat ifadede hem x hem de x' (yani x in tersi) olduğundan lojik yapı içinde bir "inverter" olmak zorunda. İşte buradaki inverterin gecikmesi, d1 son halini almadan önce bir glitch oluşmasına sebep olur. Bu glitch bazen devrenin istenmeyen bir durumda kilitlenmesine bile sebep olabilir. Bu glitch'in oluşmaması için ise <x'd2 + xd2>  terimlerindeki x ve x' ifadelerinin yanlarındaki terimleri ANDlediğimizi düşünün.

Esasında mantığını anlatmam gerekirdi ama sanırım buradan anlatmam zor olacak. Bu yüzden size böyle bir kural verebilirim şimdilik sadece.
Daha geniş bir zamanımda bir kaç şey çizerek anlatmaya çalışırım...

İyi çalışmalar...

Gurkan-Demirbas

Cevap için teşekkürler;
Konuyu daha net anladım;
Tekrar teşekkürlerimi sunuyorum

iyi çalışmalar

Gürkan