Skip to main content

General

Modbus TCP Bağlantısı

Modbus TCP sürücüsü için tam referans: bağlantı parametreleri, adresleme sözdizimi ve fonksiyon kodları.

Proxus, toplu okuma ve otomatik bayt takası (byte swapping) yapabilen yüksek performanslı bir Modbus TCP sürücüsü sağlar.

Desteklenen Protokol Varyantları

Protokol TipiAçıklama
Modbus_TcpStandart Modbus TCP
Modbus_Rtu_OverTcpTCP üzerinden kapsüllenmiş Modbus RTU
ModbusAscii_OverTcpTCP üzerinden kapsüllenmiş Modbus ASCII

Bağlantı Parametreleri

Temel Ayarlar

ParametreTipZorunluVarsayılanAçıklama
HoststringEvet-PLC veya Gateway'in IPv4 adresi
PortintHayır502Standart Modbus TCP portu
PollingIntervalintHayır1000Milisaniye cinsinden okuma döngüsü aralığı
ConnectTimeoutintHayır3000Bağlantı zaman aşımı (ms)
ReceiveTimeoutintHayır3000Yanıt zaman aşımı (ms)

Modbus'a Özgü Ayarlar

ParametreTipVarsayılanAçıklama
Stationbyte1Ünite Kimliği / Slave ID (1-255)
AddressStartWithZerobooltrue0 tabanlı adresleme kullan
DataFormatenumABCDBayt sırası (ABCD, DCBA, BADC, CDAB)
IsStringReverseboolfalseString bayt sırasını tersine çevir
IsCheckMessageIdbooltrueYanıt mesaj kimliğini doğrula
Crc16CheckEnablebooltrueCRC16 kontrolünü etkinleştir (sadece RTU)
info
İstasyon Kimliği (Station ID)

Station parametresi (Ünite Kimliği), bir Modbus gateway üzerinden birden fazla cihaza bağlanırken kritiktir. Gateway arkasındaki her cihazın benzersiz bir İstasyon Kimliği vardır.


Veri Sayfası (Datasheet) Adreslerini Dönüştürme

Cihaz veri sayfaları genellikle farklı adresleme kuralları kullanır. Bunları Proxus formatına nasıl dönüştüreceğiniz aşağıda açıklanmıştır:

Yaygın Veri Sayfası Formatları

Veri Sayfası FormatıAnlamıProxus Formatı
40001Holding Register 1x=3;0
40100Holding Register 100x=3;99
30001Input Register 1x=4;0
30100Input Register 100x=4;99
00001Coil 1x=1;0
10001Discrete Input 1x=2;0
HR100 / 4x100Holding Register 100x=3;99
IR50 / 3x50Input Register 50x=4;49
warning
1-Tabanlı vs 0-Tabanlı

Çoğu cihaz veri sayfası 1-tabanlı adresleme (ilk kayıt = 1) kullanır, ancak Modbus protokolü 0-tabanlı adresleme (ilk kayıt = 0) kullanır.

Veri sayfası adreslerinden her zaman 1 çıkarın:

  • Veri sayfası 40100 diyorsa → Proxus: x=3;99
  • Veri sayfası 30050 diyorsa → Proxus: x=4;49

Dönüşüm Formülü

Proxus Adresi = Veri Sayfası Adresi - Taban - 1

Taban Değerleri:
40001 serisi → Taban = 40000 (Holding Registers, FC03)
30001 serisi → Taban = 30000 (Input Registers, FC04)
10001 serisi → Taban = 10000 (Discrete Inputs, FC02)
00001 serisi → Taban = 0 (Coils, FC01)

Gerçek Dünya Örnekleri

Cihaz/SensörVeri SayfasıProxus AdresiVeri Tipi
Enerji Analizörü - Voltaj30001x=4;0Float
Enerji Analizörü - Akım30003x=4;2Float
VFD - Motor Hızı40201x=3;200UShort
VFD - Çalışma Komutu00001x=1;0Bool
Sıcaklık Sensörü30101x=4;100Short

Adres Sözdizimi

Proxus, tüm Modbus fonksiyon kodları için esnek adres formatlarını destekler.

Temel Format

En basit format sadece kayıt adresidir:

{adres}

Örnek: 100 varsayılan fonksiyon kodunu (Holding Registerlar için 03) kullanarak 100. kaydı okur.

Genişletilmiş Format

İstasyon kimliği ve fonksiyon kodu üzerinde açık kontrol için:

s={istasyon};x={fonksiyon};{adres}
BileşenAçıklamaDeğerler
s=İstasyon/Slave ID1-255
x=Fonksiyon Kodu1, 2, 3, 4
w=Yazma Fonksiyon Kodu (opsiyonel)5, 6, 15, 16
{adres}Kayıt adresi0-65535

Örnekler

