Go Back

  KontrolKalemi.Com Otomasyon Forumu > PLC Sistemleri > PLC Genel > Siemens PLC - Program & Dökümanlar
Fatek

Siemens Simatic S7 SCL Programlama Dili

 PLC Genel Katagorisinde ve  Siemens PLC - Program & Dökümanlar Forumunda Bulunan  Siemens Simatic S7 SCL Programlama Dili Konusunu Görüntülemektesiniz.=>Simatic SCL Nedir? Simatic SCL Siemensin S7 serisi PLC lerinde kullandığı yüksek seviyeli programlama dilidir. S tructured C ontrol L ...


  Otes   Win-Fair 2010
Dünden bugüne Kontrolkalemi.com yazısını okumak için tıklayınız...
Cevapla
 
LinkBack Seçenekler Stil
Alt 15-03-2007, 20:13   #1 (permalink)
Kullanıcı Profili
Yönetici
Fluke - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: 19-01-07
Yaşadığı Yer: Kocaeli
Üye No : 5343
Yaş: 25
Mesajlar: 510
Popularite : 56
Populerlik : Fluke will become famous soon enough
Standart Siemens Simatic S7 SCL Programlama Dili

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[i].C_NO, S:=true, PV:= Count[i].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.

[Lütfen. Üye Olunuz...]
__________________
Aklıyla övünen kişi, hücresiyle övünen mahkuma benzer. Albert Einstein.

Konu MuraTh tarafından (29-10-2009 Saat 00:35 ) değiştirilmiştir..
Fluke isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Sponsorlarımız
Alt 15-03-2007, 22:53   #2 (permalink)
Kullanıcı Profili
Yönetici
elektronikmuh - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: 13-01-07
Üye No : 5090
Yaş: 27
Mesajlar: 624
Popularite : 1564
Populerlik : elektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant future
Standart

Evet fluke kardeş SCL güçlü bir dil, bu gücü daha çok komplex algoritmaların oluşturulması, Data Bloklarla ilgili sıralama, veya matemetiksel işlemler, indeksli değişkenler oluşturularak bilgilerin taranması vs gibi işlemlerde bizlere çok kolaylık getiren Pascal tabanlı bir dil...
For Next , While End, Do While, Repat Until gibi döngüleri PLC prglarken kullanabiliyorsunuz ve bu size diğer dillerde yazılmış algoritmaların PLC tarafına adapte edilmesinde baya kolaylık sağlıyor.(Tabi SCL dilini compile ettiğinizde STL olarak karşımıza çıkıyor.)
3 SCL AVANTAJLARI NELERDİR?
Scl yüksek seviyeli bir programlamanın bütün avantajlarını sunmaktadır.

SCL bu esnekliği ile PLC programcılığı için oldukça kolaylaştırıcı rol oynamaktadır. Programcı SCL ile istediği yapıları istediği programlama tekniğini (STATE metodu,İLİŞKİSEL metodu. vs.) kullanarak ortaya koyabilir. SCL STEP 7 için kullanılan blok yapılarını destekler. Dolayısıyla SCL içerisinde STL’ de ya da Ladder ’da oluşturulan bloklar çağırılabilir ve aynı şekilde SCL programlama dili kullanılarak oluşturulan bloklar STL’de ve Ladder ‘da çağırılabilir.

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

[Lütfen. Üye Olunuz...]

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

[Lütfen. Üye Olunuz...]
__________________
Programlama Sanatı
Teknik lise mezunu...

Konu elektronikmuh tarafından (30-10-2009 Saat 16:39 ) değiştirilmiştir..
elektronikmuh isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Otes Win-Fair 2010
Alt 18-04-2007, 08:41   #3 (permalink)
Kullanıcı Profili
Yönetici
elektronikmuh - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: 13-01-07
Üye No : 5090
Yaş: 27
Mesajlar: 624
Popularite : 1564
Populerlik : elektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant future
Standart Ynt: Simatic SCL Programming Language

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 progr*****) SCL programlama kodu


Kod:
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
__________________
Programlama Sanatı
Teknik lise mezunu...

Konu elektronikmuh tarafından (15-01-2009 Saat 10:14 ) değiştirilmiştir..
elektronikmuh isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Alt 15-07-2007, 21:45   #4 (permalink)
Kullanıcı Profili
Yönetici
elektronikmuh - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: 13-01-07
Üye No : 5090
Yaş: 27
Mesajlar: 624
Popularite : 1564
Populerlik : elektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant future
Standart Ynt: Simatic SCL Programlama Dili

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

FUNCTION FC10:VOID
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
END_FUNCTION
__________________
Programlama Sanatı
Teknik lise mezunu...

Konu elektronikmuh tarafından (15-01-2009 Saat 10:16 ) değiştirilmiştir..
elektronikmuh isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Alt 26-12-2007, 04:37   #5 (permalink)
Kullanıcı Profili
Yeni Üye
Avatar Yok
Kullanıcı Bilgileri
Üyelik Tarihi: 11-05-07
Üye No : 11982
Yaş: 26
Mesajlar: 7
Popularite : 11
Populerlik : janizary is on a distinguished road
Standart Ynt: Simatic SCL Programlama Dili

selamlar

acaba kandi yaptığınız örnekler varsa yayınlayabilir misiniz?

