Modbus Haberleşme

1.  GİRİŞ

Modbus, 1979 yılında Modicon (şu an Schneider Electric firması olarak biliniyor) tarafından PLC’ler ile kullanılmak için geliştirilen bir seri haberleşme protokolüdür.

Kolay ve hızlı, bütün üreticilere açık ve herkes tarafından telif ücreti gerektirmeden kullanılabilir bir protokol olması, günümüzde elektronik cihazlarda en yaygın kullanılan haberleşme protokolü olmasındaki büyük etkenlerden bazılarıdır.

Modbus’un bugün fiilen bir standart hâline gelmesinin sebepleri şöyle sıralanabilir:

  • Endüstri uygulamaları düşünülerek geliştirilmiştir.
  • Açık olarak yayınlanmış olup herhangi bir ücrete tâbî değildir.
  • Yerleştirilmesi ve bakımı kolaydır.
  • Üreticiler konusunda pek fazla sınırlama koymadan ham bit ve kelimeleri yollar.
  • Modbus, takriben 247 cihaz arasında haberleşmeyi sağlayabilmektedir. Çalışma mantığı bir ana cihaz (İng.master) ve ana cihaza bağlı bir veya daha fazla cihaz (İng. slave) arasında aynı  üzerinde yapılan veri alışverişi üzerine kurulmuştur.

2.  MODBUS HABERLEŞME ÇEŞİTLERİ

Modbus, haberleşme ve fiziksel katman olarak ikiye ayrılmaktadır.

  • Haberleşme katmanı olarak günümüzde en çok kullanılanları Modbus ASCII, RTU ve TCP/IP’dir.
  • Fiziksel katman olarak ise UART temelli RS232/RS485, USB/CAN gibi değişik birimler ve TCP/IP için Ethernet gösterilebilir.

2.1 MODBUS RTU

Modbus içerisinde seri iletişim metodunu kullanan ASCII ve RTU adı altında iki haberleşme metodu bulunmaktadır. Ancak RTU ile haberleşme ASCII ile haberleşmeye göre daha hızlıdır. Örneğin 12345 sayısı seri hat üzerinden ASCII metodu ile gönderilirse “1”,”2”,”3”,”4”,”5” şeklinde 5 ayrı byte ile gönderim yaparken, RTU’da bu bilgi 2×8 bit olacak şekilde MSB ve LSB olarak ikiye bölünecektir ve 2 byte şeklinde (12345/256 bir byte, 12345%256 bir byte) gönderim yapacaktır. Bu nedenle RTU daha hızlı gönderim yapmaktadır. Günümüzde RTU bu nedenden dolayı en sık tercih edilen seri iletişim metodu olarak bilinmektedir.

Modbus RTU frame yapısı Tablo 1’de görülebilir. İlk byte’ta iletişim kurulacak cihazın adresi belirlenmelidir. Slava cihaz sayısı 247 adet olabileceğinden bu bölüme 0-247 arasında sayı yazılmalıdır. İkinci byte ise Modbus için standartlaşmış fonksiyon kodlarını ihtiva etmelidir. Bu fonksiyon kodları Tablo 2’de belirtilmiştir.

Tablo 1 Modbus RTU Frame Yapısı

Slave Adres Fonksiyon Kodu Data CRC
1 byte 1 byte 0-252 byte aralığı 2 byte (CRC Low, CRC High)

Tablo 2 Modbus İçin Standartlaşmış Fonksiyon Kodları

Kod Modbus Fonksiyonu
1 Read Coil Status (Coil durumunu oku)
2 Read Input Status (Giriş durumunu oku)
3 Read Holding Registers (Kaydedilen değerleri oku)
4 Read Input Register (Giriş kayıtlarını oku)
5 Write Single Coil (Tekli coil’i yaz)
6 Write Single Register (Tekli kaydı yaz)
15 Write Multiple Coils (Çoklu coil’leri yaz)
16 Write Multiple Registers (Çoklu kaydı yaz)

Günümüzde en çok tercih edilen Modbus RTU fonksiyonları 3,6 ve 16’dır.

