TEKLİF AL
TR

Internet of Things (IoT) ve diğer benzeri dağıtık sistemlerin hızla yayılmasıyla veri iletişiminin önemini artırmıştır. Düşük bant genişliği olan, gecikme süresi yüksek olan ve güvenlik açısından zayıf ağlar ve cihazlar gibi sistemlerin gereksinimleri, hafif ve güvenilir bir haberleşme protokolüne olan ihtiyacı doğurmuştur. MQTT (Message Queuing Telemetry Transport), böyle bir ihtiyacı karşılamak için tasarlanmış bir haberleşme protokolüdür. MQTT temel yapısı ile ağ bant genişliğini ve cihaz üzerindeki kaynak kullanımını minimal seviyelere indirmenin yanında güvenlik ve veri alışverişi esnasında teslimat güvencesi sağlamaya çalışır. Bu temel yapısı ile MQTT’ nin, M2M (Machine to Machine) ve Iot (Internet of Things) dünyasında önemi giderek artmaktadır. Bu makalede, MQTT’nin mimarisi, özellikleri, veri yapısı, çalışma prensipleri, kullanım alanları ve diğer haberleşme protokollerine göre üstünlükleri çeşitli alt başlıklar şeklinde incelenecektir.

MQTT Protokolünün Mimarisi ve Çalışma Prensibi

MQTT, basit ve hafif bir protokol olup, istemci-sunucu modeline dayanmaktadır. MQTT’ nin mimarisine ait temel bileşenler aşağıdaki gibidir :

İstemci (Client): MQTT iletişimini başlatan ve yöneten, veri gönderen veya veri alan cihazlardır. İstemciler, birçok farklı platformda çalışabilirler. MQTT’de iki temel istemci rolü vardır:

  • Yayıncı (Publisher): Veri üreten ve MQTT broker’ına ileten cihazlardır.
  • Abone (Subscriber): Belirli bir konuya abone olan cihazlardır. Bu cihazlar, ilgili konuda yayınlanan verileri dinlerler.

Broker (Server): Broker, MQTT mesajlarını alır ve iletilmek istenen istemcilere yönlendirir. İstemciler arasında doğrudan iletişim sağlamak yerine, broker aracılığıyla haberleşme gerçekleşir. İstemciler arasında iletişimi yöneten araştırma noktasıdır. İstemcilerin mesajlarını aldığı ve hedef istemcilere ilettiği merkezi bir hub görevi görür.

Konu (Topic): Konular, iletilen mesajların hedefini belirler. Mesajların kategorize edildiği bir hiyerarşik yapıdır. İstemciler, belirli bir konuyu dinleyebilir (subscribe) veya o konuya mesaj gönderebilir (publish).

Mesaj: MQTT ile iletilen verilerdir. Her mesaj bir konuyla ilişkilendirilir ve istemcilere iletilir.

 

İstemciler birbiri ile doğrudan iletişim kuramazlar. Her bir istemci Broker üzerinden haberleşme sağlar, yani her bir işlemci Broker’a bağlıdır. İstemciler Publisher (yayıncı), Subcriber (abone) veya aynı anda her iki rolü de üstlenebilir. Publisherlar verileri belli bir “Topic” adı ile yayınlar ve Subscriberlar belirlenen bu “Topic” adı üzerinden Broker’a abone olarak yayımlanan mesajları alır, QoS (Quality of Service) seviyesine bağlı olarak mesajın iletimi ve teslimi Broker üzerinden sağlanmış olur.

 

Clean Session

MQTT’nin “Clean Session” (Temiz Oturum) özelliği, MQTT istemcisi ile MQTT sunucusu arasındaki oturumun nasıl yönetileceğini belirleyen bir özelliktir. Clean Session özelliği, MQTT istemcisinin bir MQTT sunucusuna bağlandığında ve bir oturum başlattığında ne tür bir davranış sergileyeceğini belirler, İki temel seçenek vardır:

Clean Session (1) Enable: Bu durumda, MQTT istemci oturumu başlattığında sunucu, bu istemcinin daha önceki oturum verilerini siler. Yani istemci her bağlandığında, sunucu onu yeni bir oturum olarak kabul eder ve önceki oturumun herhangi bir bilgisini tutmaz. Bu, her bağlantıda temiz ve başlangıç ​​bir durumla çalışmak isteyen uygulamalar için uygundur.

