SCADA Modbus RTU-TCP/IP Master
Connection Manager'de yeralan ve Modbus RTU veya Modbus TCP protokollerini destekleyen cihazlarla Master istasyon olarak iletişim kurmayı sağlayan modüldür.
Modbus RTU/TCP Master sekmesinde sol taraftaki beyaz bölgede sağ mouse tuşuna tıklanıp Add komutu verildiğinde yeni bir Network oluşturulur. Bu Network'ün RTU'mu TCP mi olacağı sonraki adımda belirlenecektir.
Modbus RTU Networkleri bilgisayara Com port üzerinden bağlanırlar. Bu sebeple oluşturulabilecek Network sayısını bilgisayardaki Com port sayısı belirler.
Modbus TCP Networkleri sayısında ise bir sınırlama yoktur.
İki farklı Network'ten aynı Cihaza bağlanılamaz.
Cycle, grubun kaç cycle'da bir okunacağını belirler.
Network seçildiğinde ise o Network'te seçilmiş olan en son grup veya istasyona ait Taglar görüntülenir.
Oluşturulan Network bağlantıları Modbus RTU/TCP Master sekmesindeki Toolbar'da bulunan Connect butonu ile yada WinTr Toolbar'da bulunan Connect butonu ile aktifleştirilebilir.
Herhangi bir nedenden dolayı okunamayan Tagların bulunduğu satır arkaplanı kırmızı rengi alır.
Modbus RTU/TCP Master penceresinin altında yeralan Status Strip, Network bağlantısı ile ilgili bilgileri içerir.
Aynı grup içerisindeki tüm Taglar tek seferde okunmaya çalışılır. Eğer girilen adresler birbirlerini takip eden adresler ise tüm liste tek seferde okunur. WinTr SCADA'da Modbus protokolü için tek seferde okunacak byte sayısı 250 ile sınırlıdır. Hesaplanan sorgu boyu StatusStrip'de bulunan "Query Byte Count" ile bildirir. Burada hesapladığınız sorgu boyundan farklı bir sayı görmeniz muhtemel bir hatayı belirtiyor olabilir.
40001 Unsigned int 16
40002 Singned int 32
40006 Signed int 16
40007 Unsigned int 32
1 Sorgu:16 Byte
40001 Singned int 32
30005 Signed int 16
30006 Unsigned int 32
1. Sorgu:2 Byte
2. Sorgu:8 Byte
3. Sorgu:6 Byte
Modbus RTU/TCP Master sekmesindeki Connect butonu ise sadece seçili olan Network'ü aktifleştirir.
Eğer WinTr Toolbar'ındaki Connect butonu ile tüm Networkler aktif edilmiş ise bu butona tekrar basıldığında tüm Network bağlantıları kesilir. Eğer bu şekilde tüm Networkler bağlı iken Modbus RTU/TCP Master toolbar'ındaki Disconnect butonuna basılırsa bağlantı bir an için kesilecek ve tekrar aktifleşecektir.
Eğer Network bağlantısı Modbus RTU/TCP Master sekmesindeki Connect butonu ile aktifleştirilmişse bu butonun yanındaki Disconnect butonu bağlantıyı kesecektir.
Eğer okunan bytelar arasında boşluk varsa bu da olumsuz etki yaratacaktır. Aşağıda, yukarıdaki örneklere göre daha düşük performanslı bir haberleşme tasarımı görülmektedir.
Bu isim daha sonra kullanıcı tarafından değiştirilebilir. Tüm Tag isimleri bir birinden farklı olmak zorundadır.
Value Type Sütunu: Oluşturulan Tag'ın data tipi bu sütunda belirlenir. Buradaki tüm tipler Modbus standardında PLC'ye aktarılır ve PLC'den okunur. Gösterim ise Windows standartında yapılır.
32-Bit Bu sayı tipi single olarak da isimlendirilir.
Günün saati'dir. Bu tipte gün ifadesi kullanılamaz.
Word olarak ifade edilen gün sayısıdır. Tarihin başlangıç değeri "1.1.1990" dır.
Modbus RTU/TCP Master Sekmesi
WinTr, Modbus protokolü ile Master istasyon olarak birden fazla Network'e farklı seri portlardan bağlanabilir. Bu yüzden tüm cihazların aynı Network'te bulunmasına ihtiyaç yoktur. Bu şekilde bağlanan cihaz sayısını artırmak iletişim hızında bir değişikliğe yol açmaz.
Modbus RTU protokolü ile Networklere seri iletişim yolu ile bağlanılır ve bağlanılacak maksimum RTU Network sayısı bilgisayardaki Com port sayısıdır. Com port sayısı USB-Seri port dönüştürücüler ile artırılabilir. Networkler birbirlerinden bağımsız olarak bir sıraya tabi olmaksızın asenkron olarak okunur ve yazılırlar. Fakat Network içerisindeki cihazlar sahip oldukları adreslere göre ardışık olarak okunurlar.
Modbus TCP protokolü ile TCP/IP ağı veya İnternet üzerindeki networklere bağlanılır. Aynı anda bağlanılabilecek maksimum TCP Network sayısı 127 dir. Networkler birbirlerinden bağımsız olarak bir sıraya tabi olmaksızın asenkron olarak okunur ve yazılırlar. Fakat Network içerisindeki cihazlar sahip oldukları adreslere göre ardışık olarak okunurlar.
Modbus protokolüne göre bir Network'te maksimum 247 adet slave cihaz bulunabilir ve bu cihazlara Modbus adreslerine göre ardışık olarak okuma ve yazma yapılır.
Cihazların adresleri kendi içlerinde bulunur ve programcı tarafından herbirinin adresi değerlerinden farklı olacak şekilde cihaza kaydedilir.
Properties, Network ile ilgili bağlantı ayarlamaların yapıldığı pencereyi görüntüler.
Network'e yapılacak bağlantının RTU mu TCP/IP mi olacağı buradaki Select Communication Method kısmında belirlenir.
Modbus RTU bağlantı ayarları
Bu grup, Properties ve Delete olmak üzere iki eleman barındırır.
Properties, istasyonla ilgili ayarları barındran Station Properties penceresini görüntüler.
Tek öğeye sahip bu gurupta Add'e tıklandığında yeni grup oluşturulur.
Modbus RTU bağlantı ayarları:
Serial Port, Network bağlantısı için kullanılacak seri portu belirler.
Baudrate, Parity, Stop Bit ve Flow Control seri bağlantı ile ilgili ayarlardır.
Poll Interval, Cihazlara gönderilen sorguların periyodunu belirler. Cihaza bilgi yazılacağı zaman bu verinin bir önemi yoktur. Yazma komutu alındığında bekleme yapılmaksızın bilgi cihaza transfer edilir.
Time Out, bağlantının kurulması için beklenecek maksimum süredir.
Station Name, istasyona WinTr'de verilecek isimdir.
Station Address, bağlanılacak istasyonun adresidir.
Fail Repeated Queries, haberleşme hatası durumunda sorgunun tekrar edilme sayısını belirler.
Function Code 6 Enable, bazı PLC'lerin bilgi yazma işleminde Fonksiyon Kod 6'yı kullanmamaları sebebiyle bunun yerine aynı görevi yerine getirecek olan Fonksiyon Kod 16'nın kullanılıp kullanılamayacağını belirler.
32 Bit Data Word Order: 32 bit boyunda data 2 adet 16 bitlik Word'ün birleşiminden oluşur. Bu 32 bitlik bilginin bağlantının iki tarafındada aynı sayıyı temsil etmesi için iki tarafta aynı Wordleri High Order ve Low Order olarak değerlendirilmelidir.
Hangi Word'ün High Order, hangi Word'ün Low Order olarak değerlendirileceği burada belirlenir.
Discrate Max. Block Size: Modbus protokolünde 8 ila 2000 bit tek seferde okunabilir. Fakat bazı PLC'lerde bu paket daha küçük olabilir. Bu parametre ile okunacak maksimum paket boyu ayarlanır.
Analog Max. Block Size: Modbus protokolünde 1 ila 125 registers tek seferde okunabilir. Fakat bazı plc'lerde bu paket daha küçük olabilir. Bu parametre ile okunacak maksimum paket boyu ayarlanır.
Modbus RTU/TCP Master Connect butonu
40005 Signed int 16
40006 Unsigned int 32
2. Sorgu:14 Byte
Modbus, birçok PLC(ve bazı Sensörler) tarafından desteklenen standartlaşmış bir endüstriyel iletişim protokolüdür. Bilgi transferi, sorgulamayı yapan Master ve bu sorguya cevap veren Slave cihazlar arasında gerçekleşir.
Adreslerin Hex olarak girilmesi
Adres, başına "h" harfi konulmak suretiyle hex olarak da girilebilir. Örneğin decimal 40001 adres değeri hex gösterimde h9c41 olarak girildiğinde otomatik olarak decimal gösterime dönüştürülecektir.
Modbus'ın Modbus RTU ve Modbus TCP olmak üzere iki ayrı tipte protokolü mevcuttur. Bu protokollerde sırasıyla Seri port ve Ethernet üzerinden yapılan bağlantılar kullanılır. Bu sayfada WinTr SCADA'nın Master istasyon olarak diğer cihazlarla Modbus RTU ve Modbus TCP protokolleri ile nasıl iletişim kurduğu anlatılmıştır.
Modbus standardında Bit ve 16-Bit Word olmak üzere 2 tipte değişken 4 tabloda adreslenir. Bu tabloların adres aralıkları ve okuma-yazma izinleri aşağıda belirtilmiştir.
Her değişken kendi tablosu içinde 0 ile 9998 (Output holding Registerlar için 0-25534) arasında bir Data Adresi ile de ifade edilebilir.
Örneğin 4 değişken tablosundaki ilk değişkenler 0 Data Adresine sahiptir. Fakat bu değere değişkenlerin bulunduğu tabloların başlangıç adresleri(1, 10001, 30001 ve 40001) offset olarak eklendiğinde değişkenlerin adresleri belirlenmiş olur.
Cihazların datasheetlerindeki verilen okuma-yazma adresleri Output Holding Registerlara ait olabilir. Bu nedenle WinTr'de bu bölgeleri okuyup yazmak için kullanılacak taglar, verilen adres numarası 40001'e eklenerek elde edilen adres için oluşturulmalıdır.
Örneğin bir cihazın datasheet'i, okuyacağımız sıcaklık değerinin 100 numaralı adreste bulunduğunu belirtiyorsa öncelikle bu sayının hex mi yoksa decimal olarak mı verildiği tesbit edilmelidir.
Eğer 100 sayısı decimal olarak verilmişse ise bu değişken için 40001+100 = 40101 adresinde tag oluşturulmalıdır.
Eğer 100 sayısı hex olarak verilmişse bunun karşılığı olan 256 sayısı 40001'e eklenerek 40001+256= 40257 adresinde tag oluşturulmalıdır.
Output Holding Registers