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,353
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:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…