Eğitim
Modbus TCP Master
Modbus TCP Master
Eğitim
Modbus TCP Slave
Modbus TCP Slave
Eğitim
Modbus RTU Master
Modbus RTU Master
Eğitim
Modbus RTU Slave
Modbus RTU Slave

RevPi'nizi bir Modbus sunucusu (master) veya bir Modbus istemcisi (slave) olarak kullanabilirsiniz. Bu tür iletimler için, ilgili sanal aygıtlar PiCtory aracılığıyla arayüz olarak kullanılabilir.

Not

RevPi Bookworm Görüntüsünden (08/2025)'den itibaren Modbus sunucusunun varsayılan portlarına izin vermek için RevPi'deki güvenlik duvarının da etkinleştirilmesi gerekir:

▷ Cockpit'teki güvenlik duvarı ayarlarına revpi-modbus-default servisini ekleyin, bkz. Güvenlik Duvarı.

Giriş ve çıkış verileri için sanal cihaz başına en fazla 32 kayıt kullanılabilir. Ek giriş ve çıkışlar için en fazla 30 Modbus sanal cihazı yapılandırılabilir.

  • ModbusTCP Slave

  • ModbusTCP Slave (512 I/O kelimesi)

  • ModbusRTU Slave

  • ModbusRTU Slave (512 I/O kelimesi)

  • ModbusTCP Master

  • ModbusTCP Master (150 giriş kelimesi)

  • ModbusRTU Master

  • ModbusRTU Master (150 giriş kelimesi)

Diğer saha veri yollarıyla karşılaştırıldığında Modbus, veri alışverişi için basit bir alternatiftir. Modbus protokolü açıktır ve sunucu-istemci iletişimine dayanır. Prensipte, ağdaki her katılımcı veri gönderebilir. Ancak pratikte iletişim her zaman sunucu tarafından başlatılır.

İletim Türleri (seçim) #

  • Modbus RTU (Uzak Terminal Ünitesi):

    • Seri iletişim

    • Veriler ikili biçimde iletilir

  • Modbus TCP (İletim Kontrol Protokolü)

    • TCP/IP ağları için Genişletilmiş Modbus RTU

Modbus Server #

  • Modbus istemcilerinden veri talep eder

  • Herhangi bir veri sağlamadığı için istemci gibi davranır

Modbus Client #

  • Veri sağlar

  • Veri sağladığı için sunucu görevi görür

Modbus Register #

Modbus kaydı, Modbus protokolünde veri depolama ve iletimi için kullanılan 16 bitlik (2 bayt) bir bellek alanıdır. Kayıtlar, 0 ile 65.535 (imzasız) arasındaki değerleri depolayabilir.

Mevcut kayıtlar cihaza özeldir. Kayıtlar 0 veya 1'den başlayarak sayılır.

Modbus Veri Modelindeki Kayıt Türleri #

Modbus, farklı erişim haklarına sahip dört bellek alanı tanımlar.

Input Registers (40001 …​ 49999) #

  • Okunabilir ve yazılabilir

  • Ayar noktalarının ve yapılandırma verilerinin depolanması

  • Fonksiyon kodu 03 (okuma), 06/16 (yazma)

Input Registers (30001 …​ 39999) #

  • Salt okunur

  • Ölçülen değerler için sensör verileri

  • Fonksiyon kodu 04 (okuma)

Coils (00001 …​ 09999) #

  • Bireysel bitler, okunabilir ve yazılabilir

  • Dijital çıkışlar (açık/kapalı durumları)

Discrete Inputs (10001 …​ 19999) #

  • Bireysel bitler, salt okunur

  • Dijital girişler

Adresleme #

Kayıt adreslemesi bağlama göre değişir:

  • Protocol level: 0-based (0 …​ 65535)

  • User level: 1-based with prefix (örneğin, ilk tutma kaydı için 40001)

Örnek:

40001 nolu tutma kaydı protokol düzeyine adres 0 olarak aktarılır.

