Step 7 Aynı Output'u Farklı Networkler ile Sürme hakkında?

Katılım
1 Nis 2011
Mesajlar
5
Puanları
1
Merhaba,

Step 7'de OB1 içinde aynı digital outputları farklı networkler ile sürebilmek istiyorum. Amacım şu: farklı networklerde farklı outputları belli bir senaryo ile sürüyorum, burada sorun yok. Test amaçlı kullanmak istediğim bir başka networkte ise tüm bu outputları tek bir test inputuna bağlıyorum. Test inputunu enerjilendirerek tüm bu outputları asıl networklerden bağımsız olarak sürebilmek istiyorum. Fakat bu mümkün olmuyor. Test networkünü OB1e koyduğumda, asıl networklerden outputları hardware olarak süremiyorum (bilgisayardan OB1'i monitor edip outputların yeşile döndüğünü görsem de). Sorunun çözümü için "Conditional Jump" fonksiyonunu kullanmak, test networkünü ayrı bir fonksiyon olarak tanımlayıp OB1e dahil etmek de dahil olmak üzere yollar denedim ama işe yaramadı. Tavsiyelerinizi bekliyorum.
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Önce outputları OB1 içinden çıkarıp ayrı fonksiyonlar içine koy, daha sonra OB1 içinde

A input_TEST
JC ATLA

call FC_Senaryo1 // Senaryo1 Outputlar burda
call FC_Senaryo2 // Senaryo2 Outputlar burda
JU SON // Test inputu yoksa FC_Test i pas geçer

ATLA:nop 0
call FC_Test // Test inputu varsa FC_Test taranır
SON:NOP 0

Yukarıdaki yöntem sorununuzu çözebilir ama çıkışların farklı farklı fonksiyonlarda olması genelde tavsiye edilmeyen bir yöntemdir, diğer fonksiyonlarda değişkenler kullanıp, çıkışların hepsini tekbir fonksiyonda ve kullanılan değişkenlerle ilişkilendirmek daha profosyonelcedir. Örneğin;

OB1.jpg
 

Ekli dosyalar

  • OB1.jpg
    OB1.jpg
    15.3 KB · Görüntüleme: 11
Son düzenleme:
İlginiz için teşekkür ederim; ama iki yöntemi de denedim, olmadı :) İlkine benzer bir yöntemi, networkleri fonksiyon olarak tanımlamak hariç, ben de uygulamıştım. Değişken kullanmaktan kastınız M kullanmak değil mi?
 
İki yönteminde olmaması bir yerde hata yapıldığını gösterir, programı paylaşırsanız daha fazla yardım edilebilir, değişkenden kastım M veya DB alanlarıdır. Kolay gelsin...
 
İki yönteminde olmaması bir yerde hata yapıldığını gösterir, programı paylaşırsanız daha fazla yardım edilebilir, değişkenden kastım M veya DB alanlarıdır. Kolay gelsin...

Bu sefer oldu :) Ben yanlış uygulamışım sizin önerinizi. Jump fonksiyonlarını kullanarak ve değişken tanımlayarak denedim, networkleri de ayrı fonksiyonlar halinde yazdım, işe yaradı. İlginiz için tekrar teşekkür ederim.
 
Merak ettiğim bir olay var, aynı outputu farklı networklerde kullanıyorsanız programın takip özelliği zedelenir. Söz konusu outputun önüne, farklı networkteki koşulları OR'layarak alsanız olmaz mı?
 
veya
Merak ettiğim bir olay var, aynı outputu farklı networklerde kullanıyorsanız programın takip özelliği zedelenir. Söz konusu outputun önüne, farklı networkteki koşulları OR'layarak alsanız olmaz mı?
veya flag olarak or'lamak daha anlaşılabilir olmazmı?
 
Titus: Merak ettiğim bir olay var, aynı outputu farklı networklerde kullanıyorsanız programın takip özelliği zedelenir. Söz konusu outputun önüne, farklı networkteki koşulları OR'layarak alsanız olmaz mı?[/QUOTE]

veya veya flag olarak or'lamak daha anlaşılabilir olmazmı?

Evet daha anlaşılır olur doğrusu da o şekilde yapmak, geçen bir makinada iki farklı mod için tekrar değişken(flag, merker) kullanmak yerine iki fonksiyonu modlara göre ayrı ayrı çağırıp içindeki değişkenleri iki fonksiyonda da farklı şartlarda çalışacak şekilde kullanmıştım. OB1 de de fonksiyonları moda bağlı olarak çağırdım.
Örneğin FC_ÇalışmaSenaryo1 içindeki bütün Flag veya Merkerleri
FC_ÇalışmaSenaryo2 içinde de aynı Flag veya Merkerleri kullandım ve ayrı bir fonksiyonda da her merkeri çıkışa bağladım.
Sonuç başarılı, bunun artıları; ikinci senaryo için tekrar Flaglar veya Merkerler kullanmadan(30-40 tane merker) ve çıkışları şartlara göre OR lamakla uğraşmamış oldum.
Eksileri Program takibi senaryo sayısı arttıkça karmaşıklaşabilir. Ama cross ref. zaten hangi fonk. olduğunu belirtiyor.
 
Son düzenleme:
Titus: Merak ettiğim bir olay var, aynı outputu farklı networklerde kullanıyorsanız programın takip özelliği zedelenir. Söz konusu outputun önüne, farklı networkteki koşulları OR'layarak alsanız olmaz mı?



Evet daha anlaşılır olur doğrusu da o şekilde yapmak, geçen bir makinada iki farklı mod için tekrar değişken(flag, merker) kullanmak yerine iki fonksiyonu modlara göre ayrı ayrı çağırıp içindeki değişkenleri iki fonksiyonda da farklı şartlarda çalışacak şekilde kullanmıştım. OB1 de de fonksiyonları moda bağlı olarak çağırdım.
Örneğin FC_ÇalışmaSenaryo1 içindeki bütün Flag veya Merkerleri
FC_ÇalışmaSenaryo2 içinde de aynı Flag veya Merkerleri kullandım ve ayrı bir fonksiyonda da her merkeri çıkışa bağladım.
Sonuç başarılı, bunun artıları; ikinci senaryo için tekrar Flaglar veya Merkerler kullanmadan(30-40 tane merker) ve çıkışları şartlara göre OR lamakla uğraşmamış oldum.
Eksileri Program takibi senaryo sayısı arttıkça karmaşıklaşabilir. Ama cross ref. zaten hangi fonk. olduğunu belirtiyor.[/QUOTE]

Ben de programımda sizin yukarıda bahsettiğiniz yöntemi uygulamıştım. Farklı senaryolar için aynı merker çıkışını kullandım ve ayrı bir fonksiyonda da bu merkerlere gerçek outputları bağladım. Sorunumun çözümünde bunun da etkisi olabilir. İlginiz için tekrar teşekkür ederim.
 
arkadaslarında dededigi gibi or komutu ile yada cıkısları her kosulu bir markere atayarak bu markerin o cıkısı 1 yapması saglana bilir.
 

Forum istatistikleri

Konular
128,381
Mesajlar
917,140
Kullanıcılar
450,262
Son üye
EminFurkan

Yeni konular

Geri
Üst