inSCADA
TR
TR
  • Giriş
  • Başlarken
  • Kullanıcı Arayüzü
    • Ana Sayfa
    • Geliştirme
      • Projeler
      • Bağlantılar
      • Cihazlar
      • Değişkenler
      • Alarm
        • Alarm Grupları
        • Alarmlar
      • Animasyonlar
        • Get
        • Color
        • Rotate
        • Move
        • Opacity
        • Bar
        • Click
        • Tooltip
        • Access
        • Chart
        • Visibility
        • Slider
        • IFrame
        • Datatable
        • Get Symbol
        • QR Code
      • Trendler
      • Scriptler
      • İfadeler
      • Raporlar
        • Custom Report
        • Raporlar
      • Süreçler
      • Yedekle / İçe Aktar
      • Veri Transferleri
      • Anahtar Kelime
      • Languages
      • Custom Tables
        • Custom Table
        • Custom Table SQL
      • Info
    • Kullanıcı Menüsü
      • Kullanıcılar
      • Roller
    • Bildirimler
      • E-Posta
      • SMS
    • Sihirbazlar
      • Gaz Ölçüm
      • HPP Unit
      • Cihaz Kütüphanesi
    • Alarm Tracking
      • Alarm Geçmişi
      • Alarm Monitör
    • Variable Tracking
      • Değişken Geçmişi
      • Değişken İzleme
      • Variable Trace
    • Kontrol Panel
    • Görselleştirme
    • Akış / Kamera
    • Trend Grafik
    • Süreç
    • İşler
    • Proje Haritası
    • Raporlar
    • Logs
      • Günlükler
      • Yetki Günlükleri
    • Yardım
      • Online Yardım
      • Hakkında
      • Lisans
  • Mimik Tasarım
  • Haberleşme Protokolleri
    • MODBUS
      • Modbus TCP
      • Modbus UDP
      • Modbus RTU Over TCP
      • Modbus TCP Server
      • Modbus RTU Slave Over TCP
    • DNP3
      • DNP3 Master
      • DNP3 Outstation
    • S7 Protokol
    • IEC-104 - Master
    • OPC
      • OPC UA Client
      • OPC DA Client
    • MQTT
  • Programlama
    • APIs
      • Variable Functions
      • Connection Functions
      • Project Functions
      • Alarm Functions
      • Script Functions
      • In-Memory DB Functions
      • System Functions
      • User Functions
      • Date-Time Functions
      • String Functions
      • Notification Functions
      • Confirmation Functions
      • Database Functions
      • Other Functions
  • Veritabanı
  • Faydalı Özellikler
  • Güncelleme Günlüğü
  • Mimari ve Uygulamalar
  • Geliştirme Yol Haritası
  • inSCADA' ya Geçiş
  • Lisanslandırma Politikaları
  • SSS
  • Örnek Ekranlar
  • Yardımcı Araçlar
    • VSTO Excel Add-In
    • S7-PLCSim Connector
  • Kurulumlar
    • Gereksinimler
    • Linux' a Kurulum
    • Windows Kurulum
Powered by GitBook
On this page
  1. Haberleşme Protokolleri

MQTT

Message Queuing Telemetry Transport

PreviousOPC DA ClientNextProgramlama

Last updated 3 years ago

MQTT, mesajları cihazlar arasında taşıyan hafif, yayınla-abone ol ağ protokolüdür. Protokol genellikle TCP/IP üzerinden çalışır, ancak sıralı, kayıpsız, çift yönlü bağlantılar sağlayan herhangi bir ağ protokolü MQTT'yi destekleyebilir.

Burada yazılanlar MQTT organizasyonuna ait sitesinden alıntıdır.

MQTT, Nesnelerin İnterneti (IoT) için bir OASIS standart mesajlaşma protokolüdür. Küçük bir kod alanı ve minimum ağ bant genişliği ile uzak cihazları bağlamak için ideal olan son derece hafif bir yayınla/abone ol mesajlaşma aktarımı olarak tasarlanmıştır. MQTT günümüzde otomotiv, imalat, telekomünikasyon, petrol ve gaz gibi çok çeşitli endüstrilerde kullanılmaktadır.

