Jump to content
Hasan Tekin

Python Modbus ile DoubleWord Çekme

Önerilen İletiler

Merhabalar;

Bir proje için direkt olarak plcden veri çekmem lazım. Pythonla coil ve single register'larda okuma ve yazma yapabiliriyoruz fakat doubleword çekemiyoruz. Aslında çekiyoruz fakat hatalı sonuç veriyor. Öğrendiklerime göre doubleword çekmek için birbirini ardına 2 wordu çekip belirli bir işleme tabi tutup birleştirme yapılması lazımmış. birkaç yöntemi kodda denedik. Fakat bir türlü bulamadık. Veri, plcnin içinde Big endian little endian gibi saklama düzenleri ile tutulyormuş ve verilerin okunma sırası plcye göre değişiyormuş. 

kullandığım kütüphane pyModbusTCP bir nedenden ötürü en yaygın kullanılan pymodbus kütüphanesi çalışmıyor.

bana yardımcı olabilecek birileri varsa çok makbule geçer. İ

iyi forumlar.

Yorum bağlantısı
Sitelerde Paylaş

Modbus mimarisinde registerlar 16 bittir yani word ya da 16 bitlik tam sayı şeklindedir. 32 bitlik bir sayısal eğer ile uğraşıyorsanız Float, double word ya da 32 bit tam sayı ile o zaman iki register olarak çekip deidğiniz gibi endian tipine göre 16 bitten 32 bit dönüşüm sağlamanız gerekmektedir. Bu dönüşüm python programlama dilinde nasıl yapıldığına bakabilirsiniz. Daha sağlam olsun derseniz gelen modbus paketindeki data bytelarını alarak kendiniz bir dönüştürme işlemine tabi tutabilirsiniz.

Yorum bağlantısı
Sitelerde Paylaş

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Misafir
Bu konuyu yanıtla

×   Yapıştırdığınız içerik biçimlendirme içeriyor.   Biçimlendirmeyi Temizle

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Önceki içeriğiniz geri yüklendi.   Editör içeriğini temizle

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Yeni Oluştur...