BÖLÜM 22 GERÇEK ZAMAN SAATĐ Gerçek zaman saati uygulamaları, çok farklı amaçlar için yapılabilir Örneğin : Okullarda ders zilinin programlanmasında, günün belirli saatinde ve belirli süre ile bir yükün çalıştırılmasında ( bu çalıştırma her gün veya belirli günlerde ya da hafta içi veya hafta sonu olabilir Sadece hafta içi çalışsın ya da sadece hafta sonu çalışsın gibi) Belirlenen bir tarihte - saatte ve dakikada alarm sisteminin çalıştırılmasında vb uygulamalar yapılabilir Bu uygulama için PLC üzerine (hafıza kartuşunun takıldığı yere) gerçek zaman saatini çalıştıracak bir pil modül takılmalıdır CPU 224 ve CPU 226' larda bu modüle gerek yoktur Gerçek zaman saati uygulamalarında aşağıdaki bilgilerin bilinmesi gereklidir 0 Haftanın gününü iptal eder Yıl : 00 99 Ay : 0112 Gün : 0131 Saat : 0023 Dakika : 0059 Saniye : 0059 0 Haftanın hangi günü : 01 - Pazar 02 - Pazartesi 03 - Salı 04 - Çarşamba 05 - Perşembe 06 - Cuma 07 - Cumartesi Örnek 16# 06 16# 10 16# 28 16# 15 16# 05 16# 00 16# 02 VB200 VB201 VB202 VB203 VB204 VB205 VB206 VB207 Örneğe göre: 2006 yılı ekim ayının 28 günü saat 15' i 5 dakika 45 saniye geçerken PLC' nin saati SET edilmiş olur PLC saatini SET ederken programın yükleneceği zamanı hesaba katarak değerleri girin Örnek : Program, 30 saniyede yükleniyorsa zamanı 30 sn öne alarak yazın Gerçek zaman saati uygulamasında, OB1 ana sayfanın dışında SUBROUTINE sayfasının da kullanılması gerekir Proje PLC' ye yüklenip RUN konumuna alındığına PLC, çevrimi (bilgi taraması) başlar Eğer program, Ana sayfadan (OB1) SUBROUTINE (SBR0) sayfasına yönlendirilirse PLC, saatle ilgili bilgileri bu sayfadan alarak MAIN (ana) sayfaya yani OB1 sayfasına aktarır Đkinci bilgi taraması (döngü) işleminde artık SUBROUTINE sayfasına uğramaz Yani bilgiler, SUBROUTINE sayfasından bir defaya mahsus alınır ve bir daha bu sayfada bilgi taraması yapılmaz Gerçek zaman saati uygulamasında değerler byte olmasına rağmen girilecek olan değerler, heksadesimal olarak girilmelidir 8 4 2 1 8 4 2 1 0 0 0 0 0 0 1 1 =16# 03 8 4 2 1 8 4 2 1 0 0 0 1 0 1 0 1 =16# 15 0 3 1 5 1 byte' lik alan 4' lü gruplar halinde ikiye bölünerek değerlendirme yapılır 128 64 32 16 8 4 2 1 8 4 2 1 8 4 2 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 =16# 39 376
Örnek 1 : PLC'nin saati, 2007 yılı 14 mayıs pazartesi günü saat 11 30 ' da SET edilmiş olsun OB1 Network 1 : PLC, RUN konumuna alındığında bilgi taraması SBR0 sayfasına yönlensin SM01 SBR0 SBR0 Network 1: PLC, RUN konumuna alındığında OB1 sayfasından bu sayfaya yönlendirilerek bu sayfadaki bilgiler, önce SET edilir sonra OB1 sayfasına atanır Network 2 : Subroutıne sayfasından alınan gerçek saatle ilgili bilgileri, oku ve VB 300'den başlayan alana yaz SM00 READ_RTC O SM00 16# 07 IN OUT VB200 16# 05 IN OUT VB201 VB300 T 16# 14 IN OUT VB202 VB 300 : Yıl VB 301 : Ay VB 302 : Gün : Saat : Dakika : Saniye VB 306 : O (boş) : Haftanın hangi günü? 16# 11 IN OUT VB203 16# 30 IN OUT VB204 O 16# 00 IN OUT VB205 VB 200 alanının 8 byte' lık alanı tamamlaması gerekmektedir Bu nedenle VB206, boş byte alanı olarak kullanılmıştır (VB200VB207) NOT : Aşağıdaki örneklerden herhangi birisini NETWORK 3 olarak OB1 sayfasında devam etmeniz gerekmektedir O 16# 00 IN OUT VB206 O 16# 02 IN OUT VB207 SET_RTC Şekil 221 : Gerçek zaman saatinin PLC' ye Set edilmesi yani yüklenmesi VB200 T 377
Yıl : 2007 16# 07 VB200 Ay : 05 16# 05 VB201 Gün : 14 16# 14 VB202 Saat : 11 16# 11 VB203 Dakika : 30 16# 30 VB204 Saniye : 00 16# 00 VB205 Boş : 00 16# 00 VB206 Haftanın hangi günü : 02 16# 02 VB207 Örnek 2: Doğum gününde belirli bir süre müzik sistemini çalıştıran sistem Müzik sistemi, 2007 yılı 5 kasım çarşamba günü saat 12 30 ' da 45 saniye süre ile çalışsın Network 3 : VB 301 11' e eşitse, VB302 05' e eşitse, VB303 12' ye eşitse, VB304 30' a eşitse VB305 45' den küçük ve eşitse, VB306 00' a eşitse, VB307 04' e eşitse Q00 çıkışını çalıştır Bu örneği OB1 sayfasına yazmanız gerekmektedir VB 301 VB 302 Q00 16# 11 16# 05 16# 12 16# 30 Ay Gün Saat Dakika Eğer çalışma süresinin "1" dakika olmasını istiyorsanız bu kontağa gerek kalmaz VB300 (yıl) karşılaştırma kontağı kullanılmamıştır Çünkü zaman saatinin zaten o yıl içersinde SET edildiği kabul edilmiştir (istenirse VB300 kullanılabilir) VB300 için 16#07 (hangi yılsa o değer) kullanılmalıdır Örneğin 2008 için16#08 kullanılmalıdır Bu örneğin uygulamasını yapabilmeniz için önce örnek 1' deki gibi saati PLC' ye yüklemeniz gerekir Örnek 3 : Hafta sonunda 8 30-12 30, 13 30-17 30, saatlerinde 25 saniye süre ile alarm sistemi çalışsın Sistemin çalışması için PLC saatinin daha önceden örnek 1' de olduğu gibi SET edilmesi gerekmektedir Network 3 : VB307 aktif ise (cumartesi - pazar) saat 8' de, 12' de, 13' de, 17' de (VB303) kontaklarını aktif yap Ancak VB304 (dakika) karşılaştırma kontağı aktif olmadığı için çıkış çalışmaz Dakika 30 geçerken VB304 karşılaştırma kontağını aktif yap Ancak saniye, 01 ile 25 iken VB305 aktif olur ve çıkış 25 sn süre ile çalışır Süre sonunda VB305 karşılaştırma kontağı pasif (off) olur ve çıkış çalışmaz Bu örneği OB1 sayfasına yazmanız gerekmektedir Şekil 222 : PLC' de doğum günü için programlama 16# 04 Q00 16# 07 16# 08 16# 30 16# 25 16# 01 16# 12 Dakika 31' de VB304 karşılaştırma kontağı, OFF olur Saat 09' da, 14' de, 18' de ve devamında VB303 karşılaştırma kontakları OFF olur Hafta içi, VB307 karşılaştırma kontakları OFF olur 16# 13 Şekil 223 : Hafta sonu programlaması belirli saatlerde alarm 16# 17 378
Örnek 4 : Bir okulun ders zilinin programlanması : Ders zili sadece hafta içersinde 15 saniye süre ile çalacak, cumartesi pazar günleri sistem çalışmayacaktır 1 Ders : 8 30 9 10 6 Ders : 13 00 13 40 2 Ders : 9 15 9 55 7 Ders : 13 45 14 25 3 Ders : 10 05 10 45 8 Ders : 14 35 15 15 4 Ders : 10 55 11 35 9 Ders : 15 25 16 05 5 Ders : 11 40 12 20 10 Ders : 16 10 16 50 Network 3 : Bir okulun hafta içi ders giriş çıkış saatlerinin programlanması Bu örneği OB1 sayfasına yazmanız gerekmektedir Q00 >=B >=B 16# 02 (Hafta içi) 16# 06 16#08 16# 29 16#09 16# 14 16#10 16# 04 16#10 16# 54 16#11 16# 39 16#12 16#13 16# 59 16# 44 1 379
16#14 16# 34 1 16#15 16# 24 16#16 16# 09 16#09 16# 10 16# 15 16#09 16# 55 16#10 16#11 16# 35 16#12 16# 20 16#13 16# 40 16#14 16# 25 380
16#15 16#16 16#16 16# 15 16# 05 16# 50 Şekil 224 : Bir okulun hafta içi ders giriş çıkış saatlerinin programlanması Gerçek zaman saatini oku (Read Real - Time Clock) komutu, donanım saatinden anlık saati ve tarihi okuyarak VBx adresinden başlayan 8 byte' lık alana yazar Gerçek zaman saatini ayarla (Set Real - Time Clock) komutu, VBx adresinden başlayan 8 byte' lık alana yazılmış olan saat ve tarih bilgisiyle donanım saatini ayarlar Tüm tarih ve saat bilgilerinin BCD formatında girilmesi gerekir Örneğin 2007 yılı için 16#07 gibi Uzun süreli enerji kesilmeleri karşısında ya da PLC' nin hafızasının silinmesi durumunda gerçek zaman saati aşağıdaki değerlere döner Tarih : 01 ocak 00 Saat : 00:00:00 Haftanın günü : Pazar PLC, girilen değerlerin doğru veya mantıklı olup olmadığını kontrol etmez Örneğin 30 şubat veya 32 ekim gibi Tarih ve saatler girilirken doğru olarak girilmelidir Gerçek zaman saatini oku (Read Real - Time Clock) komutu ve Gerçek zaman saatini ayarla (Set Real - Time Clock) komutu' nu hem ana (OB1) hem de alt programlarda (SBR0 gibi) kullanılamaz Đnterrupt alt programındaki Gerçek zaman saatini oku (Read Real - Time Clock) komutu ve Gerçek zaman saatini ayarla (Set Real - Time Clock) komutu işlenirken başka bir Đnterrupt alt programındaki Gerçek zaman saatini oku (Read Real - Time Clock) komutu ve Gerçek zaman saatini ayarla (Set Real - Time Clock) komutu işlenemez Bu durumda SM43 bit' i set edilir PLC' de yıl için iki değer girilmesi yeterlidir Örneğin 2007 yılı için 07 değerinin girilmesi gibi veriler 2096 yılına kadar doğru olarak değerlendirilir 381