Clean Session (0) Disable: Bu durumda, MQTT istemcisi oturumu başlattığında sunucu, istemcinin önceki oturum bilgilerini saklar. Bu, istemcinin önceki oturumda abone olduğu konuları ve yayınladığı mesajları hatırlamasını sağlar.

Mikrodev DCS, PLC ve ViewPLUS SCADA ürünlerinde ürün ailesi farketmeksizin tamamında MQTT Client desteği bulunmaktadır. Subscribe olunacak Topic veya Publish edilecek Topic ile ilgili ayarlar Telediagram/Mikrodiagram Programlama Editörü’ nde yer alan “MQTT Table Panel” kısmından yapılmaktadır. Ayrıca MQTT Config Bloğuyla Client ID, Username, Password, Keep Alive, Clean Session, SSL/TLS gibi parametrelerde ayarlanabilmektedir.

Mikrodev RTU ve PLC’ lerde Publish edilecek Topic 3 şekilde Publish edilebilmektedir. Bu 3 yöntemin kullanımı veri trafiğine, Topicler arasıdaki önem sırasına göre belirlenmelidir. Aşağıda bu yöntemler açıklanmıştır.

-Periyodik Gönderim: MQTT Config bloğunun “Trig” girişine yükselen kenar uygulanarak, Periyodik gönderimi aktif olan bloklar ile ilgili mesajların belirlenen periyotlar ile gönderimi sağlanabilmektedir. Periyodik gönderimi anlık olarak aktif veya pasif duruma getirebileceğiniz bir blok ataması da yapılabilmektedir, bu özellik sayesinde periyodik gönderime bağlı veri trafiği tekrardan konfigürasyon gerektirmeden aktif veya pasif hale getirilebilir.

-Değişimde Gönderim: MQTT Table Panel kısmında değişim değeri ve değişim türü (Seviye/Yüzdesel Değişim) belirlenen bloklarda, belirlenen türde eşik değerini aşan bir değer değişimi yaşandığında gönderim sağlanabilmektedir. Değimde gönderimi anlık olarak aktif veya pasif duruma getirebileceğiniz bir blok ataması da yapılabilmektedir, bu özellik sayesinde değişimde gönderime bağlı veri trafiği tekrardan konfigürasyon gerektirmeden aktif veya pasif hale getirilebilir.

-Tetik Blogu ile Gönderim: Periyodik ve Değişimde gönderim haricinde seçilen blok veya blok gruplarına ait mesajların, kendisi ile ilişkilendirilen gönderim tetik bloğu seçilen bloğa bağlı olarak da gönderimi sağlanabilmektedir.

Yukarıda yer alan gönderim metodlarına ait çeşitli konfigürasyonlar Telediagram/Mikrodiagram’ da yer alan MQTT Table Panel kısmından yapılabilmektedir.

 

 

MQTT Veri Yapısı ve Mesaj Mimarisi

MQTT mesajları, başlık (header) ve veri (payload) kısımlarından oluşur:

Başlık (Header): Başlık, mesajın türünü (abonelik, yayın vs.), QoS seviyesini ve diğer iletişim bilgilerini içerir.

Veri (Payload): Veri, kullanıcı tarafından gönderilen asıl içeriktir. MQTT, her türlü veri türünü taşıyabilir, bu da onu çok yönlü kılar. Mikrodev RTU ve PLC görevi üstlenen cihazlarda payload tipi seçimi yapılabilmektedir. Veriye “Zaman Etiketi” ekleyebileceğimiz Payload tipiyle Mikrodev PLC/RTU ile ViewPLUS SCADA arasındaki haberleşmenin herhangi bir sebepten ötürü koptuğu durumlarda oluşan olay kaydı, haberleşme tekrardan sağlandığında ViewPLUS SCADA’ ya zaman etiketli verilerin ulaşmasıyla Database’in geçmişe yönelik doldurulabilmesi, geçmiş zaman dilimlerine ait verilerin işlenebilmesi ve üzerine yazılabilmesi mümkündür. Bu özellik sayesinde ViewPLUS SCADA daha mantıklı ve tutarlı raporlar oluşturabilmektedir. Zaman etiketi sayesinde geçmiş olay kaydı oluşturabilme özelliği “Backfilling” olarak isimlendirilebilir.