Neden MQTT?

  • Hafif ve Verimli : MQTT istemcileri çok küçüktür, minimum kaynak gerektirir, bu nedenle küçük mikro denetleyicilerde kullanılabilir. MQTT mesaj başlıkları, ağ bant genişliğini optimize etmek için küçüktür.

  • Çift Yönlü İletişim : MQTT, cihazdan buluta ve buluttan cihaza mesajlaşmaya izin verir. Bu, mesajların bir grup şeye kolayca iletilmesini sağlar.

  • Milyonlarca Şeye Ölçeklendirin : MQTT, milyonlarca IoT cihazına bağlanmak için ölçeklenebilir.

  • Güvenilir Mesaj Teslimatı : Mesaj tesliminin güvenilirliği, birçok IoT kullanım durumu için önemlidir. Bu nedenle MQTT'nin tanımlanmış 3 hizmet kalitesi seviyesi vardır: 0 - en fazla bir kez, 1- en az bir kez, 2 - tam olarak bir kez.

  • Güvenilmez Ağlar için Destek : Birçok IoT cihazı, güvenilmez hücresel ağlar üzerinden bağlanır. MQTT'nin kalıcı oturumlar için desteği, istemciyi aracıya yeniden bağlama süresini azaltır.

  • Güvenlik Etkin : MQTT, TLS kullanarak mesajları şifrelemeyi ve OAuth gibi modern kimlik doğrulama protokollerini kullanarak istemcilerin kimliğini doğrulamayı kolaylaştırır.

İnSCADA'da MQTT protokolü ile veri alış verişi yapabilmek için bir cihaz bağlantısı tanımlamak için öncelikle "Development" modülünde bulunan "Bağlantılar" menüsü kullanılmaktadır. Bakınız;Bağlantılar

Protokol olarak " MQTT " seçildikten sonra açılan özellikler menüsü doldurulmalıdır.

  • Indentifier : MQTT Broker'ına bağlanan her bir client'ın id'sidir. Broker gelen mesajların kimden geldiğini anlamak için bu id'leri kullanmaktadır.

  • Kullanıcı adı ve şifre : MQTT broker'ı kendisine veri gönderen 'indentifier'ı doğrulamak ve yetkilendirmek için kullanıcı adı ve parola kullanabilmektedir.

  • Use SSL : Client bilgileri bir SSL sertifikası ile doğrulanabiliyor ise kullanıcı adı ve parola kullanımına gerek duyulmadan işleme devam etmenize olanak sağlamaktadır. Aynı zamanda daha güvenli bağlantı için SSL doğrulama ve kullanıcı adı şifrede aynı anda kullanılabilmektedir.

  • initial delay in ms : Bir client'ın MQTT broker'ı ile arasındaki bağlantının kopması sonrası bekleme süresini belirtmektedir.

  • Max delay in ms : Broker ile bağlantı kopmasından sonra maksimum bekleme süresini belirtmektedir.

  • Clean Session : Celan Session flag' i client'ın broker ile kalıcı bir oturum oluşturmak isteyip istemediğini belirtmek için kullanılmaktadır. Özetle bağlantının mevcut oturumla mı devam etmesini veya her bağlantıda yeni bir oturum mu açılması istendiğinin kararıdır.

  • Keep Alive in ms : Bu süre client ile MQTT broker arasında mesaj göndermeden bağlantının açık kalabilieceği maksimum süreyi belirtmektedir.

  • Havuz büyüklüğü : Alınan mesajların parçacıklarının büyüklüğünü belirtmektedir.

Projemiz için MQTT bağlantımız eklendikten sonra "development" modülünde bulunan " cihazlar " menüsüne gelerek ilgili bağlantı için cihaz tanımlaması yapılır . Bakınız ; Cihazlar

Burada önemli olan Subscribe Expr. Type alanının "custom" olarak seçilerek, aşağıdaki gibi kodlanmasıdır.

// return {'SAMPLE_VALUE_01': JSON.parse(message.payload).i};

Publish Custom Expression alanıda yine "custom" olarak seçilmeli ve aşağıdaki gibi kodlanmalıdır.

//return {
    topic: "A/B",
    qos:0,
    retain:false,
    payload: JSON.stringify({"i":setValueRequests[0].value})
}

İlgili tüm işlemler tamamlandıktan sonra MQTT ayarları tamamlanmış olacaktır.

Bağlantılar menüsünde seçeceğimiz bir proje için yeni bir bağlantı ekleme adımı add ikonu yardımı ile yapılmaktadır. Resim 2'de gösterildiği gibi açılan bağlantı ekleme menüsünde proje seçilir, ad ve açıklamalar yazılır, ip ve port eklendikten sonra protokol olarak "MQTT" seçilir.

Cihazlar menüsünde sağ üst köşede bulunan add cihaz ikonu yardımı ile Resim 3'de görüldüğü gibi MQTT protokolü ile hazırlanmış olan bağlantı seçilerek ana cihaz kaydı oluşturulur.

MQTT bağlantılı cihaz ana kaydı oluşturulduktan sonra ilgili kayıt seçilerek menünün alt kısmında bulunan "veri blokları" alanındaki veri bloğu ekleme ikonu yardımı ile Resim 4'de görüldüğü gibi detay veri girişleri yapılmalıdır.

https://mqtt.org/
Resim 1 : MQTT Protocolü
Resim 2 : Bağlantı Ekleme
Resim 3 Cihaz Ekleme
Resim 4 veri bloğu ekleme