Modbus TCP sürücüsü
Modbus TCP konuşan cihazlardan (enerji analizörü, sürücü, ağ geçidi) bobin ve yazmaçları Modicon adresleriyle okumak ve yazmak; birim kimliği ve 32 bit bayt sırası ayarları.
Ne zaman kullanılır
Cihazınız Modbus TCP sunucusuysa (TCP üzerinden Modbus) bu sürücüyü kullanın. Adresler Modicon gösterimiyle yazılır: 40001 birinci tutma yazmacıdır, protokoldeki adresi 0'dır. Seri hat (RTU / ASCII, RS-232 / RS-485) desteklenmez; seri cihazlar için Modbus TCP'ye çeviren bir ağ geçidi gerekir.
Cihaz tarafında ön koşullar
- Cihazda Modbus TCP sunucusu açık olmalı (varsayılan port
502). - Cihazın birim kimliğini (Unit ID, slave adresi) ve adres haritasını öğrenin. Ağ geçidinin arkasındaki her cihaz kendi birim kimliğiyle ayrılır; tek cihazda genellikle
1'dir. - Cihaz belgesindeki adres 1 tabanlı Modicon adresi mi (
40001) yoksa 0 tabanlı protokol adresi mi (0) veriyor? İkinciyse Studio'ya tablo rakamını ve belge adresi + 1'i yazın: protokol adresi100olan tutma yazmacı40101olur. - 32 bitlik değerlerin iki yazmaçta hangi sırayla durduğunu öğrenin (aşağıdaki 32 bit bayt sırası).
Bağlantı kurma
- Bağlantı ekleyin
Bağlantılar bölümünde Ekle, sürücü Modbus TCP. IP adresini yazın, port
502gelir. - Birim kimliği ve bayt sırası

