Merhabalar,
Saat 10:30 dan ÖNCE sinyal oluşmasın.
Burada ince nokta şudur:
Saat 11 olduğu andan itibaren serbest bırakmak + 10:30 ile 11 arasını da ayrıca serbest bırakmak.
Serbest bırakmak= O süreçte ana koşul sinyal üretebilir.
Başka türlü yazamazsınız. Ve burada AND ve OR lar mutlaka doğru kullanılmalıdır.
(HOUR()=10 AND MINUTE()>=30) OR HOUR()>10
İpucu: HOUR()>10 demek zorundasınız. Saat 11 den itibaren tüm saatleri serbest bırakmak istiyorsunuz.
(HOUR()=10 AND MINUTE()>=30) ifadesi de 10:30 ile 11 arasını serbest bırakıyor.
Bu 2 sürecin tamamında sinyal üretilebilmesi için, bu 2 koşulu OR ile birleştiriyoruz.
*
Saat 17:45 den SONRA sinyal oluşmasın.
Bu sefer zaman skalasına tersten bakacağız.
(HOUR()=17 AND MINUTE()<45) OR HOUR()<17
*
Doğal olarak bu 2 koşulu birleştirmek isteyeceğiz.
Parantezlerin önemine dikkat ediniz.
((HOUR()=10 AND MINUTE()>=30) OR HOUR()>10) AND ((HOUR()=17 AND MINUTE()<45) OR HOUR()<17)
Bu koşulun vereceği sonucu grafik üzerinde izlersek:
Sabah 10:30 öncesinde ve akşam 17:45 ten itibaren sıfır olduğunu görebilirsiniz. Diğer zamanlarda koşul doğrudur.
Bunu nasıl kullanıyoruz. Şu şekilde:
Bir ana koşulunuz var. Bunun, sadece 10:30 ila 17:45 arasında sinyal üretmesini istiyorsunuz.
O zaman,
O ana koşulun tamamını parantez içine alacaksınız ve peşine AND ile bu koşulu ekleyeceksiniz.
İpucu: Ana koşulunuz muhtelif tanımlar içerebilir. Tanımları da değil, sadece koşul satırının tamamını parantez içine alacaksınız.
Mesela koşulunuz:
A:=MOV(….)
B:=MOV(…..)
C:=MOST(…..)
CROSS(A,B) OR CROSS(B,C)
ise, siz saat koşulu ile birleştirmeyi şöyle yapmalısınız:
A:=MOV(….)
B:=MOV(…..)
C:=MOST(…..)
(CROSS(A,B) OR CROSS(B,C)) AND ((HOUR()=10 AND MINUTE()>=30) OR HOUR()>10) AND ((HOUR()=17 AND MINUTE()<45) OR HOUR()<17)
DİKKAT: Grafik periyodunuz ile buraya yazacağınız saat / dakikalar arasında uyum olmalıdır. Mesela 10 dklık grafikte minute()=5 ifadesi çalışmaz.