Veri Yorumlama #

Bir kayıt yalnızca 16 bit depoladığından, daha büyük veri türleri birkaç kayıt arasında dağıtılır:

  • 32-bit float: 2 ardışık kayıt

  • 64-bit double: 4 ardışık kayıt

  • Strings: Kayıt başına veya paketlenmiş bir karakter (kayıt başına 2 karakter)

Bayt Sırası #

Bir kayıttaki ve birden fazla kayıttaki baytların yorumlanması değişebilir:

  • Big-endian: Önce yüksek dereceli bayt (Modbus standardı)

  • Little-endian: Düşük sıralı bayt ilk

  • For multi-register values, ek olarak: Kelime sırasına dikkat edin

Örnek:

  • Sıcaklık değeri: 23,5 °C

  • Ölçekleme: Değer × 10 depolandı

  • Register içeriği: 235 (0x00EB)

  • İletim: [0x00][0xEB]

Fonksiyonlar veya Hizmetler #

  • Verilere erişimi uygulayın

  • Ayrım

    • Okuma

    • Yazma

    • İkisi birden

  • Veri genişliği

    • Data word (2 bytes)

    • Bit

  • Hangi işlevlerin uygulanacağı cihaza bağlıdır

Sorgu Verileri #

▷ Modbus sunucusu ile Modbus istemcisi arasındaki veri bağlantısını yapılandırın.

  • Modbus TCP – Ağ yapılandırması (statik IP adresleri, ağ maskesi)

  • Modbus RTU – Seri arayüz (baud hızı, veri bitleri, eşlik, durdurma bitleri)

▷ Modbus sunucusunda istemci tarafından sağlanan ilgili işlevi çağırın.

Modbus RTU İstemci Kimliği #

Modbus RTU'da istemci kimliği zorunludur ve aşağıdaki işlevlere sahiptir:

  • Veriyolundaki her cihazın 1 - 247 değer aralığındaki benzersiz adreslenmesi.

  • Master'ın slave'lere adreslemesini sağlar.

  • Aynı veri yolundaki her cihazın benzersiz bir istemci kimliğine sahip olması gerekir.

  • ID 0 yayın mesajları için ayrılmıştır.

Modbus TCP Birim Kimliği #

Birim kimliği, doğrudan cihaz tanımlaması veya ağ geçidi adreslemesi için kullanılır:

  1. Birim kimliği, IP adresi üzerinden doğrudan adreslenen belirli bir Modbus TCP cihazını tanımlar. Bu durumda, birim kimliği işlevsel olarak istemci kimliğine karşılık gelir.

  2. Veya birim kimliği, Modbus TCP-RTU ağ geçidinin arkasındaki cihazları adresler. Aşağıdakiler geçerlidir: 1-247 birim kimlikleri, arkalarındaki Modbus RTU cihazlarını adreslerken, 255 birim kimliği ağ geçidinin kendisini adresler.

Doğru ayar cihaz türüne bağlıdır: Doğrudan Modbus TCP cihazları için cihaza özgü birim kimliği kullanılır; ağ geçidi yapılandırmaları için hedef cihazın birim kimliği (1 …​ 247) veya ağ geçidinin kendisi için 255 kullanılır.

Modbus Fonksiyon Kodları (örnekler) #

Kod

Fonksiyon

0x01

Read coils

0x02

Read discrete inputs

0x03

Read holding registers

0x04

Read Input Registers

0x05

Write Single Coil

0x06

Write Single Register

Modbus RTU için gerekli bilgilerin örneği:

  • Serial interface parameters: 9600 baud, 8 data bits, 1 stop bit, no parity

  • Client address: 1

  • Modbus register: 1000

  • Modbus function: READ_INPUT_REGISTER

Modbus TCP için gerekli bilgilerin örneği:

  • IP address of the client: 192.168.0.103

  • Unit ID: 255

  • Client register: 1000

  • Modbus function: READ_HOLDING_REGISTER