Fa-D BiRsEN yAyıNEvi
Ptc PRoGRAIntAIhA vE s7-300 400 2
iı| |,|,
ı
# .
rl...&,-
YAVuz rıvıiııoĞıu
ş$\Ri(,ırl
, BAsKl o
PLC PROGRAMLAMA VE S7-300 l 400 -2-
YaVUZ
EMİNOĞLU
Bh,sENYAYnüEyİ isrıxnur, zorı
hakkl saklldlr ve yayn haklan 'BlRsEN BAslıl, YAYıı{, DAĞmı, İ,lc. vo sAı{AYl LluİrED aittjr. Bu kitjabln tamaml veya herhangi bir bölğmü yaylnovinin yazlh i4i olmakslzln şlRKETl,ne,, yayınlanamaz, basılamaz, mikrofilmo çekilsmoz, dolaylı dahi olsa kullanılamaz. TEKSIR, FOTOKOP| veYa
@ Bu kitab|n her
bilgbayadarda, dizgl makinalannda işlonobllocek bl] oiama
başka bir tekniklo ç€aıtllamaz,
aktanlamaz
Aksi davranlşta bulunanlar 5846 saylll yasanln 7.6.1995 tarihli değiştirilon 4110 No.|u kanunda b€li]tilen maddglerce Yazarln ve Yaylnovinin maddi Ve manevi zarannl kabul etmiş oludar. Bu konunun mercii makam'| T.c. lstanbul Mahkemoleri'dir.
Bu ktap T.c. Kültür Bakanlğl bandrolü ilg satl|maktadlr. okuyucllarımEn bandrolü olmayan kitadar
hakkında yaylneümize bilgi vermesini ve bandro|silz yaylnlarl satln almamaslnl diliyoruz.
Baslldığl Ye] v€ Taaih
:
lstanbul - 20,14
Kod t{o
:
Y. 0029
lsBN
:
97&97s511-5514
sonıfika No
i 17341
Kıtabln Adl
:
PLc PRoGRAMLAMA VE s7-300/400 -2-
kltabln yazan
:
Yavuz EM|NoĞLU
Yaylmclnln Adl
:
Birsen Yayın Dağltlm Ltd. Şti.
Yaylmclnln Adİr3i
:
cağaloğlu Yokuşu Evren Çafşlsl No: 1719 cağaloğlu
ret
- lstanbul
(o212| 527 85 78
-
522 o8 29
Faks: (02't2) 527 08 95 6mail: http:
www.birsenvaünevi.com
: Lord Matbaaclllk
Ba3lmcl Baa|mclnın ]ılatbaacl
!!b@hı!ş9!yeyi!gl@!!
Adl.si
§e.tfta No
Ve Kağ(çlhk Alpaslan Anbuğa
: Davutpaşa cad. Davutpaşa Emintaş sitesi 103/430 Topkapl - lstanbul
,:
22858
jİ"
\ş
§1
t
t
GENçLİĞE
ırirarr
Ey Türk gençliği! Birinci vazifen, Türk istiklAlini, Türk Cumhuriyeti'ni, ilelebet muhafıza ve müdafaa etmektir. Mevcudiyetinin ve istikbalinin yegine temeli budur. Bu temel, senin en lnymetli hazinendir. İstikbalde dıhi, seni bu hazineden mahrum etmek isteyecek dahiff ve harici bedhahlann olacakhr. Bir gün, istiklAl ve Cumhuriyet'i müdafaa mecburiyetine düşersen, vazifeye atılmık için, içinde bulunacağrn vaziyetin imkin ve şerAitini düşünmeyeceksin! Bu imk6n ve şeriit, çok namüsait bir mahiyette tezahür edebilir. İstiktil ve Cumhuriyetine kastedecek düşmanlar, bütiin dünyıdı emsali görülmemiş bir gılibiyetin mümessili olabilirler. Cebren ve hile ile aziz vatanın bütiin kaleleri zapt edilmiş, bütün tersanelerine girilmiş, bütiin ordulan dağıtılmış ve memleketin her köşesi bilfiil işgal edilıniş olabilir. Bütün bu şerAitten daha eEm ve daha vahim olmak üzere, memleketin döhilinde, ildidara sahip olınlar ganet ve dalAlet ve hattA hıyanet içinde bulunabilirler. Hattji bu iktidar sahipleri, şahsi menfaatlerini, müstevlilerin siyasi emelleriyle tevhid edebilirler. MilleÇ fıkr ü zaruret içinde harap ve bitap düşmüş olabilir. Ey Türk istikbalinin evlidr! İşte, bu ahval ve şerAit içinde dahi vazifen, Türk istiklAl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damırlarındaki ısil kanda mevcuttur!
Gazi Mustafa Kemal ATATURK 20 Ekim 1927 Yaıl,z EMİNoöLU
3
öNsöz Günümüzde üretim alanlarını (otomotiv, kimya, tarım v.b.) otomasyonsuz, otomasyonu
de PLC'siz düşünmek mümkün değil. 70'li y|llardan itibaren endüstride hızla yaygınlaşan PLC kullanımı, günümüzde onlarca marka ve yüzlerce modele ulaştl. Ülkemizdeki işletmeler, üretimlerinin bünik bir bölümünü PLC'ler kullanarak yapmalarına rağmen, donanım ve yazılım açısından henüz dışa bağımlılıktan kurtulmuş değiliz. Aynı şekilde otomasyon alanında faaliyet gösteren firmaların büyük bir bölümü yerli olmalarına rağmen, teknik al§apı ve donanımları büyük oranda yabancılar tarafından sağlanmaKadır. Buda ülkemizin kalkınmışlığı ve dışa bağımlılığımız açısından olumsuzluklar içermektedir.
Günümüzde donanım ve yazılım açısından dışa bağımlılıktan olabildiğince kurtulmamız gerekir. Bunun yolu da ülkemiz insanlarına güvenmek ve onlara sorumluluk vermeKir. Daha önce "PLC PROGRAMLAMA VE S7 300" adında 'l. ve 2. baskı olarak kitabımızı yayınlamıştık. Ancak bizden beklenenler ve bizim bilgilerimiz geliştikçe kitap içeriği çok arttı ve tek kitap altlnda toplayamadık. "PLc PRoGRAMLAMA VE 57 300/400-1" ve "PLC PROGRAMLAMA VE 57 300/400-2" adı ile iki faklı kitap haline dönüştürdük. Bu kitapda özellikle profesyönel PLc poelerinde kullanılmasl gereken ve S7 300 PLC'leri ön plana çıkaran yapılar ele allnmlştır. Aynca her biri kendi içerisde bir kitap konusu olabilecek endüstıiyel haberleşme konuları da basit beklentilerimizi karşılayacak oranda kitaba aktarılmıştır.
PLC programlama ve S7-300/400 konusunda daha iyi çalışmalar ve kitapların hazırlanmasl arzusu ile tüm kullanlcllara çalışmalarında başanlar dilerim. Yavuz EMlNoĞLU
'Çalışmadan, iiğrenmeden, yorutmadan rahat yaşama yollannı alışkanhk haline getiımiş mllletler önce onuılannı, sonra hürrlyetlerini daha sonra da gelecekleıini kaybetmeye mahk0mdurlar.' M. Kemal ATATÜRK
Yavuz
EMtNoGLu
5
Hayatımın tadı, kızım Yıldız Zeynep ve eşim Belgin'e
Çalışmalanmda laboütuviu ve doırıınımlarını kullandığm FESTO ve ANIT OTOMASYON çalışanlanna, aynca bilgi ve tecrübelerini benirnle paylaşan sevgili arkadaşım N.Giirol Altunok, Salim Dobra ve Tahsin Ankaı'a teşekkiirler.
ıçıİüDEKlLER İ. AKİŞ ŞEMALARİ lŞLEM
A.
11 11
............................... ...................
soRGULAMA
B.
c.
14 14 14
TEKRARLAMA.................. 1
2. A. B.
1
c
11
2
A. B.
1.
2. 3.
4. 5.
şARTslz TEKRARI-AMA
.
ŞARTLITEKRARLAMA
lNDlREKr ADRESLEME....... PolNTER (GÖSTERGE)....... ,vı/oRD PolNTER,LER "DwoRD PolNTErLER ADRES REG|STERLER|
......17
,l8 18 19
20
TEMEL VER| TlPLER| (Elementary Data Types)........ BlRLEŞT|R|LMlş DATA TlPLER| sTRlNG (KARAKTER Dlzlsl) ..... ARRAY (Dlzl).......
sTRUcT/sTRucTURE (YAPI)....... DAii AND iuğ cr^nıi vi zıı,ııiiiii.............. UDT (user Defined Typ€) KULLANlcl TAN|ML| DATA TlPl
.31
.32 .32
.u .38 .40 .48
.........
51 ZAMAN ALARMl "oB"LERl (oB 10 GRUBU)...............
A.
N.
GEclKT|RME AuRMl,oB"LERl (oB 20 GRuBu).................. ,oB,LERl (oB 30 GRuBU) çEvRlMsEL ALARM ooııaHıuısüneç ALARMl ,oB,LERl (oB .rc GRUBu) .................. ZAMAN HATAS| ,oB,sl (oB 80) BESLEME GER|L|Ml HATAsl ,oB,sl (oB 8r ) ................. HATA BuLGUsu UYARı,oB,sl (oB 82)......................... TAKMA / ç|KARMA UYARı ,oB,sl (oB s3) ,cPU, DoNANlM HATAsl uYARl "oB"sl (oB 84).................... PRoGRAM YÜRÜTME HATAsl "oB"sl (oB 85)..... ,oB,sl (oB 86)........ MoDüL TAŞlYlclsl (MoNTAJ RAY|) ARlzAsl HABERLEŞME HATAsl ,oB,sl (oB 87)....... ARKA PLAN PRoGRAM| (oB 90)...... ........ START oB,LERl (oB 10G101-102).....
P.
,oB"sl (oB 122) VER| ERlşlM HATAsl
B.
c.
D. E. F.
G. H. l.
J.
K. L.
M.
A. B. c.
B.
c. D.
62
64 65
66 68 73 73 73 73 74 74 75 80
1. 2. 3.
81
slsTEM FoNKslYoNLARl (sFc)............... slsTEM FoNKslYoN MoDüLLER| (sFB). STANDART FoNKsIYoNLAR .................... "lEc" sAYlclLARl ,lEc" ZAMAN ELEMANI_ARI...................... ,lEc, FoNKslYoNLARl n§7 DöNüŞTURME BLoKLAR|......... BAzl KÜTüPHANE FoNKslYoN UYGuLAMA|-AR|
.83 a7 88 88
89
KoMPAKT CPU,DA Hlzll sAYlcl KULLANlMt................... HlzLl sAYlcl lLE,HARDWARE lNTERRuPr KULLANMA FM 350 Hlzll sAYlcl MoDULı].. "Pl/ırM, FoNKslYoNUNU KuLLANMA YİVUZ EMD{OÖLU
90 92 .93
.
vl. FB KuLLAİ{ıİIıNDA oRTAK DB KuLLANITAK vıı.HızLı sAVcı vE Pvlrt$ KuLLANıMı A.
58 6,1
PRoGRAMI^MA HATAsl,oB.sl (oB r2r)...............................
o.
D E.
53
........
t05 109 ..109 118
.........1 19
.........122
7
vB
A. B. 1
2
KUMANDA VE KONTROL KAVRAMLAR| KoNTRoL UYGULAMASl ÇEŞlTLERl...., sÜREKLl oLMAYAN KoNTRoL............., sÜREKLl KoNTRoL.............
ıx. ENDÜSTR|YEL HABERLEşME A. B. 1.
c.
/
Bus
s|sTE]tlLERl...
164
1ü
........ 164
1ü
YlLDlz................... HALKA......... H|YERARşIK (AĞAç).....................
1.
MPl ADRESLERlNlN VER|LMESl....... GLoBAL VERlLERlN TANlMLANMAsl GLOBAL VERl TABLOSUNUN KULLANlLMASl "As_r HABERLEşME slsTEMl Aşl HABERLEşME slSTEMlNlN oLUşTURULMAsl
D. 1.
2. 3.
.......................163
FlELD BUs,lN AVANTAJLAR| ... AĞ ToPoLoJlLERl.................... DOĞRUSAL HAT .
2. 3. 4.
2. 3.
125 126 126 133
;üpr iıetiii-EğilE'öiöiEMi::::::::.:::
A B
E
172
.........172
......... 175
"PRoFlBUs, HABERLEşME slSTEMl 1. PRoFlBUs TEKNlK özELLlKLER| .... 2. DP sLAVE,LERl 3. cP 342-5 HABERLEŞME lşLEMclsl. 4. ET 200M,lN DP lŞLEMClLl cPU,YA EKLENMEsl .... 5. ET 200B,NlN PRoF|Bus HATT|NA EKLENMEsl 0. VALF ADAslNlN PRoFlBUs HATT|NA EKLENMEsl 7. UPLoAD EDlLEN BlR PRoJEDEK| TANlNMAYAN AĞ Bl LEşENLERl 8. PANEL lLE PLc,NlN PRoFlBus üzERlNDEN HABERLE şMEsl 9. DP lşLEMClLl lKl cPU,NUN PRoFlBus ALT|NDA HABE RLEşTlRlLMEsl 10. PRoFlBUs ALT|NDA M|CRoMASTER,LAR lLE MoToR KoNTRoLtJ l1. sERl HABERLEşME KART|,N|N (cP 34ol341) PRoFlBUs HATT|NA EKLENMEsl........ ,l2. s7 300/200 cPu,LARlN PRoFlBus ARAclLlĞ ıYLA HABERLEşMESl........ F "PRoFlNET, HABERLEşME slsTEMl ....., AĞ ELEMANLARlNlN ADRESLENMEsl 2. Pc - PLc BAĞLANTlsl lçlN PC,DE ETHERNET AYARLAR|.... 3. Pc_PLc ETHERNET HABERLEŞMEsl.................. 4. ETHERNET KABLoSUNuN KULLANlMl............... 5. ETHERNET KARTL| oPU,NUN SAHA clHAzLARl lLE HABERLEşMES|... 6. lKl CPU,NUN PRoF|NET ÜZER|NDEN HABERLE ŞMEsl ........................... G. PRoF|NET lLE PRoFlBUs,uN lqRŞlLAŞTlRl LMASl E.
165 165 166 166 169 170
slsTEM HATAsl RAPoRLAMA ........ "sTAcK" ALANLARlNlN KULLANlMl
Y.tu EMh{oöLU
179 180 180
1s2
183
1u
189 190
........1g
195 ,l99
206
216
221
226 226
26 27
23o 231
233 243 ..--245 .............254
"GRAPH, NEDlR?............... ,GRAPH, ED|TÖRÜ
A. B.
c.
"GRAPH, "GRAPH, ,GRAPH" ,GRAPH"
D.
E. F. H.
1. 2.
l.
J.
K. L.
1.
2.
M
........-257 .........257 .........258 .........264 .........265 .........268 .........269 .....,.,.27o .........27o
oLUŞTURMA......................
DlLlNlN BlÇlMsEL YAP|sl.
PRoGRAMlNlN ıqYDEDlLMEsl VE YÜKLENMEsl............. PRoGRAMLAMADA ZAMAN KULLANlMl.......... PRoGRAMLAMADA sAYlclLAR....................... "GRAPH" PRoGRAMLAMADA KARşlLAŞT|Rlc|LAR.......... "GRAPH" PRoGRAMLAMADA PARALEL VE ALTERNAT|F HAT........ PARALEL HAT EKLEME (simultaneous Branch) ........ ALTERNAT|F HAT EKLEME (Altemative Branch) ........ BlR ,GRAPH" PRoJEslNlN sISTEMAT|K lNcELENMEsl . BlRDEN FAZLA "SEQUENCER, (slRALAY|Cl) EKLEME.. sABlT PRoGRAMLAR (PERMANENT lNsTRUcTloNs) KULLANMA ,GRAPH" PRoGRAMLAMADA "lNTERLoCK, VE "suPERVlsloN" KULLANlMl "lNTERLocK, KULLAN|M| .."sUPERVlsloN,KuLLANlMl s7 "GRAPH, FB,slNE AlT PARAMETRELER .......
.........271
273
279 281
.
2B3 283 285 287
N,
"GRAPH" lLE UYGULAMALAR..............................
....289
A.
"scL, NEDlR? PRoJEYE ,scl" ED|TÖRÜ EKLEME .. "scl" BLoKLAR| oLuŞTURMA ..........
...295
B.
c. 1.
2. 3.
4.
D
5.
E
F. 1
G.
2 3
H. l.
J. K. L.
,Fc" MoDÜLLER|NlN TANlMLANMAs l VE çAĞRlLMAsl
FoNKslYoNA AlT GER| DÖN üş TlPl
"FB" MoDÜLLER|NlN TANl MLANMAS| VE ÇAĞRlLMAsl....... "DB" MoDÜLLER|NlN TANl MLANMAS| VE çAĞRıLMAS| .
"oB" MoDÜLLERlNlN TANlMLANMAsl ... "scl, ED|TÖRÜ lçERlslNDEN BLoK KlL|TLEME. KÜTÜPHANE FoNKslYoNLAR|Nl KULLANMA ..... "scl, PRoGRAMLAMA DlLl ELEMANLAR|............
lŞLEMclLER (operatiirler).....................
"scL"NlN KULLANDlĞl ANAHTAR sÖzcÜKLER... ADRESLEME çEş|TLERI ŞART sÖzcÜKLER|.........
...296 ..,298 ...301
302 303 3(M
305 306 3o7 308 308 308 .........309 .........310 .........311
zAMANLAYlclLAR FlMER) ...................... sAYlclLAR (CoUNTER)..............., ,scl"oe xei{an DARBELERI ruıü'ı.jü'li.............
.........312 .........314 .....315 .....316 .....318
M.
"scl, lLE UYGuLAMALAR.................. BlToPERASYoNLARıNıı{ sAYlsAL!şLENMEs|......
A.
DlREKT sAYlsAL DEĞERLER lLE çAL|şMA.............. DATA MoDÜL DEĞERLER| lLE çAL|ŞMA..................
.339
UYGULAİ'ALAR s7 300 PLc KoMuTLARıNA GENEL BAKış. sıMATıc ]UIANAGER'DE KısA YoL TuŞLARl
351
xılı. B.
c.
xlV. xV.
xvıl.
"LooP, DöNGüsü lLE DATA MöDüaüN TARAT|LMASl.......
YaıTz EMh{oĞLU
337
.u2 .u4 367
372
9
ı. AKlş şEMALARı
Akış şemaları, bütiln programlama dilleri için kullanılan pro§ıram mantığının grafik olarak gösterilme şeklidir. Akış şemaları DlN 6600't ve 66262 de standartlaştırılmışlardır.
A İşLEri
lşlem bölümü progıEıma ait herhangi bir parçanın yapıldığı yerdir. Bir dikdörtgen ile gösterilir ve dikdörtgen içerisinde de yapılan progrEımı anımsatan bir başlık bulunur.
cİ
lşlem
1
Çlkş lşlem 2
Ömek Programın açıklaması
PLC programı
lş şema§l ile gösterim
Bir hafıza alanındaki (MW 4) sayı 5 azaltılacaktır.
L iviw 4 L 5
AZALTMA
-|
T lt,tW4
B.soRGuLAfiA
PLC programlamada lineer pıogram akışının herhangi bir program parçasının işlenip işlenmeyeceğinin veya birden fazla programın hangisinin işleneceğinin belirlendiği yerdir. Genellik|e sorgulamaya verilen cevap evet ise işlem b
so
lama sonucuna
bir
ram
sofgu
lr
lenmez.
Hey,
lşem
Ysvuz Emiooğlu
,l1
ömek:
PLC programı
Aklş şemasl ile gösterim
Programın açıklaması Giriş bit'i 124.0 da sinyal var ise MW 10'un içenği 3 bit sola kaydırılarak programa devam edilecektir.
sinyalvarn
A l124.o JcN atla L Mw10 SLw 3 T Mw10
Haytr
Evet
atla:
"
sol'a kaydlr
b) İkııı
ışıome ulama sonucuna
öre iki
m
Haylr
lşlem
a
sından han lslnln
sorgu
Evet
işlem 2
'|
ömek Programln açıklaması Aklş şemas| ile gösterim "M,t2.3 = 0" ise MW 1o'un içerisine '+50" saylslnl, diğer Hayr 12.3=0 ml durumda '- 50" sayısını yükle. - 50
ine karar verilir.
l
yükle
PLC programı
AN M Evet
+
50 yükle
JC
L T
12.3 artı
-50
[,tvv10
Ju dev artı:L + 50
T
]vlVV 10
dev:....
12
Yavuz Eminoğu
c) Çokıu ışıeme Birden fazla sinyal sorgu|anarak, ikiden fazla programın hangisinin işleneceğine karar verilir.
sorgu E1
lşlem
lşlem 2
1
E3
E4
lşlem 3
iş|em 4
Ömek: MB 10'un içeriği 0, 1,2 veya 3 o|abilir. MB ,tO'un içeıiği "0'ise, Ml/V 14'e "1" değerini yükle, MB 1O'un içeriği "1" ise, MW 14'e"10" değerini yükle, MB 1O'un içeriği "2" ise, MW 14'e'100" değerini yükle, MB 'tO'un içeriği "3" ise, MW 14'e "1000 " degerini yükle,
MB 10 0
2
Mw14=1
Mw14=10
Bit olarak sorgulama
A A
M 10.0 M 10.1 JC bin AN M 10.0 A M 10.1 JC yuz A M10.0 AN M ,t0.1 JC on
L1
T
[,fW14 BEU
Mw 14
=
=3
100
Mw'l4
=
'l000
Kaşılaştırma ile bin:L 1000
T
Mw14
JU son
yuz:L
T
on:
't00
Mw,t4
JU son
L
T
10
Mw14
son:......
L Mw10 L 1000 --|
JC bin TAK L 100 --| JC yuz TAK L10 ==| JC on L1 T lvfw BEU
Yıu,z Eminoğlu
bin: L
T JU yuz:L T JU on L T son:BE
1000
Mw
14
Mw
14
Mw
14
son 100
son 10
14
,l3
c.TEKRARLA,İıIA 1. ŞARTsız TEKRARLA]UIA Program çahştlğl sürece işlem sonsuz saylda tekrar|anır. lşlem
NOT: Tekrarlama işlemlerinin CPU'yu sonsuz döngüye götürmemesine dikkat edilmelidir. (Normal PLC çevrimi zaten bir sonsuz döngüdür.) 2. şARTLı TEKRARı_AilIA
(1)
lşlemden önce sorgulama
Sorgulama sonucuna göre işlemin yapılıp yapılmayacağına karar verilir. Hiç işlem yapılmadan progrEıma devam edilebilir veya işlem gerekli sayıda tekradanarak programa devam edilir.
sorgu
işlem
ömek:
ilB 10'un lçeıisindeki sayı değeri kadar liW 12'yi lkiye tiilelim
sor:
MB10=0? Hayr Mw 12l2
MB l0= MB 10-1
Evet
L
MB 10
L0 ==|
JC dev
L Mw12 sRw 1 T Mw12 L MB,l0 DEc T MB10 1
JU sor
dev:....
11
YatTz EmiDoğIu
(2l
lşlemden 6onıa soıgulama
Programa girildiğinde önoe işlem bir kez yapılır sonra işlemin yeniden yapılıp yapılmayacağı sorgulanır. Soıgu sonuoJnda işlem yeniden yapllacaksa işlem bir koz daha yapılır ve yeniden sorgulanır. Bu döngü işlemin 1opılacağı sayı kadar devam eder.
işlem
sorgu
ömek: MB ,t l'in içenğini, MB 1O'un içeriği 4'den
büyük o|uncaya kadar 2 ile çarpahm. (lki ile çaçma sola kaydırılarak yapılmıştır.)
sor:L MB 10
L4
>l MB 1l = MB 112 MB 10 - M8 10ü'
JC dev
L MB 11 T MB11 L MB10 lNc T MBro slw
MBl0<4
1
1
JU sor
dev:....
Yıvuz EDiooğa,
t5
VE
Ömek: Bir depodaki sıvı seviyesinin kontrolü PLC ile yaptırılacaktır. Depodaki sıvı seüyesi istenen değerden az ise doldurma vanası açılacak ve sıvı dolmaya başlayacaktır. Sıvı seviyesi istenen değere ulaştığlnda doldurma vanası kapanacaktır. Sistem açrna kapama anahtarının açık olduğu anda çalışacak diğer tür|ü kapanacaktır. 8a*a
DddrrrE
PotlPA
yrl6
s€
}e ensöİü
Aydğ.ylcl
%100
-][
ffi
§vı
+
%0
i09876_ 513_ 2_ i0-
ı
El hrnarıddl
8oşdtİE
ö
oo,lal
d€ğef
vdl6
0
@
1
9
idenen değcf
Ag16 kaparİa
Btk
ANl 124.0 Jc kapa L
L
Plw
+|
1384
128
T
tvwv
L L
Plw
-l
0
// Açma kapama anahtarl
// lstenen değgr
// Dolu depo miktannln % 5'i // Üst sınır
(ı)
13&4
=
MW2
// Alt slnlr
L L
Plw 130 fulvv 0
// okunan değer
Jc
kapa
L
Ptw
L BEU
ac:
124.0
Q
124.0
kapa: R
16
o (!
o
(D
Vananın açılma kapanma aralığı (histerize) dolu depo miktarının + o/o 5'i kadardır.
ac
s Q BEU
(0
130
Mw2
<|
Jc
o
.N
128
T
>l
Not: Akış diyagramlarında programların başlangıç ve bitişleri elips şeklindeki sembolle gösterilir.
Yavuz EmiDoğlu
ıı.lNDıREKT ADRESLEuE "PLC"de kullanılan adresleme çeşitleri şunlardır. 1- Gerçek (mutlak) Adresleme a) Dlreit Adıusleme
A l124.0 L MB 10
T DBl.DBWO
gibi,
b) Kısa adıesleme
sET
L5 L
+27gibi
c) lndirekt Adrcsleme Biraz sonra aynntısını açıklayacağımız gibi
A l[MD2]
L T tivtw0] T [ARl,P#2.a]gibi, 2. SemboIik Mresleme a)
Global Sembol
Sembol tablosunda tanımlanan ve projenin tamamında kullanılan semboller. ("start" gibi) b) Loka| Sembol Program modüllerinin deklarasyon tablosunda tanımlanan, sadece o modülde kullanllabilen ve formal operandlar|a progrEım yazlmında kullanılan sembo|ler. (#deger gibi) lndirekt adreslemenin dışındaki adresleme çeşitlerini şu ana kadar işlediğimiz konular içerisinde sıkça kullandık. Bu adresleme şekilleri ile çok şeyler yapılabilmesine rağmen PLC'nin özelliklerini tamamen kullandığımızı söyleyemeyiz.
A
ıı{DIREKTADRESLEilE
operandın (işlemin) adresinin parametrelendirilebilir yani hesaplanabilir bir şekilde yapıldığı adresleme şeklidir. lndirekt adresleme ile adresin yazılı olduğu hafıza alanı gösterilir. lndirekt adreslemede operandın tamamı (l 124.0\ veya operanda ait parametrenin (124.0) bulunduğu hafıza alanı köşeli parantez ...[MD 0] içerisinde yazılır. lndirekt adresleme ile sadece gerçek (mutlak) adresleme yapılabilir, sembolik adresleme yapiamaz. lndirekt adreslemede köşeli parantez içerisine yazian hatıza elemanına 'POlNTER" ismi verilir.
Yavuz Eminoğlu
17
Prc PROGRAMLAMA
KT ADRESLEME
VF. s7 ]m/40G2
B. "PoıNTER" (GÖSTERGE) 'Pointeı''ler, içerisinde başka bir belleğin adresini tutan belleklerdir. lndirekt adresleme ile yapılan adreslemelerde; bit ve bayt adresleri ile gerektiğinde operand şeklinin de gösterilebilmesi için farklı bir formda gösterilmesi gerekir. S7-3O0 sistemlerinde WoRD (16 bit), DwoRD (32 bit) ve 48 ile 80 bit uzunluklarında
"Pointef yapıları kullanılır.
1. avoRD PoINTER"LER Bu "Pointeı''ler sayıcı (C ..), zaman elemanı (T ..), fonksiyon (FC ..), fonksiyon modülü (FB ..) ve datamodül (Dl ..; DB ..) numaralarını gösterirler. lçerisinde tam sayl bulundururlar standart word alanından ve içeriğinin lNT sayıdan farklı bir özelliği yoktur.
15 14 13 12 11
L
T
lB 124
Mw10
oPN
L T A
DBIMW 10]
+20
DBWo
T[DBW 0]
uc
cc
FOIDBW 2] FB[MW 10]
109 876543210
Giriş bayt'ı 'l24'den girilen sayı değeri numaralı data modülünü aç. (lndirekt adresleme ile data modül kullanımında 'OPN'foımatı
kuııanllmalıdır.)
saylsınl yükle, bu değeri biraz önce açtlğlmlz data modülün 'O.Word" satırına yaz. O satırdaki değer (20) numaralı zaman elemanını (T 20) sorgula. +20 tam
,t24'den girilen sayı değeri numaralı data modülünün Giriş bayt'ı 2 numaralı word'ünde bulunan sayı numaralı FC'yi şartsız olarak çağır. Giriş bayt'ı 124'den g irilen sayı degerli FB'yi şarth çağır
Parametrelendirilmiş (fonksiyon haline getirilmiş) modüller indirekt adresleme ile çağrllamaz. (indirekt adreslemede "CALL' emri kullanllmaz)
1E
Ysvuz EEinoğu
2. ,owoRD PoıNTER"LER
Bu "pointeı'ler; operand ve onun adresini gösterirler. 'pointe/'ler ile data modül numarasl ve data tipi de gösterilmek istenirse "pointeı" büyüklüğü 48 veya 80 bite yükselir. Biz bu kitapta bu konudan bahsetmeyeceğİz.
32 bıt "pointeı" yaplsl
0 0 0 0 0 y y y y y y y y y y y y y y y y
0 0 0 0
\
sabit
L T
op.rand
'4.5' sayısı "pointeı" formatında (yukandaki tabloda açıklandığı gibi bayt alanına 4 ve bit alanına, 5 sayısı yüklenir.'.....OO1O0_1 O1 yİl<ĞnOi ) ve bu değer "MD 0"a transfer edildi. 'ilD 0"ın taşıdığı sayı nu marah merker bit'i (M 4.5) sorgulandı ve aynı numaralı çıkış kanalına (Q 4.5) atandı.
P#4.5 MDo
A M [MDo] = Q [MDO]
L9 TM D4 A
=
Bit adreşi
Bayt adresi
_ 9 tam sayısı MD4'e transfer edildi ve MD4'ün taşldlğl ''pointef formatındaki giriş biti aynı numaralı çıkış bit'ine atandılson satır|arda). Şimdi hangi numaralı giriş bifini, hangi numaralı çıkış kanalına atadığımızı inceleyelim. değerinin Akü içerisinde yer|eşimi şöyledir. (..oooo 1oo1) bu değer . ..9 köşe]i parantez içerisine allndlğl anda "pointer" formatüna gİrecek ve son üç bit'i, bit adresini ondan önceki bit'ler bayt adresini verecektir. Yani (.00001_001) giriş bit'i "l 1.1-in çıkış bit'i 'Q 1.1"e atanması
|[MD4] Q[MD4]
L 125 sLD 3 TMD0 L lB [MD 0] T oB [MD 0]
lndirekt adreslemede bayt, word, Dword adres alanları kullanılacak ve sayı değerine tam hakim olmak isteniyorsa yüklenen sayı değeri 3 bit sola kaydlrllarak bayt adresine dönüştürülür Ve bit adresi sfırlanlr. Bu durumda 'l25'inci giriş bayt'ının, ,t2S'inci çıkış bayt'ına transferi sağlanmış olur. Bayt, Word veya Dword alan|arının indirekt adreslemesinde ve kaydırma ile indirekt adreslemeye dönüştürmede, bit adresinin her zaman "0" olması gerektiği unutulmamalıdır.
lndirekt ad res alanlarının (köşeli parantez içerisindeki alan) aldığı sayısal d€ğerler ldaki mle izlenebilir.
Herhangi bir program modülünde
)
"Options Customize" ile açılan
pencerede seçili hale getirilerek, program onitor online" konumuna alınır. Bu yöntemle sayıcı ve zamanlayıcı içerikleri de word formatlnda izlenebilir.
"
)
cıııAııaa
|F
Gğli|*,, m
C.,p.Ğ orı/ofl li( P!,1,16
a iÇ_i;!ii-_i!,
P
rıtı.,
E§*?.-tffi,€ ğr L9
ılı€ilr*,*ğğtra
reşft
IuD.@o
kb, d.rı 9.. f5 9 9İ.E p kr J ü!b Q-&,
o.0
I
Edl I sdtr l s.ur Td T T
Ddir§fu
F
oo oo
l
R.*l F.*.
I
2
İü€d
ı|(Dıtlcl o o
t
ı
9
0 o
0 0
0 0
o
o 0
Yavuz Eminoau
a
1,1-
19
AVE
c. ADRESREG|STERLERı pLc içerisinde indirekt adresleme amacıyla kullanılacak 32
bit genişliğinde 2.adet adres
registeri buİunmaktadır. Registerden indirekt adreslemede, adresler birbirinden bağlmsız iki adİes registerinde durmaktİdır (AR1, AR2). Adres registerlerinin içeriğini "pointeı''ler gösterir. lndirekt adresleme adresini; adres regısteri (segment) ve ofsetin topıamı verir. Buradaki ofset yine 'pointer' yapısında gösterilir. Ofset ile sadece sabit sayılar gösterilebildiği gibi, operand aianıda gösterilebilir. lndireK adreslemede sayısal operasyonlar yapllacaksa bit adresi "0" olmalıdlr.
Adres registerleri yardımı ile iki ayrı şekilde indirekt adresleme yapılabilir,
ofset iıe sabit sayıların gösterilmesi: "LAR'I P#10.0" ile "pointefin gösterdiği 10.0, Adres Registeri 1 (AR1 ) içerisine yüklenmiştir. LAR,I P#10.0 "l'l1anl,e*Z.'l]' ile Adres Registeri 1'in gösterdiği 'l0.0 ile ofset adresi 2.'| toplanarak giriş kanalı 12.,l adresi VE" işlemine tabi l[ARl,P#2.1] tutulmuştur. 'L MwtARl,Ppı.O]" ile Adres Registeri 1'in içeriği 10.0 ile ofsetin i.' ı,ıwtnnı,p*+.o] gösterdiği 4.0 toplanarak MW 14, Akü 1'e yüklenmiştir.
'
A
Ofset lle operandın da gösterilmesi: LAR1 P#M12.0 L B[ARl,Pflı.0]
-
[ARl,P#0.7]
"LARI P#M12.0'ile AR 1'e'pointeı"in gösterdiği M12.0
'
yüklenmiştir.
"L B[ARI,P#4.o]'ile pointerin gösterdiği AR1 içindeki M12.0
ile, olduğu bayt ve bu değerin M16, olan gösterdiği ln toplaml 4.0 ofset'in bilindiğine göre, yüklenen değerin MB 16 olduğu anlaşılır. "= tAR1 ,P#0.7]' Adres Registeri 't 'deki M 12.0 ile, ofset değeri 0.7 toplanarak çıkışınM 12.7 olduğu anlaşılır.
32 bit pointer yaplslnda operand alanının (Z) tanımlanması 32 bit "poİnter'lerde operandın tanımlanması için ayrılan 24,25,26,biller. aşağıdaki tabloda tanlmlandığl gibi kullanılabilir. kod
Alan
P
Periferi
f
Girişler
o
Çlkışlar
M
Merkeder
DB
Genel data modülleri
Dl
özel data modülleri
L
Geçici Veriler
Yövıüz
qp-.,ı
010 011 100 ,|01
]]0
111
Geçici veriler m
000
E ıhoğlu
ı
Örnek: Bir motor, data modüle önceden girilen zaman değerlerinden, giriş kanalından girilen sayı numaralı satır da bulunan değerin, zaman elemanına zaman değeri olarak yüklenmesi Ve o kadar çallşmasl istenmektedir. Data modülde bu iş için ayrılan satır numarasından büyük bir değer girildiğinde hata lambası nacaktır.
A l
Süreyi değiştirebilmek için Ancak giriş kanalından allnan saylnln 32 bit "o.Word" ifadesini 125. bayttan girilen sayl ile değiştirebilmemiz 'pointer" formatIndaki 1 gerekir. Buda indirekt adresleme ile bayt alanında olmasl AT1 mümkündür ve gerekir. Bunun için, = Q 124.0 L lB 125 L lB 125 Program böyle yazılsaydı T MD2 lTD motor sadece L DBl.DBW[MD 2] şeklinde sLD 3 "DBl.DBWO"da yazllan yazılması gerekir. T MD2 süre kadar çallşlrdl. 124.0
L DB1.DBwo sET
Ayrıca indirekt adresleme ile data modül içerisinden veri alabilmek için ''OPN" formatını kullanmak gerekir.
DB1 Adres
lsim
+0.0
zaman
+2.o
zaman 2
+4.0
zaman 3
+6.0
zaman 4
+8.0
zAman 5
1
Tıp woRD woRD woRD woRD woRD
w#16#2002
w#l6#2005 W#16#2008
w#1#2012 W#16#2015
Adres ıegisterle]i ile çözüm
"PolnteıJ' ile çözüm
L lB L8
Başlangıç değeri Aktuel değer
125
L
P#125.o LAR,|
>l
Jc
L
hata
L lB 125 sLD 3 TMD2 oPN
DB
1
hata
:SQ
DB
sD
24 0
125.7
oPN L
1 1
3
A
1
=o BEU
sLD LAR1
A l 124.0 L DBw [MD 2] sET AT
lB [ARl,P#0.0]
L T
llhata
1
l T1
124.0 DBW [ARl,P#0.0]
T
Qw
1 1
24
,| Yukandaki programda satlr numarasl olarak - 3 - 5 gibi yani satlr|arln başlanglç bayt numarası değil de ara rakamlar girildiğinde zaman birimi ve süresi farklı zaman değerleri izlenecektir. Neden? (word formatlnda zaman değerinin yüklenmesi !!!) Yıvuz Eminoğlu
21
Adres reglsteri işlemleri
ifqEtşffiffi;f$]i. trı -l tl
li
ü
lV ^: lf
LAR1 P#Zx.y --------------t>
^l
TAR,I AR2 ------------+ LAR1 AR2
F
t
l
c.ı
tğ
LAR2 P#Zx.y
<-
LAR1 Pfh.v
--------ş
+AR1 P#x.y -------------->
#
EE
TAR
{tğ
N
(! N
5
F
ü.
ğ.
t
+
,, ,Jl',
a)
Adıes Registerine Yükleme LAR1 P#20.0 LAR,t
LAR1 MD 120 LAR1 AR2 b)
) ) ) )
P#20.0'ın AR1 e yüklenmesi Akü 't içeriğinin ARl'e yüklenmesi MD 120 içeriğinin ARl'e yüklenmesi AR2 içeriğinin ARl'e yüklenmesi
Adres Registerinden Tıansfur Etme
TAR1 MD140 TAR1 TAR1 AR2
) ) )
AR1 içeriğinin MD ,l40'a transfer edilmesi ARl içeriğinin Akü 1'e transfer edilmesi AR1 içeriğinin AR2'ye transfer edilmesi
c) Adres Registerleri lle Toplama
P#0.1 ) +AR1 ) +AR2
d)
Adres Registerlerinin Değiştirilmesi TAR
22
AR2 ile "pointer' değerinin toplanması Bu işlemde 'pointeı" büyüklüğü max P#4O95.7 olabilir. Akü 1 ile ARl'in toplanmasl
)
AR1 ve AR2 içeriklerinin yer değiştirmesi.
Yal,llz Eminoğlu
Ömek: Bir proses kazanından saatte
bir okunan sıcaklık değerleri gün ve günün saatlerine göre düzenlenmiş data blok alanlanna s|ray'a kaydedilecektir. Ömeğin bir günde 24 kez ve bir ay süreyle okunması düşünülüyorsa 30 ayı,ı data blok ve her data bloKa 24 wordlük alanlar oluşturulmalıdır.
AN
l124.0
BEc
oPN
DB [ırw 40]
A M
cUc c
2o.5 1
L L
2
T
l\,fW
L L
c
-|
1
12
1
24
JC
son
L Mw12
sLD
BEu
Plw
256 DBw IMD 0]
L MW 40 lNc T fufw 40
son:
1
sET
Rc L fulvv 40 1
L
Okunan verilerin kaydedileceği data blokların açılması. (bfw 40 içeriğin e OB 100 içerisinde "1" atanmışt|r.) Okuma aralığı (Saatte bir yerine sn'de bir için donanım ayar|anndan aktif edilen daöe ile sayıcıyı bir artır.)
Sayıcı içeriği birer, data blok alanlarına ait bayt numaraları ise ikişer arttığı için sayıcı içeriğini iki ile çarp ve sonucu data blok bayt numaraslna atanacak Mw 12'ye at]a. Sayıcı içeriği kayıt sayısını aştığı an bir sonraki güne ait data blok alanına geçebilmek için data blok alanına yazma işlemini atla. Sayıcı içeriğini 32 bit 'pointeı" formatına dönüştürme.
3
TMD0
L T
Kayıt başlatma sinyali yoksa programı çalıştırma.
Okunan analog değerin sayıcı içeriğine göre belidenen data blok alanına yazma.
Sayıcı içeriği 24'e ulaştığında yani kayıt yapılan güne ait son kayi yazıldıktan sonra bir sonraki güne ait datıa blok'a geçebilmek için data blok numarasını artırma. Bir sonraki güne data blok alanına yazılan kayıtların tekrar 0.dan başlaması için sayıcının resetlenmesi
Gün sayısı 30'u geçtiğinde yeniden 't'den başlaması.
3,t
<=|
BEc
L1 T ]vlw
40
Bu programın doğru fonksiyonları yerine getirebilmesi için manuel olarak ayın 1. Günü, saat 24.00'da başlatılmasl gerekir. Programın daha gerçekçi ça|ışabilmesi, daha sonra anlatılacak gerçek zaman saati (Date And Time:DT veya Time Of Day:TOD) kullanılarak sağlanabilir. Burada program içerisinde her güne ait bir data blok kullanımını sağlayan MW 40, Date And Time (DT) Verisinin güne denk g€len bayt'ı kullanllarak yapllabilir. Yıvüz EEıiDoğlu
z3
tNrrtREKT ADRF.SLEME
Prc PRoGRAMLAMA VE s7
Örnek: Herhangi bir proses sisteminde kazanlardan okunan değeder't saat aralıkla data modüllere aKarılmıştlr (Önceki ömek). Data modüllerdeki istenen bilgi de scada veya panel üzerindeki bir hücreye (çlklş kanahna) aktiarllacaktır. Giriş bayt'ı 'l24'ten (veya ekrandan) girilen tam sayı numaralı data modülün, giriş bayt'ı 12S'ten (ekrandaki başka bir hücreden) girilen bit numaralı satırındaki bilgi çıkış kanalında görülecektir. Örneğin; ,t25 in 5. bit'i uyanlı ise; 4. Kazanın (4.data - Giriş bayt'| 124'ün 2. bit'i ve giriş bayt'ı (5.sahrındaki) (16#45) çıkış kanalında görülecektir. bilgi modülün) 5. Saat önce okunan 'l giriş bayt'ı 125in 1. bit'i uyarılı ise; 3. Kazanın - Giriş bayt'ı 124 ün 0 ve bit'leri ve (3.data modülün)'l. saat önceki (,t.satlrındaki) bilgi (16#31) değeri çlkış kanalında görülecektir.
En az aşağıdaki gibi 4 data modül hazırlanacak (şimdilik bu veriler manuel doldurulacakt|r) ve bu değerler yukarıda açıklandığı şekilde izlenecektir. DB
1
DB 2 (KAZAN 2)
(KAZAN 1)
Adrss
lsim Tip
Tip
Baş.değeri
Aç|klama
B
BYTE
ü#lü2o
Şlmdlki
+ 1.0
B1
BYTE BYTE BYTE
B#16#1o
+
I
+
0.0
a
+
1.0
a1
BYTE BYTE
+
2.0
a2
BYTE
B#lü12
2.saat önce
+
2.o
82
+
3.0
a3
BYTE
B#16#13
3.saat önca
+
B3
+
4.o
+
4.0
w
5.0
El
4.sa8t önce
+
BYTE BYTE
wlü14
3.0
B#16#15
5,s9at önce
+
5.0
B5
BYTE
B#16#16
6,99rl önce
+
6.0
BYTE
B#16#
7,saat önca
+
7.0
a4
a6
6.0
Ea.lE+
e#ı6#ıı
,|9moııl |ı.saat
once
Adr6s +
0.0
lsim
c
+ 1.0
c1
+
2.0
+
3.0
c2 c3 c4 c5
+
4.0
@ltd c7 +
+
5.0
7.0
0.0
ülw21
ülü22 ülü23
1.sgat önce 2.s6at önce 3.€aal
önca
g#1#24
4.3aat &rcg
BYTE
gülw25
5.888t ğüca
B6
BYTE
6,8aat önce
B7
BYTE
ü#lü26 e#lü27
BYTE
7,saat önco
DB 4 (KAZAN 4)
DB 3 (l(AzAN 3)
24
lsim
Baş.değeri Açlklama
Adres
lsim
Tip
Baş.değeri
Açlklama
D
BYTE
B#16#40
Ş|ndlki
D1
B#l6#41
1.saat 6nce
D2
BYTE BYTE
ü#lü42
2.seat öaıce
D3
BYTE
B#,l6#43
3.saat örıca
4.0
D4
B#lü44
+
5.0
D5
BYTE BYTE
4.s88t
B#16#45
5.8aat öiüce
6.6a6t önca
+
6.0
B#16#46
6.§aat önce
7.s8at öaıce
+7-o
Tip
Baş.d€ğeri
Açlklama
Adres
BYTE
B#16#30
Şimdlki
+
BYTE BYTE
B#16#31
1.seat önce
+ 1.0
B#lffi2
2.saat öaıca
+
2-0
BYTE
B#16#33
3.6aat ö.rcg
+
3.0
BYTE BYTE
B#16#34
öme
+
Blr,l6#35
s.sa€t
önce
BYTE
B#16#36
BYTE
B#16#37
.§aat
0.0
Yavuz Eminoğlu
E-l BYTE D7
BYTE
ülü47
&lcg
7.saat örıc9
Bilindiği gibi PLc ile programlanan sistemler, operatör panel veya scada ekranlarl üzerinden kontrol edilirler. Ömeğin yandaki gibi düzenlenen bir ekranda 4.nolu kazana ait saat 2.de (2 saat önce) okunan değerin ekranda izlenmesi istendiğinde yandaki gibi düzenleme yapılabilir. Bu işlem için ekrana o değerlerin girilmesi yeter|idir. Sonuç ekranda istenen hücrede görüntiİlenir.
lB 124 den giİilecek değer
v
1 2
V
lB 125 der(fl€cak
değ6f
Qw'124 de okunmasl gorken değer
oKu.lAN DEĞER
42
4.nolu kazandan 2 saat önce okunan veri
L lw
L0 ==|
BEc
124 Giriş kanallarından bir değer girilmemişse programa devam etme
ll
L lB
124
Data modül numarasının girilmesi
L lB
125
Data modül saür numarasının girilmesi l 125.0 uyarılırsa 1 satır, l 125.1 uyarlllrsa 2 satlr, l 125.2 uyarılırsa 3 satır, l '125.3 uyarılırsa 4 satır, Yani;
TMw0 DTR LN
L
2.000000e+000
LN /R RND
sLD
ll
2"=16
3
TMD4 oPN
DB [Mw 0]
L DBB [MD 4] T Qw 124
)
n=? n=5
lstenen data modül ve istenen satlrdaki bilgilerin çıkışa aktarılması
lndirekt adreslemede köşeli parantez içerisindeki hafıza alanının 32 bit ''pointe/ formatında aldığı değer monitör konumunda "ıND|REGT" alanında izlenebilir. Monitör konumda eğer indirecl alanı açık değilse herhangi bir program bloğunda ..Options customıze" llan e "ındırect" ilir.
)
oBt : 'ıl.in hogrı İİİİİİİ'rİ'İ]: A
rltle: I
a ü,.]
s.üe€p
(cy(le)"
De2
lıDIREcT
16.o o_oeee_@o1
4.s }-
j!d *t
ıl§l}ı|ATlC 3Q1 Adüers
I\D
srA
=,
ltD 21
l
ı
Daı
/t]
,
o_oooo_0@e
l»
a
3c-2 DP
Didryfün*
@rt.ltU5 vEluE
2 DEc
ıEr Moffy
v**
MD 2'nin aldığı sayısal değer "'t28", yani "01000.000" dır. Bunun 'pointeı'' değeri ise "l6.0"dır. Bu da monitör konumunda izlenmektedir. Yaulz EminoğIu
25
PROBLEI$: Bir tuşa basılmasıyla, analog kanaldan okunan değer data modüle yazılacaktır. Data modüle yazılan her değer data modülün ilk satırına yaziaak, daha önce yazılan
değeder birer satır aşağı a0ayacak ve son satııdaki değer silinecektir.
çözüm düşüncesi: Data modüle değer yazmadan önce, son satırlardan başlamak üzere bir İleri satıra kaydırma işlemi yapılır (DBl.DBW18 ) DBl.DBW2O'ye, DBl.DBWI6 ) DB't.DBW,l8'e v.b) Yer değiştirmeler bittikten sonra ilk satıra (DBl.DBwO'a) yazılmak istenen veri yazlllr.
A
Analog kanaldan okunan değerin data blok'a yazdırılması
l124.0
FP M0.0
JcN son L Plw128
A l124.0 L Plw 128 T DB1 DBwo
T
DB1 DBwo
son:BE Program böyle yazıldığında da her değer okunduğunda öncekinin üzerine (DBW 0) yazılır. Önceki değer kaybolur. Dolayısıyla bizim her değer yazdığımızda 0. word 2.word'e, 2.word 4.word'e kaydırılması lazım.
Ancak bilindiği gibi "UT' komutları STL'de şarta bağh değildir. Şarta bağlamak için slçrama komutları kullanmak gerekir. Ve her basışta bir değer yazsın diye kenar darbesi kullanılma|ıdır.
A l 124.0 FP M 0.0 JcN
son
oPN
DB
LMD8 L P#2.o -D TMD8
1
LMw2
L P#18.0 TMD4
LOOP geri
L Plw 128 DTR L 55.296 ll *
L P#20.0 TMD8 L
geri:T
L T
RND
TDBw0
2
son:BE
DBw [MD 4] DBw [MD 8I
LMD4 L P#2.o _D TMD4
ü
/R
,t0
i\ılW
Ancak kaydırma mantığı böyle yapılırsa, bütün satıriar "0." satır değeri ile doldurulur. Bu işlemi tersten yaplp "0." satırı boşaltmak lazım. Yani önce 18.satlr 2o.satlra, sonra 16.satlr 18'e v.b. Bu kaydırma işlemini bir döngü içerisinde yaplp, okuma sinyali geldiğinde satır|ar birer kayıp 0.satır boşltılır ve döngü sonrası o.satlra okunan değer yazılır.
--:O
(27648
Ylvuz Eminoğlu
) 5OO0C arasına ) 500)
indirgeme
PRoBLEM: Data modül içerisine daha önce yazılan değer|er büyüKen küçüğe sıralanacaktır.
DB1 Adres
lsim
0.0
Sayi_O
lNT
13
2.o
Sayi_1
27
4.0
Sayi_2
6.0
Sayi_3
8.0
SayL4
lNT lNT lNT lNT lNT lNT lNT lNT lNT
,10.0
ip
Sayı_5
12.o
sayi_6
14.0
Sayi_7
16.0
8
18.0
Sayi_9
oB1 A FP
Jc
BEU sira:L m'l:T
99 55 26 27 87 97 12
0
L
10
MD
Mw Mw
L L
20 20
I
ccFc
,l0
L T m2:T
35
124.o M 0.0 sira
MB4
Açıklama
Baş.değeri
//Dış döngü
50
1
L MD50 L P#2.0 +D T MD50 artırılır. LMB5
//ARl'in içeriği bir satır
LOOP m2
MB5
//lç döngü
LAR1
MD
50
oPN
DB
1
LMB4
LOOP ml BE
Fc1
oPN
DB1
L DBw [ARl,P#0.0] TMw20
LMw20 T DBw [ARl,P#2.0]
L DBw [ARl,P#2.0] TMw30
LMw30 T DBw [ARl,P#0.0]
Burada içi içe iki döngü oluşturulmuştur. lç döngüde satır|ar birbirleri ile kıyaslanıyor. Yani 2.satlr 0.satırdan büyükmü diye klyaslanlyor. Eğer büyükse yer değiştiriliyor.(FC1) bir sonraki döngüde 4.satır 2.satır ile kıyaslanıyor, yine büyükse yer değiştiriyor|ar. lç döngü bu şekilde son satlra kadar ediyor. llk döngüde en küçük veri son satlra yerleşir. Daha sonra bu işlem tekrarlanıyor yani 2.satır tekrar O.satırla, 4.satır 2.satırla v.b. bu işlem dış döngüde satır sayısı kadar devam ediyor.
Yavuz EmiDoğlü
27
Örnek: Sıfırdan başlamak üzere bir grup merkerin (zaman elemanı, sayıcı v.b) resetlenmesi.
A l 124.0 FP M 0.0 JcN
Bu programda "0"dan başlayan bir grup bayt'a "0" bilgisi yüklenerek resetlenmiştir. "LOOP" döngüsü ve "pointe/ formatı kullanarak yapılan bu iş|emde MB 0 ile MB 20 araslndaki bayt'lar resetlenmiştir. LOOP döngü sayıcısı içeriğini yazdığımız "MW 30" resetlenen alan dışında bir alan seçilmelidir. Yoksa program SF verir ve stop konumuna geçer, neden?' Boyalı alanın dışındaki yazılım programı test etmek için yazı|mlştır. (Resetlenen alanın içindeki "MB 6"nın silindiği izlenir.)
son
L0 T MD40 L4 TMB6 T MB26 don:
L20 T ı\rW 30 sLD 3 T MD40 L0 T MB [MD 40] L fulw 30 LooP
don
LMB TQB LMB TQB
6 124
26
125
son: BE Bu programda MB 0'ın içeriği silinmez. (LOOP döngüsü içerisinde MB 1'in içeriği silinip, LOOP komutu ile de MW 30 bir azaltılıp "0"a ulaşıldığında döngüden çıkılır.) Bunun ya döngü içerisinde "T MBIMD 40l" satırının altına "T MBO", ya da "LOOP say" komutunun T MB 0" yazılmalıdır. Veya sayaç bir üst rakamdan başlatılır altına "L 0 (L 20 yerine L 21) ve "sLD 3'den önce içerik bir azaltılır. (DEc 1) Veya program aşağ|daki şekilde düzenlenir. A 124.0 124.0 soldaki program "0"dan 0.0 FP FP 0.0 başlayıp istenilen sayı kadar JcN son JcN son hafıza alanını sıfırlamak içindir. L 0 değilde ara değerleri "0"dan sLD 3 T MD 40 silmek istediğimizde "MD 40" MD40 içerisine sağdaki gibi silinmek MB 30 don: istenen ara değerin başlangıç L 20 don:T MB 30 sayısı yazılabilir.
)
A l M
M
L50 T
L20 T L0 T MB [MD 40] L MD40 lNc 8 TMD40 L MB30 LooP
son: BE
L0 T MB IMD 40]
L MD40 |Nc 8 T MD40 L MB30
don
LooP
son:BE
'
LooP döngİ§İ içerisinde
o nunaraİ ba},t
ala
da slfulanacak ve döDgt sonlnda içefik bir azalhlafak'O"a eşit di}€ aşaİ ve sist€m hatf§ü oluşü,
ç*anldğnda '-" ıakarnrff ohşınasündgn dolay l,ooP döngİsr d6agİ sEsini
28
Ya!ruz EmiDoğlu
don
sorgulanacağndaD, "o"daD
"l"
Yukarıdaki pro§ıramın fonksiyon haline getirilmesi (Parametrelendirilmesi) E
D.ta İ'
!o lıı
O
E b4l6@_adl.rt E slltEceİ_b.F_raYisi
ooT :l} lN_olrT
E Dalab
a
Fc start
Adr.li
CALL
El
4
baslama_adresi
:=1124 .0
:=MD0
silinecek_bayt_sayisi:=ıvfw4
EcT!ll! E İ.nE_daİb..1
E bğ_ad_t !ıı.DoD E ! 11_beF_s.r_.e
!
s!D f
3
n
#!
iliEc.t_bAİt_saylr1 f!it_bayt_ray_te
T
n
0
lüD I
ı
',
bğ_Ad_t&Po!l
8
T
ı
*!it_b.yt_!ar_te
Adres ıe
T QB l20
.leri ye akümüıatöıler
m sonunda sıfırlanır. Yandaki gibi bir program yazllması durumunda "aB 124" içerisinde bir değer görmek mümkün değildir.
124
Aküler veya adres registerleri içerisindeki değer bir sonraki çevrime aktarılacaksa tampon kullanllmalldlr. Program aşağıdaki gibi yazl|dlğlnda "l124.0" her uyanldığında ARl'in bir artması Ve 4. Baslşta '0" olması gerekir. Her basışta DB 1'in bir sonraki satırı çıkışa gönderilir.
Bunun yerine program sonunda AR 1'in tampona (MD 60) program başındada aynı tampon tekrar AR'ye yüklenmelidir.
A l 124.1 FP M 0.0 JcN
son
oPN
DB
L T
A l 124.1 FP M 0.1 JcN son oPN DB LARl MD
1
L DBB [ARl,P#0.0l T QB 124
DBB [ARl,P#0.0l
QB
124
+AR,l P#1.0 TAR1 MD 60
+AR1 P#1.0
L Mo 60 L P*t/ı.o >=P Jc sil
TAR1
L Pt4.0 >=D Jc sil
son:BEu
sil:
LARl
BE
P#0.0
1
60
son: BEu sil: L 0
TMD60 BE
Yavuz Eminoğ|u
29
ııı.oere rlpı-enl A.TEtltEL vER| rlpı-enI (Etementary Data Types) Tip
aEöı (Blt)
ffii
BVTE
' ğ
Bıt
goklı Yo gonışııkıer ve en E/FALSE
Uz 1
l]:,'i
6fl) to B#16#FF
8
dan 111_1111_1111 _1
16
to C#999 0 to
Hğş
32
dğE
32
Hg§
Htş o| -! Hac ol-tA,R
(cıİı*n
11]ı '-,
,:
ısa§fl*J
t3.ılO2823e+38 .ı,tffi lÜst |imi[ İ1. 75 495a.38 P .l limil:
1
oM_Os_loMs den H_46M_30s_OMs ye kadar
tb}!-'|
8
1.1,
tilf,
1*,
Gğ**-*.rr#24D_2oH_31 M_23s_64g]rrs den 32 r F!#rya'İr#24D_20H_31 M_23S_647MS ye kadar ,.
32
li
1
147483ü8loL#214748W7
16
16
s
1l
|:
lo32767
.
oft ü-i
,255,255,255 e kadar
t
IEEE
9
frEE arı .h
ry1,
0,0,0,0) dan 16
ı.:.' _jr-..],!i,;]r]
:.:..,.,l-:1:i'i ]000.
1I
6#FFFF FFFF
9
t
u.ı
11 1 1
1111 11 11 1 1 11 1 111 e kadar 6#0(X)0_0000 to
32
ol (lnbger)
j.!
255
1111 1111 1111
ş
ıNT
I i
e kadar
da n
, ö
.4,
fll ol
11 1
16#0 to W#16#FFFF
.9
ge
lrl:
İEeİs.I D#1990-1-1
tre |Ei*}
*İn ffiğı
,1
{;,
l
[-Tffi lH tu txı
ffi
h-rııcfu-ış-ı*-oCt*e - - a:.,ı,
l
.:,
Ds199trsr.5
DATE#lgss.15
Hr216&12-31 e kadar
l
.1İroo*n:O:0.0 dan
1f}İörİr.|
aeeı
dan
s5t#OH
TO[l#1:t0:3.3
Th,E
froo*aa:ss:ss.s99 a kadar
"f| A'"B'v.b.
xıa{tş,
t
S
OA}*l:lO:eS
,E
mek gösterimlerde kul|anılan L) alt çizgiler, ifadelere açıklık kazandırmak içindir, gerçekte kullanılmaz.** Yukarıda açıklanan temel veri tiplerinin yanında benzer özellikte kullanabileceğimiz parametre tipi "ANY"de eklenebilir. Ayrlntllar daha önce anlatılan "sFc 20 - BLKİloVE" konusunda açlklanmlştl. Yauız EEıinoğlu
31
B. BıRLEşTIRıL]YIış DATA T|PLER| Bir|eştirilmiş data tipleri 32 bitten daha uzundur ve siemens'in standart programlama dilleri (STL-LAD_FBD) ile direkt kullanılamaz. Sembolik veya "An/ ("pointeı" P#..) formahnda
kullanılmalıdır. Bu veriler; data modül|erinde veya program modüllerinin deklarasyon tablolarında deklere edilerek kullanılmalıdır. Bu veri tipleri ile çalışma amacıyla "SFC" veya "lEC fonksiyonlan" kullanılabilir. Ömeğin bu verilerden birisinin kopyalanması gerekiyor§a "SFC 20" blok kopyalama fonksiyonu kullanılmalıdır. Bir|eştirilmiş data tipleri daha sonra ayrıntılı açıklandığı gibi; data modülde deklere ,kaynar). edilecek ise, sembol tablosunda data modül için bir isim tanlmlanır (öm : DB1 = Data modül içerisinde de değere sembolik isim verilir (öm : 'bas_zam'). Artık bu değer "SFG" veya "lEC' fonksiyonlarında tanımlanırken deklere edilecek yere (....:"kaynak'.bas_zam) şeklinde ifade edilir. Bir|eştirilmiş data tipleri lokal data ile deklere edilecek ise; kullanılacak değer "Fc..veya FB,." içerilindeki deklarasyon tablosunda lokal data olarak sembolik tanımlanacaKır. (öm : .'sFc,. veya "lEC" fonksiyonlarında tanımlanırken deklere bas_zam) yine bu değer edilecek yere (....:bas_zam) şeklinde ifade edilir.
'
1. "STRıNG" (KARAKTER Dİzlsl) ASC1l formda karakter (char) dizilerinin ifade edildiği bir veri tipidir. Bir "STRING" dizisi '....' ile ifade edilmelidir. Bir "STRING'değişkeni iki uzunluk içerir. STR!NG[14l :'yavuz' Maksimum uzunluk: Köşeli parantez içerisinde verilen değerdir (14), Maksimum 254 karaKer olabilar. (Rezerve edilen) Aktuel uzunluk: O anda geçerli olan karakter sayısıdır ('yavuz'= 5). (kullanılan)
-
Aktüel genişlik maksimum genişlikten küçük veya eşit olmalıdır. Bir.sTRlNG" verisinin kapladığı alan maksimum uzunluğun kapladığl bayt saylslndan 2 daha uzun olmalıdır. Bu fazlalık başlık alanı için ayrılır. bayt STR|NG[n] : "n" karakter sayısıdır. Eğer olarak 254 alınır. örneği:ii"' SiRıNGt4l'AB' Ba
7a 54 3
210
Maksimum uzunluk
(4,
Ba
1
i
i I
a 5 1 3 210 Gerçek
uzunluk
t2l
_.
değeri verilmemişse bu değer default
7 6 3 4 3 2,1o
76543210
1.karakter
2.karakter
(A)
Aktüel uzunluk
i
32
B
Bayt 3
2
1
"n'
Yavuz Eninoğlu
76
4
Ba
5
513 210 76543210
(B)
Maksimum uzlnluk
Pta PRoGRAMLAMA YE s7
DATA TirLERl
3m/4{rc"2
Ömegin bir barkod okuyucudan okunan kod data blok alanlarına yazdırılacak ve daha önceden kayıtlı olan kodlarla kaşılaştırılıp herhangi birine eşitse bir çıkış aktifleştirilecektir.
tlF"..ü].**]-
okunanJraf<ğ_kodu srRİr6[20ı AJr.f( a_kodu sTR1l6t 2o]
srRI16Iıo] srRIrct2o1
DJraaCa_kodu
(Jrarca_ıodu
.iİ
.
;ü= "
,Aı2f4&456(769DD,
,AAAıılB88222833,
'yaVll:_e.inoglu'
.;
i].
iiij
okunan parça kodu A tipi parça kodu
tipi parça ( tipi parça 8
kodu kodu
'l'],a-,j'''
a(ıa
EqUaı 5t.in3
tl PıDiı.
oo(o.
"tQ_slffi,
t:}
e
"drt._bıok". İodu _
5l
ıİ T_vtı
li-e
ııl.ı.E2ı.e 'dğt._b]oİ'.
"lEC Function Blocks"lardan FC 10 eşitlik sorgulamaktadır. Yani barkod okuyucudan okunup data blok'a yazdlrllan kod eğer daha önceden data blok'a kaydedilen verilerden "A_parca_kodu"na eşitse "parca_A" çıkışı aktif olacaktlr. Ömeğin bu çıkış|a da, operatör panel ekranındaki bir hücrenin aktif olması sağlanarak o hücreye "Banttaki parça A tipidiı'' cümlesi yazdınlabilir.
_52
'STRlNG" verisi diğer bileşik data tiplerinde olduğu gibi program bloklarının deklarasyon
tablolarında da tanımlanabilir.
ınterface iOIN ı O OII!
o,@ :
E
iO IN_oIIf
O
TEİ,iP
l{ar
SICAKİIKI,AR
E IslMLER
E xazaıı
Data Typ€ Aİray [0..14] of BYTE
string st!uct
Addİess 0.o 16.0 272.o
|ğ sIcAxıIxLAR i--E IsI!,g.ER
a E xazaı,ır
E-O RETIrRN
Yukarıdaki deklarasyon tablosunda LB'l6'dan başlayıp 254 baytlık "STRlNG" verisi tanımlanmıştır. Data blok içerisinde kullanımına benzer şekilde burada da kullanılabiIir.
Yatuz Eİninoğlu
33
2. "ARRAY"
(DlzD Bütün elemanları aynı özellikteki, herhangi bir veri tipinde 6 boyuta kadar tanımlanabilen
bir|eşik bir Veri tipidir. Örneğin bir kazandan dakikada bir okunan sıcaklık değerlerinin bir data blokta
kaydedilmesi gerekiyorsa, ,l440 adet veri alanını tek tek oluşturmak yerine, bir veri içerisinde tanımlamak mümkündür. Dizi verisinin ifadesinde en az iki eleman tjanlmlanmalıdır. Tanımlanan alanln slnlr|arl negatif, sıfır veya pozitif olabilir. Ancak ilk değer ikinci değerden büyük (x2 > x1 , 1.boyut > 2.boyut) olmalıdır.
z 1
2
5
3 9 1o
ııı ııı ııı ııı ıı ııı ııı ııı ııı ııı
2
, X
X
ARRAY[X3,Y5]
ARRAY[X4,Y8,z2]
X,Y,Z gibi isimlendirmeler sabit isimler değildir kullanıcı taraflndan tanlmlanlr. A,t,86,34'de olabilir. Çok boyutlu tanImlamalarda boyutlar bir birinden virgül (,) i|e ayrılmalıdır. 'ARRAY' alanındaki bir değer ifade edili*en X,Y,Z gibi boyut isimleri kullanılmaz. Köşeli parentez içerisine yazılan birinci değer 1.boyut'u, virgülden sonraki 2 değer, 2.boyut'u ifade etmektedir. [3,12,5] gibi Tek boyutlu
'ARRAY alanının
data modülde gösterilmesi
DB1 (sembol tablosunda verilen ismi "data")
ADRES lSlM i ]
+20.0
-2.0
E"s
-l tT
lP
BAŞ. DEĞER|
AçlKLAMA
bıE4y[.aq1 woRD
"ARRAY" ile bir alan ayrıldığlnda otomatik olarak ikinci bir satır açılır ve o satıra "ARRA\z alanına yazılacak veri tipi yazılır. Yukarıdaki data modü|de "deg" ile isimlendirilen 20 adet '\ürord" verisinden meydana gelen bir "ARRAY" alanı tanımlanmıştır. "View ) Data View" seçilerek görülebilir. Başlanglç değeri yerine yazılacak w#16*p+5 değeri o "ARRAY' alanının ilk elemanının
başlangıç değeridir. Diğer alanların başlangıç değeri "0" olduğu kabul edilir. Her alana bir birinden farklı değeder yazılacaksa değerler virgül ile bir birinden ayrılarak yazılmalıdır. Bütün alanlara aynı başlangıç değeri yazılacaksa 20 (w#16#a5) şeklinde yazllmahdlr. llk ,to adedine başlangıç değeri için 10 (W#16#45) şeklinde yazılabilir.
u
Yalllz Eminoğju
L T
'a' karakterinin "data' sembolü ile isimlendirilen data modülde "deg" ismi ile tanımlanan 20 adet "CHAR" türü alandan 1. alana yazılması
a "data".deg[1]
L 'data'.deg[4] T Qw 124
'data' i|e isimlendirilen data modülün, 'deg" olarak tanımlanan -ARRAY' tipi verilerden 4. alanının içeriğinin çıkış kanalına
transfer edilmesi
oP N
"data" DBB 4 QW 124
L T
"OPN" formatı ile data modülün kullanılması (Adresin sembolik ismi değil, kendisi yazılmalıdır)
aRRAY alanlnln FB deklarasyon tablosunda da (lokal) gösterilmesi data modül ile aynı özelliktedir. Sadece ifade edilmesinde data modül kullanılmadığı için deklarasyon tablosunda tanımlanan ismi ile işlem yapılır. L T
'a' karakterinin "deg" ismi ile tanımlanan "ARRAY' alanlarından 2. alana yazılması
a *Heg[2]
Çok boyutlu "ARRAY" alanının ifade edilmesi Üç boyuttan meydana gelen bir'ARRAY" alanının 1. boyut'u; 2 alanlı,2. boyut'u; 3 alanh, 3. boyutu ise 2 a|anlıdır. Birinci boyut isimlendirmesi;Xl,X2, ikinci boyut isimlendirmesi A1, 42, A3, üçüncü boyut isimlendirmesi ise K1 Ve K2 şeklindedir. Buna göre ifade edilişi ve yapısı şöyle olur. Örneğin 1.nolu kazandan okunan sıcaklık verileri aylık olarak kaydedilecektir. ,t .boyut ayları 1-12,2.boyut ayın günlerini 1-30, 3.boyut günün saatlerini 0-23 gösterecek bir "ARRAY alanı oluşturalım.
TlP ADREs lslM sicaklik ARRAY[I..12, 0.0 1.0 woRD Word
word
Word
1.1.1
1.1.2
1.2.1
Word 1.2.2
3.boyut (Saat)
(Gün) 1.boyın
BAŞ. DEĞER ı-
AçlKLAMA
1..30, 0..23]
Woıd 1.3.
Word 1.3.2
Word
word
Word
2.1.1
2
2.2.1
1
2
Word 2.2.2
Word Word 2.3.1 2.3.2
1.3 2 3.boyut
2.boyrt
Qy)
1.g.2 3.2
Yavuz Emünoğlü
2.boyut
1.bowt
35
E Ek D
Edit IıRğt
Ptc o.b!g rg
sicakIik 6a
oPtoni lvrd*
arg-g g İ bG -., a,rlİl g
,},
]jG -
.!
]D tr|r?
Y[1..12,1-.30,0..23]
fi|. tdit h*n Plc Mug vkw odion wi.dd
D0ıe-E ğ
HdP
%61 l..
(,
H.lP
0];ai E eİ.,r !
.
Aylak sıcakıJ.k değerleli
!iE tri\? ıll1610
0].
rr{
1610
ll*16+ 0
wti6+0 ıı*1610
w*16l0 B*15l0 w+
L20 T " Kazanl_verileri L " Kazanl_veıileri T Qw 124
", sicaklik [1,3,1]
". sicaklik [2,1,1]
1610
20 tam saylsı " Kazan,t_verileri " olarak tanımlanan data modülün, " sicaklik " olarak isimlendirilen "ARRAY" tipli verinin 1,3,1 alanına yazılması
" Kazanl_verileri " olarak tanım|anan data modülün, " sicakıik " olarak isimlendirilen "ARRAY tipli verinin 2,1 ,1 alanındaki değerin çıkış kanalına transfer edilmesi
"ARRAY" alanının her bir hücresine yukarıda açıklandığı yöntemlerden biri ile ulaşllabilir, ancak alanln tamamı ile (32 bit'ten fazla) çalışılabilmesi için "SFc" veya fonksiyonlarını kullanmak gerekir. Ömeğin; "ARRAY tipli bir hafıza alanının içeriğini başka bir veri alanına kopyalayabilmek için "SFC 20"yi kullanabiliriz.
oALL "BLKMoV,
sRcBLK
:="data".deg
DSTBLK
:=P#M 0.0
RET_VAL:=MW12
BYTE 20
"ıEc'
Kopyalama işlemini yapabilmek için "SFG 20" çağnlır. "data" adlı data modül içerisindeki "deg" adlı veri 'AlılY" olarak tanlmlanan M0.0 dan başlayan 20 bayt'lık bir alana kopyalanır. MW'l2 hata uyarılarının alındığı hafıza alanıdır.
"ARRAY" alanının tanımlanması data modülde yapılmış ise yukarıdaki gibi ifade edilir, eğer deklarasyon tablosunda tanımlanmış ise yukarıda da değinildiği gibi sadece data modül ismi yaz.lmadan aynen kullanılır.
36
Yavuz Em,noğu
)
oluşturula
- "View Declaration View" ile alanının adres alanını ay,ıntılı görebilmek için "Vlew yapılmalıdır. Data Vlew" + 32767| bayt kadar oluşturulabilir. (Data modüllere 40.000 - "ARRAY alanı [- 32768 giriş yapılabilir yani son adres 39999 dur. Ayrıca iki bayt etiket için rezervedir.)
)
'
'ARRAY" verisi diğer bileşik data tiplerinde olduğu gibi program bloklarının deklarasyon
tablolarında da tanımlanabilir. E-@
ınterface
,O IN
-
lD ouT
-O IN
oUT
ğ-l* TEİrlp
, €
sIcAruIKlAR |i--ısrrorn ,: E E EAZAN1 oc nırunu
ı
l{aItE S
1CA_FJf KLAR
E ISIğıER
E
E
xızışl
Data rype
Alray [o..14] of BYTE string struct
Add_res§
0-0
16. 0
2,12.o
Yukarıdaki deklarasyon tablosunda LB 1'den, LB 't5'e kadar 14 baytlık tek boyutlu "ARRAR" verisi tanımlanmıştlr. lstenirse çok boyutlu olarakta tanımlanabilir. Data blok içerisinde kullanımına benzer şekilde burada da kullanılabilir.
YaİİJz Eminoğlu
3l
3.,STRUGTY"STRuGTURE" (YAPD
Verilere ulaşım kolaylığı sağlamak amaclyla, birden çok datablok içerisinde yazılması gereken verilerin, bir datablok içerisinde veri grupları oluşturarak yazılması şeklidir. Farklı data tiplerinden oluşan bileşik data tipidir. "STRUCT" yapısını meydana getiren "array") olabilir. veri tipleri temel veya bileşik veriler ("bit" En az iki elemandan meydana gelmeli ve "sTRucT" Ve 'END_sTRucT" araslnda tanlmlanmalıdlr.
)
DB 1 (Sembolik isim 'kazanl')
AD REs! lslM
TlP sTRUcT sTRUcT
BAŞ. DEĞER|
alt sin
REAL
0.0
ust sin
REAL
0.0
ger_deg
REAL
0.0
tarih
DATE AND T|ME DT#90-1-1-0:0:0.0
0.0 0.0 0.0
LT"
4.o
1Lo =20.0 +20.0
0.0
8o 1za +m§ 0 4.0 =4.0 =21.0
t,_=-+]l
3a
sicaklik t
AçlKI_AıJA Data modül başlanglcl
"basind STRUCT başlangıcı
IF\D_STEıJcT TRUcT
Baslnç'a ait virgüllü sayl
olarak dışandan girilecok alt. Üslsin, ve kaza ndan okunan baslnç değerleri
'sicaklik'STRUC
Basınç işleme tarihi
f]
başJangıcı
lalt si n
REAL
0.0
ust sin
REAL
0.0
ger_deg
REAL
0.0
DATE AND T|ME DT#90-1-1-0:0:0.0 "soguk_vana" soguk_vana sTRUcT STRUCT baş. acik BooL FALSE kapali BooL FALSE
tarih
{eNo:srnpciEND STRUCT j|eııo_§ TRUcT
]
lı
Yawz Eminoğlu
"baslng' sTRUcT'u sonu
]
slcakllk'a ait Virgüllü sayl
olarak dlşarldan girilecek alt, üslsin, Ve kazandan okunan slcakİk değerleri
slcakhk işleme tarihi
Soğuk su vanaslnln adkapa çlklşlarl ' sTRUcT'u sonu "sicaklik" sTRucT'u sonu odül sonu
Prc PRoCRAMLAMA vE s7 3m/4oo-2
DATA TFLERj
"STRUCT" yapısı içerisinde temel data tipleri kullanılmışsa, normal STL emirleri kullanılabilir ve bu yapı içerisinde elemanlar bir biri ile nokta ile ayrılmıştır. (Sembol tablosundan alınan data modü| adını tımak işareti içine kendisi alır).
L T
ll
Plw 128
"kazan,1".basinc.ger_deg
L "kazan1".sicaklik.ger_deg L "kazan1".sicaklik.ust sln >=R S "kazan1".sicaklik.soguk_vana.acik
ll
CALL "BLKMo\r
RCB LK :=Dr #2-2-22-1 RET_VAL,=llıtW12
S
DSTBLK
ll
L T
:="kazan
1
0
:30 :0.0
".basinc.tiarih
DB1.DBW 8
MD24
Yukarıda "STRUCT" yapısının data modülde kullanılmasına ait ömek ve açıklamalar veri|miştir. "STRUCT'un lokal data o|arak (deklarasyon tablosunda, "STAT" alanında) kullanılmasının hiçbir farkl yoktur, sadece data modül adlnın yazılmamasl yeter|i olacaktlr. Verilere ulaşım kolaylığı sağlamak amacıyla, birden çok datıa blok içerisinde yazılması gereken verilerin bir data blok içerisinde, veri gruplan oluşturarak yazılması şeklinde de tanımlanabilir.
"STRUCT verisi diğer bileşik data tiplerinde
deklara e@
tablolannda da tanımlanabilir
ıaaE
Interface
|c
rı{
l-com
ljO rN_oIıI EJ":C rEğP ;ğSICAKıIELAR
!
SICARLIXLAR ISI}aLER
Eı
o|duğu gibi program bloklarının
Data İ!/Iıe
Array [0..14] of string sl:auct
BYTE
ıddİ€8s o.o 16. 0
2,-2.C
l--Eı ISrMLER
E-E KezAıIl gc aErunx Interface
E,
-!- IN
-c ,c
ğ,C l I
our
rN_oIrI
ıa@ sicaklik E basinc E do.ldurla
TEI.üP
|ğ srcaxırrıan l,e ısııııgn
Eı
bosaltma
Data ?yIE
Address
l{ord Boo1
2.o 4.o 4.1
Bool
*E@
E .c RET(,Rıı
Yukarıdaki deklarasyon tablosunda LB 272'dan başlayan "KAZAN1" "STRUCT" verisi "sicaklik, basinc, doldurma ve bosa}bna" değerleri ile tanımlanmıştır. Data blok içerisinde kullanımına benzer şekilde burada da kullanılabilir. Yavuz EıİiDoğfu
39
4.
"DATE AND TıME" (TARIH VE ZAMAN) Bu data tipi tarih Ve saatten meydana gelen bir zaman değerini gösterir.
"DATE_AND_TIME" veya kısaca "DT" ile gösterilir. 8 bayt genişliğindedir ve bütün değerler "BCD" formda verilmelidir. Zaman değeri "DATE_AND_TlME#'l 990-'t -1 -0:0:0.0' veya "DT#2089-12-31 23:59:59.999" değer|eri arasında bir zaman değeri olarak deklere edilebilir. "DATE AND TIME" türü de işkenin içeriği 0
2
4
3
7654321o 7654321o 76543210 76543210 765432lo Y,l
(1990)2089)
(01)12)
saat
Gün
(1)31)
5
7
-9L
(0)59)
9,}
=9 P,iE
son iki İakam
ülffi2
B4lü12
B#1#25
B#16#11
321o
saniy6
Dakika
(o)59)
(0r23)
7
6
654321o 765432,|0 7654
#1ü25
B*lü12
B#16#15
a
o^o
.9İİ3^ Eş-
'a 9J FD B#,|
618
B#,1 6#3
Yukarıda yazılan değerler bir|eştirildiğinde; Yll:20o2, ay: 12 (arallk), gün: 25, saat: 11, dakika:45, saniye: 12, salise: 258 ve günlerden: Salı olduğu ifade edilmiştir. (12 Aralık2002 Salı, saat 11.45.12.258
GERçEK zAırAN SAATİ ("oATE AND TıırE" ile zaman okutma) cPu içerisindeki tarih ve saatin (DATE AND TIME) okunarak, bilm istediğimiz tarih ve saatle karşılaştırılarak birtakım fonksiyonlafln başlatılması veya durdurulması sağlanabilir.
Bilindiği gibi "DT" 32 bitten daha uzun bir veri olduğu için data blok içerisinde tanımlanmalıdır. Bu amaçla SFC 1 ile okunacak gerçek zaman saatinin yazılacağı bir alan, bu zaman değeri ile karşılaştırılacak ve bizim önceden belirlediğimiz zaman değerinin yazlldığl bir alan data blok içerisinde tanımlanmalıdlr.
)
Ayrıca okunacak CPU saatinin doğru olması için ya donanım ayarlan ile (tulenü Set Time of Day) yada "SFC 0" ile saat ayarlanmalıdır.
Diagnostic Setting
)
DB1 saat data
1{
PLG
Program ile saat set edilecekse data blok içerisinde bir alanda onun için ayrılmalıdır.
nalr_luo_trulor#9o-1-1-o : o l o. 0 DATE A!İD TrM,|DT#90-1- 1-0:0l o.0 DATE AND TrMlDT#o 9- 9-
)
-oo
ffi+':;
"DT" türündeki bir Veri ancak sembolik olarak kul|anılabilir. Data blok içerisindeki bir veriye sembolik ulaşabilmek içinde data blok'a da sembolik isim verilmelidir. Data blok'a sembolik isim Verme işlemi, data blok oluşturulma esnasında veya daha sonra sembol tablosu açılarak yapılabilir.
sembol tablosu A
s7 proe.am(1)
statl6
(syrnbols) Gcrcek zdman s.!,rli§lMA]lC 300(1)\tpLj
sYdbl
1
EQ_DT
2
GE_DT
/
i]E
4
5 6
40
A&e6s
Fc9 Fc 12
vAr _2
Yavuz Eİninoğlu
VAT VAT
1
2
t»btrE
rc9 Fc :E
12 1
]1
mrgt
DT GreatEr C
DT
3c
7 I)P
PLc PR(XiRAMI-AMA VF. s?
DATA TIPLERI
Artık oluşturacağımız programla gerçek zaman saatini okuyup ve bu değeri bizim belidediğimiz bir zamanla kaşılaştlrarak istediğimiz işlemleri yaphrabiliriz.
ffi
SFC
EN
aFc1
RlT
değeri, daha önce oluşturduğumuz data blok alanına sembolik adres ile
Elfo vAJ.
yazılır.
w,lz
"lEC" fonksiyonlanndan FC 12 ile
P*DBI.DBxa.o
de okuyup kaydettiğimiz değeri, daha önce data blok alanına yazdlğlmlz değer ile karşılaştırıyoruz. "RET_VAL" çıkışından elde edilen değer bizim çıkış sinyalimizdir.
cDT
lottrk
2
: R.!ş1.1dştrlrA lcLz
EN
1 ile okuduğumuz zaman
Eqlral DT 'GE DT-
Et{o
P*oaı.DEx8.o
oİu_...ğ -Dlı
x0.0
AEt
p*DDl. DDıl6. o
"saat dat.'.duE -DTz
ffir.*
T& Eİ llgt R( vğls. lh
İj l 2 3
ı5l J
;i 6
Dlq9lgl
ğl ılşla|.1-|
P
ül.Ba
DBı.Ba
ıiı,ctE Eı,Eo Doı,Eo
a 9
ıo 11 12
El,Dgg ul t]oı,Eg
Dsl,E8
o!ğB u/Üü İ+
14 15
ğJ
ry ry lğ l€l l€ı
gltrgl
lEg i4 X l 2 3
l€x
E İ
trl"Il
Daı,Eo
9
l€l
17
lfX
19
İEX
oBl,caB
19
lEx
Eal-Ea
lı6
- İX
DBı,Das tıgl,D68
Bl,Es
l€( tg t€( l€İ
16
d
EB1EB
20 21 22
Egl,EB zl
l€x ı€x
8aı6r.16
lCx
l€(
Daha öncede açıklandığı gibi "DT" alanının her bir baytı bir zaman değeri için ayrılmıştır. Ömeğin ilk bayt yıl, ikinci bayt ay, üçüncü bayt gün diye devam eder. Okuduğumuz değerin kaşılaştırılması amacıyla kullandığımız data blok alanında istediğimiz zaman değerini değiştirerek kullanım kolaylığı sağlanabilir. Değeri değiştirmek için direkt data blok'a yazılabileceği gibi, yukarıdaki gibi "VAT" tablosu ile de yapılabilir. Ancak bu işlem genellikle scada veya operatör panel ekranından yapılır.
L DB1.DBB L0 --|
L s5T#5s sET 2 AT
=o
2 125.1
13
Örneğin gerçek zaman saati kullanllarak dakikada, saatte, günde, ayda veya yılda bir oluşturulacak bir sinyalle süregelen işlemler gerçekleştirilebilir. Yan taraftaki programda her dakika başlnda 5 sn lik bir zaman elemanı çallştlrllmlştlr. Bunun için zaman değerinin yazıldığı alandaki dakika değerinin yazıldığı bayt alanı, "0'ile eşitliği sorgulanmış ve eşitse zaman elemanı setlenmiştir.
Yaıuz Eminoğlu
41
Yandaki programda ise her pazartesi saat 9.00 da setlenen bir çıkış yazılmıştır. Bilindiği gibi "DT" verisinin son 4 bıtı haftanın günlerini belirtir. Burada son baytın ilk dört biti perdelenmiş ve son dört biti "2" saylsl yani pazartesi ile kıyaslanmıştır. Ayrıca saat değerinin yazıldığı baytta "9" rakamı ile yani saat 9.00 ile sorgulanmıştır. lki sorgulama sonucunun "1" olduğu durumda istenen çıkış setlenmiştir.
L DBl.DBB 15 L B#16#F AW T MB40 L M840 L
ll ll
ülü2 M
L L
NOT: Gün bilgisinin takibi istenmiyorsa, //Gün bilgisi
il r ilBı|O ll L ırB40
11
DBl.DBB
=M1.2 1.1 AM 1.2 AM
sM
//Saat bilgisi
"Online" konumunda iken, "SIMATIC lianageı ) Sağ pencerede sağ tuş
I: ya,,,,l
E
-
ı :
ı
"SIilATIG anageı ,,l,
!ıü,],İ]lel\§(]rı.\\c
gırAlıcql] a fiJ İ.f|i : @ s7Pl.od1l
)
/k/plol\yi!L,,a
- 0ıı
PLC
)
11
8#16#9
)
PLC
//Saat 09.00
2.0
cPU sistem saatini donanlm olarak okumak ve ayarlamak
Veya
llpazartesi
1.1
--l
Kodlarınln yazılmasına gerek yoktur. Aynı olay saatin sorgulandığı alanda da yapılabilir.
L DBl.DBB il r MB.ll ll L MB41 L 8#,16#9
//Gün bilgisi
için;
)
Set TIme of Day"
)
Dlagnostic/setti
Set Time of Day" X
a
P.ft
0.aİ
abc
@i-mI.IPtJ mrf $mn, csıonoıııto 0ü
Tıtı d
P6iFEk
@
liiEffi-
|.daL F T*.hPGıE
ü
FiEaıı.
l-ıst ]
h|ıı+l
oü
"*,,,
Ayarlama yapıldıktan sonra önce "Take Fıom PGrPC" seçilerek "Apply" düğmesine baslldlğlnda Pc saati PLC'ye, seçim kaldlnlarak onaylandığında PLC saati PC'ye atanır. Daha tlklanarak pencere kapatlllr.
sonra
42
Yrvuz Eminoğlu
I
DA
Gerçek zaman saatini okumanın bir yöntemide OB 1 deklarasyon tablosu içerisindeki "OBI_DATE_TI E" parametresini kullanmaktır. OB 1 içerisinde "DT" karşılaştırma fonksiyonlan kullanlhrken "sFc 't" ile gerçek zaman saati okunabileceği gibi "OBl_DATE_TlillE" ile de okunabilir. Bu ifade direkt yazılabileceği gibi, deklarasyon tablosundan kopyalanarak istenilen yapıştırılabilir. Aşağıda iki gerçek zaman saati araslnda bir çlklş elde edilmiştir.
oB1 'İ d/ |.,;j!1 E]
El1rJl+{)Bq-,Hll? coni.!t.. ot:'!t[l!or!t\
lnt.rr@.\TllP'
E@@
E oDl Erİ cİcıl
E*Tlp
E
1
DıTl Tlll
ıo.o
l4t!D
ıcı8
ncı:l Equa-L Dr
l ,oBı DAİE ftı|l P|DEı.DB!).o
fttrğtİ
l
2 : ,.o
Tı
"e! Dl"
cycl. lrE o' orı (ElııtsecoD.l!|
l
RET vtJ.
lı ,oEı DAfE TıİE
2
PlDBl-Dlğ.o
İ2
DI1
'l!
DT
Dt"
R!İ
lıo v^l,
3
Dfz
İlt_ı.:
.z
la.3
a0.0
İ DB1 DT#10-2-15-21: 36: 0. 000 DT#10-2-15-21: 37: 0. 000
Yıvuz Enino9u
4i}
Örnek: Güne ait tarih ve zaman değeri ile program set edilecek, istendiğinde o andan itibaren çalışan zaman değeri gözlenebilecek ve bu değer istenen bir ana ulaştığında bir çıkış lambası yakılacaktır. sistem saatinin okunmasl
//
sFc CDT
OALL
1
RET_VAL:=MW12 :='saat data".oku saat
//
Sistem saati ile istenilen zaman değerinin kıyaslanması
Fc 12 DT1 :='saat_data".oku_saat DT2 :="saat_data".dur RET_VAL,=M3.0 AM3.0 CALL
JC //
SFC 1 ile sistem saati okunur. "Date And Time" tüni ile 'CDT" çlklşlndan sembolik olarak data modülüne ("saa!_data' adlı data modülün, 'oku saat" adlı satlrlna) yazlllr.
FC 12..."lEC" fonksiyonlarından birisidir. "Date And Time" türü iki değerin büyük veya
eşitliğini kıyaslar.
son
sistem saatinin set edilmesi
AN l JC
sFc
124.0
atla
SFc 0 PDT :="saat_data".set_saat
CALL
RET VAL:=MW1O
0 ile sistem saati set edilir. "Date And Time" türü ile "PDT" girişinden sembolik olarak data modülünden alınır. "RET_VAL" çlklşl hata gösterge çıkışıdır. Standart hata uyarı bilgilerini verir. (örn; 0000)hata yok, 8080)Tarih hatas1,808,t )Saat hatıası)
bayt'lık bilginin iki bayt'lık sıra ile çlkışa gönderilmesi y_ay: L DBl.DBw 8 atla: A 125.0 Jc y_ay (yıl ve ayı göster) T Qw 124
// 8
l A l 125.1 Jc g_sa (gün ve saati göster) A l 125.2 Jc d_sn (dk ve sn'yi göster) A l 125.3 Jc msn
BEU
(milisaniyeyigöster)
BEU g_sa: L DBl.DBW 10 T Qw 124 BEU d_sn: L DBl.D8W 12 T Qw 124 BEU
msn: L
DBl.DBW
T Qw 124 BEU
14
ll Zaman eşitliği sağlandığında bütün çıkışın silinip tek lambanın yanması s on
44
L0 T Qw 124 sET = o 124.7
Yauız Eminoğl,ı
DB,l
trtr9] lsim
Tip
Baş|angıç değeri
Aktuel değer
DATE AND T|ME
DT#1-1-30-'l3:20:0.0
DT#1-1-28_1:0:0.0
8.0
set-saat oku saat
DATE_AND_TlME
DT#90-1-1-0:0:0.0
16.0
dur
DATE AND T|ME
DT#1-1-30-13:22:0.0
DTiEO-1-'1-0:0:0.0 _ DT#,1-1-30-13:22:0.0
@l
Açıklama
SEMBOL TABLOSU
fa tzl [al
Sembol
Adres
saat data DB1 READ_CLK 1 sET_CLK 0 GE DT Fc
|src
sFc
Data tipi
Açlklama
sFc sFc
DATE_AND_TlME türü datalann işleneceği data modül |Read System Clock (Programın kendisi oluşturduj set system C|ock (Programın kendisi oluşturdu)
DB1
Fc
1
0 12
|Greater or Equal DT (Programın kendisi oluşturdu)
MBilindlğl gibl saatin set edilmesi menüler yardımı i|e de yapılabilir. "PLC ) Diagnostic/setting ) Set Time Of Day"*
Yavuz Eminoğlu
,|5
l,E
"DATE AND TlilE" türündeki bir veriyi "DATE" ve "TlilE OF DAY" olarak ayırmak mümkündür. "lEC Function Blocks" lardan "FG 6" ile "DATE" (Tarih) verisine, "FG 8" ile rebiliriz "TIME oF DAY" Günün zamanları ve "FC 7" ile "DAY" Gün verisine dönü A Etdt
ı : tr
t-ai,öli ltriiii
c E EB E
aı
Cdfl€,td CcıJt€İ
.J
,ollı_oAll_Tırıa _
E trİlF htEfİİl o t E EE E fi E fiı 9ftnotde İ u tİ laİ Eö Eğ E t rc bbd§ - E hİda E E E
D€
§ı
a E I
ltts.k 2:'Dr tİr-.4tl Vfi.İn 'DArl' (İİii) ıı5r.ı
aı
a(ıı Dlıf ı..tE.k l: tr
İdn rdtfo&,
a a ]-] E
sy*ct F[İttin 55-57
IEc
oİüi.İ
t0İa
ta
lcrisr.jn -nİE of DAr (cri.İit ri!t) ırlİnı du.iı
ao8ı_olıl_TDlE _
FUnİn E&d5
{- fcl
_oAY
FC5 oı_5TRI!G lEC Fc6 DT_DAıE ıEc
{-
DT_Too
sl.D€a
0
lEI
Bl.D€a DBl.18
1
|-E(
2
l€X
El.E8
6
El.mg
7
DBl,mB
9
Bl,EB Bl,Gw
10
Dsl,D€D
1t
Dgl,DBw
DATA BLoK (DB 1)
HEX 4
5
l€X }€İ |-EX
7 8
ro, 14
lCX DATE TIIVE_OF_DAY
DEc
aı
t
5Y,iH rr$hy foımd
DBl.D88
Do.
Eb ıEI
iİtl-.İ . : Tf ti.anĞ' Vt iri. 'oır (6İl) İır.rı
IE< !
IEc
Add.rl
[
'DT
DBı. İEDro
AD_DT_ItI |Ec
lE
EG FC8
ıt_Tr4a _
tdtJs Y.hc
oİ!..İ
aıo
ı!
Yukarıda "DATE AND TIME" türündeki bir veriyi "DATE" ve "TltlE OF DAY" ve "DAY" olarak ayırdığımız programı yan tarafta "VAT" tablosunda ve aşağıda 'DATA BLOK" içerisinde görebiliyoruz. "DATE AND TIME" ile okuduğumuz verinin, 2010 yılının't't.ayının 17.gününe ait saal 17 .42 nin 4.sn, O20.ms ve günlerden de Çarşamba olduğunu anlarız. Bu verinin FC 6 ile 17 .11.20'l0 tarihini, FC 8 ile saat 17.42.04.020'yi ve FC 8 ile 4 yani Çarşmba bilgisine ulaşırız.
ffiffi ffi üm.
]41!:c1liJl-:,::ll.
; j:,rvJ::r
j:şl?j]
^
ü2o,o-ll-,.7 loDıt7 |4l| 29.Sa
ffis:: ,ı6
t!_o^İt'
- lı
aa
Fc2 corcAT Ec Fca o_TO_DT EC {a Fc4 DEtElE IEc
8
rrüa
d.*,
Corw.rtİE dGkl
{i fl
5
l
O röu a] F]
3
aF
sı(4ı
5rB
o
2
'E İro\l'
Dr!!.ı |- iıaı.ol!...,,YlI
lü'/c.d
l
.İt-ııE,
st.b.6 hit
E]
ı
ıol'.
§(,
EEüh9. E B cğıpü*d E
mTA
4
Yavuz Eİninogu
:
Örnek: PLC ile kumanda edilen bir sistem üzerinde bulunan ışıklı bir tabelaya 3 sn ara ile değişen iki yazı yazdırılacaktır.
DB l:Yazıların alınaca
ADREs
l data
lslM
0.0
l
YAzl2
DB 2:Yazıların
ADREs
kı
oBl AN M Jc M1 ll 1. Yazının
TlP
24.3
çıkış data modiiliine atanması
RET_VAL,=l\ılW't4
DSTBLK
ll
Jc
M2
BAş|_ANG|ç DEĞER|
sTRlNG[40]
CALL "BLKMoV, S RCB LK, =\ AZIHAF l7A'
Ml:A M
BAŞLANG|ç DEĞER| ,TEHLlKELlDlR, ,YAKLASMAYIN ,
data modül
l
lslM DlsPLEY
0.0
TlP sTRlNG[40] sTRlNG[40]
||vezıı
82.0
modül
:=
24.3
.Y
//
PZl1
YAZ|GIR|S'.D|SPLEY
SFC 20 Bileşik data tiplerinde kopyalama
ll 2. Yazının çıkış data modülüne atanması
CALL "BLKMo\r
SRC BL K :=\ AZ.IHAF lZA" .Y AZl2 RET_VAL,=MW14 DSTBLK :=P#DB2.DBX0.0 BYTE 42 yazılabilir. M2: NOP 0
ANT
l
lBu yazı ryAZ|GlRlS".DlSPLEY şeklinde de
L s5T#3s sDT BEc
RT1 M = |,|
AN
El 2
1
1
24.3 24.3
sEMBoL YAzlGlRls
ADREs
YAzlHAFlZA
DB2
VAT,| 24.3
DB2 DB1
DB1
Data modülüne atanan
M Tl
TlP
n
AçlKLAMA
Yazıların atandığı data modül Yazıların yazıldığı data modül ken tablosunda T i2enmesi VAT,t
EIN
ffi
slMATlc T|ME
S5T*Oms
TE' DB2.DBW 2 CHARECTER ,HLlK, DB2.DBD 4 CHARECTER ,ELlD, DB2.DBD 8 CHARECTER 1R, oB2.DBw 12 CHARECTER "string' dat]a tipinde başlanglçta iki bayt'lık alan
M 24.3 T1
DB2.oBw
2
DB2.DBD 4 DB2.DBD 8 DB2.DBW 12
BıN
zl1
slMATlc T|ME CHARECTER CHARECTER CHARECTER CHARECTER
s5T#3s ,KLAs, ,MAYl, N
başllk için ayrlllr.
Yıvuz Ebiroğlu
47
5. "uDT' (user Befined Type) KULLANIGI TA}IıMLı DATA TiPi
PLC programcısı birtakım verilerini gruplayıp standart hale getirebilirse kendi özel data
tipini oluşturarak data blok alanlarına daha kısa yoldan ulaşabilir.
"UDT" PLC'ye yüklenmez, programlama cihazındadır (PC'dedi0. oluşturulmuş bir "UDT"ye ekleme yaplhp hafzaya alındığlnda, o 'UDT"nin kullanl|dığl data blok menü çubuğundan "File )Check and Update Accesses" ile yenilenmelidir. "Update" yapılmadlğında data blok içerisindeki ilgili UDT'ye ait alanlar klrmlzl renkte kullanıcıyı uyarır. "Update" yapılarak data blok görünümü "Declaration View" görünümüne geçer ve alanlar güncellenir. Ayrıca her günce|lemeden sonra data blok CPU'ya yüklenmelidir.
"UDT" Kullanımı işlem basamaklaıı 1- Önce "UDT" oluşturulur (SllılATlC ltılanager » lnsert ) 57 Block ) Data Type) ve gerekli veriler girilir. Örneğin çok sayıda kazan kontrolünün yapılacağı bir PLC programında aşağıdaki parametreler kullanılacaktır.
"uDT 1"
ADDREss [iAıue 0.0 +0.0 +4.0 +6.0 +6.1
woRD
Basinc Sicaklik
+2.o
s!_seViye
Ala rm
+7.0 =8.0
lt
w#l6*0 w#l6#0
WoRD WoRD
Seviye E,_ sevlye t
]lıııi T|AL VALuE
Irle STRUcT
W#16#0
BooL BooL
FALsE ALsE
BYTE ENO STRUCT
B#16#0
2- Sembol tablosu oluşturulur. Sembol tablosunda "UDT" için sembolik isim verilebilir. 'UDT" bir data modül içerisinde deklere edilecekse data modül için bir sembolik isim verilir. Bu işlem 'UDT" oluşturulurken yapılabileceği gibi sembol tablosunda da tanımlanabilir.
SEMBOL TABLOSU
sEMBoL DATA BLoK
ADREs t]
DATATlP
KAZAN
UDT
UDT
DB1
,t
DB1
AÇıKLAfylA ]
,|
3- Bir genel data modülü veya FB deklarasyon tablosunda "UDT" deklere edilir.
DB1 ADDREss 0.0 +0.0 +8.0 +16.0 =24.0 48
|ıııua
-
,|fiFSTRUcT
]L!eie!:l
kazan 2
ABC kazanı
"KAZAN, "KAZAN "KAZAN"
ND sTRUcT Yavuz Eminoğlu
lNıTlAL vALuE
PLa PR(xiR
A VE s7 ]m/,(n-2
llgili data bloğun "Data
TA TtsLERi
Vlew" göninümü seçildiğinde veriler aşağldaki gibi göninür.
Herhangi bir program modülü içerisinde de aşağıdaki gibi kuIlanılabilir
oB1
L T
Plw
L L
'DATA_BLOK".kazan 2.basinc (DBl.DBw10) "basinc ust sinir'
256
"DATA BloK".kazan 1.sicaklik (DBl.DBW2)
>=|
Kullanllan komutlar direkl "DATA-BLoK.kazan 2.basinc" (Sembolik veya mutlak olarak data blok adı, data blok içerisinde tanımlanan "UDT" adı, "uDT" içerisinde tanımlanan veri adı adı) şeklinde klavyeden yazılarak veya ilgili alan seçilip sağ tuş ''lnsert Symbol'' ile de eklenebilir.
"UDT" kul|anımı özellikle "WinCC" ve "WinCC Flexible"da "STRUCTUR'' yapısı içinde önem kazanmaktiadır.
Yavuz Emiıogu
49
ıv.
HAT
KEstsE vE HATA.oB.LERı
Organizasyon modülleri (OB'ler) CPU işletim sistemi ile kuIlanıcı programı arasında arabirim oluştururlar. Daha öncede anlatıldığı gibi ana program oB 1 içerisinde çalışır. yüksek numaralı (kesme ve hata) oB'lerin yardımı ile program aşağıda sıralandığı gibi özel bir isteği gerçekleştirmek üzere kesilebilir. CPU'nun ilk veya daha sonraki çalışmalarında Tanımlanan zamana bağlı darbe oluştuğunda Belir|enen dakika, saat, gün veya diğer zaman aralıklarında lşlem sonrası veya verilen zaman sİresince Donanım veya programlarda tanımlanan alarmlar oluştuğunda Öncelik
_ _ -
l:Eıa
Kesme
-i-
I
J
l --suaesl Minumum
Bekleme süresı u
İ
S7 300/400 CPU'larda kullanılabilecek olan kesme modülleri İ{o oİlcELıK AçlKLAilA çALJşIAgARn oB 10 SAAT ALARM| 0 2 siandart zaman tanlm|amasl
t @] l oB zF
Ds9r
2
standarİ zaman tanlmlamasl yok
SAAT A| ARM| 2
2
standart zaman tanlmlamasl yok
A| ARM| 3
2
standart zaman tanlmlamasl yok
SAAT A| ARM| 4
2
standart zaman tanlmlamasl yok
F SAAT ALARM| 5 SAAT ALARM| 6
2
standart zaman tanlmlamasl yok
2
standart zaman tanlmlamasl
SAAT A| ARM| 7
2
GEclKT|RME ALARMl 0 GEclKTlRME ALARMl 1
3
Standart zaman tanlmlamasl )ok standart zaman tanlmlamasl },ok
4
standart zaman tanlmlamasl yok
5
standart zaman tanlmlamasl yok
6
standart zaman tanlmlamasl yok
oB oB oB oB oB oB oB
32 33 34 35 36 37 38
2ü. üitr r!
z
z
=, §= ü. ]
}rok
1
12
oB 13 oB14 oB 15 oB 16 oB 17 oB 20 oB 21 oB 22 oB 23 oB 30
SAAT ALARM|
man
s F
)t t
oLlJ
F
z z N
GEclKTlRME ALARMl 2 GEclKTlRME ALARMl 3 UYAR| ALARMI 0 UYAR|ALARM| 1 UYAR| ALARMI 2 UYAR| ALARM| 3 UYAR| ALARM| 4 UYAR| ALARM| 5 UYARI ALARMI 6 UYARI ALARMI 7 UYAR| ALARM| 8
}rok
7
Ön ayar olarak "5 sn"de bir takt verir.
8
Ön ayar olarak '2 sn"de bir taK verir.
9
Ön ayar olarak ',l sn"de bir taıl verir
10
Ön ayar olarak "5oo ms"de bir takt verir
11
Ön ayar olarak '20o ms"da bk takt verir
12
Ön ayar olarak ''l00 ms'de bir takt Verir.
13
Ön ayar olarak "5o ms"de bir takt verir
14
Ön ayar olarak "20 ms"de bir takt verir
15
Ön ayar olarak ",l0 ms"de bir takt Verir
Yavuz Eninoğu
51
2
oB oB oB oB oB oB oB oB
40 41
42 43 44 45 46 47
oB 55 oB 56
oB5
@] oB
PRosEs PRosEs t tlJ PRosES t -J F (L PRosEs lo ]t t ğ. PRosEs ul F Fz PRosEs PRosEs PRosEs
o o
oB 65 70
73
F
80 81
82 83 84
85 86
ü.
otr E(L Y] zt tlJ E aül
87
i-.']ı oB
100
oB101
oB
102
1
Bütün proses alarmları için standart düzenleme
sadece özel modül projelendirmeleri
17
,l8
ALARM| 2
sadece özel modül proielendirmeleri
ALARM| 3
19
sadece özel modül proielendirmeleri
ALARM| 4
20
sadece özel modül projelendirme|eri
ALARM| 5
21
ALARM| 6
22
sadece özel modül projelendirmeleri sadece özel modül poelendirmeleri
ALARM| 7
23
sadece özel modül projelendirmeleri Profibus DPV1 de izinli proribus Dpv1 de izinli
2
il
2
ÜRETlcl ÖzEL lNTERRUPT ÇOKLU HESAPLAMA ALARMI SENKRON ÇEVR|M lNTERRUPTLARl TEKNoLoJiK sENKRoNlzAsYoN lNT UO TAŞMA HATALAR| CPU TAŞMA HATALAR| HABERLEŞME HATALAR|
61_
72
ALARM|
][E
lNTERRUPT DURUMU lNTERRUPT GÜNCELLEME
64] oB oB oB oB oB oB oB oB oB oB oB
ALARM| 0
TA
Profibus DPV1 de ilnli sFc 35'MP_ALM" çağrlllr
2 25 25
25 25
sadece s7 400 H tipi cPu'larda
25
sadece s7 400 H tipi cPu'larda
25
ZAMAN HATALAR|NDA
26,28
sadece s7 400 H tipi CPU'larda zaman uyumlu olmayan (asenkron) hatalar
GÜç KAYNAĞ| HATAS|NDA soRUN TAN|MLAMA HATAsl
26,28
zaman uWmlu olmayan (asenkron) hatalar
26,28
Zaman uyumlu olmayan (asenkron) hatalar
26,28
zaman uyumlu olmayan (asenkron) hatalar
cPu - DoNAN|M HATAS|NDA PRoGRAM AKlş HATAslNDA GENlşLETME ARlzAslNDA
26,28
zaman uwmlU olmayan (asenkron) hatalar
26, 28
zaman uyumlu olmayan (asenkron) hatalar
26, 28
zaman uyumlU olmayan (asenkron) hatalar
HABERLEŞME HATASlNDA ARKA PLAN PROGRAM| (MlNUMUM ÇEVRlM sÜREsl)
26,28
zaman uyumlu olmayan (asenkron) hatalar
TAKMA
-
ç|KARMA ALARM|
?9
Çevrimden arda kalan zamanda, sabit çewim süresi el etmede
s}
lLK çALlşMADA (WARM RESTART)
27
ilk çallşılrma
5 <ı>
lLK ÇALışMADA (HoT RESTART)
27
llk çahştlrma
lLK çALlŞMADA
27
ilk çallştlrma
(,
z @
oB 121 z o oB 122 tY
zllJ
o
(cglqrys]4B])
zaman uyumlu (senkron) hatalar
PROGRAMLAMA HATAS|NDA çEVRESEL BlRlMLERLE VERl lLETiŞiM HATASl
zaman uyumlu (senkron) hatalar
*Bütün cPu'larda yukarlda açlklanan oB'ıerin tamaml yoktu]. cPu'ya aıt bılgı satfaıanndan o cPu İçeİİsande hangi oB'lerin olduğu alınabilir.* "Online
52
)
)
(S7 program markalanır) PLC Modüle lnformation Data Blocks "
)
Yavuz Eminoğlu
)
Perfoımance
A. zAirAN ALARM| "oB,LERİ (oB 10 GRuBu) S7-300/400'de bir defalık veya periyodik kesmeler için OB 10 ile ,t7 arasında numaralandırılan 8 adet zaman alarmı OB'si vardır. Bu OB'ler aşağıdaki aralıklarda programlanabilir.
ı . . ı
Bir defalık Dakikada bir Saatte bir Günde bir
o . . o
Haftada bir Ayda bir Ayın sonunda yılda bir
Zaman alarmı OB'leıinin donanım ayarları ile projelendirilmesi
..
OB 10
)
17 arası programlar belirli zaman aralıklarında uğranılan kesme OB'leridir. Örneğin dakikada bir çalıştırmayı düşündüğümüz bir OB o|uştuĞlım. |'İo|)l,üll.\ (l)l|
6*İd InEnab
I
]1.1
sut+
hb,Ü
oııo l2-
ll,ı
X
lı()/\,/)
l ı*gur,r*ı I Qd./u,lıtry I e*iFİ-ç |rrriü qEbkğtfb
Tiİğdoa
I
oiğlE t
./er
adiv. EİE hr
3üdd.
r JffiI
16 ia ffii_ l:--I
9|Effi-f]@@-|-
"Hardware Confi guration" penceresinde "CPU 3l?" üzeri çift tıklanarak açılan tabloda, 'TlmeOf-Day lnterrupts" seçilir.
TİEddğ Pi@inğ.
Tabloda, kullanabileceğimiz OB numaraları (bizim CPU'da sadece OB 'l0 aktiQ, önce|ik numaraslnln kaç olduğu, aktif veya pasif durumda olduğu, hangi arahklarla çallşacağl (bir defalık, dakikalık, saatlik v.b.), başlangıç tarih ve saati değerleri ayarlanabilir. lıgiıi oa aıtt edilerek (Active), oB 10 içerisindeki programı bir çevrimlik çallştlrma arahğl (Execution), başlangıç tarih Ve saat (Start date - Time of day) ayarlan yapılarak pencere onaylanır ve ayadar CPU'ya yüklenir. "Start date" için yazılan tarih, eğer ilgili OB pğe devreye girdiğinde aktif olması isteniyorsa geçmiş herhangi bir tarih Ve saatin ayarlanmaslnda bir sakınca yoktur. (Default değeder kalabilir.) Ancak gelecekte bir tarihte başlaması isteniyorsa, istenen tarih ve saat yazılmalıdır. Projemize diğer modüllerin eklendiği gibi oB 1o'da eklenir. "Menü ınsert s7 Blocks Organization Blocks" seçilir ve numarası "l0" yapılır. OB 1O içerisine de dakikada bir ne yapılmasını istiyor isek, o program yazılır. OB 1O'un CPU'ya yüklenmesi unutulmamalıdır. Ömeğin dakikada bir ortam sıcaklığı ölçülüp ekran'a aktarılmak istenebilir.
)
)
)
L Plw128 T Mw4
Bu arada programın diğer modüllerinde (OB-FC v.b) yapılması istenen asıl programın yazılacağı unutulmamal ıd ır. (Analog değer değiştirildiğinde 'l dk aralıklada MW 4 değerinin de değiştiği gözlenir) Tarih ayar|arı yapılırken, default ayar|ar; gün, ay, yıl diye devam eder. Bu ayarlar Options Customize Date and Time of Day" penceresinden "Simatic Manageı yapılabilir. Diğer gösterim şeklide; yıl, ay, gün şeklindedir. Tarih Ve saat referanslnda cPu'nun saat ve tarihi alınır. Dolayısı ile CPU'nun tarih ve saat güncellemesi unutulmamalıdır. "Process lmage" (PlP:Process lmage Partition) 57 400 CPU'larda uygulanabilir.
)
)
)
Yavuz
Eoioogıı
53
Zaman alarmı OB'lerinin sistem fonkslyonlan i]e projelendirilmesi Donanım ayadarı penceresinde manuel olarak ayarlanarak kullanılan OB 10 içindeki program, PLC çahştığı sürece ayarlanan arahklar|a devreye girer. Eğer OB 1O'un aktif veya pasif yapılmasını, istendiğinde farkh zaman arallklarlnda çalışması istenirse, bu işlemin program aracılığı ile yapılması gerekir. Bir zaman alarmı OB'si ile çalışırken önce başlangıç zaman değerinin ayadanması ve sonra da zaman alarmının aktifleştirilmesi gerekir. Her iki işlem içinde 57 de SFC'ler kullanılabilir. Parametre ayarları yapıldıktan sonra CPU çalıştınldığında zaman alarmı ayarları otomatik olarak aktifl eşir.
SFC 28 ile bir defalık veya periyodik bir zaman alarmı oluşturulabilir. Bir defalık zaman alarml çağrllması sonrasında zaman alarmı iptal olur. Periyodik çalışan bir zaman alarmlnl SFC 29 ile iptal edebilirsiniz. Yeni oluşturulan veya iptal edilmiş bir zaman alarmından yeniden faydalanmak için onun SFC 30 ile aKifleştirilmeleri gerekir. SFC 31 ile bir zaman alarmının durumu sorgulanabilir.
Kullanıcı pro§ırEımı, zaman alarmı OB'sini çağırdığında zaman değerinde bir hata varsa, işletim sistemi OB 85'i çağırır. OB 85 yoksa CPU işletim durumu STOP konumuna geçer.
SFC 28 ile yeni zaman alarmı oluşturmadan; bir defalık zaman alarmı SFC 30 ile
aktifleştirildiğinde, başlangıç zamanı önceki olacağı için (geçmiş bir zaman), işletim sistemi OB 80'i çağınr, OB 80 yoksa CPU işletim durumu STOP konumuna geçer. Periyodik bir çalışma aktifleştirilirse zamanı gelen periyottan itibaren çalışmaya devam eder.
Zaman alarmı OB'lerini SFC 39 ile devre dışı bırakabilir, SFC 40 ile etkinleştirebilir, 41 ile geciktirip, SFC 42 ile seöest bıraktırabilirsiniz. SFC
Yavuz Eminoğlu
Saat alaımında kullanılan SFC'leı ve parametıeleıi
sFc 28
29
oB NR
Deklarasyon Data tıpı lNPUT lNT
sDT
lNPUT
Paramet݀
DATE_AND_TlME formatında start tarih ve
saati
DT#200'| -3-24-1 0:30:0.0
lNPUT
woRD
RET VAL
ouTPuT
Start anından itibaren çalışma periyodu W#16#0000 = tek defalık, 0201 = dakikalık, 0401 = saatlik, '1661 = günlük, 't201 = haftahk, 1401 = aylık, 1691 = yıllık
lNT lNT
Hata bilgileri
oB
NR
oB
NR
RET VAL 3,ı
Tek defalık veya periyodik olarak oluşturulacak OB numarası (10 .. 17)
PERloD
RET VAL
30
DT
Açıklama
oB
NR RET VAL STATUs
lNPUT
oUTPuT lNPUT
oUTPUT lNPUT ouTPUT oUTPUT
Çalıştırma anında silinmesi istenen OB numarasl
lNT lNT
Hata bilgileri
Çalıştırma anında aktif edilmesi istenen OB numarEısl
lNT
Hata bilgileri
lNT
Durumu sorgulanmak istenen OB numarası
lNT
Hata bilgileri
woRD
saat alarmının durumu
sFc
31 iTg_§ğ5E,
ğı
.:..JL-_e 1
saat alarml kapah yeni saat alarmı bozuk
4
2
saat alarml aktif ancak çallşmlyor
5
0
3 Saat alarmı yüklenmiş Saat alarmı var işlevi yok
Yukarıda donanım ayadarı ile yaptığımız işlemi sistem fonksiyonları kullanarak yapa|ım. Bunun için sFc 28 ile saat s€üeme, SFC 30 ile aktifleştirme fonksiyonlarl çağrıhp aşağıdaki gibi parametrelendirmemiz gerekir. Istenilen anda da SFC 29 ile kapatılabilir. Daha sonra ayrıntıh işleyecoğimiz'DATE_AND_Tli,!E (DT)'bileşik veri olduğu için data modül içerisinde ve sembolik olarak kullanılmalıdır.
Yavuz EDimğlu
55
SEilBOLTABLOSU sEMBoL
DATA Tblı:.::,,,
DB1
data blok
1
ı: i.,,
i"i]l
;1
{ffi#vlı{,
DB1
DBl ıslM
TlP Baslama zamani DATE AND T|ME
ADREs 0.0
AçıKLAHA
BAş.DEĞER| DTr0,| -07-31
-1
4:0:0.0
oB1
(nl : 6 ıo'u ç.Au5TIRI1}1ASI ı|.trk ı : SAAI AlAnIiIİ AYARIA}IASI Eı
sçC2a
10-(n_ıİ 'data_bıd("
b6l-a_zıa,t
s^^T
tt}
RfT VAL
-slrT
tıIlD
AUıRru İtl
l12ı -o
Arrİt EDİtJtsİ
sF(30
F-tı
3 : snAT
lL24
-|
F_
SFC 30 'ACT_TINT" saat alarmının aktif edilmesi "oB_NR', set edilecek oB numarEısl "RET_VAL", hata uyarıları
tD |ü2
R
l{.t-rk
ıtl5o
.
H15*2oı _
ı|GtErİ 2:
SFC 28 (SET_TINT) ile saat alarmının ayarlanması "OB_NR", Kullanılacak OB numarası 10 "SDT", "data_blok' adlı data modülden, "baslama zamani" ile alınan setleme tarih ve saati 'PERloD", dakikalık (0201 ) periyotlada OB 10'a gidileceği' "RET_VAL", hata uyarıları
AıAru I1 iPrAr tDitftsİ Eı
ıo_(,
sİa29
ifT
SFC 29 'CAN_TINT" saat alarmının iptal
ediImesi
"OB_NR' iptal edilecek OB numarası "RET_VAL' hata uyarıları
Eı) vAL
|la
OB 1O'un belir|enen periyotlarda sürekli çalışması isteniyorsa; SFC 28 ile ayarlanıp, SFC 30 ile aktif edilmesi yeterlidir. Aktif etme için sFc 30'un 'EN' girişine bir sinyal bağlanmaslna gerek yoktur. Ancak oB 10'un istenen zamanlarda çallştlrllmasI isteniyorsa, çallşması istenmeyen durumlarda SFC 29 ile iptal edilmesi gerekir. SFC 29'un'EN" giriş sinyali "1" olduğu sürece oB ,tO çalışmayacaktlr. Bu sinyal yukarldaki gibi sistemden allnabileceği gibi daha sonra ayrıntıları anlatılacak gerçek zaman saati (DT) ile istenen zaman aralıkları tanımlanabilir. NOT: "SFG 28"in "SDT" girişine yazılan tarih ve zamanın doğru çalışabilmesi için "SFC 1" ile CPU'nun tarih ve zamanının okunup ilgili data blok alanına yazılması gerekir.
5€
Yır
z Eminoğ,ru
oB,|
NORMAL PROGRAM (Bu program sadece OB 1'de bir programın çahştığ|nı göstermek
//
için veri|miştir.)
,t daöelerle bir sayıcı den ,l0'a kadar sayacakçallşan ve QB 125'te izlenecek A 20.4
// intem
cU
L T L L
>=|
R
M
c1
c
oB
10 Program dakikada bir ortam sıcaklığını kontrol edecek 5 Vun altında ise ,l24. bayt'ın düşük değer|ikli 4 bit'ini 5 V'un üstünde ise yüksek değerlikli 4 bit'ini yakacaktır. Plw 128 13824
L L
>=|
1
JNB atla L w#16#F0 r QB 124
QB 125
c,t0
1
BEu
c
atla:L
1
BE
-: Di
W#16#F 124
T QB
ali
n
W#16#0000: Birdefa W#16#0201 : Dakikada bir W#16#0401: Saatte bir W#16#1001: Günde bir
W#16#1201: Haftada bir W#lü1401: Ayda bir W#16#1801:Yılda bir W#16#2001: Ayın sonunda
*IEG fonkslyonlanndan FC 9 "DT" türündeki iki değerin eşitllğlnl sorgular. Bu fonksiyon pro96mımız lçerlslne kopyalanarak OB 10'un çahşmaya başIamasını istediğimiz zamanda blr darbe o|uşturur ve bu darbe ile SFC 30'u çağınrız. Aynı şeki|de SFC 29 çağnlarak kapatılabilir.* \ıı.ifİAltp,
of!
E E}
* llı?
! olıo_a v_(ı ^ss ! oaıe_sıİı_ılİo ı olto_PıtDEİıY ı ollo_ol_ılrtı ! olıo_ıt st Rlt D_ı ı oıto_nİ § RvtD_ı lı
ll
ı olto_ıt ! 0lıo_ıİ
5t
ıYf D_!
5l
D_4
ıvt
o!ıo_D^Tl_İlıİ
ffiı@ lyt. lyt. lyt. ıyt. lyt. lİC
o.o
ı.o ı-a 1.9
4.c 9.a
Iıİ
ı.o
Dıt....
ı2.e
Ifü
lc.o
- ı ((*ing .v.rt ), ı6alt (ol ıo hal ltft.d) Blt3 o-1
Priolty
oc
l4-1 -
1
ol l^.<.nio
ıo (orEğtzdton bıdk ıe, oalo) nğ.fv.d ff 3y.t.. ı.r.fvcd fo. systğ pe.iod of €ie.urion R.§Cfv..l fo. ,rst..
(on.e, pe. .inült.h.ı]1,ild.
ic.k .ontn ....)
R.l..v.d fof D.t. n tl.c 'yrt.. ol1o stft.d
Daha sonİa anlatııacak dlğeı kesme oB'lerinde de olduğu gıbi herhangi bir kesme OB'sine ait aynntrlı biı bilglye ulaşmak için ilgiIi OB'nin deklarasyon tablosu
kullanılabiliı. Deklarasyon tablosundakl lstenen özellik kopyalanarak aynı veri türündeki bir bellek alanına tıansfer odllerek bilgi takibi yapılablli]. Örneğin;
L #oBiO_PERIoD_EXE T DBl.DBwo ile OB l0'un hangl aralıklarla çağnldığı okunabiliı.
Y0vuz EEiaogu
57
B.GEGİKTİRME ALARM|,oB"LERl (oB 20 GRUBU)
Geciktirme alarmları ile çevrimden ve zaman fonksiyonlarından bağımsız gecaktirme iş|emleri yapılabi|ir. Bu işlemlerin gerçekleşürilmeleri amacıyla S7€00/,O0'de OB 20 den oB 23'e kadar dört adet oB vardır.
GEcıı$lRırE ALARıILARıı{ıil PRoJELENDıR|L]üES| TiFdoğ lırı,ıoğ l q*ırrr"ıo I oŞ".t ıo* | ftd-tGğEd I sı.t4 | qaııu ıı.,qı | n*t*ıı"r-3, | ıı.,-y Lrmaı. Hıüra.ldan4ğ
T;Fo.&ı,
nİU h,ç 9ılırİ
oora
§
om:|7 onız |6-
oaı: |6oaıı. |6-
otıs,|60OlS:|6-
oıı; |6-
eİıTü
Rfufu
l::ll,= |1-1 |::l_ l-
oaın
|-
Oa,lİ-
İü
lF-Pdİİi
ogo,
oge
DFfl
|-
aes+
16-
ogo:
lE-
"Time{)elay lnte.rupts"
alanlnda hangi oB'nin kullanılabileceği (OB 20..) ve öncelik numarası (3..) izlenebilir. CPU 318'den sonraki ve S7 400 CPU'larda öncelik numarasl değiştirilebilir.
@@osza l_ oB?0:
00slooa,
li-
oaa lEogn lE-
hfob1
oua
lE-
ose lE'-
F--l
ıazı-lflrimab
i,!ğr
]:-=
OIZZ:f
lıüıoı.ffi.
Aşf,G Enü
"Hardwaıe configuİatıon"
tablosunda "CPU 31?" üzeri çift tıklanarak açılan tabloda, "lntemıpts" seçildiğinde;
oaız.
|-
pencerede )
Daha sonra projomize ilgili OB eklenir. (Ana seçili iken fare'nin sağ tuşuna basılıp açılan menüde "lnsert New Object Organlzasyon Blocks" ile açılan pencerede OB'nin numarası 20 veya diğerleri olarak değiştirilerek onaylanır. OB 20 açılarak içerisine geciKirmeli çalıştırmayı düşündüğümüz program yazılmalıdır.
OB 20 grubu program b|oklan sistem fonksiyonlarından SFC 32 CSRT_DlNflSbrt Time Delay lntem.ıpt) ilo aktifleşü.ilir. Bunun için herhangi bir program modülünde (OB1, FC.., FB..) çağrılan SFC 32 uygun parametrelerin girilmesi ile "DTltTE" da verilen süre sonrasında OB 20 çağrılır ve içerisindeki progıiım çalıştırıhr.
oB1 (Fc.., FB..) t]
8Ecı2
lL2|.o
lla. D
0
}-!rı
gtart İi6.-D.lay lnt6rrupt 'ğRt DIlt!!, alo
-oB_llR !t3g _DİIllE 2 0
RE,
VAIJ
L T
124.0
FP M4.0
JcN
atla
CALL "sRT_DlNr
OB_NR DT|ME
S|GN
:=20
:=T#3S :=W#16#1
RET_VAL:=lvfW10 atla:BE
rıı6a1-8l o
A l
lB 125
QB125
Yukarıdaki programda "l 124.0" girişi uyarıldığında 3 sn gecikmeli o|arak OB 20 çağrılmış ve içerisindeki program çallştlnlmlştır. OB 20 içerisine yazılan giriş bayt'ı 125'deki değerin, çıkış bayt'| 125'e atanması programı l 124.0 uyarıldıktan 3 sn sonra çahşacaktır. 56
Yıvuz çniırcğu
Ancak l 't24.0 sinya|i standart giriş kartı üzerindeki bir sinyal olduğu için çevrim başında ve Pll alanında güncellenir. Aynl şekilde çlklş kartlna yazllan bilgilerde oB 20 içerisinde çevrim sonunda PlQ alanından yazılır. Bu gecikmelerin yaşanmaması için çevresel (Peripheral P|WPQW) alandan anında okuma yazma yapılabilir. Ömeğin input kartından anında okuma yapmak için, LPIB 124 //Çevresel kanaldan anında okuma yapmak
TMB0 ll A M0.0
/rA M0.0" ile"l 124.0" sinyalinin çevrimden bağımsız okunması sağlanabilir. Aynı şekilde çıkışa gönderilecek bilgi de,
=M1.0
ll LMB1
T PQB 124 ile anında çıkış kartına yazılması sağlanabilir Yine giriş ve çıkış sinyal|erinin çevrim süresinden etkilenmemesi için "lntem.ıpf özelliğinde olan giriş/çlklş kartlarl üzerinden okuma yazma sağlanabilir. Ayrlca sistem fonksiyonlarından SFC 26/27 ler ile giriş/çıkış sinyallerinin çevrim arasında güncellenmesi, "Tı§7 convertİng Blocks"lardan Fc 100/101 de kullanılabilir. Geciktirme alarmlarının projelendirmesi ve kumandası SFC ler yardımı ile yapılır. Bir geciktirme alarmını SFC 32 ile start edip, geciktirme süresini ve OB numarasını verebiliriz. SFC 33 ile geciktirme alarmını iptal edebiliriz, bu durumda o OB'yi bir daha çağıramayz. SFC 34 ile geciktirme alarmının durumunu sorgulayabiliriz. llk çalıştırmada işletim sistemi geciktirme alarmlarına ait yaphğınız ayarlamaların tümünü siler. Geciktirme alarml oB'si yeniden aktif edilemez.
Geciktirme süresi 'l ms i|e 6000 ms arahklarında verilebi|ir. Geciktirme süresi yeniden
start etme sonrasında hemen devreye girer.
Kullanıcı programı, geciktirme alarmı OB'sini çağırdığında zaman değerinde bir hata varsa, işletim sistemi geciktirme alarmına ait OB'yi start etmeye çalıştığında, o numaralı OB yüklenmemiş Veya SFc 32 tarafından bildirilen oB numarası o değilse, işletim sistemi OB 85'i çağınr. OB 85 yoksa CPU işletim durumu STOP konumuna geçer.
SFC 39-42 ile geciktirme alarmları bekletilip yeniden serbest bıraktırılabilir.
Yavuz fuıiaogu
59
Geciktirme alarmında kullanılan SFC ler ve parametreleri sFc Pafametre Oellarasyon Datatipİ Açıklama lNPUT lNT Geciktirme zamanı sonrasında çağrılması oB NR ||
istenen oB numarası
32
33
DTlME
lNPUT
TlME
Geciktirme zamanı, T#1 ms den (60000 ms)kadar
slGN
lNPUT
woRD
Geciktirme oB'sine ait start haberi SFC'sinden alınan tanıma bilgisi
RET VAL
oUTPUT lNPUT
lNT
Hata bilgileri
lNT
Geciktirme zamanl sonraslnda çağrılması istenen oB numarası
oUTPUT lNPUT
lNT
Hata bilgileri
lNT
Geciktirme zaman ı sonrasında çağrılması istenen oB numarasl
oUTPUT oUTPUT
lNT
Hata bilgileri
WoRD
Geciktirme alarmlna ait durum
oB
NR
RET VAL
34
oB
NR
RET VAL STATUs
sFc
34 sTATUs bit'ıeİİnın anıamıan
Bit
60
0
Geciktirme alarmı kapalı
3
1
Yeni geciktirme alarmı bozuk
4
2
Geciktirme alarmı aktif ancak çalışmıyor
5
Yalllz Eminoğlü
AnhDı
T#1
dakikaya
.,
GeciKirme alarmı yüklenmiş GeciKirme alarmı var işlevi yok
c. çEVRİMSEL ALARM "oB,LERi (oB
30 GRuBU) Bir uyarı alarmı OB'si yardımı ile periyodik zaman aralıklarında tetiklenen bir uyarı elde edilebilir. Çevrimsel alarm OB'lerinin projeye eklenmesi için herhangi bir uyarı veya sistem fonksiyonuna ihtiyaç yoktur. lzinli olan ilgili OB'yi p@emize ekleyip CPU'ya yükledikten sonra çevrimsel programlnlzln çalışma zamanından bağımsız, belirli zaman aralıklarında bir programın çalışmasını sağlayabilirsiniz. Örneğin PlD fonksiyonunun ,t 0O ms aralıklı çalışan oB 35 bloğunun içerisinde çallştlrılması. Bu alarmlar "Watcdog lnterupt" olarak özellikle donanım taramasında kullanılabilir. Uygulama alarmı işlemleri için S7-300'de OB 30 dan OB 38'e kadar dokuz adet uyarı alarmı OB'si vardır. Bunları ,| ms aralıklarla, 'l ms den 1 dakikaya (60 000 ms) kadar parametrelendirebiliriz. Uyarı a|armı OB'leri başlangıç programlarında (OB 100-101 ) uygulanmaz. Propcrties
al)U 319
.
3
tN/DP
6erEd l DbglclDi/tH
qJ.b/Do.k
lil-
0Eil1]
l,
lfu6-
0B:2
l, li6,-
l500-
0s3& 0B3,rj|
ı8]]7 0R38
Cj/cb ldğıı.Dt!
Ud
E,Edıiİı
l]8]t
0B34:
sİrdİorE6
statLP
w.o ccrırıric,clio, l l ıiauı, I nddivE ı",-y I l,ı*,at" I rı,.atq, ı.İ",,aü, qJ.b|,|ğn!.s
ffiy
oE3e
X
(RO/s2)
l5m0-
l0l0-
lj6,-
15l016-
@-
l"
p-
Fm-
FF-
r
16li6-
l,
Fl,
lF.:] F-Fl F---l F= F-] r..=
F.] F---= r..= |r."=
l:::-
Fı] F|^J
F--l
OB no
oB30 oB3,t
oB32 oB33 oB34 oB35 oB36 oB37 oB38
Default zaman değeri
L5_, ] s]
r7;l 1
500
msi
Öncelik 7 8 9 ,l0
200 ms
11
1O0 ms
12
50 ms
,13
20 ms
14
10 ms
,!5
Çevrimsel uyanların pğelendirilmesi "Hardwaıe Configuration" tablosunda "CPU 31_" üzeri çift tıklanarak açılan tab|oda, "Cyclic tnterrupt" seçildiğinde, hangi OB'nin kullanılabileceği (OB 35) ve öncelik numarası (12) Ve zaman arallğl (default 100 ms) izlenip onaylanabilir. CPU 3'l4 ve alt CPU'larda geciktirme alarmı O6'lerinden sadece OB 35 kullanıma izinlidir. Üst numaralı CPu'larda bu
sayl artar. çevrimsel alarm OB'lerinin projelendirilmesi saat alarmı OB'lerinin projelendirilmesi ile aynl şekilde yapllmaktad ır.
CPU 319 ve 57 400 CPU "Hardware" ayarlarında "Phase ofset" ile ilk
1
1
tetikleme Süresi istenen süre kadar (ms) geciktirilebilir. Böylece çağrılan OB'lerin eş zamanll çallŞmaslnln ÖnÜne geçilebilir. Resimde "1" numara ile gösterilen örneğin oB 30'un çağrılma aralığı, "2" numara ile gösterilen ömeğin oB 31'in "Phase ofset" ile geciktirilen çağrılma aralığıdır.
2
phase oflset
YarıJz Eminoğlu
6,1
D. DoNANı]tl/PRosEs ALARMı "oB"LERİ (oB 40 GRuBU)
Her biri bir OB ile kullanılmak üzere S7-300/400'ler biri birinden bağımsız OB 40 ile 47 arasında sekiz adet donanım alarmı oluşturulmuştur. STEP 7 ile parametrelendirerek her bir sinyal modülü için sabit bir donanım/proses alarmı oluşturulabilir. Proses alarmı olayları ayrıca SFC 55 - 56 - 57 ile saptanıp ve projelendirilebilir. Proses alarmı OB'lerini, 39'dan 42'ye kadar olan SFC'ler yardımı ile engelleyebilir, geciktirebilir ve tekrar serbest bıraktırabi|irsiniz.
PRosEs ALARMı "oB,LERlNıN PRoJELEND|RıLMESı
Proses alarmı OB'leri (OB 40) bir arıza veya program hatasında değil, 'Hardware'den alınan bir sinyal kaşısında ne yapılması gerektiğinin söylendiği programdır. Aşağıda açıklandığı şekilde hazırlanan donanım ayarları sonraslnda istenen sinyal ile bir çevrim çahşmak üzere oB 40 çağrlllr Ve içerisindeki program çallştlnlır. Dijital/Analog Giriş Kartından "lnterrupt" Alma Dijital veya analog giriş kartına bağladığımız elektriksel değerin belli seviyelerinde
"lnterru
t'alı
Propeİties
Dl1
rimlik OB 40
bununla bir
6)(t)a2lV lnieİ
Gü,c| Addrır |ryı.
lUpl
X
(RO/S6)
Dirrıodb ıralı.d 17 Hğ*4Jüirdı[d
..-'
-1|'0
ı-]
HiıE
bo§iive| €dqe
F.İp tlEdiE|ete oK
62
vd€i
1 1,10
ilrl3l
l5Ecı
l ;.;-|:6,r
I
g_9
r r r r r
_
1
i;.lal
r
r r r f r f r r r r r r r
T
c-,"g |
ıı*
f
Tiıgd ır HğdüJ6l
T}F d
f
rNo
2.3
tnİ.l /
f
Yavuz Eminoğlu
"lnterrupt" öze|liğindeki dijital giriş kartlan ile teşhis (Diagnostic)
ve donanım (Hardware) interruplarl kullanılabilir. Donanım intenup'ı olarak karta bağlanan sinyallerin pozitif Ve/Veya negatif kenar darbelerinde OB 40 çağrılır. Karta bağlı olan girişler ikili gruplar halinde kullanılmıştır ve "lnterrupt" olarak kullanılmak istenen girişler aktif edilmelidir. "Trigger for Ha]dware lnterrupt" a|anında istenen giriş grubunun pozitif ve/veya negatif kenar alanı aktifleştirilir, haizaya alınarak CPU'ya yüklenir.
I
lıp,ı Ddq,
T
tırılabilir
|
Benzer işlemler "lnterrupt" özelliği olan analog kartlar içinde geçer|idir. Bunun için ilgili kartln "Haİdware" penceresinde ilgili kartın özellikler (Properties) penceresinde "Enable" alanında "Hardware lnte]ıupt When Limit Exceeded" seçeneği aktifleştirilir. Daha sonra "Trlggeı for Hardware lntemıpt" alanındaki "High Limit" ve "Low Limit" alanlarına istenen elektriksel değerler girilir. Yandaki ayarda 8 V'nin üzerinde ve 2 v'nin altında "Hardware lnterrupt"ın aktif olacağı ve ilgili oB'nin çağrılacağı anlamındadır.
ll.t]"llrcs
^]7xl7r]jl
i
(Rl)/\1j
6ild I Adö.ğ tgrı
|
|- oiğ',odcır.İld F ılıfoıı|ııa{rrhl|.i.tErc..üd hfd
0-1
oaırııtı
EaDO6{ı!..i.t
di
ch.d( fo
\ıJı.8n*
ıa.İtne
ıa.lİiErtrG
ıa.aİEnıE
6fr!.'ı{ğıiı
Bıta. s.$.üi ıardığ
|brqtıcın |i.qıığtc;
TiE!ıaC1{ıdçü.|ığııd
ıqüüü [ftı.ü
lE-
Frio-fBl
Fro,İd0 16--v
E-v
c..e
ax
l ıı+
|
Yukarıda açıklanan "Hardware" ayar|arı CPU'ya yüklendiği halde, eğer OB 40 projeye eklenmemişse PLC'nin "SF" ledi yanar ve stop konumuna geçer. OB 40'ın eklenmesi durumunda "SF" ledi yanar ancak PLC stop konumuna geçmez ve OB 40 içerisine bir program yazılmışsa o program çal|şır.
Yavuz EminoğIu
63
E. ZAMAN HATAsl "oB,sİ (oB 80)
Aşağıdaki hatalar oluştuğunda işletim sistemi oB 80'i çağınr. - Çevrim süresinin aşılmasında, - OB'nin çağnlma hatasında. Örneğin çalışmaKa olan bir OB'nin yeniden çağrılmasında, - Saat alarmı OB'lerinden kaynaklanan zaman hatalarında,
Eğer "oB 80" programlanmamışsa CPU stop konumuna gider. Zaman hatası OB'sini, 39 dan 42'ye kadar olan SFC'ler yardımı ile engelleyebilir, geciktirebilir ve tekrar serbest blraktlrabilirsiniz. Eğer aynı çevrim süresi içinde zaman taşmasından dolayı OB 80 iki kez çağrılmışsa, CPU kendiliğinden STOP konumuna gider. Bu durumu SFC 43 i|e engelleyebilirsiniz.
ZAMAN HATASı,oB"LER|NlN PRoJELENDıRıLMESı
Ömeğin yazılan programın ayar|anan çevrim süresini aşması veya sonsuz döngü oluşması durumunda, eğer OB 80 programlanmamışsa PLC durum ledlerinden SF ledi yanar Ve işletim durumu stop konumuna geçer. OB 80'nin projeye eklenmesi durumunda içerisine bir şey yazılmazsa bile hatanın oluştuğu ilk çevrim CPU'nun SF ledi yanar ancak stop konumuna geçmez, içerisindeki program çalışmaya devam eder. Ancak sistem hatasına neden olan olayn devam etmesi durumunda PLC stop eder.
oB1
A
OB 80 yüklenmeden program yaAft ve l 125.0 uyarıldığında SF ledinin yandığı ve PLC'nin stop
l124.0 = Q 124.0
A
l
konumuna geçtiği görülür.
,125.0
FP M
40.0
JcN ATLA
GERI:
L T
50000 MD 0
L
MD10
L,1 +|
T
MD,10
L
MDo LooP GER| ATLA:BE
A
l124.0 = Q 124.0 programı çalışmaz
Daha sonra OB 8O yüklenerek program tekrar çalıştırılır ve SF ledinin yanmasına rağmen PLC'nin stop konumuna geçmediği görülür.
A
l124.o Q = 124.0 programl çalışır ve oB 80 içerisine yazılan programda çalışarak Q 'l25.7 ledinin yanması sağlanır. "LOOP" döngüsü içerisine yazılan program, sadece çevrim süresini aşmak amacıyla yazılmıştır.
oB 80
sET
= Q125.7
64
Yavuz Eminoğlu
F. BESLEME
GERİLIMİ HATASı "oB-sl (oB 81) Aşağldaki hatalar oluştuğunda işletim sistemi oB 81'i çağlrır. - Ana cihaz veya genişletme cihazlarından birinin yedekleme pilinin boş olması(eski tip CPU'larda) - Ana cihaz veya genişletme cihazlarından birinde o|an gerilim hatası - Ana cihaz veya genişletme cihazlarından birinde olan 24 v besleme arızası
.
Eğer oB 81 programlanmamışsa, devam eder.
cpu besleme hatası uyarısı
ile birlikte çalışmaya
OB 81 DEKLARASYON TABLOSU
oB8l_EV_cLAss
BYTE
olay sınıfı; B#16#38: Hataya neden olan olay kesildi
8#16#39: Hataya neden olan olay devam edi yor
oB81 FLT lD
BYTE
o88,1_PRloRlw oB81 oB NUMBR oB81 RESERVED 1 oB8l_REsERVED_2 oB81 RACK cPU
Hata kodu (Ayrlntl aşağ|da) (ü16#21 , 8#16#22, 8#16123,
ülffi2,
B#16*B3)
B#lfzı
8#16#26, 8#16#27, 8#16#31,
BYTE
Donanlm ayarlannda tanlmlanan öncelik slnfl
BYTE
OB numarası (81)
BYTE
Rezerve
BYTE
Rezerve
woRD
o.bayt boş (Bit o'dan 7'ye kadar) B#l6rrc0 1.bayt (Bit 8'dsn 15'e kadar)
standard cPU için: B#16#00
H_cPu için Bit 8'den 10'a kadar ray numarasl 1'l.bit 0= Rezerve cPU, 'l= Master cPU, Bit,l2'den 15'e kadar 111l
oB81 RESERVED 3
BYTE
oB81 RESERVED 4
BYTE
oB81 RESERVED
BYTE
5
Hangi numaral| genişleme rayında güç kaynağl hatasl olduğunu bildirir o.bit rezorve, 1.bit:1 ise 1.genişleme raylnda Ps hatasl, 2.bit1 ise 2.,3.bit:1 ise 3.,4.bit:1 ise 4., 5 bitl ise 5., 6.bit:1 ise 6.,
7.bit:l ise 7. Genişleme rayında Ps arlzasl anlaşlllr.
Hangi numarah genişleme raynda güç kaynağl hatasl olduğunu bildirir. 0.bit1 ise 8.genişleme ray Ps hatasl, ,l.bit1 ise g., 2.bit:1 ise 1o., 3.bit1 ise 11.,4.bit:1 ise 12.,5 bit:l ise 13.,6.bit:1 ise 14., 7.bit:1 ise 15. Genişleme rayında PS arızası anlaşılır. Hangi numarall genişleme raynda 9üç kaynağl hatasl olduğunu bildirir. ,l6.9enişleme rayl Ps hatasl, '|.bit:1 ise 17., 2.bit:1 ise 18., 3.bit1 ise 19.,4.bit:1 ise 20., 5 bit:1 ise 21., 6. ve 7.bitler rezervedir. o.bit:,l ise
oB8l_REsERVED_6 oB81 DATE T|ME
BYTE
Rezerve
DT
oB 8'l'nin çağnldlğl zaman
Hata kodIarı: B#lü21: Merkezi raydaki en az bir yedek batarya problemi giderildi. B#lü22: Merkezi raydaki yedek voltaj problemi giderildi. (BAF) 8#16#23: Merkezi raydaki 24V 9tıç kaynağı problemi giderildi. 8#16#25:, Merkezi raya ait yedek güç kaynağı hatası giderildi. (BATTF) 8#16#26: Merkezi raya ait güç kaynağı hatası giderildi. (BAF) B#lü27: Merkezi raya ait güç kaynağı hatası. B#16#31 : En az bir genişleme rayına ait bir yedek güç kaynağı hatası giderildi. (BATTF) 8#1*32:. En az bir genişleme rayı yedek batarya problemi giderildi. (BAF) B#16#33: En az bir genişleme rayı güç kaynağı hatası giderildi.
Yavuz Eİninoğlu
65
G. HATA BuLGusU uYARı "oB,sl (oB 82)
Hata teşhisi yapabilen bir cpu ve diğer donanımlarda (sinyal modülleri, haberleşme modülıeriv.uj teşhis'alarm isteği konmuşsi, bir uyarı ile teşhis alarmı serbest blrakllır. Bunun üzerine işletim sistemi OB 82'yi çağınr. -baytİık bir lokal değişkene yazaı, Eğer OB 82 PLC'ye OB'a2 teşnis verilerini + yüklenmemişse CPU kendiliğinden STOP konumuna gider. oe ez{,i, 39 dan 42'ye-kadar olan SFC'ler yardımı ile de engelleyebilir, geciKirebilir ve tekrar serbest bıraktlrabilirsiniz.
-
OB 82 DEKLARASYON TABLOSU
oB82 EV cLASs
BYTE
olay sınıfı; B#16#38: Hataya neden olan olay kesildi
oB82_FLT_lD
BYTE
Hata kodu (B#16*tZı2)
oB82_PRloRlw oB82 oB NUMBR oB82 RESERVED
BYTE
Donanlm aya rlarlnda tanImlanan öncelik sınfl
BYTE
oB numarasl (82)
BYTE
Rezerve
o882_1o_FLAG
BYTE
oB82_MDL_ADDR oB82 MDL DEFECT
woRD BooL BooL BooL BooL BooL BooL BooL BooL
Giriş modülü hatas|: B#16#g,,Çlkış modülü hatasl: B#16#55 Hatall sinyal modülünün başlanglç bayt adresi sinyal modülerinden herhangi birinde hata olduğunda bu bir uyarlllr
1
oB82 lNT FAULT oB82 EXT FAuLT
oB82 PNT lNFo oB82 EXT VoLTAGE oB82 FLD coNNcTR oB82_No_coNFlG oB82_coNFlG_ERR oB82 MDL wPE
BYTE
BooL BooL BooL BooL BooL oB82 PR|M BATT FLT BooL oB82 BCKUP_BATT_FLT BooL BooL oB82 RESERVED 2 BooL oB82 RACK FLT BooL oB82 PRoc FLT BooL E PRoM oB82 BooL oB82 RAM_FLT BooL oB82 ADu FLT T BooL BooL oB82_Hw_lNTR_FLT BooL oB82 RESERVE D3 DT oB82 DATE TIME
oB82 oB82 oB82 oB82
66
sUB MDL ERR coMM FAuLT MDL sToP wTcH DoG FLT lNT Ps FLT
8#16#39: Hataya neden olan olay devam ediyor
lç hata
Dlş hata kanal hatasl Herhangi bir modülde oluşa n besleme kaynağl bağlantl hatasl Ön konektör bağlı değil
sinyal modüllerinden herhangi bir konfigüre edilmedi Veya yanllşllk var. Modüle ait tanlmh olmayan parametreler Bit o dan 3'e kadar: Modül slnfl, bit 4; Kanal bilgisi Var Bit 5: Kullanlcl bilgileri Var, Bit 6: Değiştirilen üründen teşhis 'lnterruprl Bit 7: Bakım isteği
0.Ray dış lndaki sinyal modüllerinde hata Var. Haberleşme sorunu işt etim sistemi durumu (0: RUN, 1:
sToP)
watchdog (Donanlm izleme) zamanlaylcı hatasl Dahili güç kaynağl hatasl Pil bitik Program yedekleme hatasl
Baklm isteği Genişletme rayl hatasl lşlemci hatası
EPRoM hatasl RAM hatasl (ADC/DAC) Analog sigorta attl
'
Dij itaı, Diiital
Donanlm "lnterrupt" isteği kesildi
Rezerve
oB 82'nin çağnldlğl zaman
Yaı''lz Eninogu
)
Analog dönüştürücü hatasl
T
oB 82 parametre tab|osundan alınan değerler sorgulanarak hangi sinya| ....-Ömeğin modü|ünün arızalı olduğu anlaşılabilir. A( L #oB82_1o_FLAG L B#16#&t
--| )
A( L #oB82_MDL_ADDR
L4 --| )
DB1O.DBX10.0 ll 4.Baytlan itibaren başlayan giriş kartında arıza var. (Bu bit scada veya operatör panelde bir uyarı metninin ekrina ğetiiilmesi sağlanarak oı"raıörün arızaya daha çabuk müdahelesini sağlar.) =
Analog giriş karttnda tel kopma uyarısını algılayabilmek: Analog giriş kartının özellikler penceresine girildiğinde "Enable'' alanındaki "Dıagnostics lnterrupt" aktifleştirilir. Daha sonra '.lnput'' alanındaki hangi kanalların te| kopma uyansı alınmak isteniyorsa o kanalların "Diagnostics'' alanındaki İeçim kutuları ma*alanır. I)lopeitie\ AlBi]
(tJiı
x
aRa]/\])
G.rgJ| Ad&ı..* |rnıi,
İ
Er,.üL 17
DıEr.db
lİü,ıd T Hdd§ü,İğndwıErlinEıt.d€d 0_1
Dirlrdİı G!ı+
DirJndiE
İl,l t}E
ı İrwı. BEdr
r9
HsğrHlhd Hicı ti*
T,iDğ fü
4.5
5.?
r
4 mA'in veya
r
f
lE-
l6,H,- l6.H,- l6,H,- lEdH.oüİüd0
c-*ı
| ı*
lV altında
oluşur.
|-
L*Lır* 0K
4-20 mA akım veya 1-5 V gerilimle çalışan analog kartlarda kullanılabilir. (<3.9mA, <0.9V) "lnterrupt"
FE"s E--F/ı0-7- Fffiç-
ıi.ğ.in Rğpk
'üesE
r
f
l4D,iu-l--lE-
İ{ışirTp
|ldğl.üdE
r r
2.3
Te| kopma uyarısı sadece
l
Dijital giriş kartları içinde benzer şekilde tel kopma uyarısı allnabilir. Donanım alarmları (oB 40) anlatılırken eklenen dijital karta ait 'Hardware' ayarlarl resminde görüldüğü gibi "Diagnostic interrupt" aktif edilip, ilgi|i kanala ait "Wire break" seçilerek iş|em gerçekleştirilir.
Tel kopma uyarısının algılanması "OB 82" parametre|erinden ''OB82_PNT_lNFO'' nun "l" olması ile gerçekleştirilir. "cpu Hardware"inde yukarldaki ayarlar yapıldıktan sonra tel kopma durumunda p@ede OB 82 yoksa SF ledi yanar ve stop konumuna geçer. OB 82 varsa SF ledi yanar, ancak PLC stop konumuna geçmez.
Tel kopma uyarısı ile pğelendirilen bir kanala ilgili sensörün bağlanmaması durumunda da te| kopma alarmı oluşur.
Yavuz EniEoğtu
67
H. TAKMA, çıKARMA uYARl "oB"sİ (oB 83) takılma veya işletim sistemi, modül konfigürasyonunu klsa aralıklarla izler. Her modülün ve.sist_em tamponuna hata çıtanİha lşleml (RÜN, STOP veya SrRnrUe !u_rulu1.0.9) durum listesine eklenir. Buna ek olarak işletim sistemi RUN durumunda oB 83,ü çağınr. durumunu STOP konumuna OB 83 oluşturulmamışsa takma/çıkarma alarmı işletim -gibi bir ağ üzerindeki çevresel birim üzerinde Jo"tiştu,tii. Modüller herkezi yapıda olabileceği de olabilir. Takma/çıkarma oB,sine ait verileri, ilgili oB,nin deklarasyon tablosu içerisinden v.b ulaşabiliriz. Bu veriler; ilgili modülün başlangıç adresi, modül tipi, oB,nin çağnlma zamanı bilgileridir. OB 83 deklarasyon tablosuna ait lokal veriler.
TiP BYT BYTE
AçlKLAMA
BYTE BYTE BYTE BYTE
öncelik sınıfı OB numarası (83)
oB83 MDL ADDR
woRD.
oB83 RAGK NUM
WoRD
Merkezi, PROFlBUS veya PROF|NET hattına takılı modüllerin başlangıç adresi. Eğer OB83_RESERVED_1 = B#1 6#A0 ise, düşük bayt'ında alt modül numarası yer alır. Eğer OB83_RESERVED_I = B # 16 # C4 ise - Merkezi yapılandırmada ray numarası, - PROF|BUS DP'de, düşük baytta DP istasyon numarasl, yüksek baytta DP master sistem lD numarasl, - PROFlNET'de, bitler şu anlama gelir. 15.bit=1 ise PROF|NET l/O, ,1,1)15.bitler l/O sistem lD numarası, O )'1o.bitler cihaz numaraslnl ifade eder.
oB83 MDL TYPE
woRD
Merkezi veya PROF|BUS DP modül tipi (x:kullanıcıyı ilgilendirmiyor) W#16#x5xx : Analog modül W#16#x8xx : Fonksiyon modülü W#16#xOxx: CP W#16#xF»< : Dijital modül PRoF|NET lo- modül tipi W # 16 # 8101: eklenen modül tipi, kaldırılan modül tipi ile aynı W # 16 # 8102: eklenen modül tipi, kaldırılan modül tipi ile aynı değil
oB83 DATE T|ME
DT
OB 83'ün çağrıldığı zaman.
DEĞlŞKEN oB83 EV cLASs oB83 FLT lD
oB83 oB83 oB83 oB83
6a
PRloRlry
oB
NUMBR
RESERVED MDL TD
1
Olay sınıfı; B # 16
# 32-33-38-39 olabilir.
_68 Hata kodu; B # 16 # 5'1 -55-56-58-61 -63-64-65-66-67 olabilir. Anlamları sonraki tabloda açlklanmıştlr.
Modül tanımlaması B # 16 # 54: Periferi (Analog) giriş (Pl) ,16 # 55: Periferi (Analog) çıkış (PQ) B#
YaMız Eninoğlu
AŞağıdaki tab|o olay sınıfı ve hata kodunu bir|ikte değerlendirerek OB 83'ün tanımladığı etkinliği gösterir.
oB83 EV cl-Ass oB83 FLT lD
LAMl PROF|NET |/O modülü kaldırıldı PROFlNET l/O altmodulü kaldırıldı PROF|NET alt modulü takıldı ve uygun PROFlNET'e takılan l/O modul uyumsuzluğu PROF|NET'e takılan liO modul parametre hatası PROFINET'e takılan l/O module erişim hatası
B#,t6#39
B#16#51
B#,t6#39
wl6#;il
B#16#38
B#1#54
B#16#38
B#16#55
B#,t6#38
B#16#56
B#,l6#38
B#16#58
B#16#39
B#lffi1
B#16#38
B#16#61
Modül çıkarıldı ya da yanıt vermiyor. Takılan modül tipi tamam
B#,t6#38
B#16#63
Takllan modülün tipi hatall
B#16#38
B#16#64
Modul takılı ama numarası okunamıyor.
B#16#38
B#16#65
B#16#39
B#16#66
B#16#38
B#,t6#66
B#16#33
B#1#32
B#lffi7 B#lffi7
Takllan module ait parametre hatasl Modü| yanıt vermiyor, gerilim hatası var. Modül gerilim hatası düzeltildi yanıt veriyor.
B#16#39
B#16#68
e@
ğa
Modülün yeniden düzenlenmesi başlıyor. Modülün yeniden düzenlenmesi bitti. Modülü yeniden düzenlenmesi hata ile sona erdi
t€rrB
rnterface El
ffi
:
'Envi rulr€nt\
T_ID
E 0863_F E oBE, P oBE]
oft
Inter'
a<
e\
6] Ev clAss
TEnf
"I/o
IoR
ITY
uıaR
8yte Byte Byte
1 2
o6in PftEri=,,, Aİ+Rdm
:Ti
l
tad tap&ab.ı >> Cbl+stlt+f
r
Bütün OB'lerde olduğu gibi OB 83'e ait deklarasyon tablosundaki parametreler program içerisinde izlenip kullanılabilir. Bunun için ilgili parametre CPU içerisinde istenen alana atanlr. ilgili kod direkt yazllabileceği gibi, kopyalanarak istenilen alana yaplştlrllmasl kolaylük sağlar.
MoVE El{
,oBE]_Ev_cLAss
-I{
Etİ)
ouT D81. DBıİo
Yaluz Eminoğlu
69
RLo
ı
s
Örneğin modüllere ait takma/çıkarma sonucu oluşan bir hata 39 sonrası çağrılan OB 83'e ait veriler Cl yandaki gibidir.
T
{oB8]_Ev_cLA5s DB1. DB8 o
o o
L
*oBE3_FLT_ID
o
o
1 1
o
l
ıa
1
ı ı
53
1
c4
1
54
L
T
D81-DBB
L
ıo083_PRIoRITY
T
D01.
L
#oBt]_oo_ilt,3R
DBI.DBB ]
s s
l}oB6f_REsERVED_1
o
T L T L
T L T
DBB
DBI,DBB
1
2
4
*oBE]_iDL_ID
D81.DBB {oB
8
5
3_MD L_ADDR
Dal.DBı{
6
L T
#oBE3_RAcK_Nıİ.4
L
öo8E ]_MD L_TYP E DB1. DBü| |o
T
DBI-DBı{
8
a
a g
o
o 9
1
ı
ı
1 1
39
CL
Veriler incelediğinde
ı. "oB83_Ev_cLAsS" değeri
"B#16#39" ve "OB83_FLT_|D" ise "B#l 6#61 " değerindedir. Yukarıdaki s3 tablo incelendiğinde "llllodül çıkarıldı ya da yanıt vermiyoı'' anlaml <+
çıkmaktadlr.
Ayrıca sorunlu modulün merkezi yapıdaki 0.montaj rayında 6 (OB83_RESERVED_,1 : c4 +
54
e
9 a
1 1
o o
a o
ı ı
!}fr2 ,İ<2
oB83_RACK_NUM
:0),
başlanglç adresinin 0 bayt, (OB83_MDL_ADDR : 0) ve tipinin (OB83_MDL_WPE : W#16#xFxx: Dijital modül olduğu görülür.
Bu parametıeler uygun yöntemlerle operatör panel ve scada ekranlarlna taşınıp, belirlenen cümıe]eri ekrana yansıtmak suretiyle, kul]anıcının çok daha kolay arıza ve hataya müdahele etmesi sağlanabilir.
70
Yavuz Eminoğlu
Yukarıda anlatı|an takma/çıkarma kesme oB'sine ait bazı fonksiyonları PLC_SlM üzerinde de uygulamak mümkündür. Bunun için PLc-slM menüsünde ''Execute} Triggeı Error oB lnserURemove liodute lnterrupt oB (83)" ile istenen fonksiyon seçilip, hİngi adreste bulunan modul üzerinde uygulanacaksa o adres yazılıp "Apply'' tuşu ile uygulanır.
)
cri
ı
lE
ll
an ]
iocl:}_Ev_clA5 DDI.DBB o
l_
T
o o
5
lo86]_f(T_ID
l_
DBl-De8
T
toDE]_P
l_
R
Dol.DEB
T
a
o
1
IoR
ITY
ıuı
ğl
o
c
2
1/ LJ r+ J, '.1
'tlİA
ı ı ı ı
61
ı ı
ı.
noeE3_REsEivED_1 DD1.D8D 4
9 o
ı
L
fı86]_iDt_ID
9 9
1 1
5a
9 9
1 1
ı2o
9
9
ı ı
9 9
1 1
l
D81.DB8
5
loBE ]_to L_ADDR
L T
DBl.Dn{
5
loaE 3_RAax_tt!.l
l_
DBl.Dna i
T L
f
'o86 DB1.
cALl
]_lı,D [_TYP E
Dnd
10
"BLIİDV"
sRc8t( :=loDE]_DATE_TntE
El_vAL : j!t{o DsT8L( :=DB1.086]_DATE_TIME
1
ı
l€X t€(
15
|_Ex
16
Dsl.aEE
I7
lCx l€x
13
ri
l€(
!ı9
o 9
ı5
()l]
{i]3)
F İdİ ğEY.d ğ id E9ınE c İoda i*ıd dİ ip. o( a lt6a iEd.n ıE!i.r r.dİ t]9. a tüüladİ iBğüd ğa.lo ğlr b Dd a ıroda hd m n iEdİ pğdltğ ğir"E*
94
15
2r5/l]ü.
lCX
ıs
lnlcIlrtcmove üodU e nıcrIun1
0K
ırr, I
c-,"ı
| ı*
l
:'-_i7 i LL\üil1 !]^ıA]lC Joo(1)[t!]]1lİ l C:\P,oeü4İ l]1.1\slcn].n\\!le Fi. E* lr'l.d l6dt Ra EEute rdJ Vrİ]&i tb]o
D!rEe
ıffi ffi fl
İö
14
I
it
12
Dsl,Bo ogı.oiü Dgr,Ds
ogı,tis Dsl,sg
q o
53
+
R
üğl
lqlı
,3
L T
3
iLlPLOnD\slıü,İllla ]001! )\(ilü,']i
Dsl.D68
rı q q E q
61
l(ıB6:1_oB_l{uaR
DE1.D8B
n
39
1
1
ı tr ı mı,mg
!9
L T
a o
'V^l
5TAiDAİo
ı] ıt
aalJ
+1
|İ.
X
$ğ
GIE E -rIP
bbbbbtElEbb =B
n
li6-İ-Fl,-=
765a 32r0 rrr rrr r rrfr f frr
?6513210
f
OB 83'ün başlatıldığı (modül hatasının meydana geldiği) an deklarasyon tablosundaki "OB83_DATE_T!tlE" alanı ile sorgulanabilir. Ayrıntılarının "Gerçek Zaman Saati" konusu içerisinde anlatılmıştır. Burada bi|inmesi gereken "DATE_AND_TlME" türündeki veri bir yukarıda gösterildiği gibi data blok alanına (P#DBI.DBXI2.0 BYTE 8) aktanlmıştır. Data blok alanında yıl, ay, gün, saat, dakika, saniye ve milisaniye olarak izlemek, sorgulamak mümkündür. Ayrıca scada veya panel ekranına aKarmak mümkündür.
DıKKAT
57 300'de merkezi rayda bulunan modüllerln takı|ıp çıkarılması OB 83'ü çağıİrnaz. S7 300'de PN/DP modüllerde OB 83 çağııabilir çünkü onlar PROF|NET l/O elemanlan için kullanılabili].
Yıvuz Eminoğlu
71
GENEL HATA KODLAR| Yukarıda yapılan sFc 20 (BLoK MOVE) işleminde "DT" türündeki veri, daha kısa bir alana taşlnmaya çalışılmış ve "RET_VAL" çıkışında ilgili hata kodu "8323" (Yazllan Veride uzunluk hatası) alınmıştır.
t
n9e.l/Rcn]ove $Ddulc lnterrUp! oB
L_ID
#oB8 ]_t"D
DBB
s
T
DB1.
L T
{oaE 3_no L_ADDR 6 DB1.
L
*oBEf_RAcl(_ılt.l
DBl.Ds{
L
#oBE
E
f_ıD L_TYP
DBl.Ds{ lo
İ
X
])
6 lüod.a.,aEtd 6 d.!.F.üE a tidİıİra.d rıd.5iE 0K c İod} iEltd iEi!.r |d/. qF r Mdİ iİ.ğ!!d ıljE lD clrEı b. G.d a M.dlğ iğt d aü h nı.dt !g.İi.a eİ,İğr
DBl{
T
(8
E
aeav
0K
I c-"g |
ıı+
|
cALL "BLKtOv'
sRc8tl( :=*o88]_DATE_TIME
3357ı
RET_VAL:=}tJo
D5TDLX : =Da1. DBx12 . o
:J_s/ pL[5lM1
D
l} D
eEa ı] ıfl
nr§lııuPlI ll
i.ljU
1
X
F' Butlf
TBW tlı,l tF T STOF c
2 ci\pı.8ranr tilesrsia.ren5\!t.Pl\s/p,ol!-]pü, \tİrül& Ha]o
sl1,1^Tl( jıJLji])\a!ti]]17F
Pi. Edt vH Inqt Ptc Eğ:,i6
j!!!.l
l$ h EIt ts{|P
'@k
E b b tı E E 6ı 1a
=lll
- : X
x =Qa
0 0
8a3
QBa
.1
El!
76513210
rr!-r r rrr rr|-r rrrr 765a
32r0
X
@3
Aşağıdaki tablo "Return value" parametresi ile alınan genel hata kodlannı açıklar. Hata kodları hex formatında görüntülenir. Buradaki "x" yer tutucudur. Hata kodlarının açık|aması 8x7F İç hata 8x01 ANY parametresine yazılan geçersiz yazılım. 8x22 okunan veride uzunluk hatası. 8r,23 Yazılan veride uzunluk hatası. (ANY türündeki verinin 8 bit veya katlarında olmama durumu) 8y24 Okunan parametrede aralık hatası, 8|25 Yazllan parametrede aralık hatası. 8x26 Yüksek bir zamanlayıcı numarası. 8y27 Yüksek bir saylcl numarasl. 8y28 Okunan veri uyumsuzluğu. 8x29 Yazılan veri uyumsuzluğu. 8x30 Sadece okunabilen bir genel data blok içerisindedir. 8x31 Sadece okunabilen bir özel data blok içerisindedir. 8x32 Ulaşılmaya çalışılan data blok (DB) numarası yüksek. 8x34 Ulaşılmaya çal|şllan fonksiyon (Fc) numarasl yüksek. 8x35 Ulaşılmaya çalışılan fonksiyon blok (FB) numarası yüksek. 8x3A Ulaşılmaya çalışılan data b|ok (DB) yüklü değil. 8x3C Ulaşılmaya çalışılan fonksiyon (FC) yüklü değil. 8x3E Ulaşılmaya çalışılan fonksiyon blok (FB) yük|ü değil. 8x42 Çevresel giriş alanından bir parametre okunmaya çalışılırken iken hata oluştu. 8x43 Çevresel çıkış alanına bir parametre yazılmaya çalışılırken iken hata oluştu. 8x44 Okuma hatası oluştu. 8x45 Yazma hatasl oluştu.
72
Yavuz Eminoğlu
Prc PRoGRAMI_AMA VE s7
i.
KESME VE HATA ,OB"LERI
3
"cPu" DoNANıM HATASı UYARı "oB,si (oB
84) lşletim sistemi; Haiıza hatalarının algılanıp düzeltime sonrasında, "H" (High-availabili§: Yüksek kullanılırlık) ve "Redundant' (Yedekli) CPU'larda iki işlemci arasında bağlantı performansında azalma olduğunda OB 84'ü çağınr.
-
Eğer OB 84 oluşturulmamışsa işletim sistemi CPU'yu STOP konumuna dönüştürür.
J.
PRoGRAM YÜRÜT]UIE HATASı "oB"sİ (oB 85) Aşağıdaki hatalar oluşfuğunda işletim sistemi oB 85'i çağınr.
-
Yüklenmemiş bir OB'nin çalıştırılma isteği (OB 81, OB 82, OB 83, OB 86) lşletim sisteminin bir modüle ulaşma hatasında. Proses resminin (Pll, PlQ) güncelleştirilmesinde, çevresel birimlerle oluşan veri iletişim hatastnda.
Eğer OB 85 oluşturulmamışsa işletim sistemi CPU'yu STOP konumuna dönüştünir.
,oB,sİ (oB 86) K. MoDÜL TAşlYıcısı (]tloNTAJ RAYD ARızAsı
Eğer modül taşıyıcı (montaj rayı) arızası (gerilim hatası, hat kopması, hatalı lM), ağ sistemi Veya merkezi olmayan çevrese| birimler arızası olmuşsa işletim sistemi oB 86'yl çağlrlr. Eğer OB 86 oluşturulmamışsa modül taşıyıcı arızası işletim durumunu STOP konumuna dön türür l,'i]|]t 'il^lİ lL' i'lrt)^li/ll]t] ıl Fh Edt ltğt p[c D.h.q $.*
.l'\i].:lil
Dcrt-9 ğ s hal-, - P,tİ ğ Etı.dG ts E FC baodğ E - sfi bhd§ E - *cbloda E.ı Lt,is
E
!] iilal)lj]]]lll1l
E +6/l!<>!
|
:]'?|]6]
tr
lr+{E
il İİl, B
o6r5_oi_İl
l2
D!t. ğ{
:l.
3-
ol55
: 'ıorl of İdİ
ıffi
fv.rt <ı.rr ,
6.
ı. Dn
ı€rrı/J9
rr i.r.ntifQtio ..d. Eıdltim (o.aİtz*i bı«ı 15, 0a||5) jyJt.. '6 fc n r.ru.rl R.lFv.d fO ryrt.. bG..alrRlr of ıır .oauı. tİ...k rlth falt
l.
E
ı, rH1l? t
'6ıal/a4/c5, Pdo.1ly of 00
tt.. oir5 !tğt.d
'.dt"
Daı,06i
üı.oil -.I
rneğin "OB86_RAGKS_FLTD" ile hangi nu marall adreste hata olduğu sorgulanabilir "OB86_RACKS_FLTD"ın data tipi "ARRAY"dir. Bu data tipi ile direkt sorgulama yapılamayacağı i çı n data tipi "DWORD"e dönüştürülerek sorgulama yapı lmalıd ır. ,l.DBX ıl4.0"ın "l" olmasl 4.nolu p rofibus Örneğin yukarıdaki programda "DB adresindeki cihazda hata olduğu anlaşıllr
L. HABERLEşME HATASı "oB,sİ (oB
87) işletim sistemi OB 86'yı çağırır. hatalar oluşfuğunda Aşağıdaki yanlış veri tanımlaması veya veri uzunluğu - ĞloUal ctata haberleşmesinde gönderilmesi Mümkün olmayan hata bulgularının saat senkronizasyonunda (uyumunda) hata Eğer oB 87 oluşturuimamışsa, haberleşme hatası, işletim durumunu STop konumuna
-
dönüştünir.
Yaiuz Eminoğlu
73
Prc PRoGRAMLAMA VE s7
3m/400-2
KESME vE İIATA "oB"LERİ
M. ARKA PLAN PRoGRAı'ı (oB 90) OB 90 bir "lntem.ıpt' veya hatia programı değildir. CPU'ya yüklenmesi durumunda sabit çevrim süresini garanti eder. Program normal çevrimini tamamladığında ayar|anan çevrim süresini do|duruncaya kadar OB 90 içerisindeki programı çalıştırır. OB 90 yük|enmemiş ise hemen yeni bir çevdme başlar. OB 90 içerisinde ana programı etkilemeyen arka plan programları çalıştırıhr. Ömeğin sistemin harcadığı enerji maliyeü, çevresel sistem kumanda progfEımları, ömeğin display üzerine zaman Ve ortjam sıcaklığının aktarılması v.b. TmaX Tmin
Tc
Twait
o&ı0
cB10 o81
P]l
Tmax
ll
rve
oB10 oB1
PıQ
aE
sl br*}
Pll
oBl
F*.
Set edilebilen max çevrim süresi (S7 400) set edilebilen min çevrim süresi = Aktüel çevrim süresi Twait = OB 90 ve diğer "lntem.ıpf OB'leri ile doldurulan bekleme süresi
Tmin
TC
= =
S7 300'lerde OB 90 ile minumum çevrim süresi sağlanabilirken, 57 400'lerde donanım ayarları i|e min ve max çevrim süreleri sağlanabilir.
N. START oB,LERİ (oB 1oo-1o1-1o2) Durum seçme anahtarının SToP'tan RUN'a veya AÇMA/KAPAMA anahtarlnın oN konuma allnmaslyla CPU tip ve tıanımlama şekline bağll olarak aşğıda tanlmlanan yöntemlerden biriyle çalışmaya başlar. (Konuya ait ayrlntl PLc PRoGRAMLAMA VE s7 300/400-.t kitabı içerisinde anıatllmlştl.) Warm Restart: raramaya (çevrime) baştan başlar, retentiv olmayan Memory, counter, Timer alanları silinir. (Bu durumda start oB'si olarak projeye eklenmişse oB .t00 çalıştlnlır.)
cold Restaıt : Pll ve PlQ'lar, kallcl (retentiv) ve kallcı olmayan alanların tamamlnl siler ve çevrimi baştan başlatlr. programln neresinde kalırsa kalsın, RuN'a alınınca baş döner. (Bu durumda start oB'si olarak pğeye eklenmişe oB 101 çalıştırılır.) Hot Restart : Taramaya kaldığı yerden devam eder, değer|er aynı kalır. Sadece 57 400 kullanılabilir. (Bu durumda start OB'si olarak projeye eklenmişse OB 1O2 çahştınlır.)
OB 55-56€7
ile Profibus işlemcili GPU'larda haberleşme v.b amacıyıla kullanılırlaı.
oB 606465 Haberleşmede senkronizasyon amacılıla kullanıhılar. oB 70-72-73 H_CPU'larda okuma, haberleşme amacıyla kutlanılırlaı 71
Yavuz EminoğIu
o. PRoGRAJUILAMA HATASı,oB,sİ (oB 121 ) CPU'nun çalışması esnasında işletim sistemi tarafından bir program hatası oluştuğunda işletim sistemi OB 12'|'i çağırır. Örneğin; yüklenmemiş bir blok'un çağrılması (OB 1 içerisinde CALL FCl yazılıp yüklenmesine rağmen, FC 1 in CPU'ya yüklenmemesi) veya tanınmayan bir adresin girilmesi (A DBl.DBX 100.0 kodunda DB,l veya DBX 100.0'ın PLC'de oluşturulmaması) durumunda OB 121 çağnhr. Bloklar içerisine OB 121 yerieştirilip içerisine de yapılması gereken işlem yazılarak yüklenecek olursa program tarafından çalıştınldığı görülür. Eğer OB 121 oluşturulmamışsa, programlama hatası, işletim durumunu STOP konumuna dönüştürür.
PRoGRAİYILAMA HATAsl "oB"sİNİN (oB r21) PRoJELENDİRİLMES|
Projemize oB 121'i eklemeden bir program hatasl yaptlğlmlzda, örneğin oluşturmadığımız bir data blok'a veya data blok oluşturulsa bile data blok içerisinde ulaşılmak istenen adres oluşturulmamışsa sistem hatası oluşur ve PLC stop konumuna geçer. Ö cpu, E E
l ,\J]rOql]nı
[
iici !l
ıü:ll ta
nı !i
lE
ğbcİa
i]
2
/\5 /
dda
3qı| İ slt,lATlc gü3c E-ı cPu E&ı plb1
]ts Soucıs
İ
.-;
p
ü
(,
j\.
p
-X
tl (
fi,091
LAU/slL/FBD
[0B1
cpı] c\slM^TlC 300(1)\cPU Jl3L]
c F} E& İfı§ğt plc D.fug ıJi.fı oltİİE Yabü tl+ c, Ic.,,l €l D E9E_ E l5l
%#l!<>! |tr
İ|
İ EGl -
-5
ll-{4{)tr|J -İhl*?
tr
oB1 : Title:
ffiffi:
L T
Title: 10 DB 1.
DBIı
0
Yukarıdaki p@ede "DB1" oluşturulmadığı halde "OB'|" içerisinden "D81" veri yazılmaya çahşllmıştlr. işletim sisteminde böyle bir alan tanımlanmadığı için PLc stop konumuna geçer. Yine benzer şekilde "DBl"i oluşturarak örneğin 40 baytlık bir alan tanımlaması yaptlğımızl kabul edelim. yazdığımlz programda 40 bayttıan daha büyük bir alana ulaşılmaya çalışılacak olursa (Ömeğin L DBl.DBW 42) PLC yine "SF" verir. ll
r:
l]tr
r
X RUıl.P
P Eİ
PLC'nin SF ledi yanmış ve STOP konuma geçmiştir
srop xms l
Yaluz Eminoğlu
?5
PLC'nin s
konumuna
,l .5lMATlC
Fih Edt
unda örebiliriz.
Manager CpU c FLa l4cyJ optİrE window lblp
InEert
D ol lEr
F
e nedenini hata tam
ğl
Acc6§s Riqtts
Download
aonfiq!.e, . aofip e nnd tol^,nload obje.t§,
cpu c
<
NoFilteİ
YJ
>
ck}rt
ti+li c
ucoad *ation to PG, . , copr RaJıl to RoM, . Doı.,dod tjsel Proqram to llem(İy Card
E"
,
5nı,
r iır t/lemlrly ,],rld,
.
Retİie,r'e llom l'4erİgry Cnrd lı4anaEE Fl? 5y§lem
oisddy Accessible ilode!
.
ahan,
|,4ollule ldentiFi.aiion ,,
cPU !te§§ag6,
,
.
DislğY Fol(e val_Ğs n4onİol/in4odry
variablas llafdu,are Diagn
6tts
i"]i,]r9IFfilffjai,1:
PRoFlEU5
op€ratinq
E4 Etİğnct ıft*.
ılod€,.,
cbar/Re§et,
,
il-: cH+I
,
)
Hata tamponu ("Modüle lnformation Diagnostic Bufer") açıldığında tarih ve saat olarak CPU da RUN ve STOP il ili ol ıarln ka edildi rülür. Hata kayıtları incelendiğinde DB'nin Pğüi opeldiE üİ,.d..a üE CHJ: o STOP cg]cLsllülATlc ql rcPU 3lT st*ı.ıs fi Eno yüklenmemesinden TiİE systeflü | PeıfoffiaEa Dd. dolayı, PLC'nin stop I C",*ı*ıtm I St-l.s Di€rdb BuIt l GerEİd Maruy I Sca. qUı rlre konumuna gittiği EYtıts FillEI3eltin!§ görülür. a.tive T T Tinre inDludinq CPullocaltinrğ dilİerence "open Block" tlo TirE d Dde EvErt tıklandığında hataya 1 121&04.151Rti 03^]8/an8 Neı,,, §İa,tLp ,ıldmatim in STOP ırDde neden olan blok açılır 124&0445] PM mn]UaDg 5TOP cnu§€d B mt loaded d ] ],::!{,ll:Fij l;,]:.:]Ll tE i:t lrlEi Ve fare imleci ilgili satır 4 u.zu P1,4 B/l18/z)(E h stim fİdüı STAFTUP toEUN veya NW'e konumlanır. (E/@/a E H€q.Esl 5 121OO4,213 B,t ,r|arualıüaD ı.daıt 5 ? 8
Evert B rot lo# m
.l 0B: P.og.afir' ı9 €rrğ
Evğİ|D:
dlü
]6$
53A ı;l
0B l0Bl
z
Upılae
stop konumuna geçmişse aktif olur. sadece sF ledi yanmışsa aktif olmaz.
9
]
1
sdıhgs.. cb6e
"open Block" PLc
sTOPtosTABTUP
stdlup İrdfliation h STOP nDde Neıı{ danLp h'rlnitift in STOP nnde NeıA,
3 !a 25
nurter l nurüer 1 ddorİj d.İ*
Mode tİansilDn ftom 'd
m^E/aİ]8 03/ü/2m8
l218:04,243 PM l218:02455 PM
D6taas
E g
03/(E/20m
12:{8|04,243 PM
open Bbck
H€h
Eht
m EY.ıd Heh
Eğer projemize OB 121 eklersek yukarıdaki benzeri yaptığımız bir program hatasında OB 'l21 PLC'nin stop konumuna geçmesini engeller. PLC yine sistem hatası verir (SF ledi yanar) ancak stop konumuna geçmez. Program hatasl olu ştuğunda PLC'nin yapmasını istediğimiz fonksiyonları oB 121 içerisine yazılması gereki r.
Yawz Eninoğlu
vE
Örneğin hata oluştuğunda bir biti set yapmak istediğimizde OB 't21 içerisine aşağıdakine benzer bir program yazılabilir.
oB12].
"Programming Erro r"
:
ı{ett.ork
1
l TitIe:
sET }l
'-_ \ /
P|
as
i,l
§,nlv
i. aİ rh ır-t Rc bl, D
To*
c9l} aĞltErlı'
ı] lS| r .ı
+ J|(ııJ
lıı
}l*
bbbültİıİEltılİıi X
FnFa
r,a r
frr
trs
sT(P
]"Ml,
X
t İi5İ]E] lİrT-lF-= 76!a 32,1
f
0
rf r f rrp
0
0.0
M0.0 biti ister PLC üzerinde bir çıkış biti ile bir lambayı yakarak, ister operatör panel veya scada'ya bir tag olarak atanarak ekranda bir uyarıcı oluşturulabilir. OB 121 yüklenerek PLC çalıştırıldığında SF ledi yanar ancak STOP konumuna geçmez.
Bütün oB'lerde olduğu gibi oB 121'e ait deklarasyon tablosundaki parametreler program içerisinde izlenip kullanllabilir. cd*crıts ofl 'Envi.OErt\ İnterfa.e\TE f '
EETE}? a E o812ı]i E
08121
Aaıd|.aa,
rıo ! lı oB .t
1.o 2.o
oB121
: 'Proaraİina
[!!!ğ,
ritr",
15axx
P.iofi
l
Cl lo812l_sr_ FLT -l
}r(İE
Bunun için ilgili parametre CPU içerisinde istenen alana atanlr. llgili kod direK yazılabileceği gibi, kopyalanarak istenilen alana yapıştırılması kolayllk sağlar.
Eİ) ouT
Art|k parametrenin kopyalandığı hafıza alanı programcının yeteneklerine bağlı olarak istenildiği şekilde kullanılabilir. PLC içrisinde bir takım çıkışlar aktif edilebileceği gibi scada veya operEıtör panel ekranlna taşınabilir.
YeüE Emiaoğu
T7
OB 121'e ait deklarasyon tablosundaki Iokal veriler ve kullanım amaçları aşağıdaki
ibidir.
TlP BYTE BYTE BYTE BYTE BYTE
DEĞ|şKEN
oB121 oB121 oB121 oB121 oB121
EV cİ-Ass
sw
FLT
PRloRlw oB NUMBR BLK wPE
AçlKLAİüA Olay sınıfı Hata kodu (Aynntı aşağıda)
öncelik sınıfı OB numarası (121) Blok tipi; 8#16#88
8#16#8A B#16#8c B#16#8E
oB121 RESERVED
1
BYTE
ş
) ) )
oB,
DB,
Fc,
FB,
Hatalı alan tipi ve adresi 4 7.bitler,
)
0: bit, 1: byte, 2: word, 3: double word,
0
woRD
)
3.bitler, 0: l/o alanl, 1: (Pll) Giriş görüntü bellegi, 2: (PlQ) Çıkış görüntü bellegi, 3: Bit hafıza alanı, 4: Genel (Global) DB, 5: Özel (instance) DB, 6: loca| data, 7: local data,
oB121 FLT REG oB121 BLK NUM oB121 PRG ADDR
WoRD
Hatalı blok çağırmada hatalı modül numarası (S7 300 için geçer|i değil)
woRD
(S7 300 için geçedi değil)
oB121 DATE T|ME
DT
Hatanın oluştuğu, OB'nin çağrıldığı an.
'DATE AND TııiE" parametresinin kullanıml daha sonraki "Gerçek Zaman Saati" uygulamasında ayrıntılı olarak anlatılacaktır.
78
Yıvüz Emiaogu
Deklarasyon tablosundaki "oB121_sw_FLT" ile tanlmlanan aşağldaki hata kod tablosu OB12't'in çağrılma nedenini gösterir.
HATA
Kotİ,
g#lü21
Nryn BCD dönüşüm hatası oB12I_FLT_REG: llgi|i hafıza alanl numarasl (w#16#0000: Akü 1) Okunmaya çalışılan alanda boyut hatası
B#lü22 B#lü23 B#lü28 B#lü29 B#lü24
Yazllmaya çalışılan alanda boyut hatası okunmaya çalışılan 'pointeı" adresinin (lndirekt adres) bit değeri "O" değil Yazlmaya çalışılan 'pointef adresinin (lndireK adres) bit değeri "0" değil
wlü25
okunan veri uzunluk hatası yazılan veri uzunluk hatasl
B#1#27
Zamanlayıcı numara hatasl Sayıcı numara hatası
B#lü26
B#16#31
Yazma korumalı global data blok'a yazılamıyor Yazma korumalı özel data blok'a yazılamıyor
B#l6H.32
Global data blok numarasl hatall
B#16#33
özel data blok numarası hatalı
B#16#30
B#l#u
Fc numarasl hatall
B#16#3D
Çağrılan FB numarası hatalı Data blok yüklü d€il veya numarası hatalı FC yüklü değil veya numarası hatalı SFC yüklü değil veya numarası hatah
B#16#3E
FB yüklü değil veya numarası hatalı
B#16#3F
SFB yüklü değil veya numarası hatalı
8#16# 35
B#16#3A
B#16#3c
Ömeğin, herhangi bir program bloğunda yandaki işlem yaptırılmaya çalışılmış ve PLC sistem hatasl Vermiştir. 00121
: 'Proa.._ing E.6.'
ffi,rıtı",
.o"i
l_rl
|
|-
*,i
Cı
t-r.
gaE
r.
Eıl
.rrFF
L T
5.000000e+000 DB2.DBD 0
sistem hatasl sonraslnda oB 121 bloğu deklarasyon tablosu içerisindeki lokal veriler sorgulanarak program hatasına neden olan olay bulunabilir. Yandaki uygu|amada "OB1 21_SW_FLT" ile atanan "3a" değeri ile ulaşılmaya çalışılan DB'nin yüklenmediği ve "OB t2l_FLT_REG" alanına yazılan "2" değeri de hatall data blok numarasinln 2 olduğunu söylemektedir.
YırTz Eminoğlu
79
YE
P. VERİER|şİM HATASı "oB"sİ (oB122|
CPU'nun çalışması esnasında tanınan bir veri erişim hatrası oluştuğunda (Ömeğin herhangi bir sinyal modülüne ulaşılamıyorsa) işletim sistemi OB 122'y| çağırır. Eğer OB 122 oluşturulmamışsa, veri erişim hatası, işletim durumunu STOP konumuna dönüştiirür. Programlama ve veri erişim hatası OB'lerini, 36 dan 38'e kadar olan SFC'ler yardımı ile engelleyebilir, geciKirebilir ve tekrar serbest bıraktırabilirsiniz.
80
Yaılz
EmiDoğlu
V. KÜTÜPHANE FONKSİYONLARİ
(slsTEM VE STANDART FoNKslYoNLARI)
Sistem ve standart fonksiyonlar STEP 7 yazılımının kullanıcıya sunduğu kütüphane (Libraries/Bibliothek) kullanımlarından biridir. Kütüphane fonksiyonları, PLC üreticisi firma tarafından CPU içerisine veya programlama yazılımına eklenen programlardır. Bunlardan sistem fonksiyonları SFC veya SFB'|er CPU içerisindedir|er programln yüklenmesi sırasında ayrıca yüklenilmelerine gerek yoktur. Yine kütüphane içerisindeki FC ve FB'ler kullanılabilir. Bunların ayrıca yüklenilmeleri gerekir. Ayrıca bunların kullanllması durumunda kendi oluşturduğumuz FC ve FB numaralarıyla aynı olmamalıdır. Kütüphane içerikleri versiyonlara göre farklılıklar göstermekle beraber genel olarak aşağıdaki gibidir.
:J4
()pcn l)roje.t
Edds Lbüi.
U.a
|
sğeb Ed-tı
Ocp pe
acRAPH? B.d,dğr
l} ne*taı O
ıü,ğ!i.üıs
I
C:\Püocığn Fa.s\si.ritnsrsıep^s
o o o
|
sıı,tAI lc_NE T_cP
standüd Lihüy ddibu tv2|
a
7b.V
c:\PIqİğn Fa..\ŞbüğElsıeP^s?bs\{ lo M l ıo con
c:\Eoqİğn
c:\A.9lün
Fk\si€rlEİs\sbo^57t§v
F}.\saıt i.\sEp7\97ba!
c\Eogğn Flc.\sEtE §\st€p7\s 7ha\s c\Roqğİ Fa.ı\sifl l.fi §\sı.ç7\s 7libs\§ C\trql Fığ\s;ır€rE\sıepAS ?ll»k
,
r I,rr
d E E E
:
E -
sğr1Pb
Eoidı:
]i.
I
F8
H+l
"File)Open)Library" 57 300'de sistem ve standart fonksiyonlarına yukarlda gösterildiği gibi iki ayn yol ile ulaşllabilir. Kütüphanedeki bazı fonksiyonlar standart yazlhmla gelmiştir. Bazı fonksiyonlar ise sonradan yazıllmnlza eklediğiniz programlarla eklenmiştir. Örneğin, yukarıdaki "CP ftP" fonksiyonu PLC'ye eklenen seri haberleşme kartlna (cP 340) ait yazlhm ln yüklenmesi sonuQnda oluşmuştur. Yukarıdaki resimlerde de görüldüğü gibi farklı amaçlara yönelik fonksiyon kütüphaneleri mevcuttur. Yan taraftaki şekilde görüldüğü gibi genelde kullanılan sistem ve standart fonksiyonları "Standart Llbrary" altında verilmiştir. Bunlara ait ayrıntılı liste aşağıda açıklanmışhr.
Y8vUz EninoğIu
blo(k
Fc blo.k
sFB ock sFC
Hck
t![@ a
ı*_ftiple ııstances
o I I aI Eo oI
stdhbs
standard türary
sııınrıc_ırr_cı
neaındı* ıo cen Red,Jnda.ıt Io
(Vı)
enaeız
E ocPPtP E O sTt_Eook
I
cdıcd
t ew network
E a
sd..İ!d
Lb.ıiar]
l E a E E !
Herhangi bir program bloğunda; Program Elements "lnsert
)
Library"
E@
sFE blocl§
E]
SFC blocks
6
;ila E
ltİiple
)
in5tarüces
c19 EE L6raries
standörd Library system Function Block )ş-5/ Lonvertng ğEcKs ,, @ IEC Fun(tion Eo.kJ l] @ organization Blo.ks PtD contİol 8lock§ t!' !+i @ CqnmurİCation 8lo.k5
t!
@
ill
@
.-{
c E !.!:
:!
ç
@ @
TI-57 converthg Blocks l4EcellaneoıJs Blocks
5IMATIC_NET_cP Redundant Io cGP
81
System Function Blocks : S7'nin bize sunduğu SFC ve SFB'leri içerir. S5-S7 Conve(ing Blocks : STEP 5 program bloklarının STEP 7'ye dönüştürülme fonksiyonlarını içerir. : "lEC" fonksiyonlarını içerir, lEC Function : Standart OB'leri içerir. Organization : PlD ayarlayıcılar için FB ler içerir. PlD control : Merkezi olmayan çevresel birimler ile bağlanma ve Communication gerekli fonksiyonları içerir. habedeşme için Tl-S7 Converting Blocks : Tl (Texas lnstruments) PLC bloklarının S7'ye dönüştürülmüş halleri : Çeşitli bloklar Miscellaneous
Blocks Blocks Blocks Blocks B|ocks
Kütüphane fonksiyonlarl program elemanlarl kütüphanesinde ister tipi ve numarası ile Gustomized ister fonksiyonuna göre gruplar halinde listelenebilir. Bu işlem "Options Llbraries" altından yapılır.
)
)
oİr k |sıt IuD,.Ik l§.EIs.Er-| ğo.b a e&6. a n.,
e ts
cy6
ıc f(
Ffu-üğa,uD@)
I lffi--=
*|
ı<
|E;n.----
Ea..et @.$gbıgt o a r.ce6 a ı.rd.dlE6 BtIr.. ua16 eafu(üq ç a M(&Etrkh
] ]
6an.9.offitkb @ğ.Dcful3e da:c.renk6 6a,d6İid^o..! E& o_(cc -9o F iı.l agoMrı
* |* |@,İ
_
9
ı
^,*
a2
.6.*r^-d.]
Yavuz Enircğlu
!
I
5|
lçE--l
,-|
|rEffi
fu|
ls"_l fu'd
rrela,uo/Flo
Eis;r9.--3
iE_E----=
|t d
-=
lhh----
lnlE ,,+
l
PLc PRoGRAMI-AMA VE s7 ]@/400_2
FoN KslYoNt-ARr
A. slsTE]t FoNKSıYoNLARı (sFc)
PLC programlarında sıkça kullanılacağı düşünü|en birtakım programlar üretici firmalar tarafından plc ile birlikte sunulmaktadlr. sistem ve standart modülleri kullanmak cpu bel|eğinde biz azalma meydana getirmez, onlar zaten orada var. Ayrıca bunların yüklenmesine de gerek yoktur.
Bu program modüllerinin içeriğini görmek mümkün değildir (korumalıdır), ancak Parametrelendirilerek kullanılabilir. Parametre değerleri yardım menülerinden veya kullanma kılawzlarından alınabilir.
sistem fonksiyon ve fonksiyon bloklarl ana başllklar olarak şunlardır. Sistem ve standart fonksiyonlarının tamamı bütün CPU'larda yoktur. Örneğin; - : CPU 314'de var olan fonksiyonlar
KOPYALAMA VE MODÜL FONKS|YONLARİ sFc 20 ,BLKMoV" 'Bir haJıza alanının
sFc
*Bir
"FlLL"
21
sFc 22 ,CREAT
hafıza alanının içeriğindeki veriyi başka bir hafıza alanına doldurulur. DB"
sFc 23 ,DEL DB, sFc 24 TEST DB, sFc 25 ,coMPREss" l
SFC,+4
içeriğini başka bir hafıza alanına kopyalar.
"REPL VAL"
'Alt ve üst sınır "DB numaralarını" ve "veri alanı" genişliğini belirlediğimiz bir'DB' oluşturur. Numarasını girdiğimiz'DB"yi si|er Numarasını girdiğimiz "DB'yi test eder. Data modüllede çalışırken silme ve yeniden yükleme sırasında oluşan boşlukların kullanılabilir hale getirmek için slklştlrır. *Akü 1'in yedeğini kopyalar.
PRoGRAİ! KoNTRoL sısTEts FoNKslYoNLARl sFc 43 "RE TRIGR, -Çewim süresi izlemeyi yeniden
sFc 46 "sTP, sFc sFc
47 35
'\,VAlT"
,MP ALM"
start eder. Parametrelendirilmemiştir ve hata bi|gileri vermez. ""CPU" işletim durumunu "STOP' konumuna getirir Parametrelendirilmemiştir ve hata bilgileri vermez. 'Kullanıcı pr9g9rn!n!n çalışmasını 32767 ps'ye kadar geciktirir.
Çoklu hesaplama alarmları
Yavuz Eminoğlu
83
PLC PROGRAMLAMA VF. s7
Kü
300/400_2
NF.
PoNKsiYoNlnRI
GERÇEK ZAMAN SAATİ KULLANİM| -CPU'ya ait tarih ve zaman saatini set (DT#...ile) eder ve saat o andan itibaren normal çalışmasına devam eder. *CPU'nun gerçek zamana ait tarih ve saati okur. "READ cL "sNc RTCB" Master Ve Slave CPU'lar arasında gerçek zaman senkronizasyonunu sağlar. Master CPU'da "S FC 48" ile senkronizasyon ve "SFC 0' ile saat set edilir.
T cLK,
SFc 0
sFc sFc
1
48
lşLETıi, sAATl sAYıcısıNıN KULLANıMı sFc 2 ,sET RTM, |- İşletim saati sayıcısının
sFc
3
"cTRL_RTM"
sFc
4
l[ie4o_nrıvı;
set edilmesi (saat olarak).Bir başlangıç değerine set edilebilir. 32767 Saate kadar sayar, bu değerin üzerinde durup uyarı verir. "İşletim saati sayıcısının start Veya stop edilmesi. Stop sırasında sayıcı da durur, yeniden Fltş mada kaldığı yerden devam eder. -işletim saati saylclslnln saat olarak okunması
SİSTEM SAATİNİN OKUNİIASİ sFc 64 "TIME TcK" tsistem saatinin okunma sı.CPU'nun çalışmaya başladığı and an itibaren çallşma süresini T|ME (ms) cinsinden verir. 57-300 d e cPU kapandlğ| anda sıfı rlanır. S7-400 de hafızaya alınabilir.
SAAT ALARı'LARıı{ıN Ku LLANıı'ı
,sET
SFc 28 ls5q
sFc sFc
zs 30 31
TINT"
"Saat alarmının ayarlanması -saat alarmı nın iptal edilmesi *saat alarmlnln aktif edilmesi
|"cnrı_-rııır" "AcT TINT" "QRY_TlNT, *Saat alarmının sorgulanması
GEc|KTıRME ALARMLAR|NıN KULLANl]tlı
sFC 32 "sRT DINT, *Geciktirme alarmının SFc 33 ,cAN D lNT" -Geciktirme alarmının r|
sFc
"QRY_DlNT,
34
start edilmesi
iptal edilmesi -Geciktirme alarm ının sorgulanması
SENKRON HATALAR|NİN KULLANİMl
sFc sFc sFc
u
36 37
38
[,;
MsK
FLT"
*senkron hatalarının maskelenmesi
[o14şx_rii' "senkron t
hata maskele rinin kaldırılması
"READ_ERR" -O!ay durum registerinin okunması
Yatu
Eminoğlu
ALARM VE ASENKRoN HATALARI}IıN KuLLANıillı sFc 39 "Dls lRT, 'Yeni alarm ve asenkron hatalarının işlenmesi ve engellenmesi ,EN *Yeni alarm ve asenkron hatalarının işlenmesi ve serbest lRT" SFc 40
sFc
41
"Dls A|RT"
bırakılması *Öncelikli alarm ve asenkron hatalarının işlenmesi ve geciktirilmesi
sFc
42
"EN AIRT"
@hatalarının
işlenmesi ve serbest
[bırakılmas SİSTEM HATALARİ
sFc sFc sFc
6 51
52
,RD slNFo" "RDsYssT"
[]ul_usuqe'
-Aktüel "OB"lerin stıart bilgilerinin okunması. *sistem durum listesinin Veya listeden ayrılanların okunmasl ]|]]91ırnllqFn olaylan CPU'nun hata belleğine yazar
PROSES RESİilLERİN|N GÜİÜCELLEŞTİRİLİIESİ VE BİT ALAİ{İ ÇALİŞMALARİ sFc 26 ,UPDAT Pr Girişlere ait proses resminin güncelleştirilmesi ait proses resminin güncelleştirilmesi sFc 27 ,UPDAT_Po,
sFc sFc
79 80
sFB 32
,sEr
,RsET, ,DRUM,
Çıkışlara
Çewesel alanlardaki bit alanlarlnln set edilmesi
ilşq.!9!eıqe!Lpi'clrr,|"1!nreseteOlmesi Adımlayıcı oluşturma
]UIoDÜLLER|N ADREsLENDıRlLtUlEsl
sFc 5 "GADR LGc, sFc 49 "LGc GADR, sFc 50 "RD_LGADR"
Bir sinyal modülünün lojik adresinin bulunması -Lojik adresi bilinen bir sinyal modü lünün takıldığı yerin bulunması -Bir modülün tam lojik adresinin bulunması
DoNANıİlı @1nxszl oL],AYAN çEVRE
slq
sFc sFc sFc
7
bir proses alarmınln seöest blrakllmasl t: DP Mastefda L,DP_fRAL" 13 "DPNRM DG" "DP slave" ait teşhis verilerinin okunması 14 "DPRD DAr 'Dp slave' ait etkin verilerin okunması P slave" ait etkin verilerin yazılması 15 "DPWR DAr
p
Yaüuz Eninoğlu
85
@ DOL PARAİiETRELERIN|ı{ sFc
55
SFc 56 SFc 57
sFc sFc
YAzlLıP oKuNMAsı
nVR PARM" Parametrelerin yazllmasI \,VR DPARM" Default (önceden tanımlı) parametrelerin yazılması "PARM MoD" tM odüllerin parametrelendirilmesi
REc,
58
"\^/R
58
"RD RE
]
Parametrelendirilmiş modüllerde değerlerin kaydedilmesi
]I% rametrelendirilmiş
modüllerde değerlerin okunması
GLOBALVERİ HABERLEŞİiES|
sFc sFc
sııo
60
"GD
61
"GD RcV"
-[9baı9!!9a verilerin Global
gjlq9amesi alınması
PROJELENDİR|LMEM|Ş BAĞLANTİLARDA HABERLEŞME
sFc sFc sFc
65 66
,X SEND" ,X RcV,
sFc
69
"X GET' "X PUT" ,X ABoRT,
sFc sFc sFc
72
,l
67
SFc 68
73 74
,
GET" PUT,
"l ,l ABoRT"
-Habedeştiği birimin dışında bir S-7 istasyonuna bilgi göndermek -Haber|eştiği birimin dlşında bir S-7 istasyonundan bilgi almak -Haber|eştiği birimin dlşlnda bir S-7 istasyonundan bilgi okumak -Haber|eştiği birimin dışında bir S-7 istasyonuna bilgi yazmak
-Haber|eştiği birimin dışında bir S_7 istasyonunu ile habedeşmeyi kesmek -Haberleştiği birimin içinde bir S-7 istasyonundan bi|gi okumak tHaberleştiği birimin içinde bir S-7 istasyonuna bilgi yazmak -Haberleştiği birimin içinde bir s-7 istasyonunu ile haber|eşmeyi kesmek
"SFC"LERDE HATA GÖSTERGESİ Programa entegre edilen bir çok'SFC'nin çalıştırılmasında hata olup olmadığı veya
hata varsa hatanın nerede olduğunu takip edebilmek amacıyla bir word'luk alanda "RET_VAL" parametresi ile hata uyarıları verilir. Bu uyarı genel an|amlar içerebildiği gibi o "SFC"ye ait özel anlamları da olabilir.
RET_VAL
8 X
= W#16#
8xüz
Hata oluştuğuna ait göstergedir. "0" ise hata yoktur. x = 0; SFC ye özel hata x > 0; genel hata y,z: Olay veya hata numarası gibi çok kaba tanımlanabilir. Bu konuya ayrıntılar kullanılan "SFC" ye ait yardım menülerinden veya "S7-30O için sistem ve Standart FonksiyonIar' kitapçığından bulunabilir.
86
:
:
Yavuz Erninoğju
KıTn',PHANE FoNKsfYoNI-ıR]
Prc PRoGRAMLAMA VE s7
B. slsTEM Foİ{KsİYoN MoDÜLLERİ (sFB)
Aşağıda SFB'lerden bazılarına ait bilgiler verilmiştir. SFB'lerin tamamı ve ayrınt|lı bilgiler
"SlEMENS" kullanma kılawzlarından, "SlUAT|C MANAGER" yardım menülerinden veya "sıEtUlENs" sitesinde yaylnlanan katalog V.b temin edilebilir.
"ıEc" zAİtAİ{ ELEtçAilı vE SAYıGıLARı sFB 0 "cTU" lleri sayıcı Geri sayıcı sFB 1 "cTD, lleri - geri sayıcı sFB 2 "cTuD, sFB 3 lmpuls oluşturma "TP" ,ToN, Açma gecikmeli zaman elemanı oluşturma SFB 4 ,ToF, Kapama gecikmeli zaman elemanl oluşturma sFB 5 PROJELEilDİRİLi,ÜİŞ BAĞLAİİT|LARDA HABERLEŞME
sFB SFB sFB sFB sFB sFB sFB sFB sFB sFB
8 9 12 13 14
Düzensiz verilerin gönderilmesi
,BsEND"
Düzensiz verilerin alınması Blok verilerin gönderilmesi
,URc\r
,BRc\r
Blok verilerin alınması
,GET,
Uzak bir CPU'dan bilgi okuma Uzak bir CPU'ya bilgi yazma
16
"PuT ,PRlNT
YaAclya bilgi gönderme
19
"sTARr
Aynl ağ sisteminde, belirli adresteki cihazln start edilmesi
15
20 21
sFB22 sFB 23
sFc
"UsEND"
62
Aynı ağ sisteminde, belirli adresteki cihazın stop edilmesi "sToP" "RESUME" Aynl ağ sisteminde, belir|i adresteki cihazın yeniden start edilmesi !
STATUS, Aynı ;
ağ sistemindeki bir cihazın durumu sorgulanarak paramebelendirilmesi
,UsTATUs" lağ sistemindeki bir cihazın durumunun alınması ,coNTRoL" Haber|eşme "SFB'lerine ait bağlantı durumlarının sorgulanması
ftoDÜL uYARıLARı oLuşTuRtAK sFB sFB sFB sFB sFB
33
sFc sFc sFc
10
34 35 36 37
9 17
sFc,18
sFc
19
Onay göstergeli modül uyarısı oluşturmak ALARM ,AI-ARM 8, 8 sinyal için bir değer oluşturmayan modül uyarısı oluşturmak "AtARM_8P, 8 sinyal için bir değer oluşturan modül uyarısı oluşturmak ,NoTl Onay göstergesiz modül uyarısı oluşturmak
,AR SEND" ,Dls_MsG"
bilgilerinin gönderilmesi
Modül, sembol ve hat uyarılarını kapatmak Modül, sembol ve hat uyanlannl seöest blrakmak
"EN MsG" "ALARM sQ" Onaylanabilir modül uyarısı oluşturmak ,ALARM s" Sürekli onayll modül uyarısı oluşturmak ,ALARM sc" Son 'ALARM SQ'nun ona y durumunun araştırılması Y.uE Eninodu
87
C. STANDART FONKSIYONLAR
Kütüphane fonksiyonlarından bazılarını şimdiye kadar kullandık, bazılarını ileriki konularda kullanacağız. Şimdi "lEC" (lntemational Electrotechnical Commission) fonksiyonlarını kullanacağız. Bunlar; zaman, sayma, tarih, karşılaştırma, en büyük ve en küçüğün seçilmesi gibi işlemleri gerçekleştiren SFB, sFc, Fc, FB'lerdir. "lEC" zaman elemanlarl ve sayıcılan da sistem fonksiyonlarl (SFC) ve sistem fonksiyon modülleri (SFB) gibi parametrelendirilerek kullanılırlar. "SFB'oldukları için bir "DB" ile birlikte çağrılmalıdırlar. Bu amaçla kullanılan DB'lerin PLC'ye yüklenmesi unutulmamalıdır. Standart fonksiyonlardan bir grupta sistem fonksiyonu özel|iğinde olmayan, yani başında "S" olmayan fonksiyon veya fonksiyon bloklarıdır. Bunların kullanımında dikkat edilmesi gereken en önemli nokta bu programların CPU içerisinde olmaması nedeniyle yüklenme zorunluluğudur.
1. ,lEc" sAYıclLARl "lEc" _ sFB
0 lLERl
sAYlcı
sFB 0, DBo CU :=l 124,0 R :=l 124.1 PV :=5 O := 125.0 CV :=MW10
CALL
CU : lleri sayma daöesi
R : Reset darbesi PV : Kıyaslama değeri Q : Kıyaslama sonucu;
CV > PV ise Q = "'t" diğertürlü "0" CV : Sayıcl içeriği ("o"dan 32767 ye kadal)
Daha önce sayıcılar konusunda da işlediğimiz gibi siemens'in standart sayıcılarının (C0 C64) kullanımında alışık olmadığımız bir durum vardır. Sayıcı içerisinde bir değer varsa "Q" çıkış| '1", sayıcı içeriği sıfırsa "Q" çıkışı "O'dır. SFB O'da ise (ileri sayıcıda) bir set değeri yüklenmişse, ileri sayma darbesi her geldiğinde sayıcı içeriği bir artar, ancak "Q" çıkışı "0'dır. Sayıcı içeriği set değerine ulaşilğlnda, 'Q" çıkışı ',1" olur.
)
,lEc" - sFB l GER| sAYıcı
sFB ,|, DB1 CD :=l 124.2 LOAD:=I 124.3 PV :=5 Q :=Q 125.'l CV :=MW'l4
CALL
"ıEc" - sFB
2 ıLER| -
sFB 2,DB2 CU :=l 124.4 CD :=l 124.5 R :=l 124.6 LOAD:=I 124.7 PV :=5 QU :=Q 125.2 QD :=Q 125.3 CV :=MW16
CALL
88
CD :Geri sayma darbesi LOAD : 'P\i değerine sayıcıyı setler PV :Setdeğeri O : Kıyaslama sonucu; CV < 0 ise Q = "1" diğer türlü '0' CV : Sayıcı içeriği (- 32768 den 32767 ye kadar) GERı sAYıcl
CU : lleri sayma darbesi CD : Geri sayma darbesi R : Reset darbesi LoAD: 'P\f değerine saylclyl setler PV :Setdeğeri QU : Kıyaslama sonucu; CV 2 PV ise QU = "'1' diğer türlü "0" QD : Kıyaslama sonucu; CV < 0 ise QD = "1" diğer ttirlü "0" CV : Sayıcı içeriği (-32768 den 32767ye kadar) Yaılz
Eminoğlu
2
2. ,ıEc, zAırAİ{ ELEMANLARı
"lEC' zaman elemanları ile çalışmanın standart SlMAT|C zaman elemanlarına göre bir taklm avantajları vardır. Bunlar; Zaman birimini "ms" olarak verilebilir. T#l ms ileT#AD_20H_3lt{_23s_647ıUls (24 gün, 20 saat, 31 dakika, 23 saniye, 647 milisaniye) ye aralığa kadar süre yazılabilir.
-
"ıEc" - sFB CALL
lN PT O ET
3
uzATıLMış İtUüPuLs (Pulse Timer.SE" gibi)
sFB
3, DB3 :=l 125.0 :=T#3S :=Q 125.4 :=MD4
lN :Start
PT : TIME' olarak verilen süre : Bit olarak zaman elemanı çıkışı (Start impu|su ile "1" süre sonunda "0") ET : Sayısal olarak zaman elemanı içeriği
Q
"ıEc" . sFB.ı GlRlşıN GEcıKrlRıLtEsl (on-De|ay Timer,SD CALL
lN PT O ET
SFB
4, DB4
:=l 125.1
:=T#3S
:=Q'125.5 :=MDO
lN : Start PT : TIME" olarak verilen süre Q : Bit olarak zaman elemanı içeriği (Ayar|anan süre sonunda "1,) ET: Sayısal olarak zaman elemanı içeriği
çıKışıı{ GEcİıClRlLttEsİ (otr-Delay CALL sFB 5, DBs lN :Start
"ıEc" - sFB
lN PT O ET
5
:=l 125,2
:=T#3S :=Q 125.6
:=MD8
,gibi)
Timer "SF. gibi)
PT : TIME" olarak verilen süre : Bit olarak zaman elemanı içeriği (Start gittikten ayarlanan süre sonunda "0") ET : Sayısal olarak zaman elemanı içeriği
Q
Yatuz Eminoğlıl
89
3. "lEc" FoNKsıYoNLARl
("lEC"= lnternational Electrotechnical commision) "lEC' fonksiyonları özellikle 32 bit genişliğinden daha bünik veri tipleri ile çalışırken önem kazanmaktadır. Şu ana kadarki bütün işlemlerimizi 'AKÜ"ler yardımı ile ha|letniştik. Ancak Akü büyüklüklerimiz 32 bit olduğu için 32 bitten daha geniş verilerle çalışma şanslmlz olmadl. Bu fonksiyonlarda yine diğer sistem ve standart fonksiyonlarda olduğu gibi bize hazır olarak sunulmuştur. Bunları kullanabilmek için
"SltylATlC lianagor ) Flle ) Open ) Llbraries ) Standart Library ) lEC Functions Blocks"den veya herhangi bir program bloğunda program elemanları kütüphanesinden programımıza kopyalanmah ve CPU'ya yüklenmelidir. Programımızda bizim oluşturduğumuz aynl numaralı başka fonksiyon olmamasına özen gösterilmelidir.
"ıEc" zAİılAN FoN KSıYoNLARı "D_ToD_Dr 'DATE've 'TIME_OF_DAY zaman verilerini "Dfde toplar Fc3
Fc6 Fc7 Fc8
Fc 33 Fc 40
,DT_DATE,
,DT_DAY,
"DT'den "DATE" zaman değerini çıkarır 'DT"den günleri çıkarır
"DT ToD" ,S5Tl TlM"
'DT"den "TlME_OF_DAY'i çıkarır "S5TlME" türü zaman değerini TlME'tünine dönüştürür
,
'TIME" tünı zaman değerini
TlM ssTl,
'ssTlME'
türüne dönüştürür.
Fc1
,AD_DT_TM,
Zaman süresini bir zaman değeri ile toplar
Fc 35 Fc 34
"sB DT TM,
Zaman süresini bir zaman değerinden çıkanr
"SB DT
Iki
Dr
zaman değerini biöirinden çıkarır
"DATE_AND_TıİIE, DEĞİşKENLERİı{ KARşıLAşT|RıLilASı
Fc9 Fc Fc Fc
12 14
18
Fc23 Fc28
,EQ Dr ,GE DT, ,GT DT" ,LE DT" ,LT DT ,NE DT,
Eşitliğin klyaslanmasl Büyük veya eşitliğin kıyaslanması
Büyüklüğün kıyaslanması Küçük veya eşitliğin kıyaslanması Küçüklüğün kıyaslanması Eşitsizliğin kıyaslanması
,STRıNG, DEĞİşKE}ILERIN KARşıLAşTıRıLİIASı
Fc 10 Fc 13 Fc,t5 FC,l9 Fc24
Fc29
90
,EQ STRNG"
,GE
STRNG
Eşit|iğin kıyaslanması "
"GT STRNG, "LE STRNG, "LT STRNG "
,NE STRNG"
Büyük veya eşitliğin kıyaslanması
Büyüklüğün kıyaslanmasl Küçük veya eşitliğin kıyaslanması Küçüklüğün kıyaslanması Eşitsizliğin kıyaslanması
Yavuz Eminoğtu
"STRıNG- DEĞ|şKENLERLE çALışıJIA ,LEN, Fc 21 Bir 'STRlNG' dizisinde aktüel (geçer|i) karaKer uzunl uğunu verir "LEFT" Fc 20 Bir "STRING" dizisinde sol taraf karakter dizisini verir. ,RlGHT Fc32 " Bir "STRlNG" dizisinde
Fc26
sağ taraf karakter dizisini verir.
"MlD,
Fc2
,coNcAD,
Fc
17
"lNsERr
31
"DELETE, "REPLEcE"
11
"FlND"
Fc4 Fc Fc
Bir 'STRlNG" dizisinde orta taraf karakter dizisini verir.
lki'sTRlNG' değişkenini birleştirir. Bir "STRlNG" değişkenini yaplştlrlr. Bir "STRING" değişkenini siler.
Bir'STRING' değişkenini değiştirir Bir "STRlNG" değişkenini bulur.
FoRtAT DÖı{OşTuRilE ,l STRNG" "lNrtip i değişkenin 'STRlNG' Fc 16
Fc5
,Dl
Fc Fc Fc Fc
,STRNG Dl" 'STR|NG" ,STRNG R" "STRING"
30 38 37 39
STRNG1 "DlNT tipi değişkenin "STRlNG" tipi değişkene dönüştürülmesi "R STRNG, "REAL" tipi değişkenin'STRlNG" tipi değişkene dönü ştürülmesi ,STRNG r "STRlNG" tipi değişkenin'lNT" tipi değişkene dönü ştürülmesi
]U!ATEi!ATıK FoNKsıYoNLA,Rl ,LlMlT" Fc22 Bir gi.iş
Fc25 Fc27 Fc 36
tipi değişkene dönüştürülmesi
,MAX, ,MlN"
,SEL,
üpi değişkenin'DlNT" tipi değişkene dönüştürülmesi tipi değişkenin "REAL" tipi değişkene dönüştürülmesi
değerini iki sınır değeri arasında sınırlandırır.
Üç değişken değerinden en büyüğünü seçer Üç değişken değerinden en küçüğünü seçer I
ki değişken değerini bir anahtara bağlı o|arak seçer.
Yavuz Eminoğlu
91
D.
Tl€7 DÖNÜşTÜRME BLoKLAR|
Tl (Texas lnstruments) program bloklarınln S7 300'e dönüştürülmüş şekilleridir.
Fc80
ToPLAMAL| oN DELAY zAMANLAYlcl lNDlREKT BLoK TAŞ|MA ÇlKlŞLAR| REsETLEME
Fc81
Fc82
çlKlŞLARl SETLEME TABLOYA EKLEME TABLoYA lLK G|REN VER|N|N AL|NMAS| TABLODA BULMA
TABLoYA SoN G|REN VER|N|N AL|NMAS| TABLO FONKS|YONU TABLoDAK| VERlYl woRD DE ĞlŞKENlNE TAŞlMA WORD KAYD|RMA woRD DEĞlŞKENlNl TABLoYA TAŞlMA
Fc83 Fc84 FC85 Fc86 Fc87 Fc88 Fc89 Fc90 Fcg1
ToNR lBLKMoV RsET sET ATT
FlFo TBL_FlND
LlFo TBL
TBL WRD WSR
wRD TBL sHRB sEG
KODLAMA FONKS|YONU KOD ÇÖZME FONKS|YONU ONA TAMLAMA FONKS|YONU BlT sAYlSlNl ToPLAMA çlKlŞLARl ANlNDA RESETLEME
Fc92 Fc93 Fc94 Fc95 Fc96 Fc97 Fc98 Fc99 Fc100
çlKlşLARl ANlNDA SETLEME
Fc,101
BlTsuM RsETl sETl
STANDART SAPMA FONKS|YONU
Fc102
DEV
iLiŞKiLENDlRiLMiŞ VERl TABLosU TABLODAN TABLOYA |ŞLEM FONKSIYONU
Fc,t03
Fc104
cDT TBL TBL
SKALAMA FONKS|YONU UNSKALAMA FONKS|YONU ANALOG ALGOR|TMA FONKS|YON BLOĞU ALARM zAMANLAYlcl FoNKslYoN BLoĞU MoToR KoNTRoL ALARM ZAMANLAYlclsl MATRls KARŞ|LAŞT|RMA FoNKslYoN BLoĞU TARAMA MATR|S KARŞ|LAŞT|RMA FoNKsiYoN BLoĞU DRUM FONKSIYON BLOĞU VER| PAKETLEME FONKSIYON BLOĞU
Fcl05
scALE
Fc106
FB83
UNsCALE LEAD LAG DcAT McAT lMc
FB84
sMc
FB85
DRUM
F886
PAcK
BlT KAYD|RMA YED| SEGMENT KOD ÇÖZÜCÜ
nscıı oeĞenlııi HEX DEĞER|NE DÖNÜşTÜRME HEX DEĞER| Ascll DEĞER|NE DÖNÜŞTÜRME
92
Yatuz Eminoğlu
FB80 F881
FB82
ATH HTA
ENco DEco BcDcPL
PLC PROGRAMLAMA VE s7 30o/4oc2
KÜTÜPHANE FONKSlYONLAR]
E. BAzl KOTOPHANE FoNKslYoN uYGuLAMALAR|
sFc
20
"BLKilow" BLoK KoPYA|-A]U!A
CALL "BLKMoV, SRCBLK :=P#DB1.DBX 0.0 BYTE
32 bitten daha uzun verilerin taşınmasında kullanılır. "sRcBLK" ile kaynak, "DsTBLK" ile hedef tanımlanır. "RET_VAL" bilindiği gibi RET_VAL,=Mwo hatia kodudur. DSTBLK :=P#DB2.DBX 0.0 BYTE 't00 Veriler "ANY" türünde veri ile tanlmlanabilir. Kaynak ve hedef bölgeler data blok, slczo memory, inpuUoutput alanları olabilir. P#DBI.DBX0.0 BYTE 30 EI P#l 0.0 woRD 30 P#M 100.0 DWoRD 40 P,DDl.DEx 0.0 BYTE 100_5RCDLİ RlT vA! u€ P#M 0.0 BooL 40 // Bool tipinde verilerde taşlnabilir ancak veri uzunluğu bayt PfDE2. DBx 0.0 t uzunluğunda (8 bit ve katlarında) olmak DETEl,x BrtE 100 zorundadlr. ANY: 'Pointer formatında, veri tipi ve uzunluğu belirtilen bir parametre tipidir. Yukanda açıklandığı gibi bool, byte, word, dword olarak l, Q, M, D, L tipinde ve uzunluk belirtilerek tanımlanır. ,100
ZA]IIANLAYıCıLAR ıLE ıLGıLı KÜTÜ PHAN E Foı.lKsıYoN LARı "Simatlc ilanager" programında daha önce incelediğimiz SFB'lerin (3-4-5) dışında "Tl_S7 Converting Blocks"lar içindeki FC 80 de toplamalı/hafızalı bir ON DELAY zaman fonksiyonu içerir.
CALL "ToNR" TMR_EN
RESET
PV
:=1124.0 :=1124.1
:=L#111
DELTA_T :=tiOB,t_PREV_CYCLE :=Q124.0 :=MD100
O ET
ğc8o
Tüer on Delay E
I124.0
Eı
l|z4. r
T
o124.0
!*111 'oE
1_PREv_c
Ec!E
T
"ms" olarak zaman değerinin yazılabildiği "Retentlv On - Delay" zamanlaylcl. "TUR_EN" girişine uygulanan sinyal ile "PV" girişine "ms" olarak yazılan değeri kadar sonra "Q" çıkışı "1" değerine yükselir. Süre dolmadan giriş sinyalinin (TMR_EN) kesilip yeniden gelmesi durumunda süre kaldığı yerden devam eder. "RESET" girişine uygulanan "1" sinyali çlklşl siler. Zamanlayıcı içeriği "ET" içerisinden izlenebilir. 'DELTA_T" alanlna oB 1 çevrim süresi yazılmalıdır. Bu değer OB 't DEKLAMSYON tablosu içerisinden alınmalıdır.
1.1D100
YalTz Eİninoğlu
93
KÜTÜPHANE FONKsiYONI-ARI
PLc PRmRAMI-AMA VE s7 3m/4oG2
ALARltl ZAlrAN LAYlGl LAR| "Tl_S7 Converting Blocks"larİçindeki FB 81 (DCAD)
FB 82 (lrCAD) bir işin, o iş için ayrılan süre içerisinde yapılıp yapılmadığı denetler. O süre içerisinde yapılmamışsa bir çıkışı /
aRifleştirir.
GlR|şLER
DB8l FB81
EN "l
Discrete contEol Ala r0.0
l rınEr
Elı I0,1-cMD I0 . 2 _o_PB
I0.3 -c FB
'DCAT,
0.0"
:
Fonksiyon aktifleştirme
cMD'l 0.1" :Adkapa O_FB "l 0.2" :Açık C_FB "l0.3" : Kapa|ı
Em
ENo
çıKışLAR
Q "O0.0" : Açılıyor/kapanıyor OA "Q0.1' ,. Zamanında açılmadı CA "Q0.2" : Zamanında kapanmadı
o0.0
t o0.1 cA t .2 oA
oo
Fonksiyon b|oğunu aktifleştirdiğimizde (Eil "l0.0"=l) ilgili data b|ok içerisindeki ET değeri "ms" olarak saymaya başlar Ve PT değerine eriştiğinde fonksiyon bloğunun görevini yerine getirip getirmediğini kontro| eder. Eğer görev istenilen zamanda yerine getirilmezse ilgili alarm çıkışı "1" olur. Örneğin bir vananın zamanında açılıp açılmadığını kontrol etmek isteye|im. CMD "l0.1" ginşi "1" yapılarak, Q "Q0.0" çıkışının "l" olması sağlanır ve vana açılmaya başlar. Vananın maksimum açılma süresi o|arak belir|enen ve ilişkili data blok içerisindeki "PT" ile "ms" cinsinden tanımlanan süre içerisinde vana açılıp O_FB "l 0.2" girişi "'|" olmazsa, zamanlnda açılmadı alarm çıkışl (oA "o0.1) "1" olur. Alarm çıkışı ilgili giriş sinyali geldiğinde "0" olur. FB 82 (MGAD) fonksiyon DBBz bloğu O_CMD veya C_CiiD PBB2 Motor AontEo.1 girişinden "1" sinyali verildiğinde AIarİn Tiner o sinyalin yapması gereken işi T1.0 "'llcAT " zamanında tamamlayıp EN ENo tamamlayamadlğınl kontrol 11-.l oa-o eder. oo "vana_aciliyor " "vana ac"-o cMD Eğer yapması gereken işlemi IL.2 01- 1 zaman ı nda gerçekleştirmezse co "vana kapaniyor " "van6_kaPa'-c_cüD ilgili alarm çıkışı "1" olur. Buradaki zaman ayarı yine 11.3-s cMD aL-z oA "vana acilmadi " ilişkilendirilmiş data bloğundaki I1- 4 "PT" alanına "ms" cinsinden 01- 3 "vana acik" -o FB girilir.
t
I1- 5
"Vana_kaPaJ'r " -c_FB
94
t t "vana_kaPanradi " 01t 4
Yavuz Eninoğlu
PLG,Yı sToP ETTıRı'E
A l JCN
"SFC.|6" PLC'yi 'STOP" konumuna
124.0
götürür.
atla
CALL ,sTP,
atla:
A l = O
//
sFc
"EN" (l 124.0) uyarıldığında "SFC 46" çağn|arak PLC stop'a geçirilir.
46
124.1
124.0
I124.0
"sTP"
Er
Elto
Orneğin mesai bittiğinde PLC'nin durmasını istiyorsak, TOD ile kaşılaştırılan bir zaman ile elde edilen sinyal "EN" girişine bağlanarak PLC'yi durdurabilir.
lııoexl "ı "ı-enlıı snyısıııı BuLilıA
BlR "Dw" ALANı I0.0
Fc99
EN ı,tDo
-IN
RET
Eİ{o vA.İJ
Mh,4
"Tl_S7 Converting Bıocks"larlndan FC 99, "lN" alanına yazılan "DW" uzunluğundaki alan içerisindeki "1"lerin toplam sayısını "RET_VAL" alanında hegzadesimal olarak verir. Örneğin her parçanın bir sensör ile denetlendiği bir bant üzerindeki toplam parça saylsl bulunabilir.
BlR GRUP HAFIZA BıTıNhl sETLENlP.REsETLENtsEsl
A l JNB
124.0
"Tl_S7 Converting Blocks"larından FC 83 ile lNT uzunluğundaki sayı kadar (32767) haiıza bitini bir sinyal ile setleyip FC 82 ile resetleyebiliriz.
_001
CALL "sET" S_BIT
N
:=M0.0 :=20
001:NOP 0 set
outPuts
I124.0
l
lc83
Range of
F-ır
"sET"
Eııo
r|lı.0_S_EIT
20_a ]
YaıUz Eminoğlu
95
Prc PRoGRAMLAMA vE s7
Kr]TI-IPHANE
1
FoNKsiYoNl-ARl
lKl BlTıNlN ANıNDA sETLENlP-REsETLENMEsi "Tl_S7 Converting Blocks"larından Fc101 FC 101 ile bayt ve katları uzunluğundaki sayı §ei- Ranqe of
BiR GRUP
kadar (8-'l6-24-32) çıklş kanalını bir sinyal ile anında setleyip FC 100 ile resetleyebi|iriz. Anında seUreset kavramı, çevrim sonunu beklemeden çıklş atamalarını yapabilmesidir.
Ilnmedi ate
oLıtptıts "9ETIn
I0.0 EH
P#P
0
ENo
,0
- S_BYTE 16 _N
Yukarıdaki uygulamada Q 0.0 dan başlayıp, Q 1.7 kadar 16 bit l 0.0 ile çevrim arasında setlenmiştir. "S_BYTE" ile tanımlanan adres herhangi bir baytın "0." biti ile başlamalı, "N" alanında bit sayısı, ancak bayt uzunluğunda olmalıdır. Burada tanımlanan numaralı bayt ve bit adresli çıküş kanalları, set veya reset edilmiş olur. ("P memory" external inpuUoutput alanıdır)
PRoGRAMLA "DB" oLU uRMA/SıLME sFc22-23 ,DB" oLuşTuRMA ( sFc 22) *c2ı
(.edte o.rt. Eıo.k ,(RtAT Dı,
!ıg.g
ll24 . o
(P}-lt B ı6ı30
E
ı
lJr
l6ı
6a
_ ı 01_1
35 _ UP_[
D{ıl
llIT
tı
ffT_VA]
o
DB_ilnBtı
2
]o _ (oUl|T
"EN" girişine her darbe gelmesiyle "LOW_LIMlT" ile "UP_LlMlT" tanımlamaları arasındaki sayı numaralı "DB"ler sırayla oluşur. "DB"lerin içlerinde ise "COUilT" girişindeki sayı kadar bayttan oluşan "ARRAY" verisi vardır. Her sinyalde oluşan "DB" numarasl "DB_NUMBER" alanında izlenebilir. Tanımlanan sayıdan daha fazla darbe gelmesi, daha tazla DB oluşması durumunda "RET_VAL"den hata kodu allnır. Örneğin yukarıdaki programda "DB 48" ile "DB 56" arasında altı adet "DB" oluşur (Verilen değer HEX dir). Her "DB" içerisinde 30 baytlık bir "ARRAY" verisi oluşur. oluşan data bloklar "slMATlc MANAGER" ana penceresinde görünmez. Ancak "ONLlNE" konumunda data b|oklar görülebilir. "DB" sİLt{E
(
sFc
23) sFcz 3
I0 1
"DE! DB"
Ell w#l6#4
-DB
EıJo
RElt
Hü,II.üBER
VAIJ
lqüı6
"EN" girişinin aktif ediImesiyle "DB_NUMBER" girişine yazılan numaralı nolu "DB" silinir. Yukarıaki ömekte "l0.0" girişinin uyarılmasıyla CPU içerisindeki "DB 4" silinir.
96
Yaulz Eminoğlu
Prc PRoGRAMIIMA VE s7
KÜTt PllANE FoNKstYoNl-AR]
300/40G2
DATA BLoK,AVER| YAZMA vERl ALMA
Fc84-Fc85-Fc87
Herhangi bir data blok'a fonksiyon (FC 84) yardlml ile veri yazmak, yazılan verileri oradan almak (FC 85/87) için istenen şrtlarda bir data bloğun oluşturulması gerekir. Oluşturulan data bloğun istenilen bayt adresinden itibaren veriler yazılabilir. Ömeğin bizim aşağıdaki ömekte, O.bayt başka bir amaç için boş bırakılmış 2.bayttan itibaren ,t.grup için yazılacaktır Ve Veri uzunluğu 6 worddür. 4.bayt satırına o ana kadar girilen veri sayısı program tarafından yazılır. Bu satlrdan itibaren girilmesi gereken veri kadar satır (istenen veri tipinde) boş bırakılır. Bu grubun bittiği noktadan itibaren ister yeni bir grup, ister başka bir veri girilebilir. Aşağıdaki örnekte yeni bir veri grubunun girileceği kabul edilmiştir. 18.bayftan itibaren yeni bir veri grubu girilecektir. Program bloğunda, data bloğuna veri yazacak FC 84 bilinen yöntemler|e eklenir. ..EN'' girişine veriyi yazacak şartln poltif kenarı yazılır. "DATA" girişine Verinin alınacağı kanal veya bilgi yazılır. "TABLE" girişine ise data blok ve data blokta grup veri uzunluğunun yazıldığı adres yazılır. B*15{o0
İr16*000 6 5
ı .-r]j..
56 ].
22
0?
Lz6
.,]:.],i "
yrı6*000A
,]i:aii:ı,.
r*16*000{
r+ı6l[rO?E lirl5*0016
!"::= .. ,...ğ :
ııL6fuo2, rül.6frO2c
..'.-.
rl16lo000 ı*ı6ro000
ı*l6lE000
"Grupl_veri_sayisi"
bir artar.
Bu işlem 6 adet veri girilene kadar devam eder. Tanımlanan sayıdan (2.satıra yazılan 6 değeri) daha fazla veri girilmez. Aynı işlemler 2.grup veriler içinde geçerlidir.
İ*l6ro000 .lt61(,000 İ*ı610000
.:a.,1:]-|]:
Daha önce doldurulan data bloktan veri almak için iki FC kullanılabilir. llk yazılan verinin alınması için FC 85 (FIFO ilk giren ilk çıkar), son yazılan verinin alınabilmesi içinde FG 87 (LlFO son giren ilk çıkar) kullanılır. Ömeğin FC 85 programımıza eklenip "EN" girişine pozitif darbe uygulan{ığında "TABLE" girişine yazılan veri grubunun ilk verisi (6.0 : Grupl_veri 1 ) "RET_VAL" alanlna aktarılır. Bu işlemle diğer veriler bir yukarı kayar. Boşalan alan son girilen veri ile doldurulur. Her okunan veri "Grupl_veıi't " alanındaki veridir.
Aşağıdaki örnekte "M0.0" uyarıldığında, "tlW 2" içerisindeki veri, data bloğun 6.worduna yazılır. Yeni bir değer 9irildiğinde 8.word bir sonraki 1O.word'e yazılır. Her veri yazıldığında
ı.tr.oİk 1: GruP 1 alaru.na 5ır. iı.. vğri y6aa EcB!ı l,to 0
MJ. ,
(P
o
Elo
}_-EN llr,2
DE1.
let@k
2
! Grup 2 alan].n. ııta
- DAIA DEırz _IAlnE ila
vcri yaac Pcat
t.() 1
Add to Tabl.
ı{ı.1
EIl
(P
DE1. DEı18
Yavuz Erninoğlu
-
ENo
tA.Er/E
97
letsİk
3: rabıo gluP ı'.
ilk
verilerin data bloktan okunması yazma sırasına göre değil, adres sırasına (6.0 - 8.0, ,t0.0...) göredir.
y6z1l.n v6Einin 611@.!t Fc85
ti, . z
tio
(P
ıetEİk
l l
f
.b.lo gluP z'y.
}-
!N
DEl . DBY2 _
llAll,E
ilL
Elfo
RlT vA! l.E{0
yazılan v.riEin
6lım..t
Fca5
tl1
rr0 . 3
Unl.ğd Tğbığ
. 3
Eıf
(P DB1. DEU.[8
-t^.Dl,E
"FİFo"
ENo
ıET vA! lfl4o
E*16*ao0
&ğği.Ş,li,i;;
ağli^is
ffiEl E @tr-,
r#J.5ro00 5 3
-
şğ.-E,:
8?
ffit}s ffi,-_Ts,i ffi"j,] : ĞFi. ü
lz6 L26
L26
§İr*.
T#.ı5foooA l#16ff)002 g,.L6rloo2L
ffiY
9#l6#o02c
r#ı6 o02c r#-16*oo2c g#16*E000 w#16#0000
r#ı6#00 00
İ.tiolk
5: Tab_to gİuP 1'ye son yazrran v.rj.nin arır,nas]. Ec67
Fir3t out tü0 A
u]- 4
Eıl
P
DBl. DBIz
TA.BI,E
"!IEo" RET
Euo VAI,
Mı{ 0
Data bloktan veri alma işlemi FC 87 ile yapıldığında, sadece son yazılan veriden itibaren "RET_VAL" alanına kopyalanlr. llgili satlrdaki veri korunur. Burada son yazı|andan kasıt, büyük nolu adresten küçük nolu adrese doğru veri alınmasıdır. Ömeğin 1.gruptan ilk okunan adres 16.0, daha sonra 14.0 - 12.0 diye devam eder. 98
Yatlz
Em,noğlu
ırATRİs K/NRşıLAşTıRı,A (şıfre soİguıama) (FB83-FB84) Kaşılaştırma fonksiyon bloklan 16 bitlik giriş verisinin, 'l6
bitlik sabit verilerle yapar. kaşılaştırma işlemini Eşitlik durumunda bir çıkış biti aktif olur. FB 83 bloğu tek bir r ile FB 84 bl u 16 adet verinin tamamı ile ka ıla lrma l lemini DE€3
FE3 Index M5tEix cobP6re
I0. o
Eıl
ENo
o _IN BIto
xo.
!n.1 -
oUT
ERR coDE t
rN_ BITı
@.0
fl.2 - Iıl EI!2 t{).3
_İ
EİT3
ıo.4 - rı._ EIT4 tio.5 - Iı{ aıl5 Mo. 6 _ İıf
l{]. ? _
EII6
İıl Eİ!?
ltl.0 _ İı{ Eİ!8 til. 1 - Itl_ Er.t9
ı'!.2 -It. EII10 İ1.3 - ııl EıTlı ]l
_ Iı{ EıtJ.2
t{.1.5
Il{ Br,!J.3
l{1 . 6
- Iİ_ BrT1l
lt1
.
ü1. ? E#16*5
Ü )l]lld,i,
oc.Ü
_lİ_aI!ıs
-(',1P §IEP
v.,,J.. 1r,!l!i^ (
ll)lı]l
rOlr1,/)\(l,üJ
EÜ Ptc 0.ü4 lbl *hrbl HÖ
İİ!_9aL_ -
}.
bĞ
!.)|
İ-,;ı
l1n
t? trltla|
vall
;;:il ;,_": ,, r.]-_: i|ğ*sAğıİğ ],,,.i, :.,:_ iffi"§üiüd;Jffi§ _ :, l::, : .-ı,. :...",ffi İffi .:-JWiF
;;{ülai.j,,
_. 1İü!.ti:-5E _ ] c+-}i_4;a:.r,' -.
ffiffi ry i:liffi ;E Effi!§",,, :ğİş.: ü _:, ]li _§M İ]ğffi Eiffi ;:ffi !y*İ?ğ}ğ:, ;l.]ıİr!r,!:+ ;r. ;lffiffi j*jiai§j.r,""-: ;tnlİ.Hlğ; - :-trffi @-i:ffi j ffğiiifJ] .'*ffi ;,!.'.-l'r" ı]lffi ffi § "}ffi İ trffiE içüd|r], : ş:tlid .'l.:.,l. üffi§ffi iiffi§ E-:. ğ,ffigi;'. i:ş;rr]:., 1 ,:, İ*§reH"i::wğE a:: j:ffi 3L]n |-j$}! İ: ;.,ffi ğ1--Lıı . }lEf ij+- . l,şiF,.f, *iffi* ,;jffi- i;ç E;;-j=ü ;&§Stsi-_ı. . j§*li* :-:.i;.}ğffi ffiEİB:.ji]i;;l*ifu d§ ;,fşi]j§ğ,
j:
@m'Bt
ç"
I
;
]
:'] :];:
i:':*, ]'].,i
E_:İİE§E=]
]
!
.
|2
t3
".
]]
,
..
;şit;llt
iE fr
Ysı,rız Eminoğlu
s0
DB84
FE8{
I0
ğ.6h Matğiİ conpi re
2
E!ıo
EN
la,.o _IN BIT0 lQ,
t ERR coDE t
.1 - Iı,l BIT1
la, .2
_IN EIT2
.3
IN EIT3
ll2,
otJlt
H2.4 _lN
EIT4
üa,-5 -IN
BI?5
oUT STEP
0 1.1Bl
ıOa1 2
,a,.5 _rN BrT5 IN aIT?
ü,r2,.'l
tl3.0 _rN BITg IN BI!9
M3
.1
l<3
.2 _ Iı{ ErT10
tü3.3 _ Iı{ BIT11
tl3.4 _ rı{ ErT12 M3.5 _IN EIT13 M3.6 _IN EITı }l3 . ?
l'
DB
blod
Eö nc o.h4 lİal \1/*ü ı]+
, -ijE ]. ,İİ
dts-9aı.] Mdr€§
t
D€clİatEı
0.0
5
().3
h h
ot ,h lı5
,h
lt-
t0
tl
|2
15 16
ll l3 l9
100
FAlsE
lnjrr2
m
FAıSE FA.SE
ıd-
F{!E FraE
g@
F.-!n3
ld.
lrt .İ1 lıgüğ
h
]nr.]6[r9
1-1
,ıa ,ı! 1,z h
,ıa İİ ıİ İ.
lruİı€
}ıriğı! . :. .Euİrıl
a,0
Eİ
a 2|
6.0
.tt
.o.ı att
§_ ECl
FAıSE
lü-
Fı.gıe
§lE
lEt-ç.c
l!r§,
tr,"_ü/r+
l
Ft[*
Fılsc ftr.*
İnjİrrs
lğlt
FA|.SE
rcm,
ad. E_
u) oİ
L, h
m.,
in
ı,b h
Hı.E
ffi_._.
lı..Jmı2
lıt]Erı3 FUğTı.
a§ ca at .Et
z2
;ü)l.
Irü.,gTı
(ü h
ı.0 l,
l?
ln-pm
tlaJEr5 ,rı!r,
D.6 3
h
0.ı h o,2
1
BI|!15
Palam IDll84 yav!z 1§lMAl]c ]00(''l\aPt] ]1]aI
0*a
2
-lN
4
FAs€
E@.
,..
Yaluz Eninoğlu
tm*
t nt* 5 b nt* 6 tib b }gt|İ7bıaarEü td İşi&g ü ll* sİtt9tb@ilt
ı"Etb l!
u
.**p 6 !i*a
I
CdrtJ i*
s,(E}
H-!E
BYIE
İ3tb .a bb
9rı6ro
FıasE
d
!
bü2 b bğ
ırarl5ro
FAl-
t
t bto|i
1h E
sıaf
EalE
ğı
§RA}lo..
t]ft
ta ! ŞE İTİElltli *ıt bİ lli ü İt ırıa#|firl .ı.İ, rırülk dı-
f-ra=
lml
İErt bİÖ
İğİöİ
t,
5
i*
İı*
bi*
*0 f
o.,tao..ır
üo
frı.ği
PIa PR(XiRAMr
A VE s7 3m/40G2
KüTüPHANF.
KslYoNLAR]
"FB 83" ile "lN_BlT,." giriş|erinden girilen veri, bu fonksiyon bloğu ile ilişkilendirilen data blok içerisinde "cMP-VAL" alanında tanımlanan verilerden "cMP-STEP" ile belidenen nolu word içerisindeki veri ile eşleşmesi durumunda ''OUT'' çıkışı ..1'' olur. Ömeğin Wkandaki progrEımda; şifremizi "CMP_VAL" alanlarından herhangi bir word içerisine yazarz. Bu değeri "CIiP_VAL[5,0]" ve "CMP_VAL[5,5]'' alanlarını ''1'' diğer bütün verileri "0" yaparak yazdığımızı düşünelim. "FB 83" bloğu içerisindede .'CMP_STEP'' alanını bayt değerini (8#16#5) ve "lN_BlTo'' ve.'IN_B|TS'' girişlerini ..1'' diğer|erini "0" yaptığlmızda "ouT" çıkışı ''1'' diğer durumlarda ''0'' olur. "FB 83" ile "lN_BlT.." girişlerinden girilen veri, bu fonksiyon bloğu ile ilişkilendiri|en data blok içerisinde "CMP_VAL" alanında tanımIanan verilerden herhangi bir word içerisindeki veri ile eşleşmesi durumunda ''OUT'' çıkışı .'.t'' olur ve hangi nolu word ile eşleşilmişse o word numarası 'OUT_STEP" a|anında yazılır. Girilen veri data blok içerisindek kaç adet word içerisinde karşılaştırılacaksa o word numarası ''LAST'' alanına yazıllr. Herhangi bir eşleşme olmaması durumunda data blok içerisinde tanımlanan "LAST" numarasından bir üstü rakam 'OUT_STEP" alanına yazılır. . Ömeğin yukarıdaki programda; şifremizi "GMP-VAL" alanlarından herhangi bir word içerisine y_azarız- Bu değeri "ct{P-vAL[6,2l" ve "cMP-vALf1,5t" alanlarını "1; diğer bütün verileli"0" yaparak yazdığımızı düşünelim. "FB 84" bloğu içerisindede ..lN_BlT2'' ve "!N-BLTI9" girişlerini "1" diğerlerini "0" yaptığımızda "oUT" çıkışı "1" diğer durumlarda'.0'' olur. "OUT-STEP" alanında doğru eşleşen word numarası olan "6" değerini görürüz. Şifreyi baştan kaç word içerisinde arayacağımızı 'LAST" alanına yazmamız gerekir ömeğin '8'' (W#lry) Bu alan boş bırakılıısa sadece "0" word sorgulanır. Eğer doğru şifre girilmemişse ::!AqT" alanına yazılan değerin bir üstü (16#9) değeri "OUT_STEP" alanına yaİılır ve "OUT" çıkışı "0" olur.
numarasl
Yaıuz Eninoğlu
,10,|
SFB/FB 43 PALS oLuşTuRMA SFB/FB 43 daha sonra anlat|lacak SFB/FB 41, SFB/FB 42 veya PWM gibi bir kontrol
fonksiyonu değildir. Yani okuduğu proses değerini set değeri ile karşllaştlrarak dijital veya analog çıklşlar oluşturmaz. istenen oranda bir veya iki dijital çıklşl kumanda eder. Daha önce iki zaman fonksiyonu kullanarak oluşturduğumuz veya donanım ayar|arından "Glock Memory" aktif edilerek kullandığlmız tekrarlayan zaman arallklarlnda dijital çıkış elde etmenin daha fonksiyonel bir şeklidir. Buradan elde edilen palsler ister direkt olarak diiital çıkış kartı üzerinden sahaya (lsltıcı, vana, motor, flaşör v.b) gönderilebileceği gibi bu palsler istenen herhangi bir program girişinde de (Sayıcı, v.b) kullanılabi|ir.
o o 4
V5AçlK
2/5
i4l5Açl(
3/5
4/5 xAPAtl
Açl(
4l5
XAPAtl V5 ^clx
3/5 xAPArl
lğ da ı ulİ İ
HglıE : ı/5 XAPAIı
Açl(
2/5 KAPAı|
Ei
iılsaçıx | 4/5
(APAI
ı
Ömeğin SFB/FB 43 fonksiyonundaki "lNV" girişine 20.0 degeri 9irildiğinde "QPOS_P" zamanın, "CYCLE" girişindeki zamana çıkışı; "PER_T " 9irişindeki ms olarak girilen -CYCLEY10 ms] 1/5'i ( %20'si) açık,4/5'i (%80'i) bölünüp, 'tO ms ile çarpımının (PR_TM kapalıdır.
102
Yawz Emhoğlu
PIrC PR(X';RAMLAMA
VE s7
6 | tib,.İi.s ri-o,taıı* 6 | stanaara ılb7ıry
6-Gı Mis.dbn.oB
6_ğ n-9
6,E
KÜTÜPHAÜ.IE FONKSlYONLARI
2
DB43
sFB,ı3
Puise Genelation (integrateo Funct ion, CPU 314 IFI,1)
Blo*s
conv.fting
8lo.E
PID control Blo
eğ ıtc Fuhction 8lo
]
.5
].,.fi|
on
sf,m cTU trc_Tc sFBı cTD rc_Tc
.{- sFB2 CTUD Ec_Tc
fil
sFsal coNT_c IcoNT
:...El sf8a2 coMr_s
-PIrlsEGEN.
_EN
lcoNr
. . . _ It{v
QPos_p
. . . _ PER_T[{
QıİEG P
- .
..C 5Fa]] pUL5EGEü, ]a,-]tJT {- sFB+| AMtoG TEc_FuNc ,{- sFBa6 uGnA TEc_FuNc {a sf817 coirNt TEc_FuNc
ENo
t
. _ P_B_TH
...
_RATIoFAC
.. .
_sTEP3_oN
...
_sT2BI_oN
. . - _MAN_oN ...
- Pos_p_oN
. . . _NEG_P_oN ...
_sYiı_oN
. . . _coDr_RsT ...
lNV
:20.0
cYcLE
: 10
PER_TM : 5 sn (5000 ms) ms
QPOS_P: 1 sn QNEG P :4 sn
lNV
_cYcıE
:20.0 sn (5000 ms) CYCLE :50 ms QPOS_P : 0.2 sn QNEG P :0.8 sn
PER_TM :5
lNV :20.0 PER_TM : 5 sn (5000 ms)
cYcLE
QPos_P QNEG P
: 100 ms
: :
0.1 sn 0.4 sn
,.lNV',girişine".l00)+.t00',arallğlndaVeriyazılabilir.Fonksiyondaki olarak uygulandığında "STEP3_OI{ = l" o|ması şartıyla "QilEG_P" çıkışı "QPOS_P" deki gibi davranlr. 'oPos_P" çlklşl sürekli "O"dlr. (Üç nokta kontrolü) "STEP3_ON = 0" yapıldığında "J'değer okuma devre dışıdır. (lki nokta kontrolü) 'PER_TM" girişine "TIME" uzunluğunda (24 gin 20 saat 31 dak 23 sn 648 ms) veri yazllabilir. 'MAN_ON = 1" yapıldığında; "POS_P_ON =1" ise "QPOS_P" sürekli "1",'ONEG_P" sürekli "0" olur. "POS_P_Oi{ =0" ise "QPOS_P" sürekli "0", "QNEG_P" sürekli "l" olur.
Yıvuz Eminogu
103
Vİ.
FB KULLANİİiİNDA ORTAK DB KULLANMAK (]tluLTıPLE ıNSTAİ{cEs)
_ _ |orm9l operandlarla yazılmış fonksiyon bloğu (FB) veya kütüphane içerisindeki sistem fonksiyon bloklarının (SFB) kullanımında, normal şartlarda İa6nıaİ her FB veya SFB için bir DB oluşturmak gerekir. Doğrusuda budur, çünkü FB'nin heiça6nlması farklı Ür sistemİn kumandasına aittir ve verilerinde ayrı alanlarda saklanması uygundur. Ancak çok sayıda DB'nin kullanılması, büyük projelerde DB sayısının yeterli olmaması veYa Çok saYıda data blok kullanılmasından kaynaklanan DB karma§asını ortadan kaldırmak için daha az.DB ile proje oluşturmak mümkündür. Bunun için projede kullanacağımız FB, gerektiği gibi parametrelendirilerek (Deklarasyon tablosu doldurujrl. ,e p.grar-bu tabloda verilen formal operandlara göre yazılır.) oluşturulur.
. .. Asıl programların yazıldığı bu FB'lerin yanında yeni bir FB oluşturulur. Onun deklarasyon tablosunda "STAT" operand özelliğinde, ''Data Tipı'' İsıl programın yazıldığı numaralı "FB-." veya "SFB" olacak şekilde Ve hangi amaçlarla çağnhp toinaı operandlarln yerine kuIlanılacak değişkenlerin atianması gerekiyoi ise o raoaisJyıo'a 1onu çağrıştıran isimlerle) oluşturulur. Deklarasyon tablosu oluşturulduktan sonra program elema-nlin kütüPhanesindeki "iluttiple tntances" alanınİn altında deklarasyon İablosunda tanımlanan isim ve sayıda FB oluşur. FB'ler o isimlerle çağnlarak gerekli değişkenler atanır. sonrada "oB __. FB'lere olur.
1" içerisinden FB, bir DB ile ilişkilendirilerek çağrılırsa çağrılan bütün ait saklanması gereken veriler, FB ile ilişkiİendirilen DB iğeİsine sıİa İİe kaydedilmiş
P.opcllic( l Un.Iroi
B Dl
,
i
o*ı.eıı l Ic-uı_ea2| c* |§übI
Eİ-
P
XLa
lnı
Formal operandlada kullanılması düşünülen FB ( FB 1) oluşturulduğunda "Multiple lnstanco cababiIity" etkinleştirilir.
c9
ltD----l "FB 1" gerektiği gibi
programlanlr. Yani, programa ait fomal operandlar deklarasyon tablosunda tanımlanır ve prograım bu operandlada
yazılır.
;| 1,1lr5Tl/tBD IlU1 tB dc lckDll kutldnma§llı,1^llc E FL aİ hrrt Rc 0ö4 lbl Qii..E glt* ı]+
]00(1)tcplj
De$g ğiS ı(ı i q aer .:Jg 'bEl.',,. cont€nts E]
c
lnt..t"". i]Or
o@
*h9.
& cdDaatğ o cğt!.td & cü*d EoDfcaı
I
6 Eo on & oö
i-]
D
2DP]
j E Eitr of:
ll,
+t {)
Envi.oİıh.nt\İn |D!ta İTp. l
Eooı
.4]
o o
İ.D
Jl3(
0.ı
ouT
q
n
g
&
o E o-
o
Ej
ts
Y3vuz Eminoğ|u
105
Dct1.9l€t
i 1rG l. ., O
.]
o ihd.
j @ cd9.dd
.a EE
İ
_
cdrtd
c6cd E G] İjİF,
a ğ.9rdf
!
cont.nt. oua I _oua
@EotoEl :nCIN dDour
i
Dl'I
.1
Eı
isim verilerek eklenir. "Data type" alanına listeden "FB
lEl lN_olİl
a üıb€ ğe r*!t J E €İ 'ftind& §] o Thr3 !*dd
a
i. 6İ
(.,,
Daha sonra asıl programın yazlldlğl FB'nin (FB 1) çağnlacağı EE ll +t ] FB ( FB 2 ) oluşturulur. Yeni ot:'Bnvirofu.nt\rı oluşturulan FB'nin (FB 2) D.tl İ]ıl. deklarasyon tablosunda, FB 1 kaç t.0 1 kez çağrılacaksa o kadar saylda 8.0 FE Ve "STAT" öze|liğinde istenilen
]00(1)\(Plr l].l(
]l lAl]/5ll /l0D Il 8/ l ll d. lckt8kul]anmd\slM^]lc ll F5 EÜ IrEt RC D.Ü.{ Y* oFfua ıJlİtb, flb
|@ !
:İ s![A!I botol,
bG
aeFiük 'eF<üd6 jG|sEis ! İı fcır.dc
El.
ao.0
Elnü.l
E| iİtğ2 E t!ad3
E ı tüğB
ı.tEk
2
: ,itı.:
EıIo
BıI
ıı- 0 -..t
Bu uygulamada bizim oluşturduğumuz bir FB kullanılabiIeceği gibi, kütüphane içerisinden alınan bir SFB'de olabilir. Ömeğin yan tarafta SFB 0 (CTU : lleri sayıcı) programlanmıştır. SFB kullanımında değişen tek şey, projeye istenen sFB eklendikten sonra, SFB'nin çağrllacağı FB'nin deklarasyon tablosundaki data tipi tanlmlamaslnda ilgili SFB numarasının veya sembolik isminin yazılması geregidir.
a1.0
L^D/sll/lBD llll:] FB a. ıck 0B kUlldnmd\slM^ lla 300(1)V )l] ]]3C 1l)l'l C, Fı Eİ tİE t ı,c Dtü{ lbı. o9titE Vlhölü ıl+ E t |"r c4; tr }{ ;:
DeEh9 g
a
hG
io E o E lo* 4 @ ccripğdğ
E@cffit, t!] & coJtd E] O DB.J o O rrlpı
o a
ğ 9 l. E]
u
E
*
td
9 ğ
9TAT
sıyici2 '|!Ayiciı
soyicil olGIN
sayici3
ğ :o oUT
üı
|D ı_oul €) Jıyici2 ,ayici3
{l+{ 10.0
cTu
2B.o
cTU
:
!.trroİk 1: !it]_.:
o o e
@ .-d @ §]
|-ıı
ltı_otJ,I
a@
.q
& O
E
'Envi!oıDrnt\Ir |oat" ııpc
BN
ğ lFB blodj
13.0
o
-cU 13.1-R
a E ..ral E
Eı
gı/rİ
5
*yd3
E] tğ.*o
*r.yici1
E ı{o
o a3.0
t llıt)
-Pv
Ömeğin ..Data type,, alanlna direkt bloğun sembo|ik adl olan "CTU" yazılabilecegi gibi, listeden .,s}B
" seçilerek "
106
Yaİlz EDlmğlu
T D82
CALL FB 2, DB 2
F82
Eil
CALL FB 3, DB 3
Em
D8] F8]
Eı|
EtI)
J
Oluşturduğumuz fonksiyon bloğu (FB 2, FB 3), OB 1 içerisinde bir DB ile ilişkilendirilerek çağrılır. Bu işlemler sonucunda oluşan DB'ler içerisinde (DB 2 ve DB 3) saklanması gereken verileri slra ile edilir. l'
I)
l]
I).lld,n DB]
D.t.ttd, E4 ttc
dE-g(9 }, DB2
ı 2 3
5 6 7 8 9
a Ll|
ı
-
fu vrb, ıü+ $ h G|!r,l )! ğadrl[?
DEh.9
rB_de tek D8 kult.nmdlslMA
AddEss
klİetin
lc ]00(1)\cPU 313C,2 DP
I
lün€
]])re4ffi iaft,:|;=| ._,-, :ai: ..,, :::!E8ffi e+i.i.i,;r:j;. ::',.:,...,, ]-fi-ffiffi ;ı;§ffi ;::,:.,:.i
j,.:, :,,
lrıitbl
1
FALSE FALSE
:l."H@Sffi;ffi .F-E-.iaiğ};i=-:-.,:;;':'1.,.,'..İ:reffi :;*ffi il Si}ı:i€=..'.'_l ,.;,., . :] ;j§ffit#;:j;ffiF 9}İl,i; j:._İ] .'.,l ._ı'--,., . l.Tffi-*.ğ-: ı|-affil Jıi.d.",,.-;t,,]Jl.] , '1,:,,].,,,. . -".,İlffi;§f "}ffi *i;:ii:;lj;- ;..:l;'.i.::;,,., ffi r
_,i.,.ij1.]i.'.._..1.,,i.ıi' ."
FAl_sE
FAl-sE
FAISE
.
FA/_sE
--l.Jffiğffiüiğl
l)ll:] lll
dc
A&eas
lckDBkUllitnı .r\s]M^Il(. rc0(1ı(:p(l :]13c 2DP Deakatİrı
InitialYa[E
NallE
FAl_sE
a
i|.
6
i-'..ı'#;;:'?
|t,
ğ
EııE
ı0
l3
lt
ı5 ı6
ff|&fuHığ,
ffiil-re ili.. .ii;f;Eiğ
Yawz Eninoğlu
FALsE FA]_sE
0
FAl.sE 0
=fğ]
lt
0 FAl.sE 0
FA.!E
,s
r'-';a +]-l], !
9
|2
AatJalvatE FALsE
3
6
AEtJal Va\.e FAl-sE
FArsE
.
z
7
yaıE
FArsE 0
FALsE FALsE FAIsE 0 FAl.sE
107
vlı.
Hlzı-l sAYıcı VE "PwM" KuLLANı]tiı A. KOMPAKT CPU,DA HİZLİ SAYİCİ KULLANİMİ 57 300 CPU'lar Çevrim siiresinden daha hız|ı gerçekleşen sinyalleri algılamak için özel donanımlara ihtiyaç duyarlar. Bu amaçla ya ayn bir hızlı sayicı ı
.
sadece kompakt bir CPU daki (CPU31..c..) biıgi okumasl ayrıntılı olarak anlatılacaktır. Diğer
Enkoder|er;.besleme gefilimi (5V, 24V), bir turda ürettiği pals sayısı
(,t
0O, 256, 512,
hariç) artımsal veya mutlak enkoder gibi uiıg-ıer iıe tanıilanır. Aynca bir field buı altına (Profi bus) direK bağlanabilecek enkoderlerde vardır. enkoderdir. Burada tanımlanan "A - B'çıkışları sayma ve yön tayini, ''Z'' sinyali tur saylclsldlf. "A]'ve "B" sinyal|eri geliş slrasına göre sayıcıyı ileri veya geri saydırır. Ömeğin sinyali geiirse sayıiıyiiıeri, öice ''B'' sonra 9!?.ğÇa detaylan an|atılan; önce "A" sinyali gelirse sayıcıyı geri sayar ve "Z" sinyali enkoderin heİturunda bir pals verlİ. "e'' ve'B" sinyallerinin biribiri ile sorgulanarak enkoder pals (çözünürlük) sayısı artınlabilir. kuIlanılacak enkoderin kullanma kılavuzunda hangi iablonun hangi numıralı çıı<ış |in;ine bağlandığı ve hangi renk kablo kullanıldığı tanımlanmıştır. Aynca ğrogramcInrn yuıandat
"A"
'
.
Bunun için daha önce bilinen yöntemlede oluşturulan kompakt cPU (cPU3l3c-2DP) donanım ayadarında "count" açılarak, "channet'; ile okuma yapılacak kanal numarası, "operating mode" alanında "count continuously" seçildiğinde tabıoya ''Count'' ile yeni bir alan eklenir. Bu alanda "Signat evaluation" bölümünde nRotary en'coder single'' seçilir.
seçilen kanal numarası (0,'1,2) ile enkoder sinyallerinin, PLC'ye bağlanacak dijital giriş/çıkış adresleri belirlenir. Bu adresler programda kullanılmayacak arĞak enkoder kablolan bu kanallara bağlanacaktır. Kompakt (..ıFM / c..) CPtJlar için bu adresler dijitıal giriŞ/ÇıkıŞ kanalıdır (lW 124 QW124) ve ileride verilmiştiİ. Standarlcpu'lar için bu adresler eklenen hızlı sayıcı kartı (FM 350-1) üzerindeki kanallardır. sOilAT|c 3o0(1l (configuİdtion} Pü
tO]UB
l
2
p
ı
cPU 3lT-2 DP
|l DP ıi Dn6/DO16
al
opertics (,ount
O-r,* ftl
Opeıdiu
X
)
nıodc;
Oııl Ia66ş"* | Bmb Paaıııas sıatDcsoiıiıt Corr
3
dlüİEbj
4
I
|wirtı nEd.ddion
5 6 7
aI
(ROA2.4
Not .oİıriJued
c.oJr
cdrıl
d*irğrdy
ğE
cdrİ peüı]dca} Fı.qğEy co.üıiE Pur.e-ü4ith
Flı, 'üeqJerrcy
Nurı:
Ico,r{
Yavuz Eminoğlu
l09
Yukarıdaki resimde "Operating Mode" alanındaki; ..Gount continuously'; ib sürekli sayrna işlemi yapılır. sayıcı üst sayma sınırına kadar saydıKan sonra sayıcı sıfırdan devam eder. ,,count once;, iıe bir defalık sayma yapılır. kaşılaştırma değerine ulaşıldığında dijital v.aIue" ile çıkış kanalı aktif olur ve aktifleştirilmişse "Hardware lnt9rlupt" çağnlır. "End öeıiıenen sayıya ulaşıldığındasayıci sıfırlanır. "SW_GATE" veya "HW_GATE" sinyali yenilenirse veya PLc kapatıllp açıllrsa saylcl tekrar sayar. .,Gount periodicatiyp ile biiaz sonra ayrıntılarını anlatacağımız, sayıcı değe_rinin istenen sayıya ulaşmasınba sayıcı içeriği resetlenip yeniden sayması, istenen değerde "Hardware İntenupt" çağnlması gibi istenen fonksiyonları gerçekleştirir, Buraya kadar anlatılan her üç fonksiyon sFB 47 ile parametrelendirilecektir. ;Fr"İr"n"y ile sİyma işİemini yanında sayıcı palsjne_ait frekans_ölçümüde "ounting" yapılır. Bu ionı
..operating liode" alanındaki seçim|erden birisi yapılmamışsa "count" a|anı aktif olmaz. Ömeğin "Operating Mode" alanında "Count continuouslf' seçerek enkoder palım ayarlarını Enkoderden alınan her propcl tie§ CoUnl (ROA2,4 8 sinyalin enkodere bağh OFdiE ııtod.: clı.,* |İ-l hafıza alanını birer artıracağını kabul edelim. Oeışa l llttı*ts l Be Pğırd.,ı Co,rı Sayma değeri 500'e oFdüE Pğğn€iği ulaştığında PLC 5m cd|Ddiıd, vd.ı | Mn.ürİ c€diİİ üzerindeki dijital çıkış crrEd cr.ıd G* firEliİt kanall aktif olacaktlr. )
|
r0 r----
:odFl
, ll!']
clığ..t€idiİ
sııd erdldirİ
r-
rıpıt
Rls. drdirt
Hadröe gde
l T cd.İt d€din
d ür
irvrt d
Kompakt CPU'da "Kanal 0" seçilerek gerekli işlemler yapılmışsa, l 124,0 ve l 124,1 girişleri (Enkoderin A ve B kabloları) slraya aktifleştirilerek.sayıcı içeriği biraz sonra İnlİtacagımız SFB 47'ye ait "COUNTVAL:=" parametresinde izlenir. Kanal A
Kanal B
Kompakt cPU kanal '0" için; KANAL A: l124.0 ve KANAL B: l1241 dn. Sinyallerin yandaki gibi oluşması sayıcı içeriğini artırır
girişlerinin geliş sırası yön tayinini belir|er- "B" sinyali "0" iken "A" sinyali gelir ise enkoder mili-saat ibresi yönünde dönmekte Ve saylcl içeriği artmaktadlr. "A" sinyali no" iken "B" sinyali gelir ise saat ibresinin tersi yönünde dönmek ve saylcl içeriği azalmaktadlr. 110
Yavuz Eminoğlu
lbnllA
Sinyallerin yandaki gibi oluşması sayıcI içeriğini azaltır.
lbn |B
A
Enkoderden okunan l124.0 sinyaller, yandaki gibi "X1" (1:1) = ı.ıJ l kodlar|a veya aşağıdaki l124.0 anlatıldığı gibi şekillerde X1 AN l124.,| değerlendirilerek Çğ,ıİEt x2 gizünür|üğü artırılabilir. = ")Q" (2:1_1 çıkış) ^İt!ıı Çözünürlük "X1" ile X4 1:,1"'X2" ile 2:l, "X4" ile AN 1,124.0 l124.1 4:1 oranında artırılabilir. = "X4"(4:1 2 çıkış) Ancak çxizünür|ük artırma iş|emi yukarldaki mantlkla PLC kodları na dönüştürülebileceği gibi (Kenar darbeleri ile) genelli kle CPU'nun donanım ayarlarıyla yapı labilir ıııJ^
A
A
Yukarıdaki "x1" sinyalleri ..Rotary encoder sİngle" ile, "X2" sinyalleri ..Rotary encoder sinyal|eri ..Rotary encoder qu.adrupıe" ile aşağıdaki grafiklerde olduğu gibi elde edilir.
double"
Signal evaluation: Hotaıy encodeı single pulse / diıectim F
ıtıı
tt-rt,ıultt
,,ı
rr
EOaıy errcoda double Hotaı encodeı
)
Signal evaluatlon'' alanın da "Pul 8e / dırectıon" seçilmesi durumunda "lnput sisteme bir enkoder bağlanma yacaktır .H lzll saylcl "A" sinyalini "Pulse'', ..B'' sinyalini "Direction" (yön) kabul eder Ömegin bi r motorun dönüş yönü "B'' sinyaline, motor uzen ndeki bir sinyal verici ..A'' sinyaline bağlanacak olursa motor devir sayısı ölçülebilir. A
"Oporating mode" un her seçeneğinde sayıcı içeriği "A" ve "B" sinyallerinin yükselen veya düşen kenarlarında artar ve azafu. "Rotary encoder sıngle" seçilmesi durumunda sayıcı içeriği "A" sinyalinin yükselen ya da düşen kenarında değişir.
Rotary encoder single
B Up Down |JP
Rotary encodeı double
Rotary encoder quadrubte
A
lE]
]
A
L,_]
t!Ll
Up
Down
Down
u9
up
Bu seçenekle enkoder pals saylsl iki kat artırılır. Yani "A" sinyalinin hem yükselen hem düşen kenarı sayar.
Bu seçenekle enkoder pals sayısı dört kat
YaüOz Eminoğlu
yükselen hem düşen kenarı sayar.
111
lE
:hğİtt
ıeııal
I
0p.r.li19
,tüode:
c.
]||
addesss I Bşic Puanaeıs Coı{
opefdho Pğğnetğs
t Mah colr* &ediİt
ır, ii:.ell
|
-
c-cnpeııo
NorE
l]ol.i
Gde luıCİirı:
"Main count Parameters" alanında "up" seçilmesi durumunda saylcl yukan, "Down" seçilmesi durumunda saylcl aşağl sayar. "Count continuously" modunda aktif değildir, yani o modda sayıcı sadece yukarı sayar.
Hydaie§is:
Up
Doıai
:tn|,J!"
T;İc
ba§e|
Daha sonra plc,ye bağlanacak enkoder bağlantlları yaplllr. Her enkoderin besleme bagıantiıarının dışındah, B,2veya bunların dlsında A, B, Z uçları kullanılır. Enkoder direkt Fiö;y" n"ğı"n"caxsa A, B, z yetlrıioir. A, B, Z uçlan genellikle sürücüler için kullanılır. Enkoder eİketlerinde veya manuellerindi hingi renk kablonun hangi fonksiyonu olduğunu yazar. plc üzerindeki hlzlı saylcı kartlarlnda veya kompakt plc,lerde mevcut duital giriş göre CPU kartınaGğlantıların nasıl yapılacağı kullanma kılav.uzlannda belirtilmiştir. Buna Cisc pı_cYnin "Hardware" ayarlarıida "Gount" aktifleştirilmişse aşağıdaki şekilde olmalıdır,
'
tirl
Narr/ Addr6.
1
1L+
c.ğ!alcc-
F.tÇİnc, ırc-ugElt
cou{i,tı 2+v
ArRlse Trd( B/Diredırı
2
Dl+o.0
chrrıel
0: Trad(
3
Dl+0.,
ctıaİr9|
0:
ctlanfıel 0: Track Br[)lreclbn
4
Dl+o.2
channe| 0: Hardlirare Gate
1:
T.ad( A/Pulse
1:
Track BJEİr€dİrı
0
Gate
cllanııd
clıannel
1:
Trad( A,/Pdso
4
charİıel
1-
Track B/Da.ecıiqı
Hıöv4e Gaıe
chanrıel chanrrd
1: Hard,9arE
charrıel
2:
Dl+0.5
clrarrld
1:
8
Dl+0.6
ctla.rıel
2: Trac*
9
Dl+0-7
channel 2: Track B/Dire.İiğ|
12
Dl+1.0
chaınel
2: Hafdware
13
Dl+1
14
ol+1.2
15
Dl+1.3
16
Dl+1
4
chıİEl
0:
Latdl
17
Dl+1.5
channel
1:
Lat İt
18
D|+1
19
Dl+1,7
A,/Pı.be
112
do not ilso
,/
1:
Gaıe
0
,'
do .ıot use
chüİıc
2- Hard.,ar9
Gde
cıla.rd
2:
tlrü,yre
1
6
m
1M
21
2L+
charı.lel 2: Latdl
chassb 2+v
$ppay for tİıo ouEüt§
Do+o.0
chanrle| 0:
ouFd
23
Dorc,1
chan El
1:
otnpd
channol 0, ou9ıİ channol 1: o!jo|İ
24 ?5
Doıo.2
cha,rE|
2:
outsut
crtaıur€l
rr}ün
Ha,ü,rı,9 Gate
nc n-c_
11
ııse
T.ad( ArPulso
channel 2: Trad( BrDir*ıion
10
n
do ııot
/
chanırel 0: Hardıf,are Gate
0: Hard\ra.g
Dl+0,3
7
Gale
0
chann€l
c}En ı€l
Dl+o
ıilorıdriı
br üıe
su
channgl 0: Trad( A/Puhe
5 6
P!aı. tİİül
j
Yawz Eüninoğlu
2.
orjFd
chan.El 0:
olFn
'l:
ol-@İ
chan.El
ctlanrEl 2: orrFn
Gate
plopellics chd,,.+
(
X
oUn1 (ROAr..1)
lil
oFüpİıoü
1
0cPğt'tğ. ca,r
G€.ğc|AddG|
periyodik sayma işleminde, "output" alanlnda "Count >= comparison value" seçildiği için dijital çıkış kanalı da aktif edilmişse (SFB 47'deki "CTRL DO" veya ilişkilendirilen data bloktaki DBX4.'1 ) hızlı sayıcı kartının dijital çıkışı, sayıcı değerinin 500-550 arasında çıkış verir. cPU 3'l3c'de "0" dijital çlklşl kanall'Ql24.0"dlr. "..<=.." seçilirse "Gomparison value" değerine kadar dijital çıkış "1" olur.
I
oFlahg PcJtEü.r. lJP
|-------l
|,J;l
T------E -
o.tr-_
llE.ı
chidaidi.
d üt
q.tıt
r L| |- ı ı,ı*:ıt c:ıt
r-
.l
r
0n,.dü9.olİpğr
T
ovİfolü
T
Ddii
0K
ccrt9 lir1rhaüw 9d< |30kü.:1 l#t FOkJı,l Arirrğidütıqıdd. (J corayarr C Peıı,j
opern!
na,j,]oJ. liüe iln:
Ömeğin yandaki gibi "Cou nt] perİodicaıly" seçilen bir
u,ır,tO,
c.n
l
d I H*
"lnput" alanındaki "Hardwaıe gate" kutu@ğu
eştirilecek olursa sayma fonksiyonu, enkoder girişlerinin bağlandığl input kartı üzerindeki "Haıdwaıe gate" girişine (Kompakt CPU "0' kanal için; l 124.2) bağlanmış olur. Yani o sinyal "'| "se sayma devam eder, "o"sa sayına devam etmez. aktifl
]
|
Irgl sigıElevafudim: Rotaıy encoda single
P T
Hı*,ıae
g*
cor* d.ediİl iMüted
"SW_GATE" veya "HW_GATE" sinyali kapatıhp açıldığında "Gate Function" alanında "cancel count" seçili ise sayıcı içeriği sfıdanır, "stop count" seçili ise saylcl kaldığı yerden devam eder.
"Hysteresis" alanlnda ölçme esnasında bir noKada bir salınım oluşursa bundan dijital çıkışın olumsuz etkilenmemesi amaçlanmıştır. Ömeğin sayıcı içeriği kaşılaşhrma alanına
(Comparison value) girilen değere (500) ulaşıp sonra hemen altına inmişse, dijital çıkış'1" hemen sonra "0" olur. Bunu önlemek için "Hysteresis" alanına bir değer (10) girilir. Böylece ömeğin sayıcı yukarl sayarken kaşılaştırma değerine (500) geldiğinde dijital çıkış "'1", ancak aşağı sayarken "Ka.şlıaştırma değeri - Hysteresıs" değerinde (500-'10:490) "0" olur. 0Luı l I
i
Ch dıidic. |F|ı-J
j
:
R*. drdiİr
ol tn.
ohİ
r-E
*
Eğer "Pulse at comparason" seçilmişse, karşllaştlrma değerinde "Pulse duration" alanında verilen değer kadar (2-510) "ms" ilgili çıkış kanalı aktif olur.
"Maln count dlrection" alanında "Up", "Gate functlon" alanında "Gancel count" seçilirse saylcl içeriği "0"dan başlar, "End value" değerine ulaştlğlnda slflrlanır. "tlain count dıroction" alanlnda "Down" seçilirse "Start value" aktif olur ve o'aya yazlan değerden aşağl saymaya başlar. "chaİacteristics of the output" alanlnda tanımlanan işlemleri yapar. Y.ulz Eminoğlu
113
Donanım ayarları penceresinde gerekli ayadar yapıldıktan sonra, kaydedilip CPU'ya yüklenir. Daha sonra herhangi bir program modülünde hızlı sayıcı için oluşturulmuş sistem fonksiyon bloklarından SFB 47 bir DB ile ilişkilendirilerek çağrılır.
CALL ,couNl", , DB2 (CALL sFB 47, DB2)
LADDR
i
= 'Hardware" penceresinde tanImlanan counter adresi (orada desimaldlr,
buraya "Hex" yazılmalı dlr " 768: w#16#300")
cHANNEL sw_GATE cTRL_Do sET_Do JoB_REQ JoB_lD JoB_VAL sTs_GATE sTs_sTRT sTs_LTcH
sTs_Do
sTs_c_DN sTs_c_UP coUNTVAL LATOHVAL
JoB_DoNE JoB_ERR
JoB
STAT
= = = = = =
saylcl kanal adresi ("Hardware' penceresinde ayar|anmahdlr program ile sayıcıyı aktif etme (softrare Enable) sayıcıya ait dijital çlkışl akif etme (Enable output) Düital çıkışı manuel kontrol etme
"0-1-2-3")
ön değer yükleme set girişi (FP) Ön d€er yükleme enable Ön değer
"SW_GATE"in durumu (Sayma işlemi yazllımla aktif edilmişmi?) "HW_Gate'in durumu (Sayma işlemi donanımla aktif edilmişmi?)
"Latch" dijital giriş durumu ('Z" sinyali giriş durumu) Dijital çlklş açıkmı, kapalıml? Sayma işlemi yukanya doğru Sayma işlemi aşağıya doğru := counter'den okunan değer := "Latch" sinyali sayısı ("Z'sinyali sayısı) := Ön değer durumu (Yeni bir ön değer girilebilir.) := Hata kontrolü "0'hata yok,'1'hata Var. := Hata kodu
Parametre tablosu içerisindeki "SW_GATE" (Sayıcıyı Aktifleştirme) ve "CTRL_DO" (Dijital çıkışı aktifleştirme) parametreleri "1" yapılarak sayıcı kullanılabilir. Bunun için ya donanım olarak oraya atanan girişler uyarılarak kullanılır, o parametre direkt "1" yapılabilir, ya da o parametrelere denk gelen DB bitleri aktifleştirilir. Bunun için "SFB 47"nin ilişkilendirildiği DB açıldığında SW_GATE : 4.0 ve CTRL_DO: 4.1 biüerine denk geldiği görülür.
sET s DB2.DBX4.0 s DB2.DBX4.1 Ancak bu işlem fonksiyon bloklarında, fonksiyon bloğu ile ilişkilendirilen DB içerisinde ilgili parametre|er "TRUE" yapılarak gerçekleŞtilir. lligili parametreler data blok içerisinde default olarak "0" ( FALSE dir ğD8Paro [D84/ al§lMAIl( :]00l1)\cPl] 31JL ?DP] Bu veriler data blok oata bbd Edt PLc 6ı]9 vbw wlnd4 H6b içerisinde "1" (TRUE) ,İad, \? qİE-9ğ - .&hC' CPU'ya yüklenir. "View TyF hiti.l AatJalvalp Actuel Data view urcnD w r16rqD b#* o.o l{oR 2 oiA ıa !{r o 0 ot-İElrulıüE 2.IJ value" alanı değiştiri|erek ito 3 ğl*b sw_GAIE 8oq- FAIE yükleme yapılmalıdır. 1 t,ı iı cİElJrc Eoq. EAlsE ği*b (Edfül 5 a.2 h sT.JDo E FrlsiG
)
114
Yavıız Eminoğlu
)
Pra PRaxlR AMI AMA VF s,
Örnek: Bir plastik profil üretim sisteminde, toplam üretim miktarı hesaplanacak ve profllin üzerine 0.5 metre'de bir yazl yazllacaktlr. Bu amaçla doğrusal hareket eden proİilin üzerine bastırılan ,l00 mm çapında bir tekedeğe bağlı, bir turda 't 00 pals üreten artımsal enkoder kullanılacaktır.
Çözüm düşüncesi: Teker|ek çevresi ( n.D )formülü ile hesaplanıp, o kadar yolda enkoderin verdiği pals sayısı kadar adım atı|dığından, pals sayısına bölünerek, her pals'de ne kadar yol allndlğl hesaplanlr. Daha sonra enkoderden okunan pals saylsl ile her pals'te allnan yol çarpılarak toplam yol bulunabilir. Bu program fonksiyonlaştırılacak olursa her an elimizin altında bir enkoderden değer okuyacak hazır programımız olur.
oB1
Fc
CALL cAP
//Toplam boy hesabı :=DBl.DBWO
1
PALS_SAYlsI
sAYlcl_DEGERl URET|LEN BOY CALL CALL
Fc Fc
:=DBl.DBW2 :=DBl.DBD4 :=DBl.DBD8
2 3
//Enkoderden değer okuma //50 mm'de bir yazı yazma
F c1
PAREMETRE TABLOSU
E!!!! N
cAP
lN
PALS_SAY|sl SAYlcl DEGER|
TEMP
PALS MM
lN] ouT
URET|LEN BOY L #cAP
iIrıQ_ Eqry LAMA |LNT
lNT DlNT
DlNT
DTR
L-R L
3.140000e+000
#PALS_sAYlsl
DTR /R
T #PALS MM L #sAYlcl_DEGERl DTR L-R #PALS_MM RND #uRET|LEN BoY
T
Enkoderin !9ğ!9@1öı tekerlek çapı Enkoderin bir turda ürettiği pals sayısı
Enkoderden alınan pals sayısı (COUNTVAL) Pletilen her pals'e karşı doğrusal iler|eme miktarı İEnkoderin okuma yaptığı parçanın toplam boyu
ll100 ll10o.0 l13.14 l1314.0
ll1o0
)
Enkodere bağlı teker çapı
)
Çevre uzunluğu
//100.0 l13.14 l13.14
) //10000 ) //10000.0 l13.14 ll31400.0
ll31400
//31400 mm Yavuz Eminogu
)
Bir palste alınan yol
SFB 47 "COUNTVAL" değeri
Toplam üretilen boy 115
PLc PRCX;RAMLAMA VE s7
3
Fc2 CALL "coUNT" , DB2 (CALL sFB 47, DB2)
LADDR
CHANNEL SW_GATE CTRL DO sET_Do JoB_REQ JoB_lD JoB_VAL sTS_GATE sTS_STRT sTs_LTcH sTs_Do sTs_c_DN STs_c_uP
coUNwAL LATOHVAL
:=W#16#300 :=0
:=TRUE :=TRUE
DBl.DBD4
JoB_DoNE JoB_ERR
JoB STAT
116
Yıvuz Eninoğtu
PLC PROGRAMLAMA VE s7 3m/4m-2
DB1 ADREs 0.0
2.0 4.0
URET|LEN BOY |LERLEME M|KTAR| KARS|LASTıRMA DEGER|
8.0 12.0
16.0
Fc3
E]
sEMBoL cAP PALS sAYlsl SAYlcl DEGER|
L DBl.DBD ,l64 L DBl.DBD
BAŞ.DEGERl
lNT
0
lNT
0
DlNT
L#0
DlNT DlNT
L#0
DlNT
L#0
Aç lKLAMA
L#50 ]
//Enkoderden okunan değer //Enkoderden okunan değere, istenen ilerleme miktarının
eklendiği alan >=D
FP M = M AM
sQ AT
50.,1
50.0
//lstenilen ilerleme miktarı sonrasında üretilen darbe
50.0 124.0
lNazı yazmakiçin gerekli çıkışın oluşması
1
RQ
124.0
A Q 124.0 L s5T#2s SDT A M 50.0
//Çıkışın aktif olacağı süre
1
JcN L L
+D
T
atla DB,|.DBD
DBl.DBD 12
16
//Enkoderden okunan değerin 50 pals'de bir kaşılaştırılması //Her çıkış üretildiğinde bir sonraki çıkış noktasını belirleme //Bir önceki karşılaştırılan değer //herleme istenen pals sayısı
DBI.DBD
16
//Bir sonraki karşllaştınlacak değer
A l 124.7 JcN sil
atla:
L T
sET
R sil: BE
0
DBl.DBD
//Gerektiğinde enkoderin çıkışını sıfır|ayan reset sinyali
4
c40
Yavuz Eminogu
,l17
PLC PROGRAMLAMA
\T s7
sAYlcl lLE "HARDWARE INTERRuPT" KuLLANMA Hızlı sayıcı fonksiyonlarında karşılaştırma işlemleri çevrim süresine bağlı olarak işleme tabi tutulursa gecikmeler oluşabilir. Yani hlzlı saylcı kartlarlnda giriş sinyalleri çevrimden bağımsız okunur ancak sayıcı içeriği istenen değere ulaştığında dijital çıkış kanalının sahaya sinyal göndermesi ancak çevrim süresi sonrasında gerçekleşir. "Hardware" ayarlarında "lnterrupt" seçilmesi durumunda enkoderden okunan sayma değeri bizim belidediğimiz sayı değerine ulaştığında, çevrim süresine bağlı olmaksızın bir çlklş oluşturmak istenirse oB 40 çağnlıp içerisindeki program çalıştırllmalıdır. B. Hlzı-l
"operating mode" alanlnda "Count periodicalıy" Ve "BasiG Parameters" penceresinde "select interrupt" alanlnda "Process" seçilir. Eğer sayma işlemi sırasında bir hata OB si (OB 82) çalıştırılmak istenirse "Diagnostic", hata oB'si ile beraber kesme oB'side (OB 40) çalıştırılacaksa "Diagnostic+Process" seçilir.
Properties
Cl,"-"l,
-
Count - (ROA2,4)
|İll
Opeü.iirE mode:
Gertıd I Addesses Basic Paıarrıeteıs I Cou*
l
selecı inteİı|4l None
I I
cı,*,,a, e"n""ı
|
_
count
X
(Ro/s2.4|
|il
0peİ.ıiE
aa*.*,,* | gdg.
üIı.de;
pağıa.rc
count
I
Op.ıaling PddrEteİs tJp
r-l
Gais fwlcliüi
|-
Ed v&ej lngj ..
550
0utsd
-
signalev&dlİl:
Ch
Eolaİy en.adel douHe
i l
couni dection nvened
ı= conpdEo1 V6Le
Count <. conpd.bon Pu|se dl cotlDdisorİ
Vfu
v&e
Hrrdwale lnteürupı
T r F
Haİdwaüe g€le
Co(,]ting
ee.İing
Hğdu,€le gde dosilİg 0n feaching
|- 0vallı,ı
La(ch.
conpddr
T
sbnd§}lw qde:
"Hardware lnterrupt" alanlnda da "on reaching comparatoı"' aKif edilerek, sayma değeri "Compaıison vaıue" değerine ulaşıldığında OB 40 çağn|ır ve içerisindeki program bir çevrimlik çallştlrlllr. Örneğin OB 40'a;
sET s Q 125.0
acteristic. d *İe oLıput:
CoüJnl
17 ıaarıae g*e
T
|
Basjc palanıetğs I
Prope.ıies
Count perbdicdy
FOkıfl FOHrl
" Assignment d he i]Pü data Uırdeflow
diye bir program yazılırsa, OB 40'ın çağrılmasında "Q ,l25.0" setlenir. ilgili çıkışın görevini tamamladlğlnl bildiren bir sinyalle cevrimsel bir program bloğunda da (örneğin OB 1) resetlenir.
yukarlda gösterilen ayarlarda saylcl içeriği 500-550 araslnda saylclya ait kontak çıkışı çevrim sonunda aktif olur. Bu "0" kanal için "Q 124.0"dır. Bunun yanlnda sayıcı içeriği SOO'e ulaŞtığında "lnterrupt" aktif olur ve OB 40 çalıştırılır. OB 40 içerisinde aktif edİlen çıkışİar ise çevrim sonunu beklemeden aktif olur.
"lnput" alanında "Hardware Gate" aktif edildiğinde "Hardware lnterrupt" alanındaki "Hardware gate opening/Glosing" de aktif olur. onlardan hangisi aktif edilirse "Haıdware gate" dijital girişi "1" veya "0" edi|diğinde de OB 40 çağnlır. 118
Yawz Eminoğu
Prc PROCRAMLAMA !,E s7
c. FM 350 HızLı sAYıcı MoDULÜ FM 350 hızlı sayıcı modülü montaj rayına eklenip, gerekli kablo bağlantılan yapılıp, ilgili modüle ait programlama yazılımın kurulumu sonrasında, bilinen yöntemlerle PLC
konfigürasyonu oluşturulur. FM 350 modülü "Counter liodüles" altından seçilip uygun slota eklenir. Ekleme sonrasında aşağıda gönilen özellikler penceresi otomatik olarak veya çift tıklanarak açılır. Bu pencerede hızlı sayıcı kanallarının hangi amaçla kullan ılacağının seçimi yapılır. k
jo e !_. ş.
l
tr. h
orr.ğ st6
ıitİ
a jtG! aa EE ı,
ı9
ro, &Ğ.l^,4q
ı
rffir
6
-r-d4
..
(:tdob7ğ5r*fu
Fd
91.1!|
o-. lı-!
.fuodfulEAgüi,fu
üıJ
r tfuid(JrdObrN.p T fuı4lod.b7!4
Eıou,
|fui= |i.M;-l
lffi-=
---l!
B
L
İ:
'g!-
|.*.= |bk=
|furü
|ffirl lı;w-l |fu"*l
lfur= l;w-l |fu,*l ful
ı
!
|fub=
H*
a, m
^rA!m,ç l * a, muırn *mur l *oı muıımcmut l fu@,@WEFrcouE İ fu or@İEaı@E
Eif, @o 6€ l
Bundan sonra yapılacak işlemler kompakt CPU üzerinde sayma modülünün kullanımına çok benzer. orada tek pencerede gerçekleştirilen işlemler burada her bir fonksiyon ayrl ılmaktadır. ncerede Ömeğin; "Encoders" İ lM 35c2co,t lA,,Eıİ,g D,d,lt 6] f . td.t tblg p(c vğ windo* çift t|klanarak açllan Elel!l özellikler penceresinde o-,* li-l enkoderden okunan sinyallerin nasll işleneceği/çozünürlü k seçimi yaplllr. a
OoiDaoldr
ldldE
a qudıaç Fd.,
Tdn
rğ
0l
t-------i 0x
r--------i
c-"a
|
ıt
Y.vüz Eminoğlu
I
,l19
Plİ
A
\E
s7 300/400-2
''operating
FM
]lılodes" çift tlklanarak enkoderden okunan değerin nasıl işleneceği seçilir.
cont r lAs,igfung P.6fut 6] tdn 0tbu9 PL( v@ wm.'e
j-ü|
]5G2
Flk
glgl
g
cı-,*
HelP
|t--l
E
r,..'.'"a.. lii-
,lln"
0l
c-,-ı |
T
oEİ]o üEAddüıe6*
T R.diD &.p.İn vJt
c-,p*-v.ı-r
T fuıEğEHddE 6!.. T T
ğr"iulmgd .t d A&.ü,n
T
P.:.hE!
aononü
.-,np-"ıı-,ı
T-ffi
T
P.].üt
jM
|---------6
l--------n
VJt ]
|---------i'
!.. FalonvJeü
."e",",,J,"] l-------l
""n
"Outputs" çift tıklanarak açılan pencerede de dijital çlklş kanallnln hangi şarlarda aktif o|acağl seçimi yaplllr.
l
outs Jts
oubı B.h.Viİ 16 No Conpaisrı
0dBrts
a
0n a Cor*
a
0n a Colrl <. Cdüıp.,üdı
T
sdsrftnc
0K
120
|
"Interrupt Enable" çift tlklandlğlnda'lnterrupt' kullanlmlna ait seçimler yapılır. Pencerelerde bazı parametrelerin pasif olması önceki pencerelerde yapılan seçimlerle ilgilidir. Ömeğin PWM seçilerek bu pencere açılsaydı sol alt penceredeki pasif alanlar aktif olacaktı.
1:
F.3ğh!.] L.iEai ]öh fduğ 2
ı*.-v"ı,.z
ı*
Yaruz Eminoğlu
>=
cdüpdilonvdLı
vJ,
var.re 1
clrt
l
H"b
l
Pl-C
vE s7
2
.ılplisine . Hızlı saylclya ait sürücü programlnln yüklenmesi sonraslnda "fm-cntli" altında fonksiyonlar
kütüphane fonksiyonlarl -
ek'ienir. Bu fonksiyonlar içerisinoe oe
tomjİtİ
CPU'da kullanılan SFB 49 daki parametreler çok sayıda töksiyonıa yerine ğetiriııİ.'-"g{a rcbb
ğ
6-ğ
a_ı
sfB blo.ıs
contİ.] counte.
fı, 350
(irl.,i6
*a ğ O
ia E a
ğ-O
o"o E
tE2
lrc 6ıo.E
a
ndıib. st na.,o rir.,y R.du.dsr rc ccl vlo n du,n ,rto lilicp rn n auna.nt o cec vsı
Eıl
f:No
???_DE ıfo
9oı.tAIrc_ü€r_cP
c,RAplo
+ğ
x.tYoİİ 2: Title
d,*ğ_vı
i|=E@i
] i - Fc' ctaı2_un 6i_cMr ; ;-lğ cNI4iD n _cN, : __İ Fc5 ğAG_nD a[,l_cNT ğ5 .fuitğ_v2 :_- tB CNTıWR l{ FM_CI{T :_ı E4 cNİ2RopN lM_cirr İ, lc' cNT2_cIR FıvLcNİ ,. İl fc] cı{I2_un fu_CNT , ı fcl aNİ2_RD Fı,i_clvT .,a. FcJ
DAG_Ro
lM_c
lE3
wIite data lecords to
???
DB No
@ı
sF cR
m
w2
2
o,
4
@ı
@"
V)ı
7_i
a" a"
,
V)o
i
V)1
@ı
o,
ll l , oo 1 1
ıl?
TlT
B.
8 9
-8 -Ei
tl-N
@z
o
ol
_jlt @
V)a
a
Elo RET vAJ,
T
3$n
@(r{lER taootıE
FM 350_2 ncNT2 rıR'
Et{
iiodülun ön görünümiı Ön konneRör Ön kapak ve Dağlanthr Fu
inoduie
2
ncNT2 cTR"
2
13
la
@"
---/,
yan taraftaki resimde görüldüğü FM 350-'l hızlı sayıcı modülünün enkoder kabloları 6-'l 0 numaralı klemenslere, 1 3-14-1 5 dUital
girişler (staft, stop, set), dijital çıkışlar ise 17-'t 8 numaralara bağlanır. 1 ve 2 nolu bağlantılar 24V besleme içindir (Hem 5V hem 24V enkoder için). 'l9 ve 20 nolu bağlantılar dijital giri çıkış için 24V besleme bağlanhlarıdır.
5.2V enkoder ile beslemesi 4 nolu klemense, 24V enkoder beslemesi 5 nolu klemense bağlanır.
V)6
O,
a" V)s @o
17
9
2L+
a,
Yavuz Eminoğlu
121
D.
"PwM" FoNKsiYoNUNu KULLANtrlA
..PWM',(PulseWidthlııtodulation=PalsGenişlikModülasyonu)bird.ıjitalçıklşın yani dijital çıkış kanalını genişıiğini'koniiJ ederek farklı gerilim değerieri üreimemizi sağlar. gibi kullanmam|zı sağlaz. İnalog - -.-ğ,kanal ,ygri"." için hızlı sayıcı kartları kullanılabileceğigibi kompaK Cpu,lann sayıcı üzerinden mootiııerioJruııanılibiıir. Biz burada kompakt CpU üzerindeki sayıcı modülü "PWM" uygulamasını anlatacağı CpU',ia ait donanım ayarlirı penceresinde "Counf, satırı çift hklanarak özellikler "bhannel" alanlnda kanal numarası, "General ) p"n."Lri ii,ın. e, p"n."r;a"ı,i ,.Pulse_widsı moduıation" seçilerek başlanır. bp"iating mode,, alanında da
E@E
slırATıc]00o) (confg!İatbn) .. rdvılz-Fim
İ
E.ıüa
proP€.tiğ
1
cPU
2 )Q
0P
22
-
coljnt
-
o,,,a, |İl
3ıI-2 ıP
Q€rdiE,,od.
eıı:-ı |ıa*ııs I aı-
Dl16/0016
shğtD.İdiin:
21
3
ü
(R0^2,4)
rıırıeı
|
cğrr
cdrr
p..io&i,
4
5 6 7 8
lbe Gği*
lüod]la.rln
,,Pulse-width moduıatıon" seçildiğinde penceredeki alanlar araslna otomatik olarak "Pulse-wldth modulation" alanı da eklenmiş olur. PDP.ni6
-
c4nt
Burada anlatılan donanım ayarlarlnln yanlnda "sFB 49" kütüphane fonksiyonu ve ilişkilendirilen data blok içerisinden de diğer parametreler atanlr. "SFB 49" parametrelerinden .sw_EN" girişinin ..0''dan '.1'' dönüştüğü (Pozitif kenar ile çalışır) andan, "ondela},"da tanlmlanan süre (5 sn) sonra ilgili kanala atanan Çlklş (Kanal 0 için = Q0.0) "Peıiod"da tanımlanan periyot (2 sn) ile çlklş Verir.
- (RO/s2.,i)
opğri, mode: o-,ı, |ol c--ı |ıat* |ree.'r,*." Aİ*ltİd,
P.nt t.]ft,
(.
o/ırfüd: Tmb*;
orındğr e"ıoı:
ıl"d/"E, l
c s7.*9 rJF r 0ı6
[--ffi.m [---ffi', ı-
liİİrmF*.driid!: r----.1tıİ hFr
|3ikı],
T
Hardtrneqa|eopEhir!
oK
122
l
og"r
l
c-,a | tı+
Yawz Eminoğlıl
|
PLc
VE 57
o
1- Başlama gecikmesi
@
2- Pals süresi 3- Periyot 4- Dijİtal çlkış
@
o
_ 9ıkış kanalının (Kanal 0 için = Q0.0) pals/aKiflik süresi "SFB 49" parametrelerinden "OUTP_VAL"de tanımIanır. Donanım ayarlarından ''Output format'' kısmında ''Per mil'' seçilip, SFB 49 parametrelerinden veya ilişkilendirilen data içerisinden .oUTP-VAL'' girişine "0 ) 1000" arasında değer atanlr. "0" değerinde sürekli kapalı, ''500'' değerinde ''%5b'' a k "o/o50" kapalı, "900" değeri "%90" aık "o/o1o" kapalı "'l000" ve üzerinde ise sürekli açık hale getirir. "Output forınat" kısmında "S7 analog value'' seçilip "OUTP_VAL'' girişine bağlanan analog sinyal büyük|üğüne göre "STS_DO" yani '.Kanal 0 için = Q0.0'' aktif oİur. cıkıs formatı "Per mil" "S7 analog
Pulse
value"
isliği
(Output value / 1000) x period (Output value / 27648) x period DB4 9
sFB4 9
pulse output rno.iu 1e i PIrlsE' . - . _I,ADDR
-EN
,..
I0.
0
_cEAtlı|EL _sw_EN
. . - _ırAN_Elo - ..
_sET_Do
PI!l256 _oulP_VAJ,
ENo
sTs_EN sTs_sTRT
t
t t JoB JoB ERR t JoB STAT t sTs_Do DoNE
"LADDR": Hızlı sayıcı kartının özellikler penceresinde tanımlanan hızlı sayıcı kartı başlangıç adresidir. Orada adres alanında desimal olarak "768" yazmasına rağmen fonksiyona SlMAT|C formatında "W#1 6#0300" olarak yaziır. Bu değer ilişkilendirilen data blok tarafından da atanan default değerdir. Farkll bir değer yazılacaksa buraya Veya data blok içerisine yazılabi|ir. Eğer adres olarak "300" kullanılacaksa bu giriş boş bırakılabilir.
. . . _Jos_R.EQ ...
_JoB_ID
..._JoB
vAI
"CHANNEL" Hardware ayarlarının özellikler penceresinde tanımlanan kanal numarasıdlr. llişkilendirilen data blok taraflndan da atanan default değer "O"dır. Dolayısı ile kanal kullanılacaksa bu giriş boş bırakılabilir. 'sw_EN" girişi fonksiyonun yazılımla aktif edilmesini sağlayan giriştir. ilgili girişin pozitif kenarı ile (0 1) çalışır. "l" olduğu sürece çıkış aktiftir, "0" olduğunda kapanır. giriş parametresi "1" yapıldığında dijital çıkış silinir. "MAN_DO" Eğer özellikler penceresinden "Haıdware gate" aktifleştirilirse "SW_EN" ve "SET_DO" inputunun da pozitif kenarının kullanılması durumunda ("Software" aktif edilmesi yetmez) dUital çlkış aktif olur.
numarası )
Yawz Eminoğlu
123
PLC
AMI-AMA \rE 37 100/,lfi)-2
65535
zaman tabanl: 'l ms 1 ) 65535
65535
0
Zaman tabanı: 0.'t ms
"Period" arallğl
4
"Ondelaf'
0
aralığı
En az darbe süresi
ş
) 2)
periodl2
HATA KODLAR| SFB 49 parametrelerinden ..JoB_ERR "JOB_STAT" içerisinde tanım|anır. Hata kodu Aclklama w#16#041 1 Periyot çok klsa,
=
) 0)
65535 period/2 (0 = 0.2 ms)
TRUE" olduğunda bir hata vardlr. Hata nedeni
w#lffi412 w#lffi421
Periyot çox uzun. Başlama gecikmesi çok klsa. W#lüO422 Başlama gecikmesi çok uzun. W#l6#0431 En az pals süresi çok kısa. W#16*0432 En az pals süresi çok uzun. W#l 6#04FF Geçersiz numara. W#l6#8001 çallşma modu veya parametre hatall. "Hardware" ayar|arında doğru çalışma modunu girin veya sFB'de parametreleri düzenleyin. W#16#8OO9 Kanal numarası hatalı. Kanal numarası < 3 olmalı. (CPU'ya göre değişir).
124
Yavuz Eminoğlu
vE
Vııı.
s7 300 PLC,LER lLE Kot{TRoL |şLEMLER! A. KUMANDAVE KONTROL KAVRAMLARİ Kumanda; Bir veya daha tazla giriş değişkeninin belirli bir programa göre çıkış değişkenlerini etkilemesidir. Çıkış değişkenlerinin giriş değişkenlerini etki lemesi söz konusu değildir. Geri bes leme söz konu su deöildir (Acl k etki sistemi) ö rneğin, bir motora çalış emri verilmişse, motor standart devrinde döner. Ancak yüklenme ve gerilim değişikliklerinde motorda meydana gelen devir değişikliği dikkate alınmaz. Eğer devir saylsınln her şartta sabit tutulmasl gerekiyorsa, motorun bir kontrol sistemi ile kontro| edilmesi gerekir. Bir lambanın bir anahtar yardımı ile açılıp kapatılması, çamaş|r makinesi veya trafik ışıklarının kumandası ömek olarak verilebilir. Kontrol; Kapalı çevrimde denilen bu sistemde ayar edilen değer sürekli kontrol edilir, anma değeri ile kıyaslanır ve daha sonra gerekli düzeltme yapılır. Geri besl me vardır {kaoalı i sistemi) öm eğin, bir kontrol sistemi ile konhol edilen motorun devri, sürekli ölçülerek ani Yüklenme veya gerilim değişikliklerinde, kontrol ünitesi tarafından gerekli müdahale yapılarak sabit tutu|ur. Karş
a$ncl {+)
istenen değer
set d,eğeri (sP)
Bozucu etki
Konbolfa*l
\
+
(t)
Konüolğr
Gilç Binmi
t)
kontrol edilen sislem
GĞrçek değer (PV)
Ç*lş öçme dlzeneği
Kontrol düzeneği çalıştırıldığında, kontrol edilecek sistemden bir ölçme düzeneği yardımı ile okunan gerçek değer, istenen değer ile kıyaslanır aradaki fark hesaplanır. Elde edilen kontrol farkı, kontrolör tarafından son kumanda elemanına (güç birimine) gönderilerek kontrol edilen sistemin enerji birimi şeklinde çıkışa gönderilir. Çıkış sinyalinin işe dönüşmesi ile okunan gerçek değer sürekli istenen değer ile klyaslanarak çıkış sinyalinin güncellenmesi sağlanır. Aşağıdaki sıvı seviye kontrolünde, sabit açıklık oranındaki bir vana ile doldurulan sıvı, şamandıra tarafından kontrol edilen ayar|l vana yardlml ile sıvı seviyesi sabit tutulmaya ılacaktır
I
Sıvı seviyesi yükseldikçe, şamandıra yükselecek ve ona bağlı ayarlı vana o oranda açılarak daha tazla sıvının akmasına izin vererek sıvı seviyesinin düşmesine neden olacaktır. Sıvı seviyesinin düşmesiyle vana açıklık oranı da azalacaktır.
E*l
Yavuz Erninoğlu
125
B.
s7
AVE s7 3m/4ül2
PLc
]m PLc,LER
.F.
KONTRoL iS
KONTROL UYGULAMAS| ÇEŞİTLERİ
1. sÜREKLl oLMAYAN KoNTRoL a. lKi NoKTA KoNTRoLÜ (oN-oFF KoNTRoL) b. üç NoKTA KoNTRoLü (YüZER KoNTRoL)
2. sÜREKLi KoNTRoL a. oRANSAL KoNTRoL (P-KoNTRoL) b. oRANSAL + |NTEGRAL KoNTRoL (Pl-KoNTRoL)
c. oRANSAL + TÜREVSEL KoNTRoL d. oRANSAL
1.
+
(PD-KoNTRoL) |NTEGRAL + TÜREVSEL KoNTRoL (P|D-KoNTRoL)
sÜREKLl oLı'AYAN KoNTRoL
a) İKİ NoKTA KoNTRoLÜ Bu kontrol sisteminde; belirlenen iki seviye arasında kontro| edilen sisteme ya tam enerji verilir, ya da tam kesilir. Yani çıkış ya tam açlktlr, ya da tam kapalı. Bu nedenle bu tür kontrol işlem|9!i ne "ıki nokta kontıolü" ve a "OnOff Kontrol" adı verilir. lslnma eğdsi On-Off kontrolde açma kapama eğer tek nokta olarak noktasl ( Hi§€.ze) G€rçek A.laht lİna // değ€r belir|enirse, sık aralıklarla açma *aiğl ,,/ Ust slnlr kapama gerçekleşir. Bunun Şq!_qeğe.i oluşmaması için bir hata oranı s oğima eğdsi belirlenir ve çıkış sinyali, "Set Alt s|n|l Değeri"nin hata oranı kadar üstüne çıktığında "0", altına indiğinde "1" olur. zdnaIl Çük]ş
Agk %100
K+*
o/o0
Anahtarlamap€fyodu
2
1 I
-
.9
A9ık
I I
l
3
4
Teorik olarak böyle görünen eğri uygulamada böyle olmaz. Enerji kesildiği anda gerçek değer hemen düşmeye başlamaz ve enerji verilir verilmezde hemen yükselmez.
ze,nal.,
Örneğin bir proseste kazan sıcaklığını kontrol eden sistemde, sisteme enerji Verilip kazan sıcaklığı artmaya başladığında "1 " noktasında enerji kesilse bile ısıtıcı sistem üzerinde devam eden slcakllk (yani kinetik enerji) ortam sıcaklığını biraz daha aftırıp "2" noktasından itibaren düşürmeye başlar. Ancak bu aradaki ısınma eğrisi profili değişir. Aynı olay sisteme yeniden enerji verildiği an içinde geçerlidir.
Kapah
ki nokta kontrol üniteleri, tolerans imk6nı olan sıvl seviye kontrolü, ısı kontrollü gibi yavaş reaksiyonlu sistemlerde kullanılmalıdır. Motor kontrolü gibi hızlı reaksiyon veren sistemlerde kullanılmamalıdır. Anahtarlama frekansı yüksek olacağ| için anahtarlama ünitelerine zarar verirler. 126
Yaıalz Eminoğlu
Prc
AVEs7
s7 300
,LER iLE
ls
örnek: Bir kazandaki su sıcaklı ğı termostat aracılığı ile kontrol edilecektir. Su sıcakl |ğ| istenen değerin hata oranl kad ar üzerine çıktığında ısıtlcı kapatılacak, soğuyan su istenen değerin hata oranı kadar altın a düştüğünde ısıtıcı yeniden çalışacaktır. Buu ulama fon n haline tirerek metrelendirerek lnlz. DBl ANAHTARl-ıruUl alıtlĞl Adres Tip Baş.değ. Açıklama +0.0 REAL 0.05 Hata orani +4.0 REAL 0 Hata_değeri +8.0
lNT
15000
+10.0
set değeri
lNT
0
+12.0
BooL
Gerçek değer
0
Çıkış
Fcl
lKı NoKTA KoNTRoLü Tip lNT lNT REAL REAL
lN lN IN
oUT oUT TEMP TEMP TEMP TEMP TEMP
lsim
Açıklama
se!-degeri gercek_deger
lstenen değer Okunan değer
hata orani
Set
hata_degeri
set degeri ile açma/kapama araslndaki Çıkış değişkeni
d€eri
ile açma/ka pama arasındaki mesafe 7o
BpgL
cikis
REAL REAL REAL REAL
alt sinir ust sinir
Çlklş değişkeninin ba şlama noktası Çıkış degişkeninin durma noktasl
anahtadama aral igi set_real gercek_real
Durma - çahşma noktasl arasIndaki arahk
REAL
L
ITD
Set değerinin real dönüşümü Gerçek değerin real dönüşümü
#set_degeri
DTR
T L
L "R T
'*anahtarlama_araligi
#anahtarlama_araligi
T
#us!_sinir
+R
#gercek_real #alt sinir
s
#cikis
L L
#ust 'bercek_real sinir
R
#cikis
L L -R L "R L /R T
#set_real #gercek_real
>R
#set_real #hata orani
L L
L L
#set real
#gercek_deger lTD DTR T #gercek_real L
oran
#set_real
L #set_real L #anahtarlama_araligi -R T #alt sinir Yawz EniDoğlu
1
.000000e+002
#set_real #hata_degeri
127
oBl CALL
Fc
1
set_degeri :=DBl.DBw8 (Plw
128)
gercelldeger :=DB1.DBW1O (PlW 130) hata_orani :=DB1 .DBDo hatıa_degeri :=DBl.DBD4 :=DBl.DBX12.0 (O124.0) cikiİ
128
Yavuz Eminoğlu
Prc
VE s7
2
,IlR iLE
s7 300
oL
b) Üç NoKTA KoNTRoL0
.
.B' kontrol yönteminde
ortam|. etkileyen iki adet dijital çıkış vardır. Bunlardan biri ortamı (+)_Yönde, diğeri (-) yönde etkiler. Üç nolİa kontro|ü iki;dea iki;okta kontrolünün biİaİaoa
_
kullanılma_sı gibi düşünülebilir. Çıkışlar dijital çıkıştır ve iki nokta ı.ontroıtinoe oıJro, gibı y, tam açık (o/o 10Ol,, ya da tam kapahdır. (% 0) .. lsıtma ve soğutma özelliğine sahip bir klimanın oda sıcaklığını kontrol etmek amacıyla kullanılması üç nokta kontrolüne ömek olarak verilebilir. Veya oĞmatik oi.v"ğİ"r" sisteminde yağın belli sıcaklıklar arasında tutulması gerekir. pompa çaıış,p vJğı bısmadan önce Yağın ısıtılıP akıcılığı artırılarak daha kolay pompalama ve y'agıİmİ oz-eııİgi tazandırııır y_ağın ça|ışma ortamında aşırı ısınması sonucunda viskozitesinin ijtenen seviyöJen aıağı düşmesini engellemek için soğutulması gerekir.
.
--
Gerçek değer
soğutudl AnahtarlarrE arallğl
| .--
ı/
,,(
,/ '/. Soğutucu şlnoktası
\
değeri
noKa Sl
lgtliı
i---
An ahtdrIerr€
:araltğt:
\
lstüü reset nokta§
lshcl
lsto
Set değeri
set noktag
I
l
Zaman
çklş Agk
%1
00
soĞUrU Kapalı %0
ı
ı Zaman
9kış Agk
%100
rrE peryodu
A na htarla
lslTlcl Zaman
Kapall %0
Anahtarlarna peryodu
Yawz Eminoğu
129
değerin örnek: ortam sıcaklığı PLC ile kontrol edilmek istenmeKedir. Sıcaklığın istediğimiz %5 altında veya üstünde olmasl istenmektedir.
(220 örneğin; oaa sıcaı<ıgınınl;;,;)}iörk,ş,""18oC^_olmasını istediğimizde; sıcaklık _ duracaktır. zzo x oosİüuğunda soğ*utucu çalışıp (220 220 x 0.05) _olduğunda + de duracaktır, (,t8 x 0.05) 18 de lsıtıci ise (is - ıa xb.o5) çalışıp,
DB1
Adres +0.0 +4.0 +8.0 +12.0
lTip REAL REA REAL REAL
Açıklama soğutucu hata oranl lsıtlcl hata oranl Soğutucu hata değeri
Baş.değ.
]
0.05
!p
+
05
0
L
ls*lcl hata değeri
Fcr Üç NoKTA KoNTRoL0 DEKLARA|SYON TABLOSU ıklama
Tip
lsim
lN
lNT
soğutucu set değeri
lN
lNT
sogutucu_se!_degeri isitici set d egerl
lN
lNT
ge rcek_deger
lN
REAL REAL REAL REAL
isitici hata orani
Okunan (gerçek) değer lsltlclya ait hatıa oranı
lN
oUT oUT oUT oUT TEMP
Soğ utucuya ait hata oranl lsıtıcının açma/kapama arasındaki 7o oran isitici_hata_d egerl o/o sogutucu_hata_degeri soğ utucunun açma/kapama araslndaki oran lsıtıcıya ait çıkış değişkeni isitici
sogutucu_hata_orani
l
BooL BooL
TEMP TEMP TEMP TEMP TEMP
REAL
sogutucu_anahtarlama_ara
TEMP TEMP TEMP
REAL
isitici set real
130
Soğutucuya ait çıkış değişkeni lsıtıcının başlama noktasl Soğ utucunun başlama noktasl
sogutucu
REAL REAL REAL REAL R EAL
REAL
lsıtıcı set değeri
isitici_alt_sinir sog utucu a l!_sinir
isitici ust sinir sogutucu_us|sinir llis itici anahtarlama ara
]
sogutucu
jsetJeal
FEAa bç!9" k real
lsıtıcınln durma noktasl Soğutucunun durma noktası lsltlclnIn durma-çalışma noktası araslndaki arahk
soğ utucunun durma-çallşma noktasl araslndaki arahk lsıtıcıy a ait set değerinin real dönüşümü
. soğutucuya
ait set değerinin real dönüşümü
Gerçek değerin real dönüşümü
Yavuz Emircğlu
7
Fc1 //Değerleri real'e dönüştürme #isitici se!_degeri
L
L
#sogutucu_set_degeri
L
#gercek_deger
lTD DTR T #sogutucu_set_real
lTD DTR T #isitici set real
lTD
DTR
T //Soğutucu #sogutucu_set_real #sogutucu_hata_orani
L L-R T
#gercek_real
//lsıtıcı L #isitici_set_real L #isitici hata orani
-R T #isitici anahtarlama ara
#sogutucu anahtarlama_ara
L #sogutucu_set_real L #sogutucu_anahtarlama_ara +R T #sogutucu_us!_sinir
L L
#isitici_set_real #isitici anahtarlama ara
T
#isitici ust sinir
L L -R T
#sogutucu_al(_sinir
L #isitici_set_real L #isitici anahtarlama ara R T #isitici alt sinir
#gercek_real #sogutucu_alt_sinir
L
#gercek_real #isitici alt sinir
#sogutucu
S
#isitici
L L
#gercek_real #sogutucu_ust_sinir
L L
#gercek_real #isitici ust sinir
s
#sogutucu
R
#isitici
+R
#sogutucu set_real #sogutucu_anahtarlama_ara
L L R
L L
L
>R
L #isitici_set_real L #gercek_real -R L ,t.000000e+002 -R
#sogutucu_set_real #gercek_real
-R L 1.000000e+002 -R L #sogutucu_set_real /R
T
L #isitici set real /R T #isitici_hata_degeri
#sogutucu_hata_degeri
Yavuz Eminoğlu
Hata değerinin izlenmesine gerek yoksa yazllmayabil ir
131
7
oB,t
CALL
Fc
1
sogutucu_set_degeri isitici_set_degeri gercek_deger isitici_hata_orani Sogutucu_hata_orani isitici_hata_degeri sogutucu_hata_degeri isitici sogutucu
132
:=DBl.DBW'16 :=DB'!.DBW18 :=DB't.DBW20 :=DBl.DBD0 :=DBl.DBD4 :=DB'l.DBD8 :=DBl.DBD12 :=DBl.DBX22.0 :=DBI.DBX22,1
Yaluz Emnoğlu
llPlw 128 ,PlW 130 llPlw 132
Q20) (18o)
(0.75:c) (0.75uc)
llQ 124.0
llo
124.1
s7
2.
süREKLi KoNTRoL
Bu kontrol şeklinde son kontrol elemanı, kontol edilen çıkış değişkeninin değişim miktarına bağlı olarak konum değiştirir. Kontrol edilen değişkenin kontrol farkı alanı İçerisinde aldığı her değere karşı, son kontrol elemanı farklı bir çıkış üretir. Bu amaçla üretici firmalarln ürettiği kompakt kontrol elemanları veya plc'lerin analog giriş çıkış kanal|arı kullanı|maktadır.
-------} Şamandra Yüks9l€n
s.vate
_--tt_
+
o.ıb
farkl
7 lstenilon 3.viy9
---------ü
PLC ile gerçekleştirilen kontrol uygulamalarında "P - PROPORT|ONAL (ORANSALr, lNTEGRAL (lNTEGRAL)" ve "D - DER|VAT|VE oÜREVSEL)" fonksiyonlari, bağlmsız veya kombinasyonları şeklinde kullanılabilir. "P - oRANSAL' fonksiyonu çıklş deği§kenini '|
_
oransal bant başlanglcına kadar tam güç ile çalıştlnr. Daha sonra ortamdan okuduğu değere orantılı olarak çıkış değerini düşürerek set değerine ulaşmaya çalışır. Ancak'P - oRANSAL" fonksiyonu ile set değerine tam ulaşılamaz, arada bir kontrol farkı kahr. Bu fark.Pl ORANSAL INTEGRAL" fonksiyonu ile giderilir. Bu arada set değerine daha çabuk ulaşabilmek ve sistemde meydana gelen ani değişimleri karşılayabiImek için .D TUREVSEL" fonksiyonu devreye allnarak "PlD _ oRANSAL |NTEGRAL TÜREVSEL" fonksiyonu ile sistemin tüm ihtiyaçlarına cevap verecek yaplya dönüştüRilür. PlD parametrelerine sahip sistemler, konvansiyonel veya mikroişlemci tabanlı olarak kullanılabilir. PlO sistemlerinin asıl amacı; istenen değer ile ölçülen değer arasındaki farkı, en kısa sürede ve a|t - üst sapma değer|erini olabildiğince az geçerek sıfıra indirmek ve istenilen değere ulaşmakır. Biz burada P, Pl, PD ve PlD fonksiyonlarını PLC'ye ait analog giriş - çıkış kartlan üzerinden uygulayacağız.
Yatuz Eminoğlu
133
a)
oRANSAL KoNTRoL (P+(oNTRoL)
oransal kontrolde giriş ve çlkış seviyeleri arasında orantlll bir davranış vardır. Yani giriş değeri büyüdükçe çıkış değeri de büyüyecek, giriş küçüldükçe çıkışta küçülecektir. Enerjinin % O'dan, % 100'e kadar ayarlanabildiği, oransal kontrol yapılabilen sıcaklık aralığına oranSal bant denir. Genel olarak oransal bant, sistemin ulaşacağı en son değerin bir yüzdesi olarak tanlmlanır Ve set değerinin etrafında eşit olarak yayl|lr. Ömeğin; set değeri 500uC olan sistemde, o/o4 oransal bant demek (5oo x o.(X ) 2ooc'lik bir lsı aralığıdlr. Bunun 1OuC'si set değerinin üzerinde, ,| ooc'si altlndadlr.
Güç
% 100 Kazanç Yo
50
lsl
y.0 480
520
500 oransaı ba.
oransal bant ile kazanç ters orantılıdır. Oransal bant azaldığında kazanç yükselir, tersi durumda artar. o/o Kontrol ünitesi oransal bandın alt sınırına (49o0c) gelinceye kadar, çıkışa (ısıtıcıya) 1oo enerİi verir. Alt slnlrdan set değerine gelinceye kadar çıkış enerjisi de orantlll olarak yavaşlayarak set noktıasında çlklşa% 50 enedi verilir. lslnln set değerinin üstüne çlkmaslyla, isıda-gittitçe düşürülerek, oransal bandın üzerine çıkılması durumunda enerji tamamen kesilir.
oransal kontroı ünitesinde kontrol far,l<ı hlçbiı zaman sıfırlanamaz yani
Sıcaklık ]ansal ban|
gerçek değer, sot değerine hlçbiı zaman eşitıenemez. set değeri ile sistemin sabitlendiği değer arasındaki farka kontrol farkı (Offset)
Offset
zaman
1y
Y.ulz Eninoğ]u
denir.
7
a
Çıkış
b
ç ftş
ŞaiEıöa
l
B@udl
biiyüldük
ğ E
değişkeni, oransal bandın (Xd) alt sınırı olan "X min" değerine ulaşlncaya kadar tam (%100) açıktır. Bu noktıadan itibaren okunan değer ile orantılı olarak çıkış değeri
azaltlll.
,
ğ
İı
Yu karıdaki resme göre açıklanacak olursa sıvl seviyesi şamandırayl hareket ettirinceye kadar çl kış (sıvı doldurma kanalı) tam açlktlr. Şamandıra sıvl taraflndan yukarı kaldırılmaya başlandığında, kaldırma oftınına bağh olarak sıvı doldurma kanalı kısılacaktır. Şamandıranın yukarı kalkma miktarı ile doldurma kanalının kapanma miktarını ..a/b'' oranı ("Kc" katsaylsı) belirler. Bu arada sistemin giriş değerini etkileyen bozucu büyüklüklere kaşl, çıkış değişkeni de aynı oranda etkilenecektir.
b ORAİ{SAL KONTROL,E AlT PLC PROGRAMİ BAşLA Set değednden (sP)
ge4ek değeıl (PV) çlkar, oran9allctsay| (t
sonuç
Sonuç maksimum değeıd
maksimum değerd en bllyükm0? U>Umax_
Çlklla ,0, gönder
küçiükmü? U
Ç ll0 şa hesaplanan
gOnder
yukarıda teorisi anlahlan oransal kontrole ait plc programını oluşturacak akış diyagramı yanda Verilmiştir. Bu diyagrama göre oransal bant olarak kabul edeceğimiz sınıra kadar çıkış tam güç i|e oransa| bant içerisinde hesaplanan değer ile oransal bandın üst sınırından itibaren minimum değer ile çalışması gerekir.
Çlkşa
'MaX'değeri gönder
Yavuz EDinoğfu
135
Örnek: PLC ile kontrol edilen bir tav fırınına ait sıcaklık ayarı oransal (P) kontrolör ile gerçekleştirilecektir.
Fc 1 lsim
Tıp lNT lNT REAL
lN lN lN
set_deger
İstenen değer (SP)
gercek_deger
Okunan değer (PV) Oransal katsayı (Kc)
oransa|katsayı
FEAL] ust limit
lN
REAL lNT REAL REAL REAL
lN
oUT TEMP TEMP TEMP
DEKLARASYON TABLOSU Açıklama
)
alt
limit
cikis
cikis real set real gercek_real
Çıkışa gönderilmesi düşünülen üst d€er Çıkışa g önderilmesi düşünülen alt değer Analog çıkış kanalı (U) Çıkış değerinin real kaşılığı Set değerinin real kaşıllğı okunan değerin real kaşılığl
Fc1
L #set-deger DTR T #set real L #gercek_deger DTR T #gercek_real L #set_real L #gercek_real -R L-R #oransa|katsayi T #cikis real
L #cikis_real JU ata ust: L ffust_limit JU ata
L L
ata: RND
>=Q
Jc
#cikis_real #ust limit ust
L L
<=ft
#cikis_real #alt limit
Jc
alt
BEU
alt: L #alt_limit JU ata BEu
T
BE '}cikis
Fırın içi sıcaklığı analog giriş kanalı (PlW 'l28) yardımı ile okunarak, set d€eri (PlW 130) ile kaşılaştlrılacaktır. oransal bant alt sınırlna gelinceye kadar fırın tam güçle ısltılacaktlr. Daha sonra slcakllk yavaşça kısılarak fırın içi slcakllğlnln set değerinde kalması sağlanacaktır.
136
Yivuz Eminoğlu
oB1
A l JCN
CALL
124.0 atla
Fc
1
set_deger gercek_deger oransal_katsayi ust_limit alt_limit cikis
BEU
atla:L
T
:=PlW130 :=PlW'l28 :=3.000000e+000 :=2.000000e+0O4 :=0.000000e+000 :=PQW't28
2.000000e+004 128
PQw
Yukarıdaki uygulamada'.atla'' satı rından sonraki program, bu uygulamanın biraz sonra ayrıntısının anlatılacağı servopnömati k sistem üzerinde uygulamasına yöneliktir. Yani "l 124.0" anahtan uyarıldığında silind ir bilm istediğimiz noktaya gidecek, bırakıldığında başlangıç noktasına dönecektir. Yukarıdaki progftıma benzer yöntemlerle ..Pl Kontrol'', ''PD Kontrol'' ve '.PlD bu fonksiyonlar çok sayıda matematiksel işlem gerektirdiğinden çok karmaşık ve gereksiz olacaktlr. Bunun-yerine slEMENs'in standart fonksiyonlan kullanılarak ta bu işlemler gerçekleştirilebilir.
kontrol" uygulamalan gerçekleştirilebilir. Ancak
Yavuz Emimğlu
137
c) oRANSAL |NTEGRAL TÜREVSEL FoKsİYoNu (PıD KoilTRoL) S|EMENS 57 300/4O0'de PlD fonksiyonlarınt gerçekleştirmek amacıyla kütüphanede "PtD Gontrol Blocks" altında beş ayrı fonksiyon blok (FB 41 , FB 42, FB 43, FB 58, FB 59) ,,System Function BIocks" altlnda üç blok (sFB 41, sFB 42, sFB 43) kullanllabilir. Ayrıca Bu amaçla kullanılabilecek fonksiyonlar şunlardır. Buiada kullanılan aynı numaralı bloklar, aynı içeriğe sahiptir. yani SFB 41 ile FB 4,| aynıdır.
'
FB41 coNT_c lcoNT FB42 coNT_s lcoNT FB43 PULSEGEN lcoNT FB58 TcoNT_cP coNTRoL
FB59TcoNT scoNTRoL
rrı ü.r ı+ı l+l
L-l
ı
(ğ
(Continuous Control SFB41/FB41 ) (Step Control SFB4ZIFU2\ : (Pulse Generation SFM3/FM3) : (Continuous Temperature Control FB58) : (Temperature Step Control FB59) : :
I{tü ndwort
E a | El
uod(J
a E uo*, E lıt*blı İdgtc aI lbfrİl!, FB
Fc blocİ, 5F6 blo*J sFc
E]
E
İ
o
ğ
rFB
ı+]
5F(
L4 aii
ıtdllbg
stğıdğd LLğy E @ sy*at hrrin dodç E {a 55-57 c6tvğtilg d* E E rEc R dirı dod§ E@ orgötdin dod§ H|q ı1[ ::rI E:ilj {- Fü{ı coİ{İ_c ICo r {- Eü2 co{r_s rcoİ{İ C F8t3 P(ı5EG[ı{ ıcoıll :, l E rum TcüaT_e (oa{lRol {- ffig Ico{r_s co{IRcİ. e ğ cormıİ*ın f,ods
E,m
Tı-5/ cğtı,€ıtiE
bhdı
tü*,
ııüpb nctıtı; ı"bübs
O.tö. ubİAİy o İ..dr.d .:,.ı,lrIllll
Ha
c
O
E .-fl
fi.
l
sFE cİu
lEc_Tc lEc_Tc cTD sFal 5F62 cTuo lEc_Tc
sFB38 lğc_A_B cor{TERs 5FE39 Po5 cor{TERs
{- l! ll , l]] j O 5FB,l2 coMJ lcOM ,-E 5FB43 PII.5EGEIıI lcoNT ,t]T
dod§
Bizim bu çalışmamız içerisinde ayrıntılı olarak SFB 41 lFB 41 (Contlnuous Control) "coNT_c" ve klsaca zaman oransal (adım) kontrol "sFB AaFB 42 (Step Gontrol) 'CONT_S"ün çalışma prensibi anlatılacak ve uygulamalada incelenecektir.
,|
36
Yrvuz Emiroğlu
S7 300 bir PLC içerisinde FB 41 ile PlD uygulamasınl gerçekleştirmenin ilk yolu elimizdeki donanıma uygun olarak standart bir PLC projesi oluşturulur. oluşturulan poede, prosesten bilgi okuma ve yazma işlemlerinin standart zaman aralıklarında olmas|nı sağlamak için, PlD fonksiyonun yazıldığı fonksiyon (FC 2), OB 35 (10O ms) tarafından çağnlmlşt|r. s]u^
l
a
M.naecl plD slİv()pl]()ll!l]ü
f. €Ü I,ğt Rc vlı. o!ü! lrf.
lü.b
oE ı?ei.[ bGlal et'ı i= lıiEl
; J ) \lllyo pnl] s|\]t1,1 ( 3 El,,l a ı §üaArEq|)
E
E El E
ı
3
oıJ İaaı.
o
s7
Fİqlğılı
o sr6 a Bbdc
sDiAlE Hrl
E
sıefl
w.a! ıbii. FI
\])üor]ldnr
acl 0041
i
11.I\
lİ].il\\.
9
]/s7plo]\]] ) slRv
-gVAr_]
aı
D Fü05 D sfEa]
FlDal
',Fcl6
|
ğ 4 al l 4 3 ğ: ü 3a 4 E h.
Y.vuz Eminoğfu
Prosesten okunan verinin, FB 41'in anlayacağı sayısal şekle dönüştürmek için FC ,t05 (SCALA), FB 41 den alınan sayısal değerin prosesin anlayacağı analog çıkış değerine dönüştürmek için FC 106 (UNSCALA) fonksiyonları kullanllmıştlr.
139
sFB4l/FB41 (coNTıNuoUs coNTRoL) FoNKslYoN şEMASı
sP_rT
l
PvPfR (İ{
ıflD8ı
cRP_la
Pu_PER
oh
+
0
1
GAı
+
Pv_ı,l Pv_a{m| 1
D
x
tElDB_w
ER
PV
ofF ^c.
l
Z NT
Tl.
iT_Ho'D.
0.0-0
P_sL
tı§,
|_sft
0-0<
+
+
0
1_1n_Oil
[ıİ_P
UrLvA
ı"uıa l
tIF
t
o0 rD, Til_[AG
0
ı
[tf{_D
D_sft
(ı(_ııjtLI ıı^i
Qtlİ{,l_Lıl
ıır , 0
_Oa{
l
L
Irıı_]xma
l_tı|Uııl
lr/
4
[,ıı_F^c. t-ıı{_off
[_ıa{_tİ.lı
Ln_[ıl
CRP_IN = PV_PER-(1 00/27g8) PV_NORM = CRP_IN-PV_FAC+PV_OFF LMN = LMNLlMIT'LMN_FAC+LMN_OFF LMN PER = LMN-27648/100
140
ılıİ{
Yavuz Eninoğlu
cf,P CırT oh
ı_n_PER
FBrsFB 41 PARAİIETRE DEĞERLERı PUT) VERl DEĞER öN PARAMETRE TlPl ARAL|Ğl DEĞER AÇlKLAMA
coM RsT
Boo L
FALSE
_
Giriş "'t " yapıldığında fonksiyon ile haberleşme kesilir, bütün alanlar sıfırlan lr. "0" yapıldığında sistem yeni değerlede devreye girer.
Giriş "'|'olduğunda sistem manuel çahşır. Yani PlD parametreleri devre dışı kalır ve MAN girişindeki değer çıkışa aktarılır. Bakım onarım işlemlerinde çıkışa sabit bir değer göndermek için kullanılır. Giriş "1" o|duğunda, analog giriş kanalındaki proses değeri PV_PER girişinden, "O" olduğunda PV_lN girişinden okunur 'P" Oransal kontrolü akif yapar
MAN oN
B ooL
TRUE
PVPER oN
Boo L
FALSE
P sEL
BooL
TRUE
l sEL
BooL
TRUE
BooL BooL
FALSE lntegral değerini tut FALSE lntegral on değerini yükle
D sEL
BooL
FALSE
cYcLE
TlME
sP
REAL
lNT HoLD l lTL oN
PV
lNT
lN
]
REAL
PV PER
WoRD
MAN
R EAL
GAlN
REAL
>=
1ms
_100.0,.. 100.0 %
-100.0... ,t00.0
_100.0... 100.0 %
T#ls
yapar. Set değeri ile gerçek değer arasındaki ofseti ortadan kaldırır. "|" lntegral kontrolü aktif
"D' Türevsel kontrolü aktif yapar. Set değerine ulaşma süresini kısalhr.
FB/SFB 41 işletim aralığı. oB 35 tarafından işletilecekse ondan küçük olmamalı
0.0
Set değeri. Sistemin çalışmasını istediğimiz % değer.
0.0
kontrol edilen sistemden oku nan proses değeri.
l
o/o
Bu iki değer ka§llaştlrlllr. sP lNT > PV lN (PV_PER) sisteme
enerji Verilir, küçükse enerji kesilir.
Proses değerinin analog giriş kanalından (PlW 256) okunması. Değer buradan w#l6# okunduğunda program tarafından Yo 0000 değerine dönüŞtürülerek sP_lNT kaşılaşhrılır. Manuel giriş değeri. "MAN_ON: 1" olursa buraya yazılan % değer karşıllğl çlklşa yazılır. Örneğin 50.0 değeri verildiğinde, 0.0 o/o50 si ç|k|şa tam gücün (27648) aktarılacaktır. Kazanç. Kaşılaştırma sonucu oluşan farkın çarpım katsayısı. Set değerine ulaşma zamanını kısaltır ve uzatır. Değer 2.o küçüldükçe rampa zamanı artar, büyüdükçe azalır. Çok artırılırsa osilasyon oluşur. Yavuz Eminoğlu
141
T
TlME
TD
TlME
>=
cYcLE
T#20s
lntegral zaman sabiti. Farkln toplanma arallğl. Zaman kısaldıkça set değerini yakalama süresi kısalır. Değer çok küçük olu§a sallnlm yani (osilasyon) oluşur.
T#1Os
Türev zaman sabiti. Türevin toplanma aralığl.
i
TM LAG
T ME
D EA DBW
REAL
L
REAL
LMN LLM
REAL
PV FAc
REAL
PV oFF
REAL
>=
CYCLE >=
cYcLE/2 >=
0.0 %
LMN_LLM ...100.0%
LMN_HLM .._100.0%
T#2s
100.0
Çıkış değeri üst sınırı
0.0
Çıkış değeri alt sınırı
1.0
Proses değeri çarpanl
LMN oFF
REAL
0.0
l
REAL
112
R EAL
(segment)
Proses değeri ofset katsayısı
R EA L
sV
Ölü bant değeri. Hatanln azalmasını sağlar. Büyük tutulursa proses değeri set değerine daha yavaş yaklaşır ve aşma olmaz. Küçük lursa aş ma olur ama daha hızlı oturur.
0.0
LMN FAc
D
elgr o!g.L
i l
,t.0
|TLVAL
Geciktirme değeri. Değer büyüdükçe sistem daha
-100.0... 100.0 % _,|00.0...
100.0 %
0.0
0.0
Tl, TD ve TM_LAG değerleri sistemin hlzll veya yavaş olma durumuna göre değişir. Hızlı cevap veren sistemlerde bu değer|er küçük, yavaş sistemlerde büyük olmalıdır.
Kontrol değeri çarpanl (segment) Kontrol değeri ofset katsaylsı
PV_PER girişindeki verinin çarpım katsayısı.PV_FAC ve PV_oFF verilerinin toplamı ile çıkış çarpılır. (segment+offset)
LMN_PER ve LMN çıkışlarına uyguJanan çarpım katsayısı. LMN_FAC ve LMN_OFF verilerinin toplaml ile çıkış çarpılır. (segment+offset)
lntegral değeri lleri besleme giriş değeri. Giriş değerine bozucu etki uygular. Girilen değer "-' ise sapma aşağı yönde, "+" ise sapma yukarı yönde oluşur.
Yaılz
Eminoğlu
oUTPU LMN PER
REAL WoRD
Analog çıklş kanalına gönderilen saylsal değerin % oranı Analog çıkış kanalına gönderilen sayısal değer büyüklüğü W#16# Sistem tam güç ile çalışırken çıkışa 27648 değeri 0o00 gönderilir.
QLMN HLM QLMN LLM
BooL BooL
FALSE Çıkış değeri HLM_HLM
ile tanımlanan üst değeri aştı
FALSE Çıkış değeri HLM_LLM
ile tanımlanan alt değerin altına
LMN
0.0
indi.
LMN P LMN l LMN D PV
REAL REAL REAL REAL
ER
REAL
0.0 0.0 0.0
0.0
0.0
Oransal kontrol işlemine ait sonuç çıkış değeri. lntegral kontrol işlemine ait sonuç çıkış değeri. Türevsel kontrol işlemine ait sonuç çlklş değeri Okunan proses değeri. PV_IN veya PV_PER den okunan bilginin dönüştürülmüş halidir. Set değeri (SP_lNT) ile kaşılaştırılacak değer. Hata değeri. SP_INT ile PV arasındaki fark. Sistem oturduğunda "0" olmasI gerekir. Bu çıkışı azaltmak DEADB_W ile sağlanır.
SFB 41 / FB 4l bloğunun kullanımında boş bırakılan glrişler, blok'un çağnlmasında lllşkllendlrilen DB deki default değerler atanır ve çıkışlar oraya yazılır.
Yavuz Eminoğlu
143
s? 30o
MA VE s7 ]00/400-2
Prc PRoGRAM
PrLER iLE
oL isl-EMLERi
PARAMETRELERiNİN lzı-eııuesi (PlD Gontrol Paramete. Assignment) 57 300 de PlD fonksiyonları kullanılmak suretiyle hazırlanmış bir programda, i|gili fonksiyon için rezerve edilmiş data bloklardan veriler alınarak bunları grafiklere dönüştüren programlar kullanmak mümkündür. Bu amaçla "PlD Gontrol Parameter Assignment"nin önce nasıl kullanılacağı anlatılmış daha sonrada uygulama grafikleri çıkarılmıştır. d) PlD
lat ?
)
slüİTlc |lcn.ger PlD
a]i E]i' iiljia
Pi!.
\jP,]
DE g?.a {h :
PD_Yi _ D|rYavu: PtD_vl
lc 1)ql
cFU ıt]Es7
ğ1
@s
slMA
GıB
Yavuz Em inoğlu
ö
)
S|MATIC
STEP 7
)
PlD Control Parameteı Assi nment"
ğ fur-.t @ t-,,a*ıı, 6 ffci,&ı t! ıtğe ı.ııı+ıı* a Pİ,oTdRo(5
+$:jl,]A-ı
tğ
offi@
Bdq6A,
c
Plo9.!,
t E
\ürrio, ürddc
iJ
E
qn E vtrğrra{ğn Ayrh
Yİr offt.
Edr.,
ğ
sımno
@
cr.*l
ğ.d-l9,
Gl
plrrü
a 6 m (.tDd o.dçt vı,o.o,9€ ğ tiic(İEöb?F, E ti« iad.2üre^rütF & sraAnc tw,ry ğ 5ıE7rıe h v*rc
@ oa,d,
P",,Y
Açılan pencerede PlD fonksiyonlarının kullanıldığı pğe bulunur. Projeye ait "Blocks" seçildiğinde o projede PlD fonksiyonlarıyla ilişkilendirilen "DB"ler liste|enir. Grafik hangi DB'den veri alınarak çizilecekse o DB markalanır- Veriler PLC'den alınacağı için "Online" seçilerek onaylanır.
m),
€4btİ v!.0,l.a
srE?a,E
A.,ğYİU,
6
ftolodP,oRt
'-2o
sıfaou$rc '@ Aİoe
T?
a
l!.lva,o,1,ıo
t:!
! e E İ a
iEli,
s
H.5
prry. ,ü9', *d, ibrğy't,C*d Pğ.rrt, A5rğrrğt ilfro - co{briE ıldsdk rlıD,
tıD,
;]r ':i'i
!:l:. i|i, iijlr(ii:
Ği ,r50-P,ogğttü.EEb.L
ax
pD aontrol
0,\YAv1_6Ra\G..E^PtO_v1
l
slMAIE3q1]
1
9
sllıATıclMıst ır{r)
E
ı
:j
l=_;şl
c,0813
DB1
E
.,*, lğ
eU ]14Fv
6
s? ft€,a{r]
E
sh*l
DBt1
0K
c-"ı |
--
144
Yawz Bmirıoğlu
ıı*
|
Prc PRoGRAMI-AMA !.E s7 T
PlD
cont.ol tlID vl§ll,ıAl lc
F} RC EhJo vld4 vfuri D aİ E
gia E
s7 3oo
3
:J00(1 )V]pU ]1
4ll
.
- ]-
OnLine,
!],".,]..
ı
.onLrnc,
a! PlD,l!çlM^Tla 30üEEEEEEEıFl,i\...DB11
ffill
u\. Dl1.11
tlğb
-..," r----i
iX.
Pıwbc
r,.b.ü on
T 3ld€€ldAdiİ
ld&d
!]
isLEMERi
Açılan pencerede gerekli P|D parametreleri seçilerek araç çubuklarlndan(curve Recorder) Veya menÜ çubuğundan "Debug Curve Recorder" seçilerek grafik penceresi açlllr.
lı],[x
)
T---T
ll,m;-.".!li.| r-----T t
,LER iLE KoNTROL
T-----T T----,i7 ,
l------l"i
l-r.
ı*ı.a_
|t "."d"o;Jr, ]
e+t- |------T
ıı"",*ı-org*
Açllan grafik penceresinde default ayarlar gelir. Grafikte yatayda zaman, dÜşeyde ise okunan değeri yer alır. Set değerlerinde değişiklik istenirse "Settings" butonu ile ayarlar penceresine geçilir.
[-
o
l)it) vl!§]u^ Ii[ ]00(1 )\(pU :]14ll M\.,
\DiJ4j .onlinc, tUrvc
lı. ?n 2cm aCm
:-J
_:l
s.{iç
stt
H*l
üĞ
tri
selti nE5
ı cll.Ya 1 ------. l
oışt
uem,,l--- ıO-.
YAn
_
_---ı
Eı
,
lffi|
ii
cwva 4
ı{ğ+r.ı.d
Non9
s.lpoi.İ Vab€
ftoaaac vslu. MğiPul5ted Val Efiol Pıo9oltional Acıion lri.gı.l Action oğiv.tivc Ağlion
i gro.{----ffi'ı L4E | ,lm ı
-ım ı
OsçC*.J l
cdd..
ğışı 3 --..-
]YfuıLin
ı ug|--T'ı
Loıa:| .ldl ı olar.
_
|6v*,.l
sğlpoiü
Yfun l.h*
2_
ı
u,.,ç
sıİd
coı",.
A.İıJk§r, crdğ
0K
2ül
m
Ayarlar penceresinde görüldüğü izere 4 ayrl grafik takip edilebilir. Her grafik, ayrı değerleri, farklı sınırlarda ve renklerde gösterebilir. yandaki tabloda "Setpoint Value" ve
"Process Value"
ThrR.i.ılİn"-- ---,l l
Re€ordPr
tr.Ehol Tir.A,6ü
[----16 ,
crr r|
H.lP
Yawz Eminoğlu
değerleri "0-250" olarak ayarlanmlş, diğerleri iptal (None) edilmiştir.
145
2
p|O_v1 L§lr{^l lC
E
jdol1 )lcpu ]l
{
lf
ın\.. U8.'
1
.0nlioe
J
( ul \,: R!.,i l d. l
ı(6 ıc
jJ
sı.p
150m 11916
_ıJ l
m"I
,|46
Yukarıda yapılan ayarlar sonrasında plc data modülünden alınan değer|ede yandaki PlD fonksiyonu elde edilmiş olur. "1" ve "2" no ile gösterilen alanlarda "Setpoint Value" ve "Process Value" değerleri sayısal olarak izlenmektedir.
"+l
Yaluz Eninoğlu
e) PlD Koı.lTRoLÖR
TAsARıİlı
Matematik modeli bilinmeyen veya deneysel yöntemle plD kontrolör tasarımı için ''kp'', "Ti", ve "Td" parametrelerinin belirlenmesi mümkündür. Bu yöntemler sistemin matematik modeli bilinmiyorsa ' 'PlD" parametrelerinin belirlenmesinde iyi bir yöntem olmaktadır. lşletme mühendi si sistem üzerinde deneyler yaparak en uygun "PlD" parametrelerinin belirlenmesinde n sonra bir daha gerekmedikçe bu de d rilmez BışL^lG ç Eö ER!Eil
onrırs^Leı{r(ıQ| |*ım lürEGmL6rd[İ|
0aERrİ9İEL ET|{[İ.ll :0
sEr
ıoFrAslıl ı(Oç(İ
PROaEssETİoKnsll( sEr DE6Edr{ lsTEİ€lı
BR DE6EE AYr
El
loıfTiY^
x
ULA şAll^
l(^IıR Ecl(lE E
^Y^
, ,
l@ll(oRI.6A
_
0EğEiLEd Jrşr6lDrd T§LoYAcOR€
sAİı.
aAıttl l$Tr^f
zArAraüıl ilLç
o.)
(G)
Yl,
P (xp)
IcD Poo
Bu yöntemde ilk olarak "Ti"yi sonsuza "Td"yi slflra getirerek sadece oransal kontrol gerçekleştirilir. Daha sonra set değerini küçük bir değere ayarlayıp sistemin salınımı işletmeye zaıaı vermeyecek şekle getirilir. Sistem bu değere geldiğinde set değeri tekrar orjinal değerine getirilir ve sistemin salınımı gözlenir. Şayet sistem salınımı daralarak set değerine yaklaşıyorsa "Kp" azaltılır, tam tersi durumda ise "Kp"yi çoğaltarak sabit salınımı elde edene kadar'Kp" ile oynanır. Sabit salınım elde edildiği anda bu "Kp" kritik değeri "Kcr" olarak not edilir, aynı anda sallnlmln iki tepe arasındaki kritik zamanl "Tc" olarak not edi|ir. Bu değerler alındıktan sonra kullanılacak kontrol sistemine göre "Kp", "Ti" ve "Td" tabloya göre hesaplanır. Bu hesaplamalar sisteminizi optimum performansla çalışmasını sağlayacaktlr. Bu şekilde ayarlanan sistemlerin kararll duruma oturmasl değişik şartlara göre 1-5 saat araslnda değişmektedir.
YarDz Eminoğlu
147
s7 300
AMLAMA vE s7 1oo/{n_2
PI-c
Pl.'
ir-E KoNTRoL
is l.F.MLERI
f) PlD UYGuLAMAslNlN sERvoPNÖMATiK sisTEM ÜZER|NDE iNcELENMEsi
plD uygulamaslnl gerçekleştirmek amaclyla pnömatik bir silindir, silindirin hareket miktarınl ölç6n bir cetvei siiindirin istenilen yönde Ve miktarda hareketlenmesini sağlayan bir servovalften meydana gelmiştir. valfin istenilen yönde ve miktarda açılmasını sağlayan elektriksel değeri üreten, silindirin hareket miKarını ölçerek nerede durması gerektiğine karar veren bir PLC kullanılmıştır. Burada hareket elde etmek amacıyla piston kolsuz bir pnömatik silindir kullanılmıŞhr. kullanllan silindirin servo veya plD ile ilgili bir özelliği yoktur, herhangi bir doğrusal hareketlendirici olabilirdi. Önemli olan silindirin ne kadar hareket ettiğini ölçerek, bu değeri elektriksel olarak Plc'ye aktaran bir cetvelin olmasıdır. Bu amaçla piston kolsuz silindirin klzağı ile sürgülü potansiyometre mekanik olarak birleştirilmiş ve yol bilgisi 0 ) 10 V olarak PLC'nin analog giriş kartlna alınmıştır.
a
E
= 6
E
: ıa=
BAslNçLl
Silindirin hareketini sağ|ayan basınçlı hava kontrolü bir servovalf ile sağlanmaktadır. Bu 10 V arasında diğer 5Varasında, havayı biryöne,5 valf 0 10 V gerilimle çalışan; 0 yöne yönlendiren ve 5 V'da ise hava çıkışını kapayan bir valftir. Bu valfin istenen yönde ve istenen miktarda açılmasını sağlayan analog sinyal PLC'nin analog çıkış kanalı tarafından üretilecektir. Silindirin istenen noktaya kadar gitmesini sağlayacak elektriksel değeri servovalfe göndermek, silindirin hareket miktannl ölçme cetveli üzerinden okuyup yorumlayarak valfin açıklık oranını tespit etme işlemi, analog giriş - çıkış kartları olan 57 300 bir PLC ve sistem fonksiyonlarından SFB 41 (FB 4't ) kullanılacaktır.
)
148
)
)
Yarırz Erıinoğlu
2
300
oB1
A "ileri" SM0.0 A "geri" RM0.0 A M 0.0 JcN iler A M 0.0 Jc
iler:
geri:L
T
BE
)
geri
CALL
BEU
Projenin bu bölümünde "ileri" sinyali oluştuğunda, silindirin ileri hareketini sağlayacak PlD fonksiyonunu devreye sokacak FC1 fonksiyonu çalışacaktır. "geri" sinyali o|uştuğunda ise siIindirin geri hareketini sağlayacak 5 10V aras|nda gerilim elde edecek sabit bir değerin analog çıkış kanalına gönderilmesi sağlanmıştır.
FC
1
18000
PQW 128
Fc1 //
cetvelden okunana değerin 0-250 arasına skala edilmesi
CALL "SCALE"
lN
:=PlW128
LO_LIM
:=0.0
i/cetvelden okunan değer //Hareket mesafesi üst limiti (250 mm) //hareket mesafesi alt limiti
:=DB't.DBDO
//PV_lN girişine yazılacak adres
Hl_LlM
:=250.0
BlPOLAR:=FALSE RET_VAL,=MW'l00
OUT
//0-5V karşılığında çlklşa değer gönderilmesi
CALL "UNSCALE,
lN
:=DB1.DBD4
LO_LIM
:=0.0
Hl_LlM
:=50.0
//SFB 41'in LMN çıkışı //servo valfe gönderilecek 5v (2764812 = 1382a)
BlPOLAR:=FALSE RET_VAL,=MW102
OUT
:=PQW'|28
oB 35 OALL Fc 2
Bilindiği gibi oB 35'in poeye eklenmesi durumunda, işletim sistemi tarafından çağrılma zaman aralığında çağrılarak içerisindeki program işletilir. Yani FC 2 içerisindeki program 100 ms'de bir çalıştırılır. Bu yapının PlD'de kullanllma nedeni proses'ten sabit aralıklarla verilerin okunmasını sağlamaktır.
Yavuz Eninoğlu
149
Fc2
CALL ,coNT_c, , DB41 coM_RsT
DEADB_w LMN_HLM LMN_LLM
MAN_oN PVPER_oN
PV_FAc PV_oFF LMN_FAC LMN_oFF
P_sEL
l_SEL lNT_HoLD
1_1TLVAL
1_1TL_oN
DlSV LMN LMN_PER QLMN_HLM QLMN_LLM LMN_P LMN_l LMN_D PV ER
D_sEL
cYcLE
sP_lNT PV_lN
PV_PER
????? =DB,l.DBDo
MAN
GAlN Tl TD TM LAG
DBl.DBD4
Set değerimiz yani silindirin durmaslnı istediğimiz pozisyon (Bu örneğimize göre
0 -250 mm); SFB 41 fonksiyonun "SP_|NT'girişine direkt (ömeğin, ????? ='|20.0) yazılabilir. O alana bir dahili bir bellek alanı atanıp onun içerisine istenen değer (ömeğin SP_INT kaşısına MD 60, yazılıp MD 60 içerisinede herhangi bir yöntemle istenen uzunluk girilebilir) yazılabilir. SFB 41 ile ilişkilendirilen data blok içerisindeki SP_INT alanına (DB 41.DBD 6) direkt veya oraya bağlanan VAT v.b ile yazılabilir.
Eğer prosesimiz bir operatör panel veya scada üzerinden kontrol ediliyor ise data blok'un ilgili alanı ile ilişkilendirilen bir l/o Field alanl Vas|tas| ile de değer girilebilir. Bir sonraki sayfada anlatıldığı gibi SFB 41 parametreleri en sağlıklı şekilde bir operatör panel ekranı üzerinden kontrol edilebilir.
150
YatıJz Eminoğlu
B
D B 4 1 (s F B 4 1 lFB 4 1 ile li ş ki e n d n e n d ata b lok ) DB
pdrdnr lDBa1
D*r t|o(İ
I.1
E"
ü-r
Ad*e
pJD stRvo PNaj sjs üti,.\siM^Tla ]00(1 )\CpLJ .]f4lFM]
E* nc oıt+ Ş, rıtt"r s E}4 Gl
kl-ğtirı
ığİıE
tbb
n |,l i
\? hitielYaı.B
AdJelraLE
comnEnt
FAl,sE FALsE
2
FAlsE TRLE
5
TRL]E
6
FAlsE
;]
FtrsE Trlfi},4s 1.an büm2
l
FALsE
9
tD
tl
ı,2254o5b+m2
lz
0,üIl)(İeümo
..aI
1,ünllbütm
ı5
Tr2s
16
T*ls
TrlG
L
in
3,(IlİrYt+€oo
t9
ı, IIE+üE 0..I}TrIb{m
20
1,ü Iıbffo
0.OİrİI]€'+tm
4
ı.üİIIbffi
21
0,rqI](I]cüfi]o
6
1,tuIIIbüm
0.fimuıdı.lr,
27
4,52674€+ü]1
a 4
wr1613ıFD FAl_sE
c]
FAfsE 0,.qIn)€,ürİİ]
4.62€r4e{n1
]€
0.roTrn€+m0
r,ffi.E+ü2
3a
0.ürurb+rE(]
Yavuz Enircğlu
15,|
süqY§! LAMAY A
AİT PlD GRAFİKLERİ
2o
qo
1m
2 3 8a5
0 j:m 1 c9 §3
2@
2m
.cm
1m.lü]
loru
l.cm
0im
l.qı
1m
rl
oc0]
1ço 363 OcOA
o,m 3O]
1@
o.m
Parametrelerin kabaca ayarlanmasıyla sapma değerlerinin yüksek ve set değerine oturma süresinin uzun olduğu görülür.
izı aes 6m4
l.lo
ro
c 0
.m
1m
25.550
3.m
157 841
[email protected](o
0.cm
m
2m
0
oml lcm oml 1m
lm 1,57
l
uL
cD]A
0.c0
1c0
o.Cm 1.cto
Yukarıdaki parametrelerden "GAIN : 1 .0"a 'DEAD+B:3.0'a allndlğlnda set değerine daha kısa sürede oturduğu gönilür.
0m 25.550
7(H 0
o
ro 2@
@ 25.ü @
]m@ l
0.@
1@ 2.@
9mI ıIo
I
15133l
1
0,cO 1m
1q!
o
15l 331
1ın
üı]
]m]
io* i25 ü \6994
0
"DEAD+B" değeri 2.0'a allndlğlnda sapma değerlerinin (overshoot - undershoot) daha az olduğu görülüyor.
0
parametrelerden "GAlN" değerinin düşürülmesi sonucunda rampa eğiminin düştüğü (set değerine çıkma süresinin uzaması) görülür.
152
Yavuz Eİninoğlu
300
h)
PrLER iLE
MoToR UYGuLAMAS|NAAiT PıD GRAF|KLER|
Bu uygulamada PlD parametreleri kullanılarak bir motor hızı kontrol edilmiştir. Ana|og kartı üzerinden çalışt|rılan motorun hız bilgisi bir takogenaratör üzerinden analog giriş çıkış kartlna allnml lr Default değerlerle PlD fonksiyonu 2m I 37.fiA
ı@,@
l5o.174
1.@ 1.@
lm 131
51o
o@ o.@
37.2l7
0,@
1o29 o
Kontrol edilen sistemin hlzll olmasl nedeniyle süreler azaltlllp
I
ı
-DEAD+B" artlnldlğlnda aşağldaki yapl görülür
55916 15,a6o
biraz daha azaltİp 'GAlN" parametrssi küçültülerek Pl grafiği aşağldaki gibi elde edilebilir
'Tl" d€erinin
1o
ü2]9
2.dD
1c],3,3
1q)@
0@ 1,c@
oco t,@
0.@]
o@9
00Q
tf@
56
2]9
15y9
Yukarıdaki aynı pa rametrelere "D" seçilerek set değerine daha kl sa sürede oturduğu görülür
ı
o.cao
ı
ı
om l,cO
o.cao
s!p
Yar.Jz Eminoğlu
153
UYGULAMA: SEV|YE KONTROLÜ D|JıTAL
çıKış (ıKl NoKTA KoNTRoL) lLE SEV|YE AYARı
Dijital (iki nokta) kontrole ait başla emri verildiğinde (Scada veya proses üzerinden),1 .nolu kazanln seviyesi okunarak hesaplanan alt ve üst slnır değer|eri ile karşılaştırılır. Alt seviyenin altında ise pompa çıkışı setlenir, üst seviyenin üzerinde ise de resetlenir. Dur emri Verildiğinde (Scada veya proses üzerinden) ise karşllaştlrma yaptırılmadan dijita| (iki nokta) çıkış kapatılır. Alt ve üst sınırlar set değerinin hatia oranı kadar altı ve üstüdür. Bu değerler scada ekranından girilen set değeri ve hata oranının hesaplanması sonucu bulunur. FTiil ı Gıl
Flıl
aı..
rt,
r}
@Eil§şş;':. ffi w;j . ,,EE ffi;
l\
,,
'.;'
üffiit;-, ffiffi::.
-
0.05 1036. 8
20?36.o 21"l12.
a
19699-2
lslM pano_start pano_stop
scada start scada_stop dijital_calisma_serbest seviye_tamam
tank1 seviye_merker tank2_seviye_merker pompa_dijital_cikis
154
ADREs ,1.0
I
1.1
M M M
M
,1.0
1.1
3.0 15.0
MD MD
o
DATATlP
BooL BooL BooL BooL BooL BooL
34
REAL REAL
0.3
BooL
30
Yavuz Eminoğlu
oB1
Fc,t
//Kazan 'l seviye PlW 752 lTD
//Pompa dijital çalışma ağkapa //Anahtarlama aralığı A( DB2.DBD 8 o 1.0 DB2.DBD 0 -R o 1.0
L
DTR
T MD30 llKazan 2 seviye
L 27ü8.0 L MD30 -R TMD3r'.
L L T
l M
)
s
A(
oN
o o )
R AN
Jc
M
3.0
I
1.1
//Üst
M M
3.1 1.1
M
3.0
M
kapa
DB2.DBD 4
sınır
L L +R T
//Alt
3.0
DB2.DBD 8 DB2.DBD 4 DB2.DBD
12
slnlr
L L -R T
DB2.DBD 8 DB2.DBD 4 DB2.DBD 16
7Seviye üst sınırdan büyükse pompayı kapa
L MD30 L DB2.DBD >=ft RQ0.3
12
//Seviye üst sınlrdan küçükse pompayl aç
L MD30 L DB2.DBD <=R SQ0.3
16
BEU
//sistem kapat|lmışsa pompayl kapa 0.3 kapa:
R O
YıvOz Eminoğlu
155
PıD ıLE sEViYE AYAR| SlEMENS kütüphane fonksiyonlarından FB/SFB 4'1 kullanılarak seviye kontrolü yapılacaktır. Sistem çalıştırıld ığında analog giriş kanalından (PlW 752) okunan kazan seviyesi, set değeri (SP_lNT) ile kaşılaştırılarak verilen parametreler (DEADB_W, GAlN v.b) çerçevesinde analog çıkış kanalına (LMN_PER) gerekli değer gönderilir. Bu değere bağlı olarak da pgmpa is!91g4 deyjı şqyışudq çalıştırılır SEı/İYE
GE DB_w
2 84-ffi
6AIN PV_PER
N_PER
.00
1
,',).
;,
& "SP_|NT" alanından girilen değer kazanda istenen seviyeye ait % set değeridir. 32 bit virgüllü sayı olarak FB/SFB 41 ile ilişkilendirilen data bloğa ait ilgili alana (SP_|NT) bağlanmıştır. "PVPER_oN"un "1" olması şartlyla "PV_PER'' alanı FB/SFB 41'in ''PV_PER'' girişine bağlanan seviye sensörüne ait analog değerin 100'e skala edilmesi sonrasındaki değerdir. "LMN_PER"de yine FB/SFB 41'de ilgili çıkışının bağlandığı alandır. Bilindiği gibi "DEADB_W" oransal bant değeridir. Proses değerinin set değerine yaklaşma oranıdır. Ömeğin aşağıdaki uygulamada 'DEADB_W = 2.0'' verilmesi durumunda "LMN PER. çıkışı önce maksimum devir (27648) ile çalışır. 83'ü aştıktan sonra yavaşlar, 87'den s6nra minimum devir (0) ile çalışır. "PV_PER" değeri yaklaş|k 83 - 87 araslnda min-max devir sayllarl araslnda çallşarak sistemi set değerinde tutmaya çallşlr.
"Tl" azaldıkça minimum veya maksimum güce ulaşma zamanı kısalır. "GAIN" katsayısı artırıldıkça da maksimum güce ulaşma zamanı kısalır. ,l56
Ya!,ırz Eminoglu
Yukarıdaki SCADA ekranında verilen parametrelerin dışındaki değerler = "'|' ) default parametrelerdir.
PVPER ON" DB3
a.,
Bo.o +
16* 5c0o
0.0
PQw 752
pompa_devir_sayisi tank1_okunan_seviye
Plw
752
WoRD WoRD
CALL FB 41 ,DB41 coM_RST MAN_oN PVPER_oN
P_sEL l_sEL
LMN_HLM LMN_LLM
PV_FAc PV_oFF LMN_FAC LMN_oFF
"1"
lNT_HoLD
1_1TLVAL
DIsV LMN LMN_PER QLMN_HLM QLMN_LLM LMN_P LMN_l LMN_D
1_1TL_oN
D_SEL
cYcLE
sP_lNT PV_lN
PV_PER
MAN GAlN Tl
DB3.DBD0 :=PlW 752
PQw 752
PV ER
TD TM_LAG
DEADB w
Yavuz Eminogu
157
D SFB 41 FB 4l BLOK'UNUN '
lt
ANUEL KULLANllrl
Kontrol edilen sistemden bağımsız olarak kullanılan bir manuel kontrol tuşu yardımı ile çıkış kanalında istenilen oranda değer elde etrnek için kullanılır. Bunun için "FB 41" bloğunun "ilAN_ON" girişi aktif yapıldığında "iiAN" girişine yazl|an sayı değeri oranlnda veri "LMN_PER" çıkış kanalında elde edilir. Örneğin; "MAN_ON" girişine eklenen "l1A.0" giriş biti "'t" yapıldığında, "MAN" girişine yazılan "20.0" değerine oranla "LMN_PER" çıkında "5530" (27648 x 0.20) değeri görülür. Yani, '0 10 V" çıkışlı bir analog kanal "2V" luk bir değer gönderir. Bu arada "LMN" çıkışında da "MAN" girişindeki "REAL" sayı gönilür.
)
CALL "coNT_c, , DB41 // CALL sFB 41,Du1 coM_RST MAN oN =l 124.0 PV_PER M+N
20 0
LMN
:=MD32
LMN PER
15E
:=PQW't28
Y.wz Emimğlu
D ZAltlAı.| ORANSAL (STEP) KONTROL (SFB ı|ZFB
42} kontrol uygulamaslnda özellikle son kontrol elemanı; kontaktör, triyak Ve tristör gibi P' kontak çıkışlı proseslerde ku|lanı|ır.
.
AçlK
Bu tip uygulamalarda enerji nike belli bir perjyodun yüzdesi olarak veri|ir. Örneğin 1O sn'lik periyotlarda sistemin %8O enerjilendirilmesi gerekiyorsa, yük 8 sn enerji altında tutulur, 2 sn enerji kesilir.
KAPALl
tristör gibi son kontrol elemanlı uygulamalarda enerji verip kesme süreleri . .. ...Triyak,. çok küçük aralıklara kadar indirilebilir Et.lERJlslz ENERJ|
(B)
ENERJlLl
(o
(A
(A (c)
t]UlJl]l]l]il PERlYoD
l_ UUl]Ul]l]t] L_
slcAxl-lK
(B) K1
PERlYoD
s.P.
oransal bant
Kl
"K2" a|t ve üst limitlerdir. "Kl"in altında sisteme %1oo enerji verilir, '.K2''nin üstünde ise enerji tamamen kesilir. K1 ve l(2 aras| oransal banttır. Bu kontrol işlemi siemens fonksiyonlarından .SFB 42lFB 42'' taratından gerçekleştirilebilir. DR42
tE42
step controf "col{T s"
E1,1
Eİ,Io
_cotl_RsT
QLı.ll{U?
LMNR_ES
QInD{D}l
-
1,1,{1,IR_L
s
-
IfiNs_oı,l
-
LHI,IUP
-
]llrrNDN
t Pv t ER
t
M0.0
57 300 PlC'lerde "SFB 41lFB 41'' ile ayrıntılarını anlattığımız PlD uygulaması, benzeri yöntemlerle "SFB 42lFB 42'' ile de gerçekleştirilebilir. Burada "SP_lNT"den girilen set değeri, "PV_lN"den okunan proses değeri ile kaşılaşhrılarak'QLMNUP" dijital çıkışından elde edilen sinyal ile çıkış elemanı enerjilendirilir
PwER_oN
_cYcıE DBl.DBD0 _ sP_INT DBl.DBD4
Pv_It] _PV_PER
Yaiuz Eninoğlu
159
Prc
oGRAML
s7 30o
AVE573
Prc' İR iLE
oL
IF-Ri
SFB 43/FB 43 'PULSEGEN' PALS OLUŞTURMA (Pulse Generation) oh o ile oh 100 araslndaki değere SFB 43 parametrelerinden "lNV" girişine uygulanan verilen.100,0 da ua5ıı oLiar-,,hFös_p" ," "QNEc_p"-kontak çikışlan aktif olur. Buraya ,T,,
;öEos-i;,.tii"Ri
o.o da sürekTi 'O" ve ara değerlere göre de açık ve kapalılık durumları
o oranda değişmeKedir.
..PER_lir,,girişine uygulanan ,,T#Ssn,,lik giriş ve "lNV,, girişine yazllan 80.0 değerine ,1 bağlı olarak "QP6S_P" çıkışı 4 sn "1", sn'0" değeri alır, , DB43 cALL ,PULSEGEN, .=8.000000e+001
lNV
PER_TM
:=T#5S Tl5s
STEP3_ON
:=
MAN_ON
:=
POS_P_ON NEG_P_ON
SYN_ON
COM_RST
QPOS_P QNEG_P
:= := := := := :=
Ömeğin "Qpos_p" çıkışı ister fonksiyonun üzerinde, ister ilişkilendirilen data blok alanı üzerinden istenen alana atanarak kullanılabilir
A =
DB43.DBX 22.0 Q 124.0
SFB/FB 43 bundan önce anlatllan SFB/FB 41, sFBlFB 42 gibi bir kontrol fonksiyonu değildir. yani okuduğu proses değerini set değeri.ile karşülaştlrarak dijital veya analog. eder. Buradan elde |ıkişlan enerjilendiriez. istenen 6randa bir veya iki dijital çıkışı kumanda (lsıtıcı, vana,jnotor, flaŞör sahaya eoiiin paısıei ister direkt olarak dijital çlkış kartı üzerinden girişinde de (Sayıcı, v.b) ,_o1 goho"riı"uiıeceği gibi bu palsier istenen herhangi bir program kullanılabilir.
160
Ya\ıız Eminoğlu
73
TRoL
l a'-
ir
i
r,
i|
,2> 1
i+
i.AçlK
i,o |ğ
I
Ş (!lö A..
2b d6
2l5Aç|K
4/5 '5 KAPArl
4/5
AçlK
.
3/5 KAPALI
||1
V5lGPArl
3,/5 Aç|K | 2/5 (APAll
i4lsAçlx
i1l5KAPA]_l
1/5Açl( 4/5 KAPAtl
Örneğin SFB/FB 43 fonksiyonundaki "lNV" girişine "20.0" değeri girildiğinde "QPOS_P" çıkışı; "PER_TM" girişindeki ms olarak girilen zamanın, "CYCLE" girişindeki zamana bölünüp, "10 ms" ile çarpımının (PR_TM -CYCLEY10 ms] 1/5'i ( %20'si) açık,4l5'i (%80'i) kapahdır.
lNV
20.0 PR_TM : 5 sn (5000 ms) : 10 ms QPOS_P: 1 sn QNEG P:4 sn
cYcLE
:
lNV PR_TM
20.0 : 5 sn (5000 ms)
:
cYcLE :50ms QPos_P : 0.2 sn
QNEG P : 0.8 sn
lNV PR_TM
20.0 : 5 sn (5000 ms) cYcLE : 100 ms QPos_P : 0.1 sn QNEG P : 0.4 sn :
..lNV''girişine..100)+100,,Aralığındaveriyazılabilir.Fonksiyondaki olarak uygulandığında "STEP3_ON = 1" olması şartıyla "QNEG_P" çıkışı "QPOS_P"deki gibi davranır. "QPOS_P" çıkışı sürekli "O"dır. (Üç nokta kontrolü) "STEPS_ON = O" yapıldığında "J' değer okuma devre dışıdır. (lki nokta kontrolü) "PER_TM" girişine "TIME" uzunluğunda (24 gnn 20 saat 31 dak 23 sn 648 ms) veri yazılabilir.
'MAN_ON ='t" yapıldığında; "POS_P_ON =1" ise "QPOS_P" sürekli "1", "QNEG_P" sürekli "0" olur. "POS_P_ON =0" ise "QPOS_P" sürekli "0", "QNEG_P" sürekli "1" olur.
"SFB 43rFB ı|3 PULSEGEN" veya "SFB 42lFB 42 CONT_S" fonksiyonları uygun parametrelerle "PWM" (Pulse Width Modulation) olarak kullanılabilir. Ancak S7 300i400 de PWM'in doğru kullanımı hızlı sayıcı kartları üzerindendir. Hızlı sayıcıya ait "Pulse - Width Modulation" aktif edilip, "sFB 49" üzerinden parametrelendirilmelidir. Kullanlml hızlı sayıcı kullanımı ile hemen hemen aynıdır.
Yavuz Eminoğlu
161
lX.
ENDOSTR|YEL HABERLEşME
/
Bus slsTEMLERl
Bir üretim hattı birden fazla CPU'nun kumanda ettiği istasyonlardan oluşuyor ise bu istasyonlarln birbiri i|e uyum içinde çalışmaları gerekir. Uyumlu çallşmanln yolu lstasyonlarl kumanda eden CPU'ların birbirleri ile veri alış verişlerinin düzenli sağlanması ile olur.
CPU'lar arasında veya CPU ile herhangi bir uç birim arasında ileti|ecek bilgi sayısı kadar hat çekmek (paralel haberleşme) gereksizdir ve ekonomik değildir. PLC'lerin giriş-çıkış sayllarının ve veri iletim amacıyla kullanılan kablo sayısınln çok artmasına neden olur. Bunun yerine gönderilecek bilgiler, gönderici CPU tarafından tek hat üzerinden bir protokol çerçevesinde sıra ile gönderilir. Alıcı CPU aynı protokol ile gönderilen bilgileri alır, düzenler Ve kullanlr. (seri haberleşme) Bu ve benzer haberleşme sistemlerinde her zaman GPU'ların haberleşmesi söz konusu değildir. Çoğu zaman merkezde bir CPU (master) ve bunun ile farklı istasyonlardaki giriş çıkış verilerinin merkeze iletilmesi amacıyla kullanılan yardımcı birimlerden (slave) oluşur. Bu yapıya BUS sistemi denir.
Burada şöyle bir soru akla gelebilir. PLC sistemlerinde çok sayıda giriş çıkış sayısına ulaşılabilir. Dolayısı i|e her istasyonda bir cPU olacak şekilde çok sayıda CPU'mu, yoksa tek CPU kullanılarak istasyonlar ile slave'lerle haberleşme mi kullanılmalı? Bu öncelikle sistemlerin büyüklüğü ve istasyonların bir biri ile olan bağımlılığı ile ilgili bir durumdur. Öncelikle farklı sistemleri tek cpu ile kumanda etmek demek, sistemleri birbiri ile kilitlemek demektir. Yani, sistemlerden veya CPu'lardan her hangi birinde oluşan bir arıza diğer sistem veya CPu'nunda çalışmamasına veya programın çok uzamasına neden olur. Bu da çevrim süresinin artarak belleğin genişlemesine ve giriş ve çıkışların güncelleştirilme süresinin (refleks süresinin) çok uzamasına neden olur. Bu programlamada istenmeyen bir durumdur. Her sistem içinde farklı bir CPU kullanmak, sistemin maliyetinin artması şeklinde algılanabilir, ancak; kablolama maliyeti ve diğer girdiler BUS sistemlerinin çok daha ekonomik olduğunu ortaya koyar. Bir üretim hattı birden fazla CPU'nun kumanda ettiği istasyonlardan, bir CPU ve o CPU'ya bağlı çok sayıda inpuUouPut grubundan veya CPU'ya bağlı uzak bir birimden (motor sürücü, valf adası v.b) oluşuyor ise bu modüllerin birbiri ile uyum içinde çalışmaları gerekir. Uyumlu çalışmanın yolu modülleri kumanda eden CPU'ların veya CPU ile uç birimlerin birbirleri ile veri alış Verişlerinin düzenli sağlanması ile o|ur.
Örneğin; iki istasyondan meydana gelen bir sistemde, 1. istasyonda ölçme, 2. istasyonda ölçüm sonucuna göre ayırma işlemi yapılacaktır. '1. istasyonda ölçülen parçanın, 2. istasyona gönderilebilmesi için, 2. istasyonun hazır olduğuna dair bilginin 't. istasyon tarafından alınması gerekir. 2. istasyon ölçme sonucu elde edilen ayırma bilgilerini (kalın, normal, ince) 1. istasyondan almalı ve ona göre parçayı farklı bantlara gönderebilmelidir.
Günümüzde otomasyon alanlnda üretim yapan birçok firmanın ürettiği BUS sistemleri vardır. Bu sistemleri bir birinden ayıran temel özel|ikler şunlardır. Veri ve kumanda hatlarının bir biri ile nasıl bağlandığı (topoloji şekli:ağaç, yıldız, düz hat, daire) Maksimum iletim hattı uzunluğu veri iletim hızı Hatasız veri transferi Bağlanabilecek maksimum giriş çıkış elemanl saylsl Piyasada bulunan saha elemanlarına (sensör ve çalışma elemanları) uyumlu olması Saha elemanlarının sistem çallştrken değiştirilebilir olmasl V.b.
-
Yaııız Emnoğlu
,|63
VE
,7
ENDÜsTRiYEL HABERLEşME (FIELD Bus); Bir
üretim sürecinde verinin aktarlmı, kontrolü
ve izlenmesi için cihazlar arasında haberleşmenin sağlandığı iletim hattıdır. A. F|ELD Bus,lN AVANTAJLAR| Sistemlerin montajı, devreye alınması hızlı basit ve ekonomiktir Kablolama montaj Ve maliyeti çok azdır. Arza takibi, ikaz ve alarm tanımlamaları daha basiftir. Dış etkenlerden daha az etkilenir. Sisteme yeni bir cihazın eklenip çıkarılması daha basittir. Sistem durdurulmadan bakım yapılıp arza a'anabiliı. Yatırım maliyetine oranla çok yüksek verim.
-
Field bus sistemlerinde, farklı üreticilerin ürünleri aynı uygulamada herhangi bir arabirim gerektirmeden uygulanabilir olmalıdır.
B.AĞ ToPoLoJiLERi
Topoloji: Ağı oluşturan bileşenIerin birbirleri ile bağlanış şekilleri, kullanılacak aygıtlar, kablolama standartlarl, iletişim protokolünün seçimi ve bu protokollerin ağ yaptslna
uygulanabilirliğini içerir. 1. DoĞRusAL HAT Ağı oluşturan bütün bileşenlerin tek bir hat üzerine sıralandığı yapldlr. Gönderilen sinyal tüm istasyonları dolaşır. Her bir istasyon sinyalin adresini kontrol eder ve sadece kendisine ait olan sinyali iş ler. Bu yapıda bus hattında meydana gelen bir arıza haberleşmenin kesilmesine neden olur. Ethernet, Profibus ve AS-l bu yapıdadır. Doğrusal hatta; sonlandlrücı sonlandlncl Bus hanl Daha az kablo bağlantısı kullanılır. Tasarımı, cihazlarln ağa eklenip çıkarılmaları daha kolaydır. Hat sonlarında sonlandırıcı DOĞRUSAL HAT kullan ı lmalıd ır.
-
2.YlLDlz
Sistemi oluşturan bütün bileşenlerin merkezi bir istasyon üzerinden haberleşmesi sağlanır. {\ılerkezdeki işlemci ay4lzamanda şinyal g_ü- çlendirmesi yapar. Ağdaki herhangi bir istasyonun arızalanması sistemin durmasına neden olmaz. Ancak merkezi işlemcinin arızalanması sistemi durdurur. Ağı yönetmek ve hata tespiti kolaydır. sisteme istasyon eklemek çıkarmak kolaydır.
-
Ancak her bir istasyona ayrl kablo çekilmesi olumsuz yanıdır. YlLDlZ (sTAR)
164
YavE Eminoğlu
3. HALKA Tüm bileşenler ya doğrudan ya da aktarma kablosu üzerinden halkaya bağlıdır. SinYaller bir bileşenden diğerine aktarılır. Her bileşen hattan gelen sinyali a|ır, kendisine ait olanl !üş]9y9!9l( k, !!§!!9 ej! _olrnQyq!,]arla lerabgr güçlendirerek hatta verir
_
Ağdaki herhangi bir bileşene iki ayrı yoldan ulaşmak mümkün olduğu için, bileşenlerden biri arlzalansa, hattın bir tarafında kopukluk olsa bile haberleşme kesilmez. Kapalı bir döngüdür, Sinyal her bir bileşende güçlendirildiği için sinyal zayıflaması olmaz. Pahalı ve karmaşık bir sistemidir.
HALKA (RiNG)
4. HiYERARşİK (AĞAç) Burada bileşenler hiyerarşik gruplar halinde yedeştirilmiştir. Her grup (segment) kendi risinde ıldız yapısında, gruplar m 9r[e:!§E!rcryE j9ğ rusal hat yapısındadır. - Herhangi bir segment'te oluşan bir . kesinti diğerlerini etkilemez. - Farklı üreticilerin donanım ve yazılımları uyum içerisinde çalışır. Ancak kablolama zordur ve ana hatta meydana gelen bir kesinti bütün hattı çökertir. Genellikle büyük ağlarda tercih edilir.
HiYERARş|K (AĞAÇ) Yukarıda anlatılan ağ topoloji çeşit|erine eklemeler yapmak mümkündür. Ancak endüstriyel ağ yapılarına yönelik bu anlatılanların yeterli olduğunu sanıyorum. Günümüzde tüm kullanlm alanlarlnl kapsayan Ve taleplerini karşllayan bir bus sistemi yoktur. Bu bölümde veri alış verişini sağlamak amacıyla kul|anılan BUS sistemlerinden,
MPl AS-l
PRoFlBUs DP PRoFlNET (ENDÜSTRiYEL ETHERNET) ağ sistemleri üzerinde durulacaktır.
MPl ağ sistemi yukarıdaki topolojilerden sadece doğrusal hat prensibine uygundur. AS-| ise doğrusal tip, yıldız tip ve ağaç tip topolojilerde, PROF|BUS ve ETHERNET ise dört tipin tamamında oluşturulabilir. Dikkat: Güvenlik açlslndan önemli sinyallerin BUs hatlarl üzerinden iletilmemesi gerekir. Bu sinyaller iletim hatlarının direkt bağlanması ile aktarılmalıdır. Ayrıca bu sinyaller çift hatlı olmalıdır, yani fiziki olarak farklı yolları takip ederek merkeze ulaşmalıdır.
Yawz Emltroğu
165
c. "MPl" HABERLEşME sisrEMi Mp| (Multi poini lnterface) haberleşme sistemi S1EMENS,e özgü bir BUS sistemidir. Özellikle S7 30o (4oo) CPU,lar arası haberleŞme işlemlerinde çok yoğun olarak kullanılır. Konfigürasyon ve kullanımı oldukça basittir. iki damarlı (profibus kablosu) bir kab|o Ve MPl bağlantı koneKörü dışında bir donanıma ihtiyaç duymazlar. Haberleşme kablosu (PROFlBUS kablosu); CPU'ların donanım ve MPl adresleri tanımlandıktan sonra PLC'lerin MPl hatlarına, programlama cihazı bağlantı kablosuda (MPl
kablosu) profibus konektörü üzerine bağlanmalldlr. Maksimum 32 adet katılımcı bağlanabilir ve iletim hattı uzunluğu en fazla 50 m olabilir. 50 metrenin üzerindeki mesafeler için RS 485 yükseltici (Repeater) kullanmak gerekir. Her yükseltici hat uzunluğunu 50 m artırır ve iki yükseltici arası 't000 m'ye kadar çıkarabilir. Toplam,l0 yükseltici kullanılabilir. MPl haberleşmenin default hızı 187 .5 kbps'dir. Ancak '12 kbps'ye kadar ç|karılabilir. (Profibus'ta olduğu gibi) Ancak mesafe arftıkça hız düşürülmesi gerekir. iletim hattının başlangıç ve bitiş noktalarındaki konektörlere sonlama direnci konmalıdır. (Bu amaçla konektör anahtarı "on" konumuna alınmalıdır) 1. MPl ADRESLERıNiN '1.
VERiLMEsl
Haberleşme kablosu bağlanmadan, programlama cihazı MPl kablosu ilk CPU'nun MPl ara birimine bağlanır.
2. Ana
bili n9_n_y9!!9!4e4e
*' HABIRLtş1,1t E
HABERLEŞME
E ]n
=
t LÇME
[
ceu
& =
B1
57 Pıogıam(l]
@ ' @
]
3.
c:\progrdm Fİles§iemens
E AYIHMA] n-[ ceu aı+ını E @
d!şq!!!r.(Qü!9ğ!. le!e!gş!l9)
aı
Souıces 8locks
rırıı
Kullanılacak CPU sayısı kadar S7 istasyonu eklenir. Biz iki adet CPU'yu haberleştireceğimiz için iki adet CPU eklenir ve karışıklığın engellenmesi için isimleri değiştirilir. 1 .istasyon ismi 1 -ÖLÇME, 2.istasyon ismi 2_AYlRMA Her eklenen CPU'nun "Hardware" ayarları diğer cPu eklenmeden yapılmalıdır.
s7 P[oqİan{2] Souıces
cı@ @
4. Her 57 istasyonuna biri birinden farklı 2 ile 31 (Default olarak2 alanır, çünkü; 0 = PG veya PC, 1 = OP numarasıdır) arasında olan MPl adresleri verilir. Bunun için açılan projede; 'S|MAT|C 300 Station Hardware General" alanında "lnterface Properties" bölümünde ''Parameters Adress" alanında istenen adres seçilir.
)
)
)
)
Örneğin ilk istasyonun (1-ÖLÇME) MPl adresi 2, ikinci istasyonun (2-AY|RMA) MPl adresi 3 v.b tanımlanır. 5. "Hardware" ayarları yüklenirken, eğer MPl adresi farklı bir CPU'ya yükleme yapılacaksa veya ağ altındaki çok sayıda CPU'dan herhangi birine yüklenecekse bağlı bulunulan CPU'ların MPl adresleri "Accessible Nodes" alanında görülür. "update" ile adres güncellenir veya okunan adres manuel olarak "ı'lPl Adress" kısmına yazılır. (Yükleme işleminde PC'de proje için verilen MPl adresi görülür. Bu adres yükleme sonrasında CPU'ya aktarılır. CPU'ya ait MPl adresi ikinci yüklemede belirecektir.)
6. Hangi CPU'nun "Hardware" ayarları yapılıyor ise programlama cihazı MPl kablosu o CPU'nun MPl arabirimine bağlanmalıdır.
166
Yavuz Eminoğlu
7. CPU'lara ayrı ayrı MPl adresleri verildikten sonra, haberleşme kablosu bağlantısı yapılır. BUS kablosu üzerine takılan koneKörler PLC üzerindeki MPl girişlerine takılır. Bu bağlantı yapılırken, çift kablolu konektörlerde ilk ve son konektör üzerindeki sonlama dirençleri "on', ara katılımcıların sonlama dirençleri "off' konumunda olmalıdır. Tek kablolu konektörlerde sonlama direnci yoktur ve "on" görevini yaparlar
Brrs konn€ktirö
Bus konneköıö
!oN"
MPI
kau6u
BUs konnektt lö
"oN"
cPU
cPU
1
2
Mn gHg
BUs
cPU
{
3
kabhıl
8. MPl kablosu herhangi bir CPU'nun haber|eşme konektörü üzerinden bağlanır. SlMATlC-Manager araç çubuklarında "Erişilebilir katılımcılar- Accessible Nodes' üzerinden kontrol yaplllr. Belirlenen yere girildiğinde ağa dahil edilen bütün CPU'lar görülür. Programlama cihazı MPl kablosu hangi CPU'ya bağlı ise onun direkt bağlı olduğu da izlenir. 9. Yine araç çubuklarındaki "Configure Network" ile MP| hattı ve hatta ekli CPU'lar izlenip değişiklikler yapılabilir. 6b E ı lst
DİılE?e
ftc h,r
sbĞ İ ğ+
E
Y, | !ü
aIEE
l |
m]r? !ll;-!
t"ffi]
CPU'lar eklenip gerekli MPl adresleri verildikten sonra araç çubukları içerisindeki "Configure Netwoık" düğmesi ile "NetPro" penceresi açılır. l| ııa.,t tı
ıElt Rc Yl*
ıEı +]g]ECIıİİ 4|dşl eE
! l}?
MP]
cR
3ı3c-2 DP
SIMATIC 300(1)
alr:l
ı
22
ı
injE;ı
ı
32
ı
Yavuz Eminoğlü
Burada poede tanlm|anan ağlar ve projeye eklenen CPU ve diğer donanımIar izlenip, bağlantılar yapılabilir. Örneğin MPl bağlantısı için CPU altındaki kırmızı kare sürüklenerek Mpl hattı üzerine bırakılır.
167
\E
PLC PROCRAMLAMA
ENDÜSTRiYEL HABERLES ME / BUs sisTEMLERl
s7 300/400-2
CPU veya istenen
özelliği üzerinde çift tlklanarak izleme, değiştirme, download veya upload işlemleri yapılabilir.
E |{6ğ* Eni tn5ğl İ99 şl ğlqrĞ
İ'lc lt ,
İa
e ۤ
EB
! lr?
sI Anc
300(2)
ilP] sIMAI]c 30o(r)
,.i
2 prc9.rttl cpu ]l]a-2
T.-{oa rbd, sı.l tl-!.C!
t-
32 Dp
_
iı
a
(rı062)
l c,*
DEFü6
-ir9tiıEb
cplr}lr'i!
0P
frİ4r*:
cPU 31
CEs7
ıç.
fu..E...
l
oıo
I I
l
I
İstenirse burada hatta yeni donanımlar eklenebilir. Bunun için katalog içerisinden istenen ürün seçilip sürükle bırak ile pencereye alınıp bağlantı ve diğer özellikleri düzenlenebilir. Eklenen donanım üzerine çift tıklanlp konfigürasyon penceresi açllır Ve gerekli düzenlemeler yapılır. lidrclt E& !ğ
c'
ı lıl a,
ptc yğ
E6]aa a dd EE
!
Burada yapılan ekleme otomatik olarak poeye eklenmiş olur.
lı?
P1
E
sltaAllc
ı
E
300(1)
a
slMTIc ]0q2) a Il g
l l
PG,PC
slllAnca)
ı .d ı
EJsıfu
i i*i'ş+,4-
-.*_*.j
Burada MPl için anlatılan işlemler PRoF|BUS ve PRoF|NET içinde aynı şartlarda kullanılabilir. 10. Artlk her CPU'nun ay.| ayfl program bloklarlna (1- ÖLÇME, 2 - AYIRMA) girilerek program yazılabilir. Bu yazılan program yüklendiğinde "Hardware" ayarlarlnda belirlenen MPl adresli CPU'ya yüklenecektir. Not: Haberleşme yaptırllacak programlara girilmeden, haberleşme kablo bağlantlslnln ve parametre ayarlarının doğru yapıldığını test etmek amacıyla her istasyona basit bir program yazıp gönderelim. Örneğin, MPl kablosu herhangi bir PLC'ye bağlı iken
A
l124.0 = a 124,0 her CPU'ya ayı ayı yüklenerek test edilme|idir. Sonuçta her program kendi CPU'suna gidip, her CPU üzerindeki l 124.0 giriş uyarıldığında, Q 124.0 çıkışı
aktif oluyorsa ayar|arlmlz tamamdlr denir Ve haberleşme konusuna geçilir. 168
Yavuz Eminoğlu
Prc PRoGRAMLAMA \.E s7 3m/40o-2
ENDüSTRiYEL HABERI-ESME
/
BUs sisTEMLERi
2. GLoBAL VERıLER|N TANıMLANMASı
CPU'ların birbirleri ile haberleşmesi GLOBAL veriler üzerinden sağlanır. Bu amaçla serbestçe seçilebilen merkerler, giriş çıkış kanalları, datamodül alanları alıcı veya verici global data olarak deklere edilebilirler. Globaldata olarak bir bit atanabileceği gibi, uzunluğu 22 bayl'a kadar olan veri alanları globaldata da olarak tanımlanabilir. Globaldata tablosunun her satırında bir gönderici olabilir. M 120.0
,l20.0
M
cPU
,, 4.cPu
M ,l20.0
MB 10
MB 10
MB 10 MD 40
MD 40
MD 40
MB 100:'l4
MB'l00:14 DB 60.DBB 0:20
MB 100:,l4 DB 6O.DBB 0:20
DB 60.DBB 0:20
MW 12
Mw
Mw,t2
12
Zamanlayıcı ve sayıcılar bir word'luk alanda sadece gönderici olarak kullan ılabilider. Her çevrimin sonunda gönderici CPU'lar bu verileri yollar ve alıcı CPU'larda yine her çevrimin başında gönderilen bu verileri okur ve değerlendirir.
lşlem basamaklan '|- Ana proje (mps 2) seçilir, sağ pencerede MPl seçilir ve "Menü )Options ) Define Global Data" açılır ve aşağıdaki pen@re belirir. Veya "NetPro" penceresinde MPl hattı üzerinde sağ tuşa basllarak "Define Global Data" açılır, 2- "GD lD" satınndaki hücreler çift tıklanarak veya seçilip "Menü ) Edit ) CPU" (sağ tuş ) CPU) (Ana pğe açılıp aktar|lacak PLC marka|anarak sağ penceredeki CPU 314 lFM-1 seçilir) CPU'lar aktarılır. *
HnBtRl
E
t5Mt
('. u]!
oqlnrn ri]es\sienlen§\step7Lr7Ploivnpi
AYHMA]
llt8EBLݧH€
6
E
AYBMAl iiLÇME
İ
HH(1]
E
i..
Gt,
GD
Trbh Edt tnsert PLc !ie$ wndow
ln['ı(1)
!İlgl €| *lblEl
-.|
lta]!
!ıi] .ş|c.|
ğ
İt?l
:' t+,it1) ii,lobni ddld) HnBtRJ.tşMt
GD GD
cD
sclcct cpu Eır,y
t t
a
tD eD
cD GD
9],,. GD
E
GD
3-
Fınogd"rıe\sb.*\stapi\s?pı
HABEBLE9vE
ğ' E E
|IABEBLE5ME
ı
E
AYlFlıA1 ütOüE
Et
Haİdüare
|a*rın
Merker, giriş veya çıkış alanları global data olarak deklere edi|irerek, herbir satır
bir göndericiye ilişkilendirilir. "Menü
)
Edit
)
Sender"
4- Global veri tablosu derlenir (tercüme ettirilir). 'Menü ) GD Table ) Compile" 5- Konfigürasyon ayarları stop konumunda CPU'ya yüklenir. İster tek tek, ister tamaml birden.
YaıTz EIİi.ogır
169
PIa PRCX;RAMLAMA VE s7
ENDIISTRİ},EL HABERIESME
300/400_2
/
BUs sisTEMLEpJ
3. GLOBAL VERi TABLOSUNUN KULLANİLMASİ
Ömek:
İki istasyondan herhangi birisinin start butonuna
istasyonun start lambasl (Q 'l24.0) yansın.
(l 124.0' basıldığında diğer
AY|RMA cPU 314lFM Mw 50*
ÖÇLME cPu 314lFM
2-
1-
GD 1.1.1 GD 2.1.1
Mw 52
'İ'Gönderici
(Sender) Alıcı (Receiver)
"ÖLÇME" CPU'suna
ait program
0B1 : GLoBAL DATA'LARIN KULLANIğI ı{etrıork 1: Bu cPu'daki
giri§ bilgileri,
globa]. data a].anına akta.ılması MoVE
18124
Eı{
Et{o
_IN
otJT
11B52
etuork 2: Diğe. cPU'nun g]obaı data alanına aktardığı verinin sorgulanması M50.0
Q724,g
"AYlRMA' CPU'suna ait program oB1 : GLoBAL DATA'LARIN KULLIf.JIi4I ı{etüDrk
ı:
Bu cPu'daki
giriş bi].gtleri, global data alanına aktarllması MoVE Et{
IB124 - Iİ{
Eı{o
oJT MB50
ııetüDrk 2: Diğer cPU'nun global data alanına aktandlğa Verinin sorgulanması M52.g
17o
Qr24.o
Yavuz Emiıoğlu
CPU'lar arasında bilgi alışverişi amacıyla kullanılan global datalar, yukarıda açıklandığı gibi global data tablosu yardımı ile yapılabileceği gibi SFC'ler yardımı ile de yapılabilir. Bu amaçla kullanılan;
SFC 60: Global data paketinin gönderilmesi SFC 61: Global data paketinin alınması SFC'leri kullanılmaktadır.
clRKLE lD
lNPUT
BYTE
lçerisinde gönderi|ecek global data numarası olan Global data grup numarası ('1 ..16)
BLocK
lNPUT
BYTE
Grup numarası içerisinden seçilip gönderilecek global data paket numarası (1..3)
oUTPUT
lNT
Hata bilgileri
lD
RET VAL
Ömeğin; GD ,1.2.3 ile tjanımlanan bir veri de 1: Global data grup numaraslnl 2: Global data paket numarasını 3: Global data eleman numarasını ifade etmektedir
clRKLE lD
lNPUT
BYTE
lçerisinde alınacak global data numarası olan Global data grup numarası (1..,l6)
BLocK
lNPUT
BYTE
Grup numarası içerisinden seçilip alınacak global data paket numarası ('l ..3)
oUTPUT
lNT
Hata bilgileri
lD
RET VAL
Burada kullanılacak grup ve paket numaraları CPU projelendirmelerinde tanımlanmış olmalıdır.
Yawz Eminoğlu
171
D.
"As-|" HABERLEşME sİsTEMl (Aktuatör Sensor - lnterface) Giriş sinyalleri ile çlklş elemanlarlnln birbiri ile bağlanarak bir şebeke oluşturdukları alt
seviyeli bir haberleşme sistemidir. Mevcut bir haberleşme sisteminin tamamlayıcısı olarak düşünülebilider. Farklı üretici firmaların, farklı özelliklerde AS-l iş|emcileri ve slave'leri mevcuttur. Özel yassl bir kablo ve buna takllan bir bağlantl elemanl ile sistemin oluşturulması, devreye alınması, sonradan eleman eklenip çıkarılması oldukça basit bir yapıdadır. Sisteme eklenmesi düşünülen giriş veya çıkış elemanları kuplaj modülleri ile AS-l kablosuna eklenir.(Ozel formdaki bir modül bastırılıp kablo izolasyonu delinerek kontak sağlanır) s7 300/400 bir cPu'nun As-l ile haberleşebilmesi için AS-| master ve AS-l slave'lerin kullanılması gerekir. AS-| master, CPU montaj rayına takı|an AS-| haberleşme işlemcisidir (CP 342-2, CP 343-2, CP 343-2P ). Diğer sinyal modülleri ile aynı özellikte kullanılır. CPU ile dahili bus sistemi üzerinden haberleşir. AS-l hattına bağlanan sensör veya çalışma elemanlarının, master tarafından yapılan bildirimleri anlamaları ve kendi verilerini master'e iletebilmeleri için AS-| slave'ler kullanılır. Slave'ler AS-l kablosu üzerine eklenen ve özel bir adresleme ünitesi yardımı ile '1 ile 31 arasında adreslenen elemanlardlr. Yeni allnan bir slave, fabrika tarafından adreslenmemişse "0" adresine sahiptir. Slave'ler sadece master taraflndan kendilerine bildirilen emri alır ve kendi durumunu masteae bildirirler. Her AS-| slave'i giriş Veya ç|klş olarak kullanılabilir. CP 342-2, cP 343-2 işlemcilerine eklenen her slave 4 bit transferi yapabilir. Bu durumda; bir AS-l hattına maksimum 3'l eleman takılabilir ve her eleman 4 bit transferi yapabildiğine göre 4 x 31 = 124 ikili sinyal iletilebilir. CP 343-2P işlemcilerde 62 slave, bu slave'lere de maksimum 10 dijital l/O eklenebilir. Bu işlemcilere ayrıca analog giriş çıkış slave'leride ek|emek mümkündür. Analog giriş slave'i olarak voltaj, aklm, direnç (PT100), çıkış olarak ta Voltaj Veya akım kullanılabilir. Bilgilerin iletilmesi amactyla kullanılan protokol (bir bit'lik bir bilginin gönderilip/alınması amacıyla kaç bit'lik bir bilginin, nasıl gönderildiği/alındığı) bizi şu aşamada ilgilendirmemektedir. AS-l besleme gerilimi 30 V96 ve her bir slave'e bağlı sensör ve çalışma elemanı için de 10O mA dır. AS-l hattından hem besleme hem de veri aktarımı yapıldığından özel bir besleme ünitesine ihtiyaç duyulur. Maksimum hat uzunluğu '100 m'dir. Daha uzun mesafeler için yükseltici her yükselticiden sonra besleme ünitesi kullanılmalıdır. ,t.
As{ HABERLEşME slsTEMİNiN oLUşTuRuLMAsl Donanımın oluşturulmaslna ait işlem basamakları 1- CP 343-2 (AS-l master kartı) haberleşme işlemcisi S7 montaj rayı üzerine monte edilir ve kablo bağlantıları yapılır.
2- Prole bilinen şekliyle oluşturulur. 3- "S7 Manager" sayfasında "Hardware katalog" açılır. 4- Montaj rayı, besleme birimi ve CPU seçimi yapılır.(3 nolu alan yine
lM için boş bırakılır) 5- Diğer modüller (giriş/çıkış) eklenir ve kaydedilir. 6- Haberleşme işlemcisi bir giriş/çıkış modülü gibi 4. sıradan itibaren herhangi bir yere eklenir. Ekleme sonrasında özellikler penceresinden adresi öğrenilir. (AS-l haberleşme işlemcisi CPU'nun bulunduğu montaj raylarlna eklenebileceği gibi PRoFlBUS uç birimi (slave) olarak görev yapan "ET 200M" modülü üzerine de eklenebilir. 7- Donanım ayarları hafızaya alınarak CPU'ya yüklenir.
172
Yaüı.ız Eminoğlıl
Prc PR
\T
s7 300/400_2
EN
HABERIESME
/
Bl
sisTEMLERi
Ayrıca; Adresleme cihazl i|e As-| s|ave'İeri 1 ile 31 araslnda adreslendirilir. As-| besleme birimi, slave'ler ve ASl master kartı AS-l hattına (yassı sarı kablo) bağlanır. devreye alınır.
PLc
CP 342-2, CP 343-2 ve C P343-2P'nin Görünüm ve çalışması cP u2-2
ı ı ı ı ı ı ı ı ı ı
sF
RUN
APF cCR
oa
t+ 2aü
E1
ı ı ı ı ı ı ı ı ı ı o ı 0
8
a
6
2 1
cER AUP
cM
30+ 20+ 10+ SET 0) 9
(System Fault) sistem hatasl (Run) Çalışma modu : (AS-l Power Fault) AS-l Güç kaynağı hatası : (Configuration Error) Konfigürasyon hatası (Autoprog : available) otomatik programlama durumu : (Configuration Mode) Konfigürasyon durumu :
:
3O'lu adreslerde slave var. 20'li adreslerde slave var. : 'lO'lu adreslerde slave var. :
:
:
(Set)
: Hangi numaralı led yanıyorsa orada slave var. yukarldaki ledlerden birisi ile beraber yanıyorsa, o led numarası artı burada yanan led numarası slave adresini veriri.
PLC devreye alındığında haberleşme işlemcisi (CP 343-2) AS-| ağ sistemine bakar ve kendisi tarafından tanınan, ağa bağh slave'leri adresleri ile birlikte tespit eder.
O O O
o o o o o (-,
o
a o a
ıo*
ro, ,o,
sET
7
6 5 4 3
7
Adres tespitini şöyle yapar; "l0+" led'i yandığında 'lO'lu haneli (1o-11-12-..\ adresler aranıyordur. "20+" led'inde 20'li adres|er (20-21 -22-..'), "30+' led'inde 30'lu adresler (30-31 -..), led'lerden hiçbirisi yanmıyorsa 0'lı adresler (1-2-3-..). Bu led'lerin yanması durumunda aşağı sıradaki led'lerden birileri de yanlyorsa o adreste bir slave bulunduğu anlaşılır. Örneğin; yukarıda -10+" led'i yanarken aŞağlda da 1-2-3 ledleri yanıyorsa 11,12,13. slave adreslerinde birer katılımcı olduğu bilinir. Sol tarafta verilen resimde, onlu gruptan herhangi bir led yanmadan aşağıdaki O, 1 ve 2.|edler yanıyor. Yani 0, 't ve 2.adreslerde slave var. Sağ taraftaki resimde ise "10+" ledi ile beraber, 2,4ve7.\edler yanlyor. Bunun anlamı 12, 14 ve 17 adreslerde slave var. Ledlerin yanıp sönme hızının tarama veya çevrim süresi ile bir ilgisi yoktur.
Ya\.Jz Erninoğlu
O O
ll
so.
ro. ,o.
sET
o o a o o a o a o
7
6
3 2 1
0
173
CPU stop konumunda iken "SET" tuşuna basılarak "GM" ledi yakılır. "CM" ledi
yanıyorken hattia ekleme ve çıkarma yapılabilir. Konfigurasyon işlemi tamamlandıktan sonra [ekrir ''SET" tuşuna basılarak "CM" ledi söndürülür ve koruma (çalışma) moduna geçilir. Tarama durumunda "GM" ledi (Configuration Mode) yanar Ve veri alış verişi de yapılır. Bu durumda sisteme istenilen saylda slave ekleyip çlkarmak da mümkündür, Konfigurasyon modunda değilken sisteme ekleme Ve ç|karma yapılmak istenirse, "SF" yanar ve haberleşme devre dışı kalır. CP 343-2P işlemcilerinin adres alanında da "10+", "20+" ve "B" ledleri ve aşağıda .O )9,,arasında ledler vardır. Burada da aynı şekilde, onlu gruptan hiçbir led yanmadan anlattr. aşağıda - - yanan led'ler o adreste slave bulunduğunuyanlyorsa ikisinin toplamı numarall adreste bir led aşağıda gruptan biri ile beraber onli.ı slave vard ır. cP 343-2P işlemcilerinin farkı artırllmış adres alanları vardır. Yani yukanda tanımlanan 31 adres alanının her birine bir alan daha eklenmiştir. Herhangi bir led grubu ile beraber 0 "B" ledi de nl o numaralı artırılmı alanda slave oldu u anl ılır.
)
O O
O,*
@ sET o o o o o o
ıl
ıl ıl ıl
a
ı ı ı ı ı
o o o
o o o o
3 2
0
20,22,24 ve 25 alanda slave vardır.
!
sET
o
9
o o o o
6
3
a a o
o a
1
o
10,
9
O
Eİ
zo,
sET
9
a
ı|e Q zo| ıo.
aB
Qo O ,o-
cp 34}2
0 ve
,1.artırılmış
(B alanında) alanda slave vardır.
8
6
3
11 ve 12. artırılmış
(B alanında) alanda slave vardır.
CP 342-2 işlemcisi ön konektörü üzerindeki 17-19 (+) ve 18-2O () nolu kanallar aşağıda gösterildiği gibi AS-| kablosunun bağlanacağı kanallardır. Örneğin 'l7-18 numaradan çıkan sarı kablo bütün AS-| slavlerine seri olarak bağlanır ve ayrıca bu kablonun ucu AS-l Güç n ına ba lanacakır Ayrıca slave'lere bağlanan sinyal elemanlarının beslemesi için kullanılan siyah kablo 24V güç A§j GOç 24V GOç kaynağlndan beslenip As-| cPU slave'lerinin besleme girişlerine 8 ğ a bağlanır. o o o
|{,,
o
E'.
ı.
As_i+ (küve)
As-i
174
(oavı)
{
,ş
(siy.h)
.o-
Yavuz EEinoğlu
E:E
El
2.
,AsJ" iı-e
.
pnocnıuı-ıııı
As-l master kartı ile çalışmada aynen bir analog kart ile çalışılıyormuş gibi çalışılır ve adres alanlnı analog alandan kullanır. As-| master karta ait çevresei birim adresi (PlW, Pow) CPU'ya ait donanım ayarlarından bulunur. Bu adres 256 dan başlamaktadır ve word olarak erişim mümkündür. Yani "0" montaj rayı 4.slota takı|mışsa adres 256, s.slota takılmlşsa adres 272 olarak devam eder. Bu durumda 'l.bağlanh yerinin adresi 256, 2.bağlantı yerinİn adresi 256+16 272, = ^ 3_,lağlantı yerinin adresi 288 olarak devam eder. Heibaş|angıç bayt'ının .4 ve .7 bitleri
(256.4ile 256.7 arasındaki bit'ler, en düşük Nibble) kullanımi Zinli-değildir.
arası
Ömeğin 4.slota takılan bir ASJ işlemcisinin alacağı adresler aşağıdaki gibidir.
Bil7-4
l/O Byte Numaıası n+0
(ASl master başlangıç adresi
Bit7 |Bit6 |Bit5 lBit4
ömeğin PlB 256) n+1 (PlB 257)
Slave 2 ve ya slave 4 Veya slave 6 Veya slave 8 slave 10
n+2 (PlB 258)
n+3 (PlB 259) n+4 (PlB 260) n+5 (PlB 261) n+6
Bit 3
2A 4A
64
8A 10A Slave 12 veya 12A slave 14 14A Slave 16 veya 16A
PlB262
PlB 263 n+8 lB 264) n+9 PlB 265 n+ 10 PlB 266 n+7
n+11
Bit 3-0
Reserve
Slave slave Slave Slave Slave slave Slave
PlB267
n+12 PlB 268
n+13 PlB 269 n+14 PlB27o
n+l5 (PlB 271)
,18
veya18A
20 Ve 22 22A 24 24A 26 26A 28 a 28A 30 veya 30A
slave
1
veya 14
IBit2 |Bit1 |Bit0
Slave 3 Slave 5 Slave 7 Slave 9 Slave 11 ]Ş!gv_e 13 Veya
Şlave 15 Veya Slave 17 Slave 19 Veya
slave Slave Slave slave Slave slave
21
23 25 27 29 31
3A 5A 7A 9A 11A 13A 15A 17A 19A 21A 23A
veya ve 25A
27A 29^ veya 31A Ve
As-l master kartı üzerinden okuma Ve yazma yapmak çevresel birimler üzerinden yapılır. Yani;
L Plw
272
//
Montaj rayınln s.slotuna yer|eştirilen AS-l master kartınln
ilk dört slave'inden yapılan okuma
T Pow288
// Montaj
rayının 6.slotuna yerleştirilen AS-l master kartının
T PQB
// Montaj
rayının 6.slotuna yerleştirilen
290
ilk dört slave'i üzerinden yapılan atama 5. ve 6. slave'lerine veri gönderme.
Yavuz Eninoğlu
ASl
master kartının
175
AMLAMA VE s7
PLC
F.NDüSTRiYEL HABF.RLESME
3
/
BUs
TEMLERl
As_l master kartl ile yapllan programlarda direkt olarak çevresel birimler üzerinden işlemler yapılabilir. yani programln herhangi bir yerinde bir slave adresine ulaşmak bit,lerin ğerekiyoisa o word,un tamamının işleme tabi tutulması ve o bit,in dışındaki maskelenerek kapatılması gerekir.
l
Aw <>l
=
Plw 272 W#16#10
nolu slave'in ilk sinyal elemanın (272. word'un 12. biti) sorgulanması
// 6
M0.0
Ancak, slave,lerden okuma programln başında, slave,lere atama programln sonunda yapılarak programI daha sadeleştirebilmek mümkündür.
L T
PlB 288 1860
A
|
60.2
Q 62.5
L T
176
QB62
PQB 289
CP 342-2 giriş alanından okunan AS-l giriş bilgilerinin dahili giriş
kanall 60. bayt a atanması
60.bayt'a ait giriş bilgilerinin işleme tabi tutulması. Programın tamamı bu arada işlenir. Sadece AS-| alanından al|nacak bi|giler 60.bayt'tan alınır. İşlem sonucu elde edilen atamaların dahili çıkış kanalı 62.bayt'ta toplanmasl Çıkış bayt ı 62'nin haberleşme iş|emcisine ait çıkış kanalına atanmasl
Yavüz Eminoğlu
B
Buraya kadar anlatılanlar, cP342-2, cP343-2 işlemcilerindeki slave'lerden veri okuma ve yazma için geçerlidir. CP343,2P iŞlemcilerde A tipi slave'lerde aşağıda gösterilen konfigürasyon tab|osundaki bit adresleri ile ulaşmak mümkündür.
la
2
)a 21 4
oP Dlr6,4nfi
Gğğ-d
1A B
3RK1 9}58S4+ıAAI)
2
a
?A -
1z|,-{08,t
3RA5
3f,A5
slot
57
la}-{BB.t
&-üu
sş.,-..
Ei! ü.
@ u,İgsd dd€
E& lngro|tj
!]],ğ
ğ ğ
o(l
Bo E@
südy
d#
(r,.il;.j
nodJ"" lP'd.
ö8uı""r* qt!6.ar" NdHdk
?ü.3
b 7
2576...25J.7 3
DF0
D2^ i
F
F
lD
lD1
:i
!
(/o co.fq(fdo'l)
ıoz**,[--l
daıiled ..l-ıbns
CP343-2P işlemcilerde yukarıdaki resimde olduğu gibi özellikler penceresi açılarak "? A" satırlarına çift tıklanarak açılan "Properties Configuration" penceresinde "Module" alanı açılarak ilgiIi AS-| slave'i seçilebilir. Veya yandaki resimde olduğu gibi "Selection" düğmesi i|e açılan katalogdan ilgili AS-l slave'i seçilebilir. Eklenen her AS-l slave'i "l Adress" veya "Q Adress" alanlarında atanan adresleri ile direkt kullanılabilir.
)
I
.lıl
lt)
q: !Liı...i
2*.o
seleditr.
std,5ave
Io
Et -.j 17
1 E7.5
lgd.-§av€] -sta,eI
|
F Eir] F Bl2 p
3
I
I
P - (RO/§4)
GğEd cdtrg,eı
256,0 256
|ıs. s,* oet"
cdtro,fdiğı
\.
3RA5110-1[s4 :8A, ]:t|-]]8E1
u, ğ}2
§av€
cp 3/|}2 P - (RO^a)
ıaod.*: 3RA5 3R(1
cP
P. ğaE
oeaütq
c? J1:
Gq,,ğJ cğİc,-dğl
_
|
taodİ
P,oPerrı6
6
,ddE!..!
Asi a.
B
prePeİt
|
arl
5
lEıoı
x
PıDPeftie§ - cp ]43-2 P - (rc/sr)
CPu 3trc-2 DP
d.ti:c.
6..E
CP343-2P işlemcilerindeki uzatılmış alana eklenen (B tipi slave) slave'lerden veri okuma ve yazma SFC 58 ve SFC 59 üzerinden yapılır. "B" slave'lerden ikili input verilerinin okunması
CALL sFc 59
REQ lOlD LADDR
RECNUM RET_VAL
BUSY
RECORD
:=TRUE
//RD_REc
//Sürekli aktif //Sabit değer //CP adres (Burada desimal 256) //DSNR=150 (B slave )
:=B#lü54 :=W#16#100 :=B#16#96
:=MW10 :=Mg.O
:=P#DB2O.DBX'|6.0 Byte 16 Yavuz Eminoğlu
llBinary veri hedef alan 177
//Örnek:
A DBX ,t7.4 s DBX 49.6 A DBX ,17.0 R DBX 49.6
'B' slave'lerden CALL sFc 58
//Slave //Slave //Slave //Slave
ikili input verilerinin yazılması
REQ lOlD LADDR BUSY REQ
:=W#,16#100
:=B#16#96
:=P#DB2O.DBX48.0Byte't6 :=MW12 :=M9.'1
lolD
:Yazma Talebi :lD adres alanl:
LADDR REcNUM
:
REcoRD
RET_VAL BUSY
Eıl
,r.
8#16#54 = Peripheral input (Pl) B#16#55 = Peripheral output (PQ) :Modülün lojik adresi.
)
240) Veri kayıt numarası(2 Veri kaydı. Geçedi tip BYTE. : Hata Kodu. :"0" Yazma tamamlandı, ",| " Yazma tamamlanmadı. :
) )
"l*
REc"
, -REQ
l-,, _IoIo ? ?
7
Eı|
Eflo
RET VAI atjsY
ıi.
t
-
LADDR
,RD REc,
ı _REQ
Eı0 RET vAL
?ıi -IoID
ıiı
_ UıDDR
t t EcoR0 Blrs
R
llP _REcıllİ4
-,iı _REcİtnl
ll?
terminal 1 terminal 3 terminal 1 terminal 3
/^NR_REC // Sürekli aktif // Sabit değer // CP adres (Burada desimal 256) //DSNR=,!50 (B slave) //Kaynak Veri alanl
:=TRUE :=8#16#54
RECNUM RECORD RET_VAL
28, 28, 38, 38,
REcoRD
SFC 59 veri okuma
SFC 58 veri yazma CPU ve CP 343-2 arasındaki analog arayüz
AS-l işlemci ile 31 slave çallştırllabilir her bir slave'lede 4 analog input Ve 4 analog kontrol edilebilir. sFc 58 / 59 sistem fonksiyon bloklarını kullanan kullanıcı çıkış programındaki AS-l slavlerin analog değerleri okunabilir.
178
Yaluz Eminoğlu
3. "As-l" ADRESLE]I E ciHAzl Farklı Üretici firmalar tarafından üretilen .'As-ı slave''leri, fabrika çıkışı olarak ''0'' adresine sahiPtirler. "Slave"|erin bir adresleme cihazı ile farklı adresleİe a-tanması gerekir. Bu amaçla yine farklı üretici firmaların cihazları kuIlanılabilir. ömeğin aşağlda resmi görülen As-l adresleme cihazı ile "Asl s|ave"lerinin adresleri okunabilir ve i adres ataması ılabilir.
As-l slar,. bağant [email protected].ıe|@ırü
A9l
3
Ğ*
Lc dsPlgy
+
ı
lma/Azrltrrra
düğnebi
^.t Adaeg
!ğltmg
!d.ğg dolma
:ı::
"AS-l slave"e ait adres okuma veya değiştirme yapılacaksa, ''AS-l slave'' üzerindeki M12 soket ile adresleme cihazı üzerindeki M12 konektör bağlanır. "ADR" düğmesi ile "Slave" adresi okunur ve değiştirilmesi gerekiyorsa dü meleri ile istenen adrese inir ve "PRG" dü mesi ile adres setlenir.
DATA lD12 PARA
ADDR
lo
RD
wR
PER| trı
o12345
1819 2021
ı ı
Adresleme cihazı üzerindeki "MoDE" butonu ile aşağıdaki durumlar seçilebiIir.
A B
5 7891011 1213 1415 16 17A
22232425?627 28 293031B
Ekran göıünümü İştetim durumu ADDR Adresleme modu lD
lD1
lD2
Açıklama
"ASl slave"ine
ait adres okuma ve yazma
lD kodunu okuma lD 'l kodunu okuma yazma lD 2 kodunu okuma
lo
lo kodunu okuma
DATA
Veri okuma yazma
PARA
parametreleri okuma ve yazma
PERl
Çevresel hataları okumak
"ASJ slave"lerine ait giriş veya çıkış verileri okumak ve yazmak "AS-l slave"lerine ait parametreleri okuma
ve yazma
Ya}uz Eminoğlu
179
END
E.
"PRoFlBus" HABERLEşME sisTEMi
PROFlBUS (PIqcess Eeld Bus) haberleşme sistemi SlEMENS'inde içinde bulunduğu birçok pLC ü reticifırm-a tarİtınOan geliştirilen ve standart olarak kabul edilen bir ağ sistemidir. Farklı amaçlar için geliştirilen pRoFIBus sistemleri olmasına rağmen biz sadece PROFlBUS DP (merkezi olmayan çevresel birimler) üzerinde duracağız. PRoFlBus FMS (Field bus Message Specification); geniş kapsamlı otomasyoı sistemleri, büyük üretim tesisleri, otomasyon ve scada sistemlerine yönelik ağ sistemidir. Günümüzde pek kullanılan bir sistem değildir. PRoFlBus PA (Process Automation); işlem, proses otomasyonu, güVenlik gerektiren ve risk taşıyan sistemler. Üretim bölümlerine yönelik ağ sistemidir. pnÖİıeus Dp (Decentrale Peripheral); otomasyon cihazı ile merkezi o|mayan cihazlar arasında hızlı bir şekilde veri alış verişini sağlayan bir haberleşme sistemidir. Günümüzde çok yoğun kullanılır. Ölellikle pLC,nin merkezde, çevre birimlerinin (slave) çalışma sahasında (işin yapıldığı yerde) olduğu durumlarda, iletim hatlarının oluşturulması çok kolay bir şekilde gerçekleŞtirilmektedir. Meİkezdeki CPU (master) giriş bilgilerini slave'lerden okur, bunları işler ve çıkış bilgilerini slave'lerin çıkışlarına yazar. PRoFIBUS-DP; ya bir muhafazalı iki telli hatta dayanan bir elektrikli şebeke (ekranll iki damarlı bakır kablo) ya da fiber optik kabloya dayanan bir optik şebekedir.
-
1.
PRoFıBus TEKNıK özELLiKLERi Her bir bus bölümüne 32, toplam 126 katılımcı bağlanabilir. Çevre birimleri (slave'ler) ve saha elemanları (sensör, motor) çalışma esnasında takılıp çıkarılabilir. Bilgi dağllımı "Token - Passing" sisteminin "Master - Slave" yöntemine göre yapılır. Veri transferi 2 damarlı blendajlı kablo veya optik iletkenler ile yapılır. Veri iletim mesafesi elektrik kabloları ile 12 km, optik kablolar ile 90 km kadar olabilir. Modüler değiştirme ve cihazların değiştirilebilmesi mümkündür. lndustıiğü Ethernet
E7loo(
şu^nc
EEE
s, 5ı
EI
PRoFIBıJİ
3
ıG
tİ
ıü tiltilldf
lT2od,
İ I
$
aao Dl
,lMC,Dı|VE
no§İ,o
^
Efi
I
.ET
Lİıİ
2ln
İıı sıiğrİiT
.
9ıotEG
::;:
Q,rAs_ Un* 20Ğ
şsJglİKe7
ü
ETl(oeco
ıJıcRoı,lA§ıER
]]
ı
"ıj-iııiarfa:ş ,|
80
Yaulz Eminoğlu
MAsrlİ_ t
i|vfs
TRiYEL
Profibus sisteminde hız arttıkça mesafe kısalır. 12 MbiUs ile haberleşme yapılabilir.
PROFlBUS DP
-
'1OO
sls
m, 9.6 KbiUs ile '12O0 m
iki şekilde oluşturulabilir
Mono Master Multi master
Mono master (DPM 1 : DP - Master 1.sın ıf) sisteminde Tek merkezli kumanda şeklidir. Merkezi DP-Master (,l.sln|0 kumanda birimi olarak plc kullanılır ve çevresel birimler (slave'ler) PLC'ye bağlan ırlar. Program belirlenen çevrim PLc o o 3 dahilinde slave'lerden bilgileri alır ve onları ll s o
Çallşma Elemanl (Motor)
o
ı
sinyal Elemanl (sensör)
değerlendirir.
PRoFlBUs DP
ET 200
Multi master (DPM 2 : DP - Master 2.sınıf) sisteminde; birden fazla master bulunur. Bu masterler; Bir birinden bağımsız olarak, her biri bir master ve ona ait slave'lerden meydana gelen alt sistemleri oluştururlar. Burada kullanılana master|er, CP 543'1 işlemcisi ile bir biri ile haberleşider. Ana sisteme ait farklı görevleri yerine getirirler. İlave görselleştirme, arıza takip düzeneği gibi-
-
Slave'lere ait giriş çıkış görüntüleri bütün masterlerden okunabilir. Çıkışlara bir şeyler zılması ise sadece il kilendirilmi master tarafından e kl tirilebilir Masterler birbirileri ile oP_Masıeİ (2.shf) Veri allş Verişi yapabilir|er. Multi master cP 5412 sisteminde çevrim süresi oldukça uzundur. Bu .,/--bP-M6scl (1.aiirs.\ sistemler "Token rı].''nı L Passing" (bayrak yanşı) PLc PLc sistemine göre çalışırlar, s7 S7 t yani bayrağa sahip olan / gönderme hakkına PRoFlBUS sahiptir. Bu hak master'den master'e belli I ET 200 DP AS_l zaman aralıklarında F] devredilirler.
l
\
Yawz Eminoğlu
181
2. DP sLAvE,LERi otomasyon teknolojisinde merkezi olmayan çevresel birimlere ihtiyaç artmaktadır. Çevresel birimler|e otomasyon cihazının haberleşmesini çok daha az kablo ile sağlayan cihazlar slave'lerdir. Slave olarak tanımlanan cihazlar, çevre birimlerinden giriş verilerini okuyan veya çıkış verilerini çevre birimlerine ileten elemanlardır. Bunlar DP iŞlemCili CPU'lar, dijital veya analog giriş çıkış modülleri, motor sürücüleri, enkoderler, pnömatik Vaff adalarl, kod okuma cihazları, sayıcılar veya ölçme elemanları gibi elemanlardır. S7 300/400 PLC'ye slave olarak bağlanabilecek ürünler; Eİ 2oo? merkezi olmayan çevre birim sistemleri olabilir. ET 200?,ler modeline göre çok sayıda dijital veya analog giriş çıkış modülünü taşıyabilir. Ayrıca ET 2005 (lMl51-7 ve lMl51-8) modülleri slave CPU olarak çalışırlar. DP haberleşme işlemcili CPU'lar hem master hem slave olarak çallşlrlar. Yani bir master CPU altında çok sayıda slave CPU çalıştınlabilir. DP özellikli bir valf adasl profibus altlna slave olarak bağlanabilir. Aynca valf adası üzerinden inpuUoutput modülleri ile de haberleşilebilir. DP özellikli motor sürücüler, enkoderler v.b. CP 34Ot341 modülü ile bağlanan barkod okuyucu, display, yazıcı gibi elemanlar DP işlemcili bir CPU'ya bağlanabilir. DP işlemcili 57 200 veya 57 300 CPU'lar, DP işlemcili bir S7 300 altında slave olarak çalışabilir. Bir CP 342_5 haberleşme işlemcisi ile donatılan 55 sistemi bütün modülleri ile bidikte bir akıllı slave oluşturur. Bir"oPmP - Modül"ü direkt olarak mikro masteı'le bus bağlantılıdır. (ara gerilim devresi - devir sayısı ayar|anabilir üç fazlı motorlar için frakans çeviriciler)
_ -
Siemens DP s]ave'lerinin sınıflandınlması; Kompakt DP slave'leri; ET 2008, ET 200C, ET 200L Modüler DP slave'leri; ET 200M, ET 2005 (lM 151-1), ET 200pro Akıllı DP slave'leri; ET 200X, ET 200S (lM 151-7,8), CPU 31-C DP.
182
Yaluz Eminoğ]u
/s. cp
34z-s HABe
ME
LEirclsi 9 pin konneldör
optikbeğlarİtl 5oketleri
Durumve h gostergesi
Açma kapam
analtan
Güç kaynağl bağlantıs|
Otomasyon cihazının PROFlBUS DP haberleşme ağına bağlanmasını sağlayan bir modüldür. Otomasyon cihazının haber|eşme görevlerini azaltır. Bir modül gibi montaj rayına monte edilebilir. Bu modül ile donatl|an plc hem master hem de akllll slave olarak kullanılabilir. (S5 sistemine slave olarak bağlanabilir) PROF|BUS DP işlemcisi olarak CP 32-5 modülü CPU'dan ayrı olarak alınıp donanıma eklenebileceği gibi CPU ile kompakt olarak üretilen modellerde bulunmaKa ve gittikçe yaygınlaşmaktadır. Bu modeller CPU numarası sonuna eklenen DP sembolü ile ifade edilmeKedir. (..C-DP) CP 342-5 ayrıca otomasyon cihazlarının "Send - Receive" (gönderme - alma) prensibine göre haberleşme hizmetini de kullanıcıya sunar. cP 342-5 haberleşme işlemcisi; bütün CP 342-5 bağh 57 cihazları, S|NEC L2'li S5-95U, CP 5412 arabirimli PC'ler, ayrıca FDL arabirimine sahip diğer üreüci firmaların PLC leri ile haberleşebilir.
Yaiuz Eminoğlu
183
\D
4. ET 2ooM,lN DP işLEMciLi cPu,YA EKLENMES| ET 200?'ler sZ3ooi4oo sistemlerinde uzak uç birimlerle profibus altında haberleşebilen donanımlardır. PLC'den uzakta bulunan birimlere ait her giriş/çıkış için bir kablo bağlantısı gerekir. Bu nedenle maliyeti yüksek, montajl zor, arlza takibi kolay olmayan, sinyallerin çoklu İablodan dolayı elektromanyatik alandan etkilenmesi mümkün olan bir yapının önüne geçmek için uç birimler kullanılır. Bu uç birimler tek bir kablo ile CPU ile yüksek hızda _. haberleşir ve tİpine göre farklı sayılarda dijital-analog inpuVoutput kartları ile master CPU'nun haberleşmesini gerçekleştirirler. ET 200'lerle proie oluşturmada öncelikle mevcut donanımın kurulup ve bu donanıma göre projenin oluşturulması gerekir. Bu amaçla bizim elimizde master olarak; 313C-2DP ,l53-1) v€ giriş eklenmiş cp u2-5 kartı), slave olarak ET 200M (lM [veya stindart bir CpU,ya .SM 321 Dl 16xDC24\r,, "sM 322 Do 16xDC24V/0.5A", ,sM 334 Al4 - çıi<ış modülleri olarak, / AO2 x 8 bit" olduğunu kabul ederek p@emizi oluşturalım. Donanımın oluşturulmasında slave ve modüllerin, kullanma kılavuzlarında belirlendiği gerekir. şekliyle elektriksel bağlantllarlnln yapllması Ve slave'lerin adreslendirilmeleri Adresleme kullanılacak slave'in özelliğine bağlı olarak farklı şekillerde olabilir. (Bizim kullanacağımız ET 2OOM, üzerindeki mikro anahtarlar yardımı ile adreslendirilmesi gerekir. Bu adres istenildiği zaman değiştirilebilir ancak yeni adres modülün enerjisi kesilip yeniden verildikten sonra aktif olur.) Proje donanımının oluşturulması;
-
)
"Flle
New
) "lnsert ) "lnsert
)
New ProjeK
Subnet Station
) )
).."
isim verilip, yer tanıtılır.
Profibus" SIMATIC 3O0-Station"
Proje bilinen şekliyle donanım tanıtımına kadar devam edilir. Profibus işlemcisi kompaK olan ..DP (313c 2DP) modellerde;
o o
CPU, 2 nolu slota yerleştirilirken "Properties" penceresindeki "Subnet" alanında "Profibus('t)" seçilerek onaylanır. "(0) UR"de 2.slota yerleşen "CPU 313C-2DP"nin sağ yanına "PROFIBUS(I) DP master system(l)" hattı eklenir.
slM^llc J00(1) (confiquİalion) pıolihUs
ıjd
Eü Ponğ
1
c?U :nT_2 DP
2
slHATla
G@c7 E@
22
!ı]
cPo
E.@ @U,m E @ cfiJ a2 312|lM 6
3
6
o@ E@
ıa
ltr
ıçongı.ısııt
312c
33 33c
ıı @
6Es7 3l
opna".rş*nı
}6[!o {A30
DP haberleşme işlemcisi ile kompakt olmayan CPU model|erinde,
o
164
4.slota Profibus haberleşme işlemcisi CP 342-5 eklenir. "Hardware Catalog slMATlc 300 cP 300 cP 342-5" Profibus adresi ile birlikte (CPU adresi+,l) eklenir. Bu adres ET 200 M üzerindeki mikro anahtarlar ile verilen adresten farklı olmalıdır.
)
)
Yaiılz Eninoğlu
)
o
)
"CP 342-5
sağ tuş
)
Objekt Properties
)
Operating Mode" ile CP 342-5 in CP 342-5 markalanır. "Menü ) lnsert ) DP lrastersystem" dendiğinde tabloya "PROFIBUS(I) DP master s 1 " hattı eklenir. Bu hatta istenilen slave'ler takllabilir. DP - master olarak kullanılacağı belir|enir. Veya
slMATla ]00(1)
((oitieUlnlion]
PIolihU!
E{
dd
|rİt
t 2 :l
iI
FnOFOus
& Andi d Fğd offi. & Dfu6 +r
ir G| l/0
6
E @ vaıG Cd*ğ,
]ET
-
..._._.ayj!].]!4|4.!!:!&::i'
|!!
ııı ıı zoı
! ğ = 6
E
E @
& DP/As.i & ENü:oDEF oaEI@ !]ğEİ@ !,
ıtııııı
..1'
coEE&t PFotıBus DP sta?6 6 o6n{o.p coıüdd
.
E
' ,
EıBEİ2mt
5&EI2fl
Ei5
lM 153l 6€s7
E
1n Es7 @.rD+lt{D,İll 1§D0 1g 6Es7 :Bl{xEfi ]{IAE0 atl,/2An
o,.1
2.,9
z..5
E
91.7BDm{ıAl0
6Es7 P1.13Hc{iAAl, 6Es?
?]
.0l 8Dl ]6Dl
]0l.]5,1lAAo l6Dl
Artık bu hatta profibus hattına bağlanabilecek tüm elemanlar eklenebilir. Ekleme işlemi "Hardware" kütüphanesindeki "PROFlBUS DP" altından yapılmalıdır. Siemens ürünlerinin tiamarnını bu tabloda bulmak mümkündür. (Yoksa tablo güncellenmelidir "HW Gonfig Options lnstaIl HVtl Updates" ile) Siemens dışındaki bir ürünü tabloya ekleyebilmek GSD dosyasının eklenmesi ile mümkündür. ("Hw config options lnstall New GSD" ile daha önce bilgisayarımıza yüklediğimiz veya o anda intefnet üzerinden bulup indirebileceğimiz bir dosya "Additional Field Devices" altında kütüphaneye eklenir.)
)
)
)
Slave olarak ET 200 M'in eklenmesi;
)
)
"DP Masteİsysytem' hattl markalanır; "PRoF|BUS DP Additional Fİeld Devies Compatib|e PROFIBUS DP Slaves ET 200 M lM ,t53-1" çift tıklanarak modül hatta eklenir. Modül seçilerek, sağ tuş ile "Object Properties" penceresindeki "Profibus" adres alanına ET 200 M üzerinde mikro anahtarlar yardıml ile verdiğimiz adres buraya yazılır.
)
)
)
ET 200 M üzerine giriş çıkış modülleri eklenir. Profibus hattına eklenen "ET 200" seçildiğinde a|t alanda sinyal modüllerini ekleyebileceğimiz alanlar belirir. llk üç slot doludur. 4.slottan itibaren sinyal modüllerini ekleyebiliriz.
o o
Bunun için "Hardware" kütüphanesi alanındaki lM 153-1 (+) tıklanarak, o alanda kullanabileceğimiz giriş çıkış modülleri bulunur. Bunların içerisinden biz hangilerini kullanacaksak (bizim elimizde hangileri varsa) onlar yerleştirilir. Yerleştirme esnasında modüle ait başlangıç ve bitiş adresleride görülür. Bu adresler default olarak belirlenmiştir Veya üst model 57-300'ler ve 400 lerde biz belirleyebiliriz. ET 20O M'e takılan lM 153-,1 markalanarak "View Address Overview" menüsünde modüller ve adresleri toplu olarak görülebilir.
)
Yavuz Eminogu
185
Prc PROGRAMLAMA
ENDÜSTRiYEL IlABERtEs MF. / Btrs slsTEMLERİ
VF. s7 300/40G2
profi bus kablosu takılır.
o o o
DP modellerde; CPU'nun 2 nolu kapağının altında 2 adet haberleşme portu vardır. Xl:MPl için X2:DP (profibus) için kullanılmalıdır.
CP 342-5 modütlerinde ise kendi üzerinde DP (proiibus) portu bulunmaktadır. Profibus kablosunun (mor kablo) uçlarındaki konektöder DP portlarına takılır. Konektörler üzerindeki swich anahtarlar yardıml ile başlanglç ve bitiş son|ama dirençleri "on", ara durumdakiler "Off' konumuna alınır.
İJ*i|eİi
Donanım ayarlan hatızaya alınarak CPU'ya yüklenir (CP 342-5 RUN konumunda olmalıdır) ve PLC çalıştınlır. Bütün |edler yeşil olarak yanıyorsa donanım ayarlarının tamam olduğu anlaşılır. Yukarıda anlatılan yöntemlerle yapılan "Hardware' ayarları sonrasında ağa eklenen modüllerin adresleri kullanılarak program yazılabilir. Örneğin CPU 313C-2DP modellerde; kompakt sinyal modüllerinin ,l53 üzerinden bağlanan sinyal modüllerinin adresleri 124. bayt,lM adresi 0. bayttan başlar. Kompakt modül üzerindeki giriş kartına ait'l. bit uyarıldığında ağ üzerindeki çıkış kartının 1.çıkışını aktifleştirmek istersek;
A
l124.0
= Q 0.0 şeklinde programı yazmak yeterli olur. Tersi durumda yani ağ üzerindeki . giriş bitinin uyarılması ile CPU üzerindeki çıkış kartına ait 1 . çıkışın aktifleştirilmesi istenirse ,1
ET 200M lM 153-1
program,
A l0.0
Q 124.0 şeklinde yazılmalıdır. Programın yazılıp yüklenmesi sonrasında ilgili girişler uyarıldığında, ilgili çıkış ledleri yanıyorsa =
haberleşmede bir sorun olmadığı anlaşılır.
,,86
Y8ruz EDinoğlu
Merkezi olmayan çevre birimlerinin Profibus üzerinden haberleşmesi amacıyla standart haber|eşme fonksiyonlarıda kullanılabilır. Bunun için, "slMATlc Manage/' pencersinde kendi pğemiz açık iken; "File Open Library Stdllb30 Net DP" fonksiyonlarından, verileri slave'lere gönderebilmek amacıyla "FG 1", verilerin slave'lerden alınabilmesi amacıyla "FC 2" kendi projemiz içerisine kopyalanır. Daha sonra herhangi bir program modülü içerisinde bu fonksiyonlar çağrılarak gerekli parametreler girilirerek bilgi alış verişi sağlanır.
)
)
)
)
Verilerin alınması amacıyla haberleşme fonksiyonlarından FC 2'nin çağrılması CALL 2 CPLADDR:=W#,l6#,t00 llCP-342-5başlangıçadresi(desimal256) :=P#l 64.0 BYTE llahnaak bilgi alanı | 64.0 dan başlayan 20 bayt'lık alan //
Fc
RECV
20
NDR
ERROR
STATUS
:=M89.0 :=M89-1
:=MW87
DPSTATUS:=MB85
ll
Al
=o =o
Al
=Q
ll ll
ll
u.7
//slave giriş kanalından okunan bilginin //slave ve master çlklş kanallarına atanmasl
64.0 124.0 124.0
//master giriş kanalından okunan bilginin //slave çıkış kanalına atanması
64.1
L lw68 T Mw50
ll1.analog giriş kanallndan değer okuma
L MW 50 TQw68
ll1.analog çıkış kanalına bilgi yazma
Verilerin gönderilmesi amacıyla haberleşme fonksiyonlarından FC 1'in çağrılması CALL llCP-U2-5 başlangıç adresi (desimal 256) //
FC 1
CPLADDR
:=W#16#100
SEND
:=P#Q 6ı1.0 BYTE
DONE
:=M99.0
bayt'llk alan
ERROR
STATUS
20
//gönderilecek bilgi alanı Q64.0 dan başlayan 20
:=M99.'l
:=MW97
Yukarldaki program sadece bilgi değişiminin olup olmadlğlnl anlamak amaclyla yazılmlştlr. Burada FC 1 ve FC 2 parametrelerinden "CPLADDR" haberleşme işlemcisi CP 342-5'in başlangıç adresidir. Bu değer donanım ayarları yapılırken CP 342-5'in özelliklerinden adres alanındaki giriş ve çıkış başlangıç adresleridir. (CP 342-5 markalanır 'View Address Overview" montaj rayına bağlanan elemanların başlangıç adresi ve genişlikleri gönilebilir.)
)
Yawz Emjnoğü
187
AVEs
'SEND" ve "RECV" parametreleri değişime tabi tutulacak
veri tipinin ve genişliğinin
bildirildiği klslmdır. Giriş - çıklş, merker ve data modül alanlarl kullanılabilir. Master olarak kullanımında maksimum 24o bayl, slave olarak kullanlmında ise maksimum 86 bayt olabilir.
"DPSTATUS' parametresi haberleşme işlemcisinin durumu hakkında "master" veya "slave" olarak çalıştınlma durumuna göre farklı bilgiler verir_ Örneğin ğ.bit "l' ise işlemcinin slave, "0" ise master olarak kullanıldığı anlaşılır.
"NDR", "ERROR", "STATUS" parametreleri haberleşme ile ilgili durum ve hata uyarılarını bildirirler.
örne
ln
NDR ERRoR STATUs AÇlKLAMA 1 0 0000H yeni veriler hatasız olarak alındı 1 8'183n Poe hatasl veya CP kapall 0 1 0 8F22H parametre okumada alan genişliği hatası (Data modülden okumada
@l!!gq)
"ERROR" bit'inin "1" olduğu her durumunda bir hata oluştuğu ve haberleşmenin düzenli olmadığı anlaşılır. Bu verilerin izlenebilmesi için değişken durumları izleme tab|osu (VAT) kullanılabilir
a
188
Yavuz Eminoğlu
END
PRoFlBus HATTıNA EKLENMES|
5. ET 200B,NıN
ffiş,;*,_,, reı şEEİ ;ğ":_ş
ET 200B'ler üzerlerinde haberleştirme işlemcileri ve klemensleri ile beraber kullanılır. Ancak her ünite üzerinde sadece bir l/o modülü taşıyabilir ve en fazla 32 bit adreslendirilebilir.
,
ünite üzerinde döner tamburlarla ayarlanan adres, "Hardware" ayarları penceresindeki profi bus adresine atanmalIdır.
$
l
jt,,",
.,jt
ntr,,
:!
/.iı
-ıii.ı,
iıri.ı!
profibus konekörü
L.ıı
]DE Erı srlğ,]bĞ|lağ/EE ull? ]
cPU:n:.,zoP
2
ğ
o*ı e""*l"l,.v.-* |
2ı
t
1
5Es7 ] 3-,BN]..lr,Go
GsD
&
lğ]F.
ıL} slEMütr.osE
Eğ
1 5 6 7
E @ cdsg,ğd 4 @ DPVO.bğ
-
B
9
o
&
DP/PAI
*
o,gat"ıo* liE-
E @ EN@DEB
EoET2m
1o
ıı) e zoınoo,z 0Pl0
No+fltdd sJ.iğı
moneus
I
5
g.l^ı4
.ıl |ğ
l
T
oe
9l60l I
B-32Dl
c..
[email protected]
B@l/E0 Blol/E0 0.00l B
0(
1Dlİ
c."ı
|
Daha önce anlahlan yöntemlerle oluşturulan PROFlBUS hattına, "Hardware' kütüphanesindeki "PROFIBUS DP ET 2008" açılarak altından ilgili l/O modül seçilir ve hatta eklenir. Artık PLC projimizdeki donanım ayarlarında o modül için belirlenen l/O adresleri direkt kullanılarak program yazllabileceği gibi, "NET DP" altından eklenen "FC1 ve Fc2" fonksiyonları kul|anılarak adreslendirilebilir.
)
ıffi
aA
ET 2O0l'lerde aynı metodla profibus hattına eklenir. Yükleme işleminde profibus kablosu CPU DP modülü ile "ET 200L" arasına, MPl kablosu da bu konektörlerden birinin üzerine takılır ve "pG/pc lnterface" ayarlarında PROFlBUS seçilir. Modül üzerindeki döner tamburlar yardımıyla verilen adres yazılır. Modül adresi "View" menüsü ile de görülebilir.
Ya]uz Erninoğlu
189
6. VALF ADASıNıN
PRoFlBUs HATT|NA EKLENMESı
slMATlc 300{1) (Confiquration) PROFl VALF
]i]ı v§,
1
2
,Q
22
cPU 3ı3f,-2 DP
:-:l
IP
DrafiW6
DP ündeü
PHOFlBU
1'3
1
coırt
3 1
Daha önce bilinen yöntemlerle projeye DP modüllü cPU veyacP u2-5 işlemcili CPU eklenir. CPU veya haberleşme işlemcisinin DP master konumu seçilir. Bu seçim sonraslnda Dp modülüne profibus hattı eklenir.
Profibus hattına eklenmesi düşünülen slave modüller siemens ürünü Ve katalogda yer alıyorsa, daha önce anlatıldığı gibi katalogdan seçilerek hatta eklenir. Ancak siemens ürünü olmayan veya katalogda yer almayan ürünlerin "GSD" dosyaları bulunarak kataloga eklenmeleri gerekir. Bunun için ürünün satın alındığında gelen yazılımı içerisinde, ürüne ait firmanın intemet sitesinde v.s ilgili "GSD" dosyası bulunarak bilgisayarımıza alınması gerekir. lnstall GSD File" ile Daha sonra "Hardware Gonfiguration" penceresinde "Options dosyanın kataloga eklenmesi gerekir.
)
"Options
)
lnstaIl GSD File" ile açılan pencerede
"lnstall GSD File" alanında "from the directory"
l.dJ
GsD
Fii§
ftom
üE dİecldy
Blde
crPFOGRAM FlLEs§lEMENs\sTEP^snMP
Fı.
seçilerek
"Browse" tuşu daha önce
X
lnsldll GsD F lle§
tzlx
klasöre Gözdt
i|e
sE|ed d
bilgisayarımıza aldığımız "GSD" dosyasının yolu gösterilerek bulunur.
E
E
futry
Cmtii*ıg
GsD
fles
ı§ı
MğiİiEti]
E :E<-YğelDi5k(c|) Belgelerim
Fngsaydnm
,Eta@ E,Ş}
DVD{AI4 süi](.l'ü (E|)
jEoPdy'aşar,8dgdel
: lnsiall
190
@
E §İ lc
Eı
E
Yğrı,
-
8elgEl۟
Ağ BğğAnbl.nm Du§
Yarı,z EmlnoğD
ı,;l] 9ğ]
j]
ji ı,f
i,ş
PLC PRaXiR
vE s7 3m/,(n-2
GsD Fa.*
{ıom t.E STEP7
ID:\YAvLQ\PLc16.iı.nPf,
vll üİE9,GsD
0pl]n P,.r je. Ura
trffd
nE{A
EE5Fi.ffi
llaıı
I
Sa* ı"i"o,
I
c:\Eogğn Fleslsiemans\söep7\
FROF|_2aPU PBOFl_Asl
D:
C j\Praglğrı
markalanarak "lnstall" tuşu ile yüklenir.
::L li].i..FF
0Fl -A!
|\
D:\YAvLaRc\Geld\Pro§ğs_ı
x
l.ıdd EsD Fl.§
f[om
lıE dıeclgy
D:\YAM_BPl_.LrEeııcltd\İııio_cşv
ilı:!!l-rE üib9.gsd nl
vnOH3cGsD
s]MATlc 300(1] (a.Jlıfi8ıl,,njOn) pR0l ]
Err
-
Eıorue
DefdJİ
Oel
i
DelaJll
-..
ln*dl
SlE*
Ls
§tİ.İ AI
- -x
V^l F
(TlI B
Decd€d
DP
:n:r-z DP
FRoFlBU
DP md.ü
Al
ğ,
4dd
fun B.fla
1
2
_§|
lnst.rllGsD Files
VlltrEgc.Gso
)Q
ğ|
Fıes\siamğİs\step7\
\YAV[Z\P[C\Gtıd\PF
i] -
FFOSEs TANK|
GSD dosyası
sisTEMLERi
,
tr.2.pu.dğEl€
Hangi yöntemle olursa olsun bulunan
Br
yüklenir.
Ddaİ
t
ı*l"
/
"lnstall GSD File" alanında "from the STEP 7 project" seçilirse daha önce herhangi bir projemizde kullandığımız ürüne ait GSD dosyası kataloga
ınslall (!st) [i(es
lrdc
}iABERLESME
ENDI-J
slğdad PHOFlBUs DP Addiond Fdd Devices
E (-
i*ü
ğl o Div6 i.İ sı*cxııg oevices 8 fl }cfry D l,,i 3 E{ilru 1 E, E Vdv€§ ]] ,,!| E_ğ aFJ,Dlo FEsrO E E Caüeı{d s O co,üıo.ıiıb pnorısus opsıa,es CR{L,iect E Efi C]ossdlo@ Cğrüdğ Jl E,E cü.{iguüEd sıaıiİu ,l i ğ DPvo d","o Yüklenen dosya "PROFIBUS DP ) Additionat Field Devices" altına yer|eşir. Örneğin yukarlda bir valf adasının "Valve6" altlna eklenmiş hali görülmektedir. Buradaki ürün sürükle bırak yöntemi ile "PROFlBUS DP master system"e eklenir. 22 2,ı
E
E]
Yaru Eminoğu
19,1
HABERLESME / BUS sisTEMLERi
ENDÜs
LAMA VE s7 ]00/400-2
PLc PR
cP Eİ6
cPv l0
cPu313c rDP
Pc
sENsöR
MP1
BESLEME
FESTo firmasının BUS sistemine bağlanabilen bir valf adasıdır. Bu valfin jumper'ları ile profibus adresi ve haberleşme şekli belirlenir. CP E 16 kartı kapağı üzerinde valf adasl üzerinden haber|eşen üzerine 16 adet sensör V.b giriş bağlanabilen bir karttır. CPV
10 valfi
slMATlC 3o0(l ) (configuralion) PROFl vAL
-
F
X 1|
t0]UF ]
2
cPU 3t3c,2 DP
22
D 6mol6
p
gdd
Ehd stard.id
fui16:
1
FffOnBus DP
E
PEOFlEUs
11lCPı/ D
3
@
Additional FHd D.vicas
& D,ive§ 6 switc+inq E@ı,t E 6
E @ Vdles
E if
(
}
!!
nı
{
ceu oıoı
DPlD
slot 1
Devıces
E
1EDO
]6.!l
rısro 0İdğ Nuü6€.
0n.8oğdl6DA aF.E].c ]at]i
/
De6isndin
!l
I
0...l
c-"^.
_|
, E& l d@
CPV Dl01 FEST0 Ulneud moduh
|ı
[ I
ohBoğd.lGDA
||
CP{A]5.16Dx
Effi
CPr'lCPA:lEtlA
|:,
Gaıe"lo,
Cdipdide PFOFlsUs DP sl.Yۤ
]6 ciF.Obiğd g@
clos€+Loop
conüoler
Hatta eklenen valf resmi seçildiğinde aşağıdak ayrıntı alanında valf üzerine eklenen l/O kartları tablosu görülür ancak boştur. Aynı - şekilde ilgili valfin katalog üzerindeki "+" sembolü tıklanarak, o valfe eklenebilecek l/O kartlan listelenir. Bizim kullanacağımız valf adasında on-Board olarak 16 dijital çıkış kadı vardır. Bu karta listeden seçilerek 1 nolu slota eklenir. O karta ekleyeceğimiz "CP-EI6: 16DE" kartıda elimizde olduğundan onuda 2 nolu slota ekliyoruz. lnput ve Output kartlarına atanan adresler karşılarında görülür. Bizim adreslerimiz her ikiside Bütün iş|emler tamamlandıktan sonra donanım ayarları derlenerek hafızaya alınır ve CPU'ya yüklenir
192
Yaillz Eminoğlır
1
l i {
Program alanına geçilefek yandaki gibi bir test programl yazılıp ayarlar test edilir.
oE1 : DP iizERİıJDEH vırF tDisl İLE EABERLEşIE
ffi
: V.ılF' TEıı' cPtr' YA
Io. o
Ql24.o (
ıIGt9oİl( 2: cPu,DıN VI.LF, E
E
Iı12
4
_ Iİ{
Yaluz Eminoğlu
İlovE
E{o
om
Q[0
,|93
7. uPLoAD EDıLEN BiR PRoJEDEK] reıııı,ıuıYııl AĞ BıLEşENLERı CPU içerisindeki bir pğe PC içerisine alındığında bazı ağ bileşenlerinin ta1!lq9qp, gÖrÜlÜr. Bu bileşenler ağ altında 'DP-NoRM" ile tanımlanırlar. Bunun anlaml ilgili ÜrÜnÜn 5ilgisayanmızdi kurulu olan "Simatic ltianageı'' donanlm kataloğunda olmamasındandır. Bu durumda ürünün CPU ile haberleşmesi mümkün değildir.
-
Bu sorunu aşabilmek için
ilgili ürün çift tıklanarak açılan
ot-
G.gd
özellikler penceresindeki "GSD file (type fİle)" alanında tanımlanan marka ve kod adı ile "GSD" dosyası bulunarak kataloğa yüklenir.
@
I
Gson OEn
}
Pt-zsocsı)
Pss DP§,?ssl oP-s
FlaL-F:
e!"o*#ğ:
liiE-
Pa]!i L-P|,l
ıomiıs,
l
17
Örneğin yanda projemizdeki profibus ağına eklenmiş ve tanınan "Siemens ET 200L", ,,Festo vaıf adası" ve ağda bulunmasına rağmen GsD GSD dosyisı ekleneiek tanınan yüklü olmadığı için tanınmayan "PILZ" marka bir ürün bulunmaktadır. dosyası Ağ İçerisinde tanınmayan ürünün GSD dosyası bulunarak daha önce anlatılan yöntemleile yüklenmesi sonrasında ürün tanınır ve CpU ile haberleşmesi sağlanmış olur.
194
Yavuz EmiEoğlu
pıc,ııiı.ı PRoFıBus üzERlNDEil xeeenı-eşuesl
8. PANEL lı-e
Bilinen yöntemleıle PLC projesi ve profibus ağı oluşturulur. (Panel PROF|BUS ağına bağlanmaz.)
ıı
L
0Pne
Enııııı Aq.r&3- m l
<ıııa
RoPerti=
-
|rııı;|
114ls
§d tb.iün|
r
a4ıl
tP
_
PfioBBUs inter6.E
fu*l
Jıö!3:
|ğh.a.tr*
t»
lil=
'126
Triıiinıic| 15ıt!. 9Irİİ:
. ıb.:
iE.:i]:]:-
ıüİJ...
-a|Jb!ı
fuplt
rEİ.o.
odd.
Pflnaus
T!P.:
Ah..: ıEid..d:
l
3
Y.r
PLC p@esine HMl eklenir ve "Communication
bağlantı yapılır.
ı +ı FJİt"DP
.
ltid !* si hd fq
=ıb.Dı-.ğ-x
irrb
tt
(E! unül
uJ,
)
BA t_|l _ir_i.6
B _|&
Connection" ile PLC pğesi ile
-!eta_
itl
!g.d Eİ *E*9froxn ln
C
JJ:
t",
l
E+
o|ı
Es
]-
E U
Yavuz Emhoğlu
fuiı iP---
-] Lüğ__._j
E::l
195
NetPro üzerinden PLc Ve operatör panelin profibus ayarları yapılarak Profibus hattlna bağlantıları yapılır. Bunun için, cihazlar üzerindeki DP portlan (Mor kare) sürüklenerek or eklenir rofibus hattına Fıi.d,,ıst p7\rrP;iyfliiıl .:iP,og'am ıı.i,,"ryi,*i riı*;tı.E optıon u Network Edİt Inren PLc E c *ll€ılhc|İt|4ldp1 eE!lt? Vi€s/
PıoP€rtE
ı4PI
pR
tlH/DP
e...ı |s9,".ı | *=* rsıı" I r"g.*" lFlB t4PyDP :rEr D..ğiriıı:
1)
PRoFI
- IF18
5
§n aİleta-d
lr!t.
stMAT]c 30o(1)
tr
!
|ı 2
Pıop€rt6
H!h.i
p-.,,a,"
I
Eu
PRoF|BUS
tİdic.
ır-ıİE,
tr.d
.
sli,|
I
odğ
cP_PB
}lo
lFlB MPyDP
3
- pRoEBUs anteİfĞ€
e.=a
sIMATlc HMl-sbtio
PG
I
|ircFı8uŞl
MpvDP (m/s4)
1
Yğ
frağöe5.
lE=
addE r: 126
T| i{iİİa.:
1.5atiır
§iıd FFl!FlEusi])
]
-ı
lıhps
Gerekirse ağ üzerindeki panel çift tıklanarak açılıp "lnterface rofibus se ilir.
)
Type" alanında
gition Edit }Edt Pl-c vı.t oPrioE wind6 tldP
]o gıe-g
sıl5llbĞ lİ
ğ llmglE
lıı
P@Fties
ıI
Elr
lwffieRT t
5
5 7
llE
-
Ir18 MPtDp
a.-ı |ı6-"ı
fu DEiriO:
|
n
=*
[s^P" I
lF]B
P|,oP
@DP.
r"q.c
|rE. PGt ğĞ,
I
dİE,
..
slilATE ılEt cD 7/2ml
sPl
cP_P8 |lFlB MProP
PRoEaUs
lll
toı
,",
Aşağıda anlatıldığı gibi operatör panel üzerinde de "Control Panel ) Transfer Settings" üzerinden bağlantı ayarları yapılmalıdır. Bunun için bağlantının Profibus üzerinden
yapılacağı seçilerek adres ve hız bilgilerinin projedeki ile aynı olması sağlanır.
,l96
Yavuz Eminoğlu
!,E
o
ı ı
@ o Cgrmuni.,, Dats/TirrE trEuFİEl
ıE
-l E Keİhüd
M!ı/se
ı{etwBrk
P65ıAlBd
Rılğ
Regİrnal
ğ §/sHn
Trar6|lİ
kJ
§eo
ı
screer6öisr
Panelin açılış ekranında''Gontrol Panel" seçilerek yandaki pencere açılır. Bu pencerede "S7-Transfer Setting'' açılarak, aşağı sağdaki resimde gösterilen "PROFlBUS" aktif edilir. Daha sonra "Properties" düğmesi t|klanarak aşağı soldaki pencerede gösterilen
s€ttirgs
'...
ü
profibus parametreleri girilir. Bu penceredeki öze|likle adres ve hız (Transmission Rate) bilgileri projedeki değerlerle aynı olmalıdır.
oP
@
s7-TrüEfu
b
setiEg
whc( InğrBt 5ettı1g5
s7 Transfer settings PRoFlBUs
PRoFIB(rs tr]
l0s
Lı.s_g_g_q_I
tr___I Yukarıdaki ayar|ar onaylanarak panel transfer konumuna alınır.
.4i
Profibus kablosu PLC'nin DP portu ile Panel'in DP portu arasına bağlanır. Bir ucu bilgisayara bağlı olan MPl adaptör kablosu, Profibus kablosu üzerindeki (PLC veya Panel üzerinde) çift tarafll konektör üzerine bağlanır. Bu arada bilgisayar üzerindeki ''set PG/PC lnterface" ayarlal da profibus'a alınması gerekir.
"Simatic Manage/ projesi PLC'ye, WinCC Flexible projesi operatör panele yüklenir Yartz Bminoğlu
197
İ
s.|€İtdğıi.,6.r
*,'
E §r^TrHı&tr
ı(|)F...
s!İT.
fu.
sn^]r HI}§d..ı(l)
(tP 17rB
6'c&
PİülP}
EffiH(rdEb E orrtil ElEd li$ E oE*irrĞ.jF dr.Ecd*
E E Eüd.mİ,!
tjre Pad( E Go
Pl:2-) PrcflBus:1
'd,
H
plc bellek alanları operatör Artık panel içerisinde gerekli tag,ler (etiket) oluşturularak panel ekranına alinabilir. yini bundan sonrası panel projesi içerisinde yapılması gerekenlerdir.
,l98
Yavuz EEinoğu
9. DP |şLEMCıLı lKl cPU,NuN PRoFıBus ALTıi{DA HABERLEşTıRıLMESı Bilinen yöntemlerle proje oluşturuldu ve projeye iki adet cpu eklendi. cpu isimleri daha sonraki ayarlarda karışıklık olmasın diye "masteıJ've "slave" diye fonksiyonlarlna uygun isimler verildi.
E
7cPı|
pROf l
E-
iF..: _
(.:\püoglnİll Ijlcs\siemen§\slep7\s7pıoj\PRoFl
m6,teİ
F
f,
mösİd
2C
shve
MPll1|
s]aVe
Prcfl8
oP
m.iğ
a
)
Eklenen CPU'ların donanım ayarlarına girilerek elimizdeki DP modüllü cpu'lar eklenir. önce slave cpu eklenir ve ayarları yapılır.
)
i{OT: Eğer CPU'lu ET 2005 ekleniyorsa, 'PROFIBUS DP ET 200S lM 151-7'' rack olarak eklenir. lM 15'|-7'nin 4.slotundan itibaren Power Moduller ve sinyal modülleri eklenir ET 200S'e yükleme yapılırken profibus kablosu üzerinden ve ..PG/PC lnterface'' ayarlarından profi bus seçilerek yapılmalıdır.
"ınterface Properties"
)
alanında profibus adresi belirlenir.
i it:iJr!i
l'ı ı l.ı
eaaı §H
x
,l
|ıı*rc | opcıela Dçaüton DP
I
ute I c""nor*-,
I
Properties pR(lFlBL|\ intel,ince
6"o4 eıoı*rı
lE,=
Adüğ6*
Hilhed
ilİıç
|rropctIies
DP
12s 1,5
Mb6
S,Jffi
lF
PEOFlsus
Ad,b.*
1
}ldig|Gd
Yt+
-- nol hetwdked
PFaFEl !
-.
Propğtic..
Slave CPU'ya ait DP konfigurasyon oluştururken
(Ro 52.1)
"Operating Mode" alanında "DP slave"
J nlJL?
seçilir.
c g
ıdütt*
Tııısrüsİn ıde:
DP
|
}
U
Yrvuz Eminoğfu
199
Slave CPU'ya ait "Configuration" penceresinde, master CPU tarafından gönderilen verilerin alınacağı alan
D t,
Il
!t 11
belirlenir. Örneğin "lB 0" bu CPU'nun ağ üzerinden gelen verileri okuyacağı alan olarak kullanllacaktlr. Pencere onaylanarak kapatılır.
l
ü.l I
;.:n:üiıiiti:iiliiŞ
r-=: Pİ.tJEiLüe! Dı
{IrLü
i:]lEr l.,":]
:;:
5l.] )
|ıl'-i.:il
F]..ıT!:i[T::l:a-
a---Il lI yine slave cpu taraf ından gönderilecek veri alanını belirlemek için "New" ile yeni bir alan açılır ve aşağıda gösterilen ayarlar yapılır. Eklenen adres alanına ait daha sonraki düzenlemeler "Edlt" tuşu ile yapılır.
2ü
Yır
z Eninoğlu
Bu pencerede slave F;,,ll.||l.§ Di] CPU'nun gönderici olarak kullanacağı alan ataması yapılır. Bunun için "QB 0" kullanılmıştır.
yani bu
{lrU
5:.t) t.Jülf'qUrdtion Ruw2
cpu
tarafından ağ üzerindeki diğer CPU'lann kullanacağı veriler herhangi bir bitine atanır. Burada sadece bit mantığı ile bilgi aktarımı değil, CPU'nun kullanacağı bütün veri uzunluklarında aktarım olabilir. Bunun için tablonun alt tarafındaki "Unit" alanında veri tipini ve "Length" alanında uzunluğu tanımlanarak çok daha büyük bir alan veri aktarlmlnda kullanılabilir.
.,,:,,,,,,:]İ_
r]-
eğin "Length" alanına 10, "Unit" alanına 20 yazılacak olursa "QB O"dan başlayan 20 word uzunluğundaki alan veri göndermek amacıyla rezerve edilmiş sayılacaktır. Veri değişimi için rezerve edilen alanın CPU içerisinde başka amaçla kullanı|mayacağı unutulmamalıd ır. Böylece slave CPU tarafından diğer CPU'lara gönderilecek, diğer CPU'lardan gönderilen verilerin alınacağı adres tanımlamaları tamamlanır.
Slave CPU için bu ayarlamalar yapıldıktan sonra "MPl Adaptef' kablosu cPu'nun MPl arabirimine takılarak yapılan ayarlar yüklenir. Yükleme her CPU için ayrı ayrı yapılarak yukarıda yapılan ayarlarla beraber GPU'ya pıofibus adresi verilir. Daha sonra ağ üzerindeki CPU lar profibus kablosu ile birine bağlanıp herhengi birisinin üzerinede MPl kablosu bağlandığında, herhangi bir CPU'ya ait donanım veya program yüklendiğinde bus adresi ve profibus üzerinden istenen adrese ulaşılır.
Yau,z Erninoğlu
201
Slave CPU için yapılan işlemler master CPU içinde uygulanır. Sadece bu CPU için slave CPU'dan farklı olarak master olarak işaret|enir. Master hattlna da slave CPU eklenir. cPU 3tx" sürüklenerek Gonfigured Stations Bunun için'PRoFıBus DP "PRoFlBus(2): DP master system(1)" hattlna eklenir.
)
)
- -X
mastet (aonligUrdlion) PRoFl2al'tJ
FaOngUs
1
)a
DP
ı
nığt
etr
ü
E-
frl
ıı
sır
d
All/AI]a6l8İ
Fn
-
1
2
E mJ
lltr
3l3c-2 DP
0ıdğ
n üğ
6Es7:n:}Gf,FıE-üEo
Fr
vLo
0..
1,1..
2
"Configuration"
alanına geçildiğinde, slave CPU için yapılan ayarlar gönilür. Her bir satır üzerinde "Edit" tuşuna bası|arak ilgili verinin master cpu üzerindeki karşı|ığı olan veri tanlmlanlr.
Yavüz Emiaoğlu
E@ ffiJ C-ğtrgu€d
Ö
d İ, 6-f,ı
]
t.
6-]-
:,....i5
O tslİ E
DP
Dğti:6
ül
Cfftol€, stdfu§
11ıı
El2mpfo / t:IıJ
ETaİE / cPU Pc ddiİ,6§ DP sb,,. s7_3ü cP 312€ DP slıüATlc HHl.stfu,
xaH 117 / cfu w.ıav€.
DP/A§_i
E n DP,"A Li* 6 l- FNmnFn :
\
m2
ğ
lü
DP sl.rYe ptopel ties
cls.dlq
i a
u" tüldla
FROF|BUs DP Addİn d Fdd
oB{]ğ.d
iJğ
l!ıoı
stridad
6l sz_m
DIı6/Do16
21 3
DP
cf|, :rı;ıc-2 DP
2
dd
Ed
İ-.
CPU'nun eklenmesiyle açılan özellikler penceresinde "Gonnection" alanlnda slave cpu özellikleri görülür. "connect" tuşu ile bağlantl gerçekleşir.
İı !ii?! |!.3il.,ltle1 ı 1lIlliıjljlnü;rn R.r!) ] ;i.-
' -':"_]
,,|,
Ömeğin slave CPU taraflndan alıcı olarak tanımlanan "lB 0" ile master cpu tarafında "QB 0" bağlanmlştlr. yani master cpu üzerinde "Q 0.0"a bağlanan bir bilgi, slave CPU üzerinde "l 0.0" ile sorgulanabilir.
1
V|
ç orıp*
ia::
r--::r- -:jİ\ Yukarıdaki işlem 2.satır içinde tekrarlanır. Örneğin slave CPU tarafından gönderici olarak tanımlanan "QB 0" ile master cpu tarafında "lB 0" bağlanmıştır. yani slave cpu üzerinde "Q 0.0"a bağlanan bir bilgi, master cpu üzerinde "l 0.0" ile sorgulanabilir.
DP
j|.r r l:
ptt|i_.elti.i
l0
Yatu Eninoğlu
m3
yukarıda da anlatıldığı gibi her CPU'ya ait donanım ayarları, "MPl Adapter" kablosu ilgili CPU'nun MPl portuna bağlıyken yapılan ayarlar
qeleİt ıodP AılJrPsç
yüklenir.
yukarıdaki işlemlerden sonra profibus kablosuna bağlü konektör CPU'ların DP
portlarlna taklllr. Artık ister donanım, ister program yüklemesi yapılsın profibus kablosu ve adresleri üzerinden istenen CPU'ya ulaşılır. profibus konektör üzerinde sonlama direnci Varsa, ara cPu'larda "OFF'ı, uç CPU'|arda "ON" konumunda olmalıdır.
x
set pG,/pC lnteİface Access
Pdl
Ac.ۤ
[]-DP
Poil
ol llı€
]s?üNLlt]E
Apdication:
t5TEP
7]
..ı PcAdaple(PEOFl8UsJ
[standaid lol sTEP 7)
lnıedee Padnetğ A§ignmenl Used PıoPcrıics,
Pc Adapteü(Ffl 0RBU s]
I
!ı
I
Pc AdaptğtMPD PC
properties
Adete{PPlI
Pc AdğF...tPFOFlBUsl
Eİ
PC inıeünal (locdl
lPdğL€İ€f foİ a
a§sbüüEt* d
PfiORBUs n6lırc*|
PC Adapler(pROFlBt's)
PsoF|gUs Locd coffEııİr
J,ouü
cğnacibn
X
I
h
COM4
a
TığEniaaion late:
]l.i4
UsB
- lrterlace§
T
Appb §dlingi fd
d n odle§
0K
CPU'ların donanım ayarları bağımsız olarak yüklendikten sonra "BF" (Bus Fault) ve "SF" (System Fault) ledleri yanabilir. CPU'lar kapatılıp tekrar açıldığında ayar|ar doğru ise
hata ledleri sönüp normal çalışmaya geçmelidir. Önce "llılASTER" sonra "SLAVE" CPU "RUN" konumuna alınmalıdır. Ayrlca çalışma esnaslnda haberleşmede olabilecek hatalara karşl cPU'nun stop konumuna geçmemesi için proje içerisine OB 82 eklenmelidir.
2M
Yalllz Eminoğlu
yukarıda yapllan işlemlerde veri transferi aşağldaki tabloda olduğu gibi düzenlenmiştir.
MASTER
QB0 lB0
)
e
sLAVE lB0 QB0
//Master ve Slave CPU p rograml ıf.tço!İ 1: Titte I124. o
o
+|
Eetroİl( 2: Titlc: Io.o
Q124. o
l l__
(
}-|
B u program her iki CPU'ya ait OB 1 içerisine yazıldığında, master ve slave CPU'ların '124.0" tuşuna basılarak global alan için ayrılan "Q 0.0" kanalına atianır. Ay_nı şekilde diğer CPU'nun "Q 0.0" kanalına atanan "| 124.0" tuşu, "l 0.0" ile sorgulanarak _
'l
"a
124.0" çıkışına atanmıştır. Böylece master PLC'ye ait'l 124.0" tuşuna basıp, s|ave PLC'ye ait "Q 124.0" çıkışı, slave PLC'ye ait "l 124.0" tuşuna basıp, master PLC 'ye ait "Q ,124.0" çıkışı enerjilendirilir.
Burada anlatılan işlemler DP işlemcili bütün CPU'lar ile akıllı slave'ler (ET 2005 - lM 151-7) arasında da aynı şekilde uygulanır.
Yarıız Emiaoğlu
205
Pra PR
AMLAMA VE s7
ENDÜSTRİYEL HABERllsME
3
/
BUs
1o.PRoFıBus ALTıNDA M|CRoMASTER,LAR iLE MoToR KoNTRoLÜ MlcRoMASTER cihazlarl, üç fazll AC motorların devirlerini kontrol etmek için kullanılan bir dizi frekans inverterleridir
.*
Biz burada micromaster'ların genel kullanım şekillerini değil, bir profibus hattına nasıl bağlanacağı, genelde kullanılan parametrelerin neler olduğunu ve nasıl değiştirilmesi i üzerinde duracağız. e Mikromaster'ın profibus altında PLC T-,] Adres "O" ile haberleşmesi isteniyorsa, standart oN mikromaster sürücüsü (MM420, MM430, MM440) üzerine PROF|BUS 123456i haberleşme modülü eklenmeli ve üzerindeki dipswitch'ler (Mikro Adİes "3" anahtar) yardlmıyla (yandaki gibi) oN profi bus adresi verilmelidir. o.b-(( Buraya verilen adres profibus ağına 1234567 eklenen mikromaster'in otomatik aldlğı veya bizim özellikler penceresinden düzenlediğimiz adrestir. "'t " ile "l25" /\ arasında adres verilebilir. Bu adres donanım ayarları penceresindeki ağa 24VBağlantı eklenen mikromaster'ln baş|nda da görünmektedir. Örneğin bizim eklediğimiz sürücünün adresi "3" dür "DP" Profibus ve ağ resmi üzerinde Bağlantı portu "(3)MıcRoMASTER" ile gönlnür. PLC ile Mikromaster profibus modülü alhndaki DP portlarının PROF|BUS kablosu ile bağlanmasl Ve PLc besleme kaynağına ait "0 - 24V" bağlantısınln doğru bir şekilde yapılması gerekir.
m
c
€
206
Yaııız Eminoğlu
Sürücü adresi dipswitch'ler ile değiştirildikten sonra sürücünün enerjisinin kesilip yeniden verilmesi gerekir. Daha sonrada anlatılacağı gibi profibus adresi sürücü üzerindeki parametreler yardımıyla (P0918) verilecekse buradaki (Dipswich) adresi "0" olmalıdır. "simatic Managef programında bilinen yöntemlerle proje oluşturulup donanım ayarlarl yapılarak 'PROF!BUS DP" aktifleştirilir. Profibus hattına elimizdeki sürücünün profibus modülü eklenir. Ömeğin, "PROFIBUS DP SIMOVERT MICROIiASTER4"
)
; Hi'/
(oniip
S ),ıA
l(
)
- -X
_]0r{1l
İ&n Etİ tlgt q.c bl oco! r|t*i ,iil+
eE c *lc|lbcllaİllEgtgıYr
D
-§l1,1A l
l(
3t]0(1 )
FFOnBU
2
)Q 22
6
l
E E.fi E n E o E
dı
21 3 1
dd
Eııd
eıft
!
E-
d
l(.niiq!İ itiDn) PL( 2 t.lilinj
-a
5lMADYN
ü]
slMATlc
slıioonuE s JOnEo
slMoVIBT MAsTEnOFvEs cE1 llAsTEBDnvEs/Dc liAsTE
9Eı
El 1,145]EFDFIVEs/Dc Ei @ Ei ı,ilEE04,ilOlMAsTER Dİ
ı,ülAsTE
oPtlP
MlcaOr,tlOrcOilBll,ıAsTEB
Hatta eklenen "lrlCROlrASTER" otomatik olarak profibus adresi alır. Bu adres default olarak ağda kullanılmamış en küçük numaradır. Bu adres istenirse aşağıdaki gibi değiştirilebilir. Buradaki adres Mikromaster üzerindeki siviçlerle verilen adresle aynı olmak zorundadır. D
İa..r Cö r... ırt .fu ]
De$ı ğ|a||rGlIaa ll6Elılıc
fl
dı
AE_..I
**l
H|ı_l--rI
o;l E*e,
liE-
Yavuz Eninoğiu
,*
l
mjs...I
m7
VE
"MıcRoMASTER" seçi|diğinde aşağıda ayrlntl penceresi açılır. Buraya "MlCROMASTER 4" açılıp içerisinden "SlMAT|C MANAGER" ile "MICROMASTER" Hatta eklenen
arasında haberleşme amacıyla kullanılacak alan şekli seçilerek çift tık|anıp eklenir. Eklenen haberleşme alan İdresleri aşağıdaki ayrıntı penceresinde gönilür. Örneğin bizim se$iğimiz 'O PKW, 2PZD"nin adresleri "PlW 256-259, PQW 256-259"dur. PlW adresi ile mikromaster'daki verilerin CPU'ya alınması, PQW ile CPU'dan mikromaste/e veri aktarımı yapılır. llw Config slM^Tlc
-::
d6 Erİ
5t
tİE€rt
o aİE-c SlMAllc
300(1)
E!lellhĞ
:r00(1)
s..n H+ la İ LlEE llİ lü?
PtC VE* olarİE
(configuration)
pl(?
lğiıim
Eı*
]
2
cPu 3liE_z DP
22 24
Dll6Dol€
s
PFOt]8Us
5 6
5|M(I\/EBT
EB] a ı,iAsTEBDBlvEs |,lA5TEnOBrvEs/Dc El"
E.
E E
3
(.
-ğl{
dd
Ed
ıı İ
aPKv.2uD
!!
lıı ıııcnoıusrıa
5ki
4
1
F!§/-
- HM|O/110 d&:
2PD
0
lPPo1]
PD ıü{Elo 6 4zDwdcs ,ı 0 PK' ED ıüH. @ 0 FKlr- a EzD ffid ffi 1
+
DPlD
i
@ PKr.
_-,-._::.{!_-.- _
.'-
1,1A9TE
MAsTEFORlvEs.Dc |,'A5TE MlcnOMAsTEa 4
1F(w. ,t Pnu.
3
6
uD
6
FzD
oPKw.6ED
uD
lPFo
>
l
ll
2}
6d c@ ,ıl lPFo 4|
"MIKROMASTER 4" altındaki "PKW" ile parametre (Parameter area), "PZD" ile proses veri (Process data area) alanı word sayısı tanımlanır. Proses verileri her çevrimde
işlenmelidir, paremtereler ise istendiğinde okunabilir. Örneğin 4 PKJ.Iı|,2PZD ile 4 word uzunluğunda parametre, 2 word uzunluğunda proses alanı kullanılacaKır. Proses veri alanı (PZD) ile kontrol word'u ve set değeri veya durum bilgileri iIe aKuel değerler iş|enir. Parametre alanı (PKW) okunup yazılabilecek parametre değerleri içindir. Örneğin hataların, çıkış bilgilerinin okunması içindir. PzD
PKw PKE
lNo
PwE
lı" Iz- la, ll" |
*rru | "oro
I
wora I wort
Pzo1
PzD2
zsw,|
Hıw
sTw,|
*
Hsw
|"*
PzD3 PzD4
??02 PPo3 PPo,a
2oa
PD7 PzDa Pz99 PD1o
|*|;;l*|*|*|;}l-,r"l,H
PPol
PPos
PzD5 Pz.D6
ıııı
Yavuz Eninoğlu
l
yukandaki grafikte profibus ağı altında habedeşen _ Process Data object) veri alanları tanımlanmıştır.
bir sürücüye ait ''ppo'' (parameter Ömeğin "PPo1'; ile 4 PKW alinı 2 PZD alanı kullanılır. "ppo" alanlarına eklenebilecek, tabbd' kullanılan diğer a|anlar şunlardır.
Pı«t,
PzD
PKE
Parametre tanımlayıcı
sTW
Kontrol word'u
1
lND
lndeks
zsW
Durum word'ü
1
HsW
Set
HlW
Aktüel değer
PwE Parametre değeri
rl
M|CROMASTER 420'leı PPol ve PPo3 alanlarını, MlcRoMAsTER 43O ve 44O'lar ise PPO1, PPO2, PPO3 ve PPO4 alanlarını kullanabilir. pzD alanına ait
1. ve 2. word'lerin hangi amaçla kullanılacağı mikromaster sürücüsü üzerinden veya sürücüyü kontrol edeceğimiz pc üzerine kurulan;.Drive monıtoı"' programı içerisinden yapılabilir. "D]ive monitoı"' programı yardımı ile sürücü üzerinde yapııaoiıjcek parametre d€i§iklikleri gibi işlemler "SlMATıG MANAGER" programl içerisinden çok daha kolay yapılabilir.
yukanda oluşturduğumuz donanım ayarlarlna göre ppo alanIarına ulaşmak (okumakyazmak) ancak çevrese| (peripheral) alan üzerinden olabilir. Bu adresler donanım ayarları penceresi üzerinden de gönileceği gibi "lnpugoutput Adress PtW 256-259''dur. Çevresel adres alanlarına bit olarak erişebilmek veya biçimlendirmek için onların dahili belleı alanlarına (Merker, data blok) atanması gerekir.
L T
50
PLC'den sünİcünün 1.kontrol word'üne gönderilecek verilerin toplandlğı hafıza alanı PQW 256 // Sünicüye veri gönderecek 't.çevresel çıkış kanalı (Kontrol word)
ı\i|w
//
52
//
L Plw 256
//
PLC'den süıücünün 2.kontrol word'üne gönderilecek verilerin toplandığı hafıza alanı T PQw 258 // Sürücüye veri gönderecek 2.çevresel çıkış kanalı (lstenen hılfrekans değeri) L MW
TMW54
L Plw 258 T t\rw 56
//
Sürücüdeki verilerin okunduğu ,1 .çevresel giriş kanalı (Durum alan|) Sürücüden alınan verilerin işleneceği ,1 .hafıza word'ü
Sünicüdeki verilerin okunduğu 2.çevresel giriş kanalı (Okunan hızJfrekans değeri) // Sürücüclen alınan verilerin işleneceği 2.hatıza word'i //
Burada işleme tabi tutulan kontrol Ve durum word'lerinin ayrlntllarl yukarldaki tabloda ayrıntılı olarak verilmiştir.
Yevuz Eminoğlu
209
yukarıda profibus hattlna bağlanan sürücünün kontrol ve durum bilgileri birer word olarak çevreseİ kanallarla dahili bellek alanları arasında işleme tabi tutulmuştur. HaberleŞme alanlarİna ait kullanılacak bu taşıma işlemi WORD veya DWORD uzunluğa kadar normal komutları ile yapılabilir. taşıma - (Move)özellikle DWoRb uzunluktan daha lazla bilginin taştnması gerektiğinde diğer Ancak birçok profibus haber|eşmesinde olduğu gibi "SFC l4 ve SFG 15" fonksiyonları kullanı|abilir. (eiağıia 2 word kullanilmıştır, ancak astenirse çok daha uzun alanlar tanımlanabilir) tletgor* ı: PII| 264'den okunaıı V.fiıerin }*l ıoo V. t*l ıo;ı yazıl'ğ§ı
ş(ı4
Read (onsisterrt Dğta rf a staıı.lard DP slavC
,0P 0_DAT,
tI ıEt6*ıOE-LAOoR
Eıo Rf T_vAr
loo.o t{ıRD
Rf (oRI}
t{etırorİ 2: }lJ 12o ve
ıtl ı22'deki v.riıerin
PQl' 26o'a
s(t5 ılrite consiJterıt
yazıf..gı
Data
to a starııdard 0p slave "DPlfl_DAr
Eı tJ*l6a104 ?+A
210
-
IADDR
l2o.g mRD 2-Rf
fıo nfT vAı
(oRD
YarUz Eninoğlu
1
2
1.
çlKış (KoNTRoL) woRD,u
Çevresel kanal üzerinden s ünicüye gönderilecek kontrol bitlerinin görevleri a şağıdaki
tıablolarda açıklanmıştır. Bu ko ntrol bitlerinin bi zim tarafımızdan atıanan Merker word adresine ka ılı ı olan bit adresleri de verilm tir
M
51.0
,BlT 00,
M
51.1
"BlT 01,
M
51.2 ,BiT 02.
M
51.3
M
51.4 ,BiT 04,
M
51.5 ,BlT 05,
M
51.6
M
51.7 "BlT 07"
M
50.0 "BlT 08"
M
50.,t
"BlT 09,
M
5o.2
,BiT
50.3
,BiT 11,
50.4 50.5
,BlT 12, ,BlT 13,
M
50.6
"BlT 14,
M
50.7
"BlT
M M M
,BlT 03,
,BlT 06,
10"
15"
Ağkapa
1:Açık-O:Kapalı (oFF1) Çalışma şartı (Elektrikse| duruş)
't:Çalış-O:Dur(OFF2
)
Çalışma şartı (Hızlı duruş)
't:Çalış-O:Dur(OFF3
)
Pals onayı
1:Aktif -0:Pasif
RFG onayı (RFG:Rampa Fonksiyonu Üreteci)
1:Çalış-O:Dur
RFG başlama 1 : RFG Aktif -0 : RFG Pasif
Set değeri onayı
1:Aktif-O:Pasif
Hata onayı 1 : Kabul edilir hata
-
0 : Hata on aylanmaz
-
0 : Set d eğeri çevrilmez
Sağa dönüş 'l : Sağa döner- 0 : Sağa dönmez sola dönüş 't : Sola döner- 0 : Sola dönmez PLC'den kontrol 1
:Evet-O:Hayır
Set değeri çevrimi 1 : Set değeri çevrilir
Rezerve Motor potansiyometresi yukarı 1 : Motor potansiyometresi yukan - 0: Geçersiz Motor potansiyometresi aşağı 1 : Motor potansiyometresi aşağı - 0: Geçersiz uzakıyakın kontrol 'l : Lokal kontrol aktif (BOP/AOP )-0:Uzakkonkol aktif
lki kontrol word'unun kullanılması durumunda ikinci word'e motor devrinin olmasl istenen frekans değeri atanabilir. Bu atamanın kullanılmadığı durumda "P1O82. parametresine atanan değer kadar frekansla motor döner.
Mw 52
PQw 258
Motora gönderilecek seUfrekans değeri
Yavuz Bninoğu
211
,l
1.
GİRış (Du RUM)woRD,u
Sürücü üzerinden okunan sürücüye ait durum bilgiler idir. sünicü hazır 5.0 ,BlT_00,
M5
0 HAY|R 1 EVET
]
M
55.,1
,BiT 01,
Sürücü çalışmaya hazır
0 HAY|R
M
55.2
,BiT 02"
Sürücü çalışıyor
0 HAY|R
,1
,1
,l
EVET
EVET EVET
55.3
,BiT 03,
sürücü arızalı
M
55.4
,BiT 04,
OFF2 aktif
M
55.5
"BiT 05"
OFF3 aktif (inhibit)
1 EVET 0 HAYIR
M
55.6
"BiT 06"
Çalıştırma engelleme aktif
0 HAY|R
M
55.7
,BiT 07,
Sürücü uyarısı aktif
M
54.0
,BiT 08"
Ayar noKası sapması/gerçek değer
M
54
"BiT 09,
PZD Kontrolü (Proses Veri Denetimi)
M
54.2
,BiT
Ulaşılan maksimum frekans
M
54 3
"BlT 11,
M
u.4 ,BiT
12,
Motor tutma freni aktif
M
54.5
,BlT
13"
Motorda aşırı yük
M
54.6
"BiT
14"
Motor devir yönü sağa doğru
M
54.7
,BiT
15,
lnverter'de aşırı yük
M
212
1
10"
0 HAY|R ]
1
EVET
0 HAYIR
Uyarı: Motor akımı sınırı
Yaıuz Efıinoğlu
,t
EVET 0 HAY|R 1 EVET 1 EVET 0 HAY|R 0 HAYIR 1 EVET 0 HAY|R 1 EVET ,1 EVET 0 HAY|R ,t EVET 0 HAY|R ,l EVET 0 HAY|R 0 HAY|R ,t EVET ,t EVET 0 HAY|R
PLc PR
2,Gl
M
M
VB s7
DuRUM woRD,u 57.0 "BlT 00" Dc freni aktif
/
Bl Is
57.1
"BlT o1"
57.2
M
,BiT 03, 57.3
M
57.4 ,BlT 04"
M
57.5
"BiT 05,
M
57.6
,BlT 06,
M
57.7
,BlT 07"
M
56.0
"BiT 08"
M
56.,|
,BlT 09,
M
56.2
,BlT
M
56.3
,BlT
M
56.4
M
56.5 56.6 56.7
,B|T 02"
,BlT ,BlT ,BlT ,BlT
EVET
Aktif frekans > Devreden çıkarma sınırı (Aktif frekans > P2167)
0 HAY|R
Aktif frekans <= Minimum (Aktif frekans <= P1080)
0 HAY|R
frekans
AKif akım 2 sınır (ı0027 > P2170) Aktif frekans > referans (Aktif frekans > P2155)
>
frekansı
Set değeri
AKif voltaj < eşik değeri (ı0026 < P2172) Aktif voltaj > eşik değeri (ıO026 >= P2172)
Rampa bitti
PlD çıkışı
,1
PlD çıkışı == Maksimum PlD değeri (Q294== P2291)
==
,l
EVET
EVET
,t
Aktif frekans <= referans frekansı (Aktif frekans <= P21 55) Aktif ffekans
,1
0 HAY|R
10, 1"
TEMLERt
0 HAY|R ,1
M
M M
ENDüSTR i\.El. IIABERLESMF.
Minimum PlD değeri
(12294== P2292)
EVET 0 HAY|R 1 EVET 0 HAYIR ,l EVET 0 HAY|R 1 EVET 0 HAY|R ,t EVET 0 HAY|R 1 EVET 0 HAY|R ,1 EVET 0 HAY|R 1 EVET 0 HAY|R ,| EVET
12, 13, 14, 15"
Yaluz Eminoğu
213
Örneğin çok basit bir şekilde PLC üzerinden M|KRoMASTER,ı kontrol edecek bir program yazalım. - Önİelikle yukarıda tanımlanan olması gereken set değerleri (Ömeğin vefilir. Daha sonra "1000 dev/dak" iİe çahşan motora "ISTENEN_DEVIR" ile,START" girilir. devir sayısl girilen istenen değe0 çalışması operatör panel ekranından anahtan i'1" yapıldığında motor hızlanma rampasında tanlmlanan süre içerisinde hızlanıp "lsTENEN_tiEvlR"-sayısına ulaşır. "START" anahtarl "0" yaplldlğlnda durma rampasında tanımlanan süre içerisinde yavaşlayarak durur. 'DONME_YONU" değiştirildiğinde de motor durma rampasında tanımlanan süre içerisinde durup-, ters yönde tanlmlanan rampayla hlzlanmaya başlar ve "ISTENEN_DEv]R" Saylslna geldiğinde o devirle dönmeye devam eder.
'
parametrelerden
LMw50 T PQw 256
L Plw 256 TMw54 L PlW 258 T Mw56
ol oM
0.0 42.0
ol oM
0.1
=M
5,t.0
=M Al0.2 = M
42.1 50.3
//PLC'den //Scada ve Panel llAçma l kapama //PLC'den //Scada ve Panel /|ı'ön değiştirme
51.7
llAıızaonay
sET
=M =M =M =M =M =M M cLR
=M =M =M =M =M =M Sağ
(+)
51.2 51.3 51.4 51.5 51.6
L DTR L 2.764800e+001
/R RND
TMw40
//lstenen devir saylsı SCADA veya operatör panelden verilmesi durumunda MW 40 ekrandaki hücreye bağlanır. // lstenen devir sayısının analog kana|dan girilmesi durumunda 'l' veya "1000" dev/dak'dan yüksek değer girilmesinin engellenmesi.
<=|
Jc
soN
L MW40 L 1000
50.2
>=|
Jc
soN
L MW40 DTR L 1.638400e+001
50.0 50.1 50.4 50.5 50.6 50.7
ve'0
//lstenen devir sayısının analog giriş kanalından verilmesi Plw 260
L Mw40 L0
51.1
yönde
//Kontrol word
"R RND
TMw52 L MW 52 T PQw 258
SON:
)
//Devir sayısı
1000 dev/dak" arasında istenen devir sayısı maksimum frekans
(50 Hz) karşılığı olan 16384 değerine yükseltilerek ilgili çıkış kanalına aktarılmıştır.
214
Yawz Eminoğlu
16384, bir word'luk alan içerisinde sürücüye tek yönlü gönderilebilecek en yüksek parametre kaşılığı sayısal değerdir. Sürücüye hız amaçlı gönderilen "+16384" değeri "+' (sağ) yönde en ytİksek hıza,' - 'l6384" değeri ;"" "-" 1sol) yönde en yüksek hıza ulaşmamızı sağlar.
MlCROMASTER içerisindeki "r_ _ _ _" ile tanımlanan alanlar bilgi amaçlıdır, sadece izlenebilir ve değerleri değiştirilemez, 'P_ _ _ _" ile tianımlanan alanlar bizim içerisine yazıplokuduğumuz parametre alanlardır. "F_ _ _ _" ile arıza kodları, "A_ _ _ _" ile alarmlar
tanımlanmıştır.
MlCROMASTER'lada profibus üzerinden haber|eşme için ''P700'' ve ..P1OOO'' parcımetresi l Word 1''in .|O.bit (PLC kontrol)
parameheleri "6", "P0719" değeri de "1" olmalıdır.
"P0918" parametresi ile (dipswichlerle ayarlanmlş profibus adresi '.O''sa) profibus adresi değiştirilebilir. Eğer dipswichlede geçerli bir adres verilmişse bu parametre ile adres değiştirilemez. Yapılan ayar|arı silip parametreleri fabrika ayar|arına döndürmek için ..P0010=30'' ve "P0970=1" ayarını yapmak gerekir. Resetleme işlemi, yaklaşık 10 saniyede tamamlanır. Bunların dışındaki parametre|er standart şekil|erde, ister sürücü üzerinden ister "Drlve
Monitor" programı üzerinden kullanılabilir. İi]CROMASTER Sistem Parametı€leıi
Mikromaster üzerindeki parametreler, inverterin devir düşme-yükselme süreleri, minimum ve maksimum frekansları vb. gibi azu edilen özelliklerini ayarlamak üzere ana operatör panel (BOP) Geliştirilmiş Operatör Panosu (AOP) ya da Seri Arabirim (Profibus) vasıtasıyla değiştirilip ayarlanabilider. Seçilen parametre numaralafl ve parametre değederinin ayar konumları, isteğe bağlı olarak temin edilen beş haneli LCD ekranda gösterilmektedir. Panel 'Y düğmelerine anlık olarak basarsanız, değerler kademeli olarak değişir. Düğmeleri basılı konumda daha uzun bir süre tutiarsanlz, değer|er hlzll bir şekilde değişir, istenen değer ekrana geldiğinde "P" tuşuna basarak onaylanır.
üzerindek
NOT: Mikromaster sürücülere ait ay,ıntılı paramatreler ve sürücü üzerinde yapılması gereken işlemler ilgi|i sürücünün kullanma kılavuzu üzerinden takip edilmelidir. Çünkü burada bütün parametreler ve aynntılı ayar|arı anlatabilecek yer ayırmamız mümkün değil. Birkaç parametre değeri aşağlda Verilmiştir, ayrlntılı parametrelere kullanlm kllavuzları ile ulaşılabi|ir.
P1080 P1082 P112o P1121 P1058 P1059
Minumum ftekans Maksimum frekans Motor dewi yükselme süresi (sn) Motor dewi düşme süresi (sn) : Sağ yöne düşük deür frekansı : Sol yöne düşük devir frekansı : : : :
Yavuz Eminoğu
215
Prc 11.
MA VE s?
ENDüSTRtYEL HABERIESME /
30o/4{rc-2
,s slsTEMLERi
sERl HABERLEşME KARTı,NıN (cP 340/341) PRoFıBus HATTINA EKLENMES|
CPU ile seri port üzerinden haberleşecek bir ünitenin (Barkod okuyucu, kayan yazı, yazıcı v.b.) kullanılması gerektiğinde CP340/341 arabiriminin kullanılması gerekir. Ömeğin bir barkod okuyucudan alınan verilerin PLC'ye alınması işlemini yapalım. Bu amaçla kullanacağımız kart CPU rayına takılır. Barkod okuyucunun RS 232 konektöni CPU 340/34'|'in 9 pin soketine bağlanır. Haberleşme arabiriminin "Hardware"e ekleme işleminden önce CP340/34'l kartı ile beraber gelen CD'den ilgili program kurularak karta ait baz| verilerin programa eklenmesi sağlanlr. Bunlar; karta ait parametre verileri, kartla haberleşmeyi sağlayacak 'CP PtP" fonksiyon blokları ve örnek projelerdir.
FflOF|Bus_PA
PgdnNET l0 sılüAİüc
: ıi&c7
ğ
(i_ğI] Pf,onBUs
§&{P '*
. .lı
,
Bu amaçla kullanacağımız arabirim "Hardware" kataloğundan bulunarak, "Hardware"in 4.slotundan itibaren herhangi bir yere taklhr.
.tp
Gr*c Addtri sürt:
M
21E
x
341 R§-t22j4ğ5 iR0Js4) |
ts+Pğ+.ü§ğ-
tE5-
stal:
l156-
Erd
?n
cPıoRsilz{as
ıa cpaocszn . f, oı ıro nı* rrt |: cP 310 Bsa??/1€6
a@.€P311
tP
i, üh
propeıties
cP 3a0 Hsl3?c
|a tP 310 Rs2m :|r tP3.()aHITY
.i'
t
311
Fsrm
cP ı1 Rs2lrc cP 3a1 20,A Tri tP 3a1 aH TTY
(Pgİ Bst22lı8ş
(P 34l Bs122l485
4.slota eklenen
cP
3r';Ol341 çift tıklanarak
özellikler penceresine girildiğinde adresi görülebilir.
]|
Fitc6. iırığp:
l::-
Aynca aşağldaki
düğmeler araslnda "Pa]ameter" düğmesinin aktif olduğu görülür.
Eğer CP 340/341 kartı ile beraber gelen program kurulmamışsa bu düğme aktif değildir.
F--
Yaruz Eninoğlu
" Parameteı'' fuşuna çifr tıklatıp "Point To Point"e ait özellikler
penceresine girilir. Burada alanında; 3964(R) Gönderilen veri paketinde sorgulama bitleri vardır. RK512 Hazır bitleri sorgulanır. ASCll Sorgulamasız gönderilir. Bizim kullanacağımız eleman ASCll protokölü ile haberleşeceğinden ASCll seçilerek onaylanır. Aradaki zarf sembo|ü çift penceresi açılır.
) ) )
lo poinl T0 point Conne.tiOns ICp ]41 Rs-l22/485 (R
Assi{rjng Pdranl€lcls
H. Ed tla{ ofaİ.lj
Elğ
lü+
§{lB]
---§{nl lFK512
I l
tıklanarak
,
sğ, lğ d e seiuq li!.rğrEtİE 6 e§s.cqf,ir,ı4dlİe;riİo Elrd
f
tr
ğ*i§Tı,rır.
[F
ll]
çııııtıçg.EğEjğ6ğqt9lss,
a'on§r.ladfidaiİe§ğliı s*,dr.ihgıd,id,iri
r
94! EE sttE+djİg_İP üd dğ4i9
l
send,.ıplo ttİetü cErılEülledl€nqlh
/'
se.r,J lrp.fu
rE
FE çqtfigı,lEd
lEİEi'
Bu pencerede iletişim hızı, veri paketi boyutu v.b ayar|arın yapılmasının yanında, sağ alt köşedeki açlllr pencerede parity biti kullanılmayacağı anlamında seçilir, kaydedilir Ve yüklenir.
üd
ai,lomrtEğt, G[tschtrıefidchaitrlar
ıg*itııBııc [__"rTl,..ir.ı.
ğişnlt
lgd
.§E8t*.
F.a,
0K
PLC ana p@esinde "Libraries"e girilerek "CP PtP" açılır. (Bu klasör "Point To Point" işlemci|erine ait program kurulmadan oluşmaz. )
H+l
,-,iü.İ,d
l lİndi§ sğ4le Fird§ M,r!,oi€d§|
uı€fDldrtݧ
ocP EP
CaiEAPHı
cn€d,ril
c:
\Rogüdüt
Fil6\siarEnsls tepns 7fu.\cP_PİF
c|\PiEgü.m F e§ls'EllErİslstep^sflfu\gü4}t c: \ft osıaD Fil€§\9iat nsl9t.p7\9 ?bsved_b_
ı0 M] lo cGP c\R.grdft FieE\sie,n ns\5t€91s7Tö§\r!d_b_ *§MATlc_tıET_cP c: \Pı.güün Fibs\sirmerulstep7\s n6skirnilb7 Ç swııaa ı_tay G \Progİan Fi|e!L9 irı.ns\s1.97\9 ıbs\ddib3o ıtddsu tv2| c| \fo og5m Fih§\siehe,is\step?\szibskİüb§ ,ıl
cEcdrİiğı|
-.--..;,-..l Yavüz Eminoğlu
& 217
Programın kurulumu ile beraber "Sample Pıoject" altınada aşağıdaki üç adet ömek pğe
,
OPen project
uıa ıoiıaı
|
Uh.aie.
sdnple Eollrcı*
zfin
_1
z+ff_1
::,*]
4_H sy*.ün_s 7,|0tH 5_H sysrğtı_R ]
ED_l0
_FlP,a ,i :F:]l.
] :.:] ,_ F,F ]]n]_İF14_
ı ] _-
i,
Pll cP
\1,1lrc:rnl
lli.!iJ
RP
,aE
Eı cP 340 6.fPe4l E-Gı tp
E€
140
[P{l
'::
Ltu;:ll :ııılı
DE.
218
ffiElr
vtR
x
_i,;
sTL
FE7
P_Ecv_E(
FBg FC5
P_staD_RK
sİL
Y2l:sTAT vzl_sET
§TL
i-').,.1r
E
tata1 al,:l1jü tiilir nc rh4-
Dlclaldğl
^
L:ı,
r]nı§l.Pl'_! llilr!\( ] ijl])
Fc5
Kopyalanan bloklardan "F87" CP 341 kartı üzerinden barkod okuyucudan Veri almak, "FB8" ise CP 341 kartı üzerinden seri bilgi göndermek amaclyla kullanlllr.
|3
en
F
ı.._F
_*^;__ ,
a
tjAREl]D i
CP3lx€tFK0
İ
E-
si},lATlc
E
sTL
\!:'l,]!,.j
İq1]
_,l!!'
c
ürll: E: : :l E. i:|i Fı :r.ı: : ::,: :ı tı.
: Frr
a .F,..]r.]l Fli:1: e.,Eli :ti
s7 PIog,ğ{ l
iıııi]]ilüi]iü ]ı'. i]].]
jğ|ğl
Isrırıelzso1
Yavuz Eninogu
ğ]
=l*:1in,.*;:*j]
Ömeğin biz CP 341 kartını kullanacağımızdan bu kart altlndaki fonksiyon bloklarından "FB7" ve "F88" kopyalanarak pğemiz altına yaplştlnhr.
EffiI
i-,ffi Su.rcıt i,ğ ügdd
le
F44]
|
Endd,
C:\Pıogığn Fı€alsieır.İݧ\step aıı FLs\s ieneııs§ tsp
ın illei\\iA]nlell|\5ie|)ill,!1plOj\ü la
cFJ 3ıE.2 DP
E-ıŞ
]L)i\ |,:/,.i1
uıu,"ı,a-
LdEu€.
ek|enir.
..
|
I,
jlt liA
0B1 FB7
P
sTt
FBB
P_SND_RK
sTL
Okunan bilgilerin kaydedileceği bir data blok oluşturulmak zorundadlr. Bu amaçla bir data blok (DB1) oluşturulur ve okuyacağımız veri uzunluğuna bağlı olarak bir "STRING" alanı açılır.
Prc
VE s?
Herhangi bir program bl€unda ..FB7'' çağrılarak gerekli parametreler girilir. Tabi çağnlan bir ''FB'' olduğundan bir "DB" ile (D87) ilişkilendiri|mesi gerekir.
ctıl llP_Rcv RK, . Ell_R :=M100,0 :=MlE0.1 E
lİ.DOn
Burada kullanılan parametreler; CALL ,P_RCV_RK., DB7 : Okuma işlemini aktif etme : Okuma işlemini resetleme I-ADDR : Kartın "Hardware" adresi (256) DB_NO : Verilerin kaydedileceği DB numarası DBB_NO. :DB'ye yazılacak verilerin hangi bayttan başlayacağı.(lki bayt "string" başllğl için ayrııır.; L_...... : ("L" başlayan parametreler sorgulama ilgilidir )
DB*tro
EN_R R
NDR ERROR LEN
DEE_liıo
!_TYP !_İ.Io .
tl$ fu
I
ü
2
.5ici:
lm.0
iöi-
.'iiii-_ ]Eoü
lm.2
M 1m,3 M tm,4 M fi;s
+
§ ğ
]P*..,,...,.
i
,Boo[
sool
f.
6
ı
1.0
lt
ı2
i§
D6l;D€a
ı[ l,ma ıi
l7
lq
rı ığ
!r
,, i..,,,_-..,...
..9.:..,,.
1,
2
Dsl,Dga 3 1;0sa 4
sl.EB Bl;rB
1.Q€B
tBLs8
ığ*,
iEm-
,D€c
,
10i
..-.i
o+RACTER ĞiARACTER
ci+ilffi : :
:=1
i=2. :=
!=
! cF E]rTl = l_cr BlT:= trDR :=I,ı100 .2 3RRoR =!{10t] . 3 İEıl -5TATUS
:
:=-
Program bloğu kaydedilip PLC'ye yüklendikten sonra, barkod okuyucu kullanıma hazırdır. Okuwcu herhangi barkod karşısında iken tuşa basıldığında okumanın alındığını gösteren CP34'1 kartının üzerindeki led yanar. Okunan verileri takip edebilmemiz için bir VAT düzenlenir ve gerekli alanlar oluşturulur.
.ol4RAc]lE
5
9,
... ,,_., ...
_..jo€c....,.,...,,...
j
E...i,.
,_ ........
:=256
:
Porttan alma işlemi tamamlandı (onay biti) : Hata biti : Gelen verinin uzunluğu STATUS : Hata raporu
l! ir§le
DE?
IJ oFFsET:=
:
İcü Eii
/BUss TEMLERi
TRrYEL HA
ctlAiAcTER cılARAcTER ctlAR_AcTER cı{AR.AcTER
Ömeğin M'l00.0 aKifleştirildiğinde, okuma yapılacak ve okunan verileri DBl'in 2.bayt'lndan itibaren yazacaktlr. Artık okunan verilerin PLC içerisinde değer|endirilmesi, istenen şartlara ve PLC programcısının yeteneğine bağlıdır.
Yavuz Eminoğu
219
Benzer işlemler veri göndermek içinde "F88" ile yapılır. Yine önce bir data blok oluşturulur veya alma işlemini yaptığımız bloğun belli bir alanı gönderme alanı için aynlır. Gönderme alanına yazdığım ız veriler aktifl eştirme biti geldiğinde ilgili adresteki (256) çıkışa yazdlrılır. CALL ,P_SND_RK,, DB8 : Gönderme anlamında 'S' (SEND) yazılır. : Onay biti
SF REQ R
:Reset LADDR : Adres DB_NO : Data blok numarası DBB_No: Verinin allnacağl data bloğun başlangıç
bayt adresi
LEN R_..
:
DONE
:
Yollanacak veri uzunluğu : ("R'başlayan parametreler RK 512 için
c.ğ!! 'T_SND_RK" . i=.'sl 5,F l=I!t101 .0 REQ :=M101. 1 R IJADDR :=256 DE No :=1 DBE_ o
!E}ı
DE8
=724 4o
R_cPt _!ğo
R_TlP R_:!ıo
R_oEEsET
R cf_ByT R_CF_BIT DolıE ERROR
sTATUS
=M101.2 =M101 .3
kullanılır)
Gönderme tamamlandı ERROR Hata biti STATUS : Hata raporu :
Göndereceğimiz Veriler data blok ve içerisinde "STRING" tipinde veri alanı oluşturulurak içerisine yazılır.
sTRI!ı6[ 110]
DB vAR ....'I
Not: CP 340/34'l kartı üzerinden göndereceğimiz verilerin PC içerisinde izlenmesini sağlayabilmek için, Windows'un seri haberleşme arayizij olan "Hyper Te.minal" Hyper Terminal") Communication Accessories kullanılabilir. ("Pıograms
)
220
)
Yauz Eminoğlu
)
,t2.s7 300/200 cPu,LARlN PRoFıBus ARAclLlĞıYLA HABERLEşMESİ 57 200 bir CPU, profibus ağına EM 277 modili aracılığı ile bağlanabilir. EM 277 modülü aracılığı ile giriş/çıkış bilgilerinin yanlnda "v Memory''alanlna aktarllmak şartı ile zamanlayıc|, sayıcı gibi içeriklerde profibus üzerinden master CPU'ya aktarılabilir.
EM 277 modülü üzerinde sol üst taraftaki adres sviçleri yardımı ile adreslendirilir. Buradaki "Xl" ile adresin birler, "X2" ile onlar basamağı ayarlanır. Yeni ayar yapıldıktan sonra modülün enerjisi kesilip yeniden verilmelidir.
"OP" portu, 57 300 profibus işlemcisinin "DP" portu ile profibus kablosu ve koneKörleri ile bağlanmalıdır. Bu port mesafeye bağlı olarak, 9.6 Kbaud ile 12 Mbaud hızları arasında haberleşebiIir.
l*-
EM 277 modülü ile 57 20O CPU birbiri ile genişletme modülü kablosu bağlanır.
,,a1,
DURUM GÖSTERGE LED,LERi CPU FAULT : Modül hatasında yanar. POWER : Modül enerjili ise yanar DP ERROR : Kırmızı flaşör şeklinde yanması konfigürasyon hatası var, sürekli yanma veri aktarımı kesildi. DX MODE : Veri iletiminde yeşil yanar Bu işlemin yapılabilmesi için donanın oİarak; profibus işlemcili bir s7 300 cPU (DP modüllü bir kompakt CPU veya cP 342-5 l cP 343-5 modülü eklenmiş bir standart cPU), EM 277 modülü eklenmiş bir S7 200 CPU ve S7 300 CPU'nun DP portu ile EM 277 modülü üzerindeki "DP" portu biribirine bağlayan 9 pin koneKörlü profibus kablosu, PC ile S7 300 CPU'nun haberleşmesini sağlayan arabirim (MPl Adaptör) gereklidir.
ı
:,l
.şr]§.
DP
^,İPI
L
ı/Pl ADAPTöR
PPI
cPu s7 3
f]
cPU s7
PROFBUS İP
2_
_
J
DP
e$m
o
PPlADAPTöR Yaıuz EDıinoğlu
21
2
Yazılımda donanım ayarlarının yapllmaslnda da; daha önce anlatllan yöntemlerle oluşturulan PRoFlBUs DP hattına EM 277 modülünün eklenmesi gerekir. Standart bir SlMAT|C "Hardware" donanım kütüphanesinin içerisinde EM 277 modülü yoktur ve "GSD File" dosyasının eklenmesi gerekir (Profibus "Hardware' ayarları). Eklenme sonrasında aşağıdaki gibi "PROFlBUS DP" ağacının altında "EM 277 PROFlBUS-DP" modülü oluşur stötim Edİ In§€tt PLC t4ew optiorE wh&n H+ J
ıı e_c Eıl5ll b G]l- ellEEltİlrf
n
lİJl 1
E
ı| Ps$7s
ı:
2 3 4
tPu a{F}l
ai i
EP 312.5
0FlBUs
DP
0 801
EM 2?7
Fo6lğ
st rdrd
E
:İ|
5 5 7
l-i
mğld
End:
a
lE
ı,
._
pı
slot
üi
n
oıdeı Nuİüeü / :-] ,lr n'i:1;
:-a
a,
l
:
]
O
Derhes
G*eway
E,.fiı PLc , ıj 13 sıııarı c
Eı,ı 2?7FfiOFıBus.Dp
DP lD
Additbnnl Fidd De,ri.üs
El 6Eiıad lı| DnV€t E Ö sdtchhg ğÖı/0 @iİ Enctdeı§ 6 E
|l|E}r 277
....i]|
PROFlBUs 0P
E i5
c
E!'i 277FfiOFlEUs.DP E [JrİVğsd ıüEd/B
I
.E
0,i/ 2 B}tes ln : ]| :i;E:: Bytes 0d/ 32 BytG* ln Bvt.s 0d/ 64 Bules ln
2 B}tes
:'E,.te: 32 64
Profibus hattına EM 277 modilu eklendikten sonra haberleşme alanının belirlenmesi amacıyla, modül seçilerek sola alt tarafta oluşan alan belirleme satlrl seçilir. "EM 277 PRoFıBus-DP" altlndan istenen alan uzunluğu (8 Bytes Out i 8 Bytes in) seçilerek eklenir. Ekleme sonrasında seçilen uzunluğa bağlı olarak "lnpuUOutput" adresleri ( l = 0-7, O = 0-7) oluşur. Bu adresler o satır üzerine çift tıklanarak Veya sağ tuş "object Properties" ile istenilen şekilde değiştirilebilir.
Properties Ganeıal
X
DP slave
Paıancteı Assionmed
I
paıameteıs
V*Je
station pörömeters Device-specif E parameters HeX
Slave CPU (S7 200) üzerinden okunacak alanın (V_Memory) başlangıç adresini belir|emek için "Eil277" modülü çift tıklanarak açılan "Parameter Assignment" alanlnda "l/O Offset in the V+nemo4/' seçilerek "Value" alanına başlangıç değeri (2OO) yazfu. Artık slave CPU'nun "V-llllemory: 200" alanından başlayan 16 bayt'lık alan, master CPU'nun "PlW 0 - PQW 0" alanlarına bağlanmış olur.
S7 300 CPU'nun "PQW 0 - 7" alanından gönderilen veriler, S7 - 200'ün "VB200 VB207" alanındadır. 57 - 200'ün "VB208 -VB215" alanından gönderilen veriler, 57 300 CPU'nun "PlW 0 - 7" alanındadır.
2.
Yaluz Eminoğlu
CP 342-5 işlemcili S7 300 CPU programı
CALL ,DP_REc\r cPLADDR REcV NDR
ERRoR STATUs DPSTATUs
L T L r
lB
ll
Fc2-
:=W#16#'t00 :=P#l 100.0 BYTE 10 :=M50.2 :=M50.3
DP REclVE
:=MW54 :=MB56
124
QB0
lB0 QB
124
CALL "DP_SEND, ll Fc 1 - DP SEND cPl-ADDR :=W#16#100 ,100.0 sEND :=P#Q BYTE 10 DoNE :=M50.0 ERRoR :=M50.1 STATUs :=MW52 s7 31 _ DP işlemcili GPU programı
L
PlW
0
T PQW
0
//
57 200'den okunan veri
ll S7200'e gönderilen veri
57 200 programı LD sM 0.0 MOVB lB0, VB208//S7-200 verilerini S7-300'e aktarma LD sM 0.0 MoVB VB200, QBo aktarma.
//S7-300'den alınan verileri S7-200'in çıkış kanalına
DP işlemcili 57 300 CPU'larda 4 bayl uzunluğa kadar veri alışverişinde yukarıdaki yöntem kullanılabilir, 4 bayt ve daha uzun verilerin iletilmesinde, DP slave'den veri okumak için SFC 14, veri yazmak için SFC 15 kullanılmalıdır. NOT: EM 277 PROF|BUS DP modülü MPl iletişimi ile masteı'e (S7 300) slave olarak bağlanabilir. Bu bağlantı şeklinde CPU'nun değil EM 277 cihazının adresi kullanılır.
Yavuz EniDoğu
23
9/Bgod
aats§/a
ı§MĞ
AS-lnterface Veri Transfer Hızı
Topoloji
12 MbiUs
Elektrik 600 m
Hat Ağaç
lndustrial Ethemet ,l0/100 MbiUs ,l
GbiUs >1000
125
62
Yıldız
224
9.6 KbiUs
s5ms
Maksimum bağlantı noktası Network uzunluğu
PRoFlBUs DP
-ggggg* aüEoa
Elektrik 12 km Optik 90 km
Elektrik 't.5 km Optik 200 km
Hat Ağaç
Hat Ağaç
Halka
Halka
Yıldız
Yavuz Eminoğlu
Yıldız
F. "PRoF|NET" HABERLEşME sİsTEMi PRoFlNET otomasyon uygulamalarlnda kullanılan Endüstriyel Ethemet tabanll bir Profibus standardıdır. Diğer haberleşme sistemlerine göre çok daha hızlı ve ekonomiktir. Bu nedenle günümüzde ve gelecekte çok yaygın olarak kullanılacağı düşünülmektedir. ETHERNET, bilgisayarlar arası haberleşme amacıyla kullanılan bir protokoldür. (lEEE 802.3) ENDÜsTRlYEL ETHERNET, sadece bilgisayarları değil, endüstriyel kontrol cihazlarını (PLC, CNC) da ağ sistemine bağlayan, gerçek zamanlı bir haberleşme protokolüdür. İndüstriyel Ethemet'in, endüstriyel şartlarda (Yüksek ve düşük sıcaklık, toz, nem v.b) çalışabilen, data kayıplarını ve çakışmalarınl engelleyebilen özelliği Vardlr. PRoFlNET ise Siemens taraflndan geliştirilen Endüstriyel Ethemet'in daha modÜler ve daha esnek halidir. 1. AĞ ELEMANLAR|N|N ADRESLENMES| a) "lP" ADRESİ Bilgisayarlar arası haberleşme lp paketleri aracılığlyla yapılır. Tcp protokolü büyük bir veriyi parçalara ayırır, lp ise bu telgrafların hangi yoldan olursa olsun vericiden allclya gitmesini sağlar. lntemete bağlanan her cihazın bir lP adresi vardır.32 bitlik (4 baytlık) bu lP İdresleri içerisinde ağ kimlikleri (Network lD) ve konuk kimlikleri (Host lD) bilgisini de taşıyan 4 ondalık sayı şeklinde yazılır. Ömek:,t 92.168.1.1
b),MAc" ADREsi
MAc adresi Ethemet ağlndaki cihazın fiziksel modül adresidir. Ethemet ağ cihazlarına,
tanınabilmeleri için dünyada bir eşi daha olmayan seri numarası verilir. Bu numaralar, üretici firmalar tarafından fabrikada veri|mektedir. MAC Adresleri 6 sekizlik uzunluğundadlr Ve onaltlllk formatta yazlllrlar. Örnek olarak 00-20-D5,7748-42 bir MAC adresidir. Her üretici firmanın kendi ürünleri için kullanabileceği belirli bir MAC adresi alanı vardır. ilk 3 sekizli üretici firma kodundan oluşmaktadır. 2. Pc
- PLc BAĞLANTıS| İçiN PG,DE ETHERNET AYARLAR|
)
Ağ bağlantılarını görüntüle"ye girilerek Bunun için bilgisayardaki "Ağ bağlantıları "Locaı Area Connection" üzerinde sağ tuş ile özellikler penceresi açılır. Buradan "lnternet Protocol (TCP/|P)" seçilerek onun özellikler penceresi açılır, lP adresi ve ağ maskesi adresi
yaılır.
TcP/lP (Transmission control protocol/lnternet protocol El iğn bğğahİ olrtq l ıEı€l!çuk4yel,ğ Ö r/nd] s cs.r,ri fud
gf rü LAn ya da
Eı §
aln de&ül
3U
hağlmtnn
3!
üğmtffidİO
nr
gf
sl tr
. Le
grğa.$
liğ,d, G!,enÜ.fu?al sfulDlo lot'l tbtn F on. Eağknt!
[ğr!t, cü]y.nt[ fuyal ı
HDOD!o rDft o3ta Fa]
l{*rd(
tda ht4t tttwt(dEao
I.ıte rp)
AJeaconrection özeLhkkri
lt 3En6ı N.ü*
|,lode.
tılreg$
-,-ia,
Bu
bdğt ğğ*] oğği ltrlğ
f r g r
ffo/wie]eğ 3915AB
g
Pf,OnNET l0
M
slMAIlc kİr].İil Eüğ,d 0so)
[rdd
f,T.Polad
Prcro.d
[cPnPl
a
?X
lnıelnel Plolocol (lclj/lljl ijzcLlikleIi
AğE ed*İgg sd.y.ta.it A§
lP
Aşğn ı(
lP
ğğl,m olan* d.d( dffi adhr F .ğ yiii;iü€
hrJ&, lP
O otd|*ı dd* L
o
lP
ğd6 c
.daii k1,I
ro
16s
56?s.B tArü
226
,a
da Yü|GğA
tl"cd-l
lTM)GiJJı EüE
Hzd.lrağüİa
Yaıtz Eminoğlu
2
1m
Bu işlemler yapılırken çapraz bağlı Ethemet kablosu bilgisayar ile PLC Ethernet portlarına takılı olmalıdır. CPU'nun kompakt Ethemet kartlı (CPU 315 PN/DP - cPU 317 PN/DP) veya CP 343-1 işlemci eklenmiş olması şu aşamada önemli değildir.
3. Pc_PLc ETHERNET HABERLEşMESİ Bilinen yöntemle proje oluşturulur. Kompakt Ethernet kartlı CPu'larda CPU'nun slota eklenmesi, CP 343- 1 Ethemet kartll projede kartln slota eklenmesi sırasında '.New'' ile yeni bir Ethernet haberle mesi o|u rularak, "lP Adress" ve "Subnet mask" adresleri verilir. slİlAl lL
trfl
.]00{1 )
laon{isu,dtion)
pü
ohDel hdberteşm€
ploPerlie§ ttherne] in]erfdce cP 343 1
LI
CFU
inl F]
3ls2
card
DP
d
sd ı,lAc rdde.*
F
lP ploloDolk be'nq
lP
(1
|!ıoı 3 1
dd€..:
/ u*,lsD Foüo.d
uird
|i9.ı68l2E
cfıJ 3ls2 DP
|l oe
D0l6!oc2arnıs
G{6{ğ--
IEE155:6l3:.]|l:.:1]l-]
un
sloü
L
|
T 00l60c24rIrs
6
2
PddüEığ§
(RO/s5)
oıda.ıIlt l GEs?
s7
as2Aİ @.1BH
Yavuz Emiüıoğlu
227
!,E
i sıulrıc
Daha sonra "Simatic Manageı'' ana penceresinde Ethernet adresi düzenlenir. Edit Ethernet Node" ile Bunun için "PLC penceresi açılır. ayar
Fıe Edt
)
uunug",
DEş|g? * E
pro{inet hdlrerle§mc
ia !b4 Qtlon \ı/"r,do* lleb
lnJ..t
O.!ri!id .nl, Ule.
PRoJtc-
EE En
aİl+L ailj+l;
,
a.n.p]ie and
O]qnl.i; cile.ts
s
g
a,!ırlnl
E
ra!.
E-E
]-]ir]
F!.!i.rr
in |,,1.r nl! ]
ı.t.."e Diday
|lrr!e tli. İ
itnD]
r.i
rn
ıe.i.Jı _iln
..
u.li., i c]i
Acce§§iblE ılodes 1,1Lrğ!
. ld.ni
i.it..
ll]ı].ii lİ ı].İirbiF:
Di6Eno§ttJ5etthq PRoFIEU5
tdil ttb€İnet
X
Node
Elhald rEdğ Nod€. ti,lAc
#e§g
Network l
Fa§t
§€
lX
Nodeg
ıriF,TrnEEffir !|
sıJt
|7
orıİrE
set lP .rıliluration
§ıep]\ Browse
.c.8.tie
:t] t]!
i7 4:,,1:
,,]:Pl,
:1!,|
.aıibn-rl!j,/
.+t
! HAC.dd€As:
0K
} (}20.D5,77,48-42
c.""ı
|
Hdp I
22a
Yaluz Eminoğlu
Bu pencerede "MAC" alanındaki "Browse" tuşuna basarak Ethernet portuna bağlı cihazlar listelenir. Bu listeden istenen ünin seçilerek "OK" tuşu ile onaylanır.
PI.c
VE s7 300/40G2
ENDiIs
onay sonrasında seçilen ürün "Edit Ethemet Node" penceresine aktarılır. Burada gerekirse "lP adres" ve "subnet mask" adresleri düzenlenir ve "Assign lP Configuration" tuşu ile onaylanır ve pencere kapatılır.
IIABERIISME
/
Bt
x
tdit tthernet Node Eüanrl
sisTEMLERi
node Nades acc€sside
MAC.ddess:
orİn€
m_20o5.r"{9-42
set lP cor,figualioo
l?
use lp pğlametef§ Galeı.Jğ,,
lP addres.:
1192.1
l5rr55r55!-
suhnd ma§k:
r
0btaiı lP
dr€r§
lfui,idb
li
58.2 200
.i
0o
ıa
ı.na
mula
]!2]§E22B0
frmü. oHcP se.Veı
ü:[enı D
Cxent lD:
Alsin lP cd{budiİı
Ealat
to factoüy
o*s 5ele.I ll0de
^d(li
X b
rE
EqriıiE &*t
cüri.tbn b üE,,Edİ tRJ 3|52 DPı
E= F=
sh
T.g*
H*l
I
e5\
0g İErc*.t dğ
e4
!€tEıg§
sıdiİ a
E üİc ıPdts
t:kİtlD t Ol dıİrt
(
1*,rr! .l q.ı.|üz|
Lan be |tsarl.d
tlAc
*m#TI41ı!
':J
-rT=!! Clır 3ıfF..
lEİ
Daha sonra donanım ayarları penceresine geri dönülerek yapılan ayarlar CPU'ya yüklenir. Bağlantl ve ayarlar doğru ise "lP adres" ve "MAC adres" alanlarında bağlanacağımız CPU bilgileri görülür. Farklılık olması durumunda "View" tuşu ile bağlı bulunulan CPU bilgileri görülerek değiştirilir.
P
ı
A.cğ.İ* ılo*. I
Yavuz Eminoğlu
229
7
X
se1 pG/PC lnl€rface LLDP Accrs§ Pdıl
of the
Apdcdtion:
tp,|
!,',Nl,|.F',
Bu ayar|ardan sonra PC üzerinde ayrıca "PG/PC Interface" ayarlarında ilgili "TCP/lP,." protokolü seçilmelidir.
-jP,lpA"l-| ;,_"d(,tı\-:,,,,,
[standdd lol STEP 7] lnteütace Palğmeteü
TcP/lPtA-ro]
)
As§qmnı
U§ed
B.oad.!m Netlink tTM}
DEqn6bcs.
APLcslıl{TCP/lP)
LTCPiP
EıTCP/IP
[i
T
D Bıoadcom iletljnk lTM) ., ) lnıe{RJ PEo
CPllPtA.{o]
;-]
.>
a!p,
^rieless Ndlinl. Büodcğn
ffi$
tAssbrir4 Pafametğs lol ıh. IE-PG b yo, NDls CPs $ü, TcP/lP Pıotocol [FFC_ı
06]l
lnleıta.e§
0K
Help
4. ETHERNET KABLosuNuN KuLLAN|Mı Bilgisayar ile PLC, bilgisayar ile panel veya PLC ile panel arasında Ethernet ile bağlantı kurulacaksa çapraz (cross) bağlanmış Ethemet kablosu (RJ 45) kullanılır. Eğer bağlantı bir swiç üzerinden yapılacaksa (Ömeğin PC - PLC - PANEL gibi üç veya daha fazla cihaz) Ethemet kablosu düz bağlanmış olmalıdır. Özetle iki ürün bir biri ile direkt bağlanacaksa Ethernet kablosu çapraz (cross) bağlanmalı, bir swiç (Hub) üzerinden bağlanacaksa düz bağlanmalıdır. Bazı haberleşme işlemcilerinde dönüştürücü vardlr. Bu işlemcilerde kullanılan kablonun düz veya çapraz olması önemli değildir. dilz bağlantl
8 1
Tx Tx Rx Rx
Rx Rx Tx + Tx
RJ_45
230
Yavuz Eminoğİu
Tx + Tx Rx Rx
çapraz kablo
Tx + Tx Rx Rx
5. ETHERNET KARTL| cPu,NuN SAHAc|HAzLARl lLE HABERLEşMESİ Siemens S7 300 ailesi cPU 315-2 PN/DP ve cPU 317-2 PN/DP ile ilave bir haberleşme kartına gerek duyulmaksızın bir Profinet ağı kurulabilir. Bu işlemcilerin üzerinde Profinet ve Ethernet haber|eşmesinde kullanılmak üzere bir RJ45 soketi vardır. saha seviyesine erişim için kurulacak profinet hattı doğrudan cpu üzerindeki bu porttan kurulabilir. Bu şekilde kurulacak olan yapıda hatta bağlanacak olan saha cihazlarıyla haber|eşmek için ilave bir haberleşme programl veya bloğuna ihtiyaç duyulmaz.S7 Programı ile oluşturulmuş bir projede kurulan s7300 istasyonu donanlm ayarlarlnın yapılabilmesi için "Hardware Gonfig'' penceresi açılır. Kullanılacak olan CPU (Ömeğin CPU 315 PN/DP) katalogdan seçilir ve tanıtılır. j.
Hw
trd ]
Conli8 slM4Tlc J00(1) Edt l6dt f'ta tl9q optm \üİtlğü tkİ,
ışıı
o
sl^4Alla
ş,|l,Il b lri]l1]
i( oı ll!.j,
PN'li CPU'nun montaj rayına eklenmesi sonrasında otomatik olarak açılan veya PN-IO satırı çift hklanarak açılan özellikler (Properties) penceresinden CPU Ethernet bağlantl noktası (port) ayarlarl uygun şekilde yapılır.
Ed
c||aİl|DEI e*
]]irİ] 1,o|:rll]ir.!
d€ ğJ 3ı.c.2DP @ o @U 3ıac.2FP E.E
E_o
E
B.E
sls
cpı.l
cf'U 3ı5
2
DP
cPu3]5,2t J,DP E (B E57 315_2E6] 0üBo
3
]
P.opcnjos
l
1h,"]
ı
Vı3
net inlcl a,r.c }llr ]() lRa/s2. 2)
ı'Ğ,Ei
dc& dEr
Burada Ethernet ağı [Ethernet(l) seçilmeli, CPU'nun lP adresi (lP address) ve alt ağ (Subnet) ataması lP sınıfına uygun olarak seçilmelidir.
fu §Eo..İrı
|19.16ao] |2s 2E55o
-
Fıur6iüt 1
5 6
8
ı*-
|
P,oF,ü".
I
c-"a
0(
| ıı+
|
Özellikler penceresi onaylanıp kapatıldığında CPU altındaki PN-lo satırlnda "Ethernet(l):PRoFlNET_ıo§ystem" isimli hat oluşturulur- Veya ister PN uzantlll cPu'larda "PN-!O" üzerinde, ister raya eklenmiş CP 343-1 kartı üzerinde sağ tuş ile açılan pencerede "lnsert Profinet lo System" ile profinet hattl eklenir veya kaldırılır. Bu hat üzerine sahada kullanılan profinet cihaz|arı
"PRoFıNET ıo
)
lro"
katalogundan seçilerek eklenmeli, her biri için lP adres atiamaları doğru bir şekilde yapılmalıdır.
l]w aonfig slMAT|C 300(1)
tatbı Eİ
]n
ı.E
.t Rc $.ü od*E t|i oş
H6b
ı*s-ı şl|.-l bG|]aa |6E
SlMAT]c ]00(1) ((,onlieUld!ion)
1
2
cPU :n+2
3 5
Yawz Eminogu
PİnıP
!u ı?
I'rofinctÖrnek
PFOni{ET-l0
Örneğin PRoF|NET hattına eklenecek bir ET 200S modülü katalog içerisindeki ET 20os" altından istenen modül sürükle bırak yöntemiyle hatta Uo "pRoFlNET lo eklenir. Daha öncede anlatıldlğl üzere hatta eklenen ET2OoS modülü için güç kaynaklan Ve l/O kartları katalog içerisinden ET2OOS altından seçilerek sloflara eklenir. Donanlm ayarları oluşturulurken tanımlanan giriş çıkış modül adresleri CPU'nun giriş/çıklş görüntü bellegi (Pll-PIQ) alanlarına dahil edilmiş olur. Bu adreslere erişip okuma ve yazma yapmak için özel fonksiyon ya da fonksiyon bloğu kullanmaya gerek yoktur. Bu .. ilanlara doğrudan okuma veya yazma yapllabilir. Yani aşağldaki donanım ayarlarına göre profinet hattlnın 2.slotuna eklenen input kartının adresi l 0.0 ve l 0.,! dır. Program kodlan İçerisinde l 0.0 ve l O.'t'dan okunan her veri Ethemet hattına eklenen ET2OOS kartının 2.slotuna ba lanan ln kontaklarıdır
)
)
- -X
Sl[lATl( 300(1) l(onfigu.,ll]Un) l]üofineı 0lnek
i
1
PırDP
EPu :ıı+2
2
dd
Eü
PnOFlNET
)d
EofG
3
ts
Illi15l
a
5
moEEus DP
fOnxET lo
ıO oE gE HMl eB lo PE
EI 2tDi
o E EI zfDgo B oEralE gÖGsD E
-].:_.:.]_ =..u.,ı. ..-,:-..+_-.. 1,-lr.ıı
Snı
iJ
H]5ı.3n]
@öA pöA)
E@cP
ıııı-eıı
EoDı
sH
a v,İEFa) ZllfiIEBElrr|rrz7iaı 0 ffi Lı E,iıEz]E_ a Ei]E .7İFll rll
6E€f
ıl.
l6r-eAraow 1
,|İ _aEDtll{lADo
204}
ol
2Dlrclaı, st
@
2Dl Dc2a, HF 2Dl
0c2iv HF
2Dl 0c2a{
2ol Dc24r'
sI sI
Gerekli ayarlar yapıldlktan (PC Ethemet ayarlarl, "Edit Ethernet Node" ayarları) ve Ethemet ağı fiziksel bağlantıları yapıldıktan sonra "Hardware" CPU'ya yüklenmelidir. Bu ayarlar sonrasında bağlantı ayarları kablosuz bağlantı seçilerek, lntemet Explorer adresi http:i/192.168.2.200 yaalarak arama çubuğuna bağlanmak istediğimiz da kablosuz bir modeme bağlanmak suretiyle, bağlantı sağlanır. CPU'nun Ethemet kablosu herhan i bir CPU me risinden direkt ba lanllabilir. Aynca bu yöntemle dünyanın her x set p6lpc lnteü (ace taraflndan gerekli protokoller yerine tl_DP getirilerek istediğimiz CPU'ya Ac€€.s F*| d ltrAClpbdiorr bağlanabiliriz. Ancak bu işlemin SIONL|NE I5TEP 7} -> TCP/IP .) lnle{Rl Fffl]Mİelels . ,] yapılabilmesi için "PG,IFG ]nterface" [strdğdlrsTEP7| ayadarından kablosuz bağlantı seçilir
CPU
lrtel €P TCPjP
.>
dn t.l Arggnna.t tJs.d
lri.{RlPBOMide..
.
.
IPLGIMICPiB
ür
gıodcdn N.tLi* [TM1 LTcfi P -ü ldeüBl PEOnı/.e|..i,. TCPrflAüo| -) güo.dcğn N.tLi*ti]
LTCP/P.)
I
t§].
....,,,, ,, _.!..]...-
-.
. .
..]
.ı]
Dirytodics..
|]op!..,
)
Delete
tAJsiF*E PalğEtğ§ ıo Yo, NDls CP§ r,,fi TcP/l P Robcd tR Fcl otE]]
232
Yıvuz Eminogu
6. iKl cPu,NuN PRoFıNET üzenlııoeıı lıeenı-eşıııesl Daha önce anlatılan yöntemlerle s7 300 projesi oluşturulur ve iki ayrı cpu eklenerek aşağıdaki yapı|ar oluşturulur. Bizim kullandığımız cPU 315 2PN/DP dir, yani Ethemet kartı komPakt olan bir CPU'dur. Haberleşme amacıyla burada anlatılan yöntemlerle Ethemet kartı eklenmiş bir CPU'da yapılan işlemler benzerdir. Ethemet ağı oluşturm a, aşğıda gösterildiği şeki|de CPU'lar eklendiği sırada oluşturulabilir veya CPU'la r poeye ağa bağlanmadan eklenir daha sonra ''Configure NetworUNetPro" i ind e "Ethemet" lna ba lanır. j ] e]- cajr2c ğ-- ğJ İ3 üiıİ cr! İI Efi ğJ 3l5F.2 hl/DP 61 6Es7 a,2fJl..oADo
İ
1
i
5
ğe
E pE9ğtğ ftrEn*intüta
:ıE
pıü-p Ga/s.2J)
crtJ 3l5
iE€l
ırEıüfu_.4-J Eı55r5ro T lb
İİdnJbd,tİPd.
Pft
$üti.*j
-
T
P,s.-.
oı.
6l
ql}
o :.ğlgıcAJİ
sei Cn br ] D
,'(E
e +.8,ı]al] E
n ıgi.d
|r9rğoi |;65'n:.6-o
dbğl dı.d
b
d*
lP
#
,s6]
r-nç"e,,
I
I
I
|
o'ı l
o(
]: ı::]:i1:.
_E!E !
s7
J&
la
o"ı | ıı+
soünc
ı.b
,,&
;]-'- rr ,!]:j.:ii ai}_r!}rt
,ı+
l
]-
fğ
cllİall5Elull?
ğEs7
-c !ğ
1
kndi,, arEd -futa
2
3
5 6 a
E r lLfrr*.bri& P 9sd &iö....|< Jnr.J_çe,ün
ı0o
TEfutrbfulPir*
fuF.b...
*l
0
19iB,o]
YarTz Emiİoğlu
I
233
1
cfo
n p
oE
*+*İ
ıldin
dş
2
3
it
t
lo(r.İnfllo
cPu 3lEF,2
F= F=
a
::ğM
a cff Enıa
dıdiı
to
Le leached
by
mem d ,tewdy
ıürı1.idift
1!l2t5ıllJ lİLğrı.iğ]d.ia
!
öti. dü.a.dt t!(!dl.
ıoı ua
üF_,.lıwilii.............:.İ*ıi!*{ . qr:
]:a
shl i1
Pi/D9
2
Dll6/Dol624/ns
s7
c-td I
oK
ffi
H"b
I
E.İ slHAllcs1l , E.ı mJ 3ı512
d5,Es?
EL@ ,.E
l
lDott.
l.iIhG]laa |Dg]uIt? İ.Fti, .eğ!i.r ı6E
2
T LbnLr.d!dbeıüğD F 9D.&b.Çbl
T(blfutrbüıf&
a-r-ı-r.ia
b....I
llo
un
Aqa,.
0
-ı
uI
Farklı lP adresleri verilerek oluşturulan donanım ayarları CPU'lara ayrı ayrı yüklenir. Yani PC ile CPU Ethemet kablosu ile bağlmslz olarak bağlanlp yükleme işlemi ağdan bağımsız olarak yapılır.
2g
Yawz Eoiloğu
I
PI]c PRcx'iR
VE s7 30o/4fl]_2
ENDt-Is
IIABERI-ESME
/
Br
sisTEMLERi
cpu'lara ayrı lp adresleri verildikten sonra aşağıdaki gibi bir ağ oluşturularak donanım veya program yüklemesi ayrı CPU'lara aynı bağlantı ile yapılabilir. iki veya daha fazla profinet bağlantl noktası bulunun CPU'lara yandaki gibi bağlant| yapılabilir. Yani CPU'ların kendisi aynı zamanda switch/hub görevi yapmaktadlr.
Tek profinet bağlantı noktası bulunan veya ikiden fazla cihazın bağlanması gereken durumlarda yandaki gibi switch/hub üzerinden de bağlanılabilir.
swTcH
CPU'lar
P8ofİ!€r
i
cPu
2
n p
§uP
0€ ıaöl rdİı #6
pP2a 3
.bĞ dnd.n
b üE
.ı.d.l
cPU 3l5F2
l;"= c
!E$a,, ıt-n"{ıı rnorıtlEr.ıo-sı.ı",,
üt Fooıffiilc
F=
ololD1O2w/0l^
Elü drtdbt
ğ
b
19168.o1
l9lCao2
to
adi bi E-hed b, meşt
ot
biribirine bağlandıktan sonra yükleme işlemi yaplldlğlnda yandaki görünüm ile kaçılaşılır.
ga.*ğ
l.d cdit
Fı}1!{55_İ üH8l8s8]lE lıH€_1Eğsl_6
cPunsF- sıiAı|ar...
c?u!rlF_2
s7. cPU 3laF_2
@u 3raF_2
Yaılz Eminoğu
slılAllc ı1
235
Yukarıdaki işlemlerden sonra ağ penceresi açlldlğlnda ağa bağlanarak eklenen CPU'lar ülür. vea ba lantllarl Bunun için F|. Edit l,gt
"slMATlc
lıılanager" ana penceresinden
PLc
V|
DallgT#lS hG
lffi
clr++Alt+E
cteg€
"Gonfigure Network"
l----l"i llE E
tog
§!I!llll]JllirJiüj&l D.6nt Global Data
penceresi aç|llr.
"Configure Network" penceresi açıldığında "MPl" ve "lndustrial Etheınet"
lndustrial Ethernet
ağlarl ve ağ bağlantıları izlenir.
tvlP(1) Mp]
SIMATIC 300(1)
5IMATIC 300(2) l],
ı
2
fl 2
CPU'lar p@eye eklenirken bir Ethemet ağı oluşturulup ağa bağlanmamışlarsa, ı olu rulu ba lanabilirler sonradan bir Ethernet Bu pencerede Eııd iken katalog içerisinden
r-d!
sIMATIC 300(1)
|ı
a
1)
|ı
FfrOnNETl0
SIMATIC 300(2)
iı 2
@
E @ sLt*s
ı
tİ
,tl
iIE1-1o
||l92.ı
_
!ıl
,-g
60_0.1
FnOEOUs
"Subnets ) ındustrial Ethernet" sürükle
bırak veya çift tıklanarak projeye eklenir. (Yeşil hat)
al Ethemet
Daha sonra CPU'lar üzerindeki "PNIO" alanında bu|unan yeşil kare kutucuk sürüklenerek Ethernet ağı ile birleştirilir. CPU'nun ağa bağlama işlemi, cPu'nun projeye eklenmesi sıraslnda yapılmış olsaydı "Configure Network" penceresini açtığımızda Ethernet ağının ekli ve CPU'ların ağa bağlı olduğunu görürdük.
236
Yavuz Eminoğlıl
Prc PR
!,F. S7
30ol4ü-2
YEL
/
BUs
.
Şimdi "configure etwork" penceresinde daha sonra haberleşme fonksiyonlarında kullanacağlmlz "lD" numaralarını belirleyelim. Bunun için ilk cpu seçilerek sağ tuş ile açılan pencerede '.lnsert New connection'' seçil erek "OK" ile onaylanır. Açılan '.Properties€7 connection'' penceresinde istenirse "Local lD Hex " numarası rilir. Biz "l" old nu kabul ettik ve ona ladık nc
300(1)
300(2)
L"$il*
lad c!İfr 6ıJ Pdr lLuiaue'ld]nJ..un..,!,
2
6a
El
et
du
gltlATlc
ı
@J
&d( Piaüs
P EEİa -..İsğı.fiı
ü4 İ*2
|- 9 *j
o*"r
.p.ıJr,q i.,d, m.-,]!.-
3rf.2 PfimP, PN.lo(, .(1) ıtü.ğlJ
I
|s0l^IE ı00@/
FJıJ 3r5F2 PıtimP
|eE
-
Aa
315F_2
El,.,.a
PN/DP P|ı-DlRO/§a
io-,.(li lİıdİc eErıd]
F9]63.0,]
|19,]6ü02
İlcüa l-
c-.a 9
Dkıq, goFğü. bdu.
| ıı*
l
ıEliE
ı*
c-,.a |
0(
|
onaylama sonrasında alt tabloda bağ|antl durumu izlenir. lkinci cpu seçilerek tab|odaki bağlantı satırı üzerinde sağ tuş ile açılan |isteden "Object Properties'' seçilerek 2. CPU'ya ait "Local lD ( Hex)" numarası değiştirildi. (lD numaraları değiştirilmek zorunda değildir. Her ikiside "1" olarak kalabilir. Biz taki kola ı olsun di d tirdik. E rneır,:ışıiiiip,ı iı o;,ji'.:ŞlŞiiüii§ffiiğ§&i;* Ethemet(1) IndUstrial Ethernet
9i*ğtı5
_
s7
@ıErih
G,Ec |§*! ıJ*a-
JIc 300(2)
sIMAnc 300(1)
iı 2
r-
conlEM.d
|
Fffian,dEdı*ı T
D@/
pı,op, ptüD Epu 315f,
a..t
a]6{1)lH,nd BlEt
d
o*"r
l ğhJ iD.,elrig no,1, mesai]B,
|slxATE
Downlo,d
o
4nan..$na.!Er
conn.ctlo.§
ll!p
163
02
I
lsııiATE rfi(,y
r6onal I
315F? Pü'uDP,
PilO{RlLsa
hPlc8fi
o,"ı
Yaıuz Eninoğl,t
!
lEuğıdtl)t niJ sığg|
l ıı*
|
237
Yapılan değişikliklerden sonra; "CPU t" seçildiğinde "Local lD" numarası "1", "Partneİ lD" nuİıarası "2" , "CPIJ 2" seçildiğinde "Local lD" numarası numarasl "1" olarak izlenir. "lD" numaralan değiştirildikten sonra CPU'lara ait donanlm ayaıin cpu,ıara yeniden yüklenir. yükleme işlemi "configure Network" penceresinde seçilerek te yapıla-bilir. Donanım ayarları penceresinden de yapılabi|ir,
cpu
Haberleşme amacıyla kullanılan fonksiyonların kullanımları birbirine benzerler. Biz .uRcv_E" bloklarınl kullanacağız. Bu fonksiyon bloklarında kullanılan "lD" "UsEND_E" ve parametr&i, yukarıda o şturulan konfigürasyonda atanan "Locaı lD" numarası (Word iorrrt,no, ,vÜ*ıo*---,1 yizıllr. "R_lD"-numarasl aynı ağ içerisinde kullanılan tüm bloklarda aynı numara (Dword formatında "DW#'t 6#--") atanır. "REQ" ğirişine yazılan sinyalin pozitif kenarında veri alış verişi sağlanır. "EN-R" girişi "'l" olduğu sürece habedeşme gerçekleşir.
'
cPU
1
cPu 2
CPU'ların aynı numaralı ,,SD_-" ve "çp_;' girişleri işletim sistemi tarafından birbirine bağlanmıştır. Yani't.CPU'nun "sD_l" girişine yazılan bellek alanl içeriği 2.CPU'nun "RD_l" girişinden okunur. Uzunluk '1 byte'ta olabilir "ANY" formatı ile tanımlanmak şartı ile 160 baytta. (örneğin P#M0.0 BYTE 160)
"ERROR" çıkışı "'t" olduğunda haberleşmede hata vardır ve hata kodunu "STATUS" alanında okuyabiliriz. Hata koduna ayrıntılar ilgili bloğun yardım menüsünden alınabilir. "DONE" çıkışı "0" ise haberleşme başlamamış veya devam etmiyor, "1" ise haberleşme var. "NOR" çıkışı "0" ise haberleşme başlamamış veya devam etmiyor, "{" ise haberleşme tamamlanmlştlr. Bizim yazdığımız programda her iki CPU'nun giriş kanalından girilen sinyaller, diğer CPU'nun çıkış kanallarından okunacaKır. Ayrıca 1.CPU'nun ilk iki analog giriş kanalından (PlW 272, PlW 274) okunan değer, diğer CPU'nun 1.analog çıkış kanalına (PQW 272) ve MW 70 bellek alanına aktarılmıştır. Analog kanal verileri aktarmak amacıyla da MD 60 kullanılmıştır.
238
Ya\., Eminoğlu
1.CPU,YAAlT PRoGRAM oBl :
İ(t
315 Pİ/Dp
E İ.t_.L
1 :
cPl,'lDla
PAtG.
DİEJrşfslP
cI,g,y. Ell
Aİİ ],.cPg Pnocnıxİ
g6d..rıĞ!i
D626
tElt
lİrslED Et
lb
mE
[email protected] ı!o
ral6ıı_ID
0 1
sİtrİİ]:l
Iro _arD_ı
2_!m
Par. C0,0 rcnD
2
.. -sD_3 .. _so a ts ı.tDtİ
2 :
P.rt5.! cPo.dd q6od!l1t.n c.i!i!
.I,.!D!ı
!B29
Eı9 tıı
aıo
ü0o.o
t x0.
İ{l6ıı_ID
:ltı:İ
_R ıD
ri.aı6a0 g,l0
_Do_ı
.
_ıD_2
.
-lD_3
,
t
3
.
E x.ts*
3 :
-lD a Glob.ı .tğD @.i lod
;:]
ıolE
Plİ272_L E İ.ĞEotİ
a ! Grob.],
.ı.D
Eli
F
!lİ
Yavuz Eminoğu
2§
2.cPU,YA AiT PRoGRAM oer , ııs pıİop tiİ
E
Att 2,cPg PRoğııüı
frA9ffiEşı@sİm
cPür'NtJN
pöıt*ı cpo,d.! g6!.t..!ı.! EııNo ,f,.-5ı
EEüE,
DB29
ü@9
V|_* 7l-*_-
t t
ıll16a2 ,D
Qılo
!aı{
.1
-RD_l
60
... -ao_3 E ıl€tsİL
2 :
. ,, -RD !ı Paltn.I cso'y. v.!ı gd,delilrli
DE28
,pa
rr20.5 -REQ
ürll6t2_ID
...
E ta.tsA
3 :
2 3
5Ir-2
ctobnl .1rd6ti
Ye.lAtA taşı@t
EN
Pgır212
E
'..trc!ı
4 :
Gıobat ntadAk! 9e.i!iE tarıNsr
Eğer her iki CPU'nun lD numaraları da "1" olarak bırakılsaydı, buradaki "lD" numaralarl da "W#lG#1" olmasl gerekirdi. 24o
Yavuz Eninoğlu
eı s 1Arlcqrl e.İ cEJ İs2 F ,DP ] +B s7Pı.r!ıtıl
i
l,o0r
Fğ3
cl
,
sfE0
*BE
6l sltlAncqa e,İ cal ns?
DO2i
slEg
aa,03a
SFB 28 ve SFB 29 projemiz içerisine eklendiğinde SFB 8 ve SFB 9 da otomatik olarak eklenir.
F ,oP
Ö@ s7Eord,{a .-İsdtB -e EbıJ
fon
Yukarıda anlatılan donanım ayaıları uygulanmak şartl ile aşağldakiFB 12 ve FB 13 n blokları ile de habe me |anabilir PLc 1 PLc 2
Ei.t-.Lı:Titı.: Eğ
tolE
ElD
qrl
4_ıl
lrr,ı
Eİ.EöİL2:rltı. uorE
!! IB0 _
tl
lDo olE
xB100
aF ml
160.0
Eİ.tDtl,!:titı.. D612
EıN,
ı40.5
l9 _llo
EIBO t İ30. ı slın !l t§12
11,1-R
l.rı6rı_ID Drlı6lo
_ı
ı]t
ıoı00 _sD_l
E ia.tE!ı 4:
ına
_Ilğ
'itl.:
Da13
lil3 lıİ İı.0 _E_ı
zİo
fl*l6rı _ıD DF}ı5a0 _R_ID
İDR
2
lreR
3
lllEllrs
xDl20 _nD_l tda
_İ!İ
Ex.ğ@.L5:İitı.. ll xB120
_ı!
lovE
llro ol}l
q90
Yavuz Eminoğlu
241
S7 30o bir cPu,nun başka bir 57 300 CPU ile haberleşmesi gerektiğinde aşağıdaki nlar kullanılmalldlr. tabloda belirtilen fon s7-soo
,
s7.500
cd!{.
':
lt7,
1o
PiE
a1
oc
(1}
l0)43)
a7
ğaA (3x3l
(J)
lİ2l CJx3,
Ql,
o)
l2r)
cdrİ İıcrİo.1Hcl§ (zi
cçımııas,
(sı
o)
(3)
(6)
(3)
(1l
l0,
(1)
(3)
lr)
(6)
13l
(3)
|ğ
p2,
o,
(o
.,2l
{0)
(6)
l,
(l)
(r)
(3l
()
(6}
11l
l3)
0)
(eı
{r)
(3)
(3)
(1)
o)
(a)
(3)
o)
(a)
o) l,)
(1ı
(0,
,PUT, GET,
1JsEN)Urc\a, BsEilD/BRcV,
taryrgeı
(Dl
eo
(1)
11)
{1)
{3)
c,,
DFRD_DAT, Df,I\rR_DAT
(3) TsEİ{D/TRcv, TUsENtVTuRcv (6) PNlo_sEİ{D, Pl{lo_REcr' (8} AG_sEİt)/AG_REcv (21) 1 § so.vğ
co.tolğ
Qa c.nüoağ
2
(fğ ?UT, GE]-) 6 §gvğ(fd ?UI, GET')
OC (Open communication): lOC (PN lO Controller functionality): lOD (PN lO Device functionality): iki CPU arasında yapılan haber|eşme; "client CPU"lar araslnda ise "sEND-REGEıVE" blokları, "SERVERCLIENT" arasında yapılan haberleşmelerde ise "PUT€ET" fonksiyonları kullanıllr.
Endüstriyel haberleşme protokolleri fizlksel özellakleri li E -aldı
ral. |tol| ...tol
ıaallır| tl€l-
PRoF|NET/ lndusİid Eüre nel
PN: 1ry1o ıl8.Us lE: ,,l0 GB,l^
PRoFlaus
9.5 KDıA !o
1
2
gİİld dnir oİF-r oYğ
lıJİivs
126
12 lırbı/s
11,6
lmo
hıİid lIsııE
ea.fl
d€ct
lcd: l(x) m
odicd: 5l(n (muiliıııode)
slMATlc bacİdrle DlE
sğial iül€.bce
l'l0
19.2 Kbüus
242
up to
nfie}
61XDytۤ
ğ) m
64loytes
of resp-
lİn ($itİİılr r€pedefı En (*It| rce€*ef) '0 lan (silll otjr|) 1875
el€.tr{ce:
Point-to_p.t 2
Muİtpdaı
32
lqres
1
64lortes
slMATlc stabn
bit/s up lo 1l5,2 tİVs
(2qnA-TTY
6.r
12o
En (slrıg|e
4cPtsnlE
10 Mğ'Us
d
Irlİa| lııt Raaıraır tüi rü" Fİl.D ıd|.?
€l€dicd:
odın: 187.5Km/sb
İıarıs
Rs2ac. RS4?2]185 2(İnA.TTY:
Yavuz Eminogu
15m
1.zn m l,o(x) m
.(
l(İrl€s
yts
G.
PRoFıNET iı-e pRorısus,uN KARşıLAşT|RlLMASı
ÖzeHikler
PRoFEt §,DP
PRoF|NET ıo
kablolu iletim
Bakır veya fiberoptik kablo üzerinden
Bakır ya da fiber-optik kablo üzerinden
kablosuz iletim
kızılötesi iletimi mümkün
WLAN (Kablosuz Yerel Alan Ağı) mümkündür
Veri alışverişi
İsteyerek
veri kanalları
Master ve slave arasında tanımlı veri kanalı
lio cihazları parametrelendirildikten sonra tek başına çalışabilirsiniz ( çevrimsel veya isteyerek) Kontrolör ile cihaz arasında birkaç veri kanal|arl.
Cihaz|arın sayısı
Maksimum 126 cihaz
lT hizmetleri
Mümkün değil
cihaz tanımı veri öncelik saha cihazları
kelime tabanlı
arasında erişim Adres atama
Keyfi, şebekeye bağlıdır Entegre edilebilir
Aynı öncelik Birçok kullanıcı sadece okuyabilir. Dipswich üzerinden profibus adresi atama.
veri transfer hlzl Max. 12 MbiUs Topoloji Standart: yıldız ve ağaç Olası: otobüs ve yüzük
XML şema tanımı tabanlı Farklı öncelikleri ayarlanabilir Birkaç kullanıcıdan okunup yazılabilir. araclyla lp adresi atama o l/o cihaza l/o kontrolör ile lp adresi atama . llo cihaza mühendislik aracıyla lp adresi atama o İnternet üzerinden lp adresi atama o |/o kontrolöre mühendislik
Full duplex ile 100 MbiVs
standart: hat Olası: ağaç ve halka
YaWz Emiıoğlu
243
X.
SİSTEM HATALARİNİN ARANMAS|
A. SİSTEM HATAS| RAPORLAMA
STEP 7 işletim sistemi, sistemde meydana gelebilecek tanlmlı birtaklm hata|arl
"Slt AT|C Manageı'' ve ''Wl NGC Flexible" programları içerisinde kullanlclslna aktarabilir. Bunun
in bilinen
i
ntemlerle
Er
!:t*ır_llit..ü
E
s|MATlc
lnEorlnl,ü3 30011)
cnı [E-Eıtıı sı,ı s7 Plogğnt]] i--üts
s""o.
|...E Blrcks
li, .g slMATlc
e
!
HMı stdbr{lI wirıcı ıbxue Rı
E-| E,ts d-ğ
E-|
o_b
ts e-{ o,ğ ıİ
Scıeens cmmwİc.*ion alaırı M*ııgerEnt Eecipas
e PLc+o ratör panel olu lur. *SIMATIC pğede Oluşturulan iılanageı'' ve _ "WlNCC Flexible'' projelerinin birleştirilmiş olma sl
gerekir. . Bunun için ya "SIMAT|C Manager'' projesi oluşturulup onun altına '.SlMATIC HMl st;tion'' eklenmeli, yada Wincc pğesi oluşturulduktan sonra "lntegrate in STEP 7 Project'' ile ''Sl]tiATlC iianageı'' ile birleştirilmelidir.
Repoıts
ıait *,a oraoıın ri*" Bu*ııre Useı ıaı*ıstaiıın oevice
s*ıirpı
.
Eğer alarm raPorlarında Türkçe veya benzer dillerden kaynaklanan farklı karakterlerin doğru görünmesi isteniyorsa "sımatic Manageı'' pİogrEıml ana penceresinde ..options Language for Display Devices'' ile dil ayarları yapılıİ. ft E
D!ı
)
lEl
P(c MC
$şl*
fua
a lteı tsEtr $ ],]:!]::-m.'i tı9!€.
rd
İd.bd L.Eu€B
b..y o.viE
fui..t
Eı ıBAE
j:]
i
E!ıl
c,fge AE6 oirydiğ os
n
0K
a,O
I
c--ı |
ıı*
|
Ploj9le kullanılması düşünülen diller '.Available Languages'' alanında seçilip .'- >'' ile Languages in Pğect" alanına aktiarılır. AktarıĞn d'İllerden istenilen Üirİ seçilip ::l]rstalle_d
_
"Set as Default" ile kullanılan dil haline dönüştürülür.
Y.vuz Emircğlıt
245
Sistemhatalarınldüzenlemekiçin,projenindonanımayarlanpenceresindeCPU. ,,options .ş, neport sy"t6. irrör, ile sistem haialan düzenleme penceresi açılır, seçileiek, İıdEgğ -
frl. E.llt lff.it Ptc
Dİ' Eşalx
vit
, Girıs wirıdd
ealı
9
$l.m_haıösL,4odanı.
ı
slMATlc3Q1!
E-l
ıM15]-7
E-@
cHj
s7 Ftogdnll
l@ soü,ğ
E-El
E
,@
I]E
YJ
=:IEl ll{151
Ee
E m \?
sbiİ.r E* İEt 9tc Yg
l
]nıı".^ı !ğıl5llbEll
Blocks
sltüATlc HMı st"to,0
ı
t!Fl!l]!?l:
]
ıII?
ct|+Ajt+E
d
clr|+Ak
L
dd
:.l
ElnP
xı )Q
lı
1
n
5
n
Edt c.trlog
Prü
E
8 9
E24v sT
.D|
,ıü l0
E4v,t5AsT
€Dc24r,
trmPry,,ls^sT
ln
Pı.fih
ğ
c.talog
|rt'tall Hü' uPdat.J -.
Dc2av 5T
2oo
nP
UpdğtĞ
E4vsr
4$
tr {o
7
Dc2a,/
4Do Dc24Y,o.5A s.r
InnrllGsD Fib.. End in s.Nic€
&
s!pfa.t..
c,eate 6sD fite f ol I.Dö/i.e,.
Açılan sistem ayarlarl penceresi içerisindeki "General" alanlnda işletim sistemi .. taratındİn projeye otomatik olarak eklenecek program ve data bloklarının numarası belirlenir lşletim sisĞmioiomatik olarak 49 numaralı FC ve FB program blokları ile FB 49 ile iıişkilenoirdiği 49 numaralı data bloğu ve 50 numaralı genel data b|oğunu oluşturur. Ancak istenirse bu blok numaraları değiştirilebilir. ,
I
ncpoa syrt .n ııro.
c*--ı
|
oa
Egıac
-
sistem_habsi_rdpofunE§IMAnc
c-*ırt".,
I
ceu ı, sop |
ıı"o"ç" | ırğ
3mO}uM151-7 cpu
Eoat
|
ıı""*s"
,sFil_FE, ,sna_DE,
og: *ıued DB:
"sFıa_G[o8AL_D8"
50
,5F{_Fğ
FE:
Ed
E
uaq!öc! s.opğl
Bodt
EBI
ffi
I
snr*..,
l:reBje leteİeİl.re d6ti
o+buıı'ııı*ıııı gaE iıq ğ Ğgı,osc bbd( |7 D4L!t*ı ddog ı,+Er, !.viE ıd cdrpİlg Hw Co.sg
|-
ı&.tgE,,ıd ğElğdr: Epd,
T
A,fdyE €pdt
foığt
26
E.
..,
n.rgğladİE m...4€i
dĞd(İy:
l
trnıfui
...
l
üdted!
l
Yavuz Eninoğlu
o-a"ıu-
|
.
"oB configuration" alanında işletim sistemi tarafından hangi kesme oB'lerinin projeye . eklenmesi isteniyor ise onlar seçilir. |
ııp.,t syıtıın
ı*
-
;ııııı_ı,"ısı-_'.porbnı.\cıiATr a»G)vıit151-7 cPu
6.g osaş*, Eiİğ
O b T l2 T g)
r r
80
t;
f
85
qd. ,td
(l
1
3:i
1m
|cıÜı
o*lı
r
rfF f
9-? 8aİ!ü: ffi
İü. v
T
|-
T
r
F
u |'ııtııç|
t*god.
|
ry.*"smt |ıı"ryoııaaıa
I
ıE]o.tWtrrü
v
r r
ıap.t §ığı.. cİE
r P
r
"cPU in Stop" bölmesinde hangi durumlarda CPU'nun stop edeceği belirlenir. Örneğin ray hatası oluştuğunda OB 86, modül hatası oluştuğunda OB 82 veya OB 83 çağnlır.
I
nepo.t
systc- rrru - ,irt rn_hab§i_6Foı|.ria§rı
e-rı|oecoıç,*m
Eİroİ&
Racl errof
ıbdule erıof subıiodule €rror chann€l
eırof
CeUı S.n |ıi*-e*
aFt h
|
slıp dE
v
F
v v
Buradaki hata alanları seçilmediğinde biraz sonra anlatacağımız ilgili hatalann oluşması durumunda "CPU Messages" alanında ve operatör panel ..Alarm View'' penceresinde hata mesajlan izlenir ancak CPU stop etmez.
Yavuz Eminoğlu
247
,,Iü/lessages,, alanlnda sistem hatjalarl karşıslnda cpu ve operatör panel de izlenecek mesajlir düze-nlenir. "Compenent sendıng essage" alanlnda hataya neden olan bileşen İeçııiİ. "ıvalıaule lıılessagİ tnformation" alanında hata mesajında_ brılunm_ası istenen ile "iiessage Text" uoiıi.ı"r seçiıır. Mesajda ğulunması istenen bö|üm seçilip sağ ok
")"
iünına aıtarılır. ,,ıtiessage Text" alanı hem cpu, hem de operatör panel ekranında
görülecek olan mesajın ham halidh. Bu alanlarln tamaml mevcut PLC donanımlarına bağlı olarak değişir. Ömeğin profibus kartlı bir cpu,da profibus bileşenlerinden oluşabilecek hatalann seçim olanağı vardır.
c.'-ı | oec.şı-*.,
v
I
cPuh
9A . tı"*"ce" |ııce"a,
I
o"g,""t"ı
ıp* l ıııı-çor*ij.,
I
GğEiG.ğsG.ft.ıgrı,Eidıdlı/E/uffi fqsh cd".ad sgüıE ı|..gge: 17
Rad(
lFgrgc Tği
ıl.ıagc Hğıt|dci
'gi*ı.
:
urıaIE
Rad(
Rad(
ığrre:
rEtt n 6..
Eıtrtğd
shqt@in frarn
-:l
İöa,
H+td
ljo TEc de§oDt*x!:
j
fuef nurtef:
}
ıa..trr.
'ıİt ı..rg.dğ:
Jı.. 'ı.rfi
tlday e|as: A*,.
E4... -
g,qş:
ıİgh
EF$ğl..
l.da
*,de adğtofi.dqğr
ra"
...
'|
Ftdtr
T locİlg F lih.d(.
q.rE d6
24B
ğhğ
ılcq. rffir.. !b rr.ğ
g*"
5.aİ,9rfİ a
ıa*.r-
l
cğı.d
I
Yavuz Eminoğfu
H+l
Ömeğin aşğıdaki ayaılarda merkezi ray (CPU'nun takılı olduğu) üzerine takıh olan modüllerde meydana gelebilecek hatalarda rapor metninin nasıl olacağı belirtilmiştir. Burada renkli (mavi) alanlar bilgilerini işletim sisteminden alırlar. Siyah metin|er bu pencerede atanan Ve istenirse programcl tarafından degiştirilebilir metinlerdir. Fabrika ayarlı (Default) değerlere göre; arlzanln meydana geldiği ray ve slot numarasl ile CPU ve Modülün adı ile adresi yazılacaktır.
İ
n
e.d srrrn Errr-
]o(ı)uMı:i 1-7
lil;ı]'osc-ngrıin[cpi.lingıe *ıgı- }ırna< |loıcunıı sinct I u.-o"o--"aet 17 Sırı Şrırr ıınıııog.. 17 Gıra nın9aiaıa Y!ıl(ı d ılffirrıtaciqİb c@air s.,itg t|..r.gEl
I
d c.rrıJ ıl|od/c
R.d(
.lod*
Chıınt ıf cenııı ı ,j.:,;
fo*
tlııı4c t{ctııı:
$...g.
cPu na|€
rEE rı E
ilod.a.
-J
toicd ğüİ!§ Rad(
ftd( d..tü.,
T.n:
: on ııE e: ıtodule:
addıessi
sot
}
oliİıdlrlıt.
oırııd arğlgl lhdt d...{rin
lro Tla
d.ırttüA
dQsoirtbn:
E
l{4ı.n
ftğ
nurüet
)
Yukarıdaki ayadamalardan sonra "Generate" düğmesine basıldığında projemiz içerisine tanlmlanan progrEım, data Ve kütüphane fonksiyonlarl eklenmiş olur. F} Ci trn fu lta ı o!9 l?ş * 'fc
rı
!=
sırAlc q1}
0Bm
Öf,|
FEı|9
ı i ] ğ9
a
tlTrl
Drl9ı.r(ft, s? Pt
.ltitl|
-|E|s@
i-İE
slMAllc Hİl
sl&ı(ı|
086 08cl sFca6 5Fc1(E
.lt
§
a l aOB@ a.086
,
Fcag
a
sFcsl
F
İ
sFrcll
sFcl07
c OBB a
-.08r(! ,,0B.9
aslc/2
a
sF69
Yawz Eminoğlu
aJ
l]
Ayar|arını değiştirdiğimiz donanım ayadarı ile beraber, otomatik olarak projemize eklenen program Ve data bloklarının da CPU'ya yüklenmesi gerektiği unutulmamahdlr.
249
Yukarıdaki organizasyon program blokları (OB..) incelendiğinde ilgili blogun çağrılma şartı gerçekleştiğinde FB/DB 49'un çağnldığı görülür. onlann içerisinden de az önce hcelediğimiz sistem ayarları pencere düzenlemeleri açı|ır. Sadece OB 85 içerisinde çağrılan OB'nin durumuna göre CPU'yu stop ettirip, ettirmeme şartlarını belider. Sistem hatası rapor düzenleme penceresinde tanımlanan durumlar ilgili hata oluştuğunda "SlMATIC Manageı'' programlama yazılımındaki "GPU Message" içerisinde ve operatör panel ekranında izlenir. GPU liessage" ile açılır. Bu pencere "SIMATIC llllanager" ana penceresinde "PLC (Diagnostic proie events: Teşhis/tanı penceresinde ka§lslndaki adl "W" Messages" "cPU seçili iken hataları) alanları ve sistem (Process errors: Proses and system olayları) ve "A" ve numarası hata oluştuğunda; hatanın meydana geldiği tarih ve zaman, hataya ait "lD" sistem hatası raporu penceresinde düzenlendiği şekilde hataya ait metin izlenir.
)
9la€ı ltED
DİrlEl*lİ lc
sI
E, ı Mrr. oG| s7 E
E
i?
,o :a
(mp]k .nd oMldd obl..ti.,
c HİI
B
Doi*oJ Uğ PrDg.h
6{ trl
MğBy c.d
cPt
@tsF
ğ+ü @!i
lo
F
ğl=o
Rdiurls ıağmyc.li Eib Ec Ptc YE
^d _ilJ
t[gE
redFİl Dlİ?l
P üı1l7llü
ı./.İ,/lıt,t.o,
Aı
a,
to
6d. e, sol } ı..İı. Dİıor.a ıarül lıalal_' cPl ılrılc 2E ırc2ııvıOs^ 5T
lro.il..ıAa
glJliİ!1.1.s _.apo.!rmr.alL!4-;j ]0' t tll:
2fi
Yavu, Eminogu
' '
!F(J
PIrC
PR(XiRAMI-AMA VB s7
TEM I{ATALARJNIN ARANMASI
WinCC Flexible projesi içerisinde de operatör panel ekranında hata metinlerini izleyebilmek için herhangi bir ekrana "Aarm View" penceresi yerleştirilir. Bu pencerenin özellikleri
açllarak "General ) Alarm cıasses" alanlnda "s7 Alarm" aktif edilir. "Alarm View" penceresi
SlEMENS
!*j--l-*:
ı
Alarm view_l (darın view)
) ) )
standart alarm ayarlarlnln yapıldığı penceredir. Ömeğin "ACK" (Onay) butonu konarak alarmın silinmesi sağlanabilir.
ffi
H,!]
F
E uEb.i.dcgr.E
v p
!l7
P,
)
)
Alarm Settings" Setting Aynı zamanda proje ağacında "Alarm Management penceresinde "Aarm procedures slMATıc sFır" alanl "oN" yapllmalldlr.
)
ıEl
suA,Dc Hriı
sEiEl Etl $ğ tEr E4,ti Fıdd* QPliB l&tdğ"
i-***.ı ı
t1
ErD
.ct-X y lİl_i:ıaat.:ğ_!ıt_Eaı6t
$İ^Ir sEıflrrP t
i lE sğş_ı a lş. Ccıı*aı ]1ET4
ı7rE
;\L;\f].ıvJ
ö'.fr
,ıb,ft,F
]
]- td
Sğiflı! 6J
ı0
*dJütr
a§n
ts
n
ğ* ııfr l.ııEçEr
ökstç ;ıE ıı.çlE
-ie:
satr
f'6ffil
lpmje.t
-El!,!4*,xffi lElr!İrr.-.ı.r(ğ+ü)
tı!d.rüİr.
f-l
**
Eğçq!.*.ı.İ(ı.)
E!'blti:ıEüaı{,d.iı-
§MAllc sfM.
c,dr
o5ro,*
ots*,aa
"System aıarms" alanlnda seçenekler aktifleştirilerek ekranda alarma ait lD numarasl
Ve tanl/teşhis metinleride izlenebilir.
Yavuz Eminoğlu
251
Bu ayarlardan sonra proje devreye alınıp herhangi bir sistem hatası oluşturulduğunda "SIMATIC Manager ) CPU Messages" alanında izlenen metin panel ekranında da izlenir.
yandaki "cpu Messages" penceresindeki ortadaki sat|r proses
l| caı ııasa= Fk t* tl6, si,r. 'tc
€jEl ElEtr w A ıa.flG
|7dt*ıl *lrt|
Flp] 0.Ğ'üĞ o5r13/2012
61a05.,l48
.V
tsıt
ı}
cürqİ@ıgılo&:
ısrı3
2or2
6.1tll+16
ru
A?rc
ta
uoör. ığrlov.ğ
R.d( o, sıot
ifıl€ f
5t@
ATlc 300ili\t 151 7 cPlJ
sElğm_hal6si_lapoll5ürıa\sl
'G t5t_7
(A), alt Ve üstteki satırlarda ise teşhis/tanl (W) metinleri yer almaktadır.
cPU
ııoduh aoo ocı4volA sr
ıo..ıd'l!t:
A6
3cOil li .l1:1
Bisiğm_hdia.Lrar.iamnisi,1A;lc 05,113/2012
05J8:o4.1lra
Fll
l6a45?F
STDP ca§€d
; aP!
co.rt!.{
by sToP
Br..leoht a U*f 9.ocİüt[ cycĞ FoFlrt! (o81)
Prir.ıy FE
dr§:
nuıDg:
1
a9
Tod,JDrdüa+r
42Ea
§irl.m_hatşs 6p! rhma'ıs iliAilc
30 0' 1
Pİevixli op.rrlhg nıoih: RUn n qge*ed a..a{iıg ltDde: sToP (İıern l)
Yukarıda "CPU Message" alanında o|uşan proses mesajının benzeri operatör panel ekranına yer|eştirilen "Alaım View" penceresinde de oluşur.
a
,ilİ,l]
a
]
7 aFt
fia6t a
slEMEtls
']:..
:
:
|| -a.
Donanım ayar|arı içerisindeki "Report System Alarm" ayadarında bir değişiklik yapılması durumunda hem donanım ayarlarının, hem de değişikliği uygulayacak program ve data bloklarının (FB 49, FC 49, DB 50) yeniden CPU'ya yüklenmesi gerekir.
252
Yavuz Emiaoğlu
Dil aya.dan Türkçe yapılmış ve metinde Türkçe karakterler kullanılmış bir alarm mesajının düzen|enmesi aşağıda gösterilmiştir. R.Port syst
qg}çpuş3c
rıEıoİ-
Ioserg,ı., Icpuıı te rkııtı |ırııoa. I Egı.d17 saıı sırrrr ı,ııı ınıqeı 17 GrE& iEı.q.ıfoiR lrl d trhcrt reİ.ilb
GğEc
ccrlart
'gjd6
sğıe,g
rat.!ag.
gapd
lil..ryoıııeıocı
|
alanIna allnan metinlerden (siyah) istenenler değiştirilir.
ılEae:
Hİıitdot
llEqĞ Tgı eD nurEriı riy.
lcpu*
rhenun6
Hata oluştuğunda mavi olan "<.. >" alanlar sistem tarafından okunup aktarılan bilgileri, ah olanlar ise bizi m ımız metinlerden ol r cn ıa.r!ıg.r
H. Eü ıtc YE
§l_d E[Eltr ]Fdİ| ilx?l A
lFpl
Idİ
oabiln
crrlı/2oı2 Gır:*,rüı5'
H
D 9ta
?
o
tIEra
r.y, 5
9stern_halns:_rĞpcrlönr a
0fl00/2012 03:36:ı6.3:ı6
n
.......
İıPrİ *tğ blf0üİtr
.s nnAT
ır..sgğtlPdlh
Yavuz Eminoğ|u
jc ]ıü'];iCP! 3]jc.2
!t
h.tao
ha
253
B.
"sTAcK" ALANLARıNıN KuLLANIMı
Bir hata sonucu CPU'nun stop konumuna gitmesi anındaki bellek alanlarının durumunu için "Stack"ler kullanılır.
Örneğin aşağıdaki gibi bir program yazıp, oB 1, FB 1 ve DB 5 CPU,ya yüklenmesine rağmen Dd ı yİrĞnmeoln, CpU anahtarı STop,tan RUN konumuna alındığında DB 1,121 alinına ulaşamadığı için sistem hatası (SF) ledini yakarak stop konumuna geçer. (oB yüklenmişse SF ledi yanar fakat stop etmez) o0ı : "lbin P.oEr..
fu: Iitlc
sNeep (Cy<ıC)'
ESIDI :,itıe El
Eıi,
fı
1o_1ıl
50-
ouİ Llıı
tt oUT
o0ı. Doa4
,o_Il,
lffiüla: ritı.: DB'
ııı
tı
tıl
)
) pencerede geçmemişse
Diagnostic Module lnformation Bu durumda daha önce anlatlldlğl gibi "PLC ile beraber Buffer" açılacak olursa CPU'nun açılıp kapanması olayları zamanları alanında da benzer olaylar listelenir Ve nedeni de görülebilir. Aynı sorgulanabilir. aktif değildir. Bir hata oluşup CPU stop konumuna "Diagnostic Buffer"da olduğu gibi "Stack" alanında da "Open Block" tıklandığında CPU'nun durmasına neden olan blok açılır ve imleç hatalı komutun olduğu satır veya Network'e konumlanır. ],-a,]
Pdı: Rcl_Eğtin\slMATlC sldrs: 0K
G€,Eüd
I
3mt1
oıuınsıic
Paloür,arEeDat6
B
|\Efu
31 4
IFM
opalditg
eıı€' 1 ıı"-n
|
co.^-;aır,
l
üü,ode
d ıtE
tFJ o
I
scğü C}cle TinE
sl-ks
"B stack" (Block Stack) alanında CPU'nun duruncaya çalıştırdığı bloklar listelenir.
lx STOP
r;"
sy"t",,
ldrntificdion
stok
Blel
lst DB
İE] FBl
l
fu08 L
stek.
cbN.
L
Udate
sld,...
HeıInl',la.|..
a.,
Open Blmk
ı"ıp
Prht,
I
"l Stacks" (lnterrupt Stacks) tıkland|ğında CPU'nun stop ettiği andaki bellek alanlannln (AcU 1-2-34, AR 1-2, status Word) içeriğini görme şansımız vardlr.
2g
Yatılz Eminoğu
Ömeğin yandaki "l Stacks" alanında görüldüğü gibi kesme "FB 1"in içerisinde oluşmuş Ve "ACCU 1" içerisinde "32" (HEX), "ACCU 2" içerisinde "30" (DEC) sayısı Varmlş. Akü içeriklerini istenilen veri tipinde gorme şanslmlz
l
vard lr.
stdck: Re8ister Contents in priority clnss (OB'
Ptit
ot
ix
)
R.d§b vatE+ d üE Pdi d ldğn
lri.lü!.dn
ffi,rğ
1.081
lİt.rnahd Bhck
FB1
Rğidğ
AmJ1
AcaJ FB1
3
AmJ+
DB. s6l6d6d
Dbcğ Fdnld
D€ciıl.l 8iı
ffm (uİl
H€fl
FloatiE.Pğı{
üm üm
oü
DJe
ı.İDB
fuOB
Add.Bcal:0.0
TiüIE
tlUıü.r
DB1
005
Add. Reg.2 DB 0.0
Time
sb. h Bıtcs|
2
0
o@
st İJ§
pid..
BR 0
SltlATlC Tiıne
CC1 1
0
0
0
t0
a
[n
irr.ö.inJ
0
1
tFc 0
0
H"b
l
iy io.ırııtİ
9: 11 m i9:(Ilm
5:üül
0
sğ,€As,
I
d
cEo oV 0s oB sTA
L Slack, Iocıl|-lal.ı of llB1
tEC Drl. B,b.
din
lH*---
lİx]2
AmJ2
0pü Bbct
cğrirrlimhB*
Vaı,
tıı
10
(ıı
fll
E8s uı(tr,ı5 mqı 3Bql a7 ,E71 üı
Aynı şekilde "L Stack" (Loca| Data Stacks) alanına girildiğinde kullanılan lokal alan içerik|erini görme şansımız vardır. Yukarıdaki resimde görüldüğü gibi ilk satırda "0 )9" baytlar ikinci satırda "10 l9" baytlar sıralanmış ve 3.bayt içerisinde (MW 2) "1E" (30) sayısının olduğu görülmektedir.
)
Yaıllz Emin€lu
255
Xı.
slMATıc s7 GRAPH
A. "GRAPH" NEDıR? "GRAPH", S7 300/400 PLC sistemlerinde kullanılan grafiksel bir programlama dilidir ve genellikle ardışıusıralı kontrol işlemlerin programlanmasında kullanılırlar. Ğörsel yapıda olmasından dolayı kolay bir programlama dilidir. Görsel programlama grafikler ya;dhı ile yapıldığından programclyl pk İazla komut, bi|gi ve ezber kullanımından kurtarmlş olur. "S7- CRlnX" programlama dili DlN EN 61131-3 (lEC 61131-3) standardı ile tanımlanan SFG "Sequentia| Function Chart" (Sıralı Fonksiyon Şeması) na kaşılık gelir. Buyapıda programı meydana getiren adımlar belirlenip, her adıma geçlş şartlan -lnO veya FBD ile sağlanabilir. sıralı kontrol sistemleri zAmana veya işleme bağlı olarak tasarlanabilir. zamana bağlı kontrol sistemlerinde sonraki adıma geçiş şartı; tanımlanan süre, sayma değeri vb. ile işleme bağlı kontrol sistemlerinde ise işlemin tamamlandığını bildiren sınır anahtarİ sensör vb. ile sağlanır. B. "GRAPH" ED|TÖRÜ oLuşTuRMA "Simatic Manager' programlamada "GRAPH" dilini kullanmak için ilk önce .Simatic Manageı"de bilinen yöntemlerle bir proje oluşturulur ve projeye bir FB eklenir. CÜNKÜ
,GRAPH, PROGRAMLAMA SAD EcE FB lLE KULLAN| LlR.
Not: PLC programlama için bilgisayanmıza slandart yazılım olan "S|MATIC MANAGER''|n yanı sıra'S7 GRAPH"ında yüklenmiş ve lisansının verilmiş olması gereklidir. Step 7'ye ait son versiyonlarda "S|MATIC MANAGER', "S7 GRAPH', 'S7 SCL'vb. aynı paket içerisinde kurulabilmektedir.
ctn+<
Ptc Prof6,ti5,
Ftxdn 8bd.
ii.;_Pn l |G.-d,Pd2|c* l^tücI
ı.n;
Fi-
FB'yi oluşturmaya çallştlğlmlzda karşımıza çıkan pencere özelliklerinden "created in Language"dan programlama dili olarak "GRAPH"ln seçilmesi gereklidir.
sTr-.r: uD= !] FnD
EfEE_l
Artık FB'miz 'GRAPH' dilinde açılmaya hazırdır. Yani FB'yi açtığımızda ka§ımıza "GRAPH" editörü gelir. Biraz sonra ayrıntılarını anlatacağımız FB'de -GRAPH" dili ile yazılan program kaydedildikten sonra herhangi bir program bloğu (OB1) içinden bilinen yöntemle çağrılır. Bizim FBl'i DB1 ile ilişkilendirdiğimizi düşünecek olursak OB1 içindeyken "STL" kodu ile "CALL FB1, DB1' komutu yazılır.
Yavuz Eminoğlu
257
E
R^Dlü
Fonksiyon bloğunun a kendisi (FB'l ), fonksiyon bloğu ile ilişkilendirilen özel data bloğu (DB1) ve rıo eı ıll EIer*., l!< ), trE|§EE l}+{] fonksiyon bloğunun çağrıldığı program bloğu E'Eiı E ıĞtrc*, 1 : GlaFh 1]e otuştını@, çağlaıEsı (OB1) kaydedilerek DB1 PLC'ye yüklenir yani PBl "Download" edilir. EEo EI{
uYğrrı,rA _ e\P,"gM Flkd§ği6\§A^gP,ti6r.9h-ry fi.00] slMATlc
E}
c Fa
Eör
hsl Rc
Dc,e.Cl5l* EG
==._.::lA d].fi
Bit logi<
B{İ cmP.r.tol d}- coNt t r d.a coudğ E O DB c,|l
fı
c. "GRAPH" DİLİNİN BiçİMsEL YAPlsl "GRAPH' programlama ardışlk işlemlerin programlanmasında kullanılan grafik bir programlama dilidir. Ardlşık işlemlerde olaylar adlm adlm gerçekleşir, her adlm bir bütündür ve Üç bölümde incelenebilir. Bunlar; adımın kendisi, o adlma girmek için gerekli şartlar, o adımda gerçek|eştirilecek işlemler. Giriş
şartlan Adımlar s2 §ep2
,
l0.0
T2
Çlkşlar Step2 N
/
Adlm numarasl
Q 0.0
opgrasyon
operand
Grafiğin sol tarafında o adlma girme şartlarl gösterilir ve bir önceki adlmla "VE" mantlğl ile bağlıdır. Yukarıdaki şekle göre, bir önceki adım (S't ) aktif ve "l 0.0" girişi '1" ise "S2" adımı aktifleşir. Bu adımda yapılacak işlemler sağ taraftaki dikdörtgen alanının altına açılacak operasyon ve operandlarla gösterilir. Yukarıdaki grafiKe gösterilen adım numaralan (Step2) o adıma ait tanımlamalaıdır ve gerektiğinde silinip anlaşılabilir ifadeler yazılabilir. Online konumunda çıkışların sağ tarafında oluşan kutucuklar içinde o çlkışın durumu '0-,1 " şeklinde izlenebilir.
'GRAPH" programlama lineer mantıkla çalışır. Adıma girme şartları sağlanmış ve adım aktif ise, adlmın sağ tarafındaki atama kutucuklarlnın içinde yazllan çlklşlar slrasl ile işlenir. "GRAPH" programlamada adımları oluşturacak mantık bağlantıları LAD veya FBD ile (Menü ) View ) LAD/FBD) yapılabilir. Bunlar biraz sonra ayrıntılı anlahlacaktır.
258
Yavuz Eninoğlu
a Flİ fi
lEt
Pfc
DİrE]5l.--- iİ
fuĞ i.
0
a
Ejl
Block
I ç
"GRAPH" ile
i.el-FF] ı E]E q programlanacak FB
ı? ztx
Jd/ !< }!
açlldlğlnda 'l.adım ("S1" Step1) kendiliğinden açık gelir. Eğer o adımda bir işlem yapılacaksa sağ taraftaki çıkış/atama alanı olan dikdörtgen alhna yazlllr. Çlklş alanının eklenmesi için ilgili alan seçilerek "Menü ) lnsert ) Action" ile eylem alanı
comment
.
s1
step1
step1
İ
E
a
rans
*
oluşturulur.
Eklenen eylem (Action) alanlna kodlar direkt yazılabileceği gibi ilgili alanın özellikler Penceresi (Action Properties) açılarak ta yapılabilir. Bunun için alan seçili iken fare'nin tuşu ile açılan listeden "Object Properties" veya ''Edit Object Properties'' seçilmelidir.
)
T9
s1
Step1
Step1 ı
1-slepa
0Fdof
lN-
N
Q0.0
r-1
1
slFttsion ğlol .nlding ğdts -s,a€rrisbn aor led/iE dat - lnıalo.k coidbn b.Yinq sl*e
cut
ct.l+x
1
.AckE+l€dg'üE
coPy
cğl+c
_
0
-lded..t
crüdi
B1
İ
leavng §lats
'ğ
.l+.rüsin e,o,
Delıi. Go
N
.
Addle
T D.E*
hğı sicıd -
oi
Edit
1
D€l
To
ryhbok
,.
ctrl+Alt+ Retu.l
obj..r P@P€rti6..
iıahck ıcg,dirıa0
oK
C]AIL-Blo.kbc# D-Oelay.d L. Limited ttiEl
Eylem alanı içerisine yukarıda ayrıntıları gösterilen listelerden hangi operandın, hangi operasyonla oluşturulacağı seçilir Veya yazlllr.
"operatoı"' alanlndaki "Depends on interlock (conditİonal)" kutucu işaretlendiğinde "Action ) operator" alanlnda seçilen komutun sağına "c" eklenerek (Nc, sc, Vb.) aynl komutun biraz sonra anlatacağlmlz "lnterlock" şartlna bağlanmasl sağlanlr.
Yaiuz Bminoğlu
259
,,operator
)
|nstruction" bölümüne yazılacak standart operasyon sembolleri ve
anlamları şunlardır
pP ERATıoN oPERAND AçlKLAMA
Adım aktif olduğ u sürece Q 1.0 Sinyali = 1 Adım aktif olduğ u zaman Q 1 .0 çıkışı setlenir ,1.0 Adlm aktif olduğ u zaman Q çıkışı resetlenir
Q 1.0
N
s
Q 1.0 Q 1.0 Q 1.0
R
bölümünde belirtilen süre (T#Ss) sonunda o 1 0 s n ya 1 T# bölümünde belirtilen süre (T#'t50ms) boyunca Q 1.0 T# Q 1.0 Sinyali = 1 BLOü l.q! Adım aktif olduğ u zaman belirtilen BLOK (FC't) çağnlır
D
L
cALL
"Operator
)
Event" bölümüne yazlacak olay sembolleri ve anlamları da şunlardır
oLAY slNYAL şEKL|
tr] s0 V1
V0 L0 L1 A1
ADıM oLAYl
yükselen kenar Adlm aktif (Gelen) Adım aKif değil (Giden) DüŞen Kenar yükselen kenar Hata gözlemcisi (Sup ervision ) devrede (Gelen , Hata Var) Hata gözlemcisi (Sup ervision ) devrede değil (Giden , Hata Yok) Düşen Kenar yükselen kenar Koşul gözlemcisi ( lnterlock ) devrede değil (Gelen , Hata Yok) Düşen Kenar yükselen kenar
Koşul gözlemciSi ( lnterlock ) devrede (Giden , Hata Var) Supervision hata onay ı (Gelen , Hata Onaylandı) Eklenen adım (Step) alanına ait düzenlemeler ilgili a|anın özellikler penceresi (Step Properties) açılarak yapılabilir. Bunun için alan seçili iken fare'nin sağ tuşu ile açılan listeden "object Properties" veya
Fs2
p2
Step2
0.1
Eeiİ Eu
|EsğEsffiı6d
dıa. @§E ffi
p6tn
dşd,
h,*d .i..{i]
"Edit ) Object Properties" seçilmelidir.
rans s3
l
step3
c-,.a
|
ıı+
|
"lnitial step" kutucuğu onaylandığında, o adım başlangıç adımı olduğu kabul edilir. Ön ayarlarda "Step,|" başlangıç adımıdır. Ancak istenirse değiştirilebilir. "lnitlal step" kutucuğu onaylanan adtm program bloğu devreye allndığlnda otomatik olarak, veya daha sonra anlatacağımız "lNIT_SQ" parametresine ait sinyali uyarıldığında aktif olur. Ancak başlangıç adımı genellikle bir işlemin yapı|madığı sistemin çalışmaya hazır durumda beklediği adımdır. Bu adımda sistemin çalışmaya hazır olduğuna ait uyarı lambaları konabilir veya bazı çıklşlar resetlenebilir. 260
Yaü,uz Eminoğlu
Prc
VE s?
TIC s?
Yukarıda yapılan adıma ait düzenIemelerden sonra ilgili adlm yandaki gibi görünür.
,
I0-
Presleme drşar r 1
s
silindiri
Q0.1
rans
(59mu! + Adres) ve adım alanına ait özellikler penceresi açılmadan da üzerinde . Fy|eT gerekli değişikliklerin yapılmasına izin verir (Monitor konumu hariç). vaııı t"re i.ıeci i|gıli alanda iken operand ve operasyonlar direkt yazılabilir. sadece aJima ait açıklar" .Jtninın özellikler penceresi içerisinden yazılması geİekir. T1
s1
step1
E.dı9riöolJ,
step1
Dğb
N
sLEl"]!
8oot
rans Tı.
52
ADIM
presleme
2
drşarı s
siI
q,t 0K
[&
.6 add.d ıdl Er d iAdy'
ı"*
|
Q0. 1
rans
o'l.c
3
s3
step3
Adres bilgisini ister sembolik ister mutlak olarak yazmak Veya birini diğerine dönüştürmek
i..-1,.".ı
Dpr
mümkündür. Ancak sembolik adresin kullanılabilmesi için sembol listesinin oluşturulmuş o|ması gerekir. sembolik adres
direk yazılabileceği
gibi sembol tablosu içerisinden de eklenebilir.
step3 N
Q0.2
Bunun için adres a|anı seçili iken fare'nin sağ tuşu ile açılan listeden "lnsert symboı'' tıklanarak, veya imleç alanda iken klavyeden bir tuşa bastığımızda açılan sembol tablosundan istenen sembol seçilerek onaylanır. Diğer programlama dillerinde olduğu gibi sembo| tablosunda olmayan bir adres program alanından da sembol tablosuna eklenebilir. Bunun için yine adresi yazılmış alanda faie'nın sağ tuŞu ile açılan listeden "Edit symbols" ile açılan pencerede gerekli alanlar doldurularak sembol tablosuna ilgili adrese ait sembol eklenmiş olur. Diğer programlama dillerinde olduğu gibi sembolik/mutlak veya mutlaUsembolik adres dönüşümü sağlanabilir. Bunun için ya araç düğmeleri içerisindeki ..Symbols'' düğmesi veya Display with "View Symbols" seçimi değiştirilir.
)
)
Yavuz Eminoğlu
261
menüsü alt|ndaki Bir sonraki adıma geçiş şartlnın hangi dil ile yapılacağı "View" veya "FBD" seçimi ile sağlanır. ı ft
Edit
DarCl
c I
E
ct l*K
i.
singl. steP
PffiEnt
s
=]
El
FtrLtr
,,LAD"
ElEqn
In§tru
l:
T1
step1
s1
Step1
..'
fi |+
, I0. 0 l____
Ğ
LAD EBD
N
Q0.0
rans
)
)
Step+Trensition" (Veya _ lnsert Bir sonraki adıma geçebilmek için "Menü Step+Trensition") Step+Trenliİon" veya sağ tuş "lnsert New Elements "TooIbar ile yeni bir adım bklenir. Yeni bir adjma g-eçebilmek için, bir önceki adımın aKif olması ve yeni adıma geçme şartının sağlanması gereklidir. yöniadıma geçme ğartı diyagiamın sol tarafında ve az önce anlattığımız seçime bağlı LAI) Insert olarak LAD veya iab ile eklenir. Bunun için aşağıda gösterilen "Menü gerekli veya kontak (And ile Box)" Normalıy open contact (FBD) Langujge Elements kapı bağlantıları yapılır.
)
)
d,
!<
)/!
l?
İ0.
l i.E
1ox
d, l
!<
lı?
),ı
l
1ü
I0.0
l--ı n
a
Kontak Veya kapı bağlanhlarını eklemek için default ayarlarda "GRAPH' editörünün so| tarafına yerleşen "TOOLBARS" içerisindeki "LAD-FBD" araç düğmeleri de kullanılabilir. Default olarak hangi dilin Application kullanılacağı "Options Seftings" menüsü altlnda "conditions in new blocks" altlndan "LAD" veya "FBD" seçilebilir. 262
u=J
offi-
@
)
)
)
)
ptc
_
El
ı R& frİt D
lrı6gt
Ptc
D.bug
y,a,
İEEl5lıİ1 , Cz,ls b6
c
j
oPairıs whdory H.l9
'{
Efl
-
l6f
| !< >)!
\
9
F
tE
r l,|E,ffiFiıl*iEi iıEi]
Yaurz Erninoğu
I0.0
E
|\?
"GRAPH" PROGRAİUILAMADA KULLANİLAN SEMBOLLER
I
E
STEP
+
TRANslTloN
JUMP OPEN ALTERNAT|VE BRANcH CLOSE ALTERNATİVE
E E E tr
E E
I _{:j
eni bir adlm Ve bir sonraki adlma geçiş şartlnl ekler.
Aynı FB içerisi nde ve aynı veya farklı slralaylcl içerisindeki bir adlma s|çrama yapal. Hatta altematif slralaylcl hattl ekler
Altematif sıralaylcı hattını açılan hat ile birleştirir
BRANc oPEN sıMuLTAİ,lEous Hatta paralel slralaylcl hattl ekler BRANcH CLOSE S|MULTANEOUS Paralel slralaylcl hattlnı açllan hat
BRANGH
ile birleştirir.
BRANCH STOP
Sıralayıcı hattlnl sonlandlrlr.
İNSERT SEQUENCER
Yeni bir slralaylcl hattı ek|er
|NSERT PERMANENT
"Graph' programından bağıms|z program kodu alanı ekler.
coNDlTloN lNsERT PERi'ANENT
cALL
"Graph" programından bağlmslz program bloğu çağlrma alanl ekler.
İNSERTACTİON
Çlkış atamalarlnln yapıldığı alanl ek|er.
lNsERT suPERvısloN
nME (r)
lNsERT suPERvısloN
n]rE
(U)
SİNGLE STEP
_El SEQUENCER DİSPLAY TOGGLE CONDİT|ONS EJ AND AcTloNs oNroFF
Zaman fonksiyonudur. Bulunduğu adIm aKif olduğunda bu zaman elemanl ileri yönde çalışmaya başlar , alt adlma geçince durur. Adım tekar aktif olunca yeniden çahş maya başlar.
zaman fonksiyonudur. Bulunduğu adlm aktif Ve "lnterlock" Varsa bu zaman elemanl ileri yönde çalışmaya başlar. "lnterlock"
kesildiğinde zaman durur, gittiğinde kald ğı yerden devam eder. Sadece seçilen adımı gösteren ekran açar. Burada "Supervision' Veya "lnterlock" işlemleri yapllabilir. Programdaki bütün adlmlarl gösterir Adımlara ait bütün parametre|erin (giriş Ve çlklşlar) göründüğü
durumdur.
Yıırlz Eninoğlu
263
\T s?
Prc D.
SIMATIC s7 GRAPH
300/400_2
"GRAPH" PROGRAMİNİN KAYDEDİLMESİ VE YÜKLENMES|
"GRApH" programlama dili ile oluşturulan fonksiyon bloğu kaydedilince işletim sistemi otomatik olarak derleme işleminide geraekleştirir yani hata ve uyan durumunu bjze aktanr yüklenmesine izin vermez. çview ) Details,, alanlnda). Hata olduğu sürece de programln
jlİl
ilel GRAPE IIYGULAHA\SII'ATIC 3oo (ı} \CPo 315F- 2 PN/DP\...\EBs, DBs - o erİoİs formd, no waEnings foünal.
ığE
)
Vai*|.s
/D
}l
A&laaat
FolEd Cıgş
Rtrffi
B#C.§R*i.E
Yukarıdaki derleme sonucuna göre program e ksiksizdir yani hata ve uyarının olmadlğl durumdur.
i
iıe:
GRAPn IIYGfrInğA\ sImT IC 300
!ıors occutred
(r)\cPğ 3ı5F-2 Pİ/DP\...\EEs, DBs - i
eıenant. r >>> T3 githouE 9ub5 aİning >>> (s2} rriEhouğ coDEeDts. error(5} found; 1 lrarning(s} foünal
ll l
}l
C
Vdiü..
M
npile / D
Frınd cıçe
btg
sd§Ed
fu. R*cE
5
^düğ6.*
yukarıdaki derleme sonucuna göre de programda bir hata (sonlandırma yok), birde uyan (ilgili adlmda iş tanlmlanmamış) durumu vardır. lşletim sistemi der|eme (Kaydetme) sırasında fonksiyon bloğu ile ilişkilendirilen bir data bloğu oluşturup p@eye ekler. Bu data bloğunun numarası default olarak FB ile aynı nuıiaradıi. Aynı zaminda özel fonksiyon bloğu olan Fc7l,Fc72veyaFC 73 ile SFC 64 projeye eklenir, 'src 64 programı cPU "RuN" konumuna allndlktan sonra işlemci saatini çallştınr. Bu zaman elemanı PLC stop konumuna gelince resetleniı. FC71,2-3 ise zaman sorgulamalarını sağlar. Bu FC'lerden mutlaka biri olmalıdır.
' '
FB5
F
o*rıb.d slh
idre
F
..a!E
DB
o4nlodlo tE iİtdE Dğ 3ir, ıhe €qEE ıo i. rlid d.ı. .n shld d{, b6 6lid oJ *t6 ÜE eqFl6 § ,İı Tm ot tE
td@ doaib.d
l6{deDB:
F
DNıo.d 9ı slddğd Fc
ı
§
.land4d Fc
ıt6gy
ıo
F@*
ÜE
..qFE
F.-0K
264
Sağlıklı bir şekilde derlenip, kaydedilen program bloğu yüklenmeye çalışıldığında kendisi ile ilişkilendirilen özel data bloğunu ve FC 71l72t73'ide yüklenme durumunu sorar. Eğer seçilerek onaylanırsa hem data blok hem deFC7lt72l73 CPU'ya yüklenir. otomatik olarak oluşturulan data bl€un numarasl değiştirilecek olursa projeye değiştirilen numa.rada bir data blok daha eklenir ve CPU'ya o yüklenir. Once oluşan data blok projede (PC'de) ve CPU'da kalır.
FC 71l72t73'in seçimi CPU tipine ve rezerve edilen
c-_ı
| ıee
bellek alanına bağladır. I
Yavuz Eminoğlu
E. "GRAPH" PRoGRAMLAİ'ADA zAirAN KuLLAN|Mı 'GRAPH' programlamada üç yöntemle zaman kavramı kullanı|ır. Birisi adımların zamana bağlı kullanımı, diğeri zamanlayıcı kullanma bir diğeride '.lnterlock'' ve "Supervision" zamanlarını kullanmadır.
s2
step2 I0 -2
Q0.1 Q0.4
N D
2 ranS
Q0. 4
Adımların zamana bağlı kullanımı standart operasyonlar içerisinde açıklandığı gibi "D" ve "L" operasyonları ile yapılır.
step2 T#3s
2
"Action" alanındaki operasyon alanına "D" ve "L" operasyonları yazıldığında kullanılacak kontak çıkışı ve istenen süre yazılır. "D" zamanlayıcısı adım aktif olduğu andan itibaren belirtilen süre sonunda (ON DELAY) kontak çıkışını "1" yapar, "L" zamanlayıcısı ise belirtilen süre boyunca (PULSE) kontak çıkışın| "'|" yapar. Zaman dolmadan adım deaktif olursa bu zamanlayıcı çıkışı da silinir. T# (T#8D1
= nD nH nM nS
nMS
Yanda ile gösterilen değer yani zaman değeri yandaki gibi yapılandırılmalldır. Burada kullanılan zaman değeri "lEc Time" formatındadır. Yani 24 gün 20 saat vb. süre atanabilir. Ömeğin; T#2H'l0M3OS, T#sM, T#125, T#5S150MS vb.
H3MsssOMs) :n Gün :n Saat :n Dakika :n
Saniye
:n Milisaniye
Standart operasyonlafln dışında iki tip zamanlayıcı daha kullanılır. Bunlar; TL: Uzatılmış darbe: Adım aKif olduğu anda çlkış verir, ayarlanan süre sonunda çlklş silinir. Zaman dolmadan adlm deaktif olursa bu zamanlayıcl çıkışı da silinir. TD: Hafızalı açmanın gecikti]ilmesi: Adım aktif olduktan ayarlanan süre sonra çıkış verir ve çıkış hatvaya alır. Adım deaktif olsa bile çıkış sinyali setlenmiştir. Çıkışın silinebilmesi için "TR" girişi ile resetlenmelidir.
s1 step1 1 Trans
a
N
tr fuiE dd. slldM d lJiE Jd. ğüii l4fu.ı* ,hdd( @İfuülME dd. .A.tD/..üEr .FİiiO @ ,
s1
R
s,+6Yii,l
-
.|nü..*
El
'o
1
s2
step2 2 Trans
N
?
0(
tld d.lğ llh'i]ıid 6,ığ v*i"
,)
Ti.
DeraEd 0n
lldğliE
r *Jğl
ı
Daha önce anlattığımız gibi "Action" alanına zaman fonksiyonuna ait kodları direkt yazabileceğimiz gibi "Action"un özellikler penceresi açılarakda girişler yapılabilir. Ömeğin yan tarafta ilgili adım aktif olduğu andan itibaren "TL" zamanlayıcısı eklenmiştir.
NOT: Yukarıdaki "lnstruction" listesinde bulunan "ON" fonksiyonu, bağlanılan adımın tamam|ama sinyali varken adım aktif edilirse, tanımlanan adımı (S?) aktif eder. Bir çeşit sıçrama komutudur. "OFF" fonksiyonu ise tanımlanan adımı deaktif eder.
Yavuz Erninoğlır
265
2
Ekleme sonrasında zamanlayıcı numarası ve zaman değeri girişi manuel olarak yapllmalldlr.
step2 Q0.1
N T2
2
51 TL T2
s5T#5s
ran5
Burada kullanılan zamanlayıcı Siemens yapısındadır. Do|ayısı ile zaman değeri "ssTlME" formatındadlr. Yani maksimum 2 saal46 dak 30 sn süre atanabilir. Zamanlayıcı T256) numarası ise CPU tipi ile sınırlıdır. (T1
)
s2
step2
Lj'r-,
Yan tarafta 2.adım aktif olduktan 5 sn sonra "T3" zamanlaylclslna ait kontak çıkışı "'t " olmuş ve 3.adıma geçilmiştir. Ancak 3.adıma geçilmesine rağmen "T3" kontak çıkışı silinmez. "T3"ün "TR" komutu ile resetlenmesi gerekir. Burada da 3.adımın çıkışına "TR" bağlanmış resetlenmiştir.
step2 Q0.1
N
s1
2 rans
TD T3
s5T#5s
2
s3
Step3
step3
, r0.3 l---ıı-----
Q0.5
N
sl
3 rans
TR T3
'Graph" programlamada bir diğer zamanlaylcl kullanma yöntemi ise adlma ait "lnterlock" ve "Supervision" zamanlann ("T" ve "U" sürelerinin) ka§ılaştınlarak işlem yapılmasıdır.
!
Tlıı.
0o2
Bunun için araç düğmeleri içerisindeki "lnsert Supervision Tlme T" veya "... U" düğmesi tıklanarak istenen şart alanına eklenir. Bu bir kaşılaştırma fonksiyonudur ve default olarak 100 ms değeri ile kaşılaştırma yapılmıştır. Bu süre istenen değer ile değiştirilerek o süre sonunda şart sağlanmış olur.
-
T*10
|,
Io.2
Jl
yan taraftia adlm çalışma süresi (T) sorgulanmıştır. Bir sonraki adıma geçiş için ya "l0.2" sinyali gelecek ya da "S2" adımı "10 sn" aktif olacaktlr. Bu yöntem ile "U" süresi ise o adıma ait "lnterlock" süresi toplamldlr.
266
U: T:
T* 6s591ıns T#
6s591ms
steP2 N 00.1
s002.T,-,i >
i
'*'o"-,]._..-.j
I0 .2
Yavuz EEinoğlu
rans 2
n
PLc PRcx]RAMr
VE s7
300/400_2
s7 GRAPH
UYGULAMA: Start butonuna basıldığında silindir piston kolu dışarl çıkacaktır. Tamamen dışarı çıktıktan 3 sn sonra içeri girecektir. Tamamen içeri girmiş ve start butonuna yeniden basılmışsa piston kolu tekrar dışarı çıkacaktır.
Pres -lo2 o0.0
1]
L
o0.1 -l0.,|
AıliG[l DATATlP AçıKLAirA start Pres çallştlrma butonu l 0.0 BooL Pres başhğl aşağlda sinyali l 0.,| BooL pres3ukarida l0.2 Pres başllğl yukar|da sanyali BooL pres_asagiya Q 0.0 Pres başhğl aşağlya çlklşl BooL pres3ukariya Q 0.1 Pres başhğl Wkanya çlk|şl BooL
sEMBoL
T3
,
'5tğİt'
Başlanglç
'P..._ ydİ.İ.ida'
aans
Pİes aşağr. haİeket "Dres asaqiva"
s2
step2
N
2
İans Bekleme ve !.ukaİ1 hareket
s3
step3
D
'pİes yüıkaİiva"
T
3
*5s
İans
Örneğimizde; ilk hareketimiz start butonuna basılması ile dışarı yönde hareket eden piston koludur. Dolayısı ile ikinci adıma geçme şartı, '1 .adım' (S't ) ve start butonu (l 0.0) varsa "2.adım' aktif duruma geçeceKir. "2.adım'da silindir piston kolunun dışarı çıkması gerekir. "2.adım" aktif olduğu sürece, piston kolunu dışarı çıkaran çıkışın aktif olmasl gerekir. Bunun için o adımın çıkış bölümüne ilgili operand (Q 0.0) uygun operasyonla (N) yazılır. Silindir piston kolunun dışarı çıktığı "| 0.1" sinyali ile belirlenir. Dolayısı ile "2.adım" aktif ve "l 0.1" sinyali varsa "3.adım" aktif olacak ve 3 sn sonra piston kolu içeri girecektir. Bunun için çıkış alanlna, adım aktif olduktan belli bir süre sonra çlklş Veren operasyon "D" ve operand 'Q 0.1' yazılır. O adımın tamamlandığını bildiren "| 0.2' sinyali geldiğinde sistemin baş|angıç konumuna döneceği anlaşılır. Bunun için ''1 .adım (S1)"a dönülmesi gerekir. Döngü için adım lnsert Jump" ile dönü|ecek adım numarasl yazllır sonundaki hat işaretlenerek "İ{enü Veya şekil değiştiren imleç ile beraber dönülecek adıma tıklanır.
)
)
YatıJz Eminoğlu
ü7
F. "GRAPH" PRoGRAMLAMADA sAYlclLAR C256" arasında Burada kullanılan sayıcılar standart Siemens sayıcılarıdır. "Cl değeri içeriğinde bir sayma ve 999" arasında sayabilen numaralandırılabilen, "0 olduğunda kontak çıkışı "1" olan sayıcılardlr.
)
)
Herhangi bir adlma ait
E3
Fl
§1
step1
"Action" alanına ait özellikler penceresi açıldığında "Operatör ) Event"a bir eylem atadıktan sonra "lnstruction" alanına "C?"
-
1 ran
ile aşağıda ayrıntısını verdiğimiz sayıcı fonksiyonu eklenebilir.
0K
s2
step2 2
.
N 2
Q0.1 .>
12
L.n
d,ra
TD
.IiE 0d6d
=
*ih o
lL-lEfuldffig&,
0n
tl&liEo.1dğ)
rans CS (Sayıcı set): Sayıcıya bir ön değer yükler. Sayıcı bu değerden itibaren "CU" ile yukarı, "CD" ile aşağı sayar. CU (Yukarı sayma darbesi): Bu sinyal her oluştuğunda sayıcı içeriği bir artar.
S]- CU C1
CD (§ağı saytna darbesi): Bu sinyal her oluştuğunda sayıcı içeriği bir azalr.
S]- cD Ç1
CR (Sayıcı reset): Bu sinyal oluştuğunda sayıcı içeriği sıfır|anır ve kontak çıkışı silinir.
s1
26a
Yavuz Eminoğlu
CR C1
7
G.
"GRAPH" PROGRAMLAMADA KARŞİLAŞTİRİCİLAR 'GRAPH' dilinde kaçılaştırıcılar 'l6 veya 32 bit tam sayılar ve virgüllü sayıların (Real)
.karşılaştırmasını
yapabilirler.
karşılaştırma kutusunu kullanarak yapacağımız kaşılaştırmalar herhangi bir bellek alanı içeriği (giriş (lnputl), 9kış (QuitQ), Merker (M) ve dita blok verileri (DBi.DB??) Veya sabit sayılar (tam veya virgüllü) olabilir|er. Aynca bilindiği gibi 16 Bit veri için lnteger (lNT), 32 bit veri için Double lnteger (DlNT ' yeyq D) ve Virgüllü sayllar için Real (R) kullanırız. Kaşılaştırma kutusunun ise tiğini belidemek için "cmp" yazısının alhnda kalan bölüme, hangi işlemi yapmak istiyorsak yani "==,.<, <=, ş, >=" gibi yazdıktan sonra "l, D yada R'diyerek belirtebiliriz. (Ancak onaylandıktan sonra veri tipleri doğru ise veri tipi sembolü silinir, yanlış ise kıimızı olur.) unutulmamalıdır ki kaşılaştırma kutusu her zaman ilk girilen değer (üst sırada) ile . ikinci girilen (Alt Sırada) değeri (AKÜ 2 - AKÜ ,1) karşllaştlnr. Ömek verecek olursak ">=" gibi bir karşılaştırma yapıyor olalım. Karşılaştırma kutusu ilk girilen değer, ikinci girilen değerden büyük veya ona eşit ise çıkışını "1" yapar aksi bir
durumda ise çıkışını "0" yapar. Karşılaştırma girişini eklemek için, ilgili giriş alanı işaretlenerek ''Menü lnsert LAD/FBD Language Elements GomparatoC' ile karşılaştırıcı eklenerek, kaşılaştırılacak değerler (???)ve karşılaştırma şekli (>) girilir.
)
)
)
karşılaştırma fonksiyonu olarak; üst girişe yazılan bellek alanı içeriği veya sabit sayı, alt girişe yazılan bellek alanı içeriği veya sabit sayıdan, : eşitse :büyükse : büyük veya eşitse :küçükse : küçük veya eşitse
> >= < <=
çıkış sinyali oluşur.
Ömeğin; Start butonu ile
T3
si|indir piston kolu dışarı
çıkıp parçayı sıkıştıracak ve sıkma basıncı bizim istediğimiz seviyeye gelince parça serbest bırakılacaktır.
1
t-i----_, s2
N
o124.0
Start
: l 124.0 Parça serbest: l ,l24.'| Basınç sorgulama: PlW128 Basınç miktarı: DBl.DBwo
s3
I
t-i:-----,
Yaıılz Eminoğlu
N
3
s1
269
sIMATlc
AMI.AMA VE s7 jOOıl{n-2
Prc
7
GRA?H
"GRAPH, PROGRAM LAMADA PARALEL VE ALTERNAT|F HAT
H.
1. PARALEL HAT EKLEME (Simultaneous Branch) .Graph,, programlamada ardlşlk kumandanın herhangi bir adımından sonra aynı anda birden fazİa nİt olıiıte takip edibb]lir. Bunun için adım altındaki alan (i??) seçili iken "Menü open" ile (Veya araç düğmelerinden "open lnsert Simultaneous Branch Simultaneous Branch") yeni hat açlllr ve hatta bir adım eklenmiş olarak gelir. o adım ve o lnsert hattia eklenen diğer adımlİra ait gerekli dÜzenlemeler yapıldıktan sonra ''llienü simuıtaneous (Veya düğme|erinden araç "close ile Glose,, simuıtaneous ğranch Branch,,) paralel hat açllan hatta bağlanır. llgili menü veya düğme seçildiğinde imlece eklenen kapama sembolü hangi adımdan sonra bağlantı yapılacaksa o adlm markalanır.
)
)
)
)
)
T3 §1
step1 ,
I0
step1 N
lao.0
1
rans
s7
5tep7
t--r
5
step7 s lo0.4
6
s8
s2
5teP2
step2
N
|Q0.
Yandaki programa göre "S1 " altına bir paralel hat ve "57" adımı eklenmiştir. ,| .adlmdan sonra gelen "l0.1" sinyali 2. ve 7. adımları aynı anda aktif etrnektedir. 7.adımda gerçekleştirilen "Q0.4" çıkışı ve bununla elde edilen "l0.5" sinyali ile 8.adım aktif edilmiştir.
aan5
step8
)
step8 s Q0.5
r
Aynı anda 2.adımda "Q0.1" çıkışıda aktif
olmuştur.
Yani "Q0.1" ile "Q0.5" çıkışlan birlikte iş yapmaktadır. Her ikisininde işini tamamladlğını bildiren sinyal geldiğinde bir sonraki ad ıma (3.adım) geçilecektir.
Bir "Graph" programına 249 adet paralel hat eklenebilir. Paralel hatlar bir|ikte çalışırlar, yani program aynı anda birden fazla paralel hat içerisinde tanımlanan programları birlikte çallştlrır. Paralel hatlar aynldığı hattıa olan ve ayrıldığı adımdan daha sonraki bir adım ile bideşmek zorundadır. Paralel hatlardaki bütün adımlar fonksiyonlarını tamamladığında ana hat adımı aktif olabilir. Her paralel hat program bloğu içerisinde bir "VE" fonksiyonudur. Hatta eklenen paralel hatlarln tamaml görevini tamamlarsa program kaldığl yerden çalışmaya devam eder.
270
Yaı,uz Emiaoğu
2. ALTERNATİF HAT EKLEME (Alternative Branch)
Ardışık kumandanın herhangi. bir adımından sonra oluşacak durumlara bağlı o|arak farklı yollardan biri takip edilebilir. Ömeğin parçanın boy öQİmü yapıldı; sağlamİa de|ik delinecek, bozuksa ahlacak. Bunun için altematif dal seçimi yapılmalıdır. Bi amaçla bulunulan adım seçili iken "Menü ) lnsert ) Atenative Branch ) open'' ile 1üeya araç düğm_elerinden "open Altemative Branch") yeni dal açılır ve oraya yeni bir adım/sıçrama hedefı/v.b eklenir. o adım ve o hattia eklenen diğer adımlara ait geiekii düzenlemeler yapıldıktan sonra "lrenü ) lnseıt ) Altenative Branch ) G|ose'' ile (Veya araç düğmelerinden "close Alternative Branch") alternatif hat herhangi bir adım i|e bağlanır. llgili menü veya düğme seçildiğinde imlece eklenen kapama sembölü hangi adımda-n önce bağlantı yapılacaksa o adım markalanır. Alternatif hat bir sıçrama komutu lJump) ile numarası.verilen herhangi bir adıma gönderilebilir (Aşağı resimdeki gibi) veya hii'.Branch stop" ile kapatı|abilir.
s2
step2
t--]
Step2 lo0.
!
,
1
7
rans
s9
steP9 ,To
L,
step9 Q0.4
8 ran9
1 ao -2
|-;ı-----,
i2
Ians
s.? step3
step3
N
Örneğin yan tarafta 2.adımdan sonra "l0.2" sinyali geldiğinde program 3.adımı aktif edecektir. "l0.4" sinyali ge|diğinde ise 9.adım aktif olacak "Q0.4" setlenecektir. "Q0.4"ün görevini tamamladığını bildiren "l0.5" sinyali geldiğinde ise program "Sl"den yani 1 .adımdan programına devam edecektir. 3.adımdan itibaren ise program farkh işlevler yerine getirmektedir.
|Q0.2
Yukarıdaki programda "T8" alanı seçilerek "Jump" komutu eklenmiş ve.'S1'' seçilmiştir. Eğer "T8" seçildiğinde "Close Alternative Branch" eklense idi istenilen adım ile bağlanh yapılarak programın o adımdan itibaren devamı sağlanabilirdi. Ancak..T8'' alanı seçilerek "close branch" eklenirse o hat kapatllmlş o|ur Ve programın devaml ancak "lNIT_SQ" sinyali ile sağlanabilir. Programa 'l25 adet altematif hat eklenebilir ve eklenen altematif hatlardan sadece birisi çalışır. Eklenen her alternatif hat ya aynldığı hatta ait daha sonraki herhangi adımı birleştirilmesi ya slçrama fonksiyonu ile herhangi bir hattın herhangi adımı ile birleştirilmesi veya kapayıcı ile sonlandırılması mümkündür. Her alternatif hat program bloğu içerisinde bir "VEYA" fonksiyonudur. Yani hatlardan birisi görevini tamamladığı sürece program çalışmaya devam eder.
Yaiuz EniDoğu
271
,7
(1)
(3}
(2,ü
T4
T4
T1
T1
T5
r2
12 T3
r2 s3
s4
s,l V
T4
s6
T8
s8 T9
T6
s6
T3
T3
s4 T4
s5
T6
s3
T5
T,1
s5
s2
s7
s,l
s1
s,|
r4
T11
I7
T10
s10
s4
T,l1
T4
s7
s1
s1
Yukarıdaki gösterimde;
l) Lineer hat; program ..s1,, adımından başlayıp, ,,S4"deki görevini tamamladığında, "S1"
abımı ile programına tekrar devam edecektir. "T4"den sonra "Jump" komutu kullanılarak programln "Sl"e sıçraması sağlanmlştlr. ,,S1,,den başlayan program elde edilen sonuca göre 2) Alternatıf ve pa]alel hat;
"S2" veya ..§5'' adımlarından birisi ile yoluna devam edecektir. Herhangi birisinin görevini tamamlaması ile ''S3" adımı aktif olacaktır. "S3"ün görevini tamamlaması ile "S4" ve "S6" adımlan birlikte aktif olacak Ve farklı çlkışları çallştlracaktlr. Her iki adımın gÖrevini tamamlaması ile oluŞan sinyaller alındığında program tekrar "S1" adlmına sıçrayacaktır. 3) Kapatılmlş alternatif ve ikinci hat; "S,|"den başlayıp "S4"e kadar devam eden hat ikinci bir hai olarak program bloğuna eklenen "S7" adımına slçrayarak programlna devam etmiştir. "S7"den başlayıp "S1O"a kadar gelen hat tekrar "S1" adımına sıçrayarak bir çevrimi tamamlamış olmaktadlr. Bu programa ikinci bir hat eklenerek "s4"den "s7"ye slçranlp
programa devam edilmesi ile "S7"nin direkt "S4"ün altına eklenmesi arasında programın fonksiyonu açısından bir fark yoktur. Bu uygulama sadece aynl ekranda takip kolayllğl sağlamaktadır. "Sl"den sonra programın "Ss"den devam etme şartı gerçekleşmişse, "S6"dan sonra konan kapama fonksiyonu programı kilitler. Ancak CPU'nun kapailhp yeniden açılması veya "lNIT_SQ" sinyali başlangıç adımına geçiş ile programı devam ettirmek mümkündür.
272
Yawz EminoğlD
l. ain "cRApıü" pnoıeslıılıı slsıeuırlx iııceı-eııuesl
Bilindiği gibi 'Graph" programlama genellikle sıralı hareketlerin programlanmasında kullanılan bir programlama dilidir. Aşağıda da birkaç silindir hareketinden meydana gelen sürme ve kesme aparatının sistematik şekilde bir PLC pro!,ramının yazılabi|mesi için gereken adımlar sıralanmıştır.
SORME VE KEsttiE APARATı
ElıOıİi_
alııtdd Ke§me sll|ndi.i
su.lıcüye b.Ol.miı 5lllnd1.1
"D"
suİme 8l[nasat
Sistem çalıştırıldığında önce "A" silindirine ait piston kolu aşağı inerek kesilecek parçayı sürme silindiri kelepçesine sıkıştırır. Daha sonra ''B'' silindiri piston kolu dışarı hareket ederek sabitlenen parçayı dayamaya kadar iter. Sonrasında "C" silindiri piston kolu dışarı çıkarak kesilecek parçayı kesme kalıbına sıkıştırır. Sonraki adımda kesme silindiri (D) piston kolu dışarı çıkarak parçayı keserken aynı adımda parçayı sürücüye bağlayan silindir piston kolu içeri girerek sürücüyü parçadan aylrlr.
Kesme silindirine ait piston kol u tiamamen dışarı çıkarak parçayı keser ve hemen içeriye girer. Bu adımda sürme silindirine a it piston kolu da içeri hareket eder. Son adımda sıkma silindirine ait piston kolu içeri girerek parçanın kesme kalıbı içerisinde serbest kalmasını sağlar.
HAREKET S|RASİNİN TANİMLANMASİ Sistemdeki silindir piston kollarının hareket sırası aşağı tablodaki gibidir
Adım
"A'Silindiri
1
lleri
pistonu
2
"B" Silindiri pistonu
5
"D" Silindiri pistonu
lleri
3
4
"C" Silindiri pistonu
lıeri
Geri
lleri
Geri
6
Geri
Geri
Yavuz Emin€lu
273
KİSA GÖSTERİM yukarıdaki tabloda gösterilen hareket slrasl "kısa gösterim şekli" denen yöntemle daha sade bir şekilde aşagldati gibi de gösterilebilir. Bu yöntemde "+" pistonun dışarı/ileri yöne hareketini, ";' ise içeri/geri yöne hareketini tanımlar. 1.adım
B+
A+
Kısa g österim
2.adım
3.adım
4.adım
c+
;
5.adım
A_
B-
D+
D_
6.adım
c_
inin sınır anahtarlan ile birlikte Sin
shrt s0
/
AA+ B+ c+ D+ \,/
\,/
a1
b1
\,/
cl
\/
österimi
mli
BD-
dl'ao
\,/
c-
do-bo
\
G0
Yukarıdaki gösterim şunu ifade etmektedir. "c" silindirine ait piston kolu içeride ("c0") (Çevrim bitti sinyili1 ve start butonuna basılmışsa "A" silindirine ait piston kolu dışarı hareket Öbecektir. *A'silindirine ait piston kolunun dışarı hareketini tamamladığını bildiren "al" sinyali alındığında "B" silindirine ait piston kolu dışan hareket edecektir. onun hareketini ..b1,,dir ve o da "c" silindiri piston kolunu dışarl hareket tamamladlğlnı bildiren sinyal ettirecektir. Vb. Motor hareketlerinde bu tanımlama; "+", motor milinin sağ yönde dönüşünü, "-" ise sol yönde dönüşünü ifade eder.
274
Yatlz Eminoğlü
YoL-ADıM DıYAGRAttiı
yol adım diyagramında; adımlar, adımlara giriş şartlan ve gerçek|eştiri|en iş çok daha grafikle gösterilen bir yöntemdir. Grafiğe ait satırlaroalyatayoj1 ve !etay!1 çalışmjelemanlan (silindirler), sütunlarda (düşeyde) ise adımlar göiterilir. Ömeğin ';A" siındirine ait piston kolu baŞlangıÇ konumunda içerdedir ve ilk adımda o dışarı harekJt edecektir. Dışarı hareket etme Şartü ise diğer silindir Piston kollannın içeride olduğunu söyleyen sınır anahtİrları uyarılı ve baŞlama/start sinYali var ise "A" silindirine ait piston kolu dışarı çıkacaktır. 1.adımJa bunlar sorgulanmış ve şart sağlanmışsa "A" silindirine ait piston kolu dışarı hareket etmiştir. 2.adımda "A'silindirine ait piston kolu dışarı çıkmışsa yani "a1" İinyali var ise ''Bi silindirine ait piston kolu dlşarı çıkacaktır.
.
l
l
al
2
3
4
5
6
,1
=|
0
B 0
c
l c0
0
l D 0
S.adımda "A'silindirine ait piston kolu
içri
3.adımda "B" silindirine ait piston kolu dışarı çıkmışsa, "bl" sinyali varsa "C" silindirine ait piston kolu dlşarl çlkacaktlr. 4.adımda "C" silindirine ait piston kolu dışarı çıkmışsa, "cl" sinyali varsa "A" silindirine ait piston kolu içeri girecek ve aynı anda "D" silindirine ait piston kolu da dışarı çlkacaktlr.
girmiş ve "D" silindirine ait piston kolu da
"D" silindiderine ait piston kollan içeri girmişse "C" silindirine ait piston kolu içeri girecektir. Böylece bir çevrim tamamlanmış olacaktır.
Bu yöntemdeki genel teori "Bir önceki adım aktıf ve o adlmln görevini tamamladığını bildiren sinyal var ise bir sonraki adım aktif olacaktıı.''
Grafiğin sol tarafındaki düşey sinyal çizgisi "vE" bağlantı şartını sorgulamaktadır. yani bütün silindir piston kolları içeride ve start sinyali var ise "A'' silindiri piston kolu dışarı Çlkacaktır. Yine sol taraftaki silindir adı yanında "0" ile gösterilen hat piston kollarının içeride, "1" ile gösteri|en hat ise piston kollarının içeride olduklan durumdur. Yol-adım diyagramlanna benzer şekilde yol-zaman diyagramları da oluşturulabilir. O diyagramlarda sonraki adlma geçiş için belirlenen sürenin geçmiş olma şartı sorgulanmaKadlr. Dolaylsl ile düşey hatlarln zamanl ifade etmesi nedeniyle adımlar arasındaki mesafe zamana bağlı olarak farklı uzunluklarda çizilir.
Yavuz Eminoğlu
275
2
sısTEM BıLEşENLERı pnömatak devre şeması: sürme ve kesme sistemi yay geri dönüşlü valflerle kumanda edilen çift etkili silindirler ile çalıştırılmaktadlr. Yay geri dönüşlü valflerde, valf bobinleri enerjili olduğulürece si|indir piston kolu dışan (veya içeri), enerjisi kesildiğinde ise içeri (veya dışarı) hareket ederler. Her silindire ait piston kolunun içeride ve dışarıda olduğunu sorgulamak amacıyla da sınır anahtarları kullanılmaktadır.
A
a0 1
B
a1
s2
Y,|
b0
s4
Start-Butonu piston piston piston piston piston "C" silindiri piston s6 c1 s7 d0 "D" silindiri piston S8 d,1 "D" silindiri piston
s,| aO "A' silindiri S2 a1 'A" silindiri S3 b0 'B" silindiri s4 b,1 "B' silindiri s5 c0 "C" silindiri
276
c0
5
D
c'1
s6
Y3
Y2
Giri ve ıkı sln lleri Girış sinyaılerı Sembol Açıklama
s0
c
b1
Y4
d0
d1
=»
Çıkış sinyalleri Sembol Açlklama Y,t
kolu içeride sinyali kolu dışarıda sin. kolu içeride sin. kolu dışarıda sin. kolu içeride sin. kolu dışarıda sin. kolu içeride sin. kolu dışarıda sin.
Y2 Y3 Y4
Yaralz Eminoğlu
'A" silindiri piston kolu dışarı "B" silindiri piston kolu dışarı "C" silindiri piston kolu dışarı 'D" silindiri piston kolu dışarı
bobini bobini bobini bobini
programlama_dili olan "GRAPH", yapı olarak SFC'yi kullanmaktadır. __^ Siemens'in SFG "Sequential Function Chart" (Sıralı Fonksiyon'Şeması) ise oiN EN 611ai-' (lEC 61131-3)'e göre kuralları belir|enmiş sıra|ı kohtrol-sistemlerinin grrfi6l"rrk gö"terimidir özetle SFC'nin siemens tarafından kullan,ırn yapis,-;cnnex"irogramıa;;;i. - ' Aşağıdaki durumda bunu göstermektedir. Aşağıdakiresim sürme ve kesme sistemınin src ile gerçekleştirilmiş halidir. Bir altındaki resim ise aynı prosesin 'GRAPH" iıe çoztiımtiJ şeklidir.
Başl5nglç adml
1
s0 stad s7 d0 s5 c0 s3 bo s1 a0
2 s2
s
"A' silindid
s
'B" sihndiri dşanya
dPnya
a13
s4 b1
s6
s
4
"c'silindiri dşanya
c1R 'A'sil.
5
sl a0
s8 d,|
-
sil,dşa
_
R "B"sil,içe.i
7
s
6
R 'D"siı.içeli
8
s3 b0 s7 d0
R 'c'silindiri içeriye
9
PLc Adres 1.0 0.0 0.1
0.2 0.3
raml
risinde kullanılacak sembol tablosu Sembo! Açıklama
s0
S1 52
s3 s4
l0.4 l0.5 l0.6 l0.7
S5 56
Q Q Q Q
Y,1
0.0 0.1
0.2 0.3
s7 s8 Y2 Y3 Y4
a0 a1
b0 b1
c0 c1
d0 d1
Start-Butonu "A' silindiri piston "A' silindiri piston "B" silindiri piston "B" silindiri piston "C" silindiri piston "C" silindiri piston 'D" silincliri piston "D" silindiri piston "A' silindiri piston "B" silindiri piston "C" silindiri piston "D" silindiri piston
kolu kolu kolu kolu kolu kolu kolu kolu kolu kolu kolu kolu
içeride sinyali dlşarlda sinyali içeride sinyali dışarıda sinyali içeride sinyali dışarıda sinyali içeride sinyali dışarıda sinyali dışarı bobini dışarı bobini dışarı bobini dışarı bobini
Yovuz Eminoğlu
277
FB 1 içerisinde oluşturulan "GRAPH" programl İ1_
8
sı
LANGIÇ
step1
Dt
RlnU
1
Tran 1
52
steP2
s3
steP3
3
s{
step4
4
"A" silindiİi s-Eo. 0
daşarlya
"B" silindiİi
dlşarrya
"c" si].indiri
dlşar.lya
s
s
-loo
J
-looı
İan5
"D" silindi.i
dlşarıya
Q0.3
s8 step8
s5
step5
"D" silindiri R
"A" silindiri
R
loo.
içeİ:iye
Q0.3
içeİiYe
o
İans s7 step7
"B" silindili
içeriye
"c" silindiri
içeriye
R hol
5
Trans s9
step9
R
laoı
8
rans
8
1
Bu uygulamada standart adımların oluşturulması yanında 4.adımdan sonra paralel hat (Simultaneous Branch) eklenmiş ve 9.adımda bir|eştirilmiştir.
278
Yavuz Eİnhoğlu
fi.. €*
ıE rı P|.c si,
els EE1-1
hdr 99i
c,I
FB'l içerisinde oluşturulan "GRAPH' programının kaydedilmesi
<ıaonğ>
sonrasında projemiz içerisine i olan bloklar (DB1, FC72, SFC64) eklenir. Bu bloklar'Graph" FB'sinin yüklenmesi sırasında CPU'ya yüklenir.
kik GFAFH LI/GULAI{A slMATlc SÜEME VE KESME
fr]|
0B1
LAD
c FEl FFcn
Bhd,*
GnAH]
EDBl
67_sTD_3
sTL
TlME_TcK
sTL
DB
sFf,al
sürme ve kesme sistemine ait 'GRAPH'program bloğu OB 1 içerisinden çağrılır ve yüklenir. Çağırma esnasında daha sonra anlatılacak farklı parametreler sorgulanabilir.
E ıletİod.
1
: satE 9. te@
sist4i
DBl
Ei . .
_!gr!
EBl
EEo
5o
J. BİRDEN FAZLA "sEQuENcER" (sıRALAYıcl) EKLEME Bir FB içerisindeki "Graph" programına biıden "Sequencer" (Hat) eklemek mümkündür. tr Programı meydana getiren bütün adlmlarln alt alta eklenmesi ile yeni hatlar ekleyerek adımları o hatlara eklemenin programın fonksiyonuna bir etkisi yoktur. Sadece takip kolaylığı sağlamaktadlr.
+,,
ı
Ea! aö
DarCI c \
[=
Yr
,tc
frtdor fazla
Deda.ation tine
ctıl+l
syınbo|
Dr4-Jld-DroP DitEd
ir
EEiG
+
;
e.p+
T,ı§ilb.
B.alch
g
ttl+l cıı1.6
JurrtP
İoP
PGrı.r*nl lrrrürrdirn
1
5
m
a
s
[..r9[ı9c
Ecı,.llır
)
Fri!ÇEı
ll
- Ek Eft İErİ ıtc 0üT D
qrElğl.,,
çy,l s
Yra, o!İİırE
whdot^
hE rIHlİ|6/
e \
l El
s5
6
s6
step6
f
ts-
step5
step5
]
steP6
Sequeıng 4
+
s7 step-7
;
sLep7
5
E
O,açlt
rans
Ffil; EEEa } vulıule* Yaılız EmiDoğu
279
,,Graphics" görünümünde hangi "Sequencer" (Hat) seçili ise program alanında o
,
içerik görünür.
İerhangi bir hat üzerindeki adımlar kopyalanlp veya kesilerek, "Graph" program alanında herİangi bir seçim yapılmadan yapıştınlacak olursa işletim sistemi yeni bir hat oluşturur. - FF Edit lEğt
Ptc
DE E]ğl.r - - -l}, qrG,{
Ej
al d/J!<>!l\?
"Sequencer" görünümünde bütün hatlar birlikte izlenebilir.
e
ı
t
s1
gtğP5
s5
s8 steP8
s6
s9
t5
s2 }9
s s
s3
step3
s7 EteP?
@
F tr
E E
{
E G.* İİ §€aPg
"Graphics" göninümünde
ilgili
"Sequenceı''
(Hat)
üzerinde fare'nin sağ tuşu ile açılan listeden hattı silmek, kopyalamak veya kesmek mümkündür. Kopyalanan veya kesilen hat içeriği "Sequencer" görünümünde başka bir haüa eklenip yapıştınlabilir.
ı Fa. €6t ht rt Pıc D İr 9lğlrı . c, -| e
\ t lç
ı
;
ğ
2ü
Yaurz Eminoğlu
Efl!
E*
J(
EG
cü
Gn+x
c,qy
cüı+c
H.
Dd
ı* |gtl
K. SABİT
PRoGRAİü,LAR (PERMANENT lNsTRUcTloNs) KULLANMA
'Graph" editörü içerisinde ve her çevrim başlnda Veya sonunda bir kez çallştlrllacak Ve "Graph" programından bağımsız programlar eklenebilir. Bunlar LAD veya FBD ile yazılan program kodları olabileceği gibi "Graph" FB'si içerisinden diğer program blokları da çağrılabilir. Permanent ınstructions" menüsü veya araç düğmelerinden "Permanent "View lnstructions" ile açılan program alanına "lnsert Permanent lnstructions Gondition" ile "Permanent lnstructions" alanına bir komut satın ve bir çıkış bobini eklenir.
)
-E D
)
lrı .-jl ftc
E C]
df]|( )! lt7 12ü
)
. ]İ }
. şFl L ;ElEqtr
1
c I
Pernanent ingtructions bef ore sequencer
t-
1
; E
l I
2
s
F lE
c.ll
L
Sabit programlar "Graph" editörünün başlna Veya sonuna eklenebilir. "Permanent lnstructions" alanına geçildiğinde "Peımanent instructlons before sequencer" seçilerek ekleme yapılırsa 'Graph" editöninün başına veya "Permanent lnstructions after sequencer" seçilecek olursa "Graph" editörünün sonuna eklenir. ı Et €üı h.ırt Rc D ıı Elaıl- - -
-]* bE r{|0?lİ]dr|!(>!
9 \
:J
Permanent
ll i. ,=.ıFEl
L -tr Eqtr
instructions after aequencer
t_<
Eü-,i:,r:,.,.
]: :,jiüü
P.lmMtlnft
@
Ir
6ax ,
1
tç
P
Jt?
cill I
Yaııız Emltroğu
281
*LAD FBD" Komut satırı seçildiğinde de sol yanda aktif olan "Too]bars" içerisindeki araç düğmelerinden; NA kontak, NK kontak, dal adkapa veya karşılaştırma fonksiyonları ' eklenerek program oluşturulabilir. tFL D
0
İ,
trİ ltt
9tc
El5]- - -
-]
r
b6
rlPJ İ|dr|!(>!
@] l! i.
]\?
ErF
tr
E qqtr
Pernanent instructions before sequencer
lEall@l4l
ül
t t
L-i
1
t, -a
PerEanent instructions after sequencer 1
Sabit program alanlanna birden fazla program bölümü (Netwo*) eklenebilir. Bunun için kalıcı alan içerisinde sağ tuş "lnsert New Elements) Pemanent lnstructions Condition" ile yeni network eklenir. Bu alanlara LAD ile yazılabileceği gibi FBD ile de yazılabilir.
9o.2
ro 2
Qo
)
-3
Io.
Yine bu alan içerisinde pğemiz içerisine eklenmiş olmak şartı ile herhangi bir program rılabilir. "CALL ??" ile Dq9E
-]
df
0
I
l( )l
]tl
t
l ilie l- F FllL -E]E q
2|Da
PeraDanent
ı
tr
instİuctions befoİe sequenceİ
1
E
a 1
E
rılan ram blokları arametrelendirilmemi Ve rametrelendirilm olabilir PerEanent instructiong before sequencer Permanent ingtructions before sequencer 1
l0_5
L Fcl
ao-5
1
2
4
ıo_5
ao.5
ı l
ü2
Yrvuz Fminoğlu
L. "GRAPH" PRoGRAİiLAMADA "ıNTERLoCK" vE
"suPERVısıoN" KuLLAN|Mı
1. "ıNTERLoGK" KuLLAN|Mı "lnterIock" (Koşul gözlemcisi) bir adıma eklenen kilitleme fonksiyonudur. Ama bu durum adıma eklenen "lnterlock" oluşmadan adımın çıkış vermesine ve bir alt adıma inmesine engel değildir. Ancak o adımdaki çıkış "lnterlock"a bağlanmışsa (Komutun sonuna "G" eklenmişse) adım aktif olsa bile çıkışın aktif olabilmesi "lnterlock"un gelmesine bağlıdır.
"lnterlock"un durumuna göre faaliyet gösteren "L0" komutlarıyla da "lnterlock" sinyali değerlendirilebilir. "L1" veya "L0" komutları sayesinde
1
L1
L0
[C=0]
0
,I0
5
setlenen veya resetlenen bitler kullanılarak programa yön verilebilir. "L1" sinyali "lnterlock" oluştuğunda, "lnter]ock" kesildiğinde "1" olur.
t
"lnterlock" (veya biraz sonra anlatacağımız "Supeıvision") ancak tek adım (Single step) konumunda düzenlenebilir. Yan tarafta 2.adım "Single step" konumunda açllarak "l0.6" sinyali ile "lnterlock"
cH
--{ v |---]
,
I0
step2 N Q0.1
2
rans
eklenmiştir. Bu ekleme sonrasında adım gösteriminin sol üst köşesine "C" sembolü eklenmiştir.
NC Qo.2
t1 s Q0.3 LOs Q0.4
s3
Ancak o adımdaki çıkış değişkenine "lnterlock" şartı eklenmek istenirse, çıkış ataması yapılan alanın özellikler penceresi açılarak "Operatöı'' alanlndaki komutun yanına "G" eklenir. Veya "Depends on interlock
L2
(...)" alanındaki kutucuk işaretlenir.
t c-"a |
0(
c
l-;.
s2
step2
ao-2
2 rans
ıı*
|
steP2
ilmıİEE
0.3
LOs 0.4
s3
Y5vuz Eminoğlu
2s3
Herhangi bir adımda istenirse "lnterlock" sinyalinin geldiği ve/veya gittiği an tesbit edilebilir. Bunun için "Action Properties"deki fonksiyonları kullanılır. "L,| " fonksiyonu "lnterlock" sinyalinin ge|diği an, "L0" fonksiyonu ise "lnterlock" sinyalinin kesildiği an "'| " olmaktadır.
s,ağrisiİ .nd alğiıo d.te s Q0,3
L]
T
.
iddtnqrıEıl
lntaİ.ı dıdiİ
İğ
94ffiM ağ
hdiE {.le
D.r.d. O ırğld(
lddiİd]
c-ı l ı"ı
0K
s2 step2
step2 Q0.1 o n, L1 s Q0.3
N
2 rans 2
l
Nc
]io,-s 00.4
U: T*l1s560ns T: T*l1s560ms 2 rans
step2 N a 0.1 Nc Qo.2 L1 s Q0. 3
LOs U:
T:
2
lı
Q0. 4
T*2min2Os159ms T#2ınin3Os 697ms
step2 N Q0.1
2 Ians
1
Nc
Qo.2
LOs
Q0. 3 Q0. 4
L1 s
1
yan tarafta adıma "lnterlock" eklenmesine rağmen, "lnterlock" sinyali (l0.6) gelmediği için normal çıkışlar (N, NC) aktif olmuş, adım sembolü yeşil olmuş ayrlca "u" Ve "T" zamanları birlikte çalışmaya başlamıştır. "lnterlock" oluşmadığı için "Ll" ve "L0" çıkışları oluşmamıştır. Program bu şekilde yüklenip ilgili adlma gelindiğinde "lnterlock" sinyali (10.6) varsa veya adım aktif iken gelmişse "L1" sinyali "1" olmuştur. Aynı zamanda adım kırmızı renge dönüşmüş ve "U" zamanı durmuştur.
Herhangi "Graph" adımı üzerindeki "T" zamanı o adımın toplam aktif olma süresini gösterir. "U" süresi ise "lnterlock" sinyali olduğu sürece saymaya devam eder ve toplamalı zamanlayıcıdır. Yani "lnterlock" sinyali "1" olduğunda zaman çalışır, "0" olduğunda bekler. Yeniden "1" olduğunda ise zamanın üzerine saymaya devam eder.
"N" çıkışı adım aktif olduğu, "NC" çıkışı ise "lnterlock" sinyali olduğu sürece "'t" dir. Adım aktif iken "lnterlock" sinyali kesildiğin çıkışı aktif olacaktır. "lnterlock" sinyalinin aktif veya pasif olması, bir sonraki adıma geçişe engel değildir. "lnterlock" sadece hangi adıma konulduysa onu etkiler. Başka adımlara etkisi yoktur "lnterlock" kullanımında "U" ve "T" zamanları kullanlma izinli değildir. Bir "lnterlock" programına maksimum 32 sinyal (LAD/FBD giriş-çıkışı) eklenebilir
2u
Ya!ıız Etrxnoğu
7
2.
"suPERVısioN" KULLANlıJlı
.
.. "Supervision" (Hata gözlemcis) bir hata durumudur. Hata şartlarlnl biz belirleyebiliriz. H€ta oluşunca "supervısıon" aktifleşir. Bu hata ortadan kalkıncj''Supervısion' oa İiJer. "Supervision"un durumuna bağlı olarak kullanılan "Vl" ve "V0'' komutlan vardır. BJ komutlar sayesinde programa yön verilebilir. Bir adımda '.supervision'' oluşunca sinyal o adımda kalır. "Supervision" ortadan kalkınca program devam eder. .'supervisıon''un kullanılıŞına bir karşılaştırma i|e ömek verecek oluİsak, kullanılacak adımİ sinyal gelince ,,T,, ve "U" zamanlanyla karşılaştırılması gereken zaman değeri girilerek ''Supervisio-n'' oluşturulabilir. orneğin si|indir piston kolu çıkması gereken sürede dışanyi çıkamam|ştır. "Supervision" sinyali "Vl " komutlarıyla da değerlendirilebilir. "V1" veya "V0" komutları kullanılarak programa yön verilebilir. "Vl " sinyali "Supervision" oluştuğunda, "V0" ise "Supervision" kesildiğinde "1" olur.
1
V1
V0
0
I0.7
c
l
Io -6
,-,-,-:
|
---.,
v i-"--]
U: T+3s673ns T: T+4 6s7 4 slns
T1
s
tep2
N
İo.2
Q0.1
E
2 Ia ns
Yukarıda "lnterlock" kuIlanımına ait anlatılanlar ''Supervlsion" kullanımında da benzerlik gösterir. Orneğin yan tarafta 2.adım, tek adım görünümüne alınarak hem "lnterlock" hemde "Supervision" sinyali eklenmiştir.
----......s3.-
U: T:
Yan taraftaki gösterimde 2.adıma geçildiğinde "Supervision" sinyali var iken geçilmiş, dolayısı ile 1 2.adım çıkışı olan "Q0.1" 1 aktiftir. Aynı zamanda 0 "Supervision" sinyalinin geldiği an aktif olan "V1" sinyali "Set" fonksiyonu ile bağlanan "Q0.3" çıkışını da set|emiştir.
T#000ms T* 3 0s 427ms
step2
N
I 0, 2
2 rans
]ı
s3
step3
Q0. 1
Vl
s
U:
T*3s971ms
QQ....3_. .
VOs Q0.4
T:
T* 3s
step3
N
9
71ıns
Q0.5
0
Yaiuz Eminoğlu
2a5
Yan taraftaki uygulamada 2.adım aktil olduğu andan itibaren 5 sn'den fazla "lnterlock" sinyalinin gelmesi "Supervision"un oluşmasına neden olur. Bu durum 2.adıma ait çıkış olan "Q0.1" ile beraber "Q0.3" sinyalinin setlenmesine de neden olur. Böylece bir sonraki adıma geçiş oluşmaz.
, I0 6 Inteİlock
t--r F----{ c l---l supervision
v }---l
ğtrp
s002. T*5
step2
tr
, I0
Q0.1 V1 s Q0.3 N
2
rans
VOS
Q0. 4
s3
Yukarıdaki gibi veya benzer nedenlerle "Supervision" oluşmuşsa bu durumdan kurtulmak için biraz sonra anlatacağımız FB parametrelerinden "ACK_EF" sinyali ile hata onaylanarak bir sonraki adıma geçiş sağlanır veya "lNIT_SQ" sinyali ile başlangıç adımına geçip bu denetimden kurtulabilinir.
2ü
Yavuz Eminoğlu
Prc
9
PR
3ml4ffi-2
sIMATlc
cRAİH
M.s7 "GRAPH,, FB,SıNE AlT PARAMETRELER "GRAPH" ile hazırlanan bir FB çağrıldığında farklı pa rametrelerle çalıştırılabilir. Program unun defau lt rametre rlarında "İiinumum" s lidir.
6!."/s.. |ı.ş" IA.-,.>.-
0
ı
|
a lhEy.İİi..d t.f !5l)
e
t T oE.cttd.rhoo
lti,ta[ı q-fğnı/Fcrt
s
rc"ı- F-
0
P 9Etİğı*ı ts d \ü!a.o T k rF.tE.aJ
n*do.EcE&l T ljd od,.id. ııd.l (\6jd T sJ.,dülüiL Fd v5,ı)
lü-ia.ıt
T $.-dıbra6tt
,]}
b
++
tt
ot|
(x
ı*
|
"Minumum"un seçili olması durumunda aşağı so|daki parametreler oluşur. Bu durumda ilgili FB çağrıldığında bilinen "EN/Et{o" parametrelerinin dışında sadece "|NıT-sQ" (lNlT|AL sEQUENcE) parametresi istenir. Buraya bağlanan sinyal uyarıldığında ise 'Graph" programında başlangıç adımı o|arak kabul edilen adım aktif olur. İsılrum
D8 FB
BooL
EN
soo-
ltıT so
$.İnan
s6qlEEr Etüo
BooL
DE FE sequeüıcor
BooL
EN
EooL
oFF_so
BooL
lNT sQ
BooL
AcK EF
BooL BooL
s_PREV s_ND(T sw_AUTo sw_TAP sw_MAN
BooL
so"
BooL
T Pusll
BooL 8ooL BooL
lNT
BooL
ENo s_No
s_MoRE
s_rclVE
ERR FLT AUTO oN TAP_oN l\iAN oN
Boof, lNT
BooL BooL BooL BooL
Bool BooL
s oFF
Standart ve diğer yapılann kullanılması durumunda ise aşağıda detaylarını verdiğimiz parametreler aktif olur.
Yavuz EftiEoğlu
287
l{ülmum G
va
BooL
EN
BooL BooL
Boot
EooL BooL BooL
B@L
8ooL EooL BooL
krİ
s.qJ6neİ
DB
ENo s_No
oFF_sa s ıJtoRE Nl.r so s_rcTNE AcK EF trALT_sQ ERR FLT HAT Tı,i sQ HA!TEo zERo_oP
EN_lt EN sV S
PREV
TI!_HALİED
oP_zERoEo
hl6,u.efd.nür€d
BooL
BooL
EN
lNT
B@L
oFF sa
ElooL
BooL BooL
AcK EF RE€ EF
B@L
ElooL
gooL
E|@L
6cloL
BooL BooL EooL BooL
BooL BooL
IL_,ENASüED
ElooL
SV_ENABLED AUTO ON TAP ON MAN ON
B@L
BooL BooL
B@L sooL
Bool
S_NEXT SW AUTO SW İAP
lNT
§ sEL
BooL
BooL EooL
s oFF l.Pusı]
BooL BooL
B@L
BooL
B@L
BooL
soN
ENo
9_ilo
s ijoRE
lNtT_sQ
s_.AcTlvE
ş
AcK_s REG s HALT sQ
B@L
ElooL
B@L
BooL
EN lL
EN_sV
ERE_FLT
s_NEI(T
so lsoF
so_HALİED Tu,I{ALTED
oF_zERoED
soN
BooL BooL
TNo
T CR|TFLT ERRoR
§ PREV
BooL ElooL
STATE
T MoRE 1_cRlİ l_cRlToLD
DlsP_sAlL
s sEL
E|ooL
nM EoK
s
EN AcKREo EN_ssKlP DlsP_sAcT DlsP sEF
lNT
B@L
T|ME
§ cRlILocER S cRlTsUP
HALT TM
ElcoL
BooL BooL
s
s cRlTLoc
zERo oP
BooL
(,)
DB s€qlEnc€r
s_sELoK
lL_ENABLEo ENAELEo
sv
AcKREa_EMBLE SSK|P ENABLED
sAcI_ol3P
T NE(T T PusH
sEF_OlSP SALL DlsP AUTo oN TAP_oN
ToP oN
MAN oN
moL lNT
Eoot aooL T]ME
c)
üretr T|ME
ğüvoRD C)
DwoRD c)
llDRD lNT
BooL owoRD
(,)
t lvoRD c) gwoRD r)
BooL
Bool Eoot BooL BooL BooL BooL
rcoL BooL BooL BooL c)
EooL BooL
EooL Boo( @ol_ BooL BooL
(') FC 73'de olmayan parametreler
"GRAPH" FB'sine ait "standart"
a ısındaki
rametreler ve a ıklamaları
Pa]ametre
Dek.
Tip
Açlklama
oFF sQ
lN
Bool
slralaylclya ait bütün adlmlan slflrlar
lNlT sQ AcK EF s PREV
lN
Bool
Başlanglç adlmlnl aktif eder
lN
Bool
Hatalar onaylanlr ve bir sonraki adlma
lN
Bool
otomatik aktif iken bir önceki adlma gePr. Manuel modda S_No'da belirtilen küçük numarall adlma geçer.
NEXT
lN
Bool
otomatik aktif iken bir sonraki adlma geçer. Manuel modda belirtilen büyük numaralı adlma geçer.
sw AuTo
lN
Bool
otomatik mod seçimi
sW_TAP
lN
Bool
Adlm adlm geçiş mod seçimi
sW MAN s sEL
lN
Bool
Manuel mod seçimi
s
soN s oFF
T PUSH
sNo s MoRE
s AwlVE
ERR FLT oUTo oN TAP oN MAN oN 2ü
lN
gePr
l seçilen adlm numarasl
seçilen adlm numaraslnl aktif et. (Manuel mod)
lN
Bool
lN
Bool
seçilen adlm numaraslnl deaktif et. (Manuel mod)
lN
Bool
Uygun durumda buradaki darbe ile geçiş sağlanlr
oUT oUT
lNT Bool
s_No içerisinden seçilen adlm numarasl s_No içerisinde başka bir adlm numarasl seçilimi?
ouT ouT
Bool
Aktif adlm numarasl
Bool
Hata Var
oUT oUT
Bool
otomatik mod aktif
Bool
Adlm geçiş modu aktif
ouT
Bool
Manuel mod aktif Yavuz Eminoğlu
s_No'da
N.
"GRAPH"
uyGuLAiiA
lıe uvcuıııtııı-ın
1: Bir trafik kavşağındaki trafik ışıkları gündüz aşağıdaki diyagramda görüldüğü gibi, gece ise yayalar için sarı ve otolar için yeşil lamba ,t hz'lik frekansla yanıp sönecektir. Gece gündüz ayırımı bir anahtiarla sağlanmaktadır.
Yo
EI,§
SEMBOL TABLOSU
12 sn
so
2sn
oPERAND sEıiiBoL AçlKLAİ$A
2sn 10 sn
Ko 12 sn
E.0_]
sA
Q 0.0
Yo
Q 0.1
s0
Q 0.2
vxlFlJ
Q 0.3
§
Q 0.4
§1
t yKl
,
step1
1
I0- 0
1
rans 1 s
oto yeşi1, yaya krrmlzr
s2
tep2
N N
2
rans
s002-
Q0. 0 Q0. 4
T*10
s3
step3 3 rans
s003.
3
Tl2
s.ı
step4 4 ran5
s004. T110
s005. I+2
İ
4
s5
step5 5 rans
oto yeşi1, oto sara. yaya krrml zI N
N N
Q0.0 Q0.1 Q0.4
oto k_rrıuz_r, yaya yeşil N N
Q0.2 Q0.3
oto klrınfzf, oto sarr, yaya yeşi1 N N N
lar
i
n
)I9ş!!!q!!-?
rI n
ı lamba
t ].qj otolar için [ırmızı
T5 step
Se çmg gecqgündüz dnahtarı
Y
la I
n
Y
lamba
il lamba
çl n k|rmlzl lamba
Eğer anahtar açık yani gündüz çalışması söz konusu ise otolar için yeşil, yayalar için kırmızı lamba yanarak başlanmıştır. Bu durum 10 sn'ye süreceği için 2.adım çalışma süresi 10 sn ile sorgularak 3.adıma geçilmiştir. 3.adımda oto yeşil, yaya ktmızı lamba ve oto sarı lamba 2 sn süre ile yanacaktır. Dolayısı ile 3,adım çalışma süresi 2 sn ile sorgulanmış ve 4.adıma geçilmiştir. 4.adımda oto kırmızı ve yaya yeşil lamba 10 sn süre ile yanmış ve 5.adıma geçilmiştir. 5.adımda ise oto kırmızı, oto sarı ve yaya yeşil 2 sn yanmış ve çevrim başına yani 1 .adıma geçilmiştir.
Q0.1 Qo.2 Q0.3
+s1
Yavuz
Enin€lu
289
VE
İermanent instructions before sequencer 1
2
I0.0
ı.{20 . 5
Q0.1
I0.0
l{20 . 5
Q0.3
Gece konumuna geçilmişse 'Graph" programı ile hazırlanan sıralı hareket çalıştırılmayıp sadece kalıcı alana yazılan, anahtarın kapalı durumu "Clock memory bit" ile bağlanarak yayalar için sarı ve otolar için yeşil lambaya atanmıştır.
\l
Ayrlca gece gündüz anahtarı kapatılıp geceye geçildiğinde yanma ihtimali olan lambaları söndürmek gerekir. Bunun içinde bütün adımları resetlemek @züm yöntemlerinden birisidir. Resetlemek için de'Graph' FB'si standart parametreler ile çağrılmış ve gece/gündüz anahtannln negatif kenar darbesi "oFF_SQ" girişine bağlanmıştır. Anahtar açılıp gündüze geçerkende çevrim başından başlaması için anahtarln pozitif darbesi
"lNlT_SQ"ya
DB1
EE1
Eı{o
Etr
Io-0
s_No
"gec._gıındız" u6.0
}-oEF_sa
(!ı
Io. o
-gece_$ınduz"
I
bağlanarak başlanglç adlml setlenmiştir.
F-(
ğ5. p
s_lroRE
r t
t t ERR EtT
s_AğlIYE
t
|-
ıııır_sq
t
Gece konumuna ait çalışma yukarıdaki gibi sabit program alanında yazılabileceği gibi a ıdaki ibi altematif hat ile de sa lanabilir. t, !, öncelikle anahtarı Başlanglç aduıf §,! kapahp gece konumuna step1 geçildiğinde programln 6 başlangıç konumuna Tlan ş,9 geçebilmesi için standart s6 step5 step6 parametreler ile çağrılmış L 00.1 o0.1 T*50oMs FB ,t "lNıT_sQ" girişine 7 rans ? anahtarın negatif kenarı s7 steP6_1 bağlanmıştır. ste... L o0.3 Q0.3
.., olr
I
(N}
5q
s,
§It_se
1 rans
step2 2 rans
9 rans 1
T*
5
0ol,ts
9
1
oto yeşil, Yaya kı.mrzl, gece reset
N N
ho.
O
|a0.4
Tl1
Başlangıç adımından sonra anahtar yoksa program "56" ve "S7"yi çalıştırarak tekrar başlanglç konumuna geçmektedir. Her adlmda da 0.5 sn süre ile bir lamba yakllmlştlr.
290
Yavuz Eninoğlu
UYGULAMA 2: Bir bant üzerinden gelen paçalar
l0.2
sürme
gruplanarak paket|enecektir. Bant üzerindeki parçanın sensör tarafından algılanmasıyla bir silindir bant üzerindeki parçayı paketeme sehpasına itecektir. Sehpa üzerindeki parça sayısı 5 olduğunda başka bir silindir parçalan bir adım ileri sürecektir. silindir valfleri tek bobinlidir. (yay geri dönüşlü)
silindiri
l0.3
l 0.1
Sensör
l
0.5
l
-_-ş
0.4
I
paketleme silindiri
oB
,100//
Başlangıçta sayıcıla ön
değgr yüklemek için
sume_sil_disarida
l l l l
pak_siuceride
I
surme_silicerde
sET
L c#5 sc5 oB
ac_kapa §ensor
pak_sil_disarida
reset
,1
ro.0
lB1
l
bant_motoru o surme_sildisari o sume_siliçeri o
DB1
Eğ
l
Elo
pak_sildisari o pak_sil_iceri o
Io-7
'reget'-luIl
BooL BooL BooL BooL BooL BooL BooL BooL BooL BooL BooL BooL
0.0 0.1
0.2 0.3 o-4 0.5 0.7 0.0 0.1
0.2 0.4 0.5
T5
st
T8
step1
ı I0.2
Bant Motoru
N
|Qo. o
c5
tJ HHl-_-r
6
L---lı------,.
s2
step2 3
|----ı-=.
süİne silindiri N
sl
cD
daşarı
siı
9o-1
step4
Paketleme silandiri
N h0.1
Cıa
şaİı
|-]jr--, s3
steP3
sü!@ silindili
N
içeti
s5
step5
|a0.2
PaketleE€
N sl
cs
sirindiri
içeri
|Qo-s
|_--.ıı-----.,
s1
Yavuz Eminoğu
81
bir sistemle havuz 3 sn içerisinde havuz sandlk inişten sonra Her içerisine beş defa batırılıp çıkartılacaktlr. yıkama işlemini sona yukarlya bekleyecek ve beşinci defadan sonra silindir çıkarak erdirecektir.
UYGULAİ,A 3: Bir sandık, içerisindeki parça|ar, yıkanmasl için pnömatik
s3
uı@ sıQ
slindr s2
Y2
Y1
sandük
SEMBOL TABLOSU
sEMBoL s,1
I
0.0
s2
I
0.,|
s3
I
o.2
Y1
Y2 timer saylcl
292
oPERAND
Q Q
0.1
0.2
T1
c1
AçıKLAMA
TlP
BooL BooL
start butonu
Bool
Sandık aşağıda Sandık yukarıda
BooL BooL
sandlk aşağlya sandlk yukarlya
TlMER
zamanlaylcı
coUNTER
Sayıcı
Yaılz Emiİoğü
T5
s1
Briş
step
largıç
1
L
I
Tİans
1
s2
saylcuıb set]aİıınesi s1 cs "s!.TIcİ" cfs
s!ep2
8 ana6
T4
s3
saıdık aşağlya
step3
N
2
I
2
s4
stcp4
3
I
Eekleıae
51
sl
TD
"TIllER"
s5T#3s cD
"5^YIcİ"
Traas3
s5
sandık yukarlya
sE.p5
lt-;
N
s1
TR
'TIllERn
5 Trans5
s1
4
s3
Not: 'GRAPH'programının hatvaya alınıp yüklenmesinde SFC 64 ve FC 72 (70-71\ kendiliğinden projeye dahil edilir. SFC &t çalışma süresini kaydetmeye, FC 70,71veya72 de RUN T|ME çallşmada haber|eşme içindir. Fc 7o,71veya 72 den CPU için uygun olanı seçmek gerekebilir. "GRAPH" programını hafzaya aldığımızda (derlediğimizde) pencerenin alt tarafında yazılım hatalarının ve tehlikeli olabilecek durumları satır|arı ile beraber görmek mümkündür.
Yaluz Eminoğlu
A3
xıl.
sıMATıc s7 A. "scl" NEDıR?
scl
"scl'(structured control L9ng!Jlg9) text tabanlı yüksek seviyeli bir PLC programlama dilidir. "SCL" yüksek seviyeli dil olarak PASCAL diline b-enzemeKedir. SlEMENs s7300/400 PLC'ler aşağıdaki 7 programlama dilinden (STEP 7) herhangi ' Pi{si il.e prosraplanabilir. Aşağıdaki şekilde de görüldüğü gibi ''SCL'bu yedi adımdan
birisjdir. Daha önce diğer dillerden çoğu ile programlamının nasıl yapıldığı anlatıldı. Şimdi de "SCL'nin nasıl kullanılacağı anlatılacaktır.
sTL
LAD
FBD
ffi ffi GRAPH
j
HiGraph
H E
cFc
"SCL' yapı olarak 3'e ayrılır. Editör: Programl yazmak için gerekli olan kelime işleme programıdır. Bütün programlama dillerinde olduğu 9ibi kaynak kodlarının yazılması için "SCL" programlamada bir editör programlna ihtiyaç duyar. Editör programln yazıldığı alandır.
Compiler: Editörde yazılan programı PLC'nin anlayacağı dile çevirme (derleme) işlemidir. Editör satır|arında bu|unan sozcükleri derleyerek PLC işlemcisinin makine kodlarına çevirir.
Programda hata yoksa dedeme sonucunda "Result: 0, Enors:0 Waming" şeklinde, derleme sonucu bulunan hata varsa satlr ve sütun numarasl yazılarak raporlanır.
Debug: Makine koduna dönüştürülen bilgilerin okunmasına ve değiştirilmesine imkön verir.
Yatlz Eminoğlu
295
VE
B.
PRoJEYE "scl" EDıTÖRÜ EKLEME ,.scL,,editörünün,.Simaticlü,ıanager,,projesiiçerisindekaynakdosya(Sources)
içerisinde oluşturulması gerekir.
EE
E-
slMATlC 300t1] 313c_2
lg
Bunun için ilk kez veya daha önce oluşturduğumuz proje içerisinde proje ağacı altındaki "S7 Program(...) )Sources" üzerinde sağ tuş ile açılan listeden "lnsert New Object SCL source" tıklanarak "SCL" editörü açılır.
0P
:-
ctd+x
ctd+c
copy
)
tti+V
H
D.kt€ ]n!.ıt
mrour4
N§ ob.i.d
PLc
}
scL coınpilc .odİol
n otit t Prop.dİ5_ sP€6l
oti..t
fl€
GRAPH.oUrQ
Ah.RCtum }
Prof €rti€5
scL sour..
En nd sour<...,
Açılan kaynak dosyada daha sonra ayrıntılarını anlatacağlmlz program kodları yazılır ve derlenir Com le Der|eme sonrasında "Errors and F: E* ti..rr Ptc t}.ğug yğ fuiİE wrllrd, l{.h Warnings" alanında derleme sonucu listelenir. Hata oluşması durumunda hatanın tanımlandığı satır çift tıklandığında fare imleci hatanın gerçekleştiği satıra konumlanır. Hata ve uyarı penceresi "View Errors and Warnings" Veya araç düğmeleri içerisindeki "l" sembollü düğme ile açılıp kapanabilir.
)
DlırlElel -|*|,xlqlel $loelİl3l
ğ
ı<|»ı|[iE
Eoılettoiİ Fc1 : vorD
DEGIll q0.0:=10. o tND Eı{D
Plrİcrlo§
I0.1;
arYcuLem sımTlc r Ftl !ui.i:0 EErors, o larDiagts)
3oo t1l
\cPg 315-2 P§/DP\s?
Derleme sonrasında hata yoksa oluşturulan blok veya bloklar proje altına otomatik olarak eklenmi olur. 'SCL" ile oluşturulan blok ister kendi editör penceresi srstmdata la f, Fc1 c E scL U\GULA!iA sl!,4ATla x]0(]] İ üzerindeki "Download" E,E cPU 3ı5,2 PN/DP düğmesi ile ister ana siPüogüaü{]] E] @ Souıce l@ pencerede daha önce ,@@ yöntemler|e anlatılan PLC'ye yüklenir. Daha sonra ayrlntıları anlatllacak "SCL'ile oluşturulmuş editörde, tek başlna Veya birden fazla program bloğu (FC, FB veya OB) olabileceği gibi data blok veya bloklarda (DB) olabilir. Hatta tüm pğe 'SCL" kodları ile tek bir kaynak dosyasl içerisinde oluşturulabilir.
298
Yavuz Eminoğu
PIrc PR(xiR
5 F} Eü
vE
ıE
rr
DarE-E €tlİ
9tc
s7 30o/,ı{n-2
EhElr, oB1
s
.,
Ic4j
İ
E l%
|!(i »!
&,.
|
Dtr
: 'ıa!in PİograE §ı,..P (cyc]e).
8it logi.
Offi:
EE word logi( oğ bloüİ5 Fc bb(k EE:-f,E
ııtıe
F8
,
i 'c
rc1
ır|
ıcs
Etro
Ö,@ s.8 bb
TIc s7
scl-
ısteniıse farklı bir kod (STL, LAD, FBD) ile tr -Ğ.? ]{r oluşturulan bloklar "SCL' içerisinden çağnlarak kullanılabilir. lstenirse de "SCL' ile oluşturulmuş blok diğer kodlarla oluşturulmuş bloklar içerisinden daha önce anlattlmız yöntemlede çağrlllp kullanılabilir,
Aynı projeye birden fazla "SCL" editörü eklenebilir. Bunun için daha önce anlattığımız proje ağacl altlndaki "Sources" üzerinde sağ tuş ile "lnsert New objects scı- source" kullanılabilir. Veya aşağı resimde gösterilen menü içerisinden "lnsert S7 software SGL souıce" ile eklenebilir. lstenirse eklenen her kayıak dosyasına amacına uygun yeni bir isim verilebilir. (Fare imleci üzerinde iken sağ tuş "Rename" veya aralıklı çift tıklanarak istenen isim yazılır.)
)
FilG tff
D
ıŞl
Yffiİ
PLc
-l
stetion
:_E itrlE
I
subrct Proglam s7
s.,fuü.rr
l,
ı
stI- uYGULAırA
E
1
sour.€
2 Blo.k Folder offlin€
M' so{tw.İE
3 Elo(k Foldg
symbol Table
a
m
Tğt Libİary
5
scl roü<.
Ett.rıl.| sotİc..-
6
scl (orrPik
7
6RAPH §ogrt.
,
)
ltİ eElEEmIt? sEl..oucq2|
sc.l.
§rrcc3]
'older
9 Elod
wincc flğibh RT
Y,
)
online
Jouıta (or,trol 6|.
Y$,Uz Eminoğlu
2.€7
"scl" BLoKLARı oLUşTuRMA
c.
Açılan kaynak dosya içerisinde "lnsert" menüsü altından programda kullanacağımız bazı kalıpları (Bloklar, blok çağırmalar, döngüler v.b) kullanabiliriz. fiL Ei
Kaynak dosyası içerisinde kullanılacak bloklara (OB, FC, FB, DB) ait tanımlama bilgileri elle yazılabileceği gibi işletim sistemi taraf|ndan da atanıp kullanılabilir. Block Template" alhndan "lnsert istenen blok seçildiğinde, o bloğa ait şablon bilgiler editöre aktarılmış olur. Sadece "xxx" belirtilen alana istenen blok numarası veya sembolik isminin yazılması gerekir. Eğer blok parametrelendirilerek kullanılacaksa değişken tanımlaya yönelik kullan ılacak "VAR_TEIiP" ile "END_VAR" arasında (veye diğer) değişkenler tanımlanır ve program bu değişkenlerle yazılır.
Ptc
a
oo.İ c.İ... 08
a
,a
)
rc
PlrİğrId lctğ :
aıal
vAn_rlıüP
/'/ Tğq]olalY vaJiabte5
EİD_VAıı
1-l
D0
0a
[email protected] sectl..
Ecİğ j-
Em Fgİcrrf
Rdffir,g
uDT
tlDT
100,
Eğer programda değişken tanlmlanmayacaksa bu alan silinip program kodları mutlak
adreslerle'FUNCTION" ile "END_FUNCTION" arasına yazılabilir. Ömeğin aşağıda "l0.0" ve "l0.'|" sinyallerinin bir|ikte uyanlı olması durumunda "Q0.0" çıkışını aktif yapan program "FC 1" içerisinde "SCL'kodlan ile yazılmış ve LAD ile oluşturulmuş "OB 1" içerisinden rılmı
r
li l4 !..t Dlelgl ğ EOtİcTIoİ EEGIİ oo - o: =Io.
Fh Cn İE.r fu !F9!9_!,hğ cDOrl_clel* '!c 6 6;-lGt İl ol% e g,ıloslıild -|-lıtlglal
ptl_D.h.ğ
oEı : 'ı..ıD Plogİu sE.p
Ecl : voID o tND İo.
ExD gtııücTloıl
],;
d}İ
Bit
bgı.
6.6l Tii6 düfi
wod bgk
E öıEıı
d|ğ E-o rcbkb
:-ıE , :,İl a :
: l3Fğ
@l-
FrgrcTI@| Fc1 : voID DEcIıa Qo.0:=Io.o tND Io.1
ExD EOlİcıIoİ
oR(uİIzATIoıİ Blrffi oB1 v^R_tExP
ınto: ARRAY[o..19l oE ByIE;
ElD vAR BEcIıı Fcı l) ;
tx» oncaxı zarıoı
sfB
6l.
!(>!J
trEIgr,c:*|{}+
(c!Eı.|i
effi,rı*., !c1
ü
Yukandaki uygulamada sadece FC,t bloğu "SCL" i|e oluşturulmuş ve LAD ile oluşturulan OB '1 içerisinden çağnlarak kullanılmıştır. Yukarıda anlatıldığı gibi istenirse pğeyi meydana getirecek bütün bloklar "SCL" kodları
ile oluşturulabilir. Örneğin yan tarafta daha önce oluşturduğumuz FC '| ile beraber OB 1'de "SCL" kodları ile oluşturulmuş ve içerisinde FC 1 çağrılmıştır.
ııc{
'SCL"de büyük/küçük harf ayrımı yoktur. Yani kodlar ister büyük ister küçük harfle yazılsın aynı fonksiyonu çal|ştırır. Ömeğin "VOID" ile "Void" aynı işi yapar. 298
Yavuz Emiloğu
Eğer programda değişkenler tanımlanlp program bu değişkenlerle parametrelendirilerek yazılacaksa, "VAR_..." i|e "END_VAR" arasında değişkenler tanımlanır. Program bu değişkenler i|e yazılır ve çağrılan alanda değişkenlere mutlak adresler atanır. Eol{clld Fcığ tFc DodiuiiıiiD .teğ.ti Eç1 Eibi. : voID .9rc.i d6Düş .teğ..iDiD !ipi.
vAR If,Prol // Giİış EııD vAR
ile "END_VAR" ile geçici (Temporary) alanl tanlmlldlr. İstenirse yandaki gibi giriş/çlklş Vb. değişkenleri içinde alanlar tanımlanabilir.
pa:Ne!!ele!ı
VAR_Iİ_om // Gllaş ED_VAR
çıtış
par@eçleıe.i
v!ı olIllm
l/ Çaİaş pa:@et!ğle!i
ExD vAR
\lAR_TlılP // TeEp ExD vAR
Editöre alınan
Fc'de "VAR_TEMP"
tğİü ceğaşkenl.r
lBGIıa
//Pİoq:d k.dtö!ı EİD EO*cfIoİ
Ömeğin aşağıda giriş degişkeni olarak "START" ve "STOP", giriş-ç|kış değişkeni olarak "HAFIZA" ve çıkış değişkeni olarakta 'MOTOR" parametreleri tanımlanmıştır. metre tanımlanmadı lI n silinebilir "TE]tiP" alanında bırakılabilir Foıağrloı| Fc3: volD Tanımlanan değişkenlere bağlı olarak "BEGlN" alanı VAR_IİPm altına istenen kod yazılmıştır. START: BooL, Yan taraftaki "FG 1" içerisinde parametrelendirilerek sToP: BooL, EiD vAR yazılan program aşağıdaki gibi "OB l" içerisinde çağnlarak mutlak adres atamalarl yapllmıştır. vAR_Iıa_oIrT EAFI zA : BooI- ,
EİlD vAR
vAR_omPm ucton:BooL, ExD ı/AR
vAR_TEirP /
/
İen
EİD vAR
j Lütn değişlenleİ lrAR_TTuP
/1 Reseİved iDfo : AaRAY[o..r9l oE BYTr, // Teryorary va:iable3
BEIGIı{
Ir
START=I AND sToP:o alEf,
EA.FIzA l =1,
ElJE
EafIzA: =o, EİD_IF, HcİIoR : =EAfIzA, EılD EuıİcİIolİ
EI{D_VAR
Fcs (START :-I0.
zm
0.
sToP :=I0. 1, EAI.IZA: =Ho.
o,
uoToR:=Qo.
o),
oRGAxIzATıon Bı.ocK
"SCL"de
ayrılmış sözcüklerini kullanarak kodunuza açıklama satırları Bu ekleyebilirsiniz. sözcükleri izleyen satırlar derleyici tarafından yorumlanmayac.aKır. "ll" belirteci kullanlldığı satırın sonuna kadar etkilidir. "(*...*)" ise içine aldlğl tüm satlrlarl aç!klama satlrl olarak işaretler. SAYl't := 1234; ll Bu bir açıklama satırıdır. (*Bu aradaki tiim satıdar açıklamadır. Dedeyici tarafından yorumlanmayacaktır.*) Yovuz Enircğlu
299
Programa ait sinyal etkileşimleri ve bellek durumlan diğer programlama dillerinde olduğu gibi izlenebilir. Bunun için program önce kaydedilir, derlenir ve sonra PLC'ye gönderilerek izleme konumuna geçilir. lzleme konumuna araç düğmelerinden "illonitor" (Gözlük sembolü) veya Menü Monitod' s lebilir. nden "De Effiİıffi Yanda "l0.0" sinyali uyarılı "1" (True) olmasına DlİrlEl €] -|-| s|h|6| ellealılĞl @ ı<
)
§ffi""",,",,," ğI -|c J,lblGl
Dl0rlEl B
§cı
*rc4) -
et|grlİlĞ|
sat uy6iıı^MA\9,iATrc
|F ı<|>l||Ttleltrl ı4
:=|o
Yanda ise her iki giriş sinyalide uyarılmış, dolayısı ile çıkış sinyalide "'t " konumunu almıştır.
IxIo|-
oh@ıiı+2prvm oıünE
onGAlİzATIox_BrocE oBt q0.0
q0.0:=i0.0 tND 10.1j
İiD
oBGJ!İIZATIo§
- İnD!, Io.o = ıırİ, lo.ı -
ınDE
Brrcr
Program mutlak adreslerle yazllabileceği gibi sembolik adreslerle de yazılabilir. Ancak rekir. ramda kullanılacak sembollerin önceden sembol tablosuna eklenmesi
E*aĞt*ff5,
:l"l]- _-, -"-,,",
a. Edl h6t 9tc Ddg sAl olİrlel - l -| s |b|Ğ| e|loglılğl
ğ
|6 fu\.,urrı
B scr-*.dl:_
!.|l,|
|
[
BlEltrl ğ|
Dlarlgl
€l
-
ZATIOX B
sbrtl
st rtr
7
t
0.0
0.ı
0.0
8oo( Bool, Boo[
'xJll
İzleme konumundan çıkmak için "Debug Finish Debugging" menüsünü (veya ekranın sağ bölümünde, fare'nin sağ tuşu tlklayarak "Finİsh Debugging" tıklanmalıdır.) kullanmak gerekir.
)
Deh!99in9
cti+Fı ORGAİaI
1
3
tğ,i|
Ffi$
X
2
.t!Eı
E|. Eü Lgt Ptc
a
call Envi,onmeut Blo
Eğer izleme konumuna geçişte aşağı soldaki gibi bir uyarı a|ınırsa sağ resimde gösterilen "Options Customize" ile açılan pencerede "Gompileı'' alanında "Create debu info" aktif edilmelidir
)
s7
E
scl D.h€g.,
@
olcılcl
ğ
c.nnot t Jt blod.
Ddug info
ctü-Aı{ b| l?l i=1.1xl.
fue* ad, |aE Irri|6ri
wa5 not g€rı.,at€d.
Ta.nam
300
ı,
Yatuz Eminoğlu
1.
"Fc" MoDÜLLERlNİil TANıMLANMASı VE çAĞR|LMASı
Parametrelendirilmiş fon ksiyon tanlmlama FUNCT|ON FC1 :VO|D VAR_INPUT START:BOOL; i/ Giriş parametreleri END VAR VAR_IN_oUT M1 :BOOL; // Giriş-çıkış parametreleri END VAR
VAR_oUTPUT
MOTOR:BOOL; i/ Çıkış parametreleri END VAR
Pa ra m et re l end rl mem ış fon ksiyo n ta n m la m a FUNCT|ON FCl : VO|D I
BEGlN
Q0.0:=l0.0 AND NOT l0.1; // Program kodları
END FUNCT|ON Parametrelendirilmiş fonksiyon çağlrma FC'l (StarL=l0.0, stop:=l0.'t, Motor:=Q0.0);
VAR_TEMP M2:BOOL; // Temp türü değişkenler END VAR
Parametrelendirilmemiş fonksiyon çağırma
coNsT
A1:=1234i
//
Sabit değiŞkenler
END coNsT
Fc1();
BEGlN Motor:=start AND NoT Stop; //
Program kodları
END FUNCTION
ömek: Ömeğin yan tarafta "START" sinyali açıldığı ve "1" "STOP" sinyali "1" olduğunda vananın kapand|ğı bir program değişken tanımlanarak yazllm lştır.
olduğunda
En.cİIoll Fc2: voID YAIİ_İİİPOT
sTtRT: aool; sToP: Boot;
ğxD vAR
vAR Iıa oğr
Vaıia: Booı; ExD_vAR BEIGIıl
rEsTAİr=llEtr v^Jn: =1;
EİD_IP;
IE sıoP
=
l TEıa
vAl6: =0, ExD IP;
./,/ EĞER
//
sTiİİA Ei5:Lr{Işsı
,!,aİaAY] iüç
/,, aĞaR sToPA BAsarHIşsA
//
'JANAYI I(APAJ
E§D FlrılcİIo{
Yukarıda oluşturulan fonksiyon ve tanlmlanan değişkenler başka bir program bloğu içerisinden çağnlarak adreslere bağlanmıştır.
EIr cTlox BEGIİl
Fc1 : voID
Fc2(START:=I0.o, sToP:= Io.1 oR I0.4. \aİA::QO.o}, Eİ{D El]ııc,TIoıI
Yavuz Erninoğlu
30,,
,7
.] 2. FoNKsıYoNAAlT GERi DöNOş rlPİ -Fonksiyonun geri dönüş tipi BöoL, lNT, woRD, REAL gibi tipler.olu_p çağrıldığında bu gönderir. VolD anahtar sozcüğü tipteı
-
-
EgxcTloıl Fcs : VtR_lı{PuT
START1
BooI-
Eı
BoöL;
:
sTjıRT2 : Boo1- ,
EşD vAR
I0
vAR_coTPm uClIoR : EooL, EllD vAR
Fcs : =STARTta5TART2; ı,IğToR::STARTI cR sTART2;
EEo
59E1
ırr_vıİ
9nf2
!ğlo9,
l!
BEGIİ
Fc5
E5
ı-a0
Fonksiyona ait geri dönüş tipi "Bool" olarak tanımlanmış ve "STARTI" ile "START2" sinyallerinin birlikte uyarıl ı olduğu durumda geri dönüş sinyalinin "1" olacağı tanlmlanmlştır. Bu arada fonksiyonun normal çıkışı, sinyallerden birinin uyarlll olması durumunda "MOTOR" çıkışı "'t " olacaktır.
0
ı
EEo
l0.
!rr^E1
nzl_YzlL
I0.
5rAır2
lo!m.
o
ı
a0 1
ErD EOBcrIox Eoıağrloıl Fcs : l'oID VAR_IİPlIr
START1: Boo1,,
sTeİT2 iBool; EılD vAR vAR_o{rtP]m
ılgtoR : BooIEİD vAR
a0
,EaRl1
I0
lrİjARl2
Fonksiyona ait geri dönüş tipi "VOlD" olarak tanımlanmışhr. Bu durumda geri dönüş sinyali izinli değildir. Dolayısı ile ancak 9eri dönüş sinyalini oluşturan kodlar devre dışı bırakıldığında fonksiyon derlenmiştir. Bu durumda "RET_VAL" çıkışı oluşmamaktadır.
El@
EE
l(rDo9
ao.0
;
BF,Glıl ,1/
Eç5 : =START165TART?;
uoıoR: =sTeRT1 cE: STAR?2,
EıiD FtltlğtIoıl
EtlxcTlor Fcs : INT VAR_IxPm
El
SAYI1: IİIT, SAYI2 : IıitT;
ExD_v]AR
vAR ouTPm
40
sArİı
30
sArI2
ToPLAH: INT; EIıD_VAR VAR_TEı{P EATA: rİTT;
lİ
ExD vAR
BEGIx
Fcs : =HtİA, IE (SAYI1-5AYI2 EATA:
ELSE,
=lo0,
)
>1oo mEx;
:
:SAYIı-sAYr2
302
nE_!ıIl
Pc5
EEo
sArIı
ıEl_v!!
70
5AİI2
mEttl.
EATA: =0,
TOPLA}İ
İİo
40
EtiD_IF; ExD EIıİerIoE
Fc5
;
Yavuz Eminoğlu
Geri dönüş sinyali genellikle fonksiyonlarda hata tanlmlamada kullanılır. Örneğin yan tarafta "SAY|I" ve "SAY|2" toplamları "100"den küçükse geri dönüş sinyali "0", "100"den büyükse geri dönüş sinyali "100" olacağı tanlmlanmlştlr.
y' 3. "F9" İ'oDÜLLERİNİN TANıMLANMASı VE çAĞRıLMASı
anlmlanmasl Ve Çağnlmasl Fc'|erle aynıdır tek farkı _l çağrılırken DB,lerle kullanı|ması gereğidir. Ayrıca bir geri dönüş değeri oluşturmaz.
Ömek: Yukarıda FC de
zdı lmlz
iFB,
Flrıactld Dı.&r f32 van_İrlllt 51tRr
i
Eooj.;
rak u ulama e kl relim, Program fonksiyon bloğu içerisinde oluşturulduğunda geri dönüş değişkeni tanımlamaya ihtiyaç yoktur.
sToP: Eoor_,. EıD vAR VAR_Iİ_olrt
vtln: Booı,
EİD_vAlı BEGIİ
IPsTaıT=lTEE! ram:=1;
ID_IF; IP sloP - l E8D
//
EĞER stARTA Basa!.tlşsA
,/,/ t AJIAII
lİlİ
Ili
Aç
// EĞfR sToPA BesıIJ{lşsA // VANAYI KAPiT
EİD lt İcflo|ıı Bı.(Er
Fonksiyon bloğu içerisinde yazılan program çağrıldığında bir data blok ile ilişkilendirilmesi gerekir.
EoİcTIof, EE!. : VoID
DaGIH
FB2.DB2(START::rı.o. sToP:= I1.1 cR
EılD EIlxcTIoİ
Yavuz Emin€lu
rı.{,
\.AİA::Q1.o},
303
J
+.
"oe" ıııoo0ı-ı-enlıı iıı TANıMLANMAsı vE çAĞRıLMAsı
gibi "scL" editörüne eklenir, Data blok modülleri de diğer program modüllerinde olduğu DB veya lnstance DB) Btock Tempiate (lnsert
)
)
Daha sonra "STRUCT END_STRUCT" arasında değişkenler tanlmlanır ve başlangıç
DATA_BL(g DBI stan
qt
: BooL t =o ; DuRDğR:BooL:=1;
değederi atanır. "BEGlN" altında ise'ANY', 'STRlNG" tipi değişkenler tanlmlanIr.
BesI.AT
sIcAigİK
l
laoRD
I5TENEN_SEVItE
:
=E* 16* 0 , : ItitT : =120
j
iutılı
/' jü;l
YAz:ına:l:e
EI{D_SllRIrcT
BBGIİ EİD DATA BlncK
"SCL" editöni içerisinde data blok oluşturulduKan sonra proie içerisinde bilinen şekliyle data blok eklenmiş olur.
l- F,|. tdit l,Edr Plc D
e
cg
$ El
C
yg
sift tü
w"üd.i,
-
E L
BooL
tr
<( >)
D E l?
EAJ.SE
TRoE
sIcıİi,Iı tstENEN stlgtlE
ıoBD
llal6a0
Im
I20
AcıRtAıo BonAtA
l.zIlnBİıİı
Artık ilgili data blok içerisindeki veriler projemiz içerisinde daha önce tanımlanan ya da daha sonra anlatacağlmlz kalıplarla istenen yerde kullanılabilir.
DBl.DBWo DB2.DB)Q0.4 gibi. oRGAEI
zAlloıl BL(E oEı
BEGIİ IF DB1.sAYI < 50 TEEN DBl.vAt{A::1, ELsE DBl.DBxo.0:=o,
VAR_TEHP
IDfo: ARRAYIo. .19l oE BrIE;
END vAI'
EıaD IP; .1: =Io.
Fc1 () ; E!{D oRGAİı ?nTloıl
o oR DBı.DED(o.0;
BLEK
IE
DBl. DBw4 = w*16*5o TEEİI DB1 . DBx5.0: =1;
ELsE
DB1 . HoToR
EılD IE,
Data blok içerisinde tanımlanan bellek alanlarına ister mutlak ister sembolik olarak ulaşılabilir. Yandaki data bloğun sembolik ismi
vil{A sAYI DEvıR lroloR
"DATA BLOK"tur.
lF DATA_BLoK.SAYı
VANA:=l; END lF 304
>
30 THEN
t
lF DBl2.sAYl
Yıuız EminoğIu
i
EAJ,sE
>
IlilT
50
rcRD
iİl16*50
Eootl
EAr,sE
30 THEN
DB,l.DBxo.0:=1;
END lF
:o
/,
"oB" i,loDüLLERlıühı TANııiLANilıAsı oB modülleri bilindiği gibi çalışma şartl gerçekleştiğinde otomatik olarak çalışn modülleridir. Ömeğin OB 1 çevrimsel yİnl her rtvrim, OB 1O0 ise CPU'nİ;
p9s9m
STOP'tan RUN konumuna geçişte çalışır.
Organizasyon bloklarına ait şablon yandaki gibidir. Yani menü içerisinden Block Template "lnsert OB'' eklendiğinde yandaki kalıp oluşmaktadır. Oncelikle diğer bloklarda olduğu gibi "oBxn" alanındaki "x[" silinip ilgili oB numarası yazılmalıdır. "vAR_TEiiP" a]tındaki "info : ARRAY..." alanı silinmemelidir. |ıgili oB içerisine yazılması planlanan kodlar '.// Statement' alanına yazılmalıdır.
)
oR(,lİIaLTI6 BtocE oBrİ!
)
on(,ltrIal?Iol Bı.GE vtR_TEılP
Iato: ARı^yt0
E§D vAIl
BEGIıl Qo. o:
o810o
19l G EYIE,
-1,
ElD o§GAİIzA?İğ BlocK
vAn_fruP
// Regeİved info ! ARIıAY[o..19! oE BYTE; // Teoço:aıy Vaİiableg
EI|D
vAR
/,/ sEatenenE
lfD
oReıİIzATIoN Brccr
Yan tarafta oluşturulan "OB 100" içerisinde "Q0,0"a "1" değeri atanmıştır. Yani CPU her çalışmaya başladığı an "Q0.0" çıkışını "1" yapacaktlr. "OB l" programında ise, "Q0.1" çıkışı "l0.0" giriş bit'ine bağlanmış ve "FG l" çağrılmıştır.
onGAIrzA?Iol Bı-ocr oBı vAR_lEılP
IDfo: ARnAİ[o..t9ı oP
E§D vAR
BYTE;
BB{:lİ Qo.1:=ro. o;
rcıil,
EİD oRGAXIZATI@
BL&r
FC, FB ve OB'nin birlikte ayııı editörde oluşturulması ve bu programın derlenmesi sonrasında işletim sistemi; OB 1, FC 5, FB 5 ve onunla ilişkilendirilen DB 12'yi oluşturarak projeye ekler.
Eulserlox EcsllroID BEGIİ
Q0,0:=I0.2 AND İ0.3; EııD Flrxmloıl
EIrİcuoıl_BLocE FBs BzGIx
Q0.1::I0.5 t§D r0.?, EIİD_FIrİcrIox_Bl]Er eG/ıİI zATIox Bl.rocR oBı FCs (); FBs - DBı2 () ;
ExD oRGAıfI zATIoNc
Yavuz EEinoğlu
Bı,o« 305
Kaynak dosyaları oluşturulurken bloklann belirli bir sıraya göre oluşturulmalarl gerekir. Uyulması gereken kurallar aşağıda verilmiştir. .Data blokları kendilerine ulaşan tüm program b|oklarlndan önce yer almalıdır. .Bir fonksiyon bloğu ile ilişkilendirilmiş data bloğu, fonksiyon bloğundan sonrEt yer almalıdır. .Diğer bloklan çağlran oB,t , kaynak dosyaslnın sonunda yer almalıdır, .Biİkaynak doİyasından çağırdığınız ancak aynı kaynak dosyasında yer almayan bloklar, kaynak dosyisı derlendiginde daha önceden kullanıcı programında yer almış ve CPU'ya yüklenmiş olmalıdır. .Kullan,c, taiafından tanımlanmış veri tipleri (UDT), kullanıldıkları bloktian önce tanımlanmalıdır|ar. .Bir "UDT"ye ait veri bloğu "UDT"den önce oluşturulmalldır.
Jo."scı-"
EDITöRü lçERlslNDEN BLoK K|LITLEME Blok tanımlama alanına yazılan "KNOW_HOW_PROTECT" metni ilgili bloğu kilitler. Yani pğe içerisindeki 'SCL" editörünün (Kaynak dosyası) taşınması veya silinmesi durumunda bloğu açtığınızda kodları görme imkanı vermez. Program çalışır ancak kodları görüp değiştiremezsiniz.
i wEdotı eıIogl.ılĞl
F|e Edt h!.rr Ptc Döiğ vi6İ o9ü
D|ırlgl €| -|-l,rlalal
x!lo!{ Eot{ PRğtEcI qo, o: =i0.
o
'
l{+
"l
al
_lslrr
SCL UYGULAMA
E- I
E
D
lc g]0{1 ] cPtl 3 5.2 PN/DP
s |MAT
?
Eı s7 Pia,glğr{]1 s""o" r-6l :-6 Bbcts
io.1;
END PltDtcrIoıa
Kilitlenen bloğun yeniden açılabilmesi, silinen bloğun yeniden projeye eklenmesi ve konan metnin silinip yeniden derlenmesi ile mümkündür. Bunun için kaynak dosyası üzerinde sağ tuş ile "Export Source..." kaynak dosyası bilinen bir yere kopyalanmalı sonra silinmelidir. Açllmak istendiğinde ise proje ağacı içerisindeki "Sources" üzerinde sağ tuş Extemal sou]ce.." ile kaynak dosyası projeye alınmalı "lnsert New Object "KNow How PRoTECT" metni silinmeli ve yeniden derlenmelidir.
)
306
Yavuz Eminoğlu
E. KÜTÜPHANE FONKSİYOilLARİNİ KULLANMA "SCL" kodlan içerisinde de diğer programlama dillerinde kullandığımız STEP 7 kütüphane fonksiyonlarını kullanma imkanı vardır. fitE
Pıc
Dlarlgl
Ğ
8b.}TğnP|i. coitD|
sır.tlrı
ğ
Bunun için "SCL' editörü içerisinde
ıılrı EIEltrl X4 ı=|ı|x|o| "lnsert ) Block Gall..." ile açılan pencerede "Standard Libıa4/' altından istenen programlar bulunup onaylanarak program alanlnda açlllr. Örneğin yan tarafta daha önceki uygulamalarda sıkça :,] kullandığımız " fonksiyonu uygulanmıştır.
Fonksiyon onaylandığında yan taraftaki gibi parametreler ve veri tiplerini gösteren yapl ile kaşımıza çıkar. Bu parametreler uygun değişkenlere atanarak kullanılabilir.
Fi|. Edt lEüt Ptc
D|arlgl scAİ€
Deö.Jq
lil:= -1-1xlglal tN:
llrlrclIoı !c5
E ıEtİatt 1: sxAlA
voID
;Ni l.dlüt ,EI_I,Iğ := //''NT ,I,o_l.ıü ;= /./ IN: P€nt , BIPolnR := /l ]N: BcoL
EE
PIlİ272 Gıaıs
VAR_oDİP(ır
cıxls: nEAi; EİD vAR
2-
000000e+002_Dsİ
5 .
0o0000.+001
ı,ş2:= scı,.E (IE :=GIRIs ,// alİ. Im
REA!
FoNİsİYolgD
GIRls: Irğ,
osT: REAL; Aı.ı: REal; BılD vAR
qı|s*l*
//
{IN
.ow := // ogr: ) , /,/ woRD vAR_IİPm
Vrd
Ec5
Eııo
cIlI5
!{Do
_ırJ
.8İ_LDt :=osT // nal REA! ,I,o_!ıu :=ır-T // Ilül REA! .BıPo!AR :=ğ12o.o // üı: aco!
,oğr :=cıEIs /,/ cm:
',
//
i,iaRD
REaiı
EİD ElnaefIoİ
YaİİJz Eminoğlu
307
F. "SCL, PROGRAMLAMA DİLİ ELEMANLARİ 1 -isLEMCiLER (oPERATöRLER) 2-"scL,NlN KULLANDIĞl ANAHTAR sözcÜKLER 3-ADREsLEME çEŞlTLERl
4_ŞART
SözcÜKLERi
s-DöNGÜLER
6-SIÇRAMALAR Ve DlĞERLER| 7_sABiTLER 8-DEG|ŞKEN TANlMLAMA 9_TlMER,LER (ZAMANLAY|clLAR) ,1
o-coUNTER,LER (sAYlclLAR)
11_MoDÜLLER (Fc, FB, oB, DB,) 1. lŞ LEMCiLER (operatörler
ARİTMETİK
ÇlKARMA + lşı-eııclı-en ToPLAMA l BÖLME çARPMA lNTEGER BOLME D MODÜLO BÖLME M oD üS ALMA : AND veya & VE LoJıK :OR lşı-eıtıclı-en VEYA ÖZEL VEYA : XOR
2. "scL"NıN KuLLAND|Ğ| ANAHTAR AND
ANY
ARRAY BEGlN BLocK_DB BLocK_FB BLocK_Fc BLocK_sDB BLocK_sFB
BLocK_sFc BooL BY BYTE
cAsE
cHAR
coNsT
coNTlNUE couNTER DATA BLOCK
DATE DlV
Do DT
DwoRD ELsE ELslF END_cAsE END_coNsT END_STRUcT END_VAR END_wHlLEEXlT
FoR
FUNcTloN FUNcTloN_BLocK
GoTo
308
ışLEMciLER
olĞenı-enl
oF oR oRGANlzATloN_BLocK
ATAMA PARANTEz
END_lF END_LABEL
:<>
:NOT (
END_oRGANlzATloN_BLocK END_REPEAT END TYPE
VAR VAR_IN_oUT VAR_INPUT
TlME TlMER TlME_oF_DAY
VolD wHlLE woRD XoR
THEN
To
LABEL
UNTlL
NlL
EŞlTMl BüYüK EŞITM| KüÇüK EŞlTMl EŞlT DEĞ|LMi oeĞiı-
PolNTER REAL REPEAT RETuRN s5TlME sTRlNG sTRUcT
END_DATA_BLoCK ToD
lNT
BüYüKMü KüçüKMü
sözcÜKLER NoT
lF
onre-ıııo_rıve Moo DlNT
MANT|K
wPE
END_FoR END_FUNcTloN END FUNCT|ON BLOCK
Yavuz Eminoğlu
VAR_oUTPuT
VAR_TEMP
EN
ENo
oK
TRuE FALsE
3.
ADREsLEıtlE
E
Alman normu Ax.y ABx ADx AWx AXx.y
ERi "lEC" noımu
Adres
Uzunluk
Qx.y
Bit
QBx QDx QWx O(x.y
Byte
Çıkış
Double word Word Bit
Dx.y
Dx.y
DBx (DBBx)
DBx (DBBx)
DDx (DBDx)
DDx (DBDx)
DWx (DBWx)
DWx (DBWx)
Word
D)«.y (DBXx.y)
D)«.y (DB)«.y)
Bit
Ex.y
lx.y
Bit
EBx EDx EWx E)fi.y
lBx lDx lWx l)«.y
Mx.y
Mx.y
MBx.y
MBx.y
MDx MWx
MDx
Double word
Byte
Giriş
Double word Word Bit
Bit Byte
Merker/Bit Memory
Double word Word
MXx PQBx
PABx PADx PAWx PEBx PEDx PEWx
=
Byte
Data b|ok
MWx
MXx
"x"
Bit
]
Çevresel Çlklş
PQDx PQWx
Bit
Byte Double word Word
PlBx PlDx PlWx
Çevrese| Giriş
Byte Double word Word
değeri "0've "65535'araslnda (Kullanılan cPu'da izin verilen alan),
"y"
=
değeri ise '0" ve "7" arasında olmalıdır.
Örnek:
11.0 Mw10
PQws DB2O.DBW4 Q124.0
Yavuz Eninoğlu
1124.7
309
G.ŞART SÖZCÜKLERİ "lF" yapısı:
lFa=bTHEN;
//
eğer sonuç evetse yapl|acak işlem alanl
ELS|Fa=cTHEN;
//
eğer sonuç evetse yapılacak işlem alanı
ELsE;
//
eğer "lF" mantığının sonucu hayırsa yapılacak işlem alanı
END_lF; Eolıcrloiİ Fc50 l nşI
ömek:
cOİsT
a::1;
b,|:2;
EırD coxsT
c::3i
/,|'a" eş|E mi "b" ye. sonuç hayat olduğu ıçrn //Çn.0 : 0 otıi:.
IPa=bTEEı| Q0.0: =1;
ELs IE B < c
//"a'
TEEJİ
Q0
/ / çg.l
-
f
Ufu_.
//"a" eşL.. ceğalse "b" ye. goflrç eveE oıdr:ğLr içj-n //Ça.o = o ali;!.
ELsE Q0,0l=0; ExD
k!iç;k mü nc" alen. sonuç evet olduğu açin
ıF;
Fcso := 10o, EılD EIrIcrIoıı Not: Yukarldaki yaplda olduğu gibi her seferinde ELslF ve ELSE sözcüklerini katma gereği yoktur.
"CASE" yapısı: CASE "değeı'' OF
/r'değer lNT türü
0..3: 8
ELSE:
//
bir değişken olmalı arasında ise yapılacak işlem alanı
//
deger
//
yukarıdaki sayı kaşılığı yoksa işlem alanı
=
8 ise yapılacak işlem alanı
END_CASE; örnek:
FtrxcTIoI{ Fc50
:
IIİT
coxsT Et{D coxsT
beqrin
cAsE a oE
EİD
o..3
:
ELSE
:
Qo Qo 1: =1,
S..iiilar::_ drşıİda ıse Qo,2 = 1 oitrl.
c-AsE:
Fcso := 1o0, EılD Plnİcrlox 310
Yal,üüz
Eninoğu
H.DÖNGüLER "FOR" döngüsü: FoR "sayaç değişkeni" := "başlangıç değeri" To "bitiş değeri" BY ''adım değeri" Do ll yaplac,ak işlem alanl ;
END_FOR; Örnek:
FOR abc:= 0 TO 100 BY 10 DO lF abc > 60 THEN Q0.0:=.1; END_lF; END_FOR;
"WHlLE" döngüsü: Başlanglçta mantıksal bir işlem içerir. Eğer mantıksal işlem sonucu evet
ise sürekli döngü oluşur ta ki sonuç hayır oluncaya dek.
WHILE a = b DO //eğer işlem sonucu evet ise döngüye girilir ll yaplacak işlem alanı END_WH|LE;
Örnek a
b:=3
1
WH|LEa=bDO b=b-1;
END_WHILE;
"REPEAT" döngüsü: While döngüsünden
sorulması.
tek farkı şartın döngüye girildikten sonra
REPEAT //
yapılacak işlem alanı
UNT|L a = b
END_REPEAT; örnek:
a:=
'1
;
b:=!;
REPEAT b:=b-'1;
UNT|L a = b
END_REPEAT;
Yıvuz Enıinoğlu
311
ı. sıçRAtlALAR vE DıĞERLERı "GO TO" yapısır Etikette belirtilen yere sıçrEır
LABEL
Etiket1;
END LABEL Etiket1:
GoTo Etiket1
;
"EXIT" yapısı: Döngüyü kırar.
WH|LEA=BDO lF Q0.0 ='|: EX|T;
END_WHlLE;
"RETURN" yapısır Programı ve fonksiyonları sonlandırır (FC FB OB).
FuNcTloN BLocK Fc11 RETURN; END_FUNCTION BLOCK;
"CONTINUE" yapısı: Döngünün basına sıçrar.
WH|LEA=BDO lF Q0.0 = EXIT;
312
1;
Yıiüz EEinoğu
Sabatler ve değişken tipleri
Bool
ssTlME TlME_oF DAY
DATE_AND_TlME
WoRD DwoRD lNT DlNT
cHAR
REAL ANY Po|NTER TlMER
coUNTER BLocK_DB sTRlNG sTRUcT UDT
coNsT ıNTEGER
BlT 2 BYTE 8 BYTE BYTE 2 BYTE 4 BYTE 2 BYTE 4 BYTE 1 BYTE 4 BYTE 10 BYTE 6 BYTE
STATIC: Sadece modulun çağrılma esnasında aktifl eşir. Program modülünden çıkıldığında durumunu korur kaybolmaz.
1
lsTEĞE lsTEĞE lsTEĞE lsTEĞE
TElilP: Modül içersinde sadece modülün çağnlma esnasında oluşturulur. Program modülünden çıkıldığında kaybolur. VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT Sadece FB ve FC lerde fonksiyonun parametrelendirilmesinde kullanllır.
CONST: Sabit sayılardır. Derlendikten sonra değiştirilemezler. BAĞL| BAĞLI BAĞL| BAĞL|
LABEL: Program içerisinde sıçftımalarda
kullanılır.
12u,
-12
tamsayl hexedecimal octal bin
8#4562 2#1011o111
REAL
Virgüllü sayı
0.12452, -26.254
TıME
DATE#1995_11_11 D#1995_05_05 TlME#10.5s T#3D_2s_3Ms Ttt2D 2.3s
Tl M E_O
,16*ffia
ken tanımıama -Başlangıçta değişken türü bellrlenir. (INPUT, oUTPUT, lN-oUT, TEMP, coNsT)
VAR_TEMP -Daha sonra değişkenleı tanımlanır,
€n
MOTOR:=BOOL; lSl:=WORD; son olarakda işlem sonlandırılır.
END VAR
:
F_DAY#
TOü11:11:11
1
2:
1
2:
1
2.2
Örnekler: VAR_ıNPUT MOTOR:=BOOL; sEVlYE:=woRD;
END VAR
STRUcT
VANA:=BOOL; SlCAKLlK:=lNT; END STRUCT;
TYPE AYARLAR //UDT TAN|MLAMA
sTRucT
START:=BOOL; STOP:=BOOL;
LAMBA:=BooL; END_STRUCT; Yavuz Eninoğlu
313
J. zAIylAN LAYıGıLAR (TıMER) T_NO : Timer numarası TO,T1 gibi datia tipi "TIMER" S : Timer set ucu, data tipi "BOOL" TV : Baslangıç zamanl data tipi "S5T|ME" veya "TIME " R : Timer reset ucu, datia tipi "BOOL' Bl : Zamanın hex formatında çıkışa aktarılması, data tipi "\rVORD" O : Çıkış bit'i, data tipi "BOOL' zAIUlAN
ELEıiANı
özeı-ı-iĞl
'SCL" PROGRA,itil
s
TıPl PULSE (T_NO:=T'l0, S:=TRUE,
s
PEXT
TV:=T#1s, R:=FALSE, Bl:=biVal, Q:=actFlag);
S_PULSE (SP): Giriş sinyalinden, ayarlanan süre sonra çıkışı aKifleşir.
(T_NO:=T10, S:=TRUE, TV:=T#ls, R:=FALSE, Bl:=biVal, Q:=actFlag);
S_PEXT (SE): Giriş sinyalinden, ayarlanan süre kadar çıkışı aktifleştirir.S_PULSE den tek farkı
(T_NO:=T10, S:=TRUE, TV:=T#ls, R:=FALSE, Bl:=biVal, Q:=actFlag);
S_oDT (SD): Giriş sinyalinden, ayarlanan süre sonunda çıkışı aktifl eştirir.
s
oDT
s
oDTs (T_NO:=T10, S:=TRUE,
s
oFFDT (T_NO:=T't0, S:=TRUE,
TV:=T#ls, R:=FALSE, Bl:=biVal, Q:=actFlag); TV:=T#1s, R:=FALSE, Bl:=biVal, Q:=actFlag);
hafızalı olmasıdır.
S_ODTS (SS): Giriş sinyalinden, (Hafızalıdır, giriş gitse bile) ayar|anan süre sonunda çıkışı aKifleştirir. S_OFFDT (SF): Giriş sinyali ile çıkış aKifleştirir, giriş sinyali gittikten ayarlanan süre sonunda çıkış
silinir.
Not: Timer fonksiyonlannın geri dönüş değeri WORD'dur. WORD bir değişkene atanmalldlr|ar.
ömek: a) MWl0:=S_PULSE
(T_NO:=T2, S:=l0.0, TV:=T#2S, R:= l0.1, B|:=MWO, Q:=Q0.0);
311
Y3vuz Eminoğu
K.
sAYıclLAR (couNTER}
Cl gibi data tipi "COUNTER" Geri sayma ucu, datja tipi "BOOL" : lleri sayma ucu, data tipi "BOOL" : Sayıcı set ucu, data tipi "BOOL" : Başlangıç zamanı data tipi 1A/ORD " : Sayıcı reset ucu, data tipi "BooL" : Değerin hex formatında çıkış aktarılması, data tipi ryı/ORD" : Çıkış bit'i, data tipi 'BOOL"
C_NO: Sayıcı numarası C0,
CD CU S PV R CV O
:
sAYlcl TIPLER|: Jleri geri sayıcı: s_cUD
(C_NO:=C'l2, CD:=l0.0, CU:=l0.1, S:=l0.2 & l0.3, PV:='t20, R:=FALSE, CV:=binVal, Q:=actFlag);
Jteri sayıcı:
s_cU
(C_NO:=C'l2, CU:=l0.'t, S:=l0.2 & l0.3, PV:=120, R:=FALSE, CV:=binVa|, Q:=actFlag);
€eri sayıcı s_cD
(C_NO:=C12, CD:=l0.0, S:=|0.2 & l0.3, PV:=120, R:=FALSE, CV:=binVal, Q:=actFlag); Not: counter fonksiyonlannın geri dönüş degeri woRD'dur. WoRD bir değişkene atanmalıdırlar.
örnek: MW2:=S_CD (C_NO:=C1, CD:=l0.0, S:=l0.1 & l0.2, PV:=30, R:=0, CV:=MW2O, Q:=Q0.0)
Yavuz EDinoğlu
3,15
L. "scL"DE KENAR DARBELERi KuLLANMA
Diğer programlama dillerinde de olduğu gibi 'SCL"de de farklı şekillerde pozitif (Yükselen) ve negatif (Düşen) kenar darbelerini oluşturmak ve kullanmak mümkündür. Bunlardan ikisine ait uygulama aşağıda verilmiştir. Ömeğin aşağıdaki uygulamada kenar darbesi oluşturulup istenilen yerde kullanımına ait ömek Verilmiştir.
DÜŞEN KENAR DARBESİ FUNcTloN FC2: VolD
YÜKSELEN KENAR DARBESİ FUNCT|ON FC1 :VO|D VAR_INPUT POZ_GlRlS:BOOL; END VAR
VAR_INPUT NEG_GlRlS:BOOL; END VAR
VAR_oUTPUT POZlTlF_DARBE:BOOL; END VAR
VAR_oUTPUT NEGATlF_DARBE:BooL; END VAR
VAR_IN_oUT POZlTl F_DARBE_HAFlZA: BOOL; END VAR
VAR_IN_oUT NEGAT|F_DARBr_HAFlZA: BOOL; END VAR
BEGlN POZITIF_DARBE := POZ_G|R|S AND NOT POZlTlF_DARBE_HAFlZA;
BEGlN NEGATIF_DARBE := NOT NEG_G|R|S AND NEGATlF_DARBE_HAFIzA; NEGATIF_DARBE_HAFIZA := NEG_GIRIS; END FUNCT|ON
PozlTlF_DARBE_HAFlzA END_FUNcTloN
:=
Poz_GlRls;
B ra.trcİL ı i pzİTll ilNAR !»ıaEsİ (!ğR5ELEıı
|ı |", İ-|
ilrIJ.aigIrl
E}
,..tstt 2: rtlclrrİ, ıİüR oAıBlsl (rğfl!, xEnR) ioülAxIııİ
Eğı
lN
l,"
'(a,DA)
I0
0 Foz_GltIs
ıül
0
lf,
PozıTI! DıaiE
I1
o
ao.0 sR
0
Ömeğin yukarıda "I0.0" sinyalinin pozitif kenar darbesi alınmış (M0.0) ve onunla yanda bir çıkış setlenmiştir. Yine yukarıda "l't.0" sinyalinin negatif kenar darbesi alınmış (M'l .0) ve onunla yandaki bir çıkış resetlenmiştir.
a
0
R
Programın yukandaki parametrelendirilmesi şart değildir, istenirse yandaki gibi mutlak adreslerle de yazllabilir.
M0.3 := l0.2; llPoziTiF KENAR DARBESi iLE SETLEME lF M0.2 THEN Q0.2:=1; lF;
,NEGAT|F KENAR DARBESİ M0.4 := NOT l0.3 AND M0.5; := l0.3;
,NEGAT|F KENAR DARBESİ iLE RESETLEME lF M0.4 THEN Q0.2:=0;
END
lF:
END FUNCT|ON 316
0
Edıİİl_
PoirİfİE_
FUNCT|ON FC3: VO|D lPoziriF KENAR DARBESİ M0.2 := l0.2 AND NOT M0.3;
M0.5
-EG_GliIs
l!ıo
-DıRB! EEI2A
l
END
0
E2
Yavuz Eminoğu
Aşağldaki uygulamada ise kenar darbeleri içerisinde darbe ile . çalıştırılacak program yazılmıştır. FUNCT|ON FCS: VO|D
ö rneğin
yan taraftaki programda
"M0.0" pozitif kenar darbesidir ve onunla "Q0.0" setlenmiştir. "M0.1"de negatif kenar darbesidir Ve onunla da "Q0.0" resetlenmiştir.
llPozjriF KENAR DARBESi VE SETLEME lF l0.4 AND NoT M0.0 THEN Qo.o:=1; END_lF;
M0.0:=l0.4;
i/NEGATIF KENAR DARBESİ VE RESETLEME lF NOT l0.5 AND M0.1 THEN Q0.0:=O; END_lF; M0.1:=l0.5;
END FUNCT|ON
Yavuz EDinoğlu
317
"scl-" ıLE uYGU LAİUıALAR UYGULAiıIA l: Bir motor 'l0.0' butonuyla devreye alınıp "lO.,1" butonuyla durdurulacaktır, nş,r, ytltı"." durumunda "l0.2" termik koruyucu elemanı ile motor korunacaktır. ]Ul.
§*§ii:ttie: Motor start NA l0.0
Motor sto NK Termik röle NK Motor kontaktör
l 0.,t
lo.2 Q 0.0
Paıametıelendi]ilmemlş çözüm
Parametrelendirilmiş çözüm
FUNCT|ON FC2: VO|D
FUNCT|ON FC2: VO|D
BEGlN
VAR_INPUT ACMA:BOOL; KAPAMA:BOOL; slGoRTA:BooL; END VAR
lF l0.2 AND l0.1 AND (l0.0 oR o0.0) THEN Q0.0:='l; ELSE Q0.0:=0; END_IF;
END FUNCT|ON
VAR_oUTPUT MoToR:BooL: END VAR BEGlN lF S|GoRTAAND KAPAMAAND (ACMA oR MoToR) THEN MoToR:=1 ; ELSE MoToR.=Q; END_lF;
E tı.t o.L
1 : }rğİoR aÇ.fA
El!
İAltt{A
rc2
END_FUNcTloN E ıa.t ork 1 : t oIoR
A9,rA (A.Pal(A
lN
EIİo
Ec2
I0.0 _AcırA I0
.l _İ}PlI.h
I0.2_SI@RTA
3,1E
Yavuz Eminoğu
Em)
ı(IroR
UYGULAiiA 2: Bir motor üç butondan en az ikisinin uyarılması
i|e
çalışacakt|r
,;
l0.0
Buton ,t Buton 2 Buton 3 Motor
l 0.1
l0.2 Q 0.0
parametre]endlrilmemi FUNCT|ON FC9: VO|D
ş çözüm
BEGlN Q0.0:=(l0.0 AND l0.'1 AND NOT l0.2)
oR
(l0.0 AND NoT l0.1 AND l0.2)
oR
(NOT l0.0 AND l0.1 AND l0.2);
END FUNCT|ON
parametrelendiritmi
ş çözüm FUNcTloN Fc8: VolD VAR_INPUT
BUTON_I:BOOL; BUToN 2:BooL; BUTON_3:BOOL; END VAR
VAR_oUTPUT MoToR:BooL; END VAR BEGlN
MOTOR:=(BUTON_1 AND BUTON_2 AND NOT BUTON_3)
oR
(B_UToN_1 AND NoT
oR
BUToN
2
AND BUToN_3)
(NOT BUTON_1 AND BUTON_2AND BUTON_3);
E İ.trcİt
END FUNCT|ON 1:
ğç B!,rorDNı
El
irİsİ
rc9
E ıa.trcrı
1
l ğç Buİ@lA§ İiİsİ Fc8
llrc I0
. 0
_6l,Toİ_1 ıOıoR
ıo.1I0.2
EEo
rlo§_2
_Et(E
Yavuz Emiloğlu
Q0.0
3
319
3 banttan meydana gelen konveyör tertibatı aşağıdaki şartlarda ÇahŞacaktlr, a) Her bandın bir açma kapama anahtiar|.olacak, Uİ 1 ve 2. bantlar aynı anda çalışmayacak, cİ 3. bant çahşmad'an 1 veya 2. bant çalışmayacak, dİ Kamyon olmadan 3. bant çalışmayacak, ._. .. _
UyGULAMA 3:
"i
ij""i'."t"rıinndan
hernangi üirisinin termiği attığında bütün bantlar duracak,
E2
oPERAND sEırBoL
+
1
l 0.0
S,1
l0.1
lo.2
s2 s3
l 0.3
F,t
l 0.4
F2 F3
l0.5
"is1 ^is2
,
BANT
,
BANT 2
,
BANT 3
1
Q0.0:= l0.0 AND NOT Q0.1 AND Q0.2; Q0.'|:=l0.'l AND NOT Q0.0 AND Q0.2; Q0.2:= l0.2 AND 10.6 AND NOT (NoT l0.3 oR NoT l0.4 oR NoT l0.5);
END FUNCT|ON
E ıa6trc!ı a: üç BAIİILİ (oıYEyöR slsTEaİ ll
Fc6
o 0.0
B,|
82 B3
Q 0.1 Q 0.2
",is3
Parametrelendlfilmemlş çözüm FUNcTloN FC6: VolD
s4
l 0.6
s4
bant anahtarı NA 2. bant anahtarl NA 3. bant anahtarl NA NK 1 . bant 1 NK 2. bant termi 3. bant term l N nde NA Ka 1. bant motoru 2. bant motoru 3. bant motoru .
Parametıelendirilmiş çözüm FUNCT|ON FC5: VO|D VAR_INPuT S1 :BOOL; 52:BOOL; S3:BOOL;
F1 :BOOL:=0;F2:BOOL:=0; F3:BOOL:=0;
54:BOOL;
END_VAR
VAR OUTPUT
Bl:BOOL; 82:BOOL; 93:BOOL;' END_VAR // BANT 1 lF s1 AND NoT 82AND 83THEN B1:=1; ELSE 81:=0;
,
END
lF;
BANT 2 lF S2 AND NOT 81 AND 83 THEN B2:='|; ELSE 82.=0; END_lF; // BANT 3 lF (NoT( NoT F1 oR NoT F2 oR NoT F3) AND s3 AND S4)THEN B3:=1; ELSE B3,=0; END_IF; END FUNCT|ON Et
l..6*
5 :
Üç aAiçTLI noİvEİöı
sislğ.l
E!
EEo
E1
ıo.2_s3
ı0.3 !l |o.A t2 I0.5 _ nı
32o
lKLAiulA
't
Yavuz EmiDoğlu
t
Q0.0 1 2
UYGULAJüA 4: Bir motorun dönü-ş_yönü, motor miline bağlanan bir manyetik bant Ve iki adet manyetik sensöıle algılanacaktır. Motof sağ yöne döndüğİnde uir ıamoa'liı 1, döndüğünde başka bir lamba yanacaktır.
;"rfi;
§ffi l0.0 l0.,l
Q 0.0 Q 0.1
sol s6ngöf
sağ sonsör
l 0,0
sENsoR_1
sENsoR 2
sol sensör sağ sensör
dönilyğ
o01
o
a
VAR_INPUT SENSOR_I:BOOL; SENSOR_2:BOOL; END_VAR VAR*oUTPUT SAGA_DON:BOOL;
,SAĞA DoNÜŞ
lF l0.0 AND NOT Q0.1 THEN M0.0:=1 lF l0.1 AND NOT M0.1 THEN Q0.0:=1 END_lF; ELSE Q0.0:=0; M0.0:=0; END_lF;
soLA_DoN:BooL; END VAR AR_TEMP HAFlzA_l:BooL;
,soLA DÖNÜŞ
END FUNCTION
Qo0
Parametrelendirilmiş çözüm FUNCT|ON FC3: VO|D
BEGlN
lF l0.1 AND NoT Q0.0 THEN Mo.'t:=1 lF l0.0 THEN Q0.'t:=1; END_IF; ELSE Q0.1:=0; M0.1:=0; END_lF;
Motğ srğ6 diinOyd
Motoİ sola
sAGA_DoN Motor sağa dön üyor soLA DoN Motor sola dönüyor
ParametrelendiriImemiş çözüm FUNCT|ON FG4: VO|D
l 0,1
;
HAF|ZA_2:BOOL;
END VAR BEGlN
,SAĞA DoNÜŞ lF sENsoR_l AND NoT soLA_DoN THEN HAFlzA_1:=1;
lF sENsoR_2 AND NoT HAFlzA_2 THEN SAGA_DON:=1; END_IF; ELSE SAGA_DoN,=o; HAFlzA_1 :=0; END_lF;
,SoLA DÖNÜŞ lF sENsoR_2 AND NoT SAGA_DoN THEN
HAFlzA_2i=li lF SENSOR_1 THEN SO| A_DON:=1; END_IF; ELSE SOLA_DON,=0, HAFlZA_2:=0; END_lF;
END_FUNcTloN E}
x.trc!İ
,.r
tacrIoR sAĞA
soİrı DĞıİğş Yoro
!c3
EE
Io.0_sExlloı_ı İ0.1_sEf,:r*
Yavuz Emin€lu
2
trspİti E§o
s!6A_El 9o.0
t Q0.1
321
baŞlayacak ve bant
UYGULAMA 5: Bir montaj bandı, stiart butonuna basllmasl.ile dÖnmeye bant duracaktır, parçayı tiJ^a"ri p",ç"nın işçi dün; g"ıoigini biıoir"n sinyal alındığında bandl yeniden rrüir."o"" işii lşıeriıini yrpadç s6nra start butonuna yeniden basarak yeniden çalışacaktır, Jo"otii"""ı,tir. V"'ni p"rçd g'eıoi6inde bant duracak, stiart butonu ile oPERAND sEsöR ı
Il
--
L -.
------->
i
]
ı-l !-
B^İlT ı,loToRu
sEtBoL s0
l 0.0
j
START
Parametrelendirilmemiş çözüm FUNcTloN Fc8: VolD lF NoT l0.1 THEN Q0.0:=0; ELslF l0.0 AND NoT Q0.0 THEN
Q0.0:=1;
END_lF;
lF l0.2 AND NoT M80.0 THEN Q0.0:=0; END_lF; M80.0:=l0.2;
l0.1 Io.2
s,l
Q 0.0
M1
s2
FUNCT|ON FC1 : VO|D
VAR_INPUT start:BooL; stop:BooL; sensor:BooL; END VAR VAR_OUTPUT bant:BooL: END VAR
FUNcTloN Fc8: VolD
BEGlN lF NOT stop THEN bant:=O; ELS|F start AND NoT bant THEN bant=l; END_lF;
//Program lF l0.0 THEN Q0.0:=1; END lF;
lF sensor AND NoT poz_kenar THEN bant:=o; END_lF;
lF NoT l0.1 oR M80.0 THEN Q0.0:=0;
poz_kenar:=sensor;
END
lF;
END FUNCTION
END FUNCTION
E xetİoİt
E ıaetİorl 1l BAıiT ılt(İ[om
Eı{
Fcg
2 : Bı§T ıroİoRğ
Eı.
ENo
I0.0 - gtarts
I0..1-
stotr)
I0.2 -5eı5o.
32
butonu NK orme sensoru NA P Bant motoru
Parametre]endirilmiş çözüm
VEYA BAŞKA BlR ÇÖZÜM //Kenar darbesi M80.0:=l0.2 AND NOT M80.1; M80.1:=l0.2;
s
STOP
VAR_TEMP poz_kenanBooL; END VAR
END FUNCT|ON
start butonu
Yawz Eminoğlu
!c1
EEo Qo.0
Ptra PR OCRAMLAMA !,E s7
sIMA
s7
scl-
UYGULAİ|IA 6: Bir buton sıra ile dört lamba yakacaktır. Butona ilk kez basıldığında birinci lamba,2.kezbasıldığında 2.|amba, 3.kez basıldığında 3.|amba ve 4.kez ua"İıoİğ,no" a.ı".u" yan99k 5.kez basıldığlnda bütün lambalar sönecektir. Yeniden basıldığında yiıie sıra ile lambalar yanacaktır.
oPERAilD sEtılBoL l 0.0
s1
Q 0.0 Q 0.1 Q 0.2 Q 0.3
L,t
1. 2. 3. 4.
L2 L3 L4
lamba lamba lamba lamba
Paİametreıendirİlmiş çözüm FUNCT|ON FO4: VO|D VAR_INPUT BUTON:BOOL;
END VAR
VAR OUTPUT
LAMBA_1 :BOOL,=0, LAMBA_2:BOOL:=0; LAMBA_3:BOOL:=O; LAMBA_4:BOOL:=0;
END VAR
VAR_TEMP POZlTlF_DARBE:BOOL; END VAR BEGlN lF BUToN AND NoT PozlTlF DARBE THEN lF NoT LAMBA_1 AND NoT LAMBA_2 AND NoT LAMBA_3 AND NoT LAMBA 4 THEN
LAMnA_1:=1; ELslF |-AMBA_1 AND NoT LAMBA_2 AND NoT LAMBA_3 AND NoT |-AMBA_4 THEN LAMRA:2:=1; ELS|F LAMBA_I AND LAMBA_2 AND NOT LAMBA_3 AND NOT LAMBA_4 THEN LAMBA_3:=1; ELS|F LAMBA_I AND LAMRA,_^ AND LAMBA_3 AND NOT LAMBA_4 THEN LAMBA_4:=1; ELS|F LAMBA_1 AND LAMRA,_^ AND LAMBA_3 AND LAMBA_4 THEN LAMnA_1:=0; LAMBA_2:=0; LAMBA_3:=0; LAMBA_4:=0;
END_lF;
END_lF; PozlTlF_DARBE:=BUToN;
END FUNCT|ON E ıaGtro.k
3:
aİR amoN DöRT LAIIEA
E§
!c4
EEo
I0.0 _Eotoğ lııaaA_l
ao.0
LiAıaBA a
t Qo-3
t Qo.1 IJııaEA_2 t @-2 IiAgEA_3
Yavuz Emircğlu
323
Parametreıendirilmemiş çözüm FUNcTloN Fc7 :VolD lF l0.0 AND NoT M80.0 THEN lF NoT Qo.0 AND NoT Qo.1 AND NoT Q0.2 AND NoT Q0.3 THEN Q0,0:=1; ELS|F Qo.o AND NoT Qo.1 AND NoT Q0.2 AND NoT Q0.3 THEN QO"t:=1; ELslF Qo.o AND Qo.'| AND NoT Q0.2 AND NoT Q0.3 THEN Q0.2:=1; ELS|F Q0.0 AND Q0.1 AND Q0.2 AND NOT Q0.3 THEN Q0.3:=1; ELslF Qo.o AND Qo.1 AND Qo.2 AND Qo.3 THEN Qo.0:=0; QO.'l:=0; Q0,2:=0; Q0,3:=0; END_lF; END_lF; M80.0:=l0.0;
END FUNCT|ON Sembolik adresleme ile çözüm
1
buton
2
l.mba_l
3
lam
4
bmba_3
5 6 7
lamba_4
l Q Q Q M
daöe_hafüa
0.0 0.0 0.1
0.2 0.3 80.0
BooL
b
BooL B{ıoL
ı.lamba z.lrmba
8ooL
3.|amba
sooL
4.bmba pozitf k€naa d
0ooL
butorlu
FUNCT|oN FC7 :VolD lF buton AND NoT darbe hafiza THEN lF NoT lamba_1 AND NoT lamba_2 AND NoT lamba_3 AND NoT lamba_4 THEN lamba_1:=1; ELS|F lamba_1 AND NOT lamba_2 AND NOT lamba_3 AND NOT lamba_4 THEN lamba_2:=1; ELS|F lamba_'l AND lamba_2 AND NoT lamba_3 AND NoT lamba_4 THEN |amba_3:=1; ELslF lamba_1 AND lamba_2 AND lamba_3 AND NoT lamba_4 THEN lamba_4:='t; ELS|F lamba_1 AND lamba 2 AND lamba_3 AND lamba_4 THEN lamba_'l:=0; lamba_2:=O;
lamba_3:=0; lamba_4:=0;
END_lF;
END_lF; darbe hafiza:=buton;
END FUNCT|ON E rı€txotk
5 :
BİR BmoN DöRT Laı,BA
EN
324
Fc7
ENo
Yatuz Eminoğu
7
UYGULAMA 7: lki farkll motor start anahtarlanna basıldıktan istenen süre sonra çalışacak, anahtarlan kapatıldığlnda veya stop anahtar|anna basıldığında duracaktlr. lki motorun aynı beklentiler|e çalışması istendiğindei, program fonksiyon halinde yazılıp ^_ _ 9_B_]_içeıiş!Een çağrılarak istenen parametreler girİmelidir. Ar;cak her iki progrr. ulqİro" "scL' editönİ içerisinde yazılacaktır. FUNCT|ON FC1 : VO|D
VAR_INPUT START:BOOL; STOP:BOOL; ZAMANtAYlCl:TlMER; SURE:S5TlME; END VAR
VAR_oUTPUT
MOTOR:BOOL;
END VAR
VAR_TEMP DEGER:S5TlME; END VAR BEGlN DEGER:=5_691(T_NO:= ZAMANLAY|Cl, S:=START, TV:=SURE, R:=STOP, Bl:=MW2,
Q:=MOTOR);
END FUNCT|ON
oRGANlzATloN BLocK oB1 VAR_TEMP
info : ARRAY[O..'I9] OF BYTE;
END VAR BEGlN
,MoToR
1
,MoToR
2
FCl(START:=l0.0, STOP:=l0.1, ZAMANLAY|Cl:=T1, SURE:=T#2S, MOTOR:=Q0.0); FCl(START:=l1.0, STOP:=l1.1, ZAMANl-AYlCl:=T2, SURE:=T#5S, MOTOR:=Q1.0);
EN D_oRGAN
lZATloN_BLocK
Yaruz Bminoğlu
325
UYGULAMA 8: Tek buton ile start-stop yaptınlacaktır. Yani çıkış yoksa buton uyarıldığında "0" olacak, çıkış "1" olacak, çıkış varsa buton uyarıldığında çıkış
oPERAND sEMBoL l 0.0
buton lamba
M0.0
hafıza
o 0.0
lKLAit A
aka
ma butonu ıkı lambası yardımcı bellek
ParametreIendiıilmiş çözüm
Parametretendirilmemiş çözüm
FUNCT|ON FC1 :VO|D
FUNcTloN Fc2: VolD
VAR_INPUT buton : BooL; END VAR
BEGlN lF l0.0 AND NoT M0.0 THEN Q0.0:= NoT Q0.0; END_lF;
VAR_oUTPUT lamba
:
M0.0:= l0.0;
BOOL;
END VAR
END FUNCT|ON
VAR hafiza : BOOL; END VAR
,SEMBoLiK PROGRAM FUNCT|ON FC2:VO|D
BEGlN
BEGlN
lF buton AND NoT hafiza THEN lamba:= NOT lamba; //Tek çevrim çalışan program END_lF; hafiza:= buton;
lF buton AND NoT hafıza THEN lamba:= NOT lamba; END_lF; hafıza:= buton;
END FUNCT|ON
END FUNCT|ON E ılctİoEk 2: Teİ buton ile stalt/5top Fc1 EI{
İ0.0 -but6n
E ıl€txork
Eİ{
ENo ı.aDba
@
E§o
Q0.0
FUNCT|ON FC2: VO|D
BEGlN M80.0:=l0.0 AND NOT M80.1; M80.'l:=l0.0;
lF M80.0 AND NoT Q0.0 THEN M0.0:=1; END_lF: lF M80.0 AND Q0.0 THEN M0.0:=0; END_lF;
Yukarldaki ç
"PLc PRoGRAMLAMAVE s7
300/400-1' kitabı içerisindeki 'Bir buton bir lamba' uygulamasının (Orada çxizüm mantlğl detayll anlatllmıştır.) birebir "SCL" kodlarına dönüştürülmüş halidir. Doğal olarak biraz daha uzun kodlardan oluşmuştur.
Q0.0:=M0.0;
END FUNCT|ON
326
2: Tek butoo ıte st6rt/stoP
Yaıuz Eminoğu
S_. Bir sandık, iÇerisindeki parçaların yıkanması için pnömatik bir sistemle havuz üç defa batınlıp çıkartılacaktır. ... Her inişten sonra sandık, havuz içersinde 3 sn bekleyecek ve üçüncü defadan sonra silindir yukarıya çıkarak yıkama işlemini sona erdirecektir.. start butonuna yeniden basılması ile yeni bir çevrim başlayacak ve sistem çallştlğl sürece bir uyarı lambası yanacaktır.
9Y994Ir4 içerisine
xı@ sıQ
sllhdlr
s2
Y2
Y1
semboı start
san san
karida
san asa
san ka lamba
l
0.1
l
o.2 0.3
Q Q Q
0.1
0.2 0.3
Tİ
BooL BooL BooL BooL BooL BooL
sandlk
klama sta.t butonu Sandık a da slnlr anahtar| sandlk karlda slnIr anahtarl Sandık selonoidi sandlk selonoadi ma durumunu n lamba
Yaİtz Emin€fu
327
TEıl
E
NAsı
FUNCT|ON FC1 : VO|D VAR_INPUT start:BooL: sandikJukarida:BooL; sandik_asagida:BooL; END VAR
VAR_oUTPUT
sandik_asagiya:BooL; sandik-Jrukariya:BooL; lamba:BOOL; END VAR
VAR
ZAMAN:S5TlME; SAYMA:WORD; T2_1cERlK:WoRD: C10_1CERlK:WORD;
END VAR
//BEKLEME ZAMAN| ZAMAN:= s_oDT (T_No :=T2, s :=sandik_asagida, TV := T#5s, R :=M2.2, Bl:=T2_1cERlK, Q:= M2.0); //SAYlcl SAYlırA:=S_CD(C_NO:=C10, CD:=sandik_asagida, S:=start, PV:=16#5, R:=M2.2, CV:=C10_1CERlK, Q:=M2.1 );
,LAMBA YAKMA lF start THEN; lamba:=1;
END_lF;
//LAMBA sÖNDÜRME lF sandikJukarida AND NoT M2.1 THEN; lamba:=0;
END_lF;
//SANDlK AŞAĞlYA
lF sandik3ukarida AND lamba THEN; sandik_asagiya:=1; END_lF; lF sandik_asagida THEN; sandik_asagiya:=0;
END
lF;
//sANDlK YUKAR|YA lF M2.0 THEN; sandikJukariya:=1 ; END_lF; lF sandikJukarida THEN; sandikJukariya:=0;
END
lF;
END FUNCT|ON
32B
Yıvuz Emiaoğlu
uYGuLAİIA 10: Eğitim amaçh üretim istasyonlarlndan (MPS) besleme biriminin programlanması. Start butonuna basıldığında sürme silindiri parçayı sünip içeri girecektir. Döner silindir magazine gelecektir. Vakum o|uşup, parça emilecektir. Döner silindir emilen parça ile beraber diğer israsyona gidecektir. Vakum kesilerek paça bırakılacaktır.
_ -
Sistem sürekli çevrim o|arak ça|ışacaktır. Sistem çalışırken özel işlem butonuna basıldığında taşınan parça sayısı izlenebilecektir.
Yıvuz Emiıoğu
329
DATA_BLoCK DB1
sTRUcT
TOPLAM:WORD:=W#16#0; PARCA:WORD:=W#16#0;
END_sTRUcT BEGlN END DATA BLOCK
oRGANlZATloN_BLocK oB100 VAR_TEMP PARCA_SAY:lNT; TAMPON:lNT; END VAR BEGlN M0.0:=0;
DBl.DWO:=DB'l.DW2; //DBl.DW2:=16#0: MW4:='t6#0;
END oRGANlzATloN BLocK
oRGANlzATloN BLocK oB1 VAR_TEMP
lnfo: ARRAY[O..19] OF BYTE;
ZAMAN:S5TlME; END VAR
BEGlN QWO:=MW6;
//Startın beklenmesi lF 11.5=0 & 11.0=1 & 11.3=1 & 10.0=1 & M0.0=0 THEN M0.0:=,l; M,t.0:=0;
END_lF;
//Parçanın süıülmesi lF M0.0=1 THEN Q0.3:=1; M0.0:=0; M0.1:=1;
END_lF;
//Sürme silindiri içerlye lF M0.1=1 & l1.1=1 THEN Q0.3:=0; M0.1:=0; M0.2:=1; END lF;
33o
Ysvuz Eoinoğlu
//Döner silindir magazine lF M0.2=1 & l'1.0=1 THEN Q0.4:=1; M0.2:=0; M0.3:=1;
END_lF;
//Vakumu aç lF M0.3=1 & l'1.2=1 THEN Q0.4:=0; Q0.7:='|; M0.3:=0; M0.4:='1
;
END lF;
//Döner silindir lstasyona lF M0.4='l & l'1.4=1 THEN Q0.5:='1;
M0.4:=0; M0.5:=1;
END_lF;
//Parçayı bırak lF M0.5='1 & l1.3='t THEN Q0.7:=0; Q0.5:=0; Q0.6:=1; M0.5:=0; M0.6:=1;
END_lF;
//Vakumun kesilmesi ve stop şaıtı lF l1.4=0 & M0.6=1 THEN Q0.6:=0;
lF Ml.0=0 & l1.5=0 THEN //Eğer stop varsa
M0.0:=1;
END lF;
M0.6:=0;
END_lF;
//Stop sorgusu lF 10.4=1 THEN M1.0:=1;
END_lF;
MW6:=QW0;
Yavuz Enhoğlu
1(}1
sayılması //Parçaların MW4:=S_CU(C_NO:=C1 0,CU:=|
1.
1,S:=1,PV:=,l 6#0,R:=0,CV:=MW8,Q:=Q0.0);
//lşlenmiş parça sayısının göıülmesi lF l0.2=1 THEN QWO:=MW4;
END_lF; DBl.DW2:=lvlW4;
//illagazinde parça kalmamışsa ZAMAN:= S_ODT (T_NO :=T2,S :=l1.S,TV lF M2.0='| & M20.5=1 THEN
:=
Q0.0:=1;
ELsE
Q0.0:=0;
END_lF;
END oRGANlzATloN BLocK
332
Yavüz Eminoğlu
T#lOs,R :=M0.0,B|:=MW8,Q
:=
M2.0);
UYGUI4!|]] : Bir. sayıcı uygulamasında "ARTIR" sinyali her geldiğinde sayıcı içeriği ..1'' artacak, "RESET' sinyali geldiğinde ise sayıcı içeriği sfırlanacaktır. S9Yıcı içeriği istenen değerin üzerine çıhığındi "usT-s|NıR", istenen değerin altına düştüğümde "ALT-SıNıR", ikisinin arasında ise de "ııonu-Aı-oeĞen'' çıtişı-anir olacaktır.
...
FUNCTlON FC19:VOlD VAR_INPUT ART|R:BooL; RESET:BOOL; END VAR
El ıa.tbtll'
ı: sAYIcı !cı9
El{o
cIİI s lm
I0.0 _AI('IR
VAR_oUTPUT
I0.1_RESEI
ClKlS:lNT;
UsT_slNlR:BooL; ALT_slNlR:BooL; NORMAL_DEGER:BOOL; END VAR
sa_slıılı
t
Q0. o
§oRt4! ollclR
t
9o
t
l.lT_sIEIR t @.ı
-2
VAR DARBE_HAFIZA:BOOL; END VAR BEGlN
llPoziriF KENAR DARBESl oLUŞTURMA
/^/E
SAYlCl ART|RMA
lF ART|R =TRUE AND NOT DARBE HAF|ZA
THEN
clKls:=clKls+,l;
,sAYlCl REsETLEME
ELSlF RESET=1 THEN ClKlS:=0;
END
|F;
,üsT SlNlR SORGULAMA
lF ClKlS >= 10 THEN UST_S|N|R:=1 ELsE UsT_slNlR:=0;
;
END_lF;
//ALT SlNlR
SoRGULAMA
lF ClKlS <= 5 THEN ALT_S|N|R:=1; ELsE ALT_slNlR:=0; END_lF;
,NORMAL DEĞER SORGULAMA lF (clKls > 5) AND (clKls < 10) THEN NoRMAL_DEGER:=1; ELSE NoRMAL_DEGER:=0; END_lF;
!lPoziTiF KENAR DARBESi SoRGULAMA DARBE_HAFlZA:=ARTIR; END FUNCT|ON
Y6vuz Eminoğu
333
uYGuLAlrA 12: Çevre, alan
Ve hacim hesaplarl
FUNCTION FC1 : VO|D
E İet oİL
1 :
,ÇEMBER ÇEVRE HEsABl (ÇeVre:2-Tr"r)
F,@, F9RE EsABl lla
VAR_INPUT YARI_CAP:REAL;
ltr
ENo VAR
VAR_oUTPUT CEMBER_CEVRE:REAL; END VAR
'CIMBER cEvBE
E ıa.trcıit
anı§ EsaBİ
2 : DAİFE
l|ğı
Pl_sAYlsl:=3.14159;
END coNsT
'lDIlE AIiııı EE5aEİ'
li
BEGlN
lilDo
cEMBER_cEVRE :=2tPl_sAYlsl'YARl_cAP; E ır.trctt 3:
sİT.İı{DiR
ııaİ
rAcİl ESıBI
tEı
FuNcTloN Fc2 : Vo|D
E|
VAR_INPUT
YAR|_CAP:REAL;
END VAR
VAR_ouTPUT DAlRE_ALAN:REAL; END VAR
coNST
Pl_sAYlsl:=3.'l4159:
END coNsT
BEGlN DAlRE_ALAN :=PI_SAYlSl*YARI_CAP'YARl_cAP;
END FUNCT|ON //sıLiNDiR HAciM HESAB| (Hacim. h"n*r')
FUNcTloN Fc3 : VolD
VAR_lNPUT YARl_cAP:REAL; YUKsEKLlK:REAL;
END VAR
VAR_oUTPUT slLlNDlR_HAclM:REAL; END VAR
coNsT
Pl_sAYlsl:=3.14159;
END coNsT
BEGlN slLlNDlR_HAClM :=YUKSEKLlK'PI_SAYlSFYARI_CAP-YARl_CAP;
END FUNCT|ON
Yavuz Eminoğlu
ENo
-YıRİ cAP
//DAIRE ALAN HESAB| (Alan: rT"r')
334
EDo
csvnr
MDO-IıRI ciıl
coNsT
END_FUNcTloN
ElllıBİ'
'stnııaDıR Ecıı4
!@0
_lıBI_cAP
xD4
-IDısExl,li
İ!!lıBı'
lFo
lacll|
6
uYGuLAItlA 13: Bir bant üzerinde taşınan parçaların geçiş süresi ö|çülecektir. Süre belir|enen üst limitten fazla ise bir çıkış, alt limitien otlşııı
oPERAND sE]tlBoL
ıKLAftlA
acik on sensor arka sensor ba
l 0.0
l0.1
l0.2
Bant anahtarı sensor Arka sensör zamanın normal old nu bildiren ıkı Zamanın ksek old unu bildiren k zamanın dü k old unu bildiren lk
sure normal
Q 0.0 Q 0.1 Q 0.2
sure
sure
uksek dusuk
200 cm
@ @ @
Süo
non
ııal
ı
Sl.. yurc.l.
Aİka Sensör
<-
ı
ön Sensör
sure aoşot
Bu uygulamada zaman ölçümü amacıyla kütüphane fonksiyonlarından "SFC 64 (TllJtE_TCK)" kullanılmıştır. Daha önce de anlatıldığı gibi "lnsert ) Block Call" ile açılan tablodan "Standard Iibrary ) System Functİon Blocks" içerisinden "sFc 64" eklenerek "Tlt$E" tüni bir değişkene atanır. Bu fonksiyondan zamanı okumak için sensörlerin pozitif kenar darbeleri kullanılmıştır. FUNCT|ON
FCl : VO|D BEGlN
VAR_|NPUT banLacik on_sensor arka_sensor END VAR
lF bant acik THEN
:BOOL: :BOOL; :BOOL;
VAR_oUTPUT sure_normal :BooL; sure _dusuk :BooL; sure Jruksek :BooL;
zaman END VAR
VAR
darbe1 darbez
:TIME;
:BooL: :BooL;
baslama_zamani :TlME; bitis_zamani :TlME;
END VAR
lF on_sensor AND NoT darbe1 THEN baslama_zamani:=T|ME_TGK();
END_lF;
darbe1:=on_sensor;
lF a*a_sensor AND NOT darbe2 THEN bitis_zamani:=TlME_TCK(); // END_lF;
darbe2:=a*a_sensor;
lF darbe2 THEN 2266n;=(bitis_zamani - baslama_zamana); lF zaman < T#5S THEN sure juksek:=1: ELSE sure Juksek:=O;
END_lF; lF zaman > T#10S THEN sure _dusuk:=1: ELSE sure _dusuk:=O; END_lF; sure _normal:=NoT sure Juksek AND NoT sure _dusuk; END_lF; END_lF; END FUNCT|ON
Yavuz EDinoğu
335
PLC
xılı.
vE s7
BIT OPER
sAYIsAr isl
BlT opERAsyoNLARıNıN sAyısAL işı-eNıııesl
ala kalar yapılan plc programları genellikle operasyonu tanıtıcı uygulama|ar ile ş.u gerçekleştirildi. Bu uygulamalar genellikle bit veya tanıtılan işıem geregi sayısii operasyonların kullanıldığı basit uygulamalardl. programlam-aoa yo6ui olaiak bit operasyonlannln kullanlldığı programlar; basit yaplll ve kolay anlişılır olmasına rağmen, daha fazla emirden meydana gelmekte, hatızada çok yer tutmakta ve esnek olmay5n bir yapldadlrlar. Ancak amacına uygun olarak kullanılan sayısal operasyonları ve indirekt adresleme ile programların oldukça kısa ve daha işlevsel olarik yapilması mümkündür. Ardışık işlemlerden meydana gelerek durum grafiği benzeri çözüm yöntemleri ile programlanabi|en kumandalar, aşğıda anlatacağlmlz word operasyonlaiı ile de çok kolay ve kısa emirler ile de gizülebilir.
l«ıkhlhHı€ğğkhlr öhçFlzfuotarak .İğdtr Aşağıdaki anlatımlarda konunun daha kolay anlaşılabilmesi için bütün işlemlerin sayısal operasyonlarla çrizümü tercih edilmiştir. Ancak, bir kumanda da programcının isteğine bağlı olarak bütün çözüm yöntemleri kullanılabilir. Word operasyonları ile programlamanın daha kolay anlaşılabilmesi için bir örnek üzerinde açıklamalar yapılacaktır.
Yawz Eminoğlu
337
ile örnek: Eğitim amaçll üretim istasyonuna ait BESLEME istiasyonunun word operasyonları
ramlanması
j,
1g3
1s2 154 153 1B.2
1B1
1y2 1y3
1y5 1y4 1Y1
38
Yukarıda şekli verilen BESLEME istasyonunun şu şartlar ile çalışması istenmektedir. İş parçası emilmiş - Sistem çahştırıldığında, magazinde iş parçası var ise vakum kafası döner (açısal) silindir yardımı ile boş Döner si|. diğer istasyonda olarak diğer istasyona gidecektir. (Magazin yuvasının boşaltılması için) Döner silindir magazinde - Sürme silindiri magazindeki iş parçasını magazin yuvasına doğru itip geri gelecektir. Sürme silindiri - Döner silindir vakum kafasını iş parçasının ] bulunduğu magazin yuvasına getirecektir. Sürme silindiri geride - Vakum kafası iş parçasl üzerine geldiğinde vakum oluşacak ve iş parçası emilecektir. Vakum var - Emme sonucunda yeteri kadar (iş parçasının sağlıklı tutulabileceği) Vakum basıncı oluştuğunda, Vakum yok döner silindir iş parçası ile birlikte diğer istasyona gidecektir. Döner sil. diğer istasyona - Diğer (test) istasyona ulaşılınca vakum kesilerek iş parçası bırakılacaktır. Döner silindir magazine - Döner silindir tekrar magazin yuvasına geri dönecektir. (test istasyonu işlevini sağlıklı yerine Sürme silindir ileriye getirebilmesi amacıyla) Magazin boş
ileride
Yewz Eminoğu
sAYısAL DEĞERLER ıLE çALışMA Besleme ıstasyonuna aıt sürme silindİrinin dlşarı
A. DıREKT
/
içeri hareketi
'l.hareket: sürme silindiri dışan: Magazine manuel o|arak doldurulan iş parçaları, sürme silindiri yardımı ile magazin yuvasına sünilecektir. yay geri dönüşlü vaın6 İunjanoa eJııen silindir, start butonuna basıldığında dışarı çıkarak mağalndeki pirçayı sürecek, bırakıldığında içeri girecektir. AŞağıdaki ve daha sonra anlatılacak programlarda giriş sinyallerinin karşılaştırılacağı sayısal değerleri bulmak amaclyla aşağıdaki benzeri tablolardanfaydalanılabilir. Bu tabloda 124.ginş bayt'lna ait değerler, eğitim amaçll üretim istasyonu üzerindeki buton ve anahtar|ar| (kumanda panosu), 125. bayt ise çalışma elemanlari üzerlerindeki sensöderi (saha verileri) ifade etmektedir.
lBl?4
Bayt no Bit no
.q
7
Gi.iş kanaİ ile ka§l|aştln|acak saylsal dde. (HEx)
§, o o oo
6
5
c
z
E
I
l 08,
0
4101
.l
..t1
0
6 t
4
7
'lo
c =
sor-sil. dşarl
lB 125
4
E
g
_9
3I
o F
9
1
04
E
6
o
ğ,
103
1
,6
o
o
E
,l
0
0
0
c
c
E
1B3 52 1s4 1s3 l82
s101l
0
,|
3
E 1B1
o
0
0
Dikkat: Bu çalışma şeklinde döner silindiin durumu bizi ilgilendirmemektedir. o yüzden döner silindir manuel olarak magazinden ayrılarak oıta bir yerde durdurulmaktadır. Bu harekette sürme silindirinin dışarı hareket edebilmesi için, sürme silindirinin içeride ve start butonuna basıldığı anda olması gereken sayısal değer ile giriş sinyalleri (acil stop NK) kıyaslanmakta ve eşit olduğu anda sürme silindirini dışarı çıkaran çıklş setlenmektedir.
L lw 124 L w#16#4101
--|
s
Q 124.3
Yukandaki gibi çıkış sinyalleri setlenebileceği gibi (bit operasyonu) çıkış kanallarına da saylsal bir değer göndererek de o çıkışın "1" olmasl sağlanabilir. Bu programlama yönteminde mümkün olduğu kadar bit işlemlerini az kullanacağımız için, sayısal değerler ile programl devam ettireceğiz. Yukanda giriş sinyallerini değerlendirmek amaclyla oluşturduğumuz benzeri bir tablo da çıkışa atayacağımız değeder için hazırlanır. oB
Bayt no
Bİ no
6
7
Çlklş
g
ş
İ.arıahna
aıanacak saylsal değe. (HEx)
E
E
1Y2
,|Y3
5
14
4
3
9 g t ij,g a9 9.a Eğ E 5g 8E 1Y5
1Y4
aB
1Y1
2
E
64
0
1
7
6
4
125 3
2
1
o
6 E
E ğg s
o_e o§ H103
H102 H101
Yaruz Eninoğlü
339
L L
--|
lw 124 W#16#410,t
ll..?
L w#16#0800 T Qw124
Bir word'luk bir alanda,düşük bayt'ın 3.bit'inin "1" olmasını
sağlamak için 08O0x (OOO0_1000_0000_0000) değerinin..çıkışa ata-nması gerekir. Sürme silindirinin dışan hareketille birliKe start lambİsının da yanması isteniyor ise çıkışa gönderilen O8OO yerine O9OO (0000_1 001_0000_0000) değerinin gönderilmesi gerekir
2.hareket: Sürme silindiıi içeri L lw 124 Sürme silindiri tamamen dışarı çıkmış ise sürme silindirini L w#16#4002 içeri sokacak sayısal değer çıkış kanalına gönderilir. -|,) Eğer start lambasının yanmaslna devam etmesi isteniyor ise 16#0000 yerine 16#0100 değeri yüklenmelid,r L w#l6#0000 T Qw124 Sürme silindiri tamamen dışarı çıktığında, (bu arada start butonun bırakllmış olması gereklidir) içeri girmesi için, sadece çıklşı sıfırladık çünkü o silindire ait son kumanda elemanl olan valf yay geri dönüşlü bir valftir. Bu ana kadar start lambası yanmaya devam ediyorsa onu söndürmek için bir adım daha yazmak gerekir.
L L
--|
lw 124
w#16*t4001
ll..?
L
T
w#16#o000 QW,124
Sürme silindiri içeri girdiğinde, start lambasının sönmesi için gerekli sayısal değer çıkış kanalına gönderilir.
Yukarıdaki adımların bir biri peşine yazlldığında programln çallşmayacağı açıktır. Bunun nedeni "L" yükleme emri S7-300'de şart'a bağlı bir emir değildir ve dolayısı ile PLC emideri lineer olarak işleyecek ve son emirde "0" değerini çıkış kanalına gönderildiğinden son emirden önceki adımlarda hangi emirlerin iŞlendiği PLC için önemli olmamaktadır. Bu sorunun ç
L L
--|
lw 124
w#,t6#4101
JC dis
L
lw 124
L w#16#4002
--|
JC ic dıs: lc:
BEU
L W#16#0800 T Qw,l24 BEU L W#16#0000 T QW124
Giriş kanalından okunan bilgi, sürme silindirini dışarı çıkaracak veya içeri sokacak değer ile eşitlendiğinde sürme silindirini dışarı çıkaracak veya içeri sokacak değerin çıkış kanalına atandığı yere sıçranacak ve program sonlanacaktır. Eğer eşitlenmemişse herhangi bir atama yapmadan program sonlanacaktır. Bu arada son atanan değer çıkış kanalında görülür.
BE
34o
Yavuz Eminoğlu
Aynı programda start buton yanmasInl
s
L
L
olursak,
lw 124
--|
--|
w#16#41o1
JC lamb BEU
L W#16#0900 T Qw124
JC dis
dıs:
L W#16#4001
BEU L w#16#0100 T Qw124 lamb: L w#16#0000 T Qw124
L
lw 124 Lw#l6%oo2 --| JC ic L lw 124
,
hareketin devam ettiği sürece
lmlz ş!şe!!!q9 değişecektir.
lc:
BE
Program başlang ıç konumuna geldiğinde start lambasını da söndürecek olan değer çıkış kanalına gönderilir.
Program bu şekliyle çalıştınldığında görülecektir ki sürme silindirinin dışan çıkabilmesi için start butonuna uzun süreli (sürme silindiri içerde sinyali kesilinceye kadar) basılması gereklidir. Bunun nedeni, start butonuna basıldığında sürme silindirini dlşarı çıkaracak sayısal değeri, basılmadığında ise başlangıç konumuna gelmesini sağlayan "0" sinyalini (sürme silindiri içeri, lamba sön v.b.) çıkış kanalına göndermesidir. Buna benzer sorunlar programın ileriki aşamalarında da oluşabilir. Bu sorunu gidermek için giriş kanalında meydana gelen pozitif yönlü değişmelerde oluşturulan flanke ile progrEım içerisine girilmeli ve atama yapılmalıdır.
L
L lw124 L ı\,tVV30
L W#16#4001
--|
FP M0.1 = M0.0
AN M0.0
ll
JC son
L L
--|
lw 124 w#16#410,1
JC dis L lw 124
L
--|
W#16#4002
JC ic
lw 124
dıs:
c
JC lamb JU son BEU
L
r
w#16#0900
Qw124
JU son
L
T
w#,t6#0100
Qw124 Ju son
amb :L W#,16#0000 T QW124 Son: L lw124 MW30
T
BE
Program ilk çalıştınldığında MW 30 içerisi "O"dır ve flanke oluşmaz. Birinci çevrimin sonunda giriş kanalı (lW 124) MW 30'a atianmış ve eşit duruma (lW 124=MW30) getirilmiştir. Bu andan itibaren giriş kanalından herhangi bir tuşa basıldığında lw 124 > MW 30 olacak ve programln içerisine girilecek giriş kanall ile karşılaştlrllacak sayısal değerlerle bir eşitliğin sağlanmasl durumunda çlklşa atama yapılacaktır. Giriş sinyallerinde bir değişiklik olmadlğl sürece ğrogramln içerisine girilmeyecek ve girdiği andaki atamalarl çlklşta görülmeye devam edecektir Yavuz Eminoğlu
!41
gerçekleştirilebilir, Bir ardışık kumandaya ait bütün hareketler yukarıdaki yöntemle bizi uzaklaştırır, çünkü program uzar. Ancak bu yöntem uıaşmak istediğimiz hedeften kullanmamız adreslemeyi ist"aiğı.iJ neo"te udşabilmemiiiçin data modülleri ve indirekt gerekir. B. DATA MODÜL DEĞERLERİ İLE ÇAL|ŞMA
Giriş- ve çıkış bilgllerinin ayrı data modüllerden alınması oan-a once yiptığımız uygulamalardaki tek tek sorguladığımız giriş sinyallerinin karşılaştırıld ığı sİyısaİOegeleİ bir data modülüne yazılacaktır. Kıyaslama esnasınd.a. giriş kan'aıı ile dati modülündeki bilgilerin eşit olması durumunda o hareketi sağlayacak ikinci data modüldeki bilgi çıkışa atanacaktır. Eğer bir eşitlik sağlanmamış ise son atanan bilgi korunacaktır.
|-
,1
Giriş sinyalleri ile kıyaslanacak sayısal değerler
ıII 0.0 DB
2.0 4.o
Dur
1
Du l2
Dur
WORD
WORD
3 WoRD
w#16*f.4101 .'Sistem başlangıç konumunda Ve start butonuna
basılmış
l
Sürme silindiri dışarı çıkmış W#16#4oo,t Başlangıç konumu
.,W#16*i.,1002
loa z oirlş sinyalleri ile eşitliğin sağlanması durumunda çıkışa atanacak sayısal değerler
IıI 0.0
Ata_1
i.o
Ata_2
a.o
eta
g
woRD
WORD
woRD
,w#16#0900 :Sürme silindiri dışarl çıksın Ve start lambasl yansln W#16#0100 ; Start lambası yansın ve sürme silindiri resetlensin w#,t6#0000
start lambasl sönsün
Data modüllere konulacak bilgiler planlanırken data modüllerinin aynı numaralı satıdarına aynı duruma ait giriş ve çıkış bilgileri yazılacak olursa programın yapısı daha basitleşir.
u2
Yarrız Eminoğlu
]
L L
lw124 Mw30
FP
M0.1
>l
Start butonuna kısa süreli basılması ile programın çalışmasının sağlamak için2
= M0.0
AN M0.0
ll
JC son
L L
--|
ll
lw 124 DB1.DBWo
L
--|
JC ic
L
lw 124 L DBl.DBw 4
--|
JC lamb JU son
dıs:
L T
c
L
DB2.DBW 0 QW124 JU son
DB2.DBW2 Qw124 JU son lamb: L DB2.DBW 4
_
son:
sayısal değere eşit ise sürme silindirini dışarı çıkaracak değerin çıkış kanalına atandığı yere sıçranılacak
JC dis
lw 124 L DB1.DBW 2
ll
Giriş kanalından okunan bilgi 1 nolu data modülünün "0". Word'unda bulunan sürme silindirini dışarı çıkaracak
T
,I L
qw]?1
lW'l24 Mw30 BE
T
Giriş kanalından okunan bilgi 1 nolu data modülünün "2". Word'unda bulunan sürme silindirini içeri sokacak
sayısal değere eşit ise sürme silindirini içeri sokacak değerin çıkış kanalına atandığı yere sıçranılacak
Giriş kanallndan okunan bilgi 1 nolu data modülünün "4". Word'unda bulunan lambayı söndürecek sayısal
değere eşit ise lambayı söndürecek değerin çıkış kanalına atandığı yere sıçranılacak. Eğer giriş kanalından okunan bilgi data modüldeki hiçbir değer ile eşit değil ise "son" hedefi ne sıçranacaktlr. Sürme silindirini dışarı çıkaracak değerin çıkış kanalına gönderilmesi Sürme silindirİni içeri sokacak değerin çıklş kanalına gönderilmesi
l
Lambayı söndürecek değerin çlklş kanalına gönderilmesi Her çevrim sonunda giriş kanallndaki değerin MW 30'a atanmasl
Şu ana kadar programda yaptığımız değişiklikler programın biraz daha sistemli bir yapıya dönüşmesini sağladı. Ancak özellikle çok sayıda durumun sorgulanması gereken programlarda her hangi bir kısalma meydana gelmedi. Biliyoruz ki program ne kadar kısalırsa haiızada o kadar az yer tutacak ve çevrim süresinin daha kısa olmasını sağlayarak giriş ve çıkışların daha kısa sürede değedendirilmesi (refleks süresinin kısalması) sağlanacaktır.
2
Bu yapıda sadece start butonunda (l12a.o) değil, lw 124'te herhangi bif sinyalin pozitif değişimi ile programa
girilir.
YaıuzEninoğlu
34:}
c.,LooP" DöNGÜSÜ ıLE DATA MoDÜLÜN TARATıLMASi
bir döngü ile taratarak giriş kanallndaki bilgilerle eşitliğin Data modüldeki bilgileri -döngüden sağlanması durumunda çıkılıp o durumda çlklşa atanmasl gereken değerin çıkışa ata-nması ile programın daha kısa ve yapısal olmasını sağlamış oluruz, Bu projrarİo, da aynı data modülİer aynı bi|gilerle kullanılabilir. Sadece oluŞabilecek durum sayısina göre döngü sayısını belirteceğimiz bir satır eklenmesi gereklidir.
-
DB 1 Giriş sinyalleri ile kıyaslanacak sayısal değerler
ıII 0.0
2.o
4.0 6.0
qön_9ay WgEP Har 3 WORD Har 2 WORD Har'1 WORD
Wtİg*l
ğ9şanile991.urulylğe
OOry!!şa.ysı]__
W#l6#4001 ] Başlangıç konumu
w#lü4oo2 Süİme
silindiri dışarı çıkmış w#16#41oa Başlanglç konumunda Ve start butonuna
basılmış
DB 2 Giriş sinyalleri ile eşitliğin sağlanması durumunda çıkışa atanacak sayısal değer|er
I
woRD - Bos 2.0 lam son :WORD 4.o sur sil ic lwoRo 0Q
DB 1 ile eşitliğin sağlanmasl için boş satır W#16#0000 Start lambası sönecek w#16#o1oo' start lambasl yanacak sürme silindiri resetlenecek 6.0 sur sil_dis woRD w#16#0900 Sürme silindiri dışarı çıkacak ve sta( lambası yanacak Oluşturulacak "LOOP" döngüsünde tarama işlemi yüksek değerlikli satırdan başlayacağı için son hareket ilk satıra yazılmalıdır.
3
w#1 6#0
Bu satır dışındaki data modülde bulunan satlr saylsl
y1
Yar
z Eminoğlu
L lw124 L Mw30
Start butonuna kısa süreli basılması ile programın çalışmasının sağ|amak için
FP
M0.1 = M0.0 AN M0.0 JC son
L lw 124 #gir_oku L DB1.DBWo
T
] I
tara:T #don_say SLD 4
LAR
oPN
L
L
1
DB1 DBW[AR1,P#0.0] fuir_oku
--|
= #ala
A #ata JC yaz L #don_say
LOOP tara yaz: AN #ata
BEc oPN DB2
L T
DBW[AR1,P#0.0]
Qw124 BE
//Döngü sayısı değerini yükle //Döngü sayısını hafızaya al //4 bit sola kaydırarak word adresine (3 //AR l'e yükle, DB 1'i aç
)
P#6.0) dönüştür ve
//Döngü sayısına göre en yüksek adresli satırı yükle, giriş kanalından okunan sayısal d€er ile klyasla eşit ise bir biti (#ata) 1 yap ve döngüden çık.
//En yüksek adresli satır ile giriş kanalı bilgileri eşit değil ise (#ata= ,t değil) bir sonraki satlrdaki bilgi ile klyasla hiç birisi ile eşitlik sağlanmıyor ise programı bitir. //Giriş kanalı ile DB '|'deki herhangi bir satır eşit ise DB 2'yi aç ve DB 1'in hangi satlrındaki bilgi eşitliği sağlamlş ise DB 2'nin o
satırındaki bilgiyi çıkış kanalına gönder.
Programda kullanılan (#temp) tün] formal operandlar için o fonksiyonun deklarasyon tablosunda atama ılması erekir.
I
,n:r,1,:.,=},:l
]i:l,]::,'';,::
0.0 2.o
4
.0
,ln
.j,. i. -,]i::Ş:]:.':
,",._.1il
]temp temp
temp
on_say gir_oku
.4!e
rqRD
Döngü sayısı
_]
WoR9 ] ]|BooL
'İ..',:,,ii:':,:,
]
-1,ş_,ş"ır:
P!işte11 glulma1
Atamanın yapılması
Yukarıdaki yazılımda görüldüğü gibi programdaki durum sayısı ne kadar fazla olursa olsun programda hiçbir değişikliğe gerek duyulmaz. Sadece programda karşılaşılabilecek her yeni durum için data modüllerine birer satır eklenerek döngü sayısının düzenlenmesi gereklidir.
Yawz Emiıoğu
345
ve çıkış bilgilerinin aynı data modülden alınması Giriş - 'Gird
ve çıı<ığ uiıgiıerini ayrı ayrı data modüllerine yazabileceğimiz gibi tek bir data modülüne de y azabilid.z. Avnı data modülüne yazım yöntemlerinden bir tanesi farklı satır|ara giriş ve ç]kış .. Uilgileri';in yazılmasıdır. Ömeğin §u ana kadar üzerinde çalıştığımız besleme modülü.sürme İilİnOirl O,şİn / içeri hareketi iğn data modülünün "0'ile "6" satırlarına giriş bilgileri "8" v.e "12" satırlarına çıkış'bilgileri yazılmak suretiyle giriş ve çıkış bilgileri aynı data modülüne toplanmış olur
DB 1 Giriş sinyalleri ile kıyaslanacak sayısal değerler 0.0
don_say
2.0
lam
4.o
son sil ic
döngü sayısı WORD _W#16#6 WORD W#16*14001 |amba söndürme girişi WORD w#lü4oo2 sürme silindirini içlri sokacak giriş
6.0 i Sur sil dis
bil
lam
son1
WORD 10.0 sur_sil_ic'| WORD 12.0 sur_sil_dis1 WORD 8.0
dışrı
çıkaracak giriş
W#16#410
sürme silindirini
W#16#100
sürme silindirini içeri sokacak ataması
w#16#900 sürme silindirini 9§9n çıkaracak atamas
Data modülünü yukarıdaki gibi değiştirdikten sonra programda sadece DB 2 den alınan ri d rek e dön elidir.
Yaz: AN
BEc
L T
BE
#
ata
DBW[ARI,P#6.0] QW124
//DB 1'in eşitlik sağlanan satır numarasına 6 bayt'ı ekle Ve o satlıdaki bilgiyi çıkış kanallna gönder.
Giriş ve çıkış bilgilerinin aynı data modülden alınmasının diğer bir şekli de bilgilerin farklı satırlara yazılması yerine aynı satıra yazılması ile olabilir. Şu ana kadar ki data modül kullanımında her satıra 1 word'luk alan ayı,ılmıştı. Şimdi ise giriş ve çıkış bilgilerini aynı satıra yazmak istediğimize göre her satıra 2 word'luk (1 DWORD) alan ayrılmalı ve bu alanın 1. word'una giriş ile kıyaslanacak bilgi, 2.word'una eşitliğin sağlanması durumunda çıkışa atanması gereken bilgi yazılmalıdır.
346
Yavuz Eminoğlu
I
DB 't Giriş ve çıkış sinyal|erin ayırı data modüle yazılması 0.0 4.0 8.0
]
Olu şabilecek duruma göre döngü saylsl ıool= şeİ Dw oRD Dw#16#3 Dur 3 DwoRD Dw#16#4ooioooo .stlrme siıinoi ri içeri girmiş ise start lambası sönecek Dur 2 DwoRD li DW#16*t0020100 Sürme silindiri dışan çıkmış ise içeri yanmaya devam ,,g irecek ve lamba decek .ie Dur 1 DwoRD Dw#16pt,l0,t0900 Başlangıç konumunda Ve start butonuna basılmış ise start lambası yanacak ve sürme silindiri dışarl çlkacak i;
12.0
L
T
lw
124
#gir_oku
L
tala:. T
DBl.DBD
#don_say sLD 5 LAR,t
oPN
DB1
0
L DBD [ARl,P#0.0] T MD30 L Mw30
L
--| 'fuir_oku
= ttata A #ata JC yaz L #don_say yaz:
LOOP tara
AN
BEc
#ata
,LMw32 T Qw BE
124
//Döngü sayısı değerini yükle //5 bit
sola kaydırarak doppelword adresine dönüşttir AR 1'e ytikle ve DB '|'i aç
(3=P#12.0) ve
//Döngü sayısına göre en yüksek değerlikli adres satırındaki değeri MD 30'a transfer et, bu hafıza alanın ilk word'ündeki değer ile, giriş kanalındaki değeri kıyasla eşit ise bir bit'i 1 yap ve döngüden çık.
//En yüksek adresli satlr ile giriş kanall bilgileri eşit değil ise bir sonraki satırdaki bilgi ile kıyasla hiç birisi ile eşitlik sağlanmlyor ise programl bitir. //Giriş kanalı ile DB 1'in hangi bir satırına ait ilk word'deki bilgi|er eşit ise, eşitliğin sağlandlğl satlrdaki ikinci word de
bu|unan bilgiyi
9kş
Yavuz Eoinoğlu
kanalına gönder.
u7
Prc
vE s7
sAYIsAL
BfI
300/,ı00-2
BESLEME lsıAsyoııU'nun tam olarak programlanması Besleme istasyonun normal çalışma düzeninde diğer istasyonlar ile b irlikte syonda değil çalıştı nlacağı düşünülürse, başlangıç durumunda döner silindiri n diğer ista magazinde olması g erekir. Yoksa ikinci istasyonun çalışması en gellenir. Data modüldeki bilg ileri buna göre düzenl eyecek olursak DB,| BESLEME lsTAsYoNU Giriş ve çıkış sinyallerin aynl data modülden allnması
o.0
op_sayisi
DwoRD
4.0
Bas kon
DwoRD,Dw#l6ilooo0
8.0
Don_si|mag'1
Dw oRD Dw#1
12.0
vakum3ok
Parça bırakılmış ise döner silindir magazine geri dönecek. DWORD DW#16#40196100 Döner silindir parça ile birlikte diğer istasyona gitmiş ise Vakum kesilip parça bırakılacak.
16.0
Don_sil_dig_is
DwoRD
20.0
vakum var
Oluşabilecek duruma göre döngü saylsl Döner silindir magazine geri dönmüş ise start lambası sönecek
Dw#,16#9
6*f.40091
DW#1 6*i40
1
,t
5A'
00
oo
H[llJHn
rr:..?:İ""İlİ:
istasyona gidecek.
,DwoRD,Dw#1 6il9100
53".
Döner silindir magazinde sürme silindiri içeri girmiş ise vakum oluşup parça emilecek.
24.0 'Sur_sil3eri
DwoRD
Dw#16#40061100
Döner silindir magazine ge|miş ise, sürme silindiri içeri girecek.
28.0 ,Don_sil_mag
DwoRD,
Dw#1 6*f.400A1 900
Parça ileri sürülmüş ise döner silindir magazine dönecek,lamba yanacak. Döner silindir diğer istasyona vardığında sürme silindiri dışarı çıkacak ve lamba yanacak. Sistem başlangıç konumunda ve start butonuna basılmış ise start |ambası yanacak ve döner silindir diğer istasyona gidecek.
32.0
sur sil disari
DWoRD Dw#,|6#40092900
36.0 :Don_sil_dig_is DWORD DW#,l6#41052100 ;
]
Daha önceki programı bu data modülündeki değerlere göre aynen çalıştıracak olursak beklenmeyen bir durum ile kaşılaşılır. PLC STOP durumundan RUN durumuna alınır alınmaz, vakumun oluştuğunu ve buna rağmen sistemi çallştırdığlmlzda da sürekli çallştlğlnl görüniz. Bunun nedenini data modülünü incelediğimizde anlarız. Başlangıç bilgileri ile vakum var giriş bilgileri (4005) tamamen aynıdır. Biz aynı giriş bilgileri ile farklı çıkışlar elde etmek istiyoruz. Bu da kumanda mantığına aykırıdır. Başlangığa vakumun oluşmasını engellemek için vakum oluşma giriş bilgilerini değiştirmek gerekir. Bunun için o adıma gelmeden bir merker setlenir ve o adım geçtikten sonra resetlenir. Setlenen merker giriş kanalının boş bir bit'ine aktarılır. İstasyonun giriş kanalı incelendiğinde 125. bayt'ın 6. ve 7. bit'leri boş olduğu görülür. Döner silindir magazine geldiğinde setlenen ve döner silindir diğer istasyona gittiğinde resetlenen bir merkeri l 125.7 bit'ine atamak sureti ile bu sorunu çn,zebilif.z. 348
Yaroz Eminoğlu
DB,| BESLEME ISTASYON
U§riş
ve çıkış sinyallerinin aynı data modülden alınması
op_sayisi
DWORD DW#16#9 4.0 Bas_kon DWoRD DW#16#40050000 8.0 Don_sil_mag1 DWoRD Dw#16#40091100 ]DwoRD DW#16#4o,t961oo 12.0 vakumjok 'l6.0 ,Do n_sil_dig_is DwoRD DW#16#4095A1OO Merkerresetlendi 0.0
ii.o
vakum var Sur_şıl_sgr]
DwoRD
28 0
Don_sil_mag
20.0
DW#16#40859,10o
Merker setli
DW9EP_ DW#16#40961100
Merker s911
DWoRD Dw#16#400A19oo DWORD DW#16*f,t0092900
Merker setlendi
sur sil disari 36 0 Dol_si|{!gjq DwoRD Dw#,l6#41052100 32 0
AQ
sM
AQ RM L lw
124.4 23.7 124.5 23.7
// Döner silindir //
magazine
Döner siiindir diğer istasyona
124
LMw22
oW
T #gir_oku L DBl.DBD tara : T #don_say sLD
LAR,|
0
5
oPN DB
1
L DBD [ARl,P#0.0] T MD30 LMw30 L #gir_oku --|
= #ata A #ata JC yaz L #don_say LooP
yaz:
AN
BEc
tara #ata
LMW32 T QW 124 BE
Yalrız Eminoğlu
349
Plİ
VE s7
2
xlv. uYGULAMALAR
YÜK AsANsÖRÜ: Aşağıda şekli verilen asansör düzeneği şöyle çalışacaktlr. M2Y
Ooo
KoNTRoL PAlELl AC|L STOP
s0
START RESET
sl
sillndlrj
I
ll
Silindln
-",l]
s2
İffi
S5
sayma
ım ü r.]
süme
s
M2A
sensğü {S3)
ASANsOR
ffi
,,7
54
-
Asansör aşağıda (S4) ve start (s1) butonuna basllmış ise bant dönmeye baş|ayacaktlr. Bandln dönmeye başlamasıyla sürme silindiri 2 saniyede bir magazinden bir parçayı bant üzerine sürecektir. Bant üzerindeki paketler sayma sensörü önünden geçerek asansör kabinine dolacaktır. Kabin içindeki paket saylsl istenen sayıya ulaştığında bant duracaktır.
sün]cü bant motoru (M1)
Bant durduğunda asansör yukarı doğru hareket edecekir. Asansör yukarı çıkıp orada paketlerin boşalması için istenen süre bekleyip tekrar aşağı inecektir. Asansörün yukarıda bek|eme sırasında frenleme çalışacaktır. Parça sayısı Ve bekleme süresi data bloktan alınacaktır. Data bloktaki Veriler operatör panelden veya projeye eklenen VAT tablosu yardımıyla girilecektir. start butonuna basıldığında bu işlemler yeniden başlayacaktır. Sistemde bi aflza oluştuğunda alarm lambasl 1 hz'lik taktla yanıp sönecektir. Acil stop anahtarına basıldığında, sistem olduğu yerde duracak, acil stop şartı ortadan kaldırılıp reset butonuna basllarak sistem başlanglç konumuna gelecektir. Programı meydana getiren her bölümü bir fonksiyon (FC) içerisinde yazarak hangi fonksiyonun hangi şartlarda çallştırılacağınl oB 1 içerisinde programlayınız
sE]UlBoL
AclL sToP Isrnnr REsET
sENsoR
As As
ADREs
l l l l l l
124.0 124.1
124.2 124.3
ASAG|DA YUKAR|DA BANT MOTORU YUKAR| HAR AsAGl HAR ALARM
Q124.3
SURME
Q124.4
FREN
sll
124.4 124.5
Q124.o Q124.1
Q124.2
Q124.5
rlp
AÇlKLA]ulA
BooL
Acil stop anahtarl
Bool BooL BooL BooL BooL BooL BooL BooL BooL BooL BooL
start butonu Reset butonu Sayma sensörü
Asansör aşağlda Asansör yukarıda Bant motoru Asansör yukarı j|nsansor aşagı Alarm lambası
sürme silindiri Frenleme silindiri
YırOz Eninoğlu
35,,
oB1 İetrorL ı: AcIt Il2{-0
"
aci I_stop
sToP
,iCIlFc{PRG, - E}lo
"
2 : Ti tle
xettort
Iı21_0 "aci]_stcJp"
İetroİk
3
JI{P
: REIiET
l|21.2
l
İatrorL
:
Benzer uygulama reset programı içinde uygulanabilir.
Fcs
Title
I|za.2 t
NetYorL s
}-l
ıırp
ı_-| Diğer programlarln çalıştırılması şarta da bağlanabilir ancak şartsızda çalıştınlabilir.
: suRıüE EAü|DI
rrct BürT SISTEİI,
-
İetrcİ
Eııo
6 i AsAJsR FE2
El
"
AsAıısoR,
EıIo
f,etrorl( 7 : AıİRü Fc3 ,Aİ"Anl, ElI
tretYorı 0 Titla son: BE
352
Acil stop (NK) butonuna basıldığında sadece ilgili fonksiyon (FC 4) içerisindeki programı çalıştırsın, diğer programları çalıştırmasın istenir Bunun için "acil_stop" varsa program bitirilir (BEC) veya yandaki gibi diğer programlan atlayıp programın sonuna gidilir
Yavuz Erninogu
Fc1
Fc2 !c2 !
§c1 : süR8cü 9E ElıtT İolt)lo
l.!t@L 1j
ı.trcİ ^9ıı5ön ı:
BatIT İqToRl,
llza -a
^srtsöı
Qı21.0
Iı2a.1
r-s
st
l1.0
oı2l-ı
İiı-o o
!rrİr.ıı "ruİ.İ1 hc.İ.t"
I
m
l l_-3 Iu1-5
ı.tİct
2 . saYlA
ll21-3
|-o0
c1 s_au
, ,-s
cl cT_E
",-g9
l.trtEL 2l n İıİİDı BEİ!!ıa!
o
lc0
Iu!{.5
|-
ü1,0
t trrtt 3:
fı 8_oğİ
lF-s
PA.RÇa
Daı. DEE
5Aİt9r soRçt !ıtlA
...
a
ll
-ty
_ı
lcD
ıa|-o ı.ttEıl:rRlEllll
cF rd
Iı2r.5 ıiİ) - lıı
ıra.3 E
,
8R
lı_t
ı.tYotl a: 2 5ı cIlr ı,!İ BİEE stlt(€ sfuİrDİnİ
tt2"
or2]ı,5
l-(
DEl.Dau)_Il2
loo.7
t
oui{-o
at
çrIlışTrrti^
ı.tı!d
a:
§ığr
1-1
r^ruİu oxrll-z
(/-|
Tı
|.-r
8R
Ir2r.1
Yİİuz EmiDogu
3sı
Fc3 İ.trcİ
ALARM 1 : i_İ1 !u!
Fc
g,liİoİla
da AyE aoitA ,j!r.l
.!.ntd$da
4
L
T T
l121-5
1121.1
t!5.0
ı-l
ı.tr.cİ
2 :
r ü1 JüE r.rtdıldan
E
s ET
12
so
0
Qw
S
124
Mw0
RT Rc
.t 5 !D içı!& lDrq] gcrrr9a
1121-5
l12a-!l
AclL sToP
1 1
'fren"
}-l s5Tr53
ıctloıİ
3
. çıİl'
al2^-L
5j!İ6!r
olugEls
Fc
t eğLiyolJa
5
RESET
1121-,ı
oljr1-2
$ so
or21-2
bğ.t
!.bGn 6aEö.
}-|
so
alzr.s
axı,l-a
oüa.5
ı.trotl
a:
Tltlt
n
ı4o.5 t
5.o
ü-|
al24-3 (
ü-|
12
(,
VAT
DB1 Iat
0
TIllE
TrOtl§
ı
1
l ıto El,Ew
B1DBW
0
r
2
slMATlc_T]tvE
5
5Tas€or§
3
DB içerisinde tanımlanan veriler operatör panel üzerinden değiştirilebileceği gibi, panelin kullanılmadığı durumlarda VAT içerisinden de değiştirilebilir. Bu uygulama PLc PRoGRAMLAMA VE s7 300/400-'| konularının tekrarl amacına yöneliKir.
354
Yallrz Eoi.oğu
PROBLEM: Analog giriŞ kanalından sıcaklık değer|eri okunacak ve data modül satırlarına slra ile Y.azdlrülacaktır. Her yeni değer girildiğinde data modülün bir sonraki satırına geçilerek, toplam 10 değer girilebilecektir. Değerlerin yazılması amacıyla dijital giriş kanalının bir bit'i kullanılacaktır. Giris bit'i uyarıldığında okunan değer "0 ) 10 V" kaçılığı olarak 0 ) 500 COarasında bir değ-er olarak (skala edilerek) data modüle yaziacaklır.
oB1
A l 124.7 FP M 0.0 JCN atla oPN DB PlW
L L
55
A
//okuma sinyali
1
128
// O
T L L
MD
T
MD
DBW [MD 40] 40
+D
5OO0C arasına indirgeme
//bir sonraki bayt adresine geçme
P#2.0
atl a B E
)
40
Not: Yazdırılmak istenen sıcaklık sayısı kadar data modülde satır açılma|ıdır. Yazllan değerlerin daha kolay izlenebilmesi amacıyla "VAT" düzenlenip değerler orada izlenebilir.
DlXXIT: Yukarıdaki nne ılabilir?
pro§ıram data modüldeki satır sayısını aştığında SF verir. Engellemek
A l 124.7 FP M 0.0 JCN
ll
//okuma sinyali
atla
L MD40 L P#20.0 <>D
JC
dev
L L
Plw
L0 T MD40 dev: OPN DB A
55
//
0->500 arasına indirgeme
DBw IMD 40]
MD
40
T
MD
40
atla: BE
1
128
T L L
+D
//10 değer girildiKen sonra yazmaya devam etmemesi için
Py2.o
i/bir sonraki bayt adresine geçme
Yavuz Eminoğtu
355
pRoBLEt:
Data modüle yazılan her değer data modülün ilk satlrlna yazllsln, daha önce yazılan değeıler birer satlr atlasln ve son satırdaki değer silinsin Data modüle değer yazmadan önce, son satrlardan başlamak üzere bir DBl.DBW2O'ye, DBl.DBI/V16 i-leri satıra kaydırma işlemi yapılır (DB't.DBWI8 . DBl.DBwl8b v.t) Yer değiştirmeler bittiKen sonra ilk satıra (DBl.DBwO'a) yazılmak istenen veri yazılır.
çiiıüm düşüncesı:
)
A l 124.0 FP M 0.0 JCN
son
oPN
DB
1
L P#18.0 TMD4 L P#20.0 TMD8 L
10
L T L L
DBw IMD 4] DBw [MD 8]
T L L
MD4 MD8
geri :T
-D
-D
T L
İvlw
2
MD4 w2.0
ü2,o MD
Loo P
8 2
ge ri
L Plw 128 L 55 ll T DBw 0 son:BE
366
//
0
)
500 arasına indirgeme
Yıvıüz E@iloğlu
)
pRoBLElıl: Data modül içerisine daha önce yazılan değerler büyükten küçüğe
sıralanacaktır.
oB1
L0 T MD20 ll L9 //Kıyaslanacak d0: T MB ,l0 L MD20 lNc 8 r MD24 ll L MB 10 d1: T MB 11 oPN DB L DBB [MD 20] L DBB [MD 24] A l 124.0 JC kuc 1
>l
JU DB1 Adres
kuc:
atla:JO satır sayısı
T
TAK
c1
DBB [MD 24]
T DBB IMD 20] Ju b1 cl:T DBB IMD 20] TAK T DBB aMD 24| b1: L MD 24 lNc 8 T MD24 L MB11 LooP d1 L MD20 ıNc 8 T MD20 L MB 10 LooP
atla
0.0
lsim Sayi_0
1.0
Sayi_1
2.o
Sayı 2
3.0 4.0
Sayi_3 Sayi 4
5.0
Sayi_5
6.0
Sayi_6
7.0
7
8.0
|ı
Tip BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE
Baş.değeri
d0
Açıklama
B#16#13
B#lü27 B#16#35 B#16#99 B#16#55
B#l6p,26
B#lü27 B#16#87 B#16#97
9.0 Sayi_9 B#lü12 Not: Aynı satlr saylslnda başka bir data modül (DB 2) oluşturulmalldır
Yavuz Eoinoğlu
357
FARKLİ BİR ÇÖZOM
oB1
A l 124.0 FP M 0.0 JC
BEU
sira:L
sira 10
ml:T MB 4 L0 T MD50 L9 m2,.T MB 5 LAR1 MD 50 oPN DB L DBw [ARl,P#0.0] TMw20 L DBw [ARl,P*F2.0] T t\ılVV 30 LMw20 1
L MD50 L P#2.o +D T MD50 LMB5 LOOP m2 LMB4 LOOP BE
Fc1
DB LMw20 T DBW [ARl,P#2.0] L Mw30 T DBw [ARl,P#o.o] oPN
ccFc
356
m1
1
Yevuz Eminoğlu
1
PRoBLEttl: Giriş bayt'ı 125'ten girilen değer, "| 124.o" tuşuna basıldığında data modül sat|r|anna yazılan değederle karşılaştırılacak, onlardan herhangi birinö eşit ise "o 1ı4.o" lambası yanacak, değilse sönecektir. DB.ı ;,sj§ffijj 0.0
D0
1.0
D1
2.o
D2
3.0
D3
4.0
D4
5.0
D5
6.0
D6
7.0
D7
8.0
D8
9.0
D9
A l 124.0 FP M 0.0 JCN son L0 TMD4 oPN DB L10 tara:T MB 2 L DBB [MD L lB 125 --| JC set LMD4 lNc 8 TMD4 LMB2 LOOP tara R Q 124.0 BEU set:S O 124.0
BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE
;re B#lü1
't.değer
B#lffi
2.değer
B#16#9
3.değer
B#16#15
4.değer
wlü26 wlü32
5.değer J
6.değer
B#16*t40
7.değer
B#16#55
8.deger
B#16#66
9.değer
B#lü77
10.değer
1
4|
son:BE
Yatlz EmiDoğlu
35o
PRoBLEİıI: Data modül satır|arına, analog giriş kanalından okunan sıcaklık Ve o slcakllklarln değer|eri aynı satıra sıra ile yazdlrllacaKlr, okunduğu - - --ier zaman yeni değei girildiğinde data modülün bir sonraki satırına geçilecek ve toplam 10 değer girilecektir. -Değerlerin
yazı|ması amacıyla dUital giriş kanalının_bir^bit'i kullanIlacaktır. GiriŞ bit'i uyanıai5iiJa oı
)
oB1
A l 124.7 FP M 0.0 JCN atla oPN DB L PlW 128 L55 A T lvlvv 32
//okuma sinyali
1
CALL sFcM RET VAL:=MD24 L
L lD T L T L L
+D
MD ,t000
//
//sıcaklık değerinin yazıldığı alan //sıcaklık zamanının okunması
24
Mw 30 MD 30
DBD [MD 40] 40 P#4.0
MD
0->500 arasına indirgeme
l
lzamanın "sn'ye dönüştürülmesi
llzaman değerinin yazıldığı alan llzaman ve sıcaklık değerlerinin toplandığı alan //data modülde bir sonraki satıra geçme
T MD 40 atla: BE Not: Okunmak istenen değer sayısı kadar data modülde 32 bit'lik satırlar açılmalıdır. Yazılan değerlerin daha kolay izlenebilmesi amacıyla VAT düzenlenip değerler orada izlenebilir.
3@
Yıvuz Eminoğlu
Prc
vE s?
PRoBLE]ti: Her öğrenci, Plc'ye ait giriş kanalından kendi ismini ASCll karakteri olarak data modülün her satırına birer harf gelecek şekilde yazacaktır. Bir giriş bit'i uyanldığında giriş bayt'ından alınan bir harf data modülün ilk satırına, bir sonraki giriş bit'i uyarıldığında alınan diğer harf bir sonraki sat|ra yazılacaktır. Bu şekilde isme ait bütün harfler data modüle yazılacaktır.
Yazma işlemi tamamlandıktan sonra başka bir giriş bit'i uyarllarak data modüldeki isim kayan yazı olarak iZenecektir. lzleme için değişken tablosu (VAT) oluşturulacak ve yazılar orada izleneceKir. Kayan yazı için herhangi bir giriş bit'i veya intern bir darbe (takt merker) kullanı|abilir. ASC|I kod tablosu 65
66
67
83
82
8,|
68
69
u
85
70
86
71
87
72
88
73
89
Kİ
r,ırı
75
76
77
78
r:]
ç
l
ü
74
90
tİtı 79
80
128 152 154 158
,t66
DB1 0.0 0.1 0.2 0.3 0.4
aS:ffiğk;§ffi]r,ffi A V U
z
cHAR cHAR cHAR cHAR cHAR
DB,t.DBB0 DBl.DBB1
DBl.DBB2 DBl.DBB3 DBl.DBB4
cHAR cHAR cHAR cHAR cHAR
,A, ,U,
,z,
Her darbe geldiğinde harfler bir yukarı kayacak
A l 124.1 A M 2o.7 FP M 8.1 JC kay A l 124.0 FP M 8.0 JC yaz BEu yaz:, L 5
donl:T MB sLD 3
kay:L 5 don:T MB sLD 3
11
TMD0 DEc 8 TMD4 oPN DB L DBB [MD 4] T DBB [MD 0] ,l1 L MB LooP don L DBB5 TDBB0 1
,l0
TMD0 DEc 8 TMD4 oPN DB L DBB IMD 4] T DBB [MD 0] L MB10 LOOP don1 L lB 125 T DBB0
son:BE
1
BEu
YıIılz Eminoğlu
36,|
PRoBLEM: Giriş kanalından silindirterin hangi sıra ile çalıştırılacakları girilecek ve
ÇalıŞ emri programda sırasl hareket ile o slra ile silindirler çallşacaktlr. Daha sonra aynı değiştirildiğinde, silindirıei değiştirilen sıra ile her defasında yeniden çalışacaktır. Bu amaçla atama listesi şöyle olmalıdır.
l124.0 l124.1 l124.2 l124.3 l124.4 l124.5 l124.6 l124.7
l125.0 l125.1 l125.2 l125.3 l125.4 l125.5 l125.6 l125-7
1.silindir
2.silindir 3.silindir 4.siIindir (+)
yönlü hareket
(-) yönlü
hareket
onay butonu Yaz / Çalış anahtarı
1. silindir içerde 'l .
silindir dışarıda
2. silindir içerde 2. silindir dlşarıda 3. silindir içerde
3. silindir dlşarlda 4. silindir içerde 4. silindir dışarıda
Silindirlerin hangi sıra ile çalışacağının girllmesi: Örneğin hareket slrasl 1.o + 2.0 + 2.0 - 1.0 - ise
(Giriş kanalının izin verdiği maksimum dört silindirli / sekiz adımlı hareket) ilk hareketin aktarılması için l 124.0 ve l 124.4 anahtar|arı "1" konumunda iken l 124.6 butonu uyarıldığında ilk hareketin ,t.0 + hareketi olacağı girilmiş olur. Diğer hareketlerin tamamı aynı yöntemle girilir. l124.7 anahtan "0" konumuna alınıp l 124.6 butonu uyarıldığında ilk harekete ait çıkış değeri çlklş kanallna atanacaktlr. ilk hareketin tamamlandığını bildiren sinyal allndlğında (l 125'te pozitif yönlü bir değişim olduğunda) ikinci hareket başlayacak ve bu şekli ile devam edecektir. Program mantığl: DB1 içerisinde giriş bayt'| 124'ün ilk altl bit'inin hareket slraslna bağll olarak kaşılaştırılacağı sayısal değerler olacaktır. Örneğin yukarıdaki ,|.0 + hareketi için 'W#16#0011' (l 124.0 ve l 124.4 anahlarlan "'t" konumunda) değeri yazılacaktır. Bu mantıkla dört silindirin hareket yönlerine ait bütün sayısal değer|er DB,t'e yazılacaktır. Giriş bayt'I 124'den girilen değer DBl içindeki değerlerle kıyaslanacak hangi değere eşit ise DB2'nin o numaralı satırında o hareket için çıkışa atanacak sayısal değeri alacak ve DB3'ün ilk satırından itibaren hareket sayısı kadar değer DB3'e yazılacaktır. DB,t
0.0
dongu
lNT
,t6
2.0
siIl_dis sil 1 iceri sil 2 dis sil 2 iceri sil 3 dis sil 3 iceri sil 4 dis sil 4 iceri
woRD
W#16#11
WoRD
w#lü21 w#lü12
4.0 6.0 8.0 ,l0.0 12.o 14.0
16.0
362
woRD WoRD
woRD WoRD WoRD
woRD
w#lf22
Döngü sayısı 't.silindir dışarı 1
.silindir içeri
2.silindir dışarı 2.silindir içeri
w#lü14 w#lü24
3.silindir dışarı
W#l6#18
4.silindir dışarı
w#lffi28
4.silindir içeri
Yavuz
Emin€u
3.silindir içeri
DB2 0.0
dongu
lNT
,l6
2.0
sil 1 dis sil 't iceri sil 2 dis 2 ice.İ. 3 dis l 3 iceri
woRD woRD woRD woRD woRD woRD
w#lü1 w#lü2
4.0 6.0 8.0 10.0 12.0 14.0 ,l6.0
l4dis
Döngü sayısı 1
.silindir içeri
2.silindir dışarı
w#16#8
2.silindir içeri
w#16#10
3.silindir dışarı
w#lf20
woRD
.silindir dışarı
w#lf4
3.silindir içeri 4.silindir dışarı
W#16*!t0
sil 4 iceri
1
.silindir içeri
6#80
D83
w#lf7
'l.hareket
w#16#5
2.hareket
W#16#1
3.hareket
w#1*2
4.hareket
w#16#9
5.hareket
W#16#3
6.hareket
haı7
woRD woRD woRD woRD woRD woRD woRD
w#16#13
7.hareket
har8
WoRD
w#lü12
8.hareket
0.0
har1
2.o
ha(2
4.0
ha13
6.0
ha14
8.0
har5
10.0
ha16
12.0 14.o
Fc3
L0 oPN DB 3 TDBw0 TDBw2 T DBw4 TDBw6 TDBW8 T DBw 10 T DBw 12 T DBw ,t4
L P#0.0 T MD30 T MD40 T MD60
oB 100 CALL Fc3
sET
Rc
ll
BE
1
L 255 T MB50 LAR1
YatDz Eminoğu
363
oB,1
l l
A
A cD
124.7 124.6
c1
Lc L2 -D
- Hareket saylslnln data modüldeki satır numaraslna ve "pointeı'' formatına dönüştürülmesi
1
sLD
3
T MD60 L L
<>D
MD MD
- Hareket sayısı bizim
60 30
Jc
dev L P#o.0 T MD 30 T MD 40 dev:AN l 124.7
ll
Jc
ata
l 124.6 M 3.1 M 3.0 ll AN M 3.0 BEc L lB 124 L B#16#3F AW T #sira L DB1.DBw 0 tara: T #don_say A FP
sLD
LAR1
3
oPN DB
L DBw IARl,P#0.0] L #sira --a
1
= A JC yaz L #don_say #cik #cik
- Hareket saylslnln tesbiti
belirlediğimiz sayıya ulaştığında yeni bir çevrime başlamak için değerlerin
sfırlanması
Yaz emri yoksa çlklş|arln atanmaslna
-
git Onay butonu flankesi
de yaz ve onay butonlarının perdelenerek diğer değerin (silindir hareket sırası) DB1 içerisindeki sayısal değer|er ile kıyaslanarak onlardan herhangi birisine eşit ise döngüden çık eşit değil ise programa yeniden tara. - Giriş bayt'ı 124
yaz:AN BEc
DB DB
2 oPN DBw AR1,P#o.o] 3 oPN T DBw [MD 40] L MD 40 L P#2.o
L
+D
T MD40 BEU ata L lB 125 L MB50 >l
ll
M
L T L L
DBw IMD 30]
MD
124 30
T
MD
30
+D
son:L T
BE
Yavuz Eminoğtu
QW
P#2.o
- Girişten verilen
değer DB1 içinde bir sayıya eşit ise DB2 içinde o satlr numarall değeri (o giriş değeri için çlklşa atanmasl gereken değer) D83'ün ilk satırına yaz ve bir sonraki değer için bir sonraki satırı haz'rla
0.0
Al 124.6 FPM 3.5 =M 3.4 ll o M 0.0 o M 3.4 FP M 3.3 M 3.2 ll AN M 3.2 JC son oPN DB 3
LOOP tara
364
#cik
lB 125 MB 50
- Sınır
anahtarlarında pozitif bir değişimin tespit edilmesi l 124.7 (yaz lçalış| anahtarl çallş konumunda iken l 'l24.6 anahtarının start butonu olarak kullanılması - start Veya sln|r anahtar|arında pozitif bir değişim var ise DB 3'ün ilk satırındaki değeri çıkış kanalına ata ve bir sonraki atama için data modülün bir sonraki satlrlnl
haAıla
PROBLEM: Bir hava tankı basıncı ON/OFF valf ve PLC ile kontrol edilecektir. istenen basınç değeri %1O arallkta Çahşacaktır. Yani tiank basıncı istenen değerin zs tizerine İ*İ,ğİnJa vaıt kapanacak, 7o5 altına indiğinde valf açılacaktır. lstenen basınç : PlW 256 Ölçülen basınç : PlW 258 : Q 0.0
Valf
ılaraa
Tankl
REı,
+21u o_
ı(n,
nEAr,
REAI
2 0 Anelog o€smç
1
ııN
ll»l
lretfbotjnİ L I}IR
PItı
2
oir/ofF
1
3
htf
256
T
-brgi.oc_Laza.ni'. isteneo_Eeal
L
5.000000e-002
T
rbasiDc_Lazaoi
*R
s.,ı6Ö.İ
r
.
alt_ust_tafua
DBl . DBDo
DEl . DBD4
'basiDc_İaz6ıi-. isleoen_Eea1 'tlas iac_LEzrni' . al ğ_ust_tasa
DBl.
T
'trasiac Lazaliı.u,st sinir
DBl . DBD8
1
L
'basiac_k6zaai r. istenen_raöl "basiDc k6za!ıi'. alt ult tagDö
DB1- DBD4
T
'bagiac Laza.ni-.alt sinir
I}B1 . DBD12
IJ
PIw
Tl
L +R
-R
IrfR T
I,
l
<=R
s
ı
,,
"brsinc_kaz6-Dir. oLunaı_real 't|ğsinc kazani'. alt 5inir
R
9
DBl . DBDI6
DBI.DBD16
DBl.DBI}ı2
0.0
'basioc_k6zaat'. oiunsn_real 'basinc k6z6_ni'.ust si.air
>=R
DBl . DBD0
258
'basiac kaz6oi'. okıınaı reıl
a
DBDo
DBl. DBD4
DBl.DBD16 İ}B1 . DBD8
0.0
Yatuz Eminoğlu
365
PRoBLEM: Bir hava tankı baslncı oransal valf ve PLc ile kontrol edilecektir.
basınç basınç
: PlW 256 Ölçülen PlW 258 : lstenen Oransal valf bobini : PQW 256
}lava
Tankl +24v
o-10v
-> 2 1
2 T Valf
bobini
Set değerinin % değerine dönüştünilmesi
//
L PlW 258 DTR L 2.764800e+002 /R T MD10 //
PlD (SFB
fonksiyonu CALL "coNT_c,, DB4s 41 )
COM_RST
:=
sP_lNT
:=MD10
PV_PER
:=PlW256
PV_lN MAN
o-ıov
3 //Analog çıkışın virgüllü sayıya dönüştünilmesi
LMW4 DTR TMD6 //
0-10 V'un 5-10 V'a Dönüştünilmesi
CALL "UNSCALE"
lN
Hl_LlM
:=
MAN_ON
PVPER ON P_sEL cYcLE
Anaıog Basınç sensö.ii
s€rvovaff
l\
'|
o
LO_LIM
:=2.764800e+004 :=1.382400e+004
OUT
:=PQW256
BlPOLAR:=M60.0 RET_VAL:=MW62
:=TRUE
DlsV
LMN :=MD0 LMN_PER :=MW4 QLMN HLM
366
:=MD6
Yaruz Eminogu
xtr.
s7 3|xı PLc
Ko
UTLAR|ıı|A GENEL BAK|
ixçE
o
ıN
o(
otbr nn v€uvĞıgung
ğıJ(
o!'ğ Nirıı nh v€r.^6büo
t(
tHnnvğ:ElouE
tn|(
uül Nırn nt v€raEıf,rlr
V. d€ğil ı€ p.EnlE
x( ıı{
E ldrdv
olE nİt vğ:,ıd9u!0 E d]dvod,Nid, ğld6lvod-Nİ:t nnv€l@i€lllg
oğı €yg
ığ p.Enl.z
ö4ı €y.
d€lı lb Emt
x{(
d.ğ
v6t6
llo
Fİdt@ ğE
ğna şna z
ğn
)
R
s
s€T
Nor
s
s.l Rlo
i)
SAVE s6F R-ohaR 0tD
oEc lt{c
D.6BnA@r l.l..f İElrEt AccU 1++
cLR RklğEvxE (-0) sET s.6vxEt= o
Loi&
Lqa( id€m
s^vE slclE vxE ln BlE.Bll st_D Biıt HJ {iüla9@liİ) $M) ı{vl
oEc '{c
l-l(dnİr*gll GğEİİl
bl€n
L.,iı( id€m
@nun dlr|6l ğd]@nun
..i€m-i
.drğnun i
İni
.İE
Lol* §gn s..]@n!. oR'de hdüu ya .İnmö,
(:l2
Biı)
l{qncEFd G@h| li6 El) o.*ff..{b6 AxxU 1+{ ldoftn*reAxxu l{{
32 b1 16 b.'l
synn lİğ kmd.dEit ,hl *n. synn tİE lGnp|ğndldhi *ns
üT
BıD BTl DıE orR |TB rTD
aco b BcD b oolbl€ Dolbh
tr.ger (32ln)
Do6l€
l.i€{d (rğBn)
lni.opl (:l2.6lq 6
l.i.!pr
(32_Bit) to
aco
Fl@üllPoİt t{mtd (9€iı)
(16lıl) lo Bco k .Eğ (16_ai) b oolbb İıblg (o€n) I{EGD İE conDl@it Dğ$l€ lnl.EE (32€l) ı,|EG| TG conllğErn htğğ (1ğa|) NEGR N..6ıE FrodnE|Prinl N6e. {32sn, EEEfPl
RNt» RNl!
cAo cAw
lnl€nğ
Rğrıd b F{@d io
UEr Ddlr6lnı.o.r L*
NEco 2_Kmddhl GgEhl (l2 gli) t{EGl 2-RmddBn Gr@hl (16 Bn) NreR 2_Kdnd.r6r G*iiounld2rll (32 Bı IEEE-FP) RNo Rdt .. .&E Glg9lnİrdi ar G.@|ı
TRt
Nc R!
TAD TAw
h 1 (@_an) ^ccu 1.|- (l0.8n) h AcclJ
r.n
.aE G§oGtbli dlEh
TEI6.1E aülrE
luo..ld Byb
Tdğ.ta R€İgftle..,.r
PoP PoP cPUİ ı[email protected]
PoP PoP
TAK ENT
cPU *ili Fd A@U. PtJsH cPu *iüı TF A@!!Pt sttl cPu *lür Ffu AcğJs Tod6 Accl, i ıİtı AccU 2
TAx
PUSH cPt Tağ.lE
loeAccu
t_EAvE
f.sAxxu§B(
PusH
LEAVE
E.iğ AccU sı.d( s'lr.İ
PusH
Em
cPlJ nll z,ci
6rt6
^ıtE mİzElAıİu r nıil
^xxu d( En!6rAİku§-t
fuı
in
^dıEld..l 1€2aı)
^«u ^i(rul{
PoP cPu
AxxU 2
Pt
sıl
mt
lr2
tti Eco *ynm Eb!h5 ln|.Ed
15 lrit
|ıbd
Bco .rynD
ü gyıF dğd4trt0İrEl
sw. .lftOldlİlEi
hl
ğİn,n aco t...ylya dfuQtİilnel
ü|!İıüt sylİ. (ğİrtü.üİE' BcD ül gyty. d&ğldİülği 16 hr lntalr gyü.n 32 ui o4tb hi.oJ hİ ğy,F .E iP bli dİ gyınD *likot |ği.üft.ıE br ıİr..yno *llİdndmğa.r '6 bi ürloİ bl, ..yın ,EeE yorrfu .ıİe 32
32
16
hi Doubr.
hblE syhh
dr Lıocğ !.ymn
ğİ4!!EL
.İE
RNİ» ıünbn .is Gr.{Fn|(fj!ıl ü d.lırÜÜffi G.l@ll Rı{D- Rnd.i üğGlğ9lnİıdl d d.ıBÜ1*ü c{ız*n
Ddbl. ln 04
clı.noo syıB s€q(rc cl9a9 ğyı. s€quğE
BTD oco 6,ndn h Gr6hl (32 aı) BTl BcD Eird.ln ln cğEhl (16 Eil) oTB Ganzat{ (32 Bı) €i.ün h 060 DTR Gan22rtl (32 6r) 6n€ın h Ga.ilpuiırlhü (.2 ah, EEE+PI |,IE G.@hl (i6 ait) *ftt iln ii Bco lTD Ga'Ehl (i6 a{) kd€ln h G.@İl (32 0İ)
(16
dl)
Y*rAdB
cPumllvb.AlitE
Mldlll $yM lı!ı t
n
eyy.
yt
,€lğE
vllEüllİ .ay!y dr ün sry. yrmddM \4BOIt gyryü t n ğy ıEnıE
yrEEE
Aldl l
Aİİ l
Mt
2
l..rffiı]
dh
brtm
lFiiğn s @d( lcrtillln
i'6
tğ d.ğaEİd
d.ğ6{dl
Etİ6 t
yt|.frm
yi
l@g!&m..|
1 lo.rlahjn ^ın z. ıop}dallrl ^ıİ yE d.ğğlinnğl /ü0 i ıo Adl 2 laariıbinh
Aıİ
Ad26 30^ Aın3 €a'o. ko9ycgr| a
E 4'in. Aİİ 2 ın 3.. |oğ!6ırrel
^ldi
FR L
Lc
En.Db
lod
ca.l.r(FE)
r c!@İn co!nr.. Valü hb loed cumln conlğ V.h. hio ^ccu AccU i
FR
a
Bct)
l Lc a
zv
FR L
Lc
sF sD §s sE
fuı€6b Tffi L@d c!m.n
f@dclm
(FE)
IrB vdE
orc€by
İ6
R€l..t€
oftoolay
oFo.ü]ay Ttnğ
E
TİM
l..dd A*. Tmr
366
Inb
A@u
1
s
l.l.gd
TffivdEinroA@U14aco
L
tc §q sE ss sv
FEilPb zğİıli d€ .İtalkn zfthFl .b G.r@hl
t
tde.İt zahl€n
zrıa.n
Ikr
d.loE
wıft
zğigt
!
h Axxu
d. aco h Axru
t!lr. .İtEltsr zd,6.1 .l. G.,@l h Alo(U ldl€ aktf,ll€. z.iiğl 6b BcD in Ao(u 1 zdt .ls
zjr
A§drdtg.ao.,ffi
l
1
s.y6
bdtdnır
s.y!.r,l iEi
l
ti,
ğy!
s.ytc, lçğlğnh gcD .ayl §.ycly| gdj .6td.m
oHl
oü§ı ^ıü Ald
(tr .i
1'.
yiıEİrği yoİb
zğM .ldno| lc.Eiin 6co -yl oğEı
tğr@h
ld
.a,dm .brt-l
z,6.bEn..md..üt r.d 216 .ldEl lcrtğİin lrn Ey oğ,a*
.l EidıdrE :.E4rıo
zjr .b 3Fi.:tmd€ Eİ!.ndrıEdg{tlg zdl .h ErEneğlo lrloub st ria
r'€
ğn6h oeıtlİi.d
Aİİ 1'a yıii*lğİtEl Ald lt YtİbrEi
9Eu BEc
6&d( End 9b.İ Eııd
Uc
u.6rİtdrd
c.ı
ld
oı
L
DBılo
Umtıb.d
6E^ 6.ğnd..bolrı 6€E B.cfu. Diİ{t
cddiİtd
Nunu
§ffi
cc
Bdtld B4d.aE
A(F
Ar6.tls.
L (,ğ16 L t Bıo L t,fc L t ilo
t!i!.[ıE GIot |_oBhA«ul [.* ılİla ctlobloB h l ^l«u t ü Lğ!. ErEoo h A|(o ld. tı.lM lDğE 06 h ' l
uc
Do ır AccU
l
ürE-
olNo bd t{ufrE ol ln t rğ oB h l ctE stEt l oa .' hğE^@u t6
T06 İ.rdD
looP
looP AqlİİtEl$İ.
(
Ju
JütD
J@
Jurı9 iı Rlo
rc
uEffig JuBf Rlo. i =
in
O.ğbh.n!,
Muddn
sPi sdlro.ffivxE=l sfEE sghc.. Bn v(E . l qn ltb sBl sarlEo,ffBlE = saElN sofu6. ffi aG t o srDx şrrll.i, ffvxE =0
l *iİı 9R
v|G
1'o
yiıb
G..tl (hnıdl lııffid ^|ii Ao lt yüb &.|d.t ftod g.tığİi A.i l. yüö
or{dn Mİl'İ,r!.ü0
i'. ydd.
^ld GadE6r|d.t dldğileatr
^İl«, IEEE{B
(loöcü)B on
ffiİl ga iE
G...a d.ri
h
L.iıİbnorE Lciü bEn
BlE
i
ffi
1
b..F! b.
..r. 6
ER'y.
k !d
1
Jcıl
JN6
JurDlrRlo =0 JnD l' R-o ! o ıiih aR
vxE ı
solİlc
sfiür
solİEğ.EhEE tr
sPtlz
JMz
ED
€PBıE
s.rfu..
.
o
un Ei. v|G
Jo
so,rİ
Ptc
§Flro.,ffios
sPz
sdhoe.ffiEetnb.0
sRJ so.tE.trE!truEüic
+Anl
T^^ T6elE^dtGrrElt +^Rr 1M
A@u
^rld^cct
1
l
b
^trş b^rtğ
2
+^n2
l^Rl
^rıı6.1^(XU
1
,İdl,ı.r.
ı., .E b. .İ.. E
Jfu
sl,€ k@Fa
İ. .ir!
s.rıE @dl Eld ,tr lğ !ıg!
l
nıAhBr!ğ.2
^rİlaEai.ğ12 M ı.İt6r.a*
^r*r..! ^İru Ldo ı.İl8rloü..
1
.ıı
ffi B
td.^rİt6n{ğ..1
A^
i E AR
2
iE
AR 1'h ^İ! r ı€ AR zh 1 a.
l
Pol.t €2^xru al.Fcml) l dl l't,t @ LıRl ^r'ca,!de. i r.^tı^iad. Lİb ^ıh6E!İb. 2 hı tr( g Al«U rrllcEü.2 nn Foiür F2 Btıfdfut) l^El
o
= 1
J|.ro
A.ld
o
ffi
o
6PP1l soitc..ffiE Et b,<|
JPz Jo§
.Ai2
Lck tEn
ff ElEffi .{
sF sğrİ|.. İğs Eladı ğ sao sD.İra.,md.l s.rtıoı.mcııırı>o F
JN
iım dlE
Ldit
İl BE
^&t Ald
fal
2
*lğdi tğ d.ğdrl
bc.rİr|
bdürE|
'i€.lğİ1lr ^R 11 32 ba obEk
i6,tliİ lipiğın
^R 2 AR
^ın a, 32 t{ ^R
^R
yüdi-l ''. yübE l,. Yirİn
l-
zF yİ*lffiİ
^R daİ ,tldğD
@
TsTw TrıfuA@U' ost ü.wdd TAFi TdlE ArEğ R.oİli 1 ü, 1 İ^R
AnzTdi.i.
t^i2 T^F2
R.gırE
^rtdr R4ıri Tdtb A.ta
,l
EİP slN co§
2
iğğ..2
^.bd
soRİ Gffib ltE sq6 sQR Gffb üi sqE t
r
R..r
oi.
G.iğ.b ül lılİtd kE
oa
b b
^ıİlğ
R4i.E
ü,,l.
fu*,)
(a2nt)
ndE|Püt ıEntğ(lz€ı) oi
.
)
2
' (iı4ıı b ^car' D!.ğne. . FldürliPo
§Tlv İdlnddğ A(ru
' TAR1 TE*,b!
FffiElPbh ılınb. (9-Bı)
1
grülgt
b
TARi
,l
1
^ı«, (3. Eu ,dü zddE ...lr
2
^d*ria* ^ıİ!&tüir2 'idl A«U T^n2^Rzİdürğ. T.rdt.-! |.ltanodr i (l2 Eu T^R2
soRT Ead.rı dğ (ııİ.ı.irjd ğİ G.agtffJ (@ Ba) sQi 0ı(İr d- olİİlb.ıİ ğ.ğr{ddr (@ Eı) |.x aı4nibEliiiE_L.a|-Eğ[email protected]€aaı) ExP 6a(Er .lü Ep.ı,ü,crb .ıE ğ.ğdrrü ğ2 sı.) sll{ 6a.|.rr di sır. -_ whİ.5.a ddE ğio(3e6ı) c6 Bırh lb co.!u d!- wH..|.b e6ı9itt (İ 0ı) T^N Ba.|.. (b T.Eı. .lE ftıOı & Gbbdn (32 6|0
GffibüE EPE!ü v.ıD o' l Fb.tto+dr N. Cğ-8|t) Gnül6İlol^ıEie-Fo.üErdiı,ıtft {gEı) G.n. üE co.İ€ o' Arğb - F.ahaiP.ad il! ül (azaı) Gffib üE T.lqar of Arrcb İ Fİrt 0+oır (32-ai) '^N Gffil. üı sıİ oa. F.ftFPffi ı,ınbr (32.6r) E&E rb G§dd2.r {e sü) ^'Dr.ıır.İrğ ^sll{ A@§ GdgEb da ^rc A. cdirE.r. FEt+orr ı{nt- (ğll0 ^slN Bı(9r.t-ıqEıü.tE G|dğdt ri €2Enl ^co6 GffibüE^r.İaEatqf . FldrErfth ıılob. (32.or) ATAN tİbl d6 İşltİroİl .rİ Gl+iünrr €2 Bn) ^T^x
R@ t.n Düd.llb.!
(@€ll) (3a.dl) Rot b Rl{ll ocJö5 wdd {32€ı)
RLo^ Foğ.^coJ ı L6tvb@,
RRD
mD^ Rfrb^@u
sl,D
sl-w s@ sRlv s€o §§ oo oYv
, Edır vb
cc
1
(32.€|l)
§in L.i Doi* wod (3a5ı) srin bn won
(16_an)
won {İ.aıl §|lt Rhlrl wdd (1E€ı) (32all) lı,b. slın shn Dolü&
slıt Rhlı DoJü sİrn sıln ı,İOd
(l6au
oR tbru.wod (9€t) oF wcd (l6d)
AıD thJtl. wb.n vYd (6-Bı)
^o Aw )@o ^ıD EEİ.I$ )@v!' EdiE
(3.it)
oR ooaa. wdd (:p_€l) oR w6l (16a$ +^Rl
Rro^
Rno iİo^ s[o
Rod.6
^xXU '
ıaR§i.ğ,
ldlb
ab..
E e.ü
s.ltbt h Do.arcrl {32 6ıl s.hbt ı.r. wdl (6 6ı)
oo
oocnoolc*o.r
sRD §.i|öa raalrğ o(naıEl (P Er} si!/Y s.lı.t,d,bllrdi(t6*) $§o s.irilü. r..ia \r-Eahİ G,raİ s9| sc|İ.ö. lda !b.ı.ua G.@|i €a ğı) 6l)
@'!
orfü.!
3a
üt.i
Ce (16
$)
o. hd!d. brö
aı)
ğl |ıd.ffi
ow o(ER_wcl (16 Uo Uıoo.EffiGaoıl tı\' (rü'.}vldl (1a lı0
xoD EüldvaoER-Dodiğr 19 ğıl xoıY E İİdvaaERücr (16 Eİ)
.tn
ırcR.8rddl
^l{rEt
slw
^dt ''.İld. !e tİ ol*lı
^R
(İ*)
Ro6a ı*. tb9Fi.r! (3c &ı) Rod..l A«U h. lb. Al.ır6h fğ ğıl ' (a 3rl R.na.. ,.dra DrDaa,fr
AE
vxE ın
dtrl
tıü.E *tEa
ür
RıD
ı,lcR
srd, B.sh rrcR
z}. t,ğr.r-
^R
32
RLD
rrcRD Dğ.dlEb
ırcR
hdün ııt*lh
ü.fü.l
s*rfr
in
l
^^ 2 ^R zy!
@ l
ııircR adİb ıırcR_a{irl ılci^ ıırcRD ^dırbttrcR.6..ddr r.ıürEBriERjcth
lrcR
^R
l(..t ! ül.ıD
ılcR
§.E Rlo
)ırcR E i
lğ[ı^ıii
^ntE l'. 32 ür oa..İ tü6. .tE
D(ğ|
t/tRA Adn*ılcR^d
rrcı{
§ü! Ed. ül abri 1'.ffi.*EI
Aİ i i!frr
i h hİ.ı,/ot
acd i6 dt6ül
32 Ul
.
Eb do.nihr
İ ü ..ğ |oüm 16
ta..!. |6!üm
bı ld.nl İy.loı *n| Eü,
düdürrD
ma Dımi^ML/ur{A vE
cs
aı
s7
ın llı!2
lEi EnğEr.ul{lıü*ıEtol v|G \r.İnEuı!İ!d.ü {süEl (n G ol'
odlb*sbr9d
cco cdrİlo.cd-
@, 0R
cddtbncdb
Ld 9r.İ.ll@ ıt
^cql
dl l)
5İA §ıürü{sffloı2)
El2)
l
6İ
l*ffil6ıa}
ftİıİr. .o.HEnd (sff.l
Ü.ııı. ( EçBİ5) {sbıffit ğ.G
^l,A0 ^r6b!at
6a.6
^l,ıo ^ır.bnöb{üeı ErE 6EıE aı.ltİ {süffl İr |- gTw ld §aEl l ^l«u
9ı
Eı al ıtn
a
!d n 6)
ğ.t Etfd Aİ
i't
İ*bİİ.d
XVİİ. SİMATİC MANAGER,DE KİSA YOL TUŞLARİ
ctrl+L ct]ı+D ctrl+ı
: "Download" Programlama cihazındaki programln veya donanlm ayarlannın CPU'ya yüklenmesini sağlar. : "Module |nformatıon" Kullanllan cPu'ya ait ayrıntılı bilgilere ulaşma penceresini açar. : "operating Mode" CPU'nun işletim durumunu (RUN değiştiren pencereyi açar.
ctrl+Alt+E : "Customize"
ctrl+T ctrl+R ctrl+J
:
/
SToP)
Aktif pencereye ait customize penceresini açar.
"Geneıate Souıce" Kaynak koduna dönüştürme işlemini başlatır. program bloklarında yeni bir program bölümü oluşturur.
"sembol" sembol tablosuna yeni
bir sembol ekler. sembol tablosunda yeni iken bir satır ekler. Program bloğunda seçili adres alanında iken sembol tab|osu açılır ve yeni sembol satırı eklenir. :
Ctrl+Alt+T : "Symbol Table" Herhangi
Ctrl+Q
bir program bloğunda iken sembol tablosunu (Ana pencerede projeye açar. sembol tablosunun ek|enmiş olması gerekir.) :
"Symbolic Representatlon" Program bloklarında kullanılan adres|erin
sembolik veya mutlak gösterim şekli seçilir. ctrl+shift+Q: "symbol lnformation" sembole ait aç|klama bilgilerinin adres üzerinde gösterimi açılır veya kapatılır
ctrı+7
: "Symbol Selection" Adres alanına sembol tablosundan adres eklenmesini aKif veya deaktif yapar.
Ctrl+Shift+K: "Comment" Program bloklarında açıklama alanlarını açar/kapatır.
Gtrl+6 ctİı+G
:
"Overview" Her blok'da kendi program elemanlarl kütüphanesini
açar/kapatlr. :
"Program Elements" Program bloğunda iken program elemanları
kütüphanesini açar.
Ctrl+Alt+F : "Disp|ay Force Value" Bir girişin sanal olarak durumunu değiştirme işlemini başlatır.
ctrl+A|t+R
Ctıl+F7 ctrı+1 ctrl+2 ctrl+3 ctrı+4
ctrl+s Alt+lns Ctrl+F3 ctrl+F4 372
:
"Display" Cross Reference tablosunu açar.
:
"Monitoı"' Program elemanlarının gerçek zamanlı izlenmesini sağlar. Program yazlllm şeklini LAD programlama şekline dönüştürür.
"STL" Program yazılım şeklini STL programlama şekline dönüştürür. : "FBD" Program yazılım şeklini FBD programlama şekline dönüştürür. :
Data bloklardaki verilerin güncel durumları izlenebilir. Herhangi bir degişiklik bu konumda yapılmahdır. :
"Dec]aration view" Bu konumda değişiklik yapılamaz.
:
"Declaration Line"
Online (Bloklarda çalışırken online/ffiine dönüşümünü sağlar) : Aktif olan blok'u kapatlr. (Alt+F4 blok'lar|n tamamınl kapatır) :
Yavuz Eminoğlu
"A5-|" HABERLtşME slsTtMl "PROtlBUs" ııaerntts,,,lr sisırN4i "pRotlNtr" HngıRıts^4t sisıt1,4i sisırm ıınıaıaRINlN ARANMAsl slMAT|( 57 GRAPH 5lMAT|( s7 5CI
AKl5 5tMALARl iı,,i o i nrııı ADRE5ttME
onıa ıipırni KtsME VE
ı.ınıl "os"trRi
xüıüpıınıı r roıı xsiyoııtnnı FB KULIANlMlNDA 0RTAK DB KUttANMAK Hlz1,1
giı optnnsvoıııARıNıN sAyı5At isıtrııı,ıts
SAY|(l Vt PWM KU[[ANlMl
57 300 p[('lER itt KoNTRoI isırıı,ıırni rııousıniyrı HABERıtsME 7 eus sisrıı,ıırni "Mpl" HABtR[tsl,ıt sisırıvıi
UYGUl,AMA[AR
s7 300 PtC KOMuTtARlNA GtNtI BAK|5
v,/lNCc FLEXlBLE lLE
PIC PROGRAMLAMA
'W7!
VE
oPERAToR &
PA1,1EL
v,/üNcc jLE SCADA PRoGRAl,,1LA1,1A
s7 1200
i]
ı] .].ı
i]
,
[|]
|]
T: i
_]
,:r"
Koc No Y,0029
BlRSEN BAS|M YAY|N
DAĞ, ]V,iC^RE-\e sA\A,i _iV -tD Ş q(E-i Yazlşma Adrcsr Cağatoğtır YOkü 5! EVrL 34]
]
2 cJ ğ. toğ
l Çars s No| ] 7/7 t!/ista n bür t
iet: l02]2] 527 85 78 522 08 29 _ 5]3 ?5 8E Fix: l0 21 2l 527 08 95 n f ord b
h
ir5e nyayineVi com
ttp,//www.
b
irsenyayinevi.com
fi -
IsBl,{ : 976-975
-
511-551-4
,llllutuililluil|lil