İçeriğe geç

Sözlük · Protokol

MQTT nedir?

Message Queuing Telemetry Transport

MQTT, cihazların bir broker üzerinden topic'lere mesaj yayınladığı ve abone olduğu, düşük bant genişliğinde çalışan hafif bir yayınla/abone ol protokolüdür.

VOLSOFT mühendislik ekibi ·

MQTT, cihazların ve uygulamaların birbirine doğrudan bağlanmak yerine merkezi bir broker üzerinden haberleştiği, yayınla/abone ol (publish/subscribe) modelinde çalışan hafif bir mesajlaşma protokolüdür. Mesajlar topic adı verilen hiyerarşik adreslere yayınlanır; o topic’e abone olan herkes mesajı alır. Az bant genişliği ve kararsız bağlantılarda bile çalışabildiği için IoT ve endüstriyel veri taşımada yaygın olarak kullanılır.

MQTT ne işe yarar?

MQTT, veri üreten taraf ile veriyi kullanan tarafı birbirinden ayırır. Bir gateway makine verisini tek bir yere yayınlar; MES, dashboard, historian ve analiz uygulamaları aynı veriye birbirinden habersiz abone olur. Yeni bir tüketici eklemek için sahadaki cihaza dokunmak gerekmez. Bu yapı, tesis genelinde tek bir veri omurgası kurmayı amaçlayan Unified Namespace (UNS) yaklaşımının da temelidir.

Nasıl çalışır?

MQTT, TCP üzerinde çalışır. Varsayılan portlar şifresiz bağlantı için 1883, TLS ile şifreli bağlantı için 8883’tür. Sahada kullanılan sürümler OASIS standardı MQTT 3.1.1 (ISO/IEC 20922) ve MQTT 5.0’dır.

Temel kavramlar:

  • Topic: fabrika/hat1/pres3/sicaklik gibi eğik çizgiyle ayrılan hiyerarşik adres. Aboneler + (tek seviye) ve # (alt seviyelerin tümü) joker karakterlerini kullanabilir.
  • QoS: Teslim garantisi seviyesi.
  • Retained mesaj: Broker, topic’teki son mesajı saklar; yeni abone bağlanır bağlanmaz son değeri alır.
  • Last Will (LWT): İstemci beklenmedik şekilde koparsa broker’ın onun adına yayınladığı mesaj; cihazın çevrim dışı olduğunu bildirmek için kullanılır.
QoSAnlamıTipik kullanım
0En fazla bir kez, onay yokSık gelen ölçümler
1En az bir kez, tekrar gelebilirSayaç, durum değişikliği
2Tam olarak bir kezKaybı ve tekrarı kabul edilmeyen olaylar

MQTT ile OPC UA farkı

OPC UA bir bilgi modeli sunar: bir değerin veri tipi, birimi, hangi makineye ait olduğu sunucuda tanımlıdır. MQTT ise yalnızca taşıma katmanıdır; mesajın içinde JSON mu, Protobuf mu, hangi alanlar olduğu protokol tarafından tanımlanmaz. Bu yüzden MQTT kullanan projelerde topic yapısı ve yük formatı ayrıca standartlaştırılmalıdır. Sparkplug B bu boşluğu doldurmak için geliştirilmiştir. İki protokol birbirinin rakibi değildir; sık görülen mimaride makinelerden OPC UA veya Modbus ile okunan veri, bir gateway tarafından MQTT broker’ına yayınlanır.

Veri toplama açısından dikkat edilmesi gerekenler

  • Topic yapısını baştan tasarlayın. Saha, hat, makine, sinyal sırasını izleyen tutarlı bir şema, sonradan yapılacak düzeltmelerden çok daha ucuzdur.
  • Yük formatında anlaşın. Değerin yanında zaman damgası, birim ve kalite bilgisi taşınmalıdır.
  • Broker’ı güvenceye alın. Üretim ortamında 8883 ile TLS, kullanıcı adı/parola veya istemci sertifikası ve topic bazlı yetkilendirme kullanılmalıdır.
  • QoS’u gereğinden yüksek seçmeyin. QoS 2 her mesaj için ek el sıkışma gerektirir; yüksek frekanslı ölçümlerde gereksiz yük oluşturur.
  • Bağlantı kopmasını planlayın. Gateway tarafında yerel tamponlama yoksa ağ kesintisinde veri kaybolur.

VOLSOFT, makine verisini MQTT üzerinden Proxus platformuna taşır.

Sıkça sorulan sorular

Merak edilenler

MQTT ile OPC UA farkı nedir?

OPC UA, veriyi tipleri ve ilişkileriyle birlikte tanımlayan bir bilgi modeli ve istemci-sunucu iletişimi sunar. MQTT ise yalnızca mesaj taşır; yükün içeriği ve yapısı tanımsızdır. Sahada OPC UA, sahadan buluta ve sistemler arası dağıtımda MQTT sık tercih edilir.

MQTT hangi portu kullanır?

Şifresiz MQTT için 1883, TLS ile şifreli MQTT için 8883 portu kullanılır. WebSocket üzerinden MQTT ise broker yapılandırmasına göre farklı portlarda çalışabilir.

Sparkplug B nedir?

Sparkplug B, Eclipse Foundation'ın MQTT üzerine tanımladığı bir spesifikasyondur. Topic yapısını, Protobuf tabanlı yük formatını ve cihazların çevrim içi/dışı durumunu bildiren birth/death mesajlarını standartlaştırır.

Sonraki adım

Üretim verilerinizi nasıl değerlendirebileceğimizi konuşalım.

Tesisinizi, makinelerinizi ve hedefinizi anlatın. Entegrasyon mühendislerimizle görüşerek projenizin kapsamını birlikte belirleyin.

Ödüller ve referanslar

Endüstriyel yazılım deneyimimiz, referanslarımız ve ödüllerimiz

Referanslarımızı inceleyin →