Word to bool?

baybars

Üye
Katılım
16 Nis 2007
Mesajlar
253
Puanları
1
Yaş
40
Merhaba arkadaşlar.

simatic manager da scl de WORD1 isimli word değişkenimin bitlerinin değerini öğrenebileceğim bir komut varmıdır.

yapmaya çalıştığım 0-->15 e kadar her bir biti bir olduğun başka bir bool değişkeni bir yapmak.

codesys de çok kolay yapılan bu uygulama siemens de zorlayıcı nedense.

ne demek istediğimi daha iyi anlatabilmek için codesys örneğini paylaşıyorum ;

FUNCTION_BLOCK W_TO_BIT
VAR_INPUT
WORD1: INT;
END_VAR
VAR_OUTPUT
B0: BOOL;
B1: BOOL;
B2: BOOL;
B3: BOOL; (* *)
B4: BOOL; (* *)
B5: BOOL; (* *)
B6: BOOL; (* *)
B7: BOOL; (* *)
B8: BOOL; (* *)
B9: BOOL; (* *)
B10: BOOL;
B11: BOOL; (* *)
B12: BOOL; (* *)
B13: BOOL; (* *)
B14: BOOL; (* *)
B15: BOOL; (* *)

END_VAR
VAR
END_VAR
(*************************)
B0:= WORD1.8;
B1:= WORD1.9;
B2:= WORD1.10;
B3:= WORD1.11;
B4:= WORD1.12;
B5:= WORD1.13;
B6:= WORD1.14;
B7:= WORD1.15;
B8:= WORD1.0;
B9:= WORD1.1;
B10:= WORD1.2;
B11:= WORD1.3;
B12:= WORD1.4;
B13:= WORD1.5;
B14:= WORD1.6;
B15:= WORD1.7;
 
Step 7 de Her durumun veri tütnün ne olduğuna bakmaksızın bir'lerini erişmek sorun değildir.

Örn : DB1.DBW0 adresinin bitleri de "DB1.DBX0.0, 0.1, 0.2 ..... DB1.DBX1.7" şeklindedir (16 bit)
Örn : MB100 = M100.0 ile M100.7 arasındaki bitlerdir. (8 bit)
Örn : MD100 ise M100.0 den başlar M103.7'de son bulur yani 32 bit.
 
Azıcık araştımadan sorulan bu soruya cevap verdiğiniz teşekkür ederim sn. macix.

Size bir sorum olacak ;
et200s cpularda retentive data kullanamıyormuyuz. hardwareden object properties yaptığım retentive alanlar kullanılabilr görünmüyor.

Saygılar...
 
My_word : WORD;
My_word_bits AT My_word: STRUCT
Bit_00 : BOOL;
Bit_01 : BOOL;
Bit_02 : BOOL;
Bit_03 : BOOL;
Bit_04 : BOOL;
Bit_05 : BOOL;
Bit_06 : BOOL;
Bit_07 : BOOL;
Bit_08 : BOOL;
Bit_09 : BOOL;
Bit_10 : BOOL;
Bit_11 : BOOL;
Bit_12 : BOOL;
Bit_13 : BOOL;
Bit_14 : BOOL;
Bit_15 : BOOL;
END_STRUCT;



My_Word_bits.Bit_00:=TRUE;
 
Azıcık araştımadan sorulan bu soruya cevap verdiğiniz teşekkür ederim sn. macix.

Size bir sorum olacak ;
et200s cpularda retentive data kullanamıyormuyuz. hardwareden object properties yaptığım retentive alanlar kullanılabilr görünmüyor.

Saygılar...
Hangi cpu'yu kullanıyorsunuz ?

et200.jpg
 
resimdeki cpu;). Memory card da bir data blok oluşturup içine okuma yazma yapsak çözüm olurmu .?
 
Dilerseniz Retentive dilerseniz DataBlog ikiside işinizi görür.
 
Dilerseniz Retentive dilerseniz DataBlog ikiside işinizi görür.

üstad retentıve data yapmak için eklediğiniz resimdeki yöntemden başka yöntem bilmiyorum.Ancak resimden de analaşılacağı gibi retentıve yapılacak data blok seçemiyorum.

Atladığım bişey mi var?
 
IM151 CPU'da Data bloklar zaten kalıcıdır. Resimde MB0 dan başlayarak retentive olacak Memory Byte sayısı seçmelisiniz.
 
Dilerseniz Retentive dilerseniz DataBlog ikiside işinizi görür.

IM151 CPU'da Data bloklar zaten kalıcıdır. Resimde MB0 dan başlayarak retentive olacak Memory Byte sayısı seçmelisiniz.

üstadlar elimde 1 tane ım 151 3pn st ( 6es7 151 -3aa23-0ab0) v 7.0.5 var. Simatic manager HW Conf. da version 7.0 var.
Plc de sf hatası alıyorum hardware uptade bir işe yaramıyor. Sanırım gsd dosyası yüklemeliyim ama internette bulamadım.
 

Forum istatistikleri

Konular
130,168
Mesajlar
933,938
Kullanıcılar
453,294
Son üye
MEGATRO

Yeni konular

Çevrimiçi üyeler

Şu anda çevrimiçi üye yok.
Geri
Üst