Bu eğitim, bir RevPi temel modülünün, bağımlı cihazlarla bağlantı ve iletişim kurmak için Modbus TCP Master Modülü olarak nasıl kullanılacağını açıklamaktadır. Modbus TCP protokolünü kullanarak endüstriyel iletişim için bir RevPi sistemi kurmak için adım adım kılavuz sağlar. Bu eğitim, Revolution Pi sistemiyle Modbus TCP iletişimini yapılandırmak ve kullanmak isteyen endüstriyel otomasyon profesyonelleri, IoT geliştiricileri ve meraklıları için tasarlanmıştır. RevPi'yi Modbus TCP Master Modülü olarak kullanmak, sensörler, aktüatörler veya diğer endüstriyel ekipmanlar gibi cihazların ağ ortamında kontrol edilmesi veya izlenmesi gereken durumlar için idealdir.

Ön koşullar #

Donanım

✓ RevPi temel modülü
✓ Slave cihaz(lar)
✓ RJ45 konnektörlü eşleşen kablolar
✓ İnternet bağlantısı

Yazılım

✓ Modern web tarayıcısı (örneğin Google Chrome veya Mozilla Firefox).

Sistem Kurulumu

Şunları sağlayın:

✓ RevPi temel modülü ve slave cihazlar aynı ağ üzerinde yer almaktadır.

✓ Tüm slave cihazların IP adresleri üreticinin talimatlarına göre belirlenip belgelendirilmektedir.

✓ Her slave cihazın kendine özgü bir IP adresi vardır.

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, bakınız Güvenlik Duvarı.

Adım 1: Donanımı Kurma #

▷ Slave cihazları RJ45 jakı aracılığıyla RevPi'ye bağlayın.

▷ Tüm slave cihazların IP adreslerini ve portlarını not edin.

Not

Aynı porttaki birden fazla slave cihaza aynı IP adresini atamaktan kaçının, çünkü bu iletişim hatalarına neden olur.

Adım 2: PiCtory'de Modbus TCP Master'ı Yapılandırma #

PiCtory'yi başlatın.

Webstatus login

▷ ATemel modülü ve sanal Modbus TCP Master'ı yapılandırmanıza ekleyin, bkz. Aygıtları Düzenle.

Device Catalog'dan temel modülü sanal DIN rayına sürükleyin.

Device Catalog'da Virtual Devices klasörünü açın.

Modbus TCP Master'ı sanal DIN rayındaki temel modüle sürükleyin.

❯ Modbus TCP Master artık yapılandırmada görünecektir

pictory config

▷ Modbus TCP Master'ı yapılandırın, bakınız Girişleri ve Çıkışları Yapılandırma

▷ Yapılandırmada Modbus TCP Master'ı seçin.

Device Data penceresinde, daha kolay başvuru için isteğe bağlı olarak uygun I/O adlarını atayın, örneğin Modbus_Input_1.

pictory config

Value Editor'ü açın ve aşağıdaki parametreleri yapılandırın:

  • slave_IP_address: Modbus TCP slave'inin IP adresi.

  • slave_tcp_port: Varsayılan değer, Modbus spesifikasyonunda belirtildiği gibi 502'dir. Gerekirse bu değiştirilebilir.

Save the configuration and restart the driver to apply the changes.

Adım 3: Modbus Komutlarını Ayarlama #

Genişletilmiş Verileri Açma

▷ Yapılandırmada Modbus TCP Master'ın context menüsünü açın.

▷ Komut yapılandırma arayüzünü açmak için Extended Data'yi seçin.

Modbus Komutlarının Eklenmesi

▷ Aşağıdaki parametreleri kullanarak komutları yapılandırın:

  • Birim Kimliği: Bu adres için slave'in kılavuzuna bakın. Slave adresi yoksayarsa 255 kullanın.

  • Fonksiyon Kodu: Desteklenen kodlardan birini seçin:

    • READ_COILS: Tek bitleri oku.

    • READ_DISCRETE_INPUTS: Tek giriş bitlerini oku.

    • READ_HOLDING_REGISTERS: 16-bit registers oku.

    • READ_INPUT_REGISTERS: 16-bit input registers oku.

    • WRITE_SINGLE_COIL: Tek bir bit yaz.

    • WRITE_SINGLE_REGISTER: Bütün bir kaydı yaz.

    • WRITE_MULTIPLE_COILS: Ardışık bitleri yaz.

    • WRITE_MULTIPLE_REGISTERS: Ardışık kayıtları yaz.

  • Register Address: Erişim sağlanacak Modbus kayıt veya bit adresini tanımlayın.

  • Quantity of Registers: Okunacak/yazılacak kayıt veya bit sayısı.

  • Action Interval: Komutun gönderilmesi için gereken zaman aralığı (milisaniye).

  • Device Value: RevPi işlem görüntüsündeki değişkenin adı.

