Bugün iki adet uygulama yapacağız. Birinde PLC’nin analog girişlerine gelen analog veriyi okumayı öğreneceğiz. İkincisinde ise, kendimiz PLC içinden çıkışlarına Analog veri göndermesini öğreneceğiz.
UYGULAMA 1: Gelen Analog Veriyi Okumak ve Skalalandırmak
Analog veri okumak, Veri göndermek PLC uygulamalarında çok önemlidir. Bugün buna basit bir örnekle uygulamalı olarak anlatacağız.
Öncelikle PLC’de hangi adreslerim Analog girişlermiş bunu öğrenmek istiyorum. Bunun için Proje ağacında PLC, sağ tık, properties, AI 2, Analog Inputs diyorum
Bu pencereden öğreniyoruz ki, analog girişimiz, IW64 den başlıyor. İki tane analog girişimiz olduğuna göre, diğeri de IW66 olduğunu tahmin etmemek zor değil (W adresleri 2 byte yer kaplarlar) Analog giriş aralığımın 0 10 V arası bir gerilim olduğunu ve her bir tarama da 4 saykıl oluştuğunu öğreniyoruz. Tamam diyip çıkıyoruz buradan.
DİPNOT BİLGİ: Olur da bir şekilde main i falan sildiyseniz. Program yazmak için şu yolu izliyoruz
Add new block, organization block, program cycle OK
Evet şimdi programı yazalım
Şimdi ilk olarak Conversion operations (DÖNÜŞTÜRÜCÜLER) bölümünden NORM_X komutunu alıyoruz.
Norm_X komutu gelen değeri 0 ila 27648 değer arasından çıkışına ileticek. Çünkü bizim 0 10 V arası gelen değer 0 ile 27648 değer olarak okuyabiliyor. Bu sabittir.
Çıkışı ise bu değeri 0 ile 1 arası sonsuz değere dönüştürecektir
Giriş bilgisi olarak Value kısmına girişimiz olan IW64 yazıyoruz
BİLGİ NOTU: OUT 0 la 1 arası bir çok sayı gösterecektir o yüzden buraya MW yazamıyoruz gördüğünüz üzere hata veriyor . Yani buraya sığmaz diyor. O yüzden buraya MD100 yazıyoruz.
Soru işareti kısımları da gelen bilgi Integer olduğu için Int, çıkan bilgi çok sayı içerdiği ve virgüllü sayılar olduğu için Real sayılar diyoruz.
bir sonraki komut, SCALE_X
Biz bu komuttan gelen veriyi MD100 verisini, 0-10 V arası kodlamasını istiyoruz.
Bunu Arduino ‘daki Map komutu gibi düşünebilirsiniz, Scale komutu gelen bir veriyi, istediğimiz bir değer aralığında skalalandırmasına yarar.
Bizlerde gelen değer, Value adresine yazıyoruz, Yani Norm X komutunun çıkışı, Scale x komutunun Value girişine yazılıyor. Hangi değer aralığında dönüşmesini istiyorsak min ve max değerler arasına yazıyoruz. Çıkışına ise bu değerleri atacağımız yazmaçı yazıyoruz. 0-10 arası değer olduğu için MW60 yazıyorum
Bunu PLC ye yüklüyoruz. Uygulamasını yapalım .Tag’ leri Decimal yapalım.
PLC’ye ise üzerindeki analog değer üreteçlerinden Analog girişe bağlantı yapıyoruz.
Şuan 27304 sayısı geliyor ve 10 olarak çıkıyor.
Değeri düşürelim
Şimdi bu uygulamayı aynı zamanda panelde de görelim
Panele giriyoruz.
Burada bir adet değer göster aracı ekliyoruz
Üstüne tıkayıp özelliklerine giriyoruz
Buradan tag bölümüne geliyoruz
Process değerine ok diyoruz
Ardından 3 noktayı tıklayınca hangi tag ile işlem yapacagımızı seçiyoruz
Ve en son ekledigimiz tag olan MW50 değerini seçiyoruz. Buradan anlıyoruz ki çıkış bilgimizle bu görster aracını ilişkilendiricez.
Bilgi:Aynı zamanda text formatımız gözümüze küçük gelirse şuradan değiştirebiliyoruz
Buradan büyütebiliyoruz
Evet tag’le de ilişkilendirdik ve yüklüyoruz
Evet değerleri burada görebiliyoruz.
Değerlerimiz biraz yavaş geliyor . PLC ve Panel arasında sorgulama süresini uzun tuttuğumuz için gecikmeli geliyor. tabiki bunu düşürerek aynı anda daha hızlı gelişimi sağlayabiliyoruz
Bu derste gelen Analog veriyi öğrendik. Gelen analog veriyi okumayı ve Panelde göstermeyi öğrendik. Bir sonraki derste de analog çıkıs vermeyi öğrenicez. Kolay gelsin 🙂
UYGULAMA 2- Çıkışlara Analog Veri Göndermek
Bir önceki uygulamada, gelen analog veriyi okuyup istediğimiz bir değer aralığında göstermişti. Şimdi uygulamada ise Panelden girdiğimiz veriyi PLC’nin analog çıkışına yönlendirmek ve PLC çıkısına bağlı olan voltmetre de analog çıkışımızı okumak olsun
Oncelikle PLC ye analog modulu eklememiz gerekiyor bunun için de
Peki az önce eklememiz gerekmiyor muydu ? Araştırın 🙂
Sağ taraftaki katalogdan Signal Boards, AQ, AQ 1X12BIT modulu seçip ekliyoruz.
Bunu yaptıktan hemen sonra donanım (hardware) yüklemesini yapıyorum ki unutmayın.
Evet ve hemen Main de programımızı oluşturuypruz
Bu defa gelen değer için Value kısmına MW100 yazıyoruz . Neden ?? Neden analog giriş kullanmadık hocam ??
Evladım az önce bizler analog girişimize dışarıdan gelen veriyi okumuştuk. Ama şuan öyle bir şey yokki. Şuan veriyi biz PLC içinde üreteceğiz zaten. O yüzden buraya sanal bir yazmaç olan MW100 yazıyoruz. Ve bunu birazdan panelden kontrol edeceğiz. 🙂
0 LA 10 arası aralıkta değerlendirme yapsın ve çıkışı da 0 la 1 arasında sonsuz sayı ürettiği için MD200 olsun .l
Şimdi gelen sayı MD200’ü 0 la 27648 olacak şekilde kodlayalım. Çünkü analog çıkısımıza 27648 gönderdiğimizde 10 V alıyoruz.
Şimdi out adresini yazabilmem için analog çıkışımızı öğrenelim. Analog çıkış adresimizi öğrenmek için;
80 olduğunu öğreniyoruz bu nedenle bizde çıkışımıza QW80 yazıyoruz
Şimdi bunu PLC’ye gönderiyoruz
Hata verdi. değerlerimizi girmemişiz hemen Scale_x komutu değerlerinide giriyoruz
Evet şimdi herhangi bi çıkış görmüyoruz. VOLTMETREmiz bağlı analog çıkışımızda
Şimdi panele bir veri girişi ekleyeceğiz, buraya veri girişi olduğunda çıkışta 0 10 V olarak görmek istiyoruz. Panelde de girerken 0 10 v girecek şeklnde düzenlemişti hatılarsanız
Root screen geldik
Yeni bir veri girme ekranı ekledik
Tagla özdeştireceğiz.
Değer gireceğimiz için değer girecek olan hafıza alanıyla özdeşleştiriyoruz
Evet programı yüklüyoruz
bi hata yapmadıysa 0 10 v arası bi değer grdgmizde çıkısımızda voltmetrede görmeliyiz.
Evet panelde 8 yazdık ve 8 gördük
Evet gerçekten çok güzel bir analog uygulaması oldu. Dersimiz bu kadar başarılar.