Bundan sonraki bölümde fonksiyon tanımlamalarına göre datalar düzenlenerek, slave adresi ve fonksiyon numarasının CRC16 daki son iki byte’a yazılarak gönderim ve alım işlemleri sağlanır.

Şekil1

Şekil 1 Modbus Haberleşme Yapısı

Modbus RTU için mesaj gönderim ya da alımlarında iki mesaj arası minimum 3.5 karakterlik bekleme yapılmalıdır. Bu bekleme baudrate hızına göre değişkenlik gösterecektir. Örneğin 9600 baudrate için bu değer yaklaşık 3 ms iken 115200 baudrate değeri için 0.25 ms civarında olacaktır.

2.1.1 CRC NEDİR?

CRC çevrimsel hata denetimi (Cyclic Reduncany check) manasına gelmektedir. CRC’nin farklı kombinasyonları farklı haberleşme kontrolleri için kullanılabilir. Modbus haberleşmesi için kullanıldığında  mesajın sonuna eklenen iki byte’dan oluşur. Mesajdaki her byte CRC’yi hesaplamak için gönderilmektedir. Ayrıca alıcı cihaz da CRC’yi hesaplar ve onu gönderici cihazdan gelen CRC ile karşılaştırır. Eğer mesajdaki bir bit bile yanlış alınmışsa, CRC’ler farklı olacaktır ve bir hata oluşacaktır.

CRC yönteminde bir blok içindeki veriler tek tek toplanır, bu toplam belirli bir sayıya bölünür (bu sayıya P diyelim) ve bölüm sonucunda çıkan kalan sayısı verilere eklenir. Karşı tarafta veri alındığında yine veriler tek tek toplanır ve bu toplamdan bölüm kalanı çıkartılır. Çıkartma sonucundaki sayı da  P’ye bölünür. Eğer veriler hatasız iletilmişse kalan sıfır olmalıdır.

Bir örnek verelim:

VERİLER                                                                 CRC

90     69     66     82     65     79     78     69              3

Yukardaki verilerin rakamsal toplamı 598’dir. Örnekteki P sayımız da 17 olsun.

Toplam=598

P=17

598/17=35, kalan=3

Bu veri alındığında da şu işlem yapılır:

(598-3)/17=35, kalan=0 (hatasız iletim)

Eğer iletilen veriler hatalı ise bu verilerin toplamı 598 olmayacaktır, dolayısı ile kalan da 0 olmaz. Buradan verilerde bir bozulma olduğu anlaşılır ve veriler tekrar iletilir/saklanır. CRC’nin kelime anlamı da yapılan işlemi anlatır (dönemsel kalan kontrolü; dönemseldir, çünkü bütün veri bloklara bölünür ve CRC işlemi herbir blok için uygulanır)

CRC yöntemi yüzde yüz  güvenilir bir yöntem değildir. Yine örneğimizdeki verilere dönersek altıncı verinin 79 değil de 96 olacak şekilde bozulduğunu varsayalım (yani P kadar). Bu durumda karşı tarafın eline geçen verilerin toplamı 615 olacaktır. CRC işlemini uyguladığımızda:

(615-3)/17=36, kalan=0

Yani, bir hatalı iletim söz konusu olduğu halde bu hata farkedilememiştir. Ama verilerin P ve P’nin katları kadar bozulma olasılığı hayli düşüktür. Bu yüzden hataların büyük bölümü CRC yöntemi ile saptanabilir.

2.2 MODBUS TCP/IP

TCP, İletim Kontrol Protokolü ve IP ise İnternet Protokolü kelimelerinin kısaltmasıdır. Bu protokoller birlikte kullanılır ve internet için aktarım protokolünü oluştururlar. Modbus bilgileri bu protokoller kullanılarak gönderildiğinde veri, ilave bilgilerin eklendiği ve IP’ye verildiği TCP’ye gönderilir. IP veriyi paketler ve aktarır.

Veri aktarımından önce TCP bağlantısı kurulmalıdır çünkü bağlantı tabanlı bir protokoldür. Master (veya Modbus TCP’de istemci),  Slave (veya Sunucu) ile bir bağlantı kurar. Sunucu istemciden gelen bağlantıyı bekler. Bir bağlantı kurulduktan sonra, Sunucu istemci bağlantıyı kapatana kadar ondan gelen sorgulara yanıt verir.

