1. sayfa (Toplam 1 sayfa)

Modbus RS-485 Register Okuma Sorunu (Değer Eksik veya Sıfıra Dönüyor)

Gönderilme zamanı: 25 May 2025, 21:19
gönderen ssarikaya
Merhabalar,

RS-485 haberleşme ile çalışan bir otomasyon sistemim var. Aynı ağda 2 adet sürücü ve 4 adet sayaç bulunuyor. Aynı programı ve aynı register adreslerini kullanmama rağmen, karşılaştırma komutlarıyla register okuduğumda ya eksik değer geliyor ya da doğru gelen değer bir süre sonra sıfıra düşüyor.

Ancak, aynı registerları M kontakları kullanarak okuduğumda hiçbir sorun yaşamıyorum.

Bu durumu daha önce yaşayan veya çözüm önerisi olan var mı?

Teşekkürler.

Re: Modbus RS-485 Register Okuma Sorunu (Değer Eksik veya Sıfıra Dönüyor)

Gönderilme zamanı: 26 May 2025, 10:01
gönderen Turhan
Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir. Hangi slave cihaz, hangi adres, hangi adres özelliklerinden... veri okumaya çalışıyorsunuz.

Re: Modbus RS-485 Register Okuma Sorunu (Değer Eksik veya Sıfıra Dönüyor)

Gönderilme zamanı: 26 May 2025, 13:14
gönderen ssarikaya
Delta DVP-SE model PLC kullanıyorum (master olarak).
RS-485 üzerinden haberleştiğim slave cihazlar:

Mitsubishi FR-D740 vfd(2 adet)

Yazma işlemleri (holding register):

0x0008 → Çalıştır/Durdur komutu

0x000E → Frekans ayarı (Hz)

Okuma işlemleri (holding register):

0x0008 → Çalışıyor bilgisini (status)

0x00C8 → Anlık frekans (Hz)

0x00C9 → Anlık akım (A)

Enelsan marka manyetik debimetreler (4 adet)

Slave ID'leri farklı

0x0307 adresinden FLOAT formatında debi (litre/saat) bilgisi okumaya çalışıyorum.

Şu anda programımda karşılaştırma komutları ile bu değerleri işlediğimde, zaman zaman veri eksik geliyor veya doğru geldikten sonra bir sonraki döngüde sıfıra düşüyor.
Ancak aynı değerleri önce bir M kontakları ile kullandığımda bu sorunla karşılaşmıyorum.

Re: Modbus RS-485 Register Okuma Sorunu (Değer Eksik veya Sıfıra Dönüyor)

Gönderilme zamanı: 26 May 2025, 17:43
gönderen Turhan
Programı şu şejilde revize edebilirmisiniz?

M1122 bit adresini yükselen kenar tetiklemesi ile set edin. Eğer haberleşme başarılı ise (M1127 ON ise) okunan veriyi D100'datasına kaydet ve M50 bitini set et. Eğer haberleşme time-out süresi içerisinde tamamlanamazsa yalnızca M50 bit adresini set et.

.
MODRW_1.jpg

M50 bit adresi haberleşmede loop oluşturacak bit adrestir. Bu bit aktif olduğunda haberleşme ile ilgili tüm bitleri resetle ve belirli bir delay time sonunda bir sonraki haberleşme komutunu çalıştır.

.
MODRW_2.jpg


Bu haberleşme yapısında haberleşme adımında haberleşme durumu ne olursa olsun maximum time-out süresi sonunda (200 ≦D1129 ≦ 3000.) mutlaka bir sonraki komutun çalışma koşulu gerçekleşecektir.

Re: Modbus RS-485 Register Okuma Sorunu (Değer Eksik veya Sıfıra Dönüyor)

Gönderilme zamanı: 27 May 2025, 13:28
gönderen ssarikaya
Teşekkürler iyi çalışmalar Turhan Bey