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
130,065
Mesajlar
932,703
Kullanıcılar
453,051
Son üye
teknik-adam

Yeni konular

Geri
Üst