Ana içeriğe geç

ViewPLUS SCADA MQTT Kanalı Uygulama Notu

Mosquitto Kurulumu

ViewPLUS SCADA yazılımı MQTT üzerinden haberleşebilmesi için MQTT broker ile SCADA sunucusu aynı bilgisayar üzerinden başlatılmalıdır.

Bu yüzden SCADA sunucusunun çalışacağı bilgisayara öncelikle MQTT broker ı olan Mosquitto programının kurulması gerekmektedir.

Mosquitto broker ı indirmek için buraya tıklayınız.

İndirme bağlantısında yer alan linklerden bilgisayarınıza uygun olana tıklayın ve indirilen exe uygulamasını çalıştırın.

Mosquitto kurulum sihirbazında next seçeneğine tıklayın.

mosquitto_image1

Mosquitto programında indirmek istediğiniz bileşenleri seçin ve next seçeneğine tıklayın.

mosquitto_image2

Programın kurulacağı dosya yolunu seçin ve install seçeneğine tıklayın.

mosquitto_image3

Kurulum tamamlandı penceresinde finish seçeneğine tıklayın ve ekrandan çıkın.

mosquitto_image4

Kurulum tamamlandıktan sonra mosquitto brokerı nı çalıştırmadan önce programın konfigürasyon ayarlarının yapılması gerekmektedir.

Mosquitto Konfigürasyon Ayarları

Programın kurulmuş olduğu dosya yoluna gidilir.

Kurulum esnasında dosya yolunu değiştirmediyseniz Yerel Disk (C:) nin içinde Program Files altında yer almaktadır.

mosquitto_image5

“mosquitto” adındaki dosya klasörünü açın, klasör içerisinde yer alan mosquitto.conf isimli dosyayı Notepad ++ uygulaması ile düzenle yazısına tıklayın. (Notepad++ uygulamasının bilgisayarınızda kurulu olması gerekmektedir.)

mosquitto_image6

Açılan dosya içerisinden Security başlığını bulun ve bu başlık altında yer alan

#allow_anonymous false ifadesini silin.

Bir satır boşluk bırakarak

allow_anonymous true
listener 1883

ifadesini ekleyin.

mosquitto_image7

Böylelikle MQTT için tanımlanan 1883 default portu broker ın ayarlarından da tanımlamış olduk.

Düzenlemiş olduğumuz dosyayı kaydedip, dosyayı kapatın.

Mosquitto Broker Çalıştırma

Konfigürasyon ayarlarını yaptıktan sonra komut satırını yönetici olarak çalıştırın.

Başlat -> Arama çubuğuna cmd yazın -> En üstte çıkan komut istemi uygulaması üzerine gelin ve sağ tıklayın -> Yönetici olarak çalıştır seçeneğine tıklayın.

mosquitto_image78

Ekranda açılan pencerede evet seçeneğine tıklayarak devam edin.

Açılan komut penceresinde

net start mosquitto

komutunu yazın ve enter a tıklayın.

Mosquitto Broker hizmeti başlatılıyor.
Mosquitto Broker hizmeti başarıyla başlatıldı yazısı ekranda yazmalıdır.

mosquitto_image79

Görev yöneticisini açın ve arka plan işlemleri kısmından mosquitto uygulamasını bulun. Bilgisayar üzerinden mosquitto broker ının açıldığından emin olun.

mosquitto_image10

Çalışan Mosquitto Broker Kapatma

Bilgisayar üzerinde çalışan mosquitto broker ı kapatmak için iki yol bulunmaktadır.

Birinci yol: Görev yöneticisi üzerinden mosquitto broker uygulamasını kapatabilirsiniz. Bunun için aşağıdaki adımları takip edin.

Görev yöneticisini açın, arka plan işlemleri kısmından mosquitto.exe uygulamasını bulun.

mosquitto_image10

mosquitto.exe uygulamasının üzerine gelin sağ tıklayın görevi sonlandır seçeneğini seçin.

İkinci yol: Komut satırı üzerinden mosquitto broker uygulamasını kapatabilirsiniz. Bunun için aşağıdaki adımları takip edin.

Başlat -> Arama çubuğuna cmd yazın -> En üstte çıkan komut istemi uygulaması üzerine gelin ve sağ tıklayın -> Yönetici olarak çalıştır seçeneğine tıklayın.

mosquitto_image78

Ekranda açılan pencerede evet seçeneğine tıklayarak devam edin.

Açılan komut penceresinde

net stop mosquitto

komutunu yazın ve enter a tıklayın.

Mosquitto Broker hizmeti durduruluyor.
Mosquitto Broker hizmeti başarıyla durduruldu yazısı ekranda yazmalıdır.

mosquitto_image81

ViewPLUS SCADA Etiket Kanal Editörü

MQTT Client Kanal Tanımlamaları

Mikrodev Client, yayıncı birimlerinden gelen mesajları alır ve abone olunan birimlere iletir. Mesaj gönderirken, mesajı alacak olan müşteri birimlerini filtrelemek için konuları kullanır.

Mikrodev Client'ın çalışma yapısı aşağıdaki resimde anlatılmaktadır.

mosquitto_image14

Şekil 1: Mikrodev MQTT Client Genel Yapısı

Mikrodev MQTT Client aşağıdaki veri türlerini desteklemektedir.

mosquitto_image82

mosquitto_image83

Şekil 2: MQTT Kanal Tanımlamaları

MQTT kanalında aşağıdaki ayarların yapılması gerekmektedir.

Payload Format: 1
ServerIP: 127.0.0.1
ServerPort: 1883
Listen Port: 1081
Clean Session: 115200
Socket Type: Unencrypted
KeepAlive: 6000

SCADA Üzerinden Bir Değer Yayınlama (Publish Etme)

Teçhizat: Cihaz ID bilgisi buraya girilir. (Bu kısım boşta bırakılabilir.)

Topic: Yayın yapacağı konu bu kısma girilir.

Sub/Pub: Publish, Subscribe veya her ikisi birden seçimleri buradan yapılır. Bu başlık altında değer yayınlama anlatıldığı için Publish seçeneği seçilmelidir.

Variable Name: Değişken adı buraya yazılır. Burada bahsi geçen değişken adı, PLC projesindeki etiketin hat etiketi ismidir.

Variable Type: Değişken tipi buradan seçilir. ViewPLUS SCADA sadece BOOL ve DBL değişken tiplerini desteklemektedir.

VarSize: Değişken tipine göre değişken boyutunu SCADA programı otomatik atar.

Not: ViewPLUS SCADA editörü etiket türü olarak iki farklı değişken tipini desteklemektedir. Bunlar Boolen ve Double veri tipleridir.

mosquitto_image84

Şekil 3: Yayın Yapma Etiket Tanımlamaları

SCADA Üzerinden Bir Değer Yayınlama (Publish Etme) Uygulama Örneği

Not: Bu örnekte MQTT Box programı kullanarak simülasyon yapılacaktır.

Windows için MQTT Box programını indirmek için buraya tıklayınız.

ViewPLUS SCADA editörünü açın. Dosya -> Yeni Dosya ya da Proje seçeneğine tıklayın. Yeni bir proje oluşturun.

mosquitto_image85

Açılan ekran üzerinden Projeler -> Uygulamaları seçin ve sağ altta yer alan seç yazısına tıklayın.

mosquitto_image86

Açılan ekrandan projenin adını ve proje dosyasının kaydolacağı dosya konumu seçin. Next yazısına tıklayın.

mosquitto_image87

Veritabanı ayarlarından PostgreSQL kurulum aşamasında belirlediğiniz şifreyi Veritabanı kullanıcı şifresi kısmına girin ve bağlantıyı test et yazısına tıklayın. Şifreyi doğru girdiğiniz takdirde ekranda Ok yazısı belirecektir. Ok yazısını gördükten sonra next yazısına tıklayın.

mosquitto_image88

Görünüm ayarları sayfasından SCADA tasarım sayfası ayarlarını yapabilirsiniz. Bu kısım proje oluşturulduktan sonra da yapılabilmektedir. Ayarlamaları yaptıktan sonra next yazısına tıklayın.

mosquitto_image89

Özet ekranından proje ile ilgili genel bilgiler yer almaktadır finish yazısına tıkladıktan sonra yeni bir proje oluşturulmuş olmaktadır.

mosquitto_image90

Yeni hazırlanan projenin Veritabanı ile bağlantısının kurulup kurulmadığı bilgisi ekranda çıkan bilgilendirme ekranından kontrol edilmektedir.

mosquitto_image91

Yeni oluşturduğumuz proje ismi projeler altında gözükecektir.

mosquitto_image92

SCADA üzerinden MQTT Client kanalı kullanarak değer yayınlamak için öncelikle etiket kanal editörünü açın.

mosquitto_image93

None yazan ifadenin üzerine sağ tıklayın ve yeni kanal seçeneğini seçin.

mosquitto_image94

Açılan pop up ekranından kanal adını girin, protokol tipi kısmından ise MQTT_CLIENT seçeneğini seçin. Ok yazısına tıklayın.

mosquitto_image95

Kanal ayarlarını Şekil 2 de anlatıldığı gibi ayarlayın.

mosquitto_image96

Oluşturulan bu kanal altında yeni bir etiket eklemek için; hazırlanan MQTT kanalının üzerine gelin, sağ tık yapın. Yeni etiket seçeneğine tıklayın.

mosquitto_image97

Açılan pop up ekranında yeni bir etiket adı girin ve ok yazısına tıklayın.

mosquitto_image98

Oluşturulan etiketi kanal altında görüntülemek için kanal adının sol tarafında yer alan ok tuşuna basın. Burada kanal altında yer alan etiketler yer almaktadır. Hazırlanan etiketin üzerine tıklayın.

Başlık 2.1.1 de anlatılana göre etiket tanımlamalarını yapın. Yapılan değişikliklerin kaydedilmesi için CTRL + S tuşuna veya etiket ekranının altında yer alan etiket verisini kaydet yazısına tıklayın. Değişiklik kaydedildiğinde etiket adının sol kenarında beliren ünlem simgesi kaybolacaktır.

mosquitto_image99

SCADA programı üzerinden değer yayınlamak için SCADA sayfasına display bileşeni eklenmelidir.

Sol kenarda yer alan SCADA editörü yazısına tıklayın.

mosquitto_image100

Proje adının altında Sca yazısı bulunmaktadır, bu yazının sol kenarındaki ok a tıklayın. Burada intro.sca ifadesi yer alacaktır. Bu dosya bizim SCADA ekranlarını tasarladığımız her projede default olarak gelen SCADA sayfasıdır. intro.sca ifadesi üzerine gelin ve çift tıklayın Bu işlem sonrasında sağ kenarda antetli kağıt açılacaktır.

mosquitto_image101

Sayfaya SCADA bileşeni ekleyebilmek için Projeler yazısının yanında yer alan paneli ikiye böl simgesine tıklayın.

mosquitto_image102

Sol kenarda ikinci bir projeler yazısı belirecektir buradan projeler yazısına tıklayarak SCADA Bileşenleri seçeneğini seçin.

mosquitto_image103

SCADA bileşenleri içinden display kategorisini bulun ve herhangi bir display a tıklayın.

mosquitto_image104

Sağ tarafta yer alan antetli kağıdın herhangi bir noktasına bırakın.

mosquitto_image105

Bu display üzerinden değer yayınlamak için sağ tarafta yer alan nesne özellikleri kısmından olaylar ifadesini bulun.

Olay Tipi: Klavyeden değer girebilmek için bu kısım tuş basıldı seçilmelidir.

Olay Aksiyonu: Burada değeri yükle seçilmelidir.

Hedef Olay Etiketi: Mqtt kanalında hazırladığımız etiket bu kısımda seçilmelidir. Etiket seçimi yapabilmek için hedef olay etiketi yazısının yanında yer alan büyüteç simgesine tıklanmalıdır.

mosquitto_image106

Display üzerinden girilen değeri görebilmek için etiketler kısmında yer alan yazı etiketi kısmından aynı etiketin girilmesi gerekmektedir.

mosquitto_image107

Sunucuyu başlatmadan önce düzenleme yapılan tüm ekranları kaydedip kapatın ve bilgisayarda MQTT broker ın çalıştığından emin olun. (Mosquitto.exe çalışıyor olması gerekmektedir.)

Araçlar -> Sunucuyu başlata tıklayın.

mosquitto_image108

Projede ilk defa sunucuyu başlat seçeneği seçildiğinde Veritabanı ayarları ekranı gelmektedir. PostgreSQL kurulumu sırasında oluşturduğunuz şifreyi Veritabanı kullanıcı şifresi kısmına girin ve bağlantıyı test et ifadesine tıklayın.

Sunucu programının çalıştığını göreceksiniz.

mosquitto_image109

Araçlar -> Start View PLUS Client yazısına tıklayın.

Default olarak gelen client oturum açma bilgileri aşağıda gibidir.

Kullanıcı: admin
Şifre: mikrodev
Sunucu Adresi: 127.0.0.1:3344

mosquitto_image110

Yukarıdaki bilgiler girilip oturum aç yazısına tıklanıldığında tasarımı yapılan sayfanın ekrana geldiğini göreceksiniz. Display üzerinden değer gönderebilmek için display üzerine gelip sağ tık yapın. Değer ayarla ifadesine tıklayın.

mosquitto_image111

Açılan ekrandan değer girin ve tamam a basın.

mosquitto_image112

Publish edilen değerleri görebilmek için bu uygulamada MQTT Box programı kullanılacaktır.

MQTT Box uygulamasını açın. Create MQTT Client ifadesine tıklayın.

mosquitto_image113

MQTT Client Name: İstemcinize bir isim verin.

Protocol: mqtt/tcp seçin.

Host: Local bilgisayarda broker açık olduğu için 127.0.0.1:1883 ifadesini yazın.

Save yazısına tıklayın.

mosquitto_image114

Broker ile bağlantısının kurulduğunu açılan ekranda connected yazısından takip edebilirsiniz.

mosquitto_image115

SCADA tarafından yayınlanan değerleri görebilmek için Topic to subscribe kısmından veya üst tarafta yer alan add subscriber kısmı kullanılmaktadır.

mosquitto_image116

Yayın için SCADA editöründe oluşturulan topic adını girin ve subscribe yazısına tıklayın. (QoS 0 seçili kalmalıdır.)

mosquitto_image117

Client ekranından gönderilen her değeri MQTT Box uygulamasından takip edin.

mosquitto_image51

SCADA tarafından yayın yapılan değerin payload yapısı: {"142536": { "deger": {"V": 3640.0000 }} }

Burada yer alan 142536 ifadesi, etiket tanımlamalarında girilen teçhizat numarası;

Not: Etiket tanımlamalarında teçhizat numarası kısmı boş bırakılırsa değerin payload yapısı:
{"": { "deger": {"V": 3640.0000 }} } şeklinde olacaktır.

deger ifadesi, etiket tanımlamalarında girilen variable name (değişken adı);

V: 3640.0000 ifadesi ise yayın yapılan değeri ifade etmektedir.

SCADA Üzerinden Bir Değere Abone Olma (Subscribe Olma)

Teçhizat: Cihaz ID bilgisi buraya girilir. (Bu kısım boşta bırakılabilir.)

Topic: Abone olunacak konu bu kısma girilir.

Sub/Pub: Publish, Subscribe veya her ikisi birden seçimleri buradan yapılır. Bu başlık altında değere abone olma anlatıldığı için Subscribe seçeneği seçilmelidir.

Variable Name: Değişken adı buraya yazılır. Burada bahsi geçen değişken adı, PLC projesindeki etiketin hat etiketi ismidir.

Variable Type: Değişken tipi buradan seçilir. ViewPLUS SCADA sadece BOOL ve DBL değişken tiplerini desteklemektedir.

VarSize: Değişken tipine göre değişken boyutunu SCADA programı otomatik atar.

Not: ViewPLUS SCADA editörü etiket türü olarak iki farklı değişken tipini desteklemektedir. Bunlar Boolen ve Double veri tipleridir.

mosquitto_image119

Şekil 4: Abone Olma Etiket Tanımlamaları

SCADA Üzerinden Bir Değere Abone Olma (Subscribe Olma) Uygulama Örneği

Not: Bu örnekte MQTT Box programı kullanarak simülasyon yapılacaktır.

Windows için MQTT Box programını indirmek için buraya tıklayınız.

ViewPLUS Scada editörünü açın. Dosya -> Yeni Dosya ya da Proje seçeneğine tıklayın. Yeni bir proje oluşturun.

mosquitto_image120

Açılan ekran üzerinden Projeler -> Uygulamaları seçin ve sağ altta yer alan seç yazısına tıklayın.

mosquitto_image121

Açılan ekrandan projenin adını ve proje dosyasının kaydolacağı dosya konumu seçin. Next yazısına tıklayın.

mosquitto_image122

Veritabanı ayarlarından PostgreSQL kurulum aşamasında belirlediğiniz şifreyi Veritabanı kullanıcı şifresi kısmına girin ve bağlantıyı test et yazısına tıklayın. Şifreyi doğru girdiğiniz takdirde ekranda Ok yazısı belirecektir. Ok yazısını gördükten sonra next yazısına tıklayın.

mosquitto_image123

Görünüm ayarları sayfasından Scada tasarım sayfası ayarlarını yapabilirsiniz. Bu kısım proje oluşturulduktan sonra da yapılabilmektedir. Ayarlamaları yaptıktan sonra next yazısına tıklayın.

mosquitto_image124

Özet ekranından proje ile ilgili genel bilgiler yer almaktadır finish yazısına tıkladıktan sonra yeni bir proje oluşturulmuş olmaktadır.

mosquitto_image125

Yeni hazırlanan projenin Veritabanı ile bağlantısının kurulup kurulmadığı bilgisi ekranda çıkan bilgilendirme ekranından kontrol edilmektedir.

mosquitto_image126

Yeni oluşturduğumuz proje ismi projeler altında gözükecektir.

mosquitto_image127

SCADA üzerinden MQTT Client kanalı kullanarak yayınlanan bir değere abone olmak için öncelikle etiket kanal editörünü açın.

mosquitto_image128

None yazan ifadenin üzerine sağ tıklayın ve yeni kanal seçeneğini seçin.

mosquitto_image129

Açılan pop up ekranından kanal adını girin, protokol tipi kısmından ise MQTT_CLIENT seçeneğini seçin. Ok yazısına tıklayın.

mosquitto_image130

Kanal ayarlarını Şekil 2 de anlatıldığı gibi ayarlayın.

mosquitto_image131

Yeni oluşturulan MQTT kanalının üzerine gelin, sağ tık yapın. Yeni etiket seçeneğine tıklayın.

mosquitto_image132

Açılan pop up ekranında yeni bir etiket adı girin ve ok yazısına tıklayın.

mosquitto_image133

Oluşturulan etiketi kanal altında görüntülemek için kanal adının sol tarafında yer alan ok tuşuna basın. Burada kanal altında yer alan etiket yer almaktadır. Hazırlanılan etiketin üzerine tıklayın.

Başlık 2.1.1 de anlatılana göre etiket tanımlamaları yapın. Yapılan değişikliklerin kaydedilmesi için CTRL + S tuşuna veya etiket ekranının altında yer alan etiket verisini kaydet yazısına tıklayın. Değişiklik kaydedildiğinde etiket adının sol kenarında beliren ünlem simgesi kaybolacaktır.

mosquitto_image134

SCADA programı üzerinden abone olunan değeri takip edebilmek için SCADA sayfasına display bileşeni eklenmelidir.

Sol kenarda yer alan SCADA editörü yazısına tıklayın.

mosquitto_image135

Proje adının altında Sca yazısı bulunmaktadır, bu yazının sol kenarındaki ok a tıklayın. Burada intro.sca ifadesi yer alacaktır. Bu dosya bizim SCADA ekranlarını tasarladığımız her projede default olarak gelen SCADA sayfasıdır. intro.sca ifadesi üzerine gelin ve çift tıklayın. Bu işlem sonrasında sağ kenarda antetli kağıt açılacaktır.

mosquitto_image136

Sayfaya SCADA bileşeni ekleyebilmek için Projeler yazısının yanında yer alan paneli ikiye böl simgesine tıklayın.

mosquitto_image137

Sol kenarda ikinci bir projeler yazısı belirecektir buradan projeler yazısına tıklayarak SCADA Bileşenleri seçeneğini seçin.

mosquitto_image138

SCADA bileşenleri içinden display kategorisini bulun ve herhangi bir display a tıklayın.

mosquitto_image139

Sağ tarafta yer alan antetli kağıdın herhangi bir noktasına bırakın.

mosquitto_image140

Bu display üzerinden abone olunan değeri takip etmek için etiketler kısmında yer alan yazı etiketi kısmından abone olmak için hazırlanan etiket girilmelidir.

mosquitto_image141

Sunucuyu başlatmadan önce tüm ekranları kaydedip kapatın ve bilgisayarda MQTT broker ın çalıştığından emin olun. (Mosquitto.exe çalışıyor olması gerekmektedir.)

Araçlar -> Sunucuyu başlata tıklayın.

mosquitto_image142

Projede ilk defa sunucuyu başlat seçeneği seçildiğinde Veritabanı ayarları ekranı gelmektedir. PostgreSQL kurulumu sırasında oluşturduğunuz şifreyi Veritabanı kullanıcı şifresi kısmına girin ve bağlantıyı test et ifadesine tıklayın.

Sunucu programının çalıştığını göreceksiniz

mosquitto_image143

Araçlar -> Start ViewPLUS Client yazısına tıklayın.

mosquitto_image144

Default olarak gelen client oturum açma bilgileri aşağıda gibidir.

Kullanıcı: admin
Şifre: mikrodev
Sunucu Adresi: 127.0.0.1:3344

mosquitto_image145

Yukarıdaki bilgileri girip oturum aç yazısına tıkladığınızda tasarımını yaptığımız sayfanın ekrana geldiğini göreceksiniz.

mosquitto_image146

Bu uygulamada abone olunan değerler MQTT Box programı üzerinden yayınlama yapılacaktır.

MQTT Box uygulamasını açın. Create MQTT Client ifadesine tıklayın.

mosquitto_image147

MQTT Client Name: İstemcinize bir isim verin.

Protocol: mqtt/tcp seçin

Host: Local bilgisayarda broker açık olduğu için 127.0.0.1:1883 ifadesini yazın.

Save yazısına tıklayın.

mosquitto_image148

Broker ile bağlantısının kurulduğunu açılan ekranda connected yazısından takip edebilirsiniz.

mosquitto_image149

SCADA'ya değer yayınlamak için Topic to publish kısmından veya üst tarafta yer alan add Publisher kısmı kullanılmaktadır.

mosquitto_image150

Topic to publish kısmına Scada editörü üzerinden abone olunan konu girilmelidir.

QoS değeri 0 olmalıdır.

Payload Type kısmı Strings / JSON / XML / Characters seçilmelidir.

Payload yapısı {"1111": { "termometre1": {"V": 23.0000 }} } şeklinde olmalıdır.

Burada yer alan 1111 ifadesi Scada editörü üzerinden girilen teçhizat numarası,

termometre1 ifadesi Scada editörü üzerinden girilen variable name (değişken adı),

V: 23.0000 ifadesi ise etikete yayın yapılan değeri ifade etmektedir

mosquitto_image151

Buradaki değerler girilip publish yazısına tıklandığında ViewPLUS Client ekranında gönderilen değerleri display üzerinden görebilmekteyiz.

mosquitto_image152

Not: Örnekte teçhizat numarası girilmeden Scada üzerinden bir değere abone olunacak ise

Örnek payload yapısı: {"": { "termometre1": {"V": 23.0000 }} } şeklinde olmalıdır.

mosquitto_image153