cok karışık plc ladder kod yazım mantıgı (?)

Başlatan zamzam23, 08 Mart 2012, 22:35:03

zamzam23

Arkadaslar

Elimde bir plc var bunun icindeki yazilimi cekip bi inceliyim dedim.fakat,
Bu yazilim tam 3000 satir ladder dan olusuyor. 1000 kusur tane M0...M1000 yardimci roleler kullanmislar vs.

Benim merak ettigim, adam kadin herneyse, bunu nasil yaziyor? Kafasi nasil karismiyor. Bunun sistematik bir yolu olmali. Bunu ogrenmek istiyrum bilen var ise.

Ben yeni ogrendim plc yi. En son, kafam catlaya patlay yazdigim kodda, 1 tane timer, 1 tane yardimci role, 6 giris, 3 cikis ve acik kapali kontaklari var ama yazarken baya zorlandim.surekli basa alarak, acik-kapali kontaklari akilda tutup simule ediyrsunuz ama bir noktadan sonra film kopuyor.

cemilkendir

belki bir programlama dilinde yazıyordur C gibi
mesela benim bir projemde pic için yazdığım kodları eğer picden okursan (ki okuyamazsın kod koruması vardır :D ) aldığın hex kodu asmye çevirip bakarsan hiç bişey anlamazsın yada anlaman günler sürer bu benim içinde geçerli
ama ben yazarken kodu c de yazdığımiçin o kadarda karmaşık olmaz

vitruvius

Bir kere I0.0 "Start" gibi isimlendirme yaparsanız neyin ne olduğu belli olur, kafa daha az karışır. Diğer bir konu da genelde hazır kütüphaneler vardır. Mesela Siemens'te çalışan birisi oturup motor kontrolü için ladder'da kod yazmaz. Bunun yerine kendi sistemlerinde hazır olan kütüphaneyi kullanıp değişkenlerin isimlerini ve bir iki ufak detayı değiştirir. Diğer firmalarda da vardır ama ben kendi gördüğümü söylüyorum. Ayrıca ekip ortamında da iyi bir görev dağılımı ile bu sorun ortadan kalkar. Her takım üyesi arkadaşlarını iyi tanırsa ve işini iyi biliyorsa sonradan tek yapmak gereken parçaları birleştirmek olur.

F.T

Bende C yi görünce kafam karışıyor beynim kitleniyor hocam.  :D  bana görede lader çok daha basit.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

vitruvius

Alıntı yapılan: ferittt - 08 Mart 2012, 23:09:58
Bende C yi görünce kafam karışıyor beynim kitleniyor hocam.  :D  bana görede lader çok daha basit.

Eheh katılıyorum. Hem daha basit hem de daha zevkli geliyor ladder bana.

zamzam23

İ0.0 a isim vermezsem hepten karisiyor zaten:)

Fakat ladderda anlayamadigim baska bisi var. C de, mesela, degisiklik yaptigin sey, sadece o kismi ilgilendiriyr. Ve takibi daha kolaydir. En azindan bnm icin oyle. Fakat plc de, bi kontagi acinca komple ilgili diger kontaklar, htlar, cikislar etkileniyor gibime geliyor. Bu arkadasin dedigi gibi bisi varmi grcekten.c den ladder e ceviren bisi:)

vitruvius

B&R plc'lerini direkt olarak C dili ile yazabilirsiniz. Bunun haricinde programlar var ama ne derece işe yarıyor bilmiyorum. Siemens'in de Simatic M7 ürünü varmış ama şimdi araştırınca gördüm.

ilhan_mkp

kodu plcden çektiğin  için program anlaşılması güç bir şekildegelir.
çok önemliyse (maddiyat varsa çok net anlaşılır ;D)
plcde kod yazarken bir kaç basit kural vardır.
plc programı üsten aşağı soldan sağa doğru tarar.
hızlı giriş çıkış veya siemensteki fifo gibi istisna komutlar işlenmedikçe tarama bitmeden çıkış vs güncellenmez.
sistemde haberleşmelerin hmiye yıkılması (master vs durumları)plc programını ciddi şekilde rahatlatır.
hmilerin scrip ve makro özellikleri mikroişlemcilerdeki kesmeler kadar işi kolaylaştırır.
plc özel yazmaçları bilinmelidir yoksa program işkenceye dönebilir.
özel yazmaçlara bir örnek m1000 tüm delta plclerde plc runa geçtikten bir tarama sonra pozisyon değiştiren normalde açık kontaktır bazı komutların s0lunda kullanılması kati şarttır.
plc programlarının çoğu küçük şartlardan oluşur.
delta ve nais plcler easy hmilerle ilgili sorun yaşıyorsan bildiğim kadarıyla cevaplamaya çalışırım.


elektromagma

