You are on page 1of 36

SCL nedir? SCL, Pascal programlama dili tabanl, STEP7 zerine gelitirilmi bir yapsal programlama dilidir.

Bu nedenle STEP7nin zellikleri ile birlikte yapsal bir dilin artlarn da iermektedir. FC, FB, DB, UDT, SFC, SFB Step7 yaplar SCLde oluturulabilir. Hazr bloklar kullanlabilir (S7lib. ktphanesi fonksiyonlar ve Step7 standart paketleri kullanlabilir). SCL de yazlm bloklar STL, LAD, FBD editrlerinden arlabilir. SCL, DIN EN-61131 (int. IEC 1131-3) standardna uygun olarak gelitirilmitir. SCL, Step7 yazlmn ve onunu programlama dilleri olan merdiven mant ve STL dillerini tamamlamakta ve gelitirmektedir. SCL, st seviye bir dilin zelliklerini tamakla beraber, tipik bir PLC yazlmnda olmas gereken giriler, klar, zamanlayclar, sayclar ve blok arlar gibi elemanlar iermektedir. SCL Uygulamas Gelitirme Ortam SCL uygulamalar iin gelimi bir uygulama ortam bulunmaktadr. Gelitirme ortam u bileenlerden olumaktadr. Fonksiyonlar(FCs), fonksiyon bloklar(FBs), organizasyon bloklar (OBs), data bloklar(DBs) ve kullanc tarafndan tanmlanm veri yaplar(UDTs) ieren programlar yazmak iin bir Editr.

Editrde yazlm olan kodu MC7 makine koduna dntren bir derleyici Batch Compiler (Yaratlan MC7 makine kodu tm S7-300/400 serisi ilemcilerde alabilmektedir). Kullanc programndaki mantksal hatalar saptayan bir debugger. SCL Kaynak Dosyas Oluturma ve Ulama SCL kaynak dosyas iki yoldan oluturulabilir. SCL Programlama Editr ile: Start mensnden Simatic/Step7/SCL-Programing S7Blocks yolunu izleyerek SCL programlama editrn anz. Editrde Files/New sekmesi aracl ile yeni bir SCL kaynak dosyas oluturabilirsiniz. Alan pencerede (ekil-1), Simatic Manager da oluturduunuz projeye ulap, SCL kaynak dosyanz S7 Program sekmesinin altndaki Sources klasrnn iine penceredeki Object name blmne dosya adn yazarak oluturabilirsiniz.

ekil-1 SCL editrne ulama

ekil-2 SCL editr ile kaynak dosyas oluturma

Simatic Maganager ile: SCL dosyalarnza Simatic Maganager iinden de ulaabilir ve oluturabilirsiniz. SCL kaynak dosyanz Step7 projenizin S7Program sekmesi altndaki Sources klasrn atktan sonra, farenin sa tuu ile aabileceiniz menden sras ile Insert New Object ve SCL Source sekmelerini seerek oluturabilirsiniz. Bu klasrn iindeki mevcut

ekil-3 Simatic Manager ile kaynak dosyas oluturma

dosyalarnz ift tklayarak aabilirsiniz. Bu durumda SCL programlama editr dorudan alacaktr.

SCL kaynak dosyalarn burada saklamaktadr SCL derleyicisi bloklar buraya yerletirmektedir.

SCL derleyicisi sembol tablosuna dabavurmaktadr .

ekil-4 Simatic Manager ile kaynak dosyas oluturma

SCL Editrnden ya da Simatic Managerdan oluturduunuz kaynak dosyalar projenizin altnda Sources klasrnde saklanr. SCL editrnde yazdnz kod derlendiinde oluturduunuz program kodu PLC makine koduna dntrlr ve projenizin altndaki Blocks klasrne yerletirilir. Derleyici ayn zamanda programda kullandnz simgesel adlar projenizin sembol tablosuna da kaydetmekte ve gerektiinde sembol tablosuna bavurmaktadr. SCL programnda S7 program bloklarn oluturabileceinizi ve blok arlar yapabileceinizi belirtmitik. Buna ek olarak programnzdan Step7 standart blok ktphanesindeki bloklar arp kullanabilirsiniz.

ekil-5 Blok ktphanesi