pictory config
Not

0 tabanlı adresleme kullanan aygıtlar için yapılandırma sırasında kayıt adresini 1 artırın.

Yapılandırmayı Kaydetme

▷ Ayarları kaydetmek için File  Save öğesini seçin.

▷ Yapılandırmayı etkinleştirmek için Tools  Reset Driver öğesini seçin.

Adım 4: Sorun Giderme #

İletişim hataları oluşursa, hata kodları için Modbus_Master_Status kaydını kontrol edin. Yaygın kodlar şunlardır:

  • 0x10: Aygıt bulunamadı (belki kablolama sorunu).

  • 0x11: Cihaz yanıt vermiyor veya kayıt adresi geçersiz.

  • 110: Bağlantı zaman aşımına uğradı.

Olası hata kaynakları:

  • Uygunsuz kablolama

  • Uygunsuz yapılandırma

  • Çakışan IP adresleri

  • Çakışan Modbus komutları

Daha fazla ayrıntı için resmi Modbus spesifikasyonuna bakın.

Modbus Master Görev Yönetimi ve Hata Kodları

Modbus ana cihazı 32 adede kadar görevi yönetebilir. Her görevin status ve status reset için karşılık gelen bir kaydı vardır.

Bir görevde hata oluşursa, hata kodu Modbus kaydına Modbus_Action_Status[1 … 32]_ yazılır.

Hata, 1 değeri elle ilgili sıfırlama kaydı Action_Status_Reset_[1 … 32]'na yazılana kadar bu kayıtta kalır.

Hata kodları Modbus spesifikasyonunda tanımlanan Modbus istisna kodlarına karşılık gelir.

Hata Kodları #

Hata Kodu İsim Tanım

1

ILLEGAL FUNCTION

Kullanılan fonksiyon koduna izin verilmiyor. Doğru fonksiyon kodunu kullanıp kullanmadığınızı kontrol edin.

2

ILLEGAL DATA ADDRESS

Kullanılan Modbus kayıt adresi geçerli değil. Kayıt, yazmaya karşı korumalı veya geçersiz. Kayıt adresini kontrol edin.

3

ILLEGAL DATA VALUE

Kullanılan veri değerlerinin en az bir kısmı geçersiz. Örneğin, çok fazla kayıt girmiş olabilirsiniz. Değerlerinizi kontrol edin.

13

INVALID DATA

Slave eksik bir pakete yanıt verdi. Bu, bir bağlantı kesintisinden sonra olabilir. Kablolamanızı kontrol edin.

110

CONNECTION TIMED OUT

Slave yeterince hızlı yanıt vermiyor veya hiç yanıt vermiyor. Yapılandırmanızı ve kablolamanızı kontrol edin.

Örnek: Modbus TCP Master olarak RevPi ile Sıcaklık Ölçümleri #

Donanım Kurulumu

Bu örnekte Inveo NANO TEMP sıcaklık sensörü Modbus slave'i olarak görev yapmaktadır.

Yapılandırma Ayrıntıları

▷ Aşağıdaki veriler için sensörün kullanım kılavuzuna bakın:

Parametre Değer

IP Address

192.168.0.103

Port

502

Modbus Register

4004

Modbus Function

READ_HOLDING_REGISTERS

Slave Address

1

Modbus Komutlarını Tanımlama

Extended Data arayüzünde şunları yapılandırın:

  • Slave Addr.: 1

  • Function Code: READ_HOLDING_REGISTERS

  • Register Addr.: 4004

  • Quantity of Registers: 1

  • Action Interval (ms): 1000

  • Device Value: Input_Word_1

pictory config
Veri Sorgulama

▷ Yapılandırmayı kaydedin ve sürücüyü resetleyin.

▷ Bir komut satırı açın ve şunu çalıştırın:

piTest -r Input_Word_1

❯ Slave verilerini alırsınız:

 2 Byte-Value of Input_Word_1: 284 dez (=011c hex)

284 değeri 28,4 °C'ye karşılık gelir.