Bu bir TCP/IP sarıcı üzerinden gönderilen Modbus RTU mesajıdır ve seri bağlantı yerine bir ethernet ağı üzerinden gönderilir. Sunucunun SlaveID adresi yerine bir IP adresi vardır.

3.  SIEMENS MODBUS HABERLEŞME TÜRLERİ

3.1 TANIM

Simatic S7-1200 ailesi ile noktadan noktaya haberleşme RS485 ve RS232 ile sağlanabilrmektedir. Her bir S7-1200 ailesinde ek modül olarak 3 adet haberleşme modülü eklenebilmektedir. Bunun yanında PLC üzerinde 1 adet RS485 haberleşmenin sağlandığı haberleşme modülü de eklenebilmektedir.

STEP 7 yazılımı kullanılarak MODBUS kütüphanesinden her bir haberleşme modülü master veya slave seçilebilmektedir. Eğer MODBUS Master seçimi yapılırsa,

  • RS232 ile CM1241 haberleşme modülü kullanılarak 1 adet slave haberleşme durumu oluşturulabilir.
  • RS422 ile CM1241 haberleşme modülü kullanılarak 10 adet slave haberleşme durumu oluşturulabilir.
  • RS485 ile CM1241 veya CB1241 haberleşme modülü kullanılarak 10 adet slave haberleşme durumu oluşturulabilir.

3.1.1 RS232 Protokolü