SCL Kaynak Dosyasnn Yaps SCLde programnzda oluturacanz bloklar tek kaynak dosyas ierisinde oluturabileceiniz gibi bloklarnz ayr kaynak dosyalar biiminde de oluturabilirsiniz. Derleme sonras bloklarnz ayn blok saklaycsna yerletirilmektedir.Tm programnz, iinde birden ok blok ieren bir ka kaynak dosyasndan oluabilir. Bu yap ekil-6da verilmitir.

ekil-6 SCL kaynak dosyas yaps

Ancak, kaynak dosyalar olutururken bloklarn belirli bir sraya gre oluturulmalar gerekir.Uyulmas gereken kurallar aada verilmitir. Kullanc tarafndan tanmlanm veri tipleri (UDT), kullanldklar bloktan nce tanmlanmaldrlar. Bir UDT ye ait veri blou UDT den nce oluturulmaldr. Data bloklar kendilerine ulaan tm mantksal bloklardan nce yer almaldr. Bir fonksiyon blouna ilikilendirilmi data blou fonksiyon bloundan sonra yer almaldr.

Dier bloklar aran OB1, kaynak dosyasnn sonunda yer almaldr. Bir kaynak dosyasndan ardnz ancak ayn kaynak dosyasnda yer almayan bloklar, kaynak dosyas derlendiinde daha nceden kullanc programnda yer almaldr. Bu kurallar aadaki ekilde zetlenmitir.

ekil-7 Kaynak dosyasnda bloklarn dizilii

Bir blou oluturan kaynak dosyas u blmlerden olumaktadr. Blok adnn ve trnn belirtildii blok bal. Blok zelliklerinin verildii blm (attributes) Deiken tanmlarnn yapld blm(declaration part) Kodlarn yazld blm( instuction part) Bloun sonlandrld blm.

ekil-8 Blok yaps

DB5, FB10, FC62, FC61 ve OB1 bloklarndan oluan bir kaynak dosyasnn yaps ve FB10 blounun olarak inceleyeceiz. SCLde bloklarn balangcn ve sonunu belirtmek zere ayrlm blmleri yukardaki ekilde grlmektedir. zleyen blmde SCL blok yapsnn blmlerini ayrntl

anahtar szckler bulunmaktadr. ekil-9 da SCL bloklarna ilikin balang ve sonlandrma anahtar szckleri toplu olarak verilmitir.ekil-10da bu anahtar szcklerinin rnek olarak bir fonksiyon blouna (FB10) ilikin olanlarnn kaynak dosyasnda kullanm gsterilmitir. Burada FUNCTION_BLOK anahtar szc fonksiyon blounun balangcn gstermektedir.Bu anahtar szc boluktan sonra FB10 mutlak adresi izlemektedir. Bu alanda sembol tablosunda tanmlanm bir simgesel ad da

kullanlabilir.

Blok

END_FUCTION_BLOCK

anahtar

szc

ile

sonlandrlmtr.

ekil-9 Blok balangcn ve sonunu belirten anahtar szckler

ekil-10 Fonksiyon blok yapsnn blmleri

Blok zelliklerinin Verildii Blm

ekil-11 Blok zellikleri

Bu blmde blok ad, srm, yazar ve aile bilgileri girilebilir. Bu blmde yazacanz KNOW_HOW_PROTECT anahtar szc ile blounuza ifre koyup , kodlarn gizlenmesini salayabilirsiniz. Deiken Tanmlarnn Yapld Blm Bu blmde oluturacanz bloa ilikin giri, k deikenlerini, sabitleri, kullanacanz kalc ve geici deikenleri tanmlayabilirsiniz.Giri deikenleri VAR_INPUT.....END_VAR, k deikenleri VAR_OUTPUT .....END_VAR, sabitler CONST......END_CONST, kalc deikenler VAR..... END_VAR, geici deikenler VAR_TEMP......END_VAR anahtar szcklerinin arasna yazlmaldr. SCL de deiken tanmlanmasna ilikin bir rnek ekil-12 de verilmitir.

10

ekil-12 Blok yapsnda deiken tanmlarnn yapld blm

Kodlarn yazld blm


