Wincc de TAG İçindeki Bir Bitin Setlenmesi

Katılım
18 Kas 2009
Mesajlar
7
Puanları
1
Yaş
56
Arkadaşlar,
Elimde 32 bitlik bir TAG var. Butona bastığımda bu TAG içindeki bir bitin setlenmesini/resetlenmesini istiyorum (mesela 27. bit) bunu nasıl yapabilirim?
bunu VB veya C ile de yapabiliriz. Yönetimi bilen var mı yoksa illa da code mu gerekli, bunu yapabilecek kodu yazıp buraya koyabilirseniz sevinirim.

ben bunu C kullanarak çözdüm. elimizdeki TAG'ı alıp and ve or işlemine sokarak bunu gerçekleştirebiliyoruz. Kimse cavap yazmadığına göre sanırım bunu açıklamam arkadaşların faydasına olacaktır. Butona bastığımızda 1 olması için, sol fare basıldığında 1 yapacak kod, sol fare bırakıldığında da 0 yapacak kod aşağıdadır. Örnek olarak vereceğimiz TAG 32 bit ve bit 0.0 dan 3.7 ye kadar diye kabul edelim. TAG adımız da myTag olsun. Butona bastığımızda 1 ve sıfır yapacağımız biti de 2.5 oılarak örnekleyelim. Buna göre:


Bu biti 1 yapmak için kodumuz
(press left içindeki C kodumuz)
Kod:
{
unsigned long int a;                                  //değişiklik yapacağımız 32 bitlik TAG'ı depolayacağımız değişken
a = GetTagDouble("myTag");                      //TAG'ımızı a değişkenine atıyoruz
SetTagDouble("myTag",a|0x00000200);       //| işareti OR anlamındadır. Aldığımız TAG da sadece 2.5 biti 1 olmaya zorlanır
                                                            // ve diğer bitlerin konumlarında değişiklik yapılmaz. 0x hexadecimal demektir.
                                                           //SetTagDouble ile de TAG'ımıza OR işlemi sonucunu atarız.
}


İlgili biti 0 yapmak içinde benzer işlem uygulanır. Şöyleki:
(Release left içindeki C kodumuz)
{
unsigned long int a;           //değişiklik yapacağımız 32 bitlik TAG'ı depolayacağımız değişken
a = GetTagDouble("myTag");        //TAG'ımızı a değişkenine atıyoruz
SetTagDouble("myTag",a&0xFFFFFDFF);       //& işareti AND anlamındadır. Aldığımız TAG da sadece 2.5 biti 0 olmaya zorlanır
                                                           // ve diğer bitlerin konumlarında değişiklik yapılmaz
                                                            //SetTagDouble ile de TAG'ımıza AND işlemi sonucunu atarız.
}
 
Moderatör tarafında düzenlendi:
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.
objenin özelliklerinde mouse action kısmında "press left", "release left" içine dynamic connection tanımlayabilirsin. ilgili pop-up 'ta "bit" diye seçenek var. oradan ilgili tag' nı ilgili bitini seçebilirsin. Fırsat bulabilirsem resimli anlatımını gönderirim.
 

Forum istatistikleri

Konular
128,732
Mesajlar
920,060
Kullanıcılar
450,789
Son üye
fakedemon

Yeni konular

Geri
Üst