Bilmişlik taslamak istemem ama PLC de karışık program yazarken (karışıktan kastım çok giriş çıkışlı. karmaşık diyelim) benim yaptığım ilk önce oturup bölümlere ayırıyorum. Aksi taktirde bir noktadan sonra çok karışıyor T28i yukarda kullanmışmıydım alttamı kullanmıştım vs..
İlk önce bölümlere ayırmak en mantıklısı.

Bir kağıt üzerinde bölümlere ayırdıktan sonra, elime birkaç kareli defter yaprağı alıp; birine yardımcı rolelerin adlarını excel tablosu gibi yazıyor yanlarını boş bırakıyorum. Kalıcı olanları,özel roleleri vs.. işaretleyip not alıyorum yanlarına.

Daha sonra programa geçiyorum. İlk önce Modları yazıyorum. Mesela;

Başlangıç programı - Çalışma Modu - Bekleme Modu - Acil Durma modu vs..


Daha sonra modların içlerini yazmaya başlıyor ve en önemlisi adım adım kontrol ediyorum. Bir önemli notta yaptıklarınızı program harici biryerlerede de kısa kısa not almak. Yoksa 1ay-3ay önce yaptığınız projede sorun olduğunda sizi çok uğraştırır. Ayrıca programı yazarken donanım sorunları çıkarsa giderene kadar yaptığınızıda unutursunuz.

Son yaptığım projedeki panonun düzenlemeden önceki resmini aşağıya koyuyorum. PLC ve panonun birkısmı gözüküyor gerçi ama anlatmak istediğim mantık karışıklığını çok iyi anlatıyor.





Alıntı yapılan: zamzam23 - 08 Mart 2012, 22:35:03
Arkadaslar

Elimde bir plc var bunun icindeki yazilimi cekip bi inceliyim dedim.fakat,
Bu yazilim tam 3000 satir ladder dan olusuyor. 1000 kusur tane M0...M1000 yardimci roleler kullanmislar vs.

Benim merak ettigim, adam kadin herneyse, bunu nasil yaziyor? Kafasi nasil karismiyor. Bunun sistematik bir yolu olmali. Bunu ogrenmek istiyrum bilen var ise.

Ben yeni ogrendim plc yi. En son, kafam catlaya patlay yazdigim kodda, 1 tane timer, 1 tane yardimci role, 6 giris, 3 cikis ve acik kapali kontaklari var ama yazarken baya zorlandim.surekli basa alarak, acik-kapali kontaklari akilda tutup simule ediyrsunuz ama bir noktadan sonra film kopuyor.
Anadolu MakerSpace http://www.anadolums.com/

zamzam23

#9
Alıntı yapılan: elektromagma - 09 Mart 2012, 07:09:35
Son yaptığım projedeki panonun düzenlemeden önceki resmini aşağıya koyuyorum. PLC ve panonun birkısmı gözüküyor gerçi ama anlatmak istediğim mantık karışıklığını çok iyi anlatıyor.
hocam gayet net anlasılıyor:)
plc programlama konusunda daha cok yeniyim. kitap, eğitim vs. önerirlerinize de acıgım. bu işi ilerletmekte kararlıyım. Yazdıgım programı buraya eklıyorum. mikroişlemcilerle ugrastım yazılım konusunda iyi sayılırım.
plc için yazdıgım bu kod calısıyor fakat  öyle hissediyorum ki yazdıgım bu ladder program hic de profosyonelce olmadı:)





Alıntı yapılan: ilhan_mkp - 09 Mart 2012, 00:34:49
kodu plcden çektiğin  için program anlaşılması güç bir şekildegelir.
çok önemliyse (maddiyat varsa çok net anlaşılır ;D)
plcde kod yazarken bir kaç basit kural vardır.
plc programı üsten aşağı soldan sağa doğru tarar.
hızlı giriş çıkış veya siemensteki fifo gibi istisna komutlar işlenmedikçe tarama bitmeden çıkış vs güncellenmez.
sistemde haberleşmelerin hmiye yıkılması (master vs durumları)plc programını ciddi şekilde rahatlatır.
hmilerin scrip ve makro özellikleri mikroişlemcilerdeki kesmeler kadar işi kolaylaştırır.
plc özel yazmaçları bilinmelidir yoksa program işkenceye dönebilir.
özel yazmaçlara bir örnek m1000 tüm delta plclerde plc runa geçtikten bir tarama sonra pozisyon değiştiren normalde açık kontaktır bazı komutların s0lunda kullanılması kati şarttır.
plc programlarının çoğu küçük şartlardan oluşur.
delta ve nais plcler easy hmilerle ilgili sorun yaşıyorsan bildiğim kadarıyla cevaplamaya çalışırım.