Bu blm blounuza ilev kazandran mantksal ve aritmetiksel komutlarn yer ald blmdr. SCL geni bir bit ilem, aritmetik ilem, karlatrma komutlar kmesi sunmaktadr. Komutlarn ilenenleri mutlak adresler olabilecei gibi simgesel adlar da olabilir. Kullanlan simgesel adlar nceden sembol tablosunda tanmlanm olmaldr. Bu blmde yapsal bir st dil olmann artlarndan olan kontrol yaplarn kullanabilirsiniz. Blok arlar da bu blmde yaplmaldr.

11

ekil-13 Kod blm

Bir Kaynak Dosyas rnei ekil-14de verilen kaynak dosyasnda BOOL tipinde iki giri deikeni olan ve BOOL tipinde deer dndren FC61 fonksiyonu, giri, k deikenleri olmayan ve deer dndrmeyen FC62 fonksiyonlar oluturulmu ve kaynak dosyasnn sonunda yer alan OB1den bu fonksiyonlara ar yaplmtr. NOT: Fonksiyon bloklarnn (FB) kendine ait veri bloklar bulunur. Deiken tanmlama blmnde tanmlayacanz kalc deikenler bu bloklarda saklanr. Fonksiyon bloundan kldnda bu deikenler deerlerini korur. Ancak, fonksiyonlarn (FC) kendilerine ait veri bloklar bulunmadndan bu bloklarda kalc deiken tanmlamalar yapamazsnz. ekil-15 de grld gibi SCL kaynak dosyasnda oluturduunuz bloklar FBDden arabilirsiniz ve balantlandrabilirsiniz.

12

ekil-14 rnek kaynak dosyas

ekil-15 SCLde oluturulmu bloklarn FBDde kullanm

13

Blok arlar
SCL bloklarnzdan daha nceden oluturulmu bloklara ar yapabilirsiniz. Blok arlar bloun simgesel ad ile ya da mutlak adresi ile yaplabilir. Blok arlar yaplrken ilgili blok iin gerekli parametre atamalar yaplmaldr. FBlerde sadece giri ve giri/k parametre atamalar yaplr. Bloun k deikenlerine atama yaplmaz. FBlerin dn deeri yoktur. k deikenlerine ayrca bloa ait veri bloundan ulalabilir. Fonksiyon arlarnda giri, k ve giri/k parametre atamalar yaplr, fonksiyonun dn deeri arld bloun deikenlerine atanabilir. ekil-16da bir fonksiyon blok ars rnei verilmitir.

ekil-16 Fonksiyon blok ars

14

Karakter Kmesi

SCLnin karakter kmesinde

Adan Zye kadar kk ve byk harfler 0dan 9a kadar tm rakamlar Boluk karakteri (ASCII kodu 32) ve tm kontrol karakterleri (ASCII 0 .. 31)

bulunmaktadr.

Bu karakterlerin yan sra ; + - * / = < > [ ] ( ) . , : ; $ # " ' { }

karakterlerinin SCLde zel anlamlar vardr.

Anahtar Szckler
Anahtar szckler, SCLde nceden belirlenmi amalar iin

kullanlmak zere ayrlm szcklerdir. Anahtar szcklerin kullanmnda kk byk harf ayrm yoktur. Bu nedenle,rnein CONST anahtar szc const ve Const szckleri ile ayn biimde yorumlanacaktr. Anahtar szckler ve/veya simgesel adlar arasnda boluk braklmaldr. Anahtar szcklerin yan sra ; COS, SIN, TAN, SQRT, EXP, LOG, BOOL_TO_BYTE, INT_TO_REAL, INT_TO_WORD, REAL_TO_DWORD ...gibi standart fonksiyon adlar da SCLde kullanc tarafndan baka amalarla kullanlamayacak ayrlm szcklerdir.

15

SCLde Simgesel Adlar


SCLde sabit, deiken ya da blok gibi dil nesnelerine simgesel ad verebilirsiniz. Simgesel adlarda byk kk harf ayrm yaplmamaktadr.

Dil nesnelerine simgesel ad olarak anahtar szckler verilemez. Simgesel adn ilk karakteri rakam olmamal ve karakterler arasnda boluk braklmamaldr.

rnekler:

Geerli simgesel adlar:

Names

Total 1234

Temperature

z12 _high_low Geersiz simgesel adlar: 4ter

(ilk karakter rakam)

