You are on page 1of 8

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/281969085

Endüstriyel Sistemler için FPGA Tabanlı


Modbus Ağ Geçidi Tasarımı ve Uygulaması -
Design and Application of a...

Conference Paper · September 2015

CITATIONS READS

0 167

3 authors:

Sirin Akkaya Onur Akbatı


Istanbul Technical University Yildiz Technical University
4 PUBLICATIONS 1 CITATION 6 PUBLICATIONS 1 CITATION

SEE PROFILE SEE PROFILE

Ali Fuat Ergenc


Istanbul Technical University
42 PUBLICATIONS 192 CITATIONS

SEE PROFILE

All content following this page was uploaded by Sirin Akkaya on 21 September 2015.

The user has requested enhancement of the downloaded file. All in-text references underlined in blue are added to the original document
and are linked to publications on ResearchGate, letting you access and read them immediately.
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli

Endüstriyel Sistemler için FPGA Tabanlı Modbus Ağ Geçidi


Tasarımı ve Uygulaması
Design and Application of a FPGA-based Modbus Gateway for
Industrial Systems

Şirin Akkaya1, Onur Akbatı2, Ali Fuat Ergenç3


1,3
Kontrol ve Otomasyon Mühendisliği Bölümü
İstanbul Teknik Üniversitesi, İstanbul
sakkaya@itu.edu.tr ali.ergenc@itu.edu.tr

2
Kontrol ve Otomasyon Mühendisliği Bölümü
Yıldız Teknik Üniversitesi, İstanbul
oakbati@yildiz.edu.tr

The designed gateway is applied on an industrial system and


Özetçe the results are given.
Endüstriyel haberleşme protokolleri, endüstriyel cihazlar ve
sistemler arasındaki veri alışverişini sağlayan standart diller 1. Giriş
olarak tanımlanmışlardır. Günümüzde sıkça kullanılan
endüstriyel haberleşme protokolleri FieldBus, ProfiBus, Günümüzde en çok kullanılan endüstriyel haberleşme
Modbus, CanBus, DeviceNet ve ControlNet olarak protokollerinden biri olan Modbus, 1970’li yıllarda
sıralanabilir. Ülkemizde pazar payı en yüksek olan endüstriyel geliştirilmiş ve zamanla yeni sürümleri oluşturulmuştur.
protokol Modbus’dır. Modbus protokolü seri hat üzerinden Kolay, hızlı ve açık kaynaklı bir protokol olması çok yaygın
(Modbus RTU ve Modbus ASCII) ve Ethernet üzerinden olarak kullanılmasının en büyük etkenlerindendir. Modbus, ilk
(Modbus TCP) haberleşmeyi sağlayan alt protokollere kez bir seri haberleşme protokolü olarak tasarlanmıştır.
ayrılmıştır. Endüstriyel protokollerin çeşitliliğine rağmen iki Modbus seri haberleşme protokolü, Modbus RTU ve Modbus
cihaz arasında veri alışverişi olabilmesi için cihazların aynı ASCII olmak üzere iki temel alt protokole ayrılmıştır [1][2].
endüstriyel protokol ile haberleşmeleri ya da protokol Ethernet teknolojisinin gelişmesi ve yaygınlaşması ile beraber
dönüştürme işlemini gerçekleştirecek bir ağ geçidi (gateway) Modbus protokolünü Ethernet ağına uygun hale getirme
cihaz kullanmaları gerekmektedir. ihtiyacı duyulmuş ve Modbus TCP protokolü geliştirilmiştir
[3]. Bu durum Modbus RTU protokolü kullanan seri hat
Bu çalışmada Modbus RTU/TCP ve Modbus TCP
üzerindeki cihazların, Modbus TCP protokolünü kullanan
protokolleri arasında protokol dönüştürme işlemini
Ethernet ağı üzerindeki cihazlarla haberleşebilmesi için bir
gerçekleştirmek için FPGA teknolojisi kullanılarak yine
takım ara cihazların kullanılmasını zorunlu kılmıştır. Bu ara
Modbus/TCP ile yapılandırılabilen bir ağ geçidi tasarlanmış
cihazlar genel olarak ağ geçidi (gateway) olarak isimlendirilir.
ve tasarlanan ağ geçidi, endüstriyel bir sistem üzerinde test
Ağ geçidi, farklı endüstriyel haberleşme protokoller kullanan
edilmiş ve sonuçlara yer verilmiştir.
ağlar arasında protokol dönüştürme işlemini gerçekleştiren ara
Abstract birimlerdir.
Literatür incelendiğini zaman protokol dönüşüm işlemi
Industrial communication protocols are standard languages için farklı mikro denetleyiciler üzerinde farklı tasarımlar
that allow data exchange among industrial devices and gerçekleştirildiği gözlemlenmiştir. Modbus ve FlexRay
systems. Nowadays, the most used industrial protocols can be protokolleri arasında haberleşmeyi kontrol etmek için 16-bit
listed as Fieldbus, Profibus, Modbus, Canbus, Devicenet and RISC mimarisine sahip XGATE mikro denetleyici
Controlnet. Electronic devices widely use Modbus protocols kullanılarak modüller arasında ağ akışı kontrol sinyallerini
in Turkey. Modbus protocol is separated into two sub protocol sağlayan uygulamaya özgü bir kontrolcü tasarlanmıştır [4].
as serial transmission mode (Modbus RTU and Modbus Başka bir çalışmada Modbus TCP ve EPA (Ethernet for Plant
ASCII) and Ethernet mode (Modbus TCP). There are lots of Automation) endüstriyel Ethernet protokolleri arasında veri
industrial protocols however, data transmission between two alış verişini kontrol etmek için ARM7 tabanlı LPC2290 mikro
devices can be established either using the same industrial denetleyicisini ve Micro C/OS gerçek zamanlı operasyon
communication protocol or using an industrial protocol sistemi kullanarak bir ağ geçidi tasarlanmıştır. Ağ geçidi EPA
converter called as gateway. ve Modbus protokolleri arasında çift yönlü veri akışı
In this study, a gateway that can translate Modbus sağlamaktadır. EPA protokolünü mikro seviyede işleyebilmek
RTU/TCP to Modbus TCP is designed by using FPGA için EPA haberleşme elemanları kullanılmıştır [5]. Farklı
technology. It is again configurable by Modbus TCP protocol. RS485 ağlarını birbirine bağlayarak veriyi, ağ yapısını ve

