Analog ortalama değer alma

S7 1200 Plc ileri bilmiyorum ve bunu bu Plc de nasıl yaparsın konuda bilemem ama analog inputundan gelen bilgileri mesala 100 MS de bir data bloğuna yaz.mesala 500 MS de bir değerleri toplayarak ortalamasını al.
teşekkürler...
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
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.
S7 1200 Plc ileri bilmiyorum ve bunu bu Plc de nasıl yaparsın konuda bilemem ama analog inputundan gelen bilgileri mesala 100 MS de bir data bloğuna yaz.mesala 500 MS de bir değerleri toplayarak ortalamasını al.
teşekkürler...
eşit aralıklarla 8 ölçüm yap, ölçtüğün 8 ölçümü topla, 8 e böl. 8 örnek idi, istediğin kadar ölçümü topla ve ölçüm sayısına böl.
bu işlemi yapan komutu biliyomusunun peki s7 1200 de?
 
FilitreEdilmisAnalogKanalDegeri = (AnologKanalaGelenDeger+FilitreEdilmisAnalogKanalDegeri*(FilitreDegeri-1))/FilitreDegeri
bu formülde Filitre degeri için 2-3-4-5 gibi rakamlar kullanabilirsin.
yada bu formülü kullanma analog kanala gelen degerlerin aritmetik ortalamasını al.
s7 1200 de bunu otomatik olarak yapan komut var mı pekı bazı plclerde boyle bır komut varmış
 
S7 1200 kullanmadım ama resimdeki açıklamaya göre analog giriş filtresi var, bunu kullanırsan sorunun çözülecektir. Kullandığın analog kartın seçenekleri içinde olacaktır muhtemelen. Genelde her kanal için ayrı ayrı bu filtre ayarlanabilir.
 
algoritmayı anlatim sana kardeşim öncelikle kaç ölçümün ortalamasını alıcaksan o kadar array oluştur
bir timmerin tick eventinde ölçülendegeri array alanın en son bufferina yaz ve her timmer tick geldiğinde array alanı sondan başa bir kaydır. ortalama degerin array alanların içindeki toplam gr/array sayısı dır ve ölçüm hassa olucak ise ön kesme kullan nedir bu 10kg set ettin kasayı 9 kg a geldiğinde bantın hızını biraz düşür doluncada durdur
 
TON_SamplingPulse(IN:=NOT(TON_SamplingPulse.Q), PT:=REAL_TO_TIME(SamplingTime));
IF TON_SamplingPulse.Q THEN
FOR INDEX:=1 TO 19 BY 1 DO
PastMeasuredValues[INDEX]:=PastMeasuredValues[INDEX+1];
END_FOR
PastMeasuredValues[20] := MeasuredValue;
ENDİF

AveragedValue := (PastMeasuredValues[1]+PastMeasuredValues[2]+PastMeasuredValues[3]+PastMeasuredValues[4]+PastMeasuredValues[5]+PastMeasuredValues[6]+PastMeasuredValues[7]+PastMeasuredValues[8]+PastMeasuredValues[9]+PastMeasuredValues[10]+PastMeasuredValues[11]+PastMeasuredValues[12]+PastMeasuredValues[13]+PastMeasuredValues[14]+PastMeasuredValues[15]+PastMeasuredValues[16]+PastMeasuredValues[17]+PastMeasuredValues[18]+PastMeasuredValues[19]+PastMeasuredValues[20])/20;
 

Yeni mesajlar

Forum istatistikleri

Konular
128,250
Mesajlar
916,205
Kullanıcılar
450,066
Son üye
Aleyna366372

Yeni konular

Geri
Üst