Bluebishi Configurator programı
Bluebishi PLC (STM32F103C8T6) ile 1-wire iletişimi yapılacaksa veya onu modbus master olarak ayarlamak istiyorsak configurator programını kullanmamız gerekiyor. Bu program sayesinde gerekli ayarlar PLC içine kaydediliyor. Exe dosyayı tıklayınca aşağıdaki resimde görüldüğü gibi hatalar alabiliriz.
Dikkat ederseniz hatada, hatanın hangi dosya ile ilgili olduğu yazıyor. configurator dizininde bulunan bu dosyayı, c:\windows\SysWOW64 dizinine kopyalıyoruz. Ardından komut istemini yönetici olarak açıyoruz. Regsvr32 komutu ile register işlemini yapıyoruz.
Bu işlemi diğer ocx dosyaları için de yapmamız gerekebilir.
Sonunda bu pencere bizi karşılar
UART1 sekmesine tıkladıktan sonra "Upload from PLC" butonuna tıkladığımızda, cihazın varsayılan olarak modbus slave olduğunu ve haberleşme hızının 57600 olduğunu görebiliriz. UART1, PA9 ve PA10 pin'leridir. Modbus slave id değerinin, varsayılan olarak 1 olduğu görülüyor. UART2'nin varsayılan id'si 2'dir. Tüm port'larda 8-bit, No parity, 1 stop bit varsayılan değerlerdir. Özetle, cihazı modbus slave olarak kullanacaksanız, configurator programını kullanmaya gerek yoktur.
Master nedir ? Slave nedir ?
Slave'i sunucu (server) gibi düşünebilirsiniz. Kendi başına sesini çıkarmadan bekler durur. Master, slave'e bir istek veya komut yollarsa, slave master'a cevap verir ve yine sessizliğe bürünür. Master ise sürekli olarak bir veya birden fazla slave'e komut yollar, istekte bulunur. Hangi slave'e komut yolladığı ise komutun içinde yazan "slave id" bilgisi sayesinde bellidir.
Diyelim ki, slave id bilgisi 5 olan bir cihaza, master cihaz bir komut yolladı. Diğer slave'ler suskunluğunu korurken, sadece bu komutu alan 5 numaralı slave, master'a cevap verir.
Master'ı bir sınıfta bulunan öğretmen gibi de düşünebiliriz. Ama bu sınıfta öğrencilerin (slave), öğretmen (master) söz hakkı vermeden konuşması kesinlikle yasaktır :)
UART1'i modbus master olarak ayarlama
UART1 sekmesinde, modbus master'ı seçtikten sonra istediğimiz hız ayarını belirliyoruz. "Add slave" butonuna tıklayıp, sorgulanacak slave'in bilgilerini giriyoruz. Örnek olarak slave adresi 3 olan bir cihazdan 4 adet holding register okuması yapıyoruz. Okunan değerlerin, PLC'de D200 register'inden itibaren kaydedilmesini istiyoruz. Değerleri onaylamak için "OK" butonuna tıklıyoruz.
"Write to PLC" butonuna tıkladıktan sonra "HW config" sekmesine gelip "Restart PLC" butonuna tıklıyoruz. Modbus sorgularının slave cihaza yollandığını usb-ttl çeviricinin led'lerinden de gözlemleyebilirsiniz. Resimde veya programda, function numarası 1 olarak gözüküyor. Ama slave cihaza function 3 yani read holding register komutu gidiyor. Configurator tablosunda hatalı yazılmış yani.
Cihaz master iken gördüğüm kadarıyla "Write coils" dışındaki fonksiyonlar çalışıyor.. Yanlış görmüş olabilirim, siz de kontrol ediniz. (Cihaz slave iken tüm fonksiyonlar çalışıyor) Aynı slave cihaza birden fazla sorgu yollanabiliyor.. Bir sorgu bir register'a yazma yaparken, diğer sorgu ardışık register'ları okuyabilir.
Test etmek için ücretsiz olan ve slave olarak çalışan modRSsim2 programını kullanabilirsiniz. Program, slave id değerini otomatik olarak algılıyor. (slave id : en altta bulunan yeşil kutucuklar bu değeri gösteriyor) Animation settings ayarında no animation değerini seçtim. Programın çalışması için C++ 2010 redist. paketi bilgisayarınızda yüklü olmalıdır. vcredist_x86.exe dosyasını buradan indirebilirsiniz.
Master olarak çalışan güzel bir program da QModBus.. PLC port'u slave iken bu programla PLC'ye modbus komutları gönderebilirsiniz.
1-wire master olarak ayarlama
128 Tane sensör (DS18B20), PLC'nin B10 pin'ine bağlanabiliyor.
Configurator programında "1-wire" sekmesini seçip, "1-wire master" seçeneğini işaretliyoruz. "Write to PLC" butonuna tıklıyoruz. "HW Config" sekmesine gelip "Restart PLC" butonu ile PLC'yi yeniden başlatıyoruz. Tekrar "1-wire" sekmesine gelip, bu kez "Search slave" butonuna tıklıyoruz. Sensörler bulunarak listelenecektir. "Replace all in the table" butonuna tıklayarak sensörleri, ana penceredeki tabloya aktarıyoruz. Bu aşamada tekrar "Write to PLC" butonuna tıklıyoruz.. PLC'yi bir kez daha yeniden başlatıyoruz. Artık, sıcaklık değerlerini D register'lardan alabiliriz.
PLC, bir sensör için sıcaklık değerini, float yani 32-bit olarak D1500 ve D1501 word'lerine yerleştirmektedir. Bize anlamlı gelen bir rakama dönüştürmek için configurator programında son sekmede bulunan çeviriciyi kullanabiliriz. Örneğin D1500'de 0, D1501'de 16826 yazıyor diyelim. 16826, hex olarak 41BA yapar.
Veya yaptığınız ladder programında da monitor mod'unu açınca bu değerleri görebilirsiniz. INT komutu, tahmin edileceği gibi noktalı sayıyı, tam sayıya dönüştürür.
Hocam bunu akşam mutlaka okuyorum. :) Sonra master ve slave olan yazı ile devam ederim :) Ellerine sağlık.
YanıtlaSilHocam tek tek c:\windows\SysWOW64\....ocx olanları kurmanız gerekıyor. Sonrasında sorunsuz baglantı kuruyor.
Sil