445
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli

konfigürasyonunu değiştirmeden Ethernet üzerinden iletmek uygulama veri biriminde bir hata yoksa bağımlı cihaz istenilen
için ARM Cortex M3 tabanlı ve içerisinde bütünleşmiş işlemi gerçekleştir ve ana cihazın talebine karşılık bir cevap
Ethernet kontrolcüsü bulunan LM3S8962 mikro denetleyicisi gönderir. Fakat bir hata oluşursa bağımlı cihaz ana cihaza
kullanılarak bir ağ geçidi tasarımı yapılmıştır [6]. PIC32 ilgili hata ile ilgili bir hata mesajı göndererek sistemin
mikro denetleyicisi ve gömülü sistemler için oluşturulmuş çalışmasının devam etmesini sağlar.
free-modbus kütüphanesi kullanılarak tasarlanan ağ geçidi
farklı Modbus ağları arasında veri alışverişini gerçekleştirmeyi
2.1. Modbus RTU
amaçlamıştır [7]. Endüstriyel sistemlerde sıkça kullanılan
ProfiBus, DevicNet, EtherNet/IP ve Modbus RTU Modbus RTU protokolü bir çeşit ana birim/bağımlı birim
protokollerini destekleyen, STM32F007ZGT6 mikro (master/slave) arasında veri haberleşmesi yapan bir
denetleyicisi ve çeşitli arabirimler kullanılarak ağ geçidi protokoldür, yani ağ üzerinde bir ana cihaz (master node) ve
tasarımı yapılmıştır. Modbus RTU sisteme UART arabirimi ile bu cihaza bağlı çalışan bağımlı cihazlar (slave nodes) bulunur.
bağlanırken, diğer protokoller için COMX arabirimi Bağımlı cihazlar ana cihazdan bir talep gelmediği sürece
kullanılmıştır [8]. Başka bir çalışmada S7-400 PLC’ler mesaj iletmezler ve birbirleri ile haberleşmezler. Ana cihaz,
kullanılarak kurulan bir endüstriyel sistem için ProfiBus-DP belirlediği bağımlı cihaza talep gönderir ve bağımlı cihazda bu
ve Modbus RTU protokolleri arasında veri alışverişi için bir talebe karşılık olarak bir cevap gönderir. Ağ üzerinde aynı
ağ geçidi tasarımı yapılmıştır. Ağ geçidi tasarımı için 32 bit anda ana cihaz ile sadece bir bağımlı cihaz haberleşir. Modbus
ARM tabanlı STM32F103V mikro denetleyicisi ve çevresel kulanılarak seri haberleşme yapılırken, OSI modelinin yedinci
modüller kullanılmıştır [9]. katmanında Modbus Uygulama Protokolü çalışır. OSI
Bu çalışmada literatürdeki mikro işlemci tabanlı ağ geçidi modelinin altıncı (Sunum), beşinci (Oturum), dördüncü
tasarımlarından farklı olarak, Modbus RTU ve Modbus TCP (Taşıma) ve üçüncü (Ağ) katmanları boştur. İkinci katmanda
protokolleri arasında protokol dönüştürme işlemini (Veri bağlantı katmanı) Modbus Seri Haberleşme Protokolü
gerçekleştirebilmek için yeni bir teknoloji olan FPGA çalışır. OSI modelinin birinci katmanda (Fiziksel katman), ise
kullanılmıştır. FPGA’in donanım tasarlama özellikleri veri iletimi için genellikle EIA/TIA-485 (RS 485) ya da
kullanılarak çeşitli donanımsal yapılar oluşturulmuş ve aynı EIA/TIA-232 (RS 232) fiziksel ara birimi kullanılır. En çok
zamanda içerisinde gömülü bir işlemci ve gerekli çevresel tercih edilen EIA/TIA-485 standardı İki Kablolu Birim'dir
birimleri oluşturulmuştur. Tasarlanan ağ geçidi hem RTU hem (Two-Wire Interface). Şekil 2’de Modbus RTU protokolünün
de TCP düğümlerini sorgulayabilmekte, böylece ağ geçidini OSI modeline göre katmanları gösterilmiştir.
kullanan ana cihazın bağlantı yükü azalmaktadır (sadece tek Katman ISO/OSI Modeli
cihazla iletişim kurmaktadır). Ek olarak ağ geçidi ayrı bir 7 Uygulama Katmanı(application layer) Modbus Uygulama Protokolü
Modbus düğümü olarak davranmaktadır ve ağ geçidi ile ilgili Modbus Uygulama Katmanı
Client / Server
6 Sunum Katmanı (presentation layer) Boş
tüm ayarlamalar bu düğümün kaydedicilerinde kalıcı olarak
5 Oturum Katmanı (session layer) Boş
saklanmaktadır. Ana cihaz sistem başlangıcında ağ geçidini
4 Taşıma Katmanı (transport layer) Boş
mevcut sisteme göre yapılandırabilir. Bu yapılandırma ağ
geçidinin bağlanacağı TCP düğümlerinin IP adreslerini, RTU 3 Ağ Katmanı (network layer) Boş

