endÜstrİyel bus sİstemlerİ - kisi.deu.edu.trkisi.deu.edu.tr/ozlem.karaca/523eo0376.pdf ·...

50
T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİMSİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ ENDÜSTRİYEL BUS SİSTEMLERİ Ankara, 2009

Upload: others

Post on 15-Sep-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

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İŞ

2

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

46

KAYNAKÇA

http://www.modbus.org/faq.php

KAYNAKÇA