WinCC ile Matematik İşlemleri Nasıl Yapılır

nazmi74

Üye
Katılım
12 Ocak 2007
Mesajlar
111
Puanları
1
Yaş
39
Arkadaşlar, Wincc Scada ile matematik işlemleri nasıl yapılır? Mesala benim üç adet değişkenim var. Bu değişkenleri plc ye gönderip orda işlem yapıp sonra tekrar scadaya göndermektense bu işlemi scada ile yapmak istiyorum. İşlem iki değişkeni çapma işlemi uygulayıp diğer değişkene bölmek. Bunu scada ile yapmak mümkün mü?
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Bir örnek verebilir misiz? Üç adet IOField elaman var. Bunlardan iki tanesinin içindaki değeri çarpıp üçüncüsünün içine yazmasını istiyorum. Bana bu şekilde veya benzer bir çalışma varsa paylaşabilirmisiniz?
 
SmartTags("Tagname3") = ( SmartTags("Tagname1") * SmartTags("Tagname2") )

VB Script içine yazmanız yeterli. Ayrıca çalışması için bu script dosyasını bir şekilse tetiklemeniz gerekiyor.

Örneğin,scripti zamanlanmış görevler içinde 1 dakikada bir çalıştırın. PLC den gelen bit hesaplama tetiklemesi M10.0 olsun ve M10.0 scada da "tag_tetikleme" olarak tanımlanmış olsun.

If smarttags("tag_tetikleme") = true Then // tetikleme biti true ise hesaplamayı yap.

SmartTags("Tagname3") = ( SmartTags("Tagname1") * SmartTags("Tagname2") )

Reset smarttags("tag_tetikleme") // Hesapladıktan sonra tetikleme bitini resetle.


Else Nothing // tetikleme biti false ise hiçbir işlem yapma.

End if
 
C ile buton altında yaptım. Değerleri giriyorum hesapla butonuna basınca hesaplamayı yapıyor. Bahsettiğiniz işler için uğraştım fakat bir sonuca ulaşamadım. PLC de bir dakika ara ile iki saniye aktif olan bir çıkış oluşturdum. Global Script te VB ile verdiğiniz örneği denedim. Else Nothing satırında hata verdi sildiğimde hata vermedi. Acaba nerede hata yapıyorum. Scripte zamanlanmış görevler nedir nasıl çalıştırılır.
 
int a,b,c;
a=GetTagDWord("DEGER_1");
b=GetTagDWord("DEGER_2");
c=a+b;
SetTagDWord("TOPLAMA",c);
C ile yapılmış basit bir toplama işlemi + işlemi yerine -,/,* işlemlerini kullanabilirsin.Kodu butonun event kısmına yazarsan çalışır.
 
ergun7321,
İlginize teşekkürler. Ben bu işlemi buton ile yapabiliyorum. Benim istediğim belli bir sürede otomatik yapması. Mesela bir dakika ara ile otomatik hesaplasın.
 
Tetikleme için husso35 arkadaşımızın vermiş olduğu tetikleme şeklini kullanabilirsin. Varsayalım yapamadın.Eğer kullanmış olduğun tag'lar veriyi PLC'den alıyorsa PLC ler matematiksel işlem yapabiliyor. Direk PLC ile bu işi yapabirsin.Şu an bende Fatek marka PLC var.İki ayrı registerdeki değeri toplayıp farklı bir register' e atayabilirsin.O registeride i/o field nesnesinde kullanabilirsin. Kolay gelsin.
 
Sadece bir veriyi plc den alıyorum. iki veriyi ben scada ya giriyorum. İki adet işlem yaptırıyorum. Bu işlemi plc ile yapmak mümkün. İlk etapta o şekilde yaptım. Değeri plc ye gönderip işlem yapıp tekrar scadaya göndermek bana mantıksız geldi. Değerler plc ile elde edilse evet işlemleri plc de yapmak en iyisi. Ama scada üzerinde girdiğim iki sayıyı çarpmak için neden plc yi kullanayım. Scada ile de bu işlemi yapmak mümkün.
husso35 arkadaşın dediklerini yaptım. Ama çalıştıramadım. Yaptıklarımı anlatayım,
Global Script te VB editörü açtım. Project modules tıkladım yeni bir project modules açtım. Kodları yazarak kaydettim. Scada sayfasını çalıştırdığımda değişkenleri giriyorum hiç bir işlem yapmıyor. Tetiklemek için plc de bir dakika ara ile iki saniye aktif olan bir program yaptım. Bunu bir taga atadım. Acaba nerde hata yapıyorum?
 
Toplamın yazılacağı i/o field nesnesinin properties-->output/input-->Output value'den dynamic dialog oradan direct'i işaretle formulas kısmına toplamının alınacağı iki tagın arasına + operantını seçersen otomatik olarak iki tagı toplayıp i/o field nesine atar.Örneğin 'tag_1'+'tag_2' olarak gir.Bu şekilde tetikleyici kullanmana gerek kalmaz.
 

Yeni mesajlar

Forum istatistikleri

Konular
128,189
Mesajlar
915,720
Kullanıcılar
449,957
Son üye
sezercakmak

Yeni konular

Geri
Üst