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
RTU Cihazı Nedir?
RTU Cihazı Nedir?
RTU Cihazı Nedir? RTU'lar (Remote Terminal Unit), endüstriyel otomasyon sistemlerinde kullanılan önemli bir bileşendir. Bu cihazlar, saha cihazlarıyla (sensörler, aktüatörler, anahtarlar vb.) iletişi
Devamını Oku
MQTT Haberleşme Protokolü Nedir?
MQTT Haberleşme Protokolü Nedir?
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ı
Devamını Oku
PLC ve RTU Arasındaki Farklar Nelerdir?
PLC ve RTU Arasındaki Farklar Nelerdir?
Endüstriyel otomasyon dünyasında, PLC (Programlanabilir Lojik Kontrol) ve RTU (Uzak Terminal Ünitesi) iki önemli cihazdır. Her ikisi de süreç kontrolünü otomatikleştirmek ve izlemek için kullanılırlar
Devamını Oku
Örneklerle SCADA
Örneklerle SCADA
Endüstriyel otomasyon ve kontrolün karmaşık dünyasında SCADA, dönüştürücü bir güç olarak ortaya çıkar. Üretimden enerjiye, ulaşıma ve telekomünikasyona kadar çok sayıda sektörde izleme ve yönetimi kol
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
Takvim ve Zamanlama Fonksiyonlarının Endüstriyel PLC Programlamadaki Önemi
Takvim ve Zamanlama Fonksiyonlarının Endüstriyel PLC Programlamadaki Önemi
Endüstriyel otomasyon, modern üretim tesislerinde proses kontrolünün temel taşıdır. PLC (Programlanabilir Lojik Denetleyici) sistemleri, endüstriyel otomasyonun temel taşı olan otomasyon kontrolünü yö
Devamını Oku
Arçelik TV Kumandası Fonksiyonel Test Sisteminde, Mikrodev Ürünlerini Tercih Etti!
Arçelik TV Kumandası Fonksiyonel Test Sisteminde, Mikrodev Ürünlerini Tercih Etti!
Arçelik, TV Kumandası fonksiyonel test sisteminde Mikrodev’in ürünlerini tercih ederek uzaktan kumandalarının kalitesini artırmak için hareket kontrol sistemini güçlendirdi. MP110 serisi Mikrodev PLC
Devamını Oku
PLC, DCS ve SCADA Arasındaki Farkları Anlamak İçin Seçim Rehberi
PLC, DCS ve SCADA Arasındaki Farkları Anlamak İçin Seçim Rehberi
PLC, DCS ve SCADA Arasındaki Farkları Anlamak İçin Seçim Rehberi Günümüzün endüstriyel dünyasında, uygun kontrol sistemi mimarisinin seçimi, optimum verimlilik ve etkinliğin sağlanmasında çok önemli
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
IEC 61131-3 Programlama Nedir?
IEC 61131-3 Programlama Nedir?
IEC 61131-3 Programlama Nedir ? PLC Cihazlarındaki Yeri Nedir? IEC 61131-3 Programlama, PLC cihazlarına yönelik programlama standartları için kullanılan bir kodlama dilidir. Bu programlamada nesneler
Devamını Oku
KATALOG