Modbus TCP bağlantısının parametreleri: birim kimliği ve 32 bit bayt sırası. Birim kimliği (Unit ID) 0 – 255 (varsayılan
1). 32 bit bayt sırası seçenekleri: ABCD — büyük uçlu (varsayılan), CDAB — word yer değiştirmiş, BADC — bayt yer değiştirmiş, DCBA — küçük uçlu. 16 bitlik değerler her zaman Modbus standardındaki gibi büyük uçludur. - Tag ekleyin
Tag'in adresine Modicon adresini yazın. Adres, tag'in veri tipine göre doğrulanır (Tag adresleri).
- Bayt sırasını sınayın
32 bitlik bir
Realya daDInttag'inin değeri beklenenden çok farklı geliyorsa (ör. çok büyük ya da çok küçük bir sayı) bayt sırasını değiştirin. Bunun için cihazda bilinen bir değer (ör.1.0) tutup doğru değer görünene kadar seçenekleri deneyin.
Adres aralıkları ve yazmaç kullanımı
| Biçim | Tablo | Veri tipi | Yazma |
|---|---|---|---|
0xxxx (ör. 00001) | Bobin (coil) | Bool | Yapılır |
1xxxx (ör. 10001) | Ayrık giriş | Bool | Salt okunur |
3xxxx (ör. 30001) | Giriş yazmacı | yazmaç tipleri | Salt okunur |
4xxxx (ör. 40001) | Tutma yazmacı | yazmaç tipleri | Yapılır |
4xxxx.b (ör. 40001.5) | Yazmacın biti (b = 0 – 15) | Bool | Yapılır (yazmaç okunur, bit değiştirilir, geri yazılır) |
4xxxxx (ör. 400001) | Altı haneli gösterim: 400001 – 465536 | yazmaç tipleri | Yapılır |
İlk rakam tabloyu, kalan dört ya da beş rakam sıra numarasını (1 – 65536) verir. Her tip şu kadar yazmaç kaplar; tag'in adresi ilk yazmaçtır:
| Tip | Yazmaç sayısı |
|---|---|
Bool, Int, UInt | 1 |
DInt, UDInt, Real | 2 (ör. 40001 ve 40002) |
LReal | 4 |
String | Her yazmaçta 2 karakter: Uzunluk alanındaki karakter sayısının yarısı (yukarı yuvarlanır); varsayılan uzunluk 32, en çok 254 |
Bobin ve ayrık giriş adreslerinde bit numarası yazılmaz; yazmaç adresine Bool verilirse bit numarası zorunludur. Byte ve SInt tipleri Modbus sürücüsünde yoktur.
Okuma ve yazma
- Aynı tablodaki yakın tag'ler tek istekte okunur: en çok 125 yazmaç ya da 2000 bobin, aradaki en çok 8 yazmaç (bobinde 64) boşluk birleştirilir. Cihaz boşluklu okumayı reddederse sürücü bundan sonra yalnızca bitişik tag'leri birleştirir.
- Cihaz bir isteği reddederse o bloktaki tag'ler tek tek okunur; yalnızca sorunlu tag hata alır.
- Yazma bobin için tek bobin yazma, tek yazmaç için tek yazmaç yazma, çok yazmaçlı değerler için çoklu yazmaç yazma isteğiyle yapılır.
Sürücü başvurusu
Modbus TCP
Adresler Modicon gösterimiyle yazılır: 40001 birinci tutma yazmacıdır (protokolde adres 0). 32 bitlik tipler art arda iki yazmaç kullanır.
- Sürücü kimliği
modbus(proje dosyasındaki ad)- Bağlantı
- IP adresi / bilgisayar adı ve port gerekir (varsayılan port
502) - Veri tipleri
BoolIntUIntDIntUDIntRealLRealString
Bağlantı parametreleri
Bağlantı seçiliyken Denetçi penceresinde görünür.
| Parametre | Tür | Varsayılan | Açıklama |
|---|---|---|---|
| Birim kimliği (Unit ID) | sayı (0 – 255) | 1 | |
| 32 bit bayt sırası | seçim | ABCD — büyük uçlu | ABCD — büyük uçlu · CDAB — word yer değiştirmiş · BADC — bayt yer değiştirmiş · DCBA — küçük uçlu |
Adres biçimleri
| Biçim | Anlamı |
|---|---|
0xxxx | Bobin — Bool |
1xxxx | Ayrık giriş — Bool, salt okunur |
3xxxx | Giriş yazmacı — salt okunur |
4xxxx | Tutma yazmacı |
4xxxx.b | Yazmacın biti (b = 0 – 15) — Bool |
4xxxxx | Altı haneli gösterim: 400001 – 465536 |
Örnek adresler
| Veri tipi | Örnekler |
|---|---|
Bool | 00001 10001 40001.0 |
| Diğer tipler | 40001 30001 400001 |
Sık hatalar
Her satırın başındaki işaret, iletinin Live'da nerede görüneceğini söyler: [bağlantı] sistem menüsünün Bağlantılar bölümünde; [yazma] yazmayı yapan operatöre bildirim penceresinde; [Studio] Studio'daki adres hücresinde görünür. [tag] okuma sırasındaki tag hatasıdır: tag kalitesiz kalır, iletinin metni bu sürümde Live'da gösterilmez (Tag hataları); metni nedeni anlamak için okuyun.
| İleti | Neden ve çözüm |
|---|---|
[tag] Cihazda bu adres yok (Modbus istisnası 02: geçersiz adres). | Cihaz bu yazmacı ya da bobini tanımıyor. Adres haritasını ve 0 / 1 tabanlı farkını denetleyin. |
[tag] Cihaz bu işlevi desteklemiyor (Modbus istisnası 01). | Cihaz bu tür erişimi (ör. bobin yazma) sunmuyor. |
[yazma] Cihaz değeri kabul etmedi (Modbus istisnası 03: geçersiz değer). | Yazılan değer cihazın izin verdiği aralıkta değil. |
[tag] Ağ geçidi hedef cihaza ulaşamadı (Modbus istisnası 0A). (ya da 0B) | Ağ geçidi birim kimliğindeki cihaza ulaşamıyor; birim kimliğini ve seri hattı denetleyin. |
[yazma] Giriş yazmacı salt okunurdur; yazılamaz. · Ayrık giriş salt okunurdur; yazılamaz. | 1xxxx ve 3xxxx adreslerine yazılamaz; yazılabilir olması gereken değer için 4xxxx kullanın. |
[Studio] Bool tipi için yazmacın biti belirtilmelidir (ör. 40001.0) ya da bobin adresi (0xxxx) kullanılmalıdır. | Studio adres hücresi: Bool tag'e yazmaç adresi bit numarasız verilmiş. |
[bağlantı] Cihaz 2000 ms içinde yanıt vermedi (192.168.0.20:502). … · Cihaz yanıt vermedi (zaman aşımı). | Ağ, port ya da cihaz; ağ geçidi arkasındaki cihazlarda Zaman aşımı'nı artırın. |
[bağlantı] Geçersiz Modbus yanıtı (…) | Cihazın yanıtı Modbus TCP çerçevesine uymuyor; bağlantı kapatılıp yeniden kurulur. |