Bu makalemizde aşağıda belirttiğimiz adımları örnek ile kod yazım aşaması Siemens Simatic Manager programı kullanılarak tasarlanmıştır. Algoritmik Yöntemler:
- Ardışıl Mantıksal Devre Tasarım Yöntemi ile Gerçekleme
- Otomat Yöntemi ile Gerçekleme
- Petri Yöntemi ile Gerçekleme
herhangi bir sorunuz olursa lütfen info@kirbiyik.co adresine mail atabilirsiniz.
ARDIŞIL MANTIKSAL DEVRE TASARIM YÖNTEMİ İLE GERÇEKLEME
Şekil 1 deki istenilen durumun oluşması için ardışıl lojik tasarıma göre 8 farklı durumu göre tasarım adımı Şekil 2 deki gibi oluşturulmuştur.
Şekil 1 Örnek Kodlama Yapılacak Senaryo
Şekil 2 Ardışıl Mantıksal Devre Tasarımı
Ardışıl mantıksal devre tasarımı oluşturulduktan sonra tüm durumların gözükebilmesi için ilkel akış çizelgesi Tablo 1 de oluşturulmuştur.
Tablo 1 İlkel Akış Çizelgesi
Durum | 00 | 01 | 11 | 10 | Z |
A | A | G | – | B | 0 |
B | A | – | C | B | 0 |
C | – | D | C | – | 0 |
D | A | D | E | – | 0 |
E | – | F | E | G | 0 |
F | A | F | H | – | 1 |
G | A | G | – | – | 0 |
H | – | G | H | – | 0 |
-
Uyumlu Sıraların Belirlenmesi
Akış çizelgesi incelendiğinde (A,B), (A,G), (A,H), (B,C), (B,G) ve (G,H) sıralarının uyumlu olduğu görülür.
Şekil 3 Sıra Birleştirme Diyagramı
Sıra birleştirme diyagramı oluşturulduktan sonra anlamlı bütünlük sağlanması için en uyumlu durumlar birbirleri ile birleştirildi. Bu durumda A,G ve H ile B ve C bir durum olarak kabul edildi.
Tablo 2 Durum Sayısı En Aza İngirgenmiş Akış Çizelgesi İlk Durum
Durum | 00 | 01 | 11 | 10 | Z |
A,G,H (1) | A | G | H | B | 0 |
B,C (2) | A | D | C | B | 0 |
D (3) | A | D | E | – | 0 |
E (4) | – | F | E | G | 0 |
F (5) | A | F | H | – | 1 |
Tablo 3 Durum Sayısı En Aza İngirgenmiş Akış Çizelgesi Son Durum
Durum | 00 | 01 | 11 | 10 | Z |
1 | 1 | 1 | 1 | 2 | 0 |
2 | 1 | 3 | 2 | 2 | 0 |
3 | 1 | 3 | 4 | – | 0 |
4 | – | 5 | 4 | 1 | 0 |
5 | 1 | 5 | 1 | – | 1 |
Şekil 4 Durum Geçiş Diyagramı
Durum sayısı indirgendikten sonra durum geçiş diyagramı Şekil 4 teki gibi yeniden oluşturulur. Oluşturulan durum geçiş diyagramına göre Şekil 5 teki gibi durum geçiş diyagramı elde edilir.
Şekil 5 Durum Geçiş Grafı
Yarış koşulunun önlenmesi için en az üç bit uzunluğunda sözcük gerekmektedir. Algoritma üç bit uzunluğunda sözcüklerle tasarlanmış olsaydı tasarımda yarış koşulu engellenemeyecekti. Bu yüzden tasarım için dört bit uzunluğunda sözcük oluşturulmuştur. Bu durumda Şekil 6 daki gibi 10 farklı durum oluşmuştur.
Şekil 6 Yarış Önleyici Kodlamaya İlişkin Durum Geçiş Diyagramı
Tablo 4 Ara Durum Geçiş Çizelgesi
Durum | 00 | 01 | 11 | 10 | Z |
1(0000) | 1 | 1 | 1 | 2 | 0 |
2(0010) | 1 | 3 | 2 | 2 | 0 |
3(0110) | 6 | 3 | 7 | – | 0 |
4(1100) | – | 5 | 4 | 8 | 0 |
5(1000) | 1 | 5 | 1 | – | 1 |
6(0100) | 1 | – | – | – | 0 |
7(1110) | – | – | 4 | – | 0 |
8(1101) | – | – | – | 9 | 0 |
9(0101) | – | – | – | 10 | 0 |
10(0001) | – | – | – | 1 | 0 |
Şekil 6 daki tasarım yapıldıktan sonra Tablo 4 teki gibi ara durum geçiş çizelgesi oluşturulmuştur. Tablo 5 te Durum geçiş çizelgesi oluşturulduktan sonra çıkış durumu olan Z ile Q1, Q2, Q3 ve Q4 durumları da teker teker oluşturulmuştur.
Tablo 5 Durum Geçiş Çizelgesi
q1 q2 q3 q4 | 00 | 01 | 11 | 10 | Z |
(1)0000 | 0000 | 0000 | 0000 | 0010 | 0 |
(10)0001 | – | – | – | 0000 | 0 |
0011 | – | – | – | – | 0 |
(2)0010 | 0000 | 0110 | 0010 | 0010 | 0 |
(3)0110 | 0100 | 0110 | 1110 | – | 0 |
0111 | – | – | – | – | 0 |
(9)0101 | – | – | – | 0001 | 0 |
(6)0100 | 0000 | – | – | – | 0 |
(4)1100 | – | 1000 | 1100 | 1101 | 0 |
(8)1101 | – | – | – | 0101 | 0 |
1111 | – | – | – | – | 0 |
(7)1110 | – | – | 1100 | – | 0 |
1010 | – | – | – | – | 0 |
1011 | – | – | – | – | 0 |
1001 | – | – | – | – | 0 |
(5)1000 | 0000 | 1000 | 0000 | – | 1 |
Z=q1 q2’ q3’ q4’
Tablo 6 Q1 Durum Geçiş Çizelgesi
q1 q2 q3 q4 | 00 | 01 | 11 | 10 | Z |
(1)0000 | 0 | 0 | 0 | 0 | 0 |
(10)0001 | – | – | – | 0 | 0 |
0011 | – | – | – | – | 0 |
(2)0010 | 0 | 0 | 0 | 0 | 0 |
(3)0110 | 0 | 0 | 1 | – | 0 |
0111 | – | – | – | – | 0 |
(9)0101 | – | – | – | 0 | 0 |
(6)0100 | 0 | – | – | – | 0 |
(4)1100 | – | 1 | 1 | 1 | 0 |
(8)1101 | – | – | – | 0 | 0 |
1111 | – | – | – | – | 0 |
(7)1110 | – | – | 1 | – | 0 |
1010 | – | – | – | – | 0 |
1011 | – | – | – | – | 0 |
1001 | – | – | – | – | 0 |
(5)1000 | 0 | 1 | 0 | – | 1 |
Q1 = x.y. q2 + q1 .q2 .q3 ‘ .q4’ + x’.y. q1
Tablo 7 Q2 Durum Geçiş Çizelgesi
q1 q2 q3 q4 | 00 | 01 | 11 | 10 | Z |
(1)0000 | 0 | 0 | 0 | 0 | 0 |
(10)0001 | – | – | – | 0 | 0 |
0011 | – | – | – | – | 0 |
(2)0010 | 0 | 1 | 0 | 0 | 0 |
(3)0110 | 1 | 1 | 1 | – | 0 |
0111 | – | – | – | – | 0 |
(9)0101 | – | – | – | 0 | 0 |
(6)0100 | 0 | – | – | – | 0 |
(4)1100 | – | 0 | 1 | 1 | 0 |
(8)1101 | – | – | – | 1 | 0 |
1111 | – | – | – | – | 0 |
(7)1110 | – | – | 1 | – | 0 |
1010 | – | – | – | – | 0 |
1011 | – | – | – | – | 0 |
1001 | – | – | – | – | 0 |
(5)1000 | 0 | 0 | 0 | – | 1 |
Q2 = x’.y. q1 ‘ + q1 ‘.q2 .q3 .q4’ + x. q1 .q2 .q3’ + x.y. q1 .q2
Tablo 8 Q3 Durum Geçiş Çizelgesi
q1 q2 q3 q4 | 00 | 01 | 11 | 10 | Z |
(1)0000 | 0 | 0 | 0 | 1 | 0 |
(10)0001 | – | – | – | 0 | 0 |
0011 | – | – | – | – | 0 |
(2)0010 | 0 | 1 | 1 | 1 | 0 |
(3)0110 | 0 | 1 | 1 | – | 0 |
0111 | – | – | – | – | 0 |
(9)0101 | – | – | – | 0 | 0 |
(6)0100 | 0 | – | – | – | 0 |
(4)1100 | – | 0 | 0 | 0 | 0 |
(8)1101 | – | – | – | 0 | 0 |
1111 | – | – | – | – | 0 |
(7)1110 | – | – | 0 | – | 0 |
1010 | – | – | – | – | 0 |
1011 | – | – | – | – | 0 |
1001 | – | – | – | – | 0 |
(5)1000 | 0 | 0 | 0 | – | 1 |
Q3 = x.y’. q2 ‘ + x.y’. q1’. q3 + y. q1 ‘.q3 .q4’
Tablo 9 Q4 Durum Geçiş Çizelgesi
q1 q2 q3 q4 | 00 | 01 | 11 | 10 | Z |
(1)0000 | 0 | 0 | 0 | 0 | 0 |
(10)0001 | – | – | – | 0 | 0 |
0011 | – | – | – | – | 0 |
(2)0010 | 0 | 0 | 0 | 0 | 0 |
(3)0110 | 0 | 0 | 0 | – | 0 |
0111 | – | – | – | – | 0 |
(9)0101 | – | – | – | 1 | 0 |
(6)0100 | 0 | – | – | – | 0 |
(4)1100 | – | 0 | 0 | 1 | 0 |
(8)1101 | – | – | – | 1 | 0 |
1111 | – | – | – | – | 0 |
(7)1110 | – | – | 0 | – | 0 |
1010 | – | – | – | – | 0 |
1011 | – | – | – | – | 0 |
1001 | – | – | – | – | 0 |
(5)1000 | 0 | 0 | 0 | – | 1 |
Q4 = x.y’. q2 .q3 ‘
Tasarım ve Gerçekleme
Geliştirilen algoritmanın kod geliştirme aşaması simatic manager programı ile gerçeklenmiştir.
Şekil 7 Ardışıl Tasarım Sembol Tablosu
Oluşturulan kod;
OTOMAT YÖNTEMİ İLE GERÇEKLEME
Şekil 1 deki istenilen durumun oluşması için otomat yöntemine göre 6 farklı durumu göre tasarım adımı Şekil 8 deki gibi oluşturulmuştur.
Şekil 8 Otomat Tasarım
Otomat tasarımındaki durum ve olaylar şu şekilde ifade edilebilmektedir.
Q1: Başlangıç durumu
Q2: X’in tetiklendikten sonraki durum
Q3: X’in düşen kenarı ile Y’nin tetiklendiği durum
Q4: X’in tetiklendiği ve Y’nin lojik 1 olduğu durum
Q5: Z=1 durumu
Q6: İlk durumda Y’nin tetiklendiği ve Z=1 iken X’in tetiklendiği durum (Olumsuz Durum)
e1: X’in tetiklendiği olay
e2: X’in düşen kenarı ve Y’nin tetiklendiği olay
e3: X’in tetiklendiği ve Y=1 olayı
e4: X’in düşen kenarı ve Y=1 olayı
e5: X’in tetiklendiği olay
e6: Y’nin tetiklendiği olay
eson: Y’nin düşen kenarının bulunduğu olay
Olaylar incelendiğinde program akışının hızlanması için e2=e4 ve e1=e5 şeklinde kabul edilmiş ve program tasarlanmıştır. Program tasarım aşamasında X’in yükselen kenarı Xr, X’in düşen kenarı Xf ve Y’in yükselen kenarı Yr, Y’in düşen kenarı Yf şeklinde oluşturulmuştur. Şekil 8 deki otomat tasarım yöntemine göre algoritma geliştirilmesi durumunun matematiksel ifadesi aşağıda gösterildiği şekilde ifade edilmektedir.
Q1= q2’. q3’ .q4’ .q5’. q6’
Q2= e1. q1 + eson’. e2’. q2
Q3= e2. q2 + eson’. e3’. q3
Q4= e3. q3 + eson’. e4’. q4
Q5= e4. q4 + eson’. e1’. q5
Q6= e6. q1 + e1. q5 + eson’.q6
Z = Q5
Xr = X’in yükselen kenarı
Xf= X’in düşen kenarı
Yr = Y’in yükselen kenarı
Yf= Y’in düşen kenarı
e1 = e5 = Xr
e2 = e4 = Xf . Yr
e3 = Xr. Yr
eson = Yf
Tasarım ve Gerçekleme
Geliştirilen algoritmanın kod geliştirme aşaması simatic manager programı ile gerçeklenmiştir.
Şekil 9 Otomat Tasarımı Sembol Tablosu
Oluşturulan kod;
PETRİ YÖNTEMİ İLE GERÇEKLEME
Şekil 1 deki istenilen durumun oluşması için petri yöntemine göre 6 farklı yere (place) göre tasarım adımı Şekil 10 deki gibi oluşturulmuştur.
Şekil 10 Petri Tasarım
Petri tasarımındaki yerler ve geçişler şu şekilde ifade edilebilmektedir.
P1: Başlangıç yeri
P2: X’in tetiklendikten sonraki yer
P3: X’in düşen kenarı ile Y’nin tetiklendiği yer
P4: X’in tetiklendiği ve Y’nin lojik 1 olduğu yer
P5: Z=1 in bulunduğu yer
P6: İlk durumda Y’nin tetiklendiği ve Z=1 iken X’in tetiklendiği yer (Olumsuz durumun oluştuğu yer)
t_1: İlk enerjilenmenin ve jetonun ilk bulunduğu geçiş
t1_2: X’in tetiklendiği geçiş
t1_6: Y’nin tetiklendiği geçiş
t2_3: X’in düşen kenarı ve Y’nin tetiklendiği geçiş
t3_4: X’in tetiklendiği ve Y=1 in bulunduğu geçiş
t4_5: X’in düşen kenarı ve Y=1 in bulunduğu geçiş
t_: Y’nin düşen kenarının bulunduğu geçiş (Sonlandırma geçişi)
Yerler ve geçişler incelendiğinde eşdeğer geçişlerin bulunduğu ifadeler aynı geçiş ifadesi şeklinde belirtilmiştir. Bu durumda t2_3 = t4_5 = t2_3 // 4_5 ve t1_2 = t5_6 = t1_2 // 5_6 geçişleri oluşmuştur. Program tasarım aşamasında X’in yükselen kenarı Xr, X’in düşen kenarı Xf ve Y’in yükselen kenarı Yr, Y’in düşen kenarı Yf şeklinde oluşturulmuştur. Şekil 10 deki petri tasarım yöntemine göre algoritma geliştirilmesi durumunun matematiksel ifadesi aşağıda gösterildiği şekilde ifade edilmektedir.
P1 = P2’.P3’.P4’.P5’.P6’
P2 = P1 . t1_2 + P2 . t2_3’ . t_’
P3 = P2 . t2_3 + P3 . t3_4’ . t_’
P4 = P3 . t3_4 + P4 . t4_5’ . t_’
P5 = P4 . t4_5 + P5 . t5_6’ . t_’
P6 = P1 . t1_6 + P5 . t5_6 + P6 . t_’
Z = Q5
Xr = X’in yükselen kenarı
Xf= X’in düşen kenarı
Yr = Y’in yükselen kenarı
Yf= Y’in düşen kenarı
t1_2 = t5_6 = t1_2 // 5_6 = Xr
t2_3 = t4_5 = t2_3 // 4_5 = Xf . Yr
t3_4 = Xr. Yr
t_ = Yf
Tasarım ve Gerçekleme
Geliştirilen algoritmanın kod geliştirme aşaması simatic manager programı ile gerçeklenmiştir.
Şekil 11 Petri Tasarımı Sembol Tablosu
Oluşturulan kod;