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

Son yazdığım program,her gün sonunda günlük sarfiyatın bir önceki gün ile toplanıp data blokta arşivlenmesi için. Pointer_3 bir önceki günün Db içindeki yerini ve değerini almak için işaretçidir.

Tarih aralığı girilerek sarfiyatın hesaplanması paylaşmış olduğum programda var.

MW10 --- Hesaplamak istenen aralığın başlangıç günü
MW20 --- Hesaplamak istenen aralığın bitiş günü
MD50 --- Sonuç
 
açıklama için çok teşekürler ama benim demek istediğim bakın toplama işleminde sabit kullanmışsınız bununla bunu topla dorumudur peki çıkarma işleminde nasıl yapıcaksınız bununla bunu çıkar olur peki bunu değil bunu çıkarı nasıl değştirceksiniz
 
işte bu ve bunun gibi işlemler için 1200 ve 1500 e yeni arayüz yapmışler mux demux gibi bloklar var bütün kayıt aldınız toplamalı blokların her bir değrini atıyorm mux girişine atıp hangisini kullanmak istediğniz çıkışa gösterbilirsiniz hatta ikitane kullanıp birini ilk değer yani son endeks birinide ilk endeks deyip birbirinden çıkarabilirsiniz ama bunu 300 yapamaz :eek:
 
Programda toplama ve çıkarma işlemi yapılan adresler sabit değil zaten,işlem yapılacak adresleri tanımladığımız pointer lar belirliyor.
-öncelikle DATE formatındaki tarih değerinden DAY kısmını MW30 a aktardığımızı düşünelim.yani MW30 da güncel gün değeri var.
-Bugün ayın 10 u olduğu için bugün MW30=10 DUR.

- L mw30
ITD
SLD 3
T #Pointer_1
komutlarını yazarsanız,pointer 1 e mw30 daki di işareti yüklersiniz (yani gün ayın 10 u)


OPN DB10
L DBW[#Pointer_1]
Komutu ile DB10.DBW10 u yüklemiş olursunuz,eğer bugün ayın 30 u olsaydı aynı komutla DB10.DBW30 u yüklemiş olacaktınız.

Yani pointer aslında kullanılan bir adres yada deger değil,işaretçidir.Duruma göre nereden okuma veya nereye yazma yapılacağını yönlendiren bir araçtır.
 
TIA portalın getirdiği birçok kolaylık var elbette ama bu iş TIA portal la yapılırda Simatic manager ile yapılamaz demek doğru değil .Çünkü TIA portala eklenen birçok şey zaten simatic manager ile yapılabiliyordu ve sadece kullanımı kolaylaştırıldı.Örneğin simatic manager da Jump distributor komutunu kaç kişi biliyor ve kullanıyordu? Şimdi TIA portalda ladder da bile var.Yani bütün mesele programa ne kadar hakim olabildiğimizdir.
 
ya beni yanlış anlamyın poınterın ne olduğunu bilmeyenler için çok iyi bir örnek vermişsiniz ben onların yerinede teşekkür edeyim size fakat hala benim soruma cevap olmamış ordaki poınter hala sabit dorumu bana bu komuttaki poınterı ekrandan deiştirebilirmisiniz artı ben tia portal demedim 1200 ve 1500 dedim dikkat teşekürler zaten konunun başlangıcı şöle galiba adam ne yazmış ben tarihler arası deer toplamı istiyorum demiş yani standart değil dorumu siz bu işlemi poınter ile zadece adresi belirterek yapmışsınız ne gereği var adam zaten word kaydırma komutu ile istediği data blounda kayıt tutuyor ekstradan toplama işlemi yapmışsınız ona okey toplam su sarfiyatı güzel ama ekranda şu tarih ile şu tarih arası bidaha yazıyorum olmaz çünkü çıkarma işlemindeki adresleri deiştirmeniz yada sizin yaptığınız şekille poınter numarasını deiştirmaniz gerekli dorumudur tek soru teşekürler
 
İ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.

Örnek programı daha önce yazdığım mesajımda paylaşmıştım. MW10 - MW20 hesaplanacak tarih aralığı(gün bazında ve değişken) ve MD50 sonuç.
Yani panelde tanımlanacak adresler bunlar.
MW10 ve MW20 ye girdiğimiz gün bilgisine göre pointer işaretleri değişiyor.
Çıkarma işlemi FC50 nin içinde yapılıyor ve sözkonusu adresler OB1 de FC50 inputlarında tanımlı.


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

Toplama-arşivleme örneğini bu mesajınıza istinaden yazmıştım.


Yazdığım örnek programı simulasyonda çalıştırıp test ettikten sonra paylaştım,programı birde siz test edin ve yanlışlık varsa lütfen düzeltin.

Ayrıca yanlış anlaşılacak bir durum yok,hepimiz bilmediklerimizi öğrenmek ve bildiklerimizi paylaşmak için buradayız.Saygılar.
 

Forum istatistikleri

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

Yeni konular

Geri
Üst