Minggu, 30 Maret 2014

control proportional water level with PLC schnaider


Gambar 1. Water Distribution
Keterangan:
V1           : Valve 1”
V2           : Valve ¾”
V3           : Valve ½”
V4           : Valve ¾”
V5           : Drain Valve 1/2”
V6           : Drain Valve2  1“
Tinggi tangki utama : 40 cm

Perinsip kerja:
Dalam system pengaturan level ini awalnya diatur set point level air yang akan dijaga ketinggian. Saat system dijalankan maka pompa air akan mengalirkan air, air mengalir melaui saluran Valve (V1, V2, V3, V4) yang dalam keadaan terbuka dan akan mengisi tangki Utama. sensor Level air akan mengukur level air dari tank utama, Jika level air telah mencapai nilai set poin maka controller akan mengirimkan sinyal ke valve untuk menutup. Saat saluran pembuangan dibuka (Drain Valve “V5, V6”), maka air pada tank utama akan berkurang dan hal tersebut akan diukur oleh sensor level. Saat level air berkurang dari set poin yang telah ditetapkan maka Valve (V1, V2, V3, V4)  akan membuka dan pompa air akan bekerja, sehingga level air tetap terjaga sesuai dengan set point yang telah ditetapkan, dikarenakan menggunakan sisten On OFF maka toleransi set point dibatasi 2 %. Pemilihan V1, V2, V3 untuk terbuka adalah tergantung pada kondisi level air, keterangan bias dilihat table dibawah ini:
selisih atau error antara set pain dengan level air
V1
V2
V3
V4
Pump
<=100 %  >= 50 %
1
0
0
1
1
< 50%  >=25 %
0
1
0
1
1
<25 %  >2 %
0
0
1
1
1
<=2% >=0%
0
0
0
0
0

drain water
V5
V6
slow
1
0
middle
0
1
fast
1
1

Perhitungan nilai error





Keterangan:
Error                      : hasil pengolahan data input
Set point             : nilai pemberian awal pada display
Level Air              : kondisi level air pada tank utama sekarang.

Jika error didapatkan nilai negative atau kondisi air melebihi set point  maka valve drain (V5, V6) akan terbuka
error negative
V5
V6
V4
Pump
<=100 %  >= 50 %
1
1
0
0
< 50%  >=25 %
0
1
0
0
<25 %  >2 %
1
0
0
0
<=2% >=0%
0
0
0
0

Jika error didapatkan nilai positif atau kondisi air kurang dari set point  maka (V1, V2, V3 dan V4) akan terbuka sesuai table dibawah ini.
error positif
V1
V2
V3
V4
Pump
<=100 %  >= 50 %
1
0
0
1
1
< 50%  >=25 %
0
1
0
1
1
<25 %  >2 %
0
0
1
1
1
<=2% >=0%
0
0
0
0
0


FlowChart


Simulasi operator screen


PROGRAM Unity pro xl
if start = 1 then
run :=1;
kon_stop:=0;
lamp_em:=0;
elsif stop = 1 then
run :=0;
kon_stop:=1;
lamp_em:=0;
elsif emergency = 1 then
set_point :=0;
error:=0;
level_air :=0;
run :=0;
lamp_em:=1;
end_if;

if (set_point>=level_air and run=1 ) then
                error := (((set_point - level_air) * 100)/ set_point) ;
                if (error <= 100 and error >=50) then
                v1:=1;
                v2:=0;
                v3:=0;
                v4:=1;
                v5:=0;
                v6:=0;
                pump:=1;
                elsif (error < 50 and error >=25) then
                v1:=0;
                v2:=1;
                v3:=0;
                v4:=1;
                v5:=0;
                v6:=0;
                pump:=1;
                elsif (error < 25 and error >=2) then 
                v1:=0;
                v2:=0;
                v3:=1;
                v4:=1;
                v5:=0;
                v6:=0;
                pump:=1;
                elsif (error < 2 and error >=0) then
                v1:=0;
                v2:=0;
                v3:=0;
                v4:=0;
                v5:=0;
                v6:=0;
                pump:=0;
                end_if;

elsif (set_point < level_air and run=1 ) then
                error := ((( level_air - set_point) * 100 )/set_point);
                if (error <= 100 and error >=50) then
                v1:=0;
                v2:=0;
                v3:=0;
                v4:=1;
                v5:=1;
                v6:=1;
                pump:=0;
                elsif (error < 50 and error >=25) then
                v1:=0;
                v2:=0;
                v3:=0;
                v4:=1;
                v5:=0;
                v6:=1;
                pump:=0;
                elsif (error < 25 and error >=2) then
                v1:=0;
                v2:=0;
                v3:=0;
                v4:=1;
                v5:=1;
                v6:=0;
                pump:=0;
                elsif (error < 2 and error >=0) then
                v1:=0;
                v2:=0;
                v3:=0;
                v4:=0;
                v5:=0;
                v6:=0;
                pump:=0;
                end_if;

end_if;



0 komentar:

Posting Komentar