MQTT, mesaj mimarisinde yer alan ve aşağıda alt başlıklar halinde incelenen özellikler ile bağlantı ve veri güvenliği konusunda çeşitli avantajlar sunmaktadır.

QoS (Quality of Service)

MQTT QoS (Quality of Service), MQTT (Message Queuing Telemetry Transport) protokolü içinde mesajların iletim güvencesini ve doğruluğunu ayarlamak için kullanılan bir özelliktir. MQTT, hafif bir mesajlaşma protokolüdür ve IoT (Nesnelerin İnterneti) ve diğer düşük bant genişliği veya güç tüketimi gerektiren uygulamalarda sıkça kullanılır. MQTT QoS seviyeleri, mesajların iletiminde ne tür güvence sağlayacağını belirler ve üç farklı seviye sunar:

QoS 0 (At Most Once):

Bu seviye, mesajların en düşük güvencesini sağlar. Mesajlar “en fazla bir kez” iletim garantisi ile gönderilir. Yani, mesajlar kaybolabilir veya çoklu kez teslim edilebilir. Hızlı iletişim gerektiren ve kayıp verilerin kabul edilebilir olduğu durumlar için uygundur.

QoS 1 (At Least Once):

Bu seviye, mesajların kesinlikle “en az bir kez” teslim edilmesini sağlar. Gönderici, mesajı alıcıya gönderir ve alıcı mesajı aldıktan sonra bir “PUBACK” (Yayın Onay) mesajıyla göndericiye teyit eder. Gönderici, bu onayı almadan önce mesajı tekrar gönderebilir.

QoS 2 (Exactly Once):

Bu seviye, mesajların kesinlikle bir kez ve sadece bir kez teslim edilmesini sağlar. Gönderici, mesajı alıcıya gönderir ve alıcı mesajı aldıktan sonra bir dizi el sıkışma işlemi gerçekleştirir (PUBLISH, PUBREC, PUBREL, PUBCOMP). Bu işlemler, mesajın kesinlikle bir kez teslim edilmesini sağlar. Bu seviye, veri kaybının veya tekrar teslim edilmenin kabul edilemez olduğu kritik uygulamalarda kullanılır, ancak daha fazla bant genişliği ve iletişim süresi gerektirebilir.

QoS seviyeleri, kullanıldıkları senaryoya ve iletişim gereksinimlerine göre seçilir. Daha yüksek QoS seviyeleri, daha fazla iletişim güvencesi sağlar, ancak daha fazla bant genişliği ve iletişim süresi kullanır. Bu nedenle, uygulamanın ihtiyaçlarına ve ağ koşullarına bağlı olarak doğru QoS seviyesini seçmek önemlidir.

 

Last Will and Testament

LWT, bir MQTT istemcisi (client) veya sunucusu (broker) bağlantısı kesildiğinde veya bir hata oluştuğunda gönderilecek bir iletiyi tanımlamak için kullanılır. Bu ileti, bağlantıyı kaybeden cihazın son isteği veya durumu gibi önemli bilgiler içerebilir. LWT özelliği, cihazlar arasındaki iletişimin güvenilirliğini artırır ve cihazların bağlantı durumunu daha iyi yönetmelerine olanak tanır. Bir istemci, bağlantısını beklenmedik bir şekilde kaybederse, bir “WILL” mesajı belirleyebilir. Bu, diğer istemcilere veya brokera bağlantı kaybını bildirir.

Retain

MQTT (“Message Queuing Telemetry Transport”) protokolünün “Retain” özelliği, bir MQTT konusu (topic) üzerinde son iletiyi saklama yeteneğini ifade eder. Bu özellik, bir istemci (client) bir konu üzerinde bir ileti yayınladığında, bu iletiyi abone olan diğer istemcilere göndermek yerine, MQTT sunucusu (broker) tarafından saklanmasını sağlar. Böylece, bir konuya abone olan yeni istemciler, o konu üzerinde en son saklanan iletiyi hemen alabilirler. MQTT’nin Retain özelliği, aşağıdaki şekilde çalışır:

 

  • Bir istemci (Client) belirli bir MQTT konusu üzerine bir ileti yayınladığında, bu iletiyi yayınlar ve aynı zamanda bu iletiyi saklanması için MQTT sunucusuna (Broker) iletir.
  • Bu ileti, MQTT sunucusu tarafından saklanır ve o konuyu takip eden diğer istemcilere gönderilmez.
  • Bir istemci, aynı konuya abone olduğunda veya yeni bir abone olduğunda, MQTT sunucusu son saklanan iletiyi hemen gönderir. Bu, istemcinin konu hakkında en son bilgilere sahip olmasını sağlar.