düğümlerinin ise adres birimini ve bağlantı hızı bilgilerini 2 Veri Bağlantı Katmanı (data link layer) Modbus Seri Hat Protokolü Modbus Master/Slave

içerir. 1 Fiziksel Katman (physical layer) EIA/TIA-485 (EIA/TIA-232 ) EIA/TIA-485

2. Modbus Protokol Yapısı Şekil 2: OSI modeline göre Modbus RTU

Günümüzde en çok kullanılan Modbus protokolleri seri hat Modbus RTU protokol yapısı Şekil 3’te gösterilmiştir;
üzerinden gerçeklenen Modbus RTU ve Ethernet üzerinden Modbus Seri Hat Protokol Veri Birimi
gerçeklenen Modbus TCP protokolleridir. Her iki protokolün
Adres Birimi Fonksiyon Kodu Veri Hata Kontrol (CRC)
ortak noktası alt katmanlardan bağımsız olarak uygulama (1 byte) (1 byte) (0 - 252 byte) (2 byte)

katmanında çalışan protokol veri birimidir (Protokol Data


PDU
Unit, PDU). Protokol, kullandığı alt protokollere göre
uygulama veri birimi (Application Data Unit, ADU) içersinde Şekil 3: Modbus RTU protokol veri yapısı
bir takım ek alanlar oluşturabilir. Bu ek alanlar Modbus RTU
ve TCP protokollerinde farklılık gösterir. Şekil 1’de en genel Adres birimine ana cihaz için talep göndermek istediği bağımlı
şekli ile Modbus veri yapısı gösterilmiştir. cihazın adresi yazılır. Bağımlı cihazların geçerli adres aralığı
1-247'dir. Bağımlı cihaz talebe cevap verirken adres bölümüne
kendi adresini yazar ve böylece ana cihaz hangi bağımlı
cihazın cevap gönderdiğini anlar. Hata kontrol birimi ile
gönderilen mesajın doğruluğunu kontrol edilir. Modbus RTU
protokolü hata denetimi için Döngüsel artıklık denetimi
(CRC) algoritmasını kullanır.
Şekil 1: Modbus veri yapısı
2.2. Modbus TCP
Modbus protokol veri birimi içerinde yer alan fonksiyon kod
alanı 1 byte veri içerir ve bağımlı cihazların ne tür işlem Modbus TCP protokolü temelde ethernet üzerinden TCP
yapacaklarını ya da yaptıklarını tanımlar. Veri alanı içerisinde arabirimi ile Modbus RTU protokolünün gerçekleştirilmesidir.
ise ana cihazın ya da bağımlı cihazın talep ya da cevap Modbus mesajı, Ethernet TCP/IP ağı üzerine bağlı cihazlar
parametreleri yer alır. Ana cihaz tarafından talep edilen arasında istemci/sunucu (client/server) haberleşmesi sağlar.