henüz hmi ne demek o kısımları bilmiyorum. delta hmi diye bişi gördüğümü hatırlıyorum ama nedir tam bilmiyorum.
kontrol panelı olabılır emın değilim.
elımdekı plc deltanın. takıldıgım yerlerde yardımcı olursanız sevınırım.bu işi daha rahat nasıl öğrenebilirim konusunda önerilere acıgım. ücretli eğitimler var internette. cd/vcd. onlardan da alabılırım faydası olacaksa.

malpaslan1979

#10
ladder ile yazmak zorunda değilsin ki (öztürk'ün kulakları çınlasın) siemens'in stl adıyla anılan programlama şekli var. Yine örnek olarak yanlış hatırlamıyorsam fatek plc lerinde kendine ait bir programlama dili vardı. Ladder elektrikçi programlama dilidir. Stl kodlama ise elektronikçilerin programlama dilidir diyordu.

muhendisbey

Alıntı yapılan: malpaslan1979 - 09 Mart 2012, 09:34:24
ladder ile yazmak zorunda değilsin ki (öztürk'ün kulakları çınlasın) siemens'in stl adıyla anılan programlama şekli var. Yine örnek olarak yanlış hatırlamıyorsam fatek plc lerinde kendine ait bir programlama dili vardı. Bir arkadaşımın ifadesiyle ladder elektrikçi programlama dilidir. Stl kodlama ise elektronikçilerin programlama dilidir diyordu.

arkadaşına selamımı söyle hiçte öyle değil. Çünkü Ladder artık evrensel bir dil haline geldi. Hangi PLC'yi alırsan al ladder var, yanında da kod yazdığın bir kısım var. Bu kodlar markadan markaya farklı. Sen tuttun S7-200 ile çalıştın, geldi sana fatek hadi buyur anla? Yerli şirket Gemo geldi kod yazma kısmı yok ne yapacaksın? Twido geldi ben bundan anlamam mı diyeceksin? Ben yıllardır bunun içerisinde olan biriyim.

Otomasyonda temel kural en kısa yoldan anlamakta işi çözüp halletmekte. Gittin Kırıkkale'ye yaptığın cihaz arızalı, hadi kodlardan sorunu anla anlayabilirsen. Kalacak yer yok yapamazsan gerisin geriye döneceksin, yada bir otel kiralayıp kalacaksın şirket ödemez, muhakkak cebinden yolun yok? Ladder diyorsun, animate diyorsun hangi swich bozulmuş hangi sensör bilgisi gelmiyor PLCnin çıkışına bakıyorsun projeye bakıyorsun hemen çözüyorsun yada programsal bir hata yaptıysan düzeltiyorsun iş tamam.

Gelelim 3000 satıra. 3000 satırı hep networkler üzerinden yazıyorsun. Yani önce acil stopu yerleştiriyorsun kodları bittikten sonra diğer artık startsa startı yerleştiriyorsun. Kısacası hem projeden okuyup hem de sırayla yerleştiriyorsun. İleride tekrar ihtiyaç duyacağın bağlantılarda da not defterine not alıyorsun. Sonrasında bu program tekrar lazım olur diye bir yedeğini sürekli taşıyorsun. İleride adam PLC'yi yakarsa diye bekliyorsun.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

zamzam23

bana bu yardımcı rölelerin mantıgını tam olarak anlatabilir misiniz? nerelerde kullanılır tam anlamıyla. nerelerde kullanılmalı.

adından yola cıkarak, bana baya yardımcı olacagını ümit ediyorum.

muhendisbey

Alıntı yapılan: zamzam23 - 09 Mart 2012, 10:50:24
bana bu yardımcı rölelerin mantıgını tam olarak anlatabilir misiniz? nerelerde kullanılır tam anlamıyla. nerelerde kullanılmalı.

adından yola cıkarak, bana baya yardımcı olacagını ümit ediyorum.

Yardımcı röle i/o olarak gerçekte çıkış vermeyeceğin ancak iç kısımda (programda) giriş çıkış veren rölelerdir. Gerçek çıkışları yoktur, ara rölelerdir. Yani diyelim ki 5 çıkış kullanacaksın ama programdan dolayı 20 çıkış gerekti. Ama 5 tanesini kullanacaksan 20 çıkışa gerek yok. geri kalan 15 çıkışı yardımcı röle kullanarak yaparsan giriş çıkışlardan tasarruf sağlarsın hem de programın işlerliğini artırırsın.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

emekli

mühendisbey, ferittin dediği gibi diğer programları japonla yapıştırsan durmuyor plc ve ladder hernekadar
şimdilik birşey yapamasamda mantığını anladığım için  korkutmuyor. Ete hocanın pıcbasıc dersleri gibi sizde önderlik
edip formda plc öğreniyorum diye bir konu başlığı açsak nasıl olur