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 programında indirmek istediğiniz bileşenleri seçin ve next seçeneğine tıklayın.
Programın kurulacağı dosya yolunu seçin ve install seçeneğine tıklayın.
Kurulum tamamlandı penceresinde finish seçeneğine tıklayın ve ekrandan çıkın.
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” 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.)
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.
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.
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.
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.
Ç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.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.
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.
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.
Mikrodev MQTT Client aşağıdaki veri türlerini desteklemektedir.
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.
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.
Açılan ekran üzerinden Projeler -> Uygulamaları seçin ve sağ altta yer alan seç yazısına tıklayın.
Açılan ekrandan projenin adını ve proje dosyasının kaydolacağı dosya konumu seçin. Next yazısına tıklayın.
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.
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.
Ö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.
Yeni hazırlanan projenin Veritabanı ile bağlantısının kurulup kurulmadığı bilgisi ekranda çıkan bilgilendirme ekranından kontrol edilmektedir.
Yeni oluşturduğumuz proje ismi projeler altında gözükecektir.
SCADA üzerinden MQTT Client kanalı kullanarak değer yayınlamak için öncelikle etiket kanal editörünü açın.
None yazan ifadenin üzerine sağ tıklayın ve yeni kanal seçeneğini seçin.
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.
Kanal ayarlarını Şekil 2 de anlatıldığı gibi ayarlayın.
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.
Açılan pop up ekranında yeni bir etiket adı girin ve ok yazısına tıklayın.
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.
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.
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.
Sayfaya SCADA bileşeni ekleyebilmek için Projeler yazısının yanında yer alan paneli ikiye böl simgesine tıklayın.
Sol kenarda ikinci bir projeler yazısı belirecektir buradan projeler yazısına tıklayarak SCADA Bileşenleri seçeneğini seçin.
SCADA bileşenleri içinden display kategorisini bulun ve herhangi bir display a tıklayın.
Sağ tarafta yer alan antetli kağıdın herhangi bir noktasına bırakın.
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.
Display üzerinden girilen değeri görebilmek için etiketler kısmında yer alan yazı etiketi kısmından aynı etiketin girilmesi gerekmektedir.
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.
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.
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
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.
Açılan ekrandan değer girin ve tamam a basın.
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.
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.
Broker ile bağlantısının kurulduğunu açılan ekranda connected yazısından takip edebilirsiniz.
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.
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.)
Client ekranından gönderilen her değeri MQTT Box uygulamasından takip edin.
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.
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.
Açılan ekran üzerinden Projeler -> Uygulamaları seçin ve sağ altta yer alan seç yazısına tıklayın.
Açılan ekrandan projenin adını ve proje dosyasının kaydolacağı dosya konumu seçin. Next yazısına tıklayın.
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.
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.
Ö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.
Yeni hazırlanan projenin Veritabanı ile bağlantısının kurulup kurulmadığı bilgisi ekranda çıkan bilgilendirme ekranından kontrol edilmektedir.
Yeni oluşturduğumuz proje ismi projeler altında gözükecektir.
SCADA üzerinden MQTT Client kanalı kullanarak yayınlanan bir değere abone olmak için öncelikle etiket kanal editörünü açın.
None yazan ifadenin üzerine sağ tıklayın ve yeni kanal seçeneğini seçin.
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.
Kanal ayarlarını Şekil 2 de anlatıldığı gibi ayarlayın.
Yeni oluşturulan MQTT kanalının üzerine gelin, sağ tık yapın. Yeni etiket seçeneğine tıklayın.
Açılan pop up ekranında yeni bir etiket adı girin ve ok yazısına tıklayın.
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.
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.
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.
Sayfaya SCADA bileşeni ekleyebilmek için Projeler yazısının yanında yer alan paneli ikiye böl simgesine tıklayın.
Sol kenarda ikinci bir projeler yazısı belirecektir buradan projeler yazısına tıklayarak SCADA Bileşenleri seçeneğini seçin.
SCADA bileşenleri içinden display kategorisini bulun ve herhangi bir display a tıklayın.
Sağ tarafta yer alan antetli kağıdın herhangi bir noktasına bırakın.
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.
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.
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
Araçlar -> Start ViewPLUS 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
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.
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.
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.
Broker ile bağlantısının kurulduğunu açılan ekranda connected yazısından takip edebilirsiniz.
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.
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
Buradaki değerler girilip publish yazısına tıklandığında ViewPLUS Client ekranında gönderilen değerleri display üzerinden görebilmekteyiz.
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.