446
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli

TCP, Transmission Control Protokol (İletim Kontrol Modbus Seri Hat Uygulama Veri Birimi

Protokolü) ve IP, Internet Protokol (Internet Protokolü)


terimlerinin kısaltılmasıdır. TCP’nin temel görevi bütün veri Adres
Fonksiyon
Kodu
Veri CRC

paketlerinin doğru bir şekilde alınmasını sağlamaktır. IP ise,


mesajın doğru bir şekilde adreslenmesini ve yönlendirilmesini Fonksiyon
Veri
Kodu
sağlar. TCP/IP protokolü sadece bir taşıma protokolüdür ve
verinin ne anlama geldiğini ya da nasıl yorumlanacağı Modbus Uygulama Protokol Başlığı (MBAP Header) Protokol Veri Birimi (PDU)
hakkında bilgi vermez. Özetle Modbus TCP, uyumlu cihazlar (7 byte)

Işlem Protokol Birim Fonksiyon


arasında Modbus mesaj verisini taşımak için TCP/IP ve Tanımlayıcı Tanımlayıcı
Uzunluk
Tanımlayıcı Kodu
Veri

Ethernet kullanır. Yani Modbus TCP protokolü, fiziksel bir (2 byte) (2 byte) (2 byte) (1 byte) (1 byte)

ağı (Ethernet), ağ standartı (TCP/IP) ve Modbus protokol veri


birimini birleştirir. Modbus TCP/IP Uygulama Veri Birimi

OSI referans modeli dikkate alındığında Modbus TCP


Şekil 6: Modbus TCP protokol uygulama veri birimi.
protokolünde fiziksel katman ve veri bağlantı katmanı içiçe
çalışır ve bu iki katman ağ ulaşım katmanı olarak tanımlanır. Modbus TCP uygulama veri birimini oluşturak için protokol
Ağ ulaşım katmanı dört katmanlı TCP/IP modelinin en alt veri birimine eklenen MBAP başlık birimi içersinde, işlem
katmanıdır ve verinin ağa fiziksel olarak nasıl gönderildiği tanımlayıcı (transaction identifier), protokol tanımlayıcı
tanımlar. Veriyi iletebilmek için Ethernet fiziksel katmanını (protokol identifier), uzunluk (length) ve birim tanımlayıcı
kullanır. Veri bitleri ağa bağlı olan donanım cihazları (unit identifier) alt bölümleri bulunur. İşlem tanımlayıcı,
tarafından elektriksel ya da optik sinyallere dönüştürülerek istemci tarafından aynı TCP bağlantısı üzerinden bir önceki
gönderilir. Bu katman veriyi Ethernet ağına genellikle RJ- 45 cevap beklenmeden birden fazla mesaj gönderildiği durumda
bağlantı soketi ve CAT5 ya da CAT6 Ethernet kablosu işlem eşleştirmek için kullanılır. Protokol tanımlayıcı Modbus
aracılığı ile iletir. Şekil 4’de Modbus TCP protokolünün OSI TCP protokolü için 0 değerini alır. Uzunluk birimi, mesajın
modeline göre katmanları gösterilmiştir. devamındaki (birim tanımlayıcıda dâhil) veri uzunluğunu
Katman ISO/OSI Modeli
ifade eder. Birim tanımlayıcı, Modbus TCP ağı üzerindeki bir
7 Uygulama Katmanı(application layer)
cihazla, Modbus seri hat üzerindeki bir bağımlı cihazı ağ
geçidi kullanarak haberleştirmek için kullanılır.
6 Sunum Katmanı (presentation layer) Modbus Uygulama Protokolü

