FUNCTION FC1:VOID
//Giriş deklarasyonları yapıldı
//-----------------------------------------------------------------------------------------------
VAR_INPUT
basla:BOOL;
bitir:BOOL;
uyari1:BOOL;
uyari2:BOOL;
uyari3:BOOL;
END_VAR
//-----------------------------------------------------------------------------------------------
//çıkış deklarasyonları yapıldı
//-----------------------------------------------------------------------------------------------
VAR_OUTPUT
normal_calisma:BOOL;
uyari_lambasi:BOOL;
sesli_uyari:BOOL;
baraj_kapaklari:BOOL;
END_VAR
//-----------------------------------------------------------------------------------------------
//yanıp sönme için gerekli döngünün deklarasyonu yapıldı
//-----------------------------------------------------------------------------------------------
VAR
i:INT;
END_VAR
//-----------------------------------------------------------------------------------------------
BEGIN
IF basla=1 AND bitir=0 THEN //başla ve bitir butonlarına göre baraj sistemi kontrolü başlangıcı
i:=i+1; // yanıp sönme işlemi için sayıcı
IF uyari1=1 THEN //eğer uyarı1 gelirse yapılacakların kodlandığı alan
//yanıp sönme için yazılan kod uyarı lambası 2 sn aralıklarla yanıp sönecek
//-----------------------------------------------------------------------------------------------
IF i>0 AND i<100 THEN
uyari_lambasi:=1;
END_IF;
IF i>100 AND i<200 THEN
uyari_lambasi:=0;
END_IF;
IF i>200 THEN
i:=0;
END_IF;
//-----------------------------------------------------------------------------------------------
//uyarı1 gelmezse normal çalışma lambası yanacak ve uyarı1 lambası sönecektir
//-----------------------------------------------------------------------------------------------
ELSIF uyari1=0 THEN
normal_calisma:=1;
uyari_lambasi:=0;
END_IF;
//-----------------------------------------------------------------------------------------------
//uyarı1 ve uyarı2 geldiğinde ve gelmediğinde uyarı1 ile olusacak uyarılar yanında sesli uyarı
//da aktif olacak veya sesli uyarı pasif yapılacaktır. bu arada eğer uyarı1 ve uyarı2 gelmezse
//normal çalışma ışığı yanacaktır.
//-----------------------------------------------------------------------------------------------
IF uyari2=1 AND uyari1=1 THEN
sesli_uyari:=1;
ELSE
normal_calisma:=1;
sesli_uyari:=0;
END_IF;
//-----------------------------------------------------------------------------------------------
//uyarı1, uyarı2 ve uyarı3 geldiğinde ve gelmediğinde uyarı1 ve uyarı2 ile olusacak uyarılar
//yanında baraj kapakları da aktif olacak veya baraj kapakları pasif yapılacaktır. bu arada
//eğer uyarı1, uyarı2 ve uyarı3 gelmezse normal çalışma ışığı yanacaktır.
//-----------------------------------------------------------------------------------------------
IF uyari3=1 AND uyari2=1 AND uyari1=1 THEN
baraj_kapaklari:=1;
ELSE
normal_calisma:=1;
baraj_kapaklari:=0;
END_IF;
//-----------------------------------------------------------------------------------------------
//eğer başla butonuna basılmazsa ve bitir butonuna basılırsa yapılacaklar
//-----------------------------------------------------------------------------------------------
ELSE
normal_calisma:=0;
uyari_lambasi:=0;
sesli_uyari:=0;
baraj_kapaklari:=0;
//-----------------------------------------------------------------------------------------------
END_IF;
END_FUNCTION
ORGANIZATION_BLOCK OB1
BEGIN
//FC1 fonksiyonunun deklare edilen giriş ve çıkışlara göre çağırılması
//-----------------------------------------------------------------------------------------------
FC1(basla:=I0.0,bitir:=I0.1,uyari1:=I0.2,uyari2:=I0.3,uyari3:=I0.4,normal_calisma:=Q0.0,uyari_lambasi:=Q0.1,sesli_uyari:=Q0.2,baraj_kapaklari:=Q0.3);
//-----------------------------------------------------------------------------------------------
END_ORGANIZATION_BLOCK