Siemens PLC Sorun

Katılım
2 Eki 2015
Mesajlar
22
Puanları
1
Yaş
33
Arkadaşlar bu sabah çalışan programım bir sorun nedeniyle çalışmaz hale geldi neden olduğunu bilmiyorum. Ekte gönderdiğim gibi, bir Functionda aktif ettiğim Blover Çalıştır çıkışını başka bir Functionda input olarak kullanmak istiyorum fakat bu bilgi oraya gitmiyor. Daha önce çalışan bir programdı. sorun ne olabilir?
 

Ekli dosyalar

  • 1.PNG
    1.PNG
    2.7 KB · Görüntüleme: 48
  • 2.PNG
    2.PNG
    1.8 KB · Görüntüleme: 50
Çıkış kontak olamaz ! Bool değeri olabilir anca !
Biraz dökümanını oku, en fazla 3-4 saatin gider ama başın ağırmaz !
 
Kontağı çıkış olarak kullanmadım. Bir functiondan elde ettiğim çıkışı başka functionda input bilgisi olarak kullandm
 
Ladder diagramda dikkat edilmesi gereken şudur. Eğer herhangi bir fiziksel çıkışı başka bir yerde kullanacaksanız mutlaka çıkışın set edildiği adımdan sonra olmalıdır. Eğer kontak olarak kullanılan çıkıştan önce ise logic değeri "0" dır. bu tip durumlar ile karşılaşmamak için en kolay yöntem 1. numaralı resimdeki "M" static değişkene atayıp, daha sonra çıkışa atayabilirsiniz.
 
Başka bir fc kullanacaksanız onu OB ( organizasyon blok) a tanıtmanız gerekli aksi halde yeni oluşturduğunuz blok çalışmaz
 
Bu tür durumlarla karşılaşmamak için benim uyguladığım yöntem şu, ana programda kesinlikle çıkış kullanmıyorum. M bitlerini kullanıyorum. Daha sonra başka bir network yada function oluşturup bahsettiğim M bitlerini çıkışlara bağlıyorum.

Özellikle aynı çıkışı aktif edecek yeni bir şart program eklenirse çok pratik olduğunu göreceksiniz.
 
Nicaleus taktiği güzel fakat Q1.4 başka yerde setleniyor mu diye kontrol edebilirsiniz. Tossun arkadaşın dediği gibi ya kontak coilden önce yada başka bir yerde daha çekiyor. şimdiye kadar denk gelmemiş olması çalışma şartlarından olabilir farklı çalışma şartı var ise aktif olmuş olabilir. programı atarsanız kontrol edilebilir.
 
Ladder diagramda dikkat edilmesi gereken şudur. Eğer herhangi bir fiziksel çıkışı başka bir yerde kullanacaksanız mutlaka çıkışın set edildiği adımdan sonra olmalıdır. Eğer kontak olarak kullanılan çıkıştan önce ise logic değeri "0" dır. bu tip durumlar ile karşılaşmamak için en kolay yöntem 1. numaralı resimdeki "M" static değişkene atayıp, daha sonra çıkışa atayabilirsiniz.


Çıkış ve Markerlar için böyle bir kural yok. Çıkış ya da marker bir nedenle setlendiği zaman eğer birden fazla yazma yapılmıyor ise herhangi bir yerde 1 olarak görünecektir. Aşağısında ya da yukarısında olması bir şey değiştirmez.


Ancak fonksiyon içerisinde kullanılan lokal geçici değişkenler için doğrudur. Çünkü lokal geçici değişkenler programın her taramasında sıfırlanır ve kontak olarak kullanılacaksa önce çıkış olarak aktif edilerek altındaki networkte kontak kullanılır.


Sorunun çözümü:

Çıkış aynı zamanda birden fazla kez setlenmeye çalışıyor ise hem fiziksel olarak hemde kontak olarak aktif olmayacaktır. Cross Reference kullanılarak çıkışa birden fazla yazma yapılıp yapılmadığı kontrol edilmelidir. Çıkış birden fazla yazılmaya çalışılıyor ise her durumda 0 olacaktır.
 

Forum istatistikleri

Konular
129,835
Mesajlar
930,600
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Çevrimiçi üyeler

Geri
Üst