Array (anahtar szck) S value(karakterler arasnda boluk ) Yorum Satrlar SCLde / / ve (* ayrlm szcklerini kullanarak kodunuza yorum satrlar ekleyebilirsiniz. Bu szckleri izleyen satrlar derleyici tarafndan yorumlanmayacaktr.// belirteci kullanld satrn sonuna kadar etkilidir. (* ise iine ald tm satrlar yorum satr olarak iaretler. rnek: Value1 := 1234; // Bu bir yorum satrdr (*Bu aradaki tm satrlar yorumdur. Derleyici tarafndan yorumlanmayacaktr.*)

16

SCLde Yer Alan Veri Tipleri


SCL de kullanlabilecek veri tipleri ayrntl olarak aklanmadan nce toplu olarak aada verilmitir.

Temel veri tipleri

Bit veri tipleri: BOOL, BYTE, WORD, DWORD Karakter tipi; CHAR Saysal veri tipleri: INT, DINT, REAL Zaman veri tipleri: S5TIME, TIME, DATE, TIME_OF_DAY

Karmak veri tipleri

DATE_AND_TIME STRING ARRAY STRUCT

Kullanc tarafndan tanmlanm veri tipleri UDT Parametre tipleri TIMER, COUNTER (zamanlayc ve sayc bloklar) BLOCK_FB, BLOCK_FC, BLOCK_DB, BLOCK_SDB (blok parameter tipleri) ANY POINTER

17

SCLde tam saylarn gsterilim biimleri

On tabannda gsterilim: 1000 +1_120_234_ -666_667 -99 ki tabannda gsterilim: Sekiz tabannda gsterilim: 16 tabannda gsterilim: 2#0101010 8#25707 16#1FA90B 16#F

Reel saylarn gsterilimi: -3.99 1000 1000.0 1234.5 3.0E10 Karakter gsterilimi: 'A' 'a' '$65' '$T' '$e1$4E'

Karakter dizilerin gsterilimi: 'ROT' Tarih gsterilimi: DATE#1998-11-11 Zaman gsterilimi

'Hugo'

D#1998-05-11

Ondalk temsil: Seviyesel temsil:

TIME#20.5D T#20S_5MS

T#45.25M T#20m_23.5s

Gnn zaman: Gn ve zaman:

TIME_OF_DAY#12:20:35 TOD# 11:11:11 DATE_AND_TIME#1998-04-07_12:36:12.2 DT#1998-02-01-11:25.30

Basit Veri Tipleri


Aada SCL de yer alan basit veri tiplerinin uzunluklar ve deer aralklar verilmitir.

Bit veri tipi Anahtar szck BOOL BYTE WORD DWORD Veri uzunluu(bit) 1 8 16 32 Value range 0,1 or FALSE, TRUE -

18

Karakter veri tipi

CHAR Saysal veri tipleri INT DINT REAL

geniletilmi ASCII Karakter kmesi

16 32 32

-32_768 .. 32_767 -2_147_483_648 .. 2_147_483_647 -3.402822E+38..-1.175495E-38

Zaman veri tipleri S5TIME TIME(=DURATION) 16 32 T#0H_0M_0S_10MS..T#2H_46M_30S T#0D_0H_0M_0S_0MS. T#24D_20H_31M_023S_647MS D#1990-01-01 .. D#2168-12-31 TOD#0:0:0 .. TOD#23:59:59.999

DATE 16 TIME_OF_DAY(=TOD) 32

Karmak Veri Tipleri


DATE_AND_TIME DT#1999-01-02-0:0:0.000 to DT#2014-12-31-23:59:58.999

STRING (karakter dizisi)

En fazla 254 karakter uzunluunda olabilen dizi (veri tipi: CHAR) Dizideki karakter says [ .. ] iinde belirtilir. Geniletilmi ASCII kullanlabilir. rnekler: ( en ok 10 karakterli dizi) (en ok 14 karakterli dizi) (STRING[254] e ka dmektedir ) karakter kmesindeki tm karakterler

STRING[10] STRING[2+3*4] STRING

ARRAY

Beli bir veri tipinde belli sayda eleman ieren deiken tanmlar.
19

ndeks aral [ .. ] iinde belirtilir. Veri tipi OF anahtar sznden sonra belirtilir. SCL alt boyutlu dizileri desteklemektedir

rnekler: ARRAY[1..10] OF REAL (10 reel saydan oluan dizi) ARRAY[1..10, 1..100] OF INT (1000 tamsaydan oluan 2 boyutlu dizi) ARRAY[3..10] OF UDT10 (UDT10 tipinde 8 eleman ieren dizi) ARRAY[1..10] OF STRUCT...END_STRUCT (ayn yapda 10 eleman ieren dizi) STRUCT (Structure) Deiik veri tiplerinde eitli saylarda bileen ieren deiken ierir. Bileenler STRUCT ve END_STRUCT anahtar szcklerinin arasnda tanmlanr. ie STRUCT yaplar kurulabilir. rnek: VAR Mot : STRUCT A1 : INT; A2 : STRING[100]; A3 : ARRAY[5..12] OF REAL; END_STRUCT; Vent: STRUCT S1 : STRUCT A1 : INT; A2 : ARRAY[1..12] OF INT; END_STRUCT; I2 : INT:= 25; END_STRUCT; END_VAR

20

UDT (Kullanc tarafndan tanmlanm veri tipi)

zel veri tipi tanmlamasdr (tek bir STRUCT yaps kurulabilir) Bu veri tipi kendine ait (UDT) blounda tanmlanr UDT veri tipinde deikenler basit veri tipleri gibi proje iinde her yerde tanmlanabilir.

rnek: TYPE UDT1 STRUCT Power : REAL; Speed : INT; Motor : STRUCT Encoder : WORD; Producer : STRING[8]:= 'SIEMENS'; END_STRUCT; END_STRUCT END_TYPE

Blok Parametrelerinin tanmlanmas


Zamanlayclar ve sayclar Anahtar szck TIMER COUNTER Bloklar

Anlam Bir zamanlayc iin tanmlayc, rnein T5 Bir sayc iin tanmlayc, rnein Z9 Anlam arld blokta kullanlacak olan zel bir blok iin tanmlayc rnein e.g FC101, DB42

Anahtar szck BLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDB Anahtar szck ANY

ANY

Anlam ile her hangi bir veri tipi tanmlanabilir

21

Aritmetik lemler
Tekil lemler

lem artlama eksileme

Simge + -

rnek +A -A

Temel kili Operatrler lem Simge arpma * Blme / Modul alma MOD Tamsaylarda DIV Blme Toplama + karma s Alma lemi rnek A*B A/B I1 MOD I2 I1 DIV I2 A+B AB

lem s alma **

Simge

rnek A ** I1

Aritmetik ilem komutlarnn ilenenlerinin hangi veri tiplerinde olabilecekleri ve sonu deerlerinin tipi ekil-17 de verilmitir.

22

ekil-17 Karlatrma lemeleri

Tip I (ilenenler arasnda sra ilikisi bulunmaldr) lem kk kk eit byk byk eit ANY_NUM: ANY_CHAR: Simge < <= > >= INT, DINT, REAL CHAR, STRING (ASCII deeri karlatrmas) rnek A<B A <= B A>B A >= B

Bu ilemelerin ilenenleri

TIME, DATE ve TOD tipi veriler olabilir.


23

Tip II (ilenenler arasnda sra ilikisi olmasna gerek yok) lem eittir eit deil ANY_BIT: ANY_NUM: ANY_CHAR: Simge = <> rnek A=B A <> B

Bu ilemelerin ilenenleri BOOL, BYTE, WORD, DWORD INT, DINT, REAL CHAR, STRING

TIME, DATE ve TOD tipi veriler olabilir.

Mantksal lemler
lemler lem Tmleme VE EX-OR OR lenenlerin veri tipleri Veri tipleri: BOOL, BYTE, WORD, DWORD lgili komut NOT AND, & XOR OR rnek NOT A A AND B A XOR B A OR

Standart Saysal Fonksiyonlar

Genel fonksiyonlar Giri parametresi Dn deeri ANY_NUM ANY_NUM ANY_NUM ANY_NUM ANY_NUM ANY_NUM Aklama mutlak deer alma Kare alma Karakk alma ABS SQR SQRT

Fonksiyon ad

24

Logaritmik fonksiyonlar EXP LN LOG ANY_NUM ANY_NUM ANY_NUM ANY_NUM ANY_NUM AMY_NUM ANY_NUM e zeri 10 zeri doal logaritma 10 tabannda log. EXPD ANY_NUM

Trigonometrik fonksiyonlar ACOS ANY_NUM ASIN COS SIN TAN ANY_NUM ANY_NUM ANY_NUM ANY_NUM ATAN ANY_NUM ANY_NUM ANY_NUM ANY_NUM ANY_NUM ANY_NUM ANY_NUM ark kosins ark sins ark tanjant kosins sins tanjant

rnekler RESULT RESULT RESULT := ABS( -5); // RESULT deeri 5 := SQRT (81.0); := SQR (23); // RESULT deeri 9.0 // RESULT deeri 529

SCL de Kontrol Yaplar


SCL genel olarak tm st dillerde yer alan aada verilmi olan kontrol yaplarn desteklemektedir. IF- yaps CASE yaps FOR- yaps WHILE- yaps REPEAT yaps IF E1.1 THEN ... ELSIF ... ELSE ... END_IF CASE SELECTOR OF 1: ...; 2: ... ELSE: . END_CASE FOR INDEX := 1 TO 49 BY 2 DO .END_FOR WHILE INDEX <= 50 DO ... END_WHILE REPEAT ... UNTIL INDEX:= 51 ... END_REPEAT

25

CONTINUE- yaps EXIT- yaps GOTO- yaps RETURN- yaps

WHILE BOOL_1 DO ... CONTINUE ... END_WHILE WHILE BOOL_1 DO ... EXIT ... END_WHILE IF INDEX <23 THEN GOTO MARKE_1; ... IF ENABLED THEN RETURN; ...

zleyen blmde SCL kontrol yaplarnn her birine ilikin sz dizimi ve rnekler verilmitir.

IF yaps

Sz dizimi IF < koul > THEN < komutlar >; ELSIF < koul > THEN < komutlar >; (istee bal) . . . ELSIF < koul > THEN < komutlar >; (istee bal) ELSE < komutlar >; (istee bal) END_IF rnek IF INPUT = FALSE THEN N := 0; SUM := 0.0; OK := FALSE; ELSIF START =_OK THEN N := N + 1; SUM := SUM + IN; ELSE OK := FALSE; END_IF;

26

CASE yaps
Sz dizimi CASE <koul> OF <deer dizisi>: <komutlar>; < deer dizisi >: <komutlar>; . . . < deer dizisi > <komutlar>; ELSE <komutlar>; END_CASE; rnek: CASE TW OF 1: DISPLAY := OVEN_TEMP; 2: DISPLAY := MOTOR_SPEED; 3: DISPLAY := GROSS_TARE; AW4 := 16#0003; 4..10: DISPLAY := MOTOR_TEMP; AW4 := 16#0004; ELSE: DISPLAY := 0; TW_ERROR := 1; END_CASE;

(istee bal)

(istee bal) (istee bal)

FOR yaps

Sz dizimi FOR <sayacn ilk deer atamas TO <son deer koulu> BY <sayac art terimi> DO <komutlar>; END_FOR

27

rnek: FUNCTION_BLOCK FB20 VAR INDEX : INT; KEYWORD : ARRAY[1..51] OF STRING[20]; END_VAR BEGIN FOR INDEX := 1 TO 51 BY 2 DO IF KEYWORD[INDEX] = 'KEY' THEN EXIT; END_IF; END_FOR; : : END_FUNCTION_BLOCK

WHILE yaps

Sz sizimi WHILE <koul> DO <komutlar>; END_WHILE;

rnek:

FUNCTION_BLOCK FB20 VAR INDEX : INT; KEYWORD : ARRAY[1..51] OF STRING[20]; END_VAR BEGIN INDEX := 1; WHILE INDEX <= 51 AND KEYWORD[INDEX] <> 'KEY' DO INDEX := INDEX + 2; END_WHILE; : END_FUNCTION_BLOCK

28

REPEAT yaps

Sz dizimi REPEAT <komutlar>; END_REPEAT; rnek: FUNCTION_BLOCK FB20 VAR INDEX : INT; KEYWORD : ARRAY[1..51] OF STRING[20]; END_VAR UNTIL <koul>

BEGIN INDEX := -1; REPEAT INDEX := INDEX + 2; UNTIL INDEX > 51 OR KEYWORD[INDEX] = 'KEY' END_REPEAT; : : END_FUNCTION_BLOCK

CONTINUE yaps

Sz dizimi CONTINUE rnek:

INDEX := 0; WHILE INDEX <= 100 DO INDEX := INDEX + 1; IF FIELD[INDEX] = INDEX THEN CONTINUE;

29

ELSE FIELD[INDEX] := 0; END_IF; END_WHILE;

EXIT yaps

Sz dizimi EXIT; rnek:

INDEX_2 := 0; FOR INDEX_1 := 1 TO 51 BY 2 DO IF KEYWORD[INDEX_1] = 'KEY' THEN INDEX_2 := INDEX_1; EXIT; // (KEYWORD[INDEX_1] ierii 'KEY' e eit olduunda For dngsnden klr. END_IF; END_FOR; INDEX_SEARCHED GOTO yaps := INDEX_2;

Sz dizimi GOTO <Label for Jump Label>; rnek: LABEL LABEL1, LABEL2, LABEL3; END_LABEL BEGIN IF A > B THEN GOTO LABEL1; ELSIF A > C THEN GOTO LABEL2; END_IF;

30

LABEL1: INDEX := 1; GOTO LABEL3; LABEL2: INDEX := 2; LABEL3: ...

RETURN yaps

Sz dizimi: RETURN rnek: INDEX := 0; WHILE INDEX <= 100 DO INDEX := INDEX + 1; IF FIELD[INDEX] = 0 THEN RETURN; ( *FIELD[INDEX] ierii 0 olduunda bloktan klr; *) ELSE ... END_IF; END_WHILE;

31

SCLde Sayc ve Zamanlayc Fonksiyonlar


SAYICILAR Step 7 kullancya bir dizi standart sayc fonksiyonu salamaktadr. Bu sayc fonksiyonlarn SCL programnzda da kullanabilirsiniz. Yaplmas gereken bu fonksiyonlar gerekli giri, k parametrelerini vererek armaktr. Step 7, leri Sayc(S_CU) Geri Sayc(S_CD) leri/Geri Sayc(S_CUD) sayc fonksiyonlarn salamaktadr. Sayc fonksiyonlarna ilikin parametre bilgileri ekil-18de verilmitir.

ekil-18 Sayc fonksiyonlarna ilikin parametre bilgileri

Sayc ierii iin bellekte 16 bitlik alan ayrlmtr. Bu alann dk anlaml 12 bitinde sayc ierii saklanmaktadr. Sayc ierii 0-999

32

aralnda deerler alabilir. Sayc ieriine BCD formatnda ve ya ikili kodda ulaabilir. Sayc fonksiyon arsna ilikin bir rnek aada verilmitir.

33

Zamanlayclar
SCL, Step 7nin kullancya salad zamanlayc fonksiyonlarn da desteklemektedir. Sayclar gibi bu fonksiyonlar da SCL programnzda carabilirsiniz. SCL, Step 7nin sunduu Kenar tetiklemeli zamanlayc(S_PULSE) Geniletilmi kenar tetiklemeli zamanlayc(S_PEXT) Gecikmeli kapatan zamanlayc(S_ODT) Kalc gecikmeli kapatan zamanlayc(S_ODTS) Gecikmeli aan zamanlayc (S_OFFDT) zamanlayc fonksiyonlarn desteklemektedir. Zamanlayc fonksiyonlar S5TIME tipinde bir k parametresi de bulunmktadr. Zamanlayclar iin bellekte 16 bitlik bir alan ayrlmtr. Dk anlaml 12 bit zamanlayc deerini BCD formatta saklamaktadr. 12ci ve 13c bitler zamanlayc ieriinin artrlma araln belirlemektedir. Zamanlayc ierii bu bitlerce belirlenen aralklarla zamanlayc ierii birer birim azaltlmaktadr.Zamanlayc ierii 0-9990 aralnda deerler alabilir. 14c ve 15ci bitler kullanlmamaktadr. tipinde deer dnmektedir

(BCD format). Fonksiyonun, zaman deerini ikili formatta gsteren WORD

34

SCLde zamanlayc fonksiyon arsna ilikin rnek aada verilmitir.

35

Aada zamanlayc ve sayc fonksiyonlarnn arld SAYICI ve ZAMANLAYICI fonksiyon bloklarnn merdiven mant ile arlmalar gsterilmitir.

36

You might also like