PLC dünyasına direk bu dille daldım. fakat bazı fonksiyonları ve kullanımları anlayabilmem için daha basit ve daha fazla örnege ihtiyacım var.

ben yaptığım basit bir otomasyonu gönderiyorum. inşallah buradan birbirimize yardım ederek bu dille siemens plc programlamayı gelişterebiliriz.

Aşağıdaki program baraj kontrolü, bütün kodların açıklamaları yanlarında yazılı, CPU 315, 24DC'lik dijital giriş çıkış var.

Lütfen birbirimize yardımcı olalım. bu işe yeni başlayan arkadaşların tecrübeli arkadaşlardan öğreneceği çok şey var







Kod:
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

Konu elektronikmuh tarafından (19-03-2009 Saat 11:12 ) değiştirilmiştir..
janizary isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Alt 27-12-2007, 15:46   #6 (permalink)
Kullanıcı Profili
Yönetici
elektronikmuh - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: 13-01-07
Üye No : 5090
Yaş: 27
Mesajlar: 624
Popularite : 1564
Populerlik : elektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant futureelektronikmuh has a brilliant future
Standart Y=a*x + b fonk. hesaplayan prg.

Kod:
Function f_lin : real
title ='f_lin'


var_input
  x : real;
  a : real;
  b : real;
end_var
var
end_var


f_lin := a * x + b;


end_function
__________________
Programlama Sanatı
Teknik lise mezunu...

Konu elektronikmuh tarafından (18-02-2009 Saat 11:43 ) değiştirilmiştir..
elektronikmuh isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Alt 11-01-2008, 22:32   #7 (permalink)
Kullanıcı Profili
Yeni Üye
Avatar Yok
Kullanıcı Bilgileri
Üyelik Tarihi: 01-08-07
Üye No : 16667
Yaş: 23
Mesajlar: 8
Popularite : 11
Populerlik : teslavsedison is on a distinguished road
Standart Ynt: Simatic SCL Programlama Dili

bu dili öğrenecek arkadaşlara tavsiye pascal dilini iyi öğrensinler.Mühendislik hesaplamalarında hala geçerliliğini korumaktadır çünkü yüksek seviyesi(anlaşılabilirlik) karmaşık gibi görünen problemleri çözmeyi kolaylaştırmaktadır saygılarımla
teslavsedison isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Alt 25-01-2008, 20:15   #8 (permalink)
Kullanıcı Profili
Yeni Üye
Avatar Yok
Kullanıcı Bilgileri
Üyelik Tarihi: 16-07-06
Üye No : 424
Yaş: 25
Mesajlar: 2
Popularite : 10
Populerlik : passwordc is on a distinguished road
Standart Ynt: Simatic SCL Programlama Dili

Merhaba. SCL dilinde yazdığımız program FOR döngüsü sırasında programı Loop'a mı sokuyor yoksa OB döngüsünü tamamlatıyor mu?? Eğer Loop içerisinde kalıyorsa programın döngü süresinin uzaması ve diğer yapılacak işlemlerin gecikmesi söz konusu olacaktır. Görüşleriniz nelerdir acaba arkadaşlar?
passwordc isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Alt 26-01-2008, 15:33   #9 (permalink)
Kullanıcı Profili
Yeni Üye
Avatar Yok
Kullanıcı Bilgileri
Üyelik Tarihi: 11-05-07
Üye No : 11982
Yaş: 26
Mesajlar: 7
Popularite : 11
Populerlik : janizary is on a distinguished road
Standart Ynt: Simatic SCL Programlama Dili

OB1 fonksiyonunun döngüsel özelliği vardır. onun için uzun zaman alan döngüler yerine OB1 fonksiyonun bu özelliği kullanılabilir.
__________________
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
[Lütfen. Üye Olunuz...]
janizary isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Alt 13-03-2008, 11:00   #10 (permalink)
Kullanıcı Profili
Yeni Üye
Avatar Yok
Kullanıcı Bilgileri
Üyelik Tarihi: 06-03-08
Üye No : 31374
Yaş: 25
Mesajlar: 12
Popularite : 10
Populerlik : sutlac is on a distinguished road
Standart Ynt: Simatic SCL Programlama Dili

Peki her scl dilini kullandığımızda OB kullanmak zorunda mıyız?Yoksa FC ler yeterli olabilir mi programı compile etmek için?
sutlac isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla

Etiketler
dili, programlama, scl, siemens, simatic

Seçenekler
Stil


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Microsoftun Simülasyonlu Robot programlama dili indirin!(Free!) elektronikmuh Robotik 14 25-02-2010 10:55
Siemens Simatic S7 Graph Programlama dili Fluke Siemens PLC - Program & Dökümanlar 24 16-01-2010 22:52
siemens simatic S5(İKİNCİ EL) seric İkinci El Pazarı 7 10-07-2009 16:28
Ladder Programlama Dili cek_83 Siemens PLC - Program & Dökümanlar 2 28-05-2009 11:55
S7 higraph programlama dili cek_83 Siemens PLC - Program & Dökümanlar 0 26-05-2009 23:03


Tüm Zamanlar GMT +2 Olarak Ayarlanmış. Şuanki Zaman: 21:40.

Favorilere Ekle | Gizlilik | İletişim | Arşiv | Yukarı git

Powered by vBulletin
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.3.1
kontrolkalemi.com mesleki gelişim amacı ile kurulmuş ücretsiz otomasyon portalıdır.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170