ilk tarih ve son tarih arasındaki değerleri toplama

kaslan

Üye
Katılım
17 Nis 2010
Mesajlar
35
Puanları
1
kolay gelsın bır konuda yardımınıza ıhtıyacım var soyle gostereyım


01\01\2000 10,30
02\01\2000 8,30
03\01\2000 15,32
04\01\2000 10,38
05\01\2000 10,00
06\01\2000 10,50
07\01\2000 10,30
08\01\2000 17,30
09\01\2000 14,50
010\01\2000 20,35
011\01\2000 30,36
012\01\2000 16,39
013\01\2000 19,40
.
.
.
.

bu sekılde kayıt yapıyorum soylekı

ornek_1 01\01\2000 ----09\01\2000 = (xxxxx)
ornek_2 05\01\2000 ----24\01\2000 = (xxxxx)
((xxxx) topmlam sonuc )arasındakı deger lerı toplasın toplan sonucu versın
ıkı tarıh arasındakı degerlerın toplamını nasıl yapabılırım
tarıhler
saygılarım;
 
Cihaz olarak ne kullanıyorsun artı bu kayıtları nasıl bir data tipiyle tutuyorsun onuda bir yaz bakam
 
S7300 315 pn\dp su sayacı var bana sınyal gonderıyor bende gunluk ne kadar su mıktarı varsa topluyorum ve worde atıyorum hmı de kaydırma yaparak hergun sonunda mıktarı ekranda verıyor tabı tarıhıde ve ıstenılen ılk tarıhı gırdık son tarıhı gırdık tarıhler arasındakı toplamıda gostersın
 
benim anladığım su sayacından bir puls alıp bunu saydırıyorsun atıyorum 24 saate bir endeks alıyorsun dorumudur senin istediğin ekrandan şu tarih ile şu tarih arası değerleri toplamı s7 300 de bu dediğin olmaz fakat bir tablo oluşturup atıyorum son 30 günün değerini tutabilirsin
 
İstediğiniz işlemi kısmen yapmanız mümkün,bunun için pointer kullanarak programlama yapmanız gerekli.

Örneğin sadece ay bazında hesaplama yapmak için,arşiv tuttuğunuz data bloğun her satırını gün olarak tanımlayıp ve her satırı bir önceki gün ile toplayarak kayıt yapın (byte olarak).Bu metodla 20.satır değerinden 5. satır değerini çıkarınca ayın 5 i ile 20 si arasındaki 15 günlük sarfiyatı bulmuş olacaksınız.

Tarih aralığını hesaplama kısmında pointer kullanmanız gerekli.
 
1 yılda 365 gun var benım db de tarıh ve deger var

TARIH ARRAY[0..365]OF DATE
DEGER ARRAY[0..365]OF REAL

GUN SONUNDA KAYDIRMA BITI AKTIF EDEREK
WORD KAYDIRMA KOMUTUNU KULLANARAK
SINYAL GELDIGINDE DGERI VE TARIHI KAYDIRMA YAPIYOR
(DATETARIH FIELD) (I/O FIELD=

MISAL TARIH MW0 OLSUN
DGER DE MD10 OLSUN


SECMIS OLDUGUM TARIH=DEGER (01/01/200=12.3)

TARIH=DEGER
TARIH=DEGER
TARIH=DEGER
TARIH=DEGER
TARIH=DEGER
TARIH=DEGER
.
.
.
.
ESIT SEKLINDE GIDIYOR TARIHI DEGERE ESITLEDIM SAYALIM
MD10......... MD400 DAHIL OLMK UZERE TOPMLAMI SONUC?
 
İstediğiniz işlemi ekteki projede ay bazında yaptım.Su sarfiyatının hergün 10 olduğunu ve DB10 içerisine hergün toplanarak kayıt ettiğimizi varsayalım.
MW10 ve MW20 başlama-bitiş gün olarak değer verip Simulatörde VAT_1 tablosundan test edebilirsiniz.


Her ay için ayrı DB oluşturularakta geliştirilebilir.
Yıl bazında çalışmak isterseniz,bir tarih bloğu oluşturarak bu işlemi yapabilirsiniz
örn: 20/11/2013 --> 20131120
bu blok tarihi Pointer ile değerlendirip aynı metodla yapılabilir.
 

Ekli dosyalar

  • Test_hesap.zip
    347.3 KB · Görüntüleme: 25
benim şu an anlamadığım bir şey var tamam her gün alınan dğeri bir önceki değerle toplicaz yazmışsınız bunu toplama işlemine nasıl taşicaksınız peki veya istenilen aralıktaki değeri çıkarma işlemine
 
A I 10.0 // örn Günlük kayıt için tetikleme biti
FP M 200.0 //yükselen kenarı ile
JNB end



///----Bir önceki gün için pointer işareti oluşturulması

L MW 30 //Ayın 20 si
L 1 //Bir önceki gün
-I //Ayın 19 u
ITD
SLD 3
L L#4 //DB satır araları 4Byte(real) olduğu için 4 ile çarp
*D
T #Pointer_3 //Bir önceki gün için pointer degeri ( Ayın 19 u için )

//----Güncel gün değeri için pointer işareti oluşturulması

L MW 30 //Günü pointer a taşı
ITD
SLD 3
L L#4
*D
T #Pointer_4 //Güncel gün pointer degeri


//----Dünkü ve bugün olan sarfiyat değelerinin toplanarak bugünün DB satırına yazılması
OPN #Kayit_Arsiv_DB_no
L DBD [#Pointer_3] //Dünkü sarfiyat toplam değeri
L MD 100 //Bugünün sarfiyat değeri
+R
T DBD [#Pointer_4] //Son toplam sarfiyat değeri(bugün ile bearber)



end: BE





İstenilen tarih aralığı hesaplaması paylaştığım dosyada var.
 
Son düzenleme:
sayın husso son satırdaki poınter 3 ü sabit olarak yazıyorsunuz bunu adam ekrandan nasıl deiştircek atıyorum poınter 2o nasıl yapıcak
 

Forum istatistikleri

Konular
129,867
Mesajlar
930,872
Kullanıcılar
452,732
Son üye
erencok

Yeni konular

Geri
Üst