Otomasyon Bloğumuza Hoşgeldiniz

Bloğumuzun Amacı Nedir ?

  • Otomasyon Teknolojileri Hakkında Bilgi Sunmak,
  • Otomasyon Dünyasına Ait Programları Paylaşmak
  • PLC, Pic, Pnömatik, Scada Sistemleri ve Otomasyonun Her Alanından Değişik Teknolojiler Hakkında Teknik Bilgi ve Dökümanlar Sunmak
  • Bilgi için: y.inceduygu@gmail.com adresine e-mail atınız.

18 Kasım 2007 Pazar

Simatic SCL Nedir?


Simatic SCL Siemensin S7 serisi PLC lerinde kullandığı yüksek seviyeli programlama dilidir. Structured Control Language anlamına gelir. Bu yazılım dili bir çoğumuzun aşina olduğu Delphi gibi editörlerin ana dili olan Pascal yazılım diline dayanır. Yazılım içerisinde tıpkı Ladder, Graph, STL ve FBD gibi HMI (Human Machinery Interface) temeline dayanan genel yazılımların tüm fonksiyonlarını yapabilir ve bilgisayar gibi hafızada değişkenler oluşturabilir bunları Data Blocklara atayabilir onlardan alabilir. Ayrıca Pascal dili yardımıyla Counter, Timer, Set,Reset, Clock, Interrupt, System Function gibi işlemlerede üst düzeyde izin verir. Birçok PLC yazılımcı firma bu dili çok komplike ve uzman seviyesinde bilgi gerektirdiğinden kullanmakta zorlanır ama genel olarak Dilin becerisi PLC üzerinde çok fazladır. Örnek kodu şu biçimde özetlenebilir:

S_CUD (C_NO:=C12,
CD:=I0.0,
CU:=I0.1,
S:=I0.2 & I0.3,
PV:=120,
R:=FALSE,
CV:=binVal,
Q:=actFlag);

FUNCTION_BLOCK COUNT
VAR_INPUT
Count: ARRAY [1..4] of STRUCT
C_NO: INT;
PV : WORD;
END_STRUCT;
.
.
END_VAR
.
.
FOR I:= 1 TO 4 DO
S_CD(C_NO:=Count.C_NO, S:=true, PV:= Count.PV);
END_FOR;
FUNCTION_BLOCK COUNTER
VAR_INPUT
MYCounter:COUNTER;
END_VAR
.
.
CurrVal:=S_CD (C_NO:=MyCounter,.....);


Bu örnek kodlar sayesinde SCUD tipinde yukarı aşağı sayıcının gerektirdiği aktif olma sinyali, Counter parametreleri ve sayıcı içeriğinin nerelerle ilişkilendirildiği gibi faktörler oluşturduk. Orta ve temel düzey kullanıcılar için öğrenilmesi tavsiye edilmese bile ileri düzey kullanıcılar için oldukça spesifik işlemler yaptırabilmektedir. SCL Editörünün çalıştırılması için Simatic Manager ve Simatic SCL V5.3 bilgisayarınızda yüklü olmalıdır.


Giriş degerini(analog bir deger olabilir) alt ve üst limitler arasında sınırlayan( max değerden büyükse maksimum, minumum değerden küçükse minumum, arasında ise direkt çıkaşa aktaran programcık) SCL programlama kodu


FUNCTION FC50:VOID //FC50 yi kullandık

VAR_INPUT //Değişkenleri tanımladıgımız kısım
MX : INT; //Upper limit
IN : INT; //Input value
MN : INT; //Lower limit
END_VAR

VAR_OUTPUT
OUT:INT;
END_VAR // Degişken tanımlama sonu,


BEGIN //Programımız buradan başlıyor

IF IN > MX THEN OUT := MX; //Giris degeri IN, maksimum degerden büyükse çıkışımıza MX atanır
ELSIF IN < MN THEN OUT := MN; //Giriş degeri IN, minumumdan küçükse çıkışımıza MN degeri atanır
ELSE OUT := IN; // Giriş degerimiz iki deger arasındaysa OUT=IN, yani çıkış=giriş
END_IF; // Şart sonu

END_FUNCTION


SCL dilinin yapısını fonksiyonların oluşturulmasını örneklerle anlatan ingilizce bir döküman

http://rapidshare.com/files/42911476/S7sclgsb.pdf.html

S7-SCL V5.3 for S7-300/400 manuali:

http://rapidshare.com/files/42911475/S7scl__b.pdf.html


// SCL dilide çıkan kenar algılama ve yapılacak işlemler ile ilgili örnektir.

VAR_INPUT
Manual : BOOL;
END_VAR

VAR
Manual_FM : BOOL;
END_VAR

//Edge evalaution (rising edge)
IF Manual AND NOT Manual_FM
THEN (*rising edge*);
END_IF;
Manual_FM := Manual; //Correct edge memory bit

Hiç yorum yok: