Array Komutu Hakkında

ANTONİAS

Üye
Katılım
5 Mar 2008
Mesajlar
53
Puanları
1
Yaş
39
arkadaşlar 8 byte lik oluşturduğum veriyi nasıl okurum yani her bir biti
örnek: array(0..7)of byte gibi.

saygılarımla
 
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.
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
Merhabalar

8 ayrı byte 'i bir array'a tanımlayıp ve bu bilgileri nasıl çekebileceğinimi soruyorsun acaba?
 
Son düzenleme:
Merhabalar

8 ayrı byte 'i bir array'a tanımlayıp ve bu bilgileri nasıl çekebileceğinimi soruyorsun acaba?

evet şöyle DWORD lük bir sayıyı 1er byte'lık sayı şeklinde görmek istiyorum bunun için herhengi bir hazır kütüphane varmı? veya nasıl oluşturabilirim
 
kütüphaneye gerek yok.

VAR
dSayi : DWORD;
bit0 : BOOL;
bit1 : BOOL;
bit2 : BOOL;
(*...*)
END_VAR

bit0 := dSayi.0;
bit1 := dSayi.1;
bit2 := dSayi.2;
 
pardon, bit bit değil, byte byte görmek istemişsin. Bunun için lenze'nin bir kütüphanesinde bir fonksiyon var. fonksiyon ismi:
L_SDC_DWordTo4Bytes

fakat bu fonksiyonu bit bit ayırarak kendin de yazabilirsin.
 
Burada benım anladıgım kadarıyla sen aslında array kullanımını sormuyorsun, word byte bir yapıları hakkında yardıma ihityacın olduğunu anlıyorum ben şahsen?
oyle oldgunu varsayıp izah edeyim.
word = 2Byte = 16Bit
Byte = 8bit'ten oluşur.
Byte numarası 6 olan bir alanın siemens dilinden M byte olduğunu varsayarsak
MB6 olarak gösteririz. Bu byte'ın ilk biti M6.0 bitidir ve sırayla M6.1....M6.7 kadar gider sonradaki bit ise artık MB7 byte'ına aittir. Onu da M7.0 olarak gösterebiliriz.
Umarım açıklayabilmişimdir.
Kolay gelsin..
 
pardon, bit bit değil, byte byte görmek istemişsin. Bunun için lenze'nin bir kütüphanesinde bir fonksiyon var. fonksiyon ismi:
L_SDC_DWordTo4Bytes

fakat bu fonksiyonu bit bit ayırarak kendin de yazabilirsin.

VAR
DW : DWORD;
B1, B2, B3, B4 : BYTE;
END_VAR

(*PRG*)
DW;


b1;
b2;
b3;
b4;


B1;
B1.0 := DW.0;
B1.1 := DW.1;
B1.2 := DW.2;
B1.3 := DW.3;
B1.4 := DW.4;
B1.5 := DW.5;
B1.6 := DW.6;
B1.7 := DW.7;


B2;
B2.0 := DW.8;
B2.1 := DW.9;
B2.2 := DW.10;
B2.3 := DW.11;
B2.4 := DW.12;
B2.5 := DW.13;
B2.6 := DW.14;
B2.7 := DW.15;


B3;
B3.0 := DW.16;
B3.1 := DW.17;
B3.2 := DW.18;
B3.3 := DW.19;
B3.4 := DW.20;
B3.5 := DW.21;
B3.6 := DW.22;
B3.7 := DW.23;


B4;
B4.0 := DW.24;
B4.1 := DW.25;
B4.2 := DW.26;
B4.3 := DW.27;
B4.4 := DW.28;
B4.5 := DW.29;
B4.6 := DW.30;
B4.7 := DW.31;

DW değişkeni B1,B2,B3,B4 olarak 4 BYTE'a bölünmüş durumda.

ya da

(*DEGISKENLER*)
VAR
DW : DWORD;
B1, B2, B3, B4 : BYTE;
END_VAR

(*PRG*)



B1 := DWORD_TO_BYTE(SHR(SHL(DW, 24), 24));
B2 := DWORD_TO_BYTE(SHR(SHL(DW, 16), 24));
B3 := DWORD_TO_BYTE(SHR(SHL(DW, 8), 24));
B4 := DWORD_TO_BYTE(SHR(DW,24));
 

Forum istatistikleri

Konular
128,880
Mesajlar
921,260
Kullanıcılar
451,015
Son üye
alperen uğur

Yeni konular

Geri
Üst