Ancak, Retain özelliğinin dikkatli bir şekilde kullanılması gerekir, çünkü herhangi bir istemci bir konuyu takip ettiğinde, saklanan son iletiyi alır. Bu nedenle, Retain özelliği, hassas veya güncel olmayan verilerin yanlışlıkla erişilmesine yol açabilir. Bu nedenle, Retain özelliğini kullanırken konu ve iletilerin doğru bir şekilde yönetilmesi önemlidir.

MQTT Haberleşme Protokolünde Güvenlik İlkeleri

MQTT’nin güvenliği, SSL/TLS şifrelemesi ve kimlik doğrulama gibi mekanizmalarla sağlanır. Bu, hassas verilerin güvende tutulmasına yardımcı olur. Mikrodev DCS ürün grubu içerisinde yer alan DM50, DM100 ve DM500 serisi RTU’larda SSL/TLS desteği bulunmaktadır. Ayrıca MQTT’ de yer alan QoS, LWT ve Retain gibi yapılar sayesinde de veri güvenliği üst seviyelere taşınmıştır.

 

MQTT Haberleşme Protokolünün Kullanım Alanları

Ev ve Bina Otomasyonu: IoT cihazlarının ev ve bina otomasyonu sistemleriyle iletişim kurmasını sağlanabilir.

Endüstriyel Otomasyon: Fabrikalar, üretim tesisleri ve enerji sistemleri gibi endüstriyel uygulamalarda kullanılır.

Ulaşım ve Lojistik: Araç izleme sistemleri ve akıllı ulaşım sistemleri için idealdir.

Sağlık Hizmetleri: Tıbbi cihazlar ve hasta takip sistemleri için güvenli bir iletişim sağlar.

Ulaşım ve Lojistik: Araçlar ve taşıma sistemleri, konum ve durum bilgilerini MQTT üzerinden paylaşabilirler.

MQTT’yi Diğer Haberleşme Protokollerinden Ayıran Üstünlükleri

Hafif ve Verimli: MQTT, minimal kaynak tüketimi ve düşük bant genişliği kullanır, bu da IoT cihazları ve düşük güç tüketimine sahip sistemler için uygundur.

Yayın-Abone Modeli: MQTT’nin yayın-abone modeli, veri dağıtımını kolaylaştırır ve daha ölçeklenebilir bir yapı sağlar.

QoS Seviyeleri: MQTT, iletişim güvencesi düzeylerini belirlemek için QoS seviyelerini kullanabilir, bu da iletişimin güvenilirliğini artırır.

Geniş Kullanım Alanları: MQTT, IoT dışında da kullanım alanlarına sahiptir ve bu da onu daha evrensel hale getirir.

MQTT, hafif, verimli, esnek ve yaygın olarak kullanılan bir haberleşme protokolüdür. IoT uygulamalarından endüstriyel otomasyona kadar geniş bir yelpazede kullanılır ve diğer protokollere göre hafif yapısı ve QoS seviyeleri gibi bir dizi avantaja sahiptir. MQTT, veri iletişimi için güvenilir bir seçenek sunar. Bu nedenle, IoT ve M2M dünyasında önemli bir oyuncu olarak kabul edilir ve gelecekte de büyümeye ve IoT uygulamalarının temelini oluşturmaya devam edecektir.

Mikrodev DCS, PLC ve ViewPLUS SCADA ürünleri ile ERP (Enterprise Resource Planning) veya MES (Manufacturing Execution System) Sistemleri arasında veri transferi yapabilir, verileri analiz edebilir ve raporlar oluşturabilirsiniz.

