DS1302 ile role kontrol...

Başlatan mikrotronik, 03 Nisan 2016, 10:46:41

mikrotronik

#15
3D yapıda farklı bir algoritma üzerine çalışıyorum.

aRci

kodlar ac saatini baz alarak çalışmakta gun atlama yada diğer koşulları denedim.deneme için zaman saatinden veri alama yerine simdi adında word dwğişkenine göre calışmayı takip ediyor siz simdi değişkenine rtc den okuduğunuz saat bilgisini (desimal) simdi değişkenine aktarmanız gerekir

simdi.HIGHBYTE = SAAT
simdi.LOWBYTE = DAKIKA

rl bit değişkenini role konumunu göstermekte




simdi.highbyte = 9
simdi.lowbyte = 55
ac.highbyte = 23
ac.lowbyte = 50
kapa.highbyte = 10
kapa.lowbyte = 35
rl = 0

basla:
if ac > kapa then
if simdi >= ac | simdi < kapa then
rl = 1
else
rl = 0
endif
endif

if ac < kapa then
if simdi >= ac & simdi < kapa then
rl = 1
else
rl=0
endif
endif

lcdout $fe,1,"Simdi >> ",dec2 simdi.highbyte,":",dec2 simdi.lowbyte
lcdout $fe,$c0,"Ac    >> ",dec2 ac.highbyte,":",dec2 ac.lowbyte
lcdout $fe,$94,"Kapa  >> ",dec2 kapa.highbyte,":",dec2 kapa.lowbyte
lcdout $fe,$D4,"Rl    >> ",dec rl

'alt kodlar saat algorıitmasını oluşturuyor.
pause 500
simdi.lowbyte = simdi.lowbyte + 1
if simdi.lowbyte >=60 then simdi.lowbyte = 0: simdi.highbyte = simdi.highbyte + 1
if simdi.highbyte >= 24 then simdi.highbyte=0


GOTO BASLA

ete

Uzun zamandır bu konu kafamı kurcalıyor idi. Amacım aslında tutarlı bir karşılaştırma yöntemi bulabilmek idi. Bir çok bakış açısı geliştirdim muhtelif kodlar ürettim ama hepsinde de bir takım göz ardı edilmiş pozisyonlar ortaya çıktı. Sebep neydi derseniz olaya 3 boyutlu bakmayı keşfedememiş olmam diyebilirim.
Son olarak, olayı 24 saat üzerinden ve dairesel bir grafik üzerinde düşününce olası farklı alternatiflerin yalnızca 3 adet olduğunu hayretle gördüm. Bu 3 farklı alternatif hem açma alternatiflerinde hemde kapatma alternatiflerinde geçerli. Bu arada daha stabil sonuçlar alabilmek amacı ile röle yada alarmın açılma alternatiflerini ayrı, kapatılma alternatiflerini ayrı düşünmeye çalıştım. İyide oldu ve sonuca en sonunda ulaştığımı düşünüyorum.
24 saatlik dilime bölünmüş bir daire düşünün. En üstte ortada gün aşım noktasını işaretleyince yani saatin 00:00 olduğu nokta bu referans noktasına bağlı olarak 3 farklı açılma alternatifi şöyle olabiliyor.
1. SIMDI>AC AND SIMDI<KAPA.  Açılma saati, kapanma saati gün aşımından önce ve Şimdi açılmadan sonra kapanmadan önce. Bu konumda rölenin açılması gerek. Zira sistem açılma saatini geçmiş ama henüz kapanma saatine ulaşmamış.

2. SIMDI>AC AND SIMDI>KAPA and GUNASIM=1  konumu. Bu konumda, şimdi ve Acılma gün aşımından evvel ancak kapanma gün aşımından sonra. Buda bir açılma konumu oluyor.

3. Son alternatifte SIMDI<AC and SIMDI<KAPA AND GUNASIM=1. Bu konumda açılma gün aşımından önce ancak Şimi ve Kapanma Gün aşımından sonra olacak. Buda bir açılma konumu oluyor.
Bu üç alternatiften başkada yok açılma konumu.

Gelelim Kapanma meselesine. Kapanmanın temel kuralı ŞİMDİ isimli zamanın Kapanmadan sonra gelmesidir.  Yani Simdi>Kapanma ise direk kapanmalıdır. Ancak alternatiflere göre konumlar şöyle oluyor;

1. SIMDI>AC AND SIMDI=>KAPA . Bu alternatifte bütün parametreler gün aşımından evvel yer almaktadır.

2. SIMDI<AC AND SIMDI<=KAPA AND GUNASIM=1.  BU alternatifte AC ve KAPA günaşımından evvel SİMDİ ise günaşımından sonra yer almaktadır.

3. SIMDI<AC AND SIMDI>KAPA AND GUNASIM=1.  Bu alternatifte de AC gün aşımından evvel KAPA ve Şimdi ise gün aşımından sonra yer almaktadır.
Bu 3 alteratiften başkada kapanma alternatifi yoktur.

Bu durumda artık olması gereken kod sistemi aşağıdaki şekilde olacaktır. Hem anlaşılır olması hemde daha stabil çalışacağını düşündüğüm için açma kontrolü ayrı, Kapama kontrolü ayrı olarak değerlendirilecektir.

ACMA_KONTROL:
IF SIMDI=>AC AND SIMDI<KAPA THEN ROLE=1
IF SIMDI=>AC AND SIMDI>KAPA AND GUNASIM=1 THEN ROLE=1
IF SIMDI<=AC AND SIMDI<KAPA AND GUNASIM=1 THEN ROLE=1

KAPAMA_KONTROL:
IF SIMDI>AC AND SIMDI=>KAPA THEN ROLE=0
IF SIMDI<AC AND SIMDI<=KAPA AND GUNASIM=1 THEN ROLE=0
IF SIMDI<AC AND SIMDI=>KAPA AND GUNASIM=1 THEN ROLE=0


Bu sistemi iki gündür Haftalık Timer devresinde kullanıyorum. Hiç bir olumsuzluk gözlemlemedim.
Aklıma gelen her türlü saati girip deniyorum.

Ete

mikrotronik

Ete hocam,
Bu kod basarili gorunuyor.
Tesekkur ederim.

Powered by EzPortal