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
 
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
 

Ö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ı.



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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…