Diğer İletiler
Tüm İletiler
Ex4S Enerji Sektöründe Siber Savunma Simülasyonu
Ex4S Enerji Sektöründe Siber Savunma Simülasyonu
EPDK’nın bu yıl ilk kez 24-25 Mayıs 2022’de Ankara’da kendi yerleşkesinde gerçekleştirdiği Ex4S Enerji Sektöründe Siber Savunma Simülasyonu’22 etkinliğinde Ofansif Odaklı Simülasyon altyapı kurulumlar
Devamını Oku
SCADA Sistemlerinin Güvenliği
SCADA Sistemlerinin Güvenliği
SCADA Sistemlerinin Güvenliği Teknolojinin hayatımızın neredeyse her alanına nüfuz ettiği günümüzün birbirine bağlı dünyasında, denetimsel kontrolün ve veri toplamanın güvenliği (SCADA) sistemler çok
Devamını Oku
RTU Nedir ve Nasıl Çalışır?
RTU Nedir ve Nasıl Çalışır?
RTU Nedir ve Nasıl Çalışır?  RTU, İngilizce “Remote Terminal Unit” kelimelerinin kısaltmasıdır. Endüstriyel otomasyon sistemlerinde kullanılan remote terminal üniteleri, bir cihazın işlevselliğini ar
Devamını Oku
Verimliliği Artırmak: PLC Programlamada MODBUS Gateway Kullanımı
Verimliliği Artırmak: PLC Programlamada MODBUS Gateway Kullanımı
Endüstriyel otomasyonun hızla evrilen peyzajında, Programlanabilir Mantık Kontrolörleri (PLC'ler) ve iletişim protokollerinin entegrasyonu hayati öneme sahiptir. Bu makalenin amacı MODBUS Gateway'in P
Devamını Oku
PLC’ye Dair Sıkça Sorulan Sorular
PLC’ye Dair Sıkça Sorulan Sorular
Programlanabilir lojik kontrol sistemleri (PLC), modern endüstriyel otomasyonun vazgeçilmez bir aracı haline gelmiştir. PLC’ler, endüstriyel sistemlerin önemli bir çarkıdır ve çok çeşitli uygulamalar
Devamını Oku
Türkiye Cumhuriyeti Tarım İşletmeleri Genel Müdürlüğü (TİGEM) Pivot Sulama Gübreleme & Tohum Hazırlama SCADA Sistemi
Türkiye Cumhuriyeti Tarım İşletmeleri Genel Müdürlüğü (TİGEM) Pivot Sulama Gübreleme & Tohum Hazırlama SCADA Sistemi
Konya bölgesinde bulunan 90'dan fazla istasyonun Pivot Arm Sulama, Gübreleme ve Tohum Hazırlama SCADA Sistemi'nde Mikrodev PLC ve Remote I/O ürünleri kullanılmıştır. 40000 dekarlık tarımsal sulama ala
Devamını Oku
Akıllı Şehirler ve Enerji Yönetimi
Akıllı Şehirler ve Enerji Yönetimi
Şehirlerde Akıllı Enerji Yönetimi Nedir?  Dünya nüfusunun büyük bir kısmı artık büyük şehirlerde ve metropollerde yaşarken, bu şehirler sadece insanların yoğunlaştığı yerler değil, aynı zamanda yükse
Devamını Oku
Kocaeli-Gebze VI. İMES Makine İhtisas OSB Enerji Takip Sistemi
Kocaeli-Gebze VI. İMES Makine İhtisas OSB Enerji Takip Sistemi
Kocaeli-Gebze VI. İMES Makine İhtisas Organize Sanayi Bölgesi Otomatik Sayaç Okuma Sistemi Projesi'nde Mikrodev IoT protokol gateway ürün ailesi tercih edilmiştir. Mevcut sistemde SC100 Serisi IoT Gat
Devamını Oku
İstanbul Büyükşehir Belediyesi Akıllı Şehir SCADA Sistemi
İstanbul Büyükşehir Belediyesi Akıllı Şehir SCADA Sistemi
Akıllı şehir sistemi kontrolü, İstanbul Büyükşehir Belediyesi Enerji Yönetimi ve Aydınlatma Müdürlüğü bünyesinde yapılmaktadır. Mikrodev PLC ve Gateway ürünleri ile il genelinde 400'den fazla istasyon
Devamını Oku
Mikrodev PLC Cihazlarda MODBUS TCP Protokolleri ve Uygulamaları
Mikrodev PLC Cihazlarda MODBUS TCP Protokolleri ve Uygulamaları
“PLC Programlama Nedir?” başlıklı blogumuzda “PLC Programlama Nasıl Çalışır?” sorusuna cevap verdiğimiz gibi Mikrodev MP110 ve MP211 PLC Serisi cihazlarda MODBUS PROTOKOL Bloklarını ve MODBUS RTU MODB
Devamını Oku
KATALOG