simatic s7 matematiksel bir işlem

rotsis

Üye
Katılım
7 Ağu 2011
Mesajlar
736
Puanları
6
Yaş
39
iyi çalışmalar arkadaşlar,
arkadaşlar basit bir toplama çıkarma işlemi yapmam lazım ama işin içinden çıkamıyorum.

Sahada kg cinsinden bir deger geliyor.ben bu degeri A noktasında göstermek istiyorum.
Sahadan gelen bilgi istenildiğinde resetleniyor.Ve resetlenince benim atıyorum 3 saat önce girdiğim degerin üstüne degil de tekrardan sıfırlanıyor.Yani sıfırlandıgında sahadaki deger benim degerim yine kaldıgı yerden toplaması lazım...fikirlerinizi bekliyorum
 
Doğru anladımmı bilmiyorum ama öyleyse; Resetten hemen önce o datayı başka bir alana kopyala (move) sonra yeni gelen data ile o alandaki datayı toplayarak A noktasına yaz...
 
İşin aslı bu bahsettiğim bir tumba kantar.Bana tumbadan gelen deger kepserver adlı bir programdan geliyor.Ben Md olarak kullanmıştım baktım stopa geçince plc onu zaten move ile transfer ettim bir dataya.Biraz kapsamlı şuan değil ama yarın size bir resim şeklinde yazılımı gösterebilirim.Sadece toplama ile bitmiyor çünkü 36 farklı yerde kullanıyorum...

Deneme yanılma yoluyla
1.kantar+1.sabit bir deger=1.ara toplam
2.kantar+2.sabit bir değer=2.ara toplam
1.ara toplam + 2.ara toplum =genel toplam
şimdi bunu yapmadan önce şunu denedim ve sonsuz saymaya başladı haliyle;
kantar degeri+toplam=toplam

sonra dedim ki sabit bir deger ile sürekli toplansın genel toplamı yazsın.ama bu sefer kantar degerine reset atınca haliyle tekrardan 0+0'dan başlıyor sonuç.Anlatamadım sanki

- - - Updated - - -

*stopa geçince degerler sıfırlandıgı için o değeri taşıdım,yazacaktım
 
sayın ertek68...bir türlü yapamadım.
fırsat bulursanız b urda paylaşabilr misinz?
 
Aşağıdaki kod; set değer değiştikçe değişen değerleri sürekli toplar ve toplama yazar, ta ki reset gelinceye kadar.

Kod:
[B][COLOR=#0000ff]IF[/COLOR] [/B]setvalue <> oldvalue [B][COLOR=#0000ff]THEN [/COLOR][/B]// Set değer ile eski deger faklı mı?
  toplam:=toplam+setvalue;   // girilen değer ile toplam degeri toplanır, toplama yazılır
  oldvalue:=setvalue;        // yeni set deger, eski degere yazılır
[B][COLOR=#0000ff]ELSIF [/COLOR][/B]reset [B][COLOR=#0000ff]THEN             [/COLOR][/B]// reset varsa toplamı sıfırla
  toplam:=0.0;
[B][COLOR=#0000ff]END_IF[/COLOR][/B];
 
Son düzenleme:
teşekkürler ama ben simatic manager'dan yazdım.sistemi durdurmalarıyla birlikte topladıgım 2. degişkeni ,sonuca move komutuyla taşıdım.
 
1.network
a m0.0 (baslatma butonu)
jnb _001
l 1.deger
l 2.deger(sureklı artan bır tam sayı degerı)
+d
t 3.deger (ıstenılen deger)
_001: Nop 0

2.network
a m0.1 (durdurma butonu)
jnb_002
l 3.deger
t 1.deger
_002: Nop 0


not:m0.0 ve m0.1 aynı anda çalışmıyor

bu şekilde yaptım
 

Forum istatistikleri

Konular
129,840
Mesajlar
930,680
Kullanıcılar
452,679
Son üye
kenan7777

Yeni konular

Geri
Üst