AdresAçıklama
100Kayıt 100, varsayılan fonksiyon kodu
x=3;100Holding Register 100 (FC03)
x=4;100Input Register 100 (FC04)
s=2;100Slave ID 2 üzerindeki Kayıt 100
s=2;x=3;100Slave ID 2 üzerindeki Holding Register 100
s=5;x=4;500Slave ID 5 üzerindeki Input Register 500

Fonksiyon Kodları

KodAlanErişimAçıklama
01CoilsOku/YazAyrık çıkışlar (bitler)
02Discrete InputsSadece OkuAyrık girişler (bitler)
03Holding RegistersOku/Yaz16-bit kayıtlar
04Input RegistersSadece Oku16-bit giriş kayıtları

Standart Notasyon Eşlemesi

Geleneksel 5 basamaklı veya 6 basamaklı Modbus notasyonunu tercih ederseniz:

NotasyonFonksiyon KoduProxus Karşılığı
000001 - 009999FC01 (Coils)x=1;0
100001 - 109999FC02 (Discrete Inputs)x=2;0
300001 - 309999FC04 (Input Registers)x=4;0
400001 - 409999FC03 (Holding Registers)x=3;0
lightbulb
Öneri

Belirsizliği önlemek için açık x={fonksiyon};{adres} formatını kullanın. Farklı satıcılar standart notasyonu farklı yorumlayabilir.


Veri Tipleri

Çoklu kayıt değerleri ardışık kayıtlardan otomatik olarak yeniden oluşturulur.

TipBoyutKayıtlarAçıklama
Bool1 bitN/ACoils veya Discrete Inputs
Short16 bit1İşaretli tamsayı
UShort16 bit1İşaretsiz tamsayı
Int32 bit2İşaretli 32-bit tamsayı
UInt32 bit2İşaretsiz 32-bit tamsayı
Long64 bit4İşaretli 64-bit tamsayı
ULong64 bit4İşaretsiz 64-bit tamsayı
Float32 bit2IEEE 754 tek hassasiyet
Double64 bit4IEEE 754 çift hassasiyet
StringDeğişkenNASCII dizesi (uzunluk gerektirir)

Bayt Sırası (Byte Order)

Farklı cihazlar çoklu kayıt değerleri için farklı bayt sıralaması kullanır. ByteOrder ayarını Cihaz Profilinde yapılandırın:

AyarAçıklamaÖrnek (0x12345678)
ABCDBig Endian12 34 56 78
DCBALittle Endian78 56 34 12
BADCMid-Big Endian34 12 78 56
CDABMid-Little Endian56 78 12 34
warning
Karışık Değerler

Float veya Int32 değerleri aşırı büyük, küçük veya anlamsız görünüyorsa, bayt sırası muhtemelen yanlıştır. Farklı ByteOrder ayarlarını deneyin.


Performans Özellikleri

Toplu Okuma (Batch Reading)

Sürücü, bitişik adresleri otomatik olarak tek istekte gruplar:

  • Kayıtlar 100, 101, 102, 103 → Tek okuma isteği
  • 2 kayıttan büyük boşluklar grubu böler
  • Ağ gidiş-dönüşlerini önemli ölçüde azaltır

Sorgulama Aralıkları

Farklı kayıtlar için farklı sorgulama hızları yapılandırın. Hızlı değişen değerler (örneğin motor hızı) 100ms'de sorgulanırken, yavaş değişen değerler (örneğin sıcaklık) 5000ms'de sorgulanabilir.


Endüstriyel Kullanım Örnekleri

Modbus, birden çok sektörde yaygın olarak kullanılan en çok yönlü sürücümüzdür:

  • Üretim: Eski PLC'leri, VFD'leri (Değişken Frekanslı Sürücüler) ve basit IO bloklarını entegre etme.
  • Enerji ve Altyapı: Güç sayaçlarından, güneş invertörlerinden ve batarya yönetim sistemlerinden gerçek zamanlı veri toplama.
  • Madencilik: Çıkarma verimliliğini optimize etmek için havalandırma fanlarını, pompaları ve kırıcıları izleme.

Sorun Giderme

HataNedenÇözüm
TimeoutCihaz yanıt vermiyorIP, Port, İstasyon Kimliğini kontrol edin
Illegal Data AddressKayıt mevcut değilCihaz kılavuzunda kayıt numarasını doğrulayın
Illegal FunctionFonksiyon kodu desteklenmiyorVeri alanı için doğru fonksiyon kodunu kullanın
Gateway Path UnavailableYanlış İstasyon KimliğiGateway arkasındaki cihaz için Ünite Kimliğini doğrulayın
TimeoutPollingInterval çok kısaPollingInterval'ı artırın veya ağ gecikmesini kontrol edin
Checksum ErrorGürültü veya yanlış ayarlarBaud Hızı, Parite (RTU) ayarlarını doğrulayın veya paraziti kontrol edin
lightbulb
Yardıma mı İhtiyacınız Var?

Bayt sırası sorunları için Bayt Sıralama Sorunları bölümüne bakın. Adres dönüştürme için Modbus Adres Sözdizimi bölümüne bakın.

Resmi Kaynaklar