Kullanılan en popüler ve ilk oluşturulan seri haberleşme protokolüdür. Bilgisayarlarda yaygın olarak bulunmaktadır. Seri haberleşmenin rahatlıkla yapılabildiği bu protokolde bazı dezavantajlı durumlar mevcuttur:

  • Çok uzun mesafelerde kullanılamamaktadır. 15 metre ve altı kullanımlarda tavsiye edilir.
  • Gürültülere karşı hassastır. Alıcı ve verici arasındaki veri alışverişinde topraklamaya ihtiyaç duyulmaktadır.
  • RS232 ile yalnızca bir bağlantı yapılabilmektedir. Birden fazla bağlantı yapıldığında veri kaybı yaşanacaktır. (https://www.omega.co.uk/techref/das/rs-232-422-485.html)

 

Şekil2

Şekil 2 RS232 Bağlantı Durumu

3.1.2 RS422 Protokolü

RS422 protoklü RS232 protokolüne benzemektedir. Ancak bazı avantaj ve dezavantajlara sahiptir. Öncelikle RS422 protokülü kullanımı için RS232 dönüştürücüye ihtiyaç duyulmaktadır. Bilgisayarlar RS422 arayüzüne sahip değildir. Bundan dolayı dönüştürücüye ihtiyaç duyulmaktadır. Bunların yanında bazı avantajları aşağıda belirtilmektedir.

  • Uzun mesafede haberleşmeyi sağlamaktadır. Yaklaşık 150 metreye kadar haberleşmeyi destekler.
  • Birden çok haberleşme durumunu desteklemektedir. 32 tane donanımsal ekipmanla haberleşme sağlanabilmektedir. Her bir ekipman kendi ID’si ile tanımlanır ve ayırtedilir.
  • Gürültülere karşı dayanıklıdır. Alıcı ve verici 4 kablo ile sağlandığından dolayı RS232 haberleşmesine göre gürültülere karşı daha dayanıklıdır.

 

Şekil3

Şekil 3 RS422 Bağlantı Durumu

3.1.3 RS485 Protokolü

RS485, RS422’ye çok benzemektedir. Bu yüzden sık sık karıştırılmaktadır. Her ikisi de çoklu haberleşmeye ve uzun mesafe haberleşmeye izin vermektedir. Genellikle RS485 protokolü 2 kablolu bir sistemdir. Ancak bazı kullanıcılar RS422 protokolüne benzeyen ve genelde kullanılmayan 4 kablolu RS485 protokolünü de kullanmaktadır. Bir proje oluşturulurken hangi haberleşme protokolünü seçmemiz gerektiği önem arz etmektedir. 2 kablolu RS485 protokolü ile RS422 protokolü arasındaki farklılıklar aşağıda belirtilmektedir:

  • RS485 protokolü çoklu olarak komut yollayabiliyorken RS422 protokolü çoklu komut gönderememektedir. RS422 protokolü sadece bir komut gönderip çoklu cevap alabilir. RS485 protokolü hem çoklu komut gönderir hem de çoklu cevap alabilir.
  • RS485 pin çıkışı, 4 yerine 2 tel ile çalıştığımız için daha kolaydır. (https://www.omega.co.uk/techref/das/rs-232-422-485.html)

Şekil4

Şekil 4 RS485 Bağlantı Durumu

3.2 STEP 7 MODBUS KÜTÜPHANELER

Siemens Step 7 “Communication” alt sekmesinde “Communication processor” kütüphanesinin alt başlığında “MODBUS (RTU)” klasöründe modbus haberleşmeye ilişkin “Master” ve “Slave” kütüphaneler mevcuttur (Şekil 5).

Şekil5

Şekil 5 Step 7 Haberleşme Sekmesi

3.2.1 Modbus_Comm_Load

Modbus haberleşme için hem master yapısı hem de slave yapısı için “Modbus_Comm_Load” bloğu kullanılır (Şekil 6).

Şekil6

Şekil 6 Modbus_Comm_Load Bloğu

“Modbus_Comm_Load” bloğu haberleşme modülünü seçmek için kullanılır. Burada haberleşme parametreleri ile birlikte master veya slave parametrelerin bağlantıları blok üzerinden ayarlanır.

“Modbus_Comm_Load” bloğu ilk program çevriminde çağrılmalıdır. Haberleşme bloğunda donanımsal ayarlamalar yapıldıktan sonra “PORT” parametresi üzerinde donanımsal ekipman ismi girilmelidir. Tüm haberleşme parametrelerinde BAUD(iletim hızı) ve PARITY aynı olmalıdır. “MB_DB” girişinde MODBUS haberleşmesi ile donanım ekipmanının master mı slave mi yapılacağı seçilir.

Şekil 7’de gösterilen “InstModbusCommLoad” data değişkeninde bulunan statik parametre olan “”MODE” durumu haberleşmenin yapılacağı protokol yapısına göre ayarlanmalıdır  (0=full duplex (RS232), 1=full duplex (RS422) 4 kablo modu, 4=half duplex (RS485) 2 kablo modu).

 

Şekil7

Şekil 7 InstModbusCommLoad Data Değerleri

3.2.2 Modbus_Master

MODBUS master haberleşmesi için “Modbus_Master” bloğu tanımlanmıştır (Şekil 8). Bu blok “Modbus_Comm_Load” bloğu ayarları yapıldıktan sonra ayarlamalar yapılmalıdır.

Şekil8

Şekil 8 Modbus_Master Blok Yapısı

“Modbus_Master” bloğu adreslenecek MODBUS slave’ini seçmek için kullanılır, fonksiyon kodunu seçer ve yerel veri depolama alanını tanımlar. Parametrelere ilişkin açıklamaların bulunduğu tablo Tablo 3’de gösterilmektedir.

Tablo 3 Modbus Master Tanım Tablosu

Parametre                                                          Tanım
REQ Haberleşmeyi sağlar.
MB_ADDR MODBUS-RTU istasyon adresi.
MODE İletim yönünü belirtir. (“0” = read, “1” = write)
DATA_ADDR MODBUS başlangıç adresini belirtir.
DATA_LEN MODBUS data uzunluğunu belirtir.
DATA_PTR Master alanlarındaki lokal olarak alınan ve gönderilen dataları tanımlar.

3.2.3 Modbus_Slave

MODBUS master haberleşmesi için “Modbus_Slave” bloğu tanımlanmıştır (Şekil 9). Bu blok “Modbus_Comm_Load” bloğu ayarları yapıldıktan sonra ayarlamalar yapılmalıdır.

Şekil9

Şekil 9 Modbus_Slave Blok Yapısı

“Modbus_Slave” bloğu MODBUS-RTU adresini tanımlamak için kullanılır. Parametrelere ilişkin açıklamaların bulunduğu tablo Tablo 4’de gösterilmektedir.

Tablo 4 Modbus Slave Tanım Tablosu

Parametre                                                          Tanım
MB_ADDR MODBUS-RTU istasyon adresini aktarır.
MB_HOLD_REG Modbus slave kaydını tutar (Holding register of the slave).

“MB_HOLD_REG” parametresinde “Word” veri tipinde transfer işlemi yapılır, veri aktarımı yapılır. “MB_HOLD_REG” parametresindeki dizinin boyutu, master’ın veri hacmini kapsayacak kadar büyük olmalıdır. MODBUS holding register değerindeki dizinin başlangıç adresi 40001 ile başlamaktadır.

3.3 TIA PORTAL ÖRNEK PROJE

Şekil 10’da Modbus Master yapısına ilişkin akış diyagramı gösterilmektedir.

Şekil10

Şekil 10 Modbus Master Akış Diyagramı

  1. “Modbus_Comm_Load” konfigürasyon bloğu Adım 0’da başlatılır.
  2. Adım 1’de, yazılacak olan veri “DATA_PTR”ye ve “Modbus_Master” bloğuna aktarılır. Modbus Slave’e yazılacak iletişim parametreleri (MODE=1) çağrılır ve buradan çalıştırılmış olur (REQ=1).
    • Adım 2’de “Modbus_Master” ın çalışmasına ilişkin geri bildirim (BUSY) yapılır.
    • Adım 3’te “Modbus_Master” bloğu başarı ile veri akışını sağlamışsa geri bildirim (DONE) yapılmış olur.
    • “Modbus_Master”ın çalıştırılması ile veri geçişi sıfırlanır (REQ=0).
  3. Adım 3’te Modbus slave parametresinin okunması için iletişim parametresi (MODE=0) “Modbus_Master”a aktarılır.
    • Adım 4’teki çalıştırılan ve aktarılan veri Adım 1’deki ile aynıdır.
    • “Modbus_Master”ın başarılı geri beslemesi (DONE) sonrasında, DATA_PTR dosyasından okunan veriler kaydedilmelidir (kopyalanmalıdır).

Modbus_Master’da yazılan verinin Modbus slave’de okumasına ilişkin kod Şekil 11’de gösterilmektedir.

Şekil11

Şekil 11 Modbus Slave Verilerin Okunması

Şekil 11’de Network 7’deki program parçacığında “”Tags”.modbusMaster.mbAddr” ifadesi MB_ADDR parametresi değiştirilerek başka bir slave değeri adreslenebilir.

3.3.1 Modbus RTU Master Program Örneği

İlk olarak “Modbus_Comm_Load” bloğu programa yazılır. “Modbus_Comm_Load”un bu şekilde yürütülmesi, yalnızca seri port yapılandırması çalışma zamanında değişmezse yapılmalıdır.

Network 1: İlk çevrim esnasında RS485 modül iletişim portunu sadece bir kez yapılandırın / başlatın.

NW1

Bir tane Modbus Slave haberleşmesi için program döngüsüne OB’de bir Modbus_Master bloğu konulmalıdır. Diğer Modbus Slave haberleşmesi için ek Modbus_Master blokları için de OB bloğunda tanımlanması gerekmektedir.

Network 2: Modbus adresi #2 olan data genişliği 100 word olan ve data adresi 400001’den başlayan kayıt verileri okuma işlemi gerçekleştirilir. Buradaki hafıza bölgeleri MW500-MW698 arasıdır.

NW2

 

Network 3: Burada kayıt verilerinin ilk 3 word tipi kayıt verisi olarak ataması yapılır. Bu durum DONE bitiyle aktif hale gelir. Bu networkte ayrıca ERROR yani hata biti ile durum biti olan STATUS biti de atanmış olur.

NW3

Network 4: MW600-MW607’den 64 bit veriyi MB_ADDR=2 olan 00017 ile 00018 çıkış bit konumlarına yazın.

NW4

Network 5: Yazma işlemi tamamlandığında DONE history biti setlenir. Eğer programda hata olursa, program ERROR history bitini setler ve STATUS kodunu kaydeder.

NW5

3.3.2 Modbus RTU Slave Program Örneği

Başlangıçta “Modbus_Comm_Load” bloğununun çalışması için  “Tag_1” biti aktif olmalıdır. “Modbus_Comm_Load”un bu şekilde yürütülmesi, yalnızca HMI yapılandırmasının bir sonucu olarak çalışma zamanında seri bağlantı noktası yapılandırması değiştiğinde yapılmalıdır.

Network 1: Bir HMI cihazı tarafından RS485 modül parametreleri her bir çevrim başlatıldığında değiştirilmelidir.

NW1_Slave

Network 2’de gösterilen MB_SLAVE BLOĞU, her 10 ms’de döngüsel olarak OB’de çalıştırılır. Bu çalışma Modbus slave tarafından mutlak olarak hızlı bir şekilde yanıt vermezken, kısa mesajlar için 9600 baud ayarlandığında iyi bir performans sağlar (20 byte veya daha az byte gönderilen durumlar için geçerlidir.).

Network 2: Her bir çevrimdeki Modbus master isteklerini kontrol et. Modbus’ta yazılan 100 word MW1000 adresinden başlanarak kontrol edilir.

NW2_Slave

4.  S7-1200 İLE SINAMICS V20 SÜRÜCÜ MODBUS HABERLEŞMESİ

4.1 GİRİŞ

S7 – 1200 plc serisi ile sinamics V20 sürücüleri arasında bulunan haberleşme bağlantıları Şekil 12’de gösterilmektedir.

Şekil12

Şekil 12 S7-1200 PLC Serisi ile SINAMICS V20 Sürücüsü Bağlantı Şeması

4.2 TIA PORTAL İLE PROJE OLUŞTURMA

Tia portal ile proje oluşturulurken örnek olarak PLC CPU1214C, haberleşme modulü CM1241 (RS485) ve HMI arayüz paneli KTP Basic color PN bulunmaktadır. Tia portal sayfasından bu modüller seçilir ve projeye eklenir (Şekil 13).

Şekil13

Şekil 13 TIA Portal PLC Seçim Ekranı

PLC seçimi yapıldıktan sonra Tia Portal yan sutununda bulunan katalog sekmesininde haberleşme modülü olarak CM1241 seçilir (Şekil 14).

Şekil14

Şekil 14 TIA Portal Haberleşme Modülü Seçim Ekranı

HMI dokunmak ekran seçimi Şekil 15’te gösterilmektedir. Örnek uygulamada KTP 600 tercih edilmiştir. Kullanıcı bunu projesine göre değiştirebilir.

Şekil15

Şekil 15 TIA Portal HMI Seçim Ekranı

HMI panel seçimi yapıldıktan sonra Şekil 16’da gösterilen ekran arayüzü karşımıza çıkmaktadır. Buradan “Browse” sekmesi seçilir ve tercih ettiğimiz PLC karşımıza çıkar. Buradan PLC seçimi yapılır ve HMI ile PLC arasında bağlantı kurulmuş olur.

Şekil16

Şekil 16 HMI ile PLC Bağlantı Arayüzü

TIA portalda program yazılması için OB1 açılır.  Burada iki tane modbus bloğunu çağrılmalıdır. Bunlar “MB_COMM_LOAD” ve  “MB_MASTER” blokları. “MB_COMM_LOAD” bloğu sadece ilk çevrimde çalışmalı daha sonra çalışmamalıdır. “MB_MASTER” ise her haberleşme talebinde çalışmalıdır. Birden fazla kullanılabilir fakat biri işlem tamam “DONE” çıkışı aktif olmadan diğeri çalıştırılmamalıdır. Örnek program buna dikkate edilerek yazıldı.

4.2.1 MB_COMM_LOAD Bloğu Yapılandırılması

“MB_COMM_LOAD” bloğunda tüm girişler tanımlanmalıdır (Şekil 17).

Şekil17

Şekil 17 Sinamics V20 Sürücüsü İçin MB_COMM_LOAD_DB Bloğu Ayarları

“MB_COMM_LOAD_DB” bloğuna ilişkin ayar parametreleri Tablo 5’te gösterilmektedir.

Tablo 5 “MB_COMM_LOAD_DB” Bloğu Parametre Tanımları

Parametre                                                          Tanım
REQ Bloğu çalıştırması için bool değişkeninde bir değişken tanımlanmalıdır. Yükselen kenar ile birlikte blok çalışmaktadır.
PORT Haberleşme modülünün donanımsal tanımlama numarasıdır.
BAUD Haberleşme hızıdır. Sinamics V20’nin ilgili parametresi ile aynı olmalıdır. Bu projede 9600 olarak seçilmiştir.
PARITY Haberleşme parametresidir. 2 olmalıdır.
MB_DM “MB_MASTER” bloğu oluşturulurken tanımlanan Data Bloğu adresi yazılmalıdır.

“MB_COMM_LOAD_DB” bloğunda PORT ayarı Şekil 18’de gösterildiği gibi “Hardware Identifier” kısmında yazan değer girilmelidir.

Şekil18

Şekil 18 Haberleşme Modülünün Donanımsal Tanımlama Numarası

4.2.2 MB_MASTER Bloğu Yapılandırılması

Veri alış verişinde MB_MASTER bloğu kullanılmalıdır. Bu blok programda birden fazla kullanılabilir (Şekil 19).

Şekil19

Şekil 19 Sinamics V20 Sürücüsü İçin MB_MASTER Bloğu Ayarları

“MB_MASTER” bloğuna ilişkin ayar parametreleri Tablo 6’da gösterilmektedir.

Tablo 6 “MB_MASTER” Bloğu Parametre Tanımları

Parametre                                                          Tanım
REQ Bloğu çalıştıran giriştir. Bool tipi bir değişken olmalıdır Yükselen kenarda blok çalışır. Blok başarıyla çalştığında  “DONE” çıkışı aktif olur. Program akışında bu giriş, bloğun “DONE” ile birlikte kesilmelidir.
MB_ADDR Haberleşmenin yapılacağı cihazın modbus adresidir. Sürücünün ilgili parametresi ile aynı olmalıdır Bu programda 1’dir.
MODE Okuma ve yazma ile ilgili bir giriştir. Yazarken 1, okurken 0 olmalıdır.
DATA_ADDR Sürücüden okunacak verinin register adresidir. Sürücü kullanma klavuzunda bulabilirsiniz (Şekil 22).
DATA_LEN Okuma yazma yapılacak olan data bloğunda veri uzunluğudur.
DATA_PTR Okuma yazma yapılacak olan data bloğun veri başlangıç adresidir.

 

 

Şekil20

Şekil 20 Sinamics V20 Sürücü Kullanma Klavuzu Parametre Değerleri

  • HSW (Haupsollwert): Hız set değeri
  • HIW (Hauptistwert): Aktüel Hız
  • STW (Steuerwort): Kontrol
  • ZSW (Zustandswort): Durum

Not: Aktuel hız ve set değer girmek için girilen frekans veya hız değerini 0 – 16385 değeri arasına  standardize etmek gerekmektedir. Programda bu hesap yapılmıştır.

Sinamics V20 sürücüsünü çalıştırmak için kontrol adresine STW (4100) 16#47F yazmak gerekmektedir. Durdurmak için ise 16#47E yazmak yeterlidir.

4.2.3 SINAMICS V20 Sürücü Ayarları

  • tuşuna 2 sn’den kısa basılıp çekilir.
  • P003 -> 1
  • P010 -> 30
  • P970 -> 1
  • Fabrika ayarlarına dönülmüş olur. Ekranda sop  görünür. ok tuşuna basın

          P304 başlayarak motor parametrelerini giriniz.

  • Mtuşuna 2sn’den az basarak makaro parametrelerine geçin. Ekrandacn000  gözükür.
  • Burada yukarı ok tuşarını kullanarak Cn011’i seçin daha sonra ok tuşuna basınız. 2 sn’den fazla M tuşuna basarak normal ekrana dönüş yapınız.
  • 2 sn’den kısa M tuşuna basarak parametreler menüsünü giriş yapınız. Aşağıdaki parametreleri ayarlayın.
  • P003 -> 3
  • P2010 -> 6
  • P2014 -> 130
  • P2021 -> 1
  • P2023 -> 2
  • P0971 -> 21
  • P003 -> 1
  • M tuşuna 2 sn’den fazla basılı tutarak normal çalışma ekranına geçiniz.
  • Cihazı açıp kapatarak haberleşme parametrelerini etkin hale getiriniz.

Not: Zaman zaman F072 hatası gelebilir. Bu hatayı ok tuşuna basarak geçiniz.

Şekil21

Şekil 21 SINAMICS V20 Ayar Diyagramı

4.2.4 TIA Portal İle Örnek Uygulama Yazılımı

Program yazılımı planlandığında öncelikle haberleşme blokları için oluşturulacak değişkenler tanımlanır. Bu değişkenleri data_block_1 şeklinde data blok içinde oluşturabiliriz.

Şekil211

Network 1: “MB_COMM_LOAD” fonksiyon bloğu için uygun parametreler girilir. Program ilk başta ve sadece bir defa çalışacağı için ‘ADIM=0’ olarak ayarlanır ve “MB_COMM_LOAD” bloğu çalışmış olur.

Şekil212

Network 1’de “MB_COMM_LOAD” bloğu başarılı bir şekilde çalıştıktan sonra bloğun ‘DONE’ çıkışı lojik 1 olur ve program ‘ADIM=1’ olacak şekilde ‘ADIM’ değişkeninin değeri değiştirilir.

Network 2: “MB_MASTER” bloğu için uygun değişken değerleri bloğa uygun olacak şekilde yazılır. Parametre tanım ifadeleri için Tablo 4’e bakılabilir.

Şekil213

Network 2’de “MB_MASTER” bloğu başarılı bir şekilde çalıştıktan sonra bloğun ‘DONE’ çıkışı lojik 1 olur ve program ‘ADIM=2’ olacak şekilde ‘ADIM’ değişkeninin değeri değiştirilir.

Network 3: “MB_MASTER” bloğu için uygun değişken değerleri bloğa uygun olacak şekilde yazılır. Parametre tanım ifadeleri için Tablo 4’e bakılabilir.

Şekil214

Sinamics V20 sürücüsünde maksimum 50 Hz’lik bir frekans değeri ayarlanmaktadır. Network 3’te ayarlanan Set_Point değeri Hz olarak belirlenir. Burada sayısal işlemler ile değer ‘integer’ ifadesine dönüştürülür. Örneğin; 20 Hz’lik bir değer ile asenkron motor sürülecek olsun. Sayısal ifade; 20.0/50.0 * 16384.0 = 6554.0 reel değeri integer değerine dönüştürülüp programda koşturulur. Program başarılı bir şekilde çalıştıktan sonra bloğun ‘DONE’ çıkışı lojik 1 olur ve program ‘ADIM=3’ olacak şekilde ‘ADIM’ değişkeninin değeri değiştirilir.

Network 4: “MB_MASTER” bloğu için uygun değişken değerleri bloğa uygun olacak şekilde yazılır. Parametre tanım ifadeleri için Tablo 4’e bakılabilir.

Şekil215

Network 4’te ayarlanan hız değeri integer olarak belirlenir. Integer ifadesinden sonra sürücüde anlamlı bir değer olarak gözükebilmesi için integer ifadesi standardize edilir. Örneğin; 7000.0 integer değerili bir asenkron motor sürülecek olsun. Sayısal ifade;        7000.0 / 16384.0 * 50.0 = 21.36 integer değeri ile Sinamics V20 sürücüsünde program koşturulmuş olur. Program başarılı bir şekilde çalıştıktan sonra bloğun ‘DONE’ çıkışı lojik 1 olur ve program ‘ADIM=1’ olacak şekilde ‘ADIM’ değişkeninin değeri değiştirilir.

Network 5: Sinamics V20 sürücüsünü çalıştırmak için kontrol adresine STW 16#47F yazmak gerekmektedir.

Şekil216

Network 6: Sinamics V20 sürücüsünü durdurmak için kontrol adresine STW 16#47E yazmak gerekmektedir.

Şekil217

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: