T.C.MİLLÎ EĞİTİM BAKANLIĞI
MEGEP(MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN
GÜÇLENDİRİLMESİ PROJESİ)
ENDÜSTRİYEL OTOMASYONTEKNOLOJİLERİ
ENDÜSTRİYEL BUS SİSTEMLERİ
Ankara, 2009
Milli Eğitim Bakanlığı tarafından geliştirilen modüller;
Talim ve Terbiye Kurulu Başkanlığının 02.06.2006 tarih ve 269 sayılı Kararı ileonaylanan, Mesleki ve Teknik Eğitim Okul ve Kurumlarında kademeli olarakyaygınlaştırılan 42 alan ve 192 dala ait çerçeve öğretim programlarındaamaçlanan mesleki yeterlikleri kazandırmaya yönelik geliştirilmiş öğretimmateryalleridir (Ders Notlarıdır).
Modüller, bireylere mesleki yeterlik kazandırmak ve bireysel öğrenmeyerehberlik etmek amacıyla öğrenme materyali olarak hazırlanmış, denenmek vegeliştirilmek üzere Mesleki ve Teknik Eğitim Okul ve Kurumlarındauygulanmaya başlanmıştır.
Modüller teknolojik gelişmelere paralel olarak, amaçlanan yeterliğikazandırmak koşulu ile eğitim öğretim sırasında geliştirilebilir ve yapılmasıönerilen değişiklikler Bakanlıkta ilgili birime bildirilir.
Örgün ve yaygın eğitim kurumları, işletmeler ve kendi kendine mesleki yeterlikkazanmak isteyen bireyler modüllere internet üzerinden ulaşılabilirler.
Basılmış modüller, eğitim kurumlarında öğrencilere ücretsiz olarak dağıtılır.
Modüller hiçbir şekilde ticari amaçla kullanılamaz ve ücret karşılığındasatılamaz.
i
AÇIKLAMALAR ....................................................................................................................iiGİRİŞ .......................................................................................................................................1ÖĞRENME FAALİYETİ–1 ....................................................................................................31. ENDÜSTRİYEL AĞLAR....................................................................................................3
1.1. RS-232 .......................................................................................................................... 31.2. RS-485 .......................................................................................................................... 41.3. Endüstride Yaygın Olarak Kullanılan Endüstriyel Bus Protokolleri ............................ 41.4. Modbus ......................................................................................................................... 4
1.4.1. Modbus’ın Çalışması ............................................................................................. 51.4.2. Modbus Veri Modeli.............................................................................................. 5
1.5. Modbus Komutları ........................................................................................................61.5.1. Bobin Durumu Oku (Fonksiyon Kodu: 01)........................................................... 61.5.2. Giriş Durumu Oku (Fonksiyon Kodu: 02)............................................................. 71.5.3. Tutucu Registerleri Oku (Fonksiyon Kodu: 03) .................................................... 81.5.4. Giriş Registerleri Oku (Fonksiyon Kodu: 04) ....................................................... 91.5.5. Sadece Bir Bobin Durumu Değiştir (Fonksiyon Kodu: 05)...................................91.5.6. Sadece Bir Register Durumunu Değiştir (Fonksiyon Kodu: 06) ........................ 101.5.7. Birden Fazla Bobin İçeriği Değiştir (Fonksiyon Kodu: 15=0F hex) ................... 111.5.8. Birden Fazla Register’e Değer Atamak (Fonksiyon Kodu: 16=10 hex)..............11
1.6. Visual Basic İle Modbus Master Programı Yapımı .................................................... 121.6.1. Form Load Olayı .................................................................................................131.6.2. Command1 Click Olayı ....................................................................................... 131.6.3. Command2 Click Olayı ....................................................................................... 141.6.4. Command3 Click Olayı ....................................................................................... 141.6.5. MsComm1 OnComm Olayı................................................................................. 15
UYGULAMA FAALİYETİ .............................................................................................. 16ÖLÇME VE DEĞERLENDİRME .................................................................................... 17
ÖĞRENME FAALİYETİ–2 ..................................................................................................182. MODBUS İLE MODBUS UYUMLU CİHAZ HABERLEŞMESİ...................................18
2.1. Modbus İle İnverter Haberleşmesi ..............................................................................182.1.1. İnverter Parametreleri .......................................................................................... 192.1.2. Modbus RTU Protokolü İle İnverter Parametrelerini Değiştirme ....................... 22
2.2. Modbus İle PLC Haberleşmesi ................................................................................... 272.2.1. PLC Konfigürasyonu........................................................................................... 282.2.2. Program İle Test Etme ......................................................................................... 31
2.3. Modbus Master Olarak PLC Kullanımı ......................................................................332.3.1. PLC Projesi..........................................................................................................342.3.2. Ladder Programı ..................................................................................................362.3.3. Programın Test Edilmesi ..................................................................................... 41
UYGULAMA FAALİYETİ .............................................................................................. 42ÖLÇME VE DEĞERLENDİRME .................................................................................... 43
MODÜL DEĞERLENDİRME .............................................................................................. 44CEVAP ANAHTARLARI .....................................................................................................45KAYNAKÇA......................................................................................................................... 46
İÇİNDEKİLER
ii
AÇIKLAMALAR
KOD 523EO0376
ALAN Endüstriyel Otomasyon Teknolojileri
DAL/MESLEK Endüstriyel Kontrol Teknisyenliği
MODÜLÜN ADI Endüstriyel Bus Sistemleri
MODÜLÜN TANIMIEndüstriyel bus yapıları ve bu bus sistemlerinin kurulumu ileilgili konuların öğretildiği öğrenme materyalidir.
SÜRE 40/32
ÖN KOŞUL Gömülü Sistemler 2 modülünü almış olmak
YETERLİK Endüstriyel bus sistemi kurmak
MODÜLÜN AMACI
Genel AmaçBu modül ile gerekli ortam sağlandığında sistem özelliklerinegöre endüstriyel bus sistemlerinin seçimini ve kurulumunuyapabileceksiniz.Amaçlar1. Bir endüstriyel bus sistemi seçimini, sistem özelliklerinegöre yapabileceksiniz.2. Bir endüstriyel ağ kurulumunu hatasız bir şekildeyapabileceksiniz.
EĞİTİM ÖĞRETİMORTAMLARI VEDONANIMLARI
Donanım: PLC setleri, bus sistemler deney setleriOrtam: Ardışık kontrol laboratuvarı
ÖLÇME VEDEĞERLENDİRME
Modülün içinde yer alan, her faaliyetten sonra verilen ölçmearaçları ile kazandığınız bilgileri ölçerek kendi kendinizideğerlendireceksiniz.Öğretmen, modülün sonunda, ölçme aracı (test, çoktanseçmeli, doğru-yanlış, vb.) kullanarak modül uygulamaları ilekazandığınız bilgi ve becerileri ölçerek sizi değerlendirecektir.
AÇIKLAMALAR
1
GİRİŞ
Sevgili Öğrenci,
Günümüz otomasyon sistemleri, artık kendi aralarında ortak bir platformdahaberleşebilmektedir. Bu amaçla çeşitli haberleşme protokolleri geliştirilmiştir.
Bu modülde, bu haberleşme protokollerinden yaygın olarak kullanılmakta olanModbus haberleşme protokolü incelenmiştir. Bu protokol ile uyumlu olan cihazlarbağlanmış, kendi aralarında ve bilgisayar ile haberleşme sağlanmıştır.
Modülü tamamladığınızda Modbus ile bilgisayar-inverter, bilgisayar-PLC ve PLC ileinverter haberleşmesini gerçekleştirebileceksiniz.
GİRİŞ
3
ÖĞRENME FAALİYETİ–1
Bir endüstriyel bus sistemi seçimini sistem özelliklerine göre yapabileceksiniz.
Endüstriyel ağlar hakkında yerli ve yabancı kaynaklardan ön araştırma yapınız.
1. ENDÜSTRİYEL AĞLAR
Bilindiği gibi ağlar, temel olarak kaynakların ortak kullanımı fikrinden doğmuştur.Endüstriyel ağlarda da aynı şekilde kaynakları ortak kullanabilir ve çeşitli üniteler arasındagerekli haberleşmeyi sağlayabiliriz. Günümüzde endüstriyel ağlar üzerinde kullanılmaküzere birçok protokoller geliştirilmiştir. Bunlardan en popüler olarak kullanılanlarındanbazıları, Modbus, Profibus, DeviceNet’tir.
Genellikle endüstriyel ağların kurulumunda seri haberleşme standartlarıkullanılmaktadır. Bu standartlardan en yaygın olarak kullanılanlar RS232 standardı veRS485 standardıdır. Bu standartlar ile ilgili aşağıda kısa açıklamalar yapılacaktır.
1.1. RS-232
Seri iletişim gerçekleştiren cihazlar arasında, bu tür asenkron iletişimi sağlamakamacıyla geliştirilen bir haberleşme standardıdır. İlk olarak 1962 yılında RS-232 standardı,daha sonra 1969 yılında RS-232C standardı ortaya çıkmıştır. RS-232D standardı ise 1987yılında RS-232C standardının geliştirilmesiyle ortaya çıkmıştır. Aynı zamanda bu standartEIA-232D olarak da adlandırılmaktadır.
Şekil 1.1: DB25 Konnektör
ÖĞRENME FAALİYETİ–1
AMAÇ
ARAŞTIRMA
4
RS-232C standardında en çok kullanılan konnektör, DB25 ve 25 pinlidir konnektöridi. Ancak günümüzde 9 pinli DB 9, yaygın olarak kullanılmaktadır.
Şekil 1.2: DB9 Konnektör
RS232 seri iletişim standardı ile ilgili daha ayrtıntılı bilgi Bilgisayar Kontrolmodüllerinde bulabilirsiniz.
1.2. RS-485
RS-485, yine bir seri haberleşme standardıdır. Sadece iki kablo ile haberleşme imkânısağlar. Bu kablolardan biri Tx ucuna diğeri de Rx ucuna bağlanmalıdır. RS485 arayüzüüzerinden çeşitli protokoller (örneğin Modbus profibus gibi) ile haberleştirme yapabiliriz. Rxve Tx üzerindeki gerilimler arasındaki farka bakılarak sinyal durumları hesaplandığından vegürültünün bu iki adet kabloya aynı miktarda bineceğinden dolayı gürültülü sinyal ile normalsinyal arasında, taşıdığı bilgi açısından bir fark olmamaktadır. Ancak RS-232'de referans gnd(ground yani bildiğimiz sıfır voltaj temel referans) olduğundan gürültü kabloya bindiğinde,sinyalin değerini artırıp azalttığında, sinyalin taşıdığı bilgi, değişim gösterebilmektedir.
Bu sayede, RS-485 ile daha uzun mesafelerde güvenli haberleşme imkânısağlanmıştır. Yine RS-485 ile ilgili ayrıntılı bilgi Bilgisayar Kontrol modüllerindeverilmiştir.
1.3. Endüstride Yaygın Olarak Kullanılan Endüstriyel BusProtokolleri
Endüstride kullanılan bus protokollerinden bazılarını Modbus, Profibus, DeviceNet,Canbus olarak sayabiliriz. Biz bu modülümüzde, kullanımı tamamen açık olan ve herhangibir ücrete tabi olmayan Modbus’ın RTU protokolünü anlatacağız.
1.4. Modbus
Modbus, 1979 yılında Modicon firması tarafından geliştirilmiş, sunucu istemci tabanlıolarak endüstride kullanılan, akıllı cihaz olarak tabir edilen, aygıtların haberleşmesi içingeliştirilmiş bir protokoldür. Modbus protokolü, tamamen açıktır ve günümüzde birçok
5
endüstri kuruluşundaki yapıda kullanılan bir protokoldür. Farklı yapılardaki cihazlar,Modbus ile haberleşebilmektedir.
Bazı verilere göre günümüzde dünya çapında 7 milyon endüstri kuruluşu, sistemleriiçerisinde Modbus’ı kullanmaktadır.
Modbus, çoklu sahip/köle (master/slave) sistemlerini izlemek ve aygıtlarıprogramlamak için akıllı cihazları (PLC, inverter vb.), algılayıcılar ve diğer aygıtlarıbirbirleri ile haberleştirmek için veya alan içerisindeki cihazları uzaktan bilgisayar ya dainsan makine ara yüzleri ile kontrol edebilmek için kullanılabilir. Modbus, cihazlardanverilerin alındığı ve bu verilerin bir merkezde toplanabildiği bir endüstriyel ağ sistemidir.
Standart bir Modbus ağında, bir adet sahip (Master) ile birlikte 247 adet köle (Slave)cihaz bulunabilir. Bir önceki cümleden de anlaşılabileceği üzere köle cihazlar, 247 adetolabilir, adresleri de 1 ile 247 arasında verilebilir. Modbus ağında sahip cihaz, diğer kölecihazdan aldığı verilere göre yine köle cihazları kontrol ettirebilir. Diğer bir deyişle kölecihazlar, içerisinden veri almayı ve bunlara veri yazmayı sağlayabilir.
Modbus, açık bir protokoldür. Bunun anlamı, farklı üreticiler, bu protokole uyguncihazları herhangi bir ücret ödemeksizin üretebilir ve bu protokolü kullanabilir. Bu nedenlegünümüzde, endüstride yaygın olarak kullanılmaktadır.
Modbus’ın esnekliği yüksektir. Bu yönüyle sadece akıllı cihazlara (PLC,mikrobilgisayar) değil de gelişmiş sensörlere de direkt olarak uygulanabilmektedir.
1.4.1. Modbus’ın Çalışması
Modbus, seri haberleşme standardını kullanır. Orijinal olarak Modbus, RS232 serihaberleşme standardını kullanmaktadır. Ancak bu, sadece kısa mesafeler için geçerlidir.Uzun mesafeler için de RS485 seri haberleşme standardını da kullanabilmektedir.
Modbus’ta veriler, birler ve sıfırlardan oluşan seriler hâlinde taşınmaktadır. Her birbit, bir voltaj seviyesi olarak aktarılır. Bu voltaj seviyeleri yani bitler, çok hızlı bir şekildecihazlar arasında iletilir. Bu hız, baud olarak adlandırılır (Örneğin 9600 baud “bit/saniye”).
1.4.2. Modbus Veri Modeli
Modbus’ta veriler, dört farklı tablo içerisinde saklanır. Bu veriler ve Modbus adresleriaşağıdaki tablodaki gibidir. Bunlardan ayrık olanlara ON/OF değerleri kayıtlıdır (bobinler).Diğerlerine ise sayısal değerler kayıtlıdır (registerler). Registerlerin ve bobinlerin sadeceokunabilen veya hem okunup hep yazılabilen çeşitleri vardır. Her bir tabloda toplam 9999değer vardır. Her bobin ya da kontak 1 bittir ve veri adresleri 0000 ile 270E arasındadır. Herbir register ise 1 word =16 bit yani 2 byte’tır. Bunlarında data adresleri 0000 ile 270Earasındadır.
6
Tablo Adı Türü Bobin/ RegisterNumaraları
Veri Adresleri
Ayrık ÇıkışBobinleri
Okunabilir/Yazılabilir 1-9999 0000 -270E
Ayrık GirişKontakları
Sadece Okunabilir 10001 - 19999 0000-270E
Analog GirişRegisterleri
Sadece Okunabilir 30001- 39999 0000-270E
Analog ÇıkışTutucu Registerler
Okunabilir/Yazılabilir 40001-49999 0000-270E
Tablo 1.1: Modbus veri modeli
1.5. Modbus Komutları
1.5.1. Bobin Durumu Oku (Fonksiyon Kodu: 01)
Bu komut, verilen adresteki, köle (Slave ) aygıttaki bağımsız her bir bobin durumunuokumak için kullanılır. Kullanım şeklini aşağıdaki örnekte inceleyelim:
Bu örnekte 17 nu.lı adrese sahip cihazdan 17’inci bobinden itibaren 16 adet bobinindurumunu sorgulayan komutu Modbus RTU formatında yazalım. Burada CRC programtarafından otomatik olarak hesaplanarak komut sonuna eklenmelidir.
İstek: Modbus master tarafından gönderilen veri
11 01 0011 000F CRC
İstek yapılanaygıt adresi(11Hex= 17adres nu.lıaygıt)
“Bobinoku.”komutkodu
Okunması istenen ilkbobinin data adresi (11Hex= 17. bobin)
Durumuokunacak bobinadedi (F Hex=16 adet bobin)
Dönüşselartıklıkdenetim
Yanıt: Slave cihazdan alınan yanıt
11 01 02 CD6B CRC
İstek yapılanaygıt adresi
“Bobin oku.”kodu
(16 bobin / 8bit = 2 byte
CD : 17 ile 24 arasıbobinlerin durumu6B:25 ile 32 nu.lıbobinlerin durumu
Dönüşselartıklık denetim
Örnek
7
Bobinlerin durumu:
Bobin 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
DurumBIN
0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1
HEX 6 B C D
Gelen yanıt bilgisinde “CD6B” Hexadecimal olarak okunduğunda 17’inci çıkış bobini“1” , 22’inci bobin ise “0” olarak görülmektedir.
1.5.2. Giriş Durumu Oku (Fonksiyon Kodu: 02)
Bu fonksiyon, ayrı ayrı girişlerin durumlarını ON/OFF okumak için kullanılır. Girişadresleri Modbus için #10001’den başlar. Aşağıdaki örnekte #10197 nu.lı adrestenbaşlayarak 22 bitlik giriş durumu okutulmaktadır.
Bu örnekte ise 196 nu.lı girişten itibaren 22 adet girişin durumunu istek yapıyoruz.Okunması istenen ilk girişin data adresi hexadecimal ve “00C4” olarak belirtilmiştir. Bununonluk karşılığı 196’dır. Ancak Modbus için girişler 10001’den başlamaktadır. İstek bilgisigönderilirken bu adres bilgisi 10001+196=10197 olarak gönderilecektir.
İstek: Modbus master tarafından gönderilen veri
11 02 00C4 0016 CRC
İstek yapılanaygıt adresi(11Hex= 17adres nu.lıaygıt)
“Girişoku.”komutkodu
Okunması istenen ilkgirşin data adresi (C4Hex= 196. giriş =>#10197 )
Durumuokunacak girişadedi (16 Hex=22 adet giriş)10197’den10218’e kadar
Dönüşselartıklıkdenetim
Yanıt : (Slave cihazdan alınan yanıt)
11 02 03 ACDB35 CRC
İstek yapılanaygıt adresi
“Bobin oku.”kodu
(22 giriş / 8 bit= 3 byte
AC : 10197 ile10204 arası girişdurumuDB :10205 ile10212 nu.lı girişdurumu35 : 10213 ile10218 nu.lı girişdurumu
Dönüşselartıklık denetim
Örnek
8
Bobinlerin durumu:
AC: Ayrık Girişler 10197 – 10204 (1010 1100)DB: Ayrık Girişler 10205 – 10212 (1101 1011)35: Ayrık Girişler 10213 – 10218 (0011 0101)
Tabloya göre bu durumda 10197 nu.lı giriş “0” yani “off” durumdadır. 10204 nu.lıgiriş ise “1” yani “on” durumdadır. Tabloya bakıldığında değeri 35 olan girişlerde ise 6 bitinkullanıldığı görülmektedir. Bu altı bitin geriye kalan iki biti ise “0” olarak geri dönecektir.
1.5.3. Tutucu Registerleri Oku (Fonksiyon Kodu: 03)
Bu komut istek yapılan cihazın analog çıkış tutucu registerlerindeki verileri istekyapmak için kullanılır. Modbus için tutucu registerlerin adresleri #40001’den başlar.
Yine 17 nu.lı slave cihazın 107 nu.lı yani Modbus için #40108 nu.lı registerindenitibaren üç adet registerini istek yapan Modbus RTU komutunu yazalım.
İstek: Modbus master tarafından gönderilen veri
11 03 006B 0003 CRC
İstek yapılanaygıt adresi(11Hex= 17adres nu.lıaygıt)
“Tutucuregisteroku.”komutu
Okunması istenen ilkregister adresi ( 6BHex= 107. nu.lıregister=> #40108)
Durumuokunacakregister adedi (3Hex= 3 adetregister) 40108den 40110’akadar
Dönüşselartıklıkdenetim
Yanıt: Slave cihazdan alınan yanıt
11 03 06 AE41 5652 4340 CRC
İstek yapılanaygıt adresi
“Tutucu registeroku.” komutu
Veri byte’larının sayısı3 register =>3 x 2 byte=6 byte)
AE41 : 40108Nu.lı registeriniçeriği5652 : 40109 Nu.lıregisterin içeriği4340 : 40110 Nu.lıregisterin içeriği
Dönüşselartıklık denetim
Örnek
9
1.5.4. Giriş Registerleri Oku (Fonksiyon Kodu: 04)
Bu komut ile giriş registerlerin durmunu istek yaptırabiliriz. Modbus için giriş registeradresleri # 30001’den başlar.
Yine 17 nu.lı slave cihazın 8 nu.lı yani Modbus için #30009 nu.lı registerin durumunuistek yapan Modbus RTU komutunu yazalım.
İstek: Modbus master tarafından gönderilen veri
11 04 0008 0001 CRC
İstek yapılanaygıt adresi(11Hex= 17adres nu.lıaygıt)
“Girişregisteroku.”komutu
Okunması istenen ilkregister adresi ( 8Hex= 8 nu.lıregister=> #30009)
Durumuokunacakregister adedi (1Hex= 1 adetregister) sadece3009 nu.lıregister
Dönüşselartıklıkdenetim
Yanıt: Slave cihazdan alınan yanıt
11 04 02 000A CRC
İstek yapılanaygıt adresi
“Giriş registerioku.” komutu
Veri bytelarının sayısı1 register =>1 x 2 byte=2 byte)
30009 nu.lıregisterin içindekibilgi
Dönüşselartıklık denetim
1.5.5. Sadece Bir Bobin Durumu Değiştir (Fonksiyon Kodu: 05)
Bu komut ile ayrık bir bobinin durumunu değiştirebilirsiniz. Modbus için bobinler #1’den başlar.
17 nu.lı slave ünitenin 173 nu.lı bobinin ON yapmak için gerekli Modbus RTUkomutunu yazalım.
İstek: Modbus master tarafından gönderilen veri
Örnek
Örnek
10
11 05 00AC FF00 CRC
İstek yapılanaygıt adresi(11Hex= 17adres nu.lıaygıt)
“Bobiniçeriğinideğiştir.”fonksiyonkodu
Bobinin data adresi(AC hex= 172 => 173Modbus için )
FF00’nunanlamı bobiniON konumagetir. OFFkonum için bubilgi 0000olmalıdır.
Dönüşselartıklıkdenetim
Yanıt: Slave cihazdan alınan yanıt
11 05 00AC FF00 CRC
İstek yapılanaygıt adresi
“Bobin içeriğinideğiştir.”fonksiyon kodu
Durumudeğiştirilenbobin adresi
Durumu FF00yani ON olarakdeğiştirildi mesajı
Dönüşselartıklık denetim
1.5.6. Sadece Bir Register Durumunu Değiştir (Fonksiyon Kodu: 06)
Bu komut ile bir registerin durumunu değiştirebilirsiniz. Modbus için bobinler#40001’ den başlar.
17 nu.lı slave ünitenin 40002 nu.lı register içeriğini 0003 yapmak için gerekli ModbusRTU komutunu yazalım.
İstek: Modbus master tarafından gönderilen veri
11 06 0001 0003 CRC
İstek yapılanaygıt adresi(11Hex= 17adres nu.lıaygıt)
“Registeriçeriğinideğiştir.”komutu
1 hex=1 dec(40001+1=40002 nu.lıregiser)
40002 nu.lıregisteriniçeriğini 0003hex yap.
Dönüşselartıklıkdenetim
Yanıt: Slave cihazdan alınan yanıt. Register içeriği yazıldıktan sonra aşağıdaki yanıtalınır.
11 06 0001 0003 CRC
İstek yapılanaygıt adresi
“Registeriçeriğinideğiştir.”fonksiyon kodu
Durumudeğiştirilenregisteradresi 40002
40002 nu.lıregister içeriği0003 yapıldı.
Dönüşselartıklık denetim
Örnek
11
1.5.7. Birden Fazla Bobin İçeriği Değiştir (Fonksiyon Kodu: 15=0F hex)
Bu komut ile birden fazla bobinin durumunu değiştirebilirsiniz. Modbus için bobinler#1’den başlar.
17 nu.lı slave ünitenin 20 nu.lı bobinden itibaren 10 adet değerini değiştirmek içingerekli Modbus RTU komutunu yazalım.
İstek: Modbus master tarafından gönderilen veri
11 0F 0013 000A 02 CD01 CRC
İstekyapılanaygıt adresi(11Hex=17 adresnu.lı aygıt)
15 nu.lıfonksiyon“Bobinleriniçeriğinideğiştir.”komutu
13 Hex=20 nu.lıbobindenitibaren
Ahex=10Dec 10adetbobindatasıdeğişecek
10 adetbobin =>10bobin/8=2 bytedeğişecek
CD:20’den27’yekadarbobinlere01 : 27’den29’a kadarbobinlerindurumu
Dönüşselartıklıkdenetim
Yanıt : (Slave cihazdan alınan yanıt bobin içeriği yazıldıktan sonra aşağıdaki yanıtalınır.
11 0F 0013 000A CRC
İstek yapılanaygıt adresi
“Bobinleriniçeriğinideğiştir.”fonksiyonukodu
Başlangıçbobin adresi
A hex:10 adetbobin durumudeğişti.
Dönüşselartıklık denetim
Yukarıdaki yanıt geldiğinde;CD : 20 -27 arası bobinler (1100 1101) binary olarak değiştirilir.01 : 27- 29 arası bobinler (0000 0001) binary olarak değiştirilir.
1.5.8. Birden Fazla Register’e Değer Atamak (Fonksiyon Kodu: 16=10 hex)
Bu komut ile birden fazla registere değer atayabiliriz. Modbus için registerle #40001’den başlar.
17 nu.lı slave ünitenin nu.lı bobinin içeriğini değiştirmek için gerekli Modbus RTUkomutunu yazalım.
Örnek
Örnek
12
İstek: Modbus master tarafından gönderilen veri
11 10 0001 0002 04 000A 0102 CRC
İstekyapılanaygıt adresi(11Hex= 17adres nu.lıaygıt)
Fonksiyon kodu
İlkregisteradresi(40002)
2 adetregisterdeğişecek
2 adetregister=>2x2= 4bytetoplam
Register40002’yeyazılacak değer
Register40003’ eyazılacakdeğer
Dönüşselartıklıkdenetim
Yanıt: Slave cihazdan alınan yanıt. Register içeriğine yazıldıktan sonra aşağıdakiyanıt alınır.
11 10 0001 0002 CRC
İstek yapılanaygıt adresi
Foksiyon kodu Başlangıçregisteradresi
2 adet registerdeğeri değişti.
Dönüşselartıklık denetim
1.6. Visual Basic İle Modbus Master Programı Yapımı
Herhangi bir Modbus uyumlu cihaza Modbus rtu komut yapısı kullanmak amacı ileVisual Basic 6.0 kullanarak bir arayüz ve kodlarını oluşturalım. Öncelikle aşağıdaki formuoluşturalım. Seri iletişimde MsComm nesnesini kullanacağız.
Şekil 1.3: Modbus için hazırlanan arayüz
Combo1
Text2
MsCommComma
Comma
Text3
Text4
Text5
Comma
Text1
13
Form üzerindeki MsComm nesnesinin özellikleri şunlardır:
Şekil 1.4: Mscomm1 nesnesinin özellikleri
1.6.1. Form Load Olayı
Bu bölümde Form yüklendiği anda butonların durumları ve ekranda bulunan combokutusunun elemanları belirlenmektedir.
1.6.2. Command1 Click Olayı
Command1 nesnesi üzerinde “Bağlan” yazısı görülmektedir. Bu düğmeye basıldığındaaşağıdaki kodda belirlenen ve diğer nesnelerden gelen port numarası ve boud hızına göre seriiletişim kurulmaktadır.
Private Sub Command1_Click()
MSComm1.CommPort = Val(Combo1.Text)MSComm1.Settings = Text2.Text + ",e, 8, 1"MSComm1.PortOpen = TrueCommand1.Enabled = FalseCommand2.Enabled = TrueEnd Sub
Private Sub Form_Load()
Command2.Enabled = FalseCombo1.AddItem 2Combo1.AddItem 3Combo1.AddItem 4
End Sub
14
1.6.3. Command2 Click Olayı
Command2 düğmesi üzerinde “Bağlantıyı kes.” yazmaktadır. Bu düğmeyebasıldığında seri iletişim bağlantısı kesilecektir.
1.6.4. Command3 Click Olayı
Bu kısımda da “Gönder” düğmesine basıldığında yapılması istenenler kodlanmıştır.
Private Sub Command2_Click()Command2.Enabled = flaseCommand1.Enabled = TrueMSComm1.PortOpen = FalseEnd Sub
15
Buna göre girilen hexadecimal parametreler birbirine eklenerek Modbus komut satırıoluşturulmaktadır. Ayrıca bu kısımda girilen komuta göre otomatik olarak CRChesaplanması da yapılmıştır.
1.6.5. MsComm1 OnComm Olayı
MsComm OnComm olayı bilgisayarın seri portuna herhangi bir bilgi geldiğinde aktifolacaktır. Bu bölümde gelen bilgi text6 kutusuna hexadecimal olarak yazdırılacaktır.
Private Sub MSComm1_OnComm()Dim i As IntegerDim ResStrLen As IntegerDim ResStr As StringSelect Case MSComm1.CommEvent
Case comEvReceive:ResStr = MSComm1.InputResStrLen = Len(ResStr)
For i = 1 To ResStrLenIf Len(Hex(AscB(Mid(ResStr, i, 2)))) < 2 Then
Text6.Text = Text6.Text & ",0" & Hex(AscB(Mid(ResStr, i, 2)))Else
Text6.Text = Text6.Text & "," & Hex(AscB(Mid(ResStr, i, 2)))End If
Next
End SelectEnd Sub
16
UYGULAMA FAALİYETİ
Modbus haberleşme yapmak için Visual Basic programını yapınız.
İşlem Basamakları Öneriler
Arayüz oluşturunuz. Gerekli kompanentleri kullanışlı birşekilde program formu üzerineyerleştiriniz.
Kompanentlere uygun kodların yazınız. Özellikle MSCOMM kompanentayarlarını dikkatli bir şekilde yapınız.
CEC kodunu yazınız. Modbus CRC kodunun uyumlucihazlara uygun olarak yapınız.
UYGULAMA FAALİYETİ
17
ÖLÇME VE DEĞERLENDİRME
Aşağıdaki cümlelerdeki yargılar doğru ise D; yanlış ise Y yazınız.
1. ( ) Mdbus Protokolü Modicon firması tarafından üretilmiştir.
2. ( ) Modbus RTU paralel haberleşmeyi kullanmaktadır.
3. ( ) RS485 bir seri haberleşme protokolüdür.
4. ( ) Modbus’ın 01 nu.lı komutu birden fazla registerin okunmasını sağlar.
5. ( ) Modbus 02 nu.lı komut girişleri okumak için kullanılır.
6. ( ) Visual Basic’in seri iletişim için kullanılan kompanenti MSCOMM’dur.
DEĞERLENDİRME
Soruların tamamını doğru olarak çözebildiyseniz bir sonraki faaliyete geçiniz.Çözümleriniz yanlış ya da eksik ise ilgili bilgiyi tekrar ediniz.
ÖLÇME VE DEĞERLENDİRME
18
ÖĞRENME FAALİYETİ–2
Bir endüstriyel ağ kurulumunu hatasız bir şekilde yapabileceksiniz.
Modbus haberleşmesi yapabilen cihazların kataloglarını inceleyiniz.
2. MODBUS İLE MODBUS UYUMLU CİHAZHABERLEŞMESİ
Modbus komutlarını ve yapısını öğrendik. Bu komutları ve uygulamaları kuracağımızfarklı sistemlerde uygulayalım. Öncelikle Modbus ile bilgisayar ve diğer Modbus uyumlucihazları haberleştirelim.
2.1. Modbus İle İnverter Haberleşmesi
Bu uygulamada aşağıdaki sistemi kuracağız.
Modbus MasterModbus MasterInverterInverter
RS485
Şekil 2.1: USB/RS485 dönüştürücü
Öncelikle bağlantıları yapacağız. Bilindiği üzere Modbus bağlantılarında RS485bağlantısı kullanarak çok daha uzun mesafelerde bağlantı yapılabilir. Bu amaçlabilgisayardan USB/RS485 dönüştürücü modülü kullanacağız.
Şekil 2.2: USB/RS485 dönüştürücü
ÖĞRENME FAALİYETİ–2
AMAÇ
ARAŞTIRMA
19
RS485 bağlantı uçlarından D+ ve D- uçlarını kullanıyoruz. Bu kablonun diğer ucunuise inverterin yine D+ ve D- uçlarına çaprazlayarak bağlamalıyız. Yani USB/RS485dönüştürücünün D+ ucunu inverterin D- bağlantı noktasına D- ucunu da inverterin D+ucuna çaprazlayarak bağlıyoruz.
Şekil 2.3: USB/RS485 dönüştürücü
2.1.1. İnverter Parametreleri
Bu uygulamada, kullanacağımız inverterin Delta VFD-S1 modelinin, Modbushaberleşmesi yapılacak inverterin Modbus adresinin ve diğer parametrelerininayarlarmalarını, üzerindeki panelden yapacağız. Kullanıcı kılavuzunda bu ayarlamalar vemenü kullanımı verilmiştir.
Şekil 2.4: Delta Ac motor sürücü parametre ayarlama menüsünün kullanımı
Şimdi Modbus ayarının yapılmasını adım adım inceleyelim:
20
Şekil 2.5: Nu.lı parametrenin alt parametreleri ve anlamaları kılavuzdan alıntı
1. Adım
düğmesine bir kere bastıktan sonra yön tuşları ile 9 nu.lı parametreyibulalım. 9 nu.lı parametre içerisinde bağlantı ayarlarını yapabiliriz.
Şekil 2.6: Delta Ac motor sürücü Modbus parametreleri
2. Adım: Aygıt adresi vermeProg/data düğmesine tekrara basarak 9 nu.lı parametrenin alt parametrelerini
ayarlayalım. Kılavuzda belirtildiği üzere 9.00 parametresi ile cihaza bir d1 ile d2543arasında bir aygıt adresi verebiliriz. Biz bu seçenekte aygıtımıza d3 parametresiniayarlayacağız. 9.00 ifadesini gördükten sonra tekrar “prog/data” düğmesine basıyoruz. Vekarşımıza gelen göstergede aygıt numarasını d3 olarak ok tuşu ile ayarlıyoruz.
Şekil 2.7: Delta Ac aygıt adresi verme
Adres verme işlemini de prog/data tuşu ile onaylıyoruz.
3. Adım : Baud hızının ayarlanması
.
Şekil 2.8: Delta Ac Motor sürücü bağlantı boud hızının set edilmesi 9.01 nu.lı parametre
21
Ok tuşları ile 9.01 nu.lı parametreyi seçerek yine prog/data tuşuna basıyoruz.Elimizdeki kılavuzdaki verilere göre bu parametre, aşağıdaki değerlere karşılık gelen baudhızında haberleşmektedir. Biz bu baud hızlarından 38400 baud rate yani d3’ü seçeceğiz.
Veri Değer (Boud Rate)d0 4800
d1 9600
d2 19200d3 38400
Şekil 2.9: Delta Ac Motor sürücü boud hızı d3 yani 38400 olarak seçildi.
Seçimi kabul etmek için yine prog/data düğmesine basıyoruz.
4. Adım: İletişim protokolünün seçimi
Bu işlem için menüde 9.04 nu.lı parametreyi bulup prog/data ile bu parametreyiayarlıyoruz.
Şekil 2.10: Delta Ac Motor iletişim protokolü ayarlama 9.04 nu.lı parametre
Kılavuzdan baktığımızda bu parametreyi d7 yaptığımızda Modbus RTU modunda<8,E,1> 8 bit çift parite 1 stop biti şeklinde ayarlamış oluyoruz.
Şekil 2.11: Delta Ac Motor iletişim protokolü ayarlama 9.04 nu.lı parametre
22
Bu parametre ayarını sonlandırmak içinde yine prog/data düğmesine basıyoruz. Veson olarak da Mode düğmesine basarak ana menüye dönüş yapıyoruz.
Parametre ayarlarını yaptığımız inverteri kontrol etmek amacı ile bilgisayarımızdavisual basic 6.0 kullanarak yazdığımız programı kullanacağız.
2.1.2. Modbus RTU Protokolü İle İnverter Parametrelerini Değiştirme
Sistem kurulumu ve programlar hazırlandıktan sonra şimdi de inverterin sırası ilefrekans bilgisini değiştirerek motorun ileri, geri ve durdurma işlemlerini komutlar ilesağlayalım.
Frekans parametresini değiştirme
Kullandığımız delta inverterin kullanım kılavuzunda, hangi register alanına, hangibilgiyi gönderdiğimizde ne tür değişiklikler olacağı belirtilmiştir. Örnek olarak önceliklefrekans bilgisini değiştirelim. Kılavuzda ileri, geri ve durdurma işlemleri için değiştirilecekregister adresi 2000H olarak verilmiştir. Frekans değişiklikleri için de 2001H adresli registerideğiştirmek yeterli olacaktır. Register adresleri ve hangi bilgide ne değişiklikler olacağı,kılavuzda bulunan aşağıdaki tabloda verilmiştir.
Şekil 2.12: İnverter 2000H ile 2002H nu.lı registerlerin değer listesi
İlk olarak frekans registerini değiştirelim. Bunun için Modbus’un 10 nu.lı komutunukullanalım. Komut düzeni aşağıdaki gibi olacaktır.
23
Bilgi Açıklama
03 Komut gönderilen cihazın Hexadecimal olarak adresi
10 Birden fazla registere birden değer atamak için kullanılan Hexadecimalkomut. Decimal karşılığı 16
2001 Register adresi (Bu adresi kullanıcı kılavuzundan elde ettik.)
0001 Bir adet register değişecek
02 1 adet register toplam byte olarak (2 byte)
0DAC Registere yazacağımız verinin Hexadecimal karşılığı (0DAC Hex= 3500Decimal)
9BCE CRC bilgisi. Bu veri otomatik olarak programımız tarafından hesaplanarakinvertere gönderildi.
Şimdi de bağlantıları yaptıktan sonra visual basic’de hazırladığımız programıçalıştırarak komutu gönderelim.
Şekil 2.13: İnverter 2001H adresine 0DACHex=3500 yani 35 herz bilgisi gönderme
24
Hatırlayacağınız üzere 10Hex (16 Dec) komutu, çoklu olarak register içerisine bilgiyazdırabildiğimiz komuttu. Yukarıdaki örneğimizde, bir önceki bölümde adres bilgisi olarak03 şeklinde ayarladığımız inverterin, kullanıcı kılavuzundaki listeden aldığımız üzere, 2001nu.lı registerine Hexadecimal olarak “0DAC” yani 3500 herz bilgisini yazdık. Şimdi deaşağıdaki tabloda gelen yanıtı inceleyelim.
Bilgi Açıklama03 Adres10 Komut2001 Register adresi hexadecimal0001 1 Byte değiştirildi5A2B CRC kontrol bilgisi Hexadecimal
Görüldüğü üzere gönderilen komut karşılığında istenilen yanıt ulaştı. Şimdi deinverterin göstergesine baktığımızda frekans bilgisini okuyalım.
İnverterin RUN konuma alınması
Kılavuzdan register adres listesine bakıldığında 2000H registerindeki datalar ileinverterin RUN, STOP, JOG + RUN moduna alınabildiğini ayrıca FWD “ileri”, REV “geri”şeklinde motoru sürebileceğini görebiliriz.
00: Fonksiyonu Yok01 : Dur10 : Run
Bit 0-1
11: Jog+ RunBit 2-3 Kullanılmaz
00: Fonksiyonu Yok01: İleri10: Geri
Bit 4-5
11: Yön Değiştir
2000H
Bit 6- 15 Kullanılmaz
Şimdiki örneğimizde inverter motoru ileri yönde RUN konumuna aldıralım. Bununiçin 1 nu.lı biti ve 4 nu.lı biti 1 yapmamız yeterli olacaktır. Aşağıdaki tabloda bit düzenini veHexadecimal olarak değerini görelim.
Bit Numarası 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Değer Binary 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
DeğerHexadecimal
0012 Hex
25
Şimdi de Modbus komutunu hazırlayalım.
Bilgi Açıklama
03 Komut gönderilen cihazın Hexadecimal olarak adresi
06 Sadece bir registeri değiştireceğiz.
2000 Register adresi (Bu adresi kullanıcı kılavuzundan elde ettik.)
0012 Registerin değeri 12H olacak.
03E5 CRC hazırladığımız program tarafından hesaplanacak.
Programımızı kullanarak inverterdeki registeri değiştirelim.
Şekil 2.14: İnverterin RUN konuma getirilmesi için gereken komut düzeni
Gönder tuşuna basıldığında inverterin FWD ileri ve RUN konumuna geçtiğinigöreceksiniz.
26
İnverter frekans bilgisinin okunması
Modbus protokolünü kullanarak inverterin frekans bilgilerini ve RUN konumageçişini kontrol edebildiğimiz gibi o anda set edilen frekans bilgilerini ve ayrıca akımgerilim gibi bilgileri de okuyabiliriz. Kılavuzdan faydalanarak bu bilgilerin hangi registeradresinde olduğunu görebiliriz. Bir sonraki örneğimizde inverterden daha önceden setedilmiş frekans değerini okutalım. Frekans bilgisi uygulamada kullandığımız inverterin2102H nu.lı adresinde tutulmaktadır. Şimdi uygun Modbus komutunu hazırlayalım.
Bilgi Açıklama
03 Aygıt Adresi
03 Komut yalnız bir register oku.
2103 Hexadecimal olarak okumak istenilenregister adresi
0001 Kaç adet registerin okunacağı
7FD4 CRC
Şimdide hazırladığımız veriyi programımızı kullanarak invertere gönderelim ve cevabıinceleyelim.
Şekil 2.15: Frekans bilgisinin inverterden okunması
27
Bilgi Açıklama
03 Aygıt adresi
03 Komut
02 İnverterden gelen bilgi uzunluğu 2 byte(1 register)
0DAC Register içeriği. (0DACH=3500)
C569 CRC
Yukarıdaki örnekten de anlaşılabileceği gibi inverterde o anda set edilen frekansbilgisinin 3500 yani 35 hertz olduğunu okumuş olduk. Bu veriler ışığında ekranaprogramlama üzerinde değişiklik yaparak gelen bilgiyi Hexadecimal olarak değil de hertzbilgisi olarak da yazmak mümkün olabilecektir.
Görüldüğü üzere Modbus üzerinden Modbus uyumlu inverter cihazı ile haberleşmişolduk. Bu uygulamada örnekleri arttırmak da mümkündür. İnverterdeki registerlerindeğerlerini değiştirerek motoru ileri veya geri yönde istenilen hızlarda hareketettirebileceğimiz gibi o anki hareket yönünü, hızını ve motor tarafından çekilen akımı daekranda gösterebiliriz. Bu sayede bir Scada sistemi de tasarlamamız mümkün olacaktır.
2.2. Modbus İle PLC Haberleşmesi
Bu uygulamamızda aşağıdaki sistemi kuracağız.
Modbus MasterModbus MasterPLCPLC
RS485
Şekil 2.16: Bilgisyar PLC bağlantısı
Bu uygulamamızda yine bilgisayarı Modbus master olarak Modbus uyumlu NAISPLC ile haberleştireceğiz. Yine visual basicte, inverter ile haberleşmek amacı ileoluşturduğumuz vbasic programını kullanacağız. Bu haberleşmede de yine USB/RS485dönüştürücüyü kullanacağız.
PLC üzerinde de RS485 bağlantı modülünü kullanacağız.
28
Şekil 2.17: NAIS PLC RS485 arayüzü
Bilgisayarımızın USB ucuna bağladığımız USB/RS485 dönüştürücünün RS485çıkışındaki D+ ucunu PLC RS485 arayüzündeki S+ ucuna bağlıyoruz. D- ucunu ise yinePLC RS485 arayüzünün S- ucuna bağlıyoruz. Arayüzü PLC ye bağlıyoruz ve PLCkatalogundaki bilgiler ışığında PLC güç bağlantılarını da yapıyoruz.
Şekil 2.18: PLC RS485 arayüzü bağlantısı
Bağlantı hazırlandıktan sonra artık PLC’nin Modbus ile ilgili ayarlarını yapacağız.NAIS PLC’yi programlamak için kullandığımız FPwin pro programını bilgisayarımızakuruyoruz. Ayrıca PLC ile bilgisayarımızı USB kablosu ile bağlıyoruz. Bu kablo, PLCiçerisine program yazmak ve konfigürasyon yapmak için verilen kablodur.
2.2.1. PLC Konfigürasyonu
PLC’nin Modbus haberleşmesi yapabilmesi için öncelikle bazı konfigürasyonlarınyapılması gerekiyor. Bunun için önce FPwin programını başlatalım.
29
Şekil 2.19: Yeni proje oluşturma
Karşımıza gelen pencereden yeni bir proje seçeneğini seçiyoruz.
Şekil 2.20: PLC tipi seçme
30
PLC tipini seçerek Create Project düğmesine basıyoruz. Karşımıza gelen projetasarım ekranında sağ taraftaki Project gezgin penceresinden sistem registeri seçerek Comport ayarlarına geliyoruz ve parametreleri aşağıdaki şekildeki gibi yapıyoruz.
Şekil 2.21: Haberleşme parametreleri
Şekil 2.22: Haberleşme parametreleri
Görüldüğü üzere haberleşme türünü Modbus RTU mod seçtik ve adresini 1 olarakverdik. Com Baud hızını da 38400 olarak verdik. 8 bitlik çift pariteyi seçtikten sonra artık bu
31
konfigürasyonu PLC’ye yazabiliriz. Bağlantıda da herhangi bir problemimiz yok ise PLC ileonline moda geçiş yapabiliriz.
Şekil 2.23: PLC programı online konumu
Online moda geçtiğimize göre artık konfigürasyonu PLC’ye yazdırabiliriz. Bunun içinDownload program code düğmesini kullanıyoruz.
Şekil 2.24: Programı PLC’ye gönderme
Program yazımı işlemi bittikten sonra PLC ile Modbus haberleşme yapmaya hazırızdemektir.
2.2.2. Program İle Test Etme
Programı PLC’ye yazdıktan ve bağlantıları yaptıktan sonra artık PLC ilebilgisayarımızı Modbus RTU Protokolü ile haberleştirebiliriz. Bu amaçla öncelikle visualbasic’te daha önce hazırladığımız programı başlatıyoruz. Ve aşağıdaki komut dizesinigönderiyoruz.
Şekil 2.25: Program ile PLC giriş kontaklarını
32
Komut dizesini çözümleyelim.
01 Adres Bilgisi02 Giriş Oku komutu0000 Okunacak ilk giriş adresi0008 8 Hex = 8 Decimal adet girişi oku79CC CRC (Programımız tarafından otomatik
oluşturuldu.)
Şimdide cevap bilgisini yorumlayalım.
01 Adres Bilgisi02 Komut Bilgisi01 01 Hex = 1 Decimal yani 1 byte’lık bilgi
gönderildi00 Girişlerin hepsi sıfır (0000 0000)A1C6 Cihaz tarafından üretilen CRC
Şimdide PLC üzerideki Y0 ve Y1 bobinlerini aktif edelim. Yani ON konumunagetirelim.Bunun için Modbus ın 15 nu.lı komutunu yani 0F hex nu.lı komutunu kullanacağız.
Şekil 2.26: Program ile PLC’ye Modbus komutu gönderme
33
Komut dizesi
01 Aygıt adresi0F Modbusun “Birden fazla bobin konumu
değiştir.” komutu0000 Bobin başlangıç adresi0008 0008 Hex yani 8 decimal adet bobini
değişecek01 1 bytle’lık veri gönderilecek03 Gönderilen bilgi (0000 0011) Y0 ve Y1
bobinlerine 1 gönderiliyor.BE94 Program tarafından hesaplanan CRC
Cihazdan gelen yanıt
01 Aygıt adresi0f Komut0000 başlangıç bobin adresi0008 8 adet bobin durumu değiştirildi.540D Aygıt tarafından gönderilen CRC
PLC üzerindeki bobinlerin durumunu gösteren LED’lere baktığımızda Y0 ve Y1bobinlerinin aktif olduğunu göreceksiniz.
Şekil 2.27: PLC’deki durum
Bu bölümde basit olarak Modbus haberleşme ile ilgili bilgileri aldık ve komutlar ilebirlikte çeşitli cihazları bilgisayar ile haberleştirdik. Bu komutlarla çok daha farklı cihazlarıda haberleştirmek mümkündür. Modbus haberleştirmede sadece bir bilgisayarı master olarakkullanabileceğimiz gibi Modbus fonksiyonlarına sahip PLC gibi akıllı cihazları dakullanabiliriz. Bir sonraki öğrenme faaliyetinde bunun üzerinde örnekler yapacağız.
2.3. Modbus Master Olarak PLC Kullanımı
Bu uygulamamızda farklı olarak bilgisayar yerine bu defa akıllı cihazımız olan PLC’yiModbus master olarak kullanacağız.
34
PLC (Modbus Master)PLC (Modbus Master)inverterinverter
RS485
Bağlantısı
Şekil 2.28: PLC inverter bağlantısı
Daha önceki bölümde anlatıldığı gibi PLC ve inverter ayarlarını aynen koruyoruz.Ayarlar inverter için;
Modbus Adres: 03,Haberleşme Hızı: 38400 (baudrate),Parite: Even,Stop bit:1 Bit,Data Uzunluğu: 8 Bit olmalıdır.
PLC için ;
Modbus Adres: 01,Haberleşme Hızı: 38400 (baudrate),Parite: Even,Stop bit: 1 Bit,Data uzunluğu: 8 Bit olmalıdır.
2.3.1. PLC Projesi
PLC’yi programlamak için daha önceden de anlatıldığı gibi Panasonic NAISfirmasının PLC programlama arayüzü olan FpWinPro’yu kullanıyoruz.
Yeni bir proje oluşturalım.
Şekil 2.29: Yeni bir proje oluşturma penceresi
35
Bir sonraki pencerede PLC tipini seçiyoruz.
Şekil 2.30: PLC tipi seçimi
Create Project düğmesi ile projeyi başlatıyoruz. Ardından seri haberleşme portununayarlarını yapıyoruz.
Şekil 2.31: Haberleşme parametre ayarları
36
Şekil 2.32. Haberleşme parametre ayarları
Ayarları tamamladıktan sonra Ladder diyagramı ile PLC için gerekli programıyazalım.
2.3.2. Ladder Programı
Programımızda PLC üzerindeki X0 girişi aktif edildiğinde inverterdeki frekansparametresi 35 Herz olacaktır. X1 aktif edildiğinde ise 40 Herz olacak şekilde Modbusüzerinden bu bilgileri PLC ile invertere göndereceğiz.
Şekil 2.33: Haberleşme parametre ayarları
37
Şimdi satır satır Ladder diyagramını inceleyerek elemanları nasıl eklediğimizianlayalım.
Şekil 2.34: Ladder komponentleri
PLC ladder programlama için yukarıdaki şekildeki araç kutusunu kullanacağız.
Araç kutusundaki kullanacağımız araçlar ve işlevleri aşağıdaki gibidir:
1. Ladder içerisine fonksiyon eklemek istediğimizde kullanırız.2. Ladder içerisine giriş eklemek için kullanılır.3. Ladder içerisine çıkış eklemek için kullanılır.4. Ladder içerisine bağlantı hattı eklemek için kullanılır.
Şekil 2.35: FO_MV fonksiyonu
İlk satırımızda X0 girişini ve F0_MV fonksiyonunu ekliyoruz. Buradaki F0_MVfonksiyonu s ucuna verilen 1 word’luk bilgiyi DT500 registerine aktarıyor. Buradaki 3500bilgisi inverterimiz için Herz bilgisi olacaktır.
Şimdi adım adım F0_MV fonksiyonunu nasıl eklediğimizi görelim .
Şekil 2.36: Fonksiyonu ekleme
21
34
38
Araç kutusundan fonksiyon eklemeyi seçiyoruz.
Şekil 2.37: Fonksiyon seçme
İkinci adımda karşımıza çıkan fonksiyon seçim penceresinden F0_MV’yi bulup inserile ladderimize ekliyoruz.
Şekil 2.38: Fonksiyonu yerine koyma
39
Mouse ile fonksiyonumuzu istenilen yere tıklayarak ekliyoruz. Daha sonraparametrelerini değiştiriyoruz.
Şekil 2.39: Fonksiyon parametreleri
Klavye ile parametreleri belirtilen şekilde yapıyoruz.
Daha sonraki adımda da X0 girişini ekliyoruz ve kalem ile bağlantıları yapıyoruz.
Şekil 2.40: X0 kontağı ekleme
Benzer adımları tekrarlayarak diğer F0_MV fonksiyonlu satırı oluşturuyoruz.
Şekil 2.41: X1 kontağı ekleme ve FO_MV fonksiyonu
Son olarak da F145_MODBUS_WRITE_DATA fonksiyonunu kullanacağız.
40
Şekil 2.42: F145 fonksiyonunu ekleme
Fonksiyon seçme penceresinden F145_MODBUS_WRITE_DATA fonksiyonunuseçerek “Ekle” düğmesine bastık. Fonksiyonu program arayüzünde seçilen yere ekleyerekparametrelerini aşağıdaki şekilde ayarlayalım.
Şekil 2.43: F145 fonksiyonunu parametreleri
Fonksiyondaki parametrelerin açıklamalarını çalıştırma işleminden sonraanlatılacaktır. Fonksiyonu EN ucuna ise X0 ve X1 girişlerini şekildeki gibi bağlayalım.
Şekil 2.44: X1 ve X2 kontaklarının eklenmesi
41
Şimdi programımızı PLC’ye yükleyelim. İlk olarak online moda geçelim.
Şekil 2.45: Online moda geçiş
İkinci basamakta ise programımızı PLC’ye yüklüyoruz.
Şekil 2.46: Programı PLC’ye gönderme
2.3.3. Programın Test Edilmesi
Öncelikle PLC üzerindeki X0 a 24 volt vererek aktif hâle getiriyoruz. İnverterüzerindeki frekans göstergesi 35.0 oluyor.
Şekil 2.47: Programın test edilmesi
Daha sonra X1 e 24 volt veriyoruz görüldüğü üzere inverter üzerindeki frekans bilgisi40.0 oluyor.
Şekil 2.48: Programın test edilmesi
42
UYGULAMA FAALİYETİ
Daha önceki uygulama faaliyetinde hazırladığınız Visual Basic programını kullanarakModbus ile bilgisayar ile uyumlu cihazı kontrol ediniz.
İşlem Basamakları Öneriler
Bilgisayar ile cihaz bağlantısını yapınız. Bağlantıda RS232 ya da RS485’ikullanabilirsiniz.
Bilgisayara bağlanacak cihazın adres vehaberleşme ayarlarını yapınız.
Modbus uyumlu her cihazın adresayarının ve haberleşme ayarlarınınnasıl yapılacağı katoloğunda ayrıntılıolarak verilmiştir.
Cihazın register adreslerini ve giriş çıkışadresleriniz katoloğundan bulunuz.
Cihaza veri göndererek bağlantınızı testediniz.
Uygun Modbus komutunu yazarakgeln cevabı gözden geçiriniz.
Cihazdan veri okuma tesit yapınız. Cihazın herhangi register adresindekikayıtlı veriyi okuyunuz.
UYGULAMA FAALİYETİ
43
ÖLÇME VE DEĞERLENDİRME
Aşağıdaki cümlelerdeki yargılar doğru ise D; yanlış ise Y yazınız.
1. ( ) Modbus protokolü ile uyumlu olmayan cihazları da haberleştirebiliriz.
2. ( ) Modbus RTU’da RS485 seri iletişim protokolünü kullanabiliriz.
3. ( ) Mdobus ile haberleştireceğimiz tüm cihazların bir adresi olmalıdır.
4. ( ) CRC kodu bilginin doğru iletilip iletilmediğini anlamamızı sağlar.
5. ( ) inverter cihazı servo motorların kontrolü için kullanılır.
DEĞERLENDİRME
Soruların tamamını doğru olarak cevaplandırdıysanız modül değerlendirmeye geçiniz.Çözümleriniz yanlış ya da eksik ise ilgili konuları tekrar ediniz.
ÖLÇME VE DEĞERLENDİRME
44
MODÜL DEĞERLENDİRME
PERFORMANS TESTİ
Modül ile kazandığınız yeterliği aşağıdaki ölçütlere göre değerlendiriniz.
Aşağıda listelenen ölçütleri uyguladıysanız “Evet” sütununa, uygulamadıysanız “Hayır”sütununa X işareti yazınız.Değerlendirme Ölçütleri Evet HayırModbus haberleşme protokolünün yapısını kavrayabildiniz mi?
RS485 ve RS232’nin farklarını kavrayabildiniz mi?
Modbus veri modelini kavrayabildiniz mi ?
Modbus fonksiyonlarını kavrayabildiniz mi?
Modbus için yapılan Visual basic programının çalışmasını kavradınızmı ?MSCOMM kompananetinin yapısını anladınız mı?
Modbus uyumlu bir cihazı bilgisayara bağlayabildiniz mi?
Cihaz ile bilgisayar haberleşmesini yapabildiniz mi?
Modbus uyumlu bir PLC ile inverteri haberleştirebildiniz mi?
DEĞERLENDİRME
Yaptığınız değerlendirme sonucunda eksikleriniz varsa öğrenme faaliyetlerinitekrarlayınız. Modülü tamamladınız, tebrik ederiz. Öğretmeniniz size çeşitli ölçme araçlarıuygulayacaktır. Öğretmeninizle iletişime geçiniz.
MODÜL DEĞERLENDİRME
45
CEVAP ANAHTARLARI
ÖĞRENME FAALİYETİ 1’İN CEVAP ANAHTARI
1 D
2 Y
3 D
4 Y
5 D
6 D
ÖĞRENME FAALİYETİ 2’NİN CEVAP ANAHTARI
1 Y
2 D
3 D
4 D
5 Y
CEVAP ANAHTARLARI
Top Related