Jump to content
TUMER

olasılığa göre bir aktif etme

Recommended Posts

Herkese iyi çalışmalar,

Sistemde bulunan 6 adet valfin her döngüde sadece 4ünü aktif etmek istiyorum. kabaca anlatmak gerekirse 6nın 4lü permütasyon hesabına göre 360 farklı varyasyonun tamamlanması ardından döngünün başa alması gerek. c alt programda permütasyon hesaplama yapabiliyorum ancak hangi yolla bitleri aktif edebileceğimi çözemedim. konu ile ilgili yol gösterecek çözüm önerisi sunarsanız çok sevinirim. teşekkürler.

Link to post
Share on other sites

Hesaplamaların sonucunda bir rakam elde edebiliyorsan bu değeri bir word değerine atıp, bu word' ün bitlerini kontrol ederek tanımlayacağın bitleri aktif ya da pasif yapabilirsin.

Fikir olsun diye örnek te verdim.

Faydalı olur umarım.

image.png.fa47c216cdc9194a960ec402aef4abbb.png                                       image.png.89d36c2872e5f0883eb798fe1ea5156d.png

 

Link to post
Share on other sites

Öncelikle cevap için teşekkür ederim. Ancak ya ben örneği anlamadım ya da derdimi iyi anlatamadım. Şöyle ki A,B,C isminde çıkışlarımız olsun, her tetiklemede bu çıkışların sadece ikisi sırası değişkenlik gösterecek şekilde aktif olacağını düşünelim. Sonuç:

A,B; B,A; A,C; C,A; B,C; C,B;

şeklinde 6 ihtimal ortaya çıkıyor. Bu altı ihtimali çıkışlara tanımlayıp verdiğiniz örnekteki gibi bit operasyonuyla çıkışları kontrol edebiliriz. ancak ihtimaller yükseldiğinde, bu ihtimalleri tek tek tanımlamak oldukça güç. bu yüzden ihtimalleri listeleyecek bir algoritmaya ihtiyaç var gibi. bunu algoritmayı plc ile kurabilmem mümkün mü?

Teşekkür ederim

Link to post
Share on other sites

c alt programı kullanarak 0..5 (yani 6 adet rakam üret)

/* Intializes random number generator */

srand(time(NULL));

/* bir sayı üret */

sayi=rand()%6;

 

sayi değişkenini GMTSUITE Operandlar bölümünde WORD olarak tanımlayın. Aşağıdaki örnek 2 sn. de bir 0 ila 5 arasında random rakam üretiyor.

Sonra tetiklemeyi nasıl yapılacak ise ardından bu alt programı çağırın. Her seferinde 0..5 arasında bir değer dönecek. IF cümlecikleri ile bu değer kullanılabilir.

resim.png.f02664e9a7494140d466a50fa5b8c398.png

 

Not : Çevrim dışı Simulasyon ile denedim. ANSI C deki mod işlevinin gmtsuite de farklı bir kullanımı olabilir. Gerçek ortam denemesi yapmadım.

Link to post
Share on other sites

Merhabalar;

6 adet çıkışa göre istemiş olduğunuza göre örnek bir Ladder programı yazdım. 

Tetikleme için 500ms bir Osilatör kullanıldı. Tercihinize göre tetiklemeyi istediğiniz gibi değiştirebilirsiniz.

İyi Çalışmalar

Kolay Gelsin

dnm_prog.gpf

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...