Analog Sinyalerin Skala Edilmesi

rotsis

Üye
Katılım
7 Ağu 2011
Mesajlar
736
Puanları
6
Yaş
39
analog giriş kanallarından okunan değerler program içerisinde genellikle skala edilerek kullanılırlar.Skala etmedeki amaç; sınırları bizim istediğimiz değerlere oranlamak yani indirgemektir.

örnegin; analog kanalda "0-27648" arasında okunan sayısal değer,bizim için "0-500°C"yi ifade ediyorsa bu oranlamayı yapmak gerekir.Ancak eger alt limitlerimiz "-" degerlerdeyse yani sıfırın altındaysa işleme biraz matematik girebilir.

bir örnekle açıklamak gerekirse;
0°C-100°C arasında degişen suyun sıcaklıgı ölçülsün ve bir skada ekranına taşınsın.Ekranda da 0-100 arasında ifade edilsin.bunun için şu STL dilinde yazılmış olan program uygun olacaktır;

L PIW 256
DTR
L 27648.0
/R
RND
T DB1.DBW

Programın açıklaması; suyun sıcaklıgı analog giriş kanalından(piw256) okunup direk olarak data modul alanına(db1.dbw0) yazılsaydı,göreceğimiz deger,0-27648 olacaktı.bu degeri 0-100 aralıgına indirgemek için 276,48 değerine bölmek gerekir.okunan analog deger ivirgullu bir sayıya bolmek için, önce o degeri de virgülü sayıya dönüştürmek(dtr) gerekir.bölme işleminden sonra elde edilen virgüllü sayıyı Panel ekranına direk gönderirsek birşey anlayamayız.bu degeri de yuvarlatıp yani tam sayıya dönüştürülmesi(rnd) gerekir.
işte bu uygulamada yapılan işlem skala etme işlemidir
*istersek bu şekilde skala ederiz istersek de Siemens'in hazır FC'sini(fc105) kullanabiliriz.bunun için;
*siamtic maneger-libary-standart lib-ti-s7 converitons blocks-buradan da fc105 seçilir

*eğer sürekleyip yazılım ekranına taşırsanız sizden bazı degerleri girmenizi isteyecktr.bunlar;

in: skala edilmek istenen veri(int)
hi_lim: skala degerinin üst sınırı(real,virgullu sayı)
lo_lim: skala degerinin alt sınırı(real,virgullu sayı)
bipolar: 1; bipolar=-27648,+27648
0;unipolar=0,+27648
ret_val: hata(integer,word)
out: çıkış(real,virgüllü)

"fc105" blogunun "in" girişine uygulanan "0-27648" arasındaki integer deger "lo_lim" ve hi_lim" arasında tanımlanan real sayıya dönüştürülerek "out" çıkışına yazar.
"lo_lim" altında ve ya "hi_lim" üstünde deger girilmesi durumunda hata kodu olan "ret_val(w#16#0008)" alınır ve "eno" çıkışı "0" olur

bu olayı da bir örnekle açıklayalım;
CPU'nun 1.analog giriş kanalından(piw128) okunan "0-100" aralıgını skala edelim

in: piw128
hi_lim: 1.000000e+002(100)
lo_lim: 0.000000e+000(100)
bipolar: m 40.0
ret_val: mw42
out: md44

md44 içerisindeki virgüllü sayı bcd sayıya dönüştürülerek çıkış kanalına atanmak istersek ;
l md44
rnd
dtb
t qw 124

NOT:fc105 scala , fc106 unscala etmek içindir.ikisinin arasındaki fark scala girişe uygulanır,unscala da çıkışa uygulanır.
 
Moderatör tarafında düzenlendi:
verdiğiniz bilgiler için teşekkürler.bende bir şey sormak istiyorum.gelen 0-27648 sayıyı 10-100 arasında göstermek için ne yapmalıyız.
 
ben de teşekkür ederim.
alt limiti yani "lo_lim" kısmını(0.000000e+000) real şekilde göstermeniz lazım
 
matris hesabı yapmak gerekiyor.matematiksel olarak.formuller şuan aklımda degil ama bilgilendiririm sizi bi şekilde.eger manuel olarak yazacaksanız bu şekilde.
ama direk fc105 çagırıyorsanız bunun için dediğim gibi "lo_limit" degerinin matrisini almanız lazım
 
formüller konusunda bilgilendirirseniz sevinirim.ben Siemens kullanmıyorum şu an başka plc ile çalışıyorum.siemens de bu tür komutlar kolay yapılıyor.diğer plc lerde formülü kendin yazmak zorundasın.şimdiden teşekkürler
 
formüller konusunda bilgilendirirseniz sevinirim.ben Siemens kullanmıyorum şu an başka plc ile çalışıyorum.siemens de bu tür komutlar kolay yapılıyor.diğer plc lerde formülü kendin yazmak zorundasın.şimdiden teşekkürler

projelerde sadece s5 ve s7 kullanıyorum.ama şöyle bir formul var;


OUT=(L_LIM)+[(IN-K1/K2-K1).H_LIM]-(L_LIM)

bu formulle analog kanaldan yuzde bir deger girdiğinizde analog giriş kanalında okunan sayısal degeri hesaplayabilrsiniz
 
projelerde sadece s5 ve s7 kullanıyorum.ama şöyle bir formul var;


OUT=(L_LIM)+[(IN-K1/K2-K1).H_LIM]-(L_LIM)

bu formulle analog kanaldan yuzde bir deger girdiğinizde analog giriş kanalında okunan sayısal degeri hesaplayabilrsiniz
k1 ve k2 nin ne olduğunu açıklaman mümkün mü diğer değişkenleri anladım
 
aslında bir egri var onu aktaramadım.o şekilde grafiksel olarak görürseniz aslında herşey daha netleşir ama ben en kısa zamanda atmaya çalışırım buraya.
K1 degeri sizin 0-27648 degerinizin başlangıç degeri
K2 ise son degeriniz.umarım işinize yarar
 
sn rotsis Siemens s7 300 analog açıklamaları için teşekkürler,sizden ricam enkoder bağlantısı ve blokları ile ilgili bu şekilde ayrıntılı bilgi verebilirmisiniz,,,
 

Forum istatistikleri

Konular
129,841
Mesajlar
930,688
Kullanıcılar
452,683
Son üye
greyman43

Yeni konular

Geri
Üst