Professional Documents
Culture Documents
Endustriyel Sistemler Icin FPGA Tabanli
Endustriyel Sistemler Icin FPGA Tabanli
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/281969085
CITATIONS READS
0 167
3 authors:
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
2
Kontrol ve Otomasyon Mühendisliği Bölümü
Yıldız Teknik Üniversitesi, İstanbul
oakbati@yildiz.edu.tr
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
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)
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
Ethernet kullanır. Yani Modbus TCP protokolü, fiziksel bir (2 byte) (2 byte) (2 byte) (1 byte) (1 byte)
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.
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.
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
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
Tablo 1: IP yapılandırması
Kaynakça
[1] Modbus Application Protocol Specification V1.1b3.,
Modbus.org. Alındığı tarih: 05.12.2014, adres:
http://modbus.org/specs.php
450
Otomatik Kontrol Ulusal Toplantısı, TOK'2015, 10-12 Eylül 2015, Denizli
451