Siemens Simatic S7 SCL Programlama Dili

FUNCTION_BLOCK test
VAR_INPUT
str : STRING;
END_VAR
VAR_OUTPUT
END_VAR
VAR_TEMP
tstr : STRING;
pos: INT;
END_VAR
VAR
END_VAR
///////////////////////////////////
REPEAT
pos := FIND(STR1:=str,STR2:='');
IF pos > 0 THEN str := REPLACE(str1:=str,str2:='',L:=1,P:=pos);
END_IF;
UNTIL pos = 0
END_REPEAT;
///////////////////////////////////

string içindeki değeri silmek istiyorum ama nerede hata yapıyorum acaba???
 
step 7 versiyonunda SCL compile control file ile SCL source arasındaki fark nedir?
 
arkadaşlar ekteki dosyada scl içinde data blok kullanılmış. bu datalaraı ayrı ayrı mı oluşturuyoruz yoksa gerçekten de scl içine mi gömüyoruz?
 

Ekli dosyalar

  • copydata.txt
    1.9 KB · Görüntüleme: 42
Pascal mı c,c++, c # tarzı bi dil mi ben mi yanlış biliyorum yoksa. Bu konuda detaylı bilgi verebilirseniz çok sevinirim. Nerden başlamalıyım tam olarak?
 
sonuçta dil dildir farketmez. SCL ' de pascal syntax'ı kullanılmaktadır o kadar. yani yazım kuralı. her satırın sonunda ; işareti gibi, IF, ELSE, END_IF gibi. Dolayısıyla dil öğrenmek istiyorsan sadece Siemens PLC için hedefini değiştirme. burda önemli olan şey, nesneye yönelik programlama yapılmadığıdır. dolayısıyla JAVA gibi programlar çok alakasız kalır. sonuçta bu programları yazarken basit bir if, for gibi fonksiyonlar kullanacaksın, her programlama dilinde var olan en basit şeyler.
sonuç olarak pascal eski bir dil.sana çok bişey katmaz. c# veya c++ daha çok işine yarar. onları öğren. SCL de yazarkende satır sonlarına ; koy tamam.al sana pascal.
 
Merhaba arkadaslar,

Ladder diagrama hakimim fakat SCL ile program yazmak istiyorum.

Resimdeki gibi bir programı SCL ile nasıl yazabilirim? Bir kaç deneme yaptım fakat bir türlü başaramadım. Yardımcı olursanız sevinirim.
 

Ekli dosyalar

  • Program.png
    22.8 KB · Görüntüleme: 123
arkadaşlar sıemens plc ögrenmek istiyorum ben yardımcı olurmusunuz öncelikle otomatik kumanda röle falan bilgilerim fazlasıyla var plc programını nereden indirebilirim haricen baka bişeyde kurmam gerekiyormu programlama nasıl yapılıyor ?
 
"arr1 : ARRAY[0..100] OF WORD;"
bu array içindeki veriler her bir gelen sinyal 0dan büyükse string formatında yazdıram gerekiyor.
ornegin arr1[0]>0 then myString:=alarm1 ;
arr1[1]>0 then myString:=alarm2 ;
gibi...

bu array içinde en son hangi alarm geldiyse " arr2 : ARRAY[0..100] OF string;"
arr2[0] içine yazdırmak istiyorum.
yol gösterirseniz çok sevinirim.
 

Merhabalar
rSamplingTime : REAL ; // Sampling time ms
rSmoothingTime : REAL ; // Smooth time constant ms

değerlleri dışarıdan timer mı tanımlıcaz.. Bu kısmı açıklama imkanınız var mı? rSmoothingTime / rSamplingTime
burda bölme işlemi yapılmış neyin bölmesidir?
 
Sampling time fonksiyon bloğunu belirli bir T süresinde çağırdığınız zamandır örneğin, fb yi OB35 içinde çağırırsanız OB35 bloğunu kaç ms ye ayarladıysanız(örneğin 100ms) o sürede bloğu tarar. Burada sampling time ı bloğun içerisinde 100.0 real olarak girersiniz. Smooth time analog degerlerin oynama sıklığını ayarlamak içindir, analog değer çok değişkense smooth time ile oynamaları yumuşatabilirsiniz.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…