5 Oturum Katmanı (session layer)


3. Sistem Bileşenleri
4 Taşıma Katmanı (transport layer) TCP

3 Ağ Katmanı (network layer) IP, ARP Tasarlanan ağ geçidi cihazının donanımı ve uygulama
2 Veri Bağlantı Katmanı (data link layer) Ethernet, MAC
platformunda kullanılan modüller hakkında genel bilgilere bu
bölümde yer verilmiştir. Sistemin temel elemanları, FPGA,
1 Fiziksel Katman (physical layer) Ethernet Fiziksel Katmanı
WizNet TCP bağlantı modülü, PLC, Modbus RTU ve TCP
giriş/çıkış modülleri, Ağ anahtarı ve RS-485 dönüştürücü
Şekil 4: OSI modeline göre Modbus TCP devresidir.
Modbus TCP genel protokol yapısı Şekil 5’te gösterilmiştir;
3.1. FPGA
Ethernet Başlığı IP Başlığı TCP Başlığı
Gömülü Mesaj FCS
(14 byte) (20 byte) (20 byte) FPGA, Türkçe “Sahada Programlanabilir Kapı Dizileri”
anlamına gelen “Field Programmable Gate Array” ifadesinin
Şekil 5: Modbus TCP protokol veri yapısı kısaltmasıdır. FPGA, programlanabilir mantık blokları ve
bloklar arasındaki ara bağlantılardan oluşan, geniş uygulama
TCP, bağlantı yönelimli bir protokol olduğu için Modbus alanlarına sahip bir çeşit sayısal tümleşik devredir. Bu
mesajı gönderilmeden önce TCP bağlantısının kurulması çalışmada FPGA üzerinde, Modbus TCP ve Modbus RTU
gerekir. Modbus TCP/IP bağlantıları iki cihaz arasında haberleşme ağları arasında veri dönüşümü ve alış verişini
yapılan haberleşme bağlantıları olduğundan her yön için gerçekleştirecek amacıyla ağ geçidi cihazı tasarlanmıştır.
kaynak adresine, hedef adresine ve bağlantı kimliğine ihtiyaç Tasarım Altera firmasının üretmiş olduğu DE0-Nano
duyar. Bu nedenle Modbus TCP/IP haberleşmesi sadece yayın Geliştime ve Eğitim Kartı üzerinde gerçekleştirilmiştir. Şekil
modunda yapılır. Modbus uygulamarı için özel olarak 502 7’de FPGA kartına yer verilmiştir.
numaralı port ayrılmıştır. Modbus sunucusu haberleşme için
bu portu dinler. İstemci sunucuya bir talep göndermek istediği
zaman, sunucu cihazın 502 numaralı portu ile bağlantı kurar.
Modbus TCP protokolünün uygulama veri birimi bölümünde
RTU’da olduğu gibi adres birimi ve hata kontrol birimi yer
almaz. Buna karşılık olarak TCP protokolünün uygulama veri
birimi Şekil 6’da gösterildiği gibi yapılandırılır.

Şekil 7: DE0-Nano Geliştime ve Eğitim Kartı [10]

447
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli

Program geliştirme aracı olarak Altera firmasının Quartus II Bu çalışmasında Phoenix Contact firmasının ILC150ETH
programlama platformu tercih edilmiştir. İçerisinde, sistem PLC’si kullanılmıştır. ILC150ETH, TCP/IP uyumlu cihazlar
geliştirme, fonksiyonel ve zamanlama simülasyanu, güç ile haberleşebilen ve Modbus TCP protokolünü destekleyen
analizi, zamanlama analizi ve doğrulama gibi birçok alt bir cihazdır. PLC içersine PC-Works programı kullanılarak
araçları bulunur. Ayrıca, blok/şematik tasarım ve VHDL veya yazılan uygulama programı ile FPGA tabanlı Modbus ağ
Verilog yazılım dillerini kullanarak RTL (Register Transfer geçidi ile ağ üzerindeki diğer cihazlarla haberleşme işlemi
Level) tasarım yapmayı da destekler. gerçekleştirilmiştir.
Ağ geçidi tasarımınıda FPGA'in hem donanım tasarlama Modbus RTU ve TCP giriş/çıkış birimleri olarak
özelliğinden hem de içersine işlemci gömülebilme Advantech firmasının ADAM Modbus RTU ve TCP giriş çıkış
özelliğinden faydalanılmıştır. Donanımsal tasarımlar için modülleri ve Phoenix firmasının IL ETH BK DI8 DO4
VHDL dili kullanılmıştır. Donanımsal tasarım olarak FPGA'in Modbus TCP giriş/çıkış modüllerinden kullanılmıştır.
Wiznet modülü ile haberleşmesini sağlamak için 32 bitlik bir
SPI modülü ve DE0 Nano üzerinde bulunan EEPROM ile 3.4. RS 485 Dönüştürücü Devresi
haberleşebilmesi için I2C modülü tasarlanmıştır. Sistemin
içersine işlemci ekleme işlemi Qsys Sistem Entegrasyon Aracı Modbus RTU ile veri haberleşmesi yapılırken fiziksel
kullanılarak gerçekleştirmiştir. İşlemci içersine gömülen katmanda verinin RTU hattına gönderilirken gerilim seviyesini
program için C dili kullanılmış ve Quartus II platformu ayarlamak için FPGA ile Modbus RTU modulleri arasında ek
içersinde bulunan Eclipse için Nios II Yazılım Geliştirme bir devreye ihtiyaç duyulur. Bu ek devrenin kurulması için
aracından (Nios II Software Build Tool for Eclipse) MAX 485 entegresi kullanılmıştır. MAX485, RS 485 ve RS
yararlanılmıştır. 422 haberleşmesi için kullanılan düşük güçlü bir dönüştürücü
entegredir. RS 485 dönüştürücü devresinin elektronik şeması
Şekil 9’da gösterilmiştir.
3.2. WizNet TCP Bağlantı Modülü
WizNet modülü, gömülü sistemlere internet bağlantısı
sağlayan bir çeşit donanımsal TCP/IP Ethernet
kontrolcüsüdür. Tek bir çip içerisinde TCP/IP yığını, MAC
Ethernet ve fiziksel katmanı barındırır ve kullanıcılara
sistemlerine internet bağlantısı kullanmasını sağlar. Şekil 8’de
WizNet modülünün genel şekli gösterilmiştir.

Şekil 9: MAX 485 ve FPGA bağlantısı

4. Yazılım ve Uygulama
Ağ geçidinin en önemli bileşeni FPGA’dir. FPGA’in yazılımı
iki kısım altında incelenebilir. Bunlardan ilki Qsys sistem
entegrasyon yazılımı ile oluşturulmuş olan çevresel
donanımların yazılımıdır. Sıradan mikro denetleyici
Şekil 8: WizNet TCP Bağlantı Modülü [11] sistemlerinde üreticinin sunduğu çevresel donanımların
sayıları ve olanakları kısıtlıdır, genellikle değiştirilemez
WizNet modülü gömülü sistemlerle haberleşmek için SPI (zamanlayıcı sayısı ve bit miktarı, seri haberleşme portu sayısı
(Serial Peripheral Interface) bağlantısı kullanır. SPI full- vb.). Qsys yazılımı ile bu donanımlar FPGA modelinin eleman
dublex modda çalışan senkron bir veri bağlantısı standartıdır. sayısı ile kısıtlı olmak koşulu ile istenilen şekilde ve sayıda
Qsys kullanılarak tasarlanan operasyon sistemi ile bu birimi ayarlanabilir. Yapılan bu ayarlamalar daha sonra Qsys
haberleştirebilmek için FPGA içersinde VHDL donanım tarafından VHDL veya Verilog koduna çevrilmektedir. Şekil
programlama dili kullanılarak SPI modülü tasarlanmıştır. 10’da Qsys üzerinde oluşturulan sistem yapısı görülmektedir.
Yazılımın ikinci kısmını ise yine Qsys sistem entegrasyon
3.3. PLC ve Modbus Giriş Çıkış Modülleri ve Ağ Anahtarı yazılımında seçilen işlemcinin programı oluşturmaktadır.
PLC, dış algılayıcılardan aldığı bilgiyi, kendisine yüklenen İşlemciye ait yazılımın oluşturulmasında Eclipse yazılımından
programa göre işleyen ve iş elemanlarına aktaran mikroişlemci faydalanılır. Bu yazılımda program C dilinde hazırlanır ve
tabanlı bir cihazdır. Daha geniş bir tanımla PLC, mantık, derlenerek FPGA’ye gönderilir. Bu gönderim işleminin
sıralama, sayma, veri işleme, karşılaştırma ve aritmetik gerçekleşebilmesi için önce Qsys yazılımı ile oluşturulan
işlemler gibi fonksiyonları programlama desteği ile girişleri VHDL programının derlenerek FPGA’ye yüklenmiş olması
değerlendirip çıkışlara atayan, hafıza, giriş/çıkış, CPU ve gerekmektedir. FPGA içerisinde programlanabilen bir flash
programlayıcı bölümlerinden oluşan, otomasyon devrelerinde bellek bulunmamaktadır. Bu nedenle DE0-Nano seti üzerinde
yardımcı röleler, zaman röleleri, sayıcılar gibi kumanda bulunan bir belleğe iki programda yerleştirilir, böylece sistem
elemanlarının yerine kullanılan mikroişlemci tabanlı her enerjilendiğinde FPGA’ye otomatik olarak yazılımlar
endüstriyel bir cihazdır. aktarılır.

448
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli

Şekil 10: Qsys tasarım aracında oluşturulan sistem yapısı

Yazılımın ilk aşamasında oluşturulan sistem yapısı VHDL Ana cihaz protokol üzerinde birim tanımlayıcıyı
koduna dönüştürüldükten sonra üzerinde ekleme ve değişiklik değiştirerek istediği cihazı seçer. Ağ geçidi yapılandırmasına
yapmak mümkündür. Çoğu zaman oluşturulmak istenen bağlı olarak gelen talebi ilgili cihaza yönlendirir. Eğer talep
çevresel donanımlar Qsys kütüphanesinde sunulan yapılar ile Modbus TCP bir bağımlı cihaz için geliyorsa sadece ünite
oluşturulamamaktadır. Örneğin Wiznet TCP/IP modülünün tanımlayıcı sıfır ile değiştirilerek gönderilir ve bağımlı
ihtiyaç duyduğu 32-bitlik SPI haberleşme donanımına ait cihazdan gelen cevapta birim tanımlayıcı eski haline
VHDL yazılımı bu şekilde oluşturulmuştur. Bunun haricinde getirilerek ana cihaza gönderilir. Eğer talep Modbus RTU bir
Modbus RTU modülleri ile haberleşmek için ihtiyaç duyulan bağımlı cihaz için geliyorsa veriye CRC ve birim tanımlayıcı
256 bayt tampona sahip RS 485 haberleşme donanımının eklenerek seri ara yüze gönderilir ve gelen cevaba ait CRC
yazılımı dış kaynaklardan elde edilen ve halen geliştirme kontrol edilerek veri alınır, tekrar birim tanımlayıcı
aşamasında olan ek kütüphane bileşenleri ile oluşturulmuştur. düzenlenerek ana cihaza gönderilir.
Ağ geçidi sistemi çalıştırıldığında ilk olarak EEPROM dış Seri haberleşme için kullanılan donanımsal tampon
donanımından yapılandırma bilgilerini okur. Bu veriler aynı sayesinde gelen cevaplar işlem sırası gelene kadar
zamanda Modbus protokolü kullanılarak ayarlanabilmektedir. beklemektedir. Modbus RTU protokolünün sınırları göz
Bu noktadan sonra ağ geçidi bağımlı Modbus TCP cihazları önünde bulundurularak 256 baytlık bir tampon
ile soket bağlantısını oluşturur (RTU cihazlar için böyle bir oluşturulmuştur. Şekil 11’de sistemdeki tüm veri akışı
işlem gerekli değildir). Bundan sonra ana cihazdan gelecek gösterilmiştir.
talepler için beklemeye geçer.

449
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli

Sistemde kullanılan cihazların IP yapılandırması Tablo 1’de


görülmektedir.

Tablo 1: IP yapılandırması

Robot Parametresi IP Adresi


Gateway 192.168.1.1
PLC 192.168.1.100
ADAM 6066 (1) 192.168.1.33
ADAM 6066 (2) 192.168.1.34
IL ETH BK DI8 DO4 (1) 192.168.1.35
IL ETH BK DI8 DO4 (2) 192.168.1.36

Ağ geçidinin işleyişi Wireshark yazılımı ile takip edilmiştir.


Bu sayede ağ geçidinin hem PLC ile hem de bağımlı cihazlar
ile haberleşmesi izlenebilmektedir. Tüm cihazlar aynı ağ
üzerinde bulunsa da tüm veri akışı ağ geçidi üzerinden
geçmektedir. Gözlemlenen paketler Ethernet ağı üzerinden
alındığı için sadece TCP protokolüne ait akışlar
gözlemlenebilmektedir (RTU akışları görüntülenmemektedir).
Şekil 13’de paket akışları görülmektedir.

Şekil 11:Sistem veri akışı


Şekil 13:Sistem paket akışı
Sistemde dört adet Modbus TCP ve iki adet Modbus RTU
protokolü kullanan dağınık giriş/çıkış modülü kullanılmıştır.
Ayrıca sisteme ana cihaz olarak Phoenix Contact ILC150ETH 4. Sonuçlar
PLC eklenmiştir. Ek olarak sistemde port aynalama özelliği Bu çalışmada FPGA kullanılarak bir ağ geçidi
bulunan bir ağ anahtarı kullanılmıştır, böylece sistemin işleyişi oluşturulmuştur. Ağ geçidi hem Modbus RTU, hem de
gözlemlenebilmektedir. Sistemin uygulama platformuna ait bir Modbus TCP cihazlar ile bağlantı sağlayarak, ana cihazın
resim Şekil 12’de verilmiştir. haberleşme yükünü azaltmıştır. Endüstriyel cihazların
çoğunda gömülü sistemler kullanıldığı için oluşturulabilecek
bağlantı soketi sayısı oldukça azdır. Örneğin uygulamada
kullanılan PLC için bu sınır 8’dir. Ağ geçidi sayesinde PLC
sadece bir soket bağlantısı oluşturmaktadır ve kalan
haberleşme soketleri başka amaçlar için kullanılabilmektedir.
Bunun haricinde sistemin Modbus TCP ile
yapılandırılması sayesinde farklı sistemlerde ön ayarlamaya
gerek olmadan ana cihaz tarafından ayarlanması mümkündür.

Kaynakça
[1] Modbus Application Protocol Specification V1.1b3.,
Modbus.org. Alındığı tarih: 05.12.2014, adres:
http://modbus.org/specs.php

Şekil 12:Sistem uygulama platformu

450
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli

[2] Modbus over Serial Line Specificaiton and


Implementation guide V1.02, Modbus.org. Alındığı tarih:
05.12.2014, adres: http://modbus.org/specs.php
[3] Modbus Mesaging on TCP/IP Implementation Guide
V1.0a, Modbus.org. Alındığı tarih: 05.12.2014, adres:
http://modbus.org/specs.php
[4] Hui, L., Hao, Z., Fei, X., & Wen, H., “Research on
Communication Controller Between FlexRay and
Modbus,” Proc. of the Conference on Signal Acquisition
and Processing, ICSAP. International Conference
on IEEE, s: 73-76, 2009.
[5] Li, H., Zhang, H., & Peng, D., “Research and Design of
Industrial Ethernet Communication Gateway on Power
Station,” Proc. of the Conference on Transportation,
Mechanical, and Electrical Engineering (TMEE), s: 986-
989, 2011.
[6] Chen, S., Zheng, D., & Yang, R., “Design of Preverifying
Serial-Ethernet Communication Gateway Based on
LM3S8962,” Proc. of the Conference on Mechatronics
and Automation (ICMA), s: 1620-1624, 2013.
[7] Chiculita, C., Liviu, E., & Cristea, M. L., “Towards
Multi-port Modbus Gateway,” Proc. of 4th International
Symposium on In Electrical and Electronics Engineering
(ISEEE), s:1-4, 2013.
[8] Zhang, K. L., Li, D. H., Shi, S. C., Yang, X. S., Xiao, Z.,
& Gao, Q., “Design and Implementation of Multi-
Protocol Self-Adaptation Gateway,” Applied Mechanics
and Materials, Cilt: 687, s: 2108-2111, 2011.
[9] Lin, Y. J., & Zhong, G. W., “The Development of
Profibus/Modbus Gateway in Aluminum Roasting
Draught System. Advanced Materials Research, Cilt:
898, s: 956-960, 2014.
[10] DE0 Nano User Manual v1.9, altera.com. Alındığı tarih:
06.12.2014, adres: http:// www.altera.com
[11] Wiznet W5500 Datasheed v1.0.4. wiznet.co.kr. . Alındığı
tarih: 06.12.2014, adres: http://www.wiznet.co.kr

451

View publication stats

You might also like