Dijital Sensör değerlerini yazılımla sayı değerine çevirme

elektronikmuh

Yönetici
Yönetici
Yönetici
Katılım
13 Ocak 2007
Mesajlar
2,359
Puanları
1,866
Yaş
49
Aşağıdaki kod S1-S4 Sensorleri için (4 Adet dijital çıkışlı Sensor için) tek tek sorgulama yerine sayı değeri oluşturup kodu daha rahat yazmayı ve okunaklığı sağlar. Binary en düşük değer S1 en yüksek değer S4 seçilip sayı değeri oluşturulur.
4 Sensor için 2^4(2 üzeri 4) = 16 farklı sensor durumu oluşur. n tane sensor için 2^n farklı sensor durumu oluşur.

// İstediğim durumlar
S4 =0 S4 =0 S4=0 S4=0 S4=1
S3 =0 S3 =0 S3=0 S3=1 S3=1
S2 =0 S2 =0 S2=1 S2=1 S2=1
S1 =0 S1 =1 S1=1 S1=1 S1=1
Result =0 Result =1 Result=3 Result=7 Result=15

Out.SensValue=1 ise Sadece S1 görüyor
Out.SensValue=3 ise Sadece S2-S1 görüyor.
Out.SensValue=7 ise Sadece S3-S2-S1 görüyor.
Out.SensValue=15 ise S4-S3-S2-S1 görüyor.
......
Out.SensValue Sıfırdan farklı ise sensorlerden biri görüyor vs...

Kod:
(* 4 Adet sensor için oluşan binary değerleri Sayıya çevirme kodu *)

  Out.SensValue :=
(( BOOL_TO_USINT(inSensors.S4) )* 8) +  (( BOOL_TO_USINT(inSensors.S3) )* 4) +
(( BOOL_TO_USINT(inSensors.S2) )* 2) +  (( BOOL_TO_USINT(inSensors.S1) )* 1);
 
Son düzenleme:

Forum istatistikleri

Konular
133,520
Mesajlar
972,028
Kullanıcılar
459,588
Son üye
nevzatozyigit

Yeni konular

Geri
Üst