İki sayı arasındaki farkı ile röle sürmek

Başlatan aberk, 23 Kasım 2015, 00:11:27

aberk

Merhaba arkadaşlar  iki farklı değişken arasındaki sayı farkı 5 kala istenilen portu nasıl aktif edebiliriz

Örneğin A değişkeni 20 olsun
b değişkenide 0 dan 20 ye  kadar  artırarak saydıralım B değiskeni A değişkenine  5  kala portun birini aktif etsin

Yardımcı olursanız sevinirim Arkadaşlar.

İlyas KAYA

if B>=A-5 then PORTA.0=1

Bu kadar kolaymı sorduğunuz soru yoksa ben mi anlayamadım ? :)
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

Bahri Bilir

"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

aberk

#3
Kesinlikle bu ;) cooook doğru anlamissin TSK ederim... Eve gider gitmez deneyecem.

ete

Sayı sayma devam edeceğine göre komutun doğrusu şöyle olmalı bence;
if B=(A-5) then PORTA.0=1
Bu şekilde A=20 iken B=15 olduğunda PORTA.0=1 olur. B nin sonraki değerlerinde pin etkilenmez.
Şayet komutu if B>=(A-5) then PORTA.0=1 şeklinde yazarsanız,
B=16-17-18-19-20 olduğunda da pini SET ettirirsiniz. Belki önemli değildir ama  bir başka yerde B=16 iken pin reset yapılabilir ve ardından hemen aynı komut onu set etmeye çalışır. Açıklamaya göre doğrusu B=(A-5) dir.

Ete

İlyas KAYA

İlk başka "=" olarak yaptım sonra saysının 1 er mi 2 şer mi arttığını bilmediğim için ">=" olarak düzelttim
2 şer artar ise eşitlik sağlanmayacak sayı 15 değil 16 olacaktır.
Kesin olarak -5 'inde çalışması isteniyor ve sayı 1'er artacak ise elbette "=" kullanmak daha doğru olacaktır.

Teşekkürler.



Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

aberk

#6
Yaptığım devrenin resimlerini attım orada limit olarak ayarladğm değer örneğin 20 olsun motoru calıştırdğım zamanda Sipir yani tur işlemi saymaya baslayacak we tur 15 olunca bana bir portunu aktif eden bi kod lazım NOT: ben limiti elle girince arada ki fark 5 olunca sisteme girmesin.üste werilen kodları denedim fakat motor çalştırmadan yani limiti arttrmaya baslayınca aradaki fark 5 oldumu port aktif oluyor.

İlyas KAYA

#7
SAyın @ABERK; Kodları eklerseniz kontrol edelim. Bir yerde hata yapıyorsunuz.
Var ise ISIS simulasyonu onuda ekleyiniz.

Ekleme: Hatayı da tahmin edebiliyorum. Sayma işlemi için kullandığınız switch yada okuyucunun kesme işlemi yapılmamıştır. Port okunduğunda yüksek bir hız ile sayıyordur.
Sensörden gelen bilgi 1 olsun. Sayma yapılsın. Sensör tekrar 0 a dönmeden 2nci sayım yapılmamalı.
Siz 1 olduğu durumda sayma yapıyor ve hiçbir önlem almıyorsanız sensör 1 de kaldığı sürece yüksek hızla sayacaktır.

Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

aberk

Tamm  ben dokümanları gönderecem şuanda cepten giriyorum.bu arada sayma yapan portlara iki yönlü sivic kullandım sivic basılı kaldığı surece sayma islemi artmasın diye önlem aldım yanı sivic bırakılınca sayma işlemi yapıyor benim problemim limit ne olursa olsun limite  gelmeden önce bir başka portu kontrol etmek sizin verdiğiniz kodu kullandım oldu fakat şöyle sorun yaşadım cihazı ilk açınca limitte sipirde 0 konumunda ben elle limiti  10 yapmak istediğimde port aktif oluyor halbuki motor dönünce şipir sayıp arada ki fark 5 olunca port aktif olsun sanırım biraz karisik anlattım;) dokümanları yukleyince daha net anlaşılır

aberk


F®T

 if MOTOR=1 AND TUR= SEC-5 then LED_RED=1     'TUR    sec ten 5 sayı düsükse ledredi yak


O zaman eğer motor 1 ise ve tur secilenden 5 eksikte ise led yansın olacak.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

aberk

peki şu YUKARI ve AŞAĞI değişkenine  iki yönlü siviç kullandım motor yawaş dönünce okumadan sıkıntı yok hızlı dönünce arada atlama yapıyor yani sayma işlemi eksiik oluyor bunun nedeni ne olabilir?

F®T

siwich yavaş kalıyor demekki.Endüktif sensör kullan.Ayrıca yukarı aşagı kısmındaki while wend ne işe yarıyor onları iptal edip bir dene istersen.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

aberk

while wend siviç basılı kaldıgında sayma işlemi yapmasın dıye taki siviç bırakınca sayma yapsın

F®T

Sanırım swich makinanın hızına yetişmiyor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Powered by EzPortal