EOS MODBUS Nedir?

EOS MODBUS, EOS tarafından kullanılan ve özellikle EOS donanımları ile EOS yazılımları arasında veri alışverişini kolaylaştırmak amacıyla geliştirilmiş bir iletişim protokolüdür.

Protokol, standart MODBUS TCP iletişim yapısını temel alır. Ancak EOS sistemlerinde kullanılacak işlemler sınırlandırılarak daha sade bir haberleşme arayüzü oluşturulmuştur.

Bu yaklaşım sayesinde bir EOS cihazındaki register verileri, Ethernet ağı üzerinden başka bir EOS sistemi veya uygun bir MODBUS istemcisi tarafından okunabilir. Desteklenen yazma işlemleri ile register değerleri cihaza aktarılabilir.

EOS MODBUS, genel amaçlı bütün MODBUS fonksiyonlarını destekleyen yeni bir MODBUS uygulaması olmak yerine, EOS cihazlarının temel veri alışverişi ihtiyaçlarına yönelik optimize edilmiş bir MODBUS TCP alt kümesi olarak değerlendirilmelidir.

EOS MODBUS Haberleşme Yapısı

EOS MODBUS haberleşmesinde bir sistem MODBUS Master / istemci olarak çalışırken, EOS cihazı veya sistemi EOS MODBUS Server olarak çalışabilir.

Haberleşme TCP/IP ağı üzerinden gerçekleştirilir. EOS MODBUS için kullanılan standart TCP portu 502'dir.

MODBUS Master / İstemci

EOS cihazından veri okumak veya cihaza veri yazmak isteyen uygulama veya sistemdir. İstek mesajlarını oluşturur ve cevapları işler.

EOS MODBUS Server

EOS cihazı veya EOS sistemi üzerinde çalışan MODBUS sunucusudur. Register değerlerini istemciye sunar ve desteklenen yazma işlemlerini gerçekleştirir.

TCP / Ethernet

EOS MODBUS haberleşmesi yalnızca TCP/IP üzerinden gerçekleştirilir. Varsayılan TCP portu 502'dir.

Basitleştirilmiş Haberleşme

EOS sistemlerinin temel veri okuma ve yazma ihtiyaçları için yalnızca iki Function Code desteklenir.

EOS Yazılımları İçin EOS Veri Adresleme (E#)

EOS SCADA içerisindeki EOS veri noktalarına erişmek için veri adresi E# prefix'i ile başlar. EOS register numarası, E# prefix'inden sonra belirtilir.

E#EOS_REGISTER_NO

Örneğin EOS register numarası 7 olan bir veri için:

E#7

EOS istemcisi veri adresinin sayısal bir register numarası içermesini bekler.

EOS MODBUS Özellikleri

MODBUS TCP

EOS MODBUS yalnızca TCP/IP (Ethernet) üzerinden çalışan, EOS sistemlerine özel olarak sadeleştirilmiş bir MODBUS haberleşme yapısıdır.

Basitleştirilmiş Veri Okuma

EOS cihazlarından 16 bit holding register verilerinin okunması için MODBUS Function Code 03 desteklenir.

Basitleştirilmiş Veri Yazma

Birden fazla 16 bit register değerinin tek bir istek içerisinde yazılması için Function Code 16 desteklenir.

Standart Register Yapısı

EOS sistemlerinde register adresleri 1 tabanlı olarak kullanılır ve EOS MODBUS uygulamalarında 1–10000 arasındaki register adresleri kullanılabilir.

EOS Donanımları İçin Tasarlandı

EOS MODBUS, EOS donanımları ile haberleşmeyi mümkün olduğunca standart ve kolay anlaşılır bir MODBUS formatında gerçekleştirmek amacıyla geliştirilmiştir.

Sade Haberleşme Yapısı

Çok sayıda MODBUS fonksiyonu yerine temel veri okuma ve yazma işlemlerine odaklanan sade bir haberleşme yapısı kullanılır.

EOS MODBUS Server

EOS cihazları EOS MODBUS Server olarak çalışabilir. Harici bir MODBUS istemcisi, TCP/IP üzerinden cihazın tanımlanmış register değerlerine erişebilir.

Kontrollü Veri Erişimi

Haberleşme yalnızca desteklenen MODBUS fonksiyonları ve tanımlanan register alanları üzerinden gerçekleştirilir.

Register Adresleme

EOS MODBUS sistemlerinde veriler 16 bitlik register'lar üzerinden adreslenir. EOS MODBUS'ta register adresleri 1 tabanlı olarak kullanılır.

EOS MODBUS uygulamalarında kullanılabilen register adresleri 1 ile 10000 arasındadır. Bu yapı, klasik MODBUS holding register adresleme yaklaşımının sadeleştirilmiş bir kullanımını sağlar.

Register Adres Örneği

EOS MODBUS Adresi Açıklama
1 İlk register
2 2. register
10 10. register
100 100. register
1000 1000. register
10000 10000. register

Not: EOS MODBUS adresleri kullanıcı açısından 1 tabanlı olarak ifade edilir. MODBUS mesajının kendi protokol alanlarında ise register başlangıç adresi 16 bitlik bir değer olarak taşınır.

Desteklenen Function Code'lar

EOS MODBUS, standart MODBUS protokolünde bulunan çok sayıdaki Function Code'un tamamını desteklemez. EOS sistemlerinde temel veri alışverişi için iki Function Code desteklenmektedir.

Function Code 03

Read Holding Registers

EOS cihazındaki bir veya daha fazla Holding Register değerini okumak için kullanılır.

  • Başlangıç adresi: 1 – 65535
  • Okunacak register sayısı: 1 – 125
  • Veri tipi: 16 bit unsigned register
  • Cevapta register değerleri ikişer byte olarak gönderilir.

Function Code 16

Write Multiple Registers

EOS cihazındaki birden fazla register'a veri yazmak için kullanılır.

  • Başlangıç adresi: 1 – 65535
  • Yazılacak register sayısı: 1 – 123
  • Her register değeri 2 byte olarak gönderilir.
  • Tek bir istek içerisinde birden fazla register yazılabilir.

Function Code 03 – Register Okuma

Function Code 03, EOS MODBUS cihazından Holding Register değerlerini okumak için kullanılır.

İstemci, başlangıç register adresini ve okunacak register sayısını gönderir. EOS MODBUS Server ise istenen register değerlerini cevap mesajı içerisinde gönderir.

İstek Mesajı

  • Transaction ID – 2 byte
  • Protocol ID – 2 byte
  • Length – 2 byte
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Start Address – 2 byte
  • Quantity of Registers – 2 byte

Cevap Mesajı

  • Transaction ID – 2 byte
  • Protocol ID – 2 byte
  • Length – 2 byte
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Byte Count – 1 byte
  • Register Data – N × 2 byte

Örneğin başlangıç adresi 100 olan üç register okunmak istendiğinde, istemci adres 100'den başlayarak 100, 101 ve 102 numaralı register'ları talep eder.

Function Code 16 – Register Yazma

Function Code 16, EOS MODBUS cihazındaki birden fazla register'a aynı istek içerisinde veri yazmak için kullanılır.

İstek Mesajı

  • Transaction ID – 2 byte
  • Protocol ID – 2 byte
  • Length – 2 byte
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Start Address – 2 byte
  • Quantity of Registers – 2 byte
  • Byte Count – 1 byte
  • Register Data – N × 2 byte

Cevap Mesajı

  • Transaction ID – 2 byte
  • Protocol ID – 2 byte
  • Length – 2 byte
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Start Address – 2 byte
  • Quantity of Registers – 2 byte

Örneğin adres 200'den başlayarak iki register'a 1234h ve 5678h değerleri yazılabilir.

Desteklenmeyen MODBUS Function Code'lar

EOS MODBUS, EOS cihazları arasındaki haberleşmeyi mümkün olduğunca basit tutmak amacıyla standart MODBUS'taki diğer Function Code'ları desteklemez.

Desteklenmeyen Function Code'lar

Aşağıdaki MODBUS Function Code'ları EOS sistemlerinde desteklenmemektedir:

01, 02, 04, 05, 06, 15, 22, 23 ve diğer tüm Function Code'lar

EOS MODBUS uygulamalarında temel veri alışverişi için yalnızca 03 ve 16 Function Code'ları kullanılmalıdır.

Neden Sadeleştirilmiş Bir MODBUS Protokolü?

MODBUS, endüstriyel otomasyonda uzun yıllardır kullanılan yaygın ve anlaşılması kolay bir haberleşme protokolüdür. Bununla birlikte standart MODBUS çok sayıda farklı Function Code ve farklı veri tipleri için kullanım imkânı sunmaktadır.

EOS MODBUS geliştirilirken amaç, bu geniş özellik setinin tamamını kullanmak yerine EOS cihazlarının ihtiyaç duyduğu temel veri alışverişini mümkün olduğunca basit hale getirmektir.

Böylece EOS donanımlarında ve EOS yazılımlarında uygulanması kolay, mesaj yapısı anlaşılır ve temel register okuma/yazma işlemlerine odaklanan bir haberleşme arayüzü oluşturulmuştur.

Bu nedenle EOS MODBUS'u, standart MODBUS'un yerine geçen genel amaçlı bir protokol olarak değil, EOS sistemleri için tasarlanmış MODBUS TCP tabanlı sadeleştirilmiş bir protokol olarak değerlendirmek daha doğrudur.

EOS MODBUS Nerelerde Kullanılabilir?

EOS MODBUS özellikle EOS cihazları ile veri toplama, izleme ve kontrol yazılımları arasında basit bir Ethernet bağlantısı oluşturulması gereken uygulamalarda kullanılabilir.

  • EOS cihazlarından veri okuma
  • EOS SCADA sistemlerine veri aktarımı
  • EOS cihazlarının register değerlerinin izlenmesi
  • Birden fazla EOS cihazının merkezi olarak izlenmesi
  • EOS cihazlarına register verisi yazılması
  • Test ve devreye alma uygulamaları
  • Endüstriyel veri toplama uygulamaları
  • EOS cihazları arasında basit veri alışverişi

EOS MODBUS Uygulama Notları

  • Bağlantı tipi: MODBUS TCP / Ethernet
  • TCP Portu: 502
  • Veri tipi: 16 bit unsigned register
  • Register adresleme: 1 tabanlı
  • Register adres aralığı: 1 – 65535
  • Okuma: Function Code 03
  • Yazma: Function Code 16
  • Haberleşme uygulamalarında uygun timeout ve tekrar deneme mekanizmalarının kullanılması önerilir.
  • Geçersiz isteklerde EOS MODBUS Server tarafından hata cevabı döndürülebilir.

EOS MODBUS Araçları

EOS MODBUS ile çalışmayı kolaylaştırmak amacıyla geliştirilen yardımcı yazılımlar, test araçları, örnek uygulamalar ve diğer teknik araçlar burada paylaşılacaktır.

Bu bölüm ilerleyen dönemde EOS MODBUS istemci ve sunucu uygulamaları, test araçları, örnek kodlar ve geliştirici yardımcı programları ile genişletilecektir.

Yakında

EOS MODBUS araçları ve örnek uygulamaları hazırlanmakta ve geliştirilmektedir.

EOS MODBUS Kısaca

EOS MODBUS, EOS sistemleri ve EOS donanımları için geliştirilmiş, MODBUS TCP tabanlı sadeleştirilmiş bir endüstriyel haberleşme protokolüdür.

Ethernet üzerinden TCP/IP ile çalışan protokol, temel veri alışverişini Function Code 03 ile register okuma ve Function Code 16 ile çoklu register yazma işlemleriyle sınırlar.

Bu sade yapı sayesinde EOS cihazları ile haberleşen uygulamaların geliştirilmesi ve farklı EOS sistemleri arasında veri alışverişinin gerçekleştirilmesi kolaylaştırılmıştır.