merhaba arkadaşlar c# ile modbus ascii protokolü üzerinden plc ile haberleşiyorum ancak bunu modbus RTU ile yapmam gerekiyor. rtu protokolünün ayrıntılarını biliyorum ancak bunu c# ' a nasıl uyarlıycam anlıyamadım. yani örneğin her mesaj arasında 3.5 karakter süresi olucak binary türünde olucak falan bunları nasıl yapıcam işin içinden çıkamadım. elinde örnek bir program veya yardımcı olabilecek olan varmı ?
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
her datanın arasına "\x" eklersen örnek: "\x01\x03\x31\x04\x00\x04\x0B\x34" olur.
yanlız modbus komut değerlerine : okuma/yazma/aktif etme vs dikkat et..
Şayet 32 bit data yazacaksan crc kodunda 32 bit olacak.
Cr ve line feed mesaj içeriğinde bulunmayacak.
yazdığın adres veya okuduğun adres 32 bit ise crc kodu da her iki gurup için (lsb msb) ayrı yazman gerekir.
gönderdiğin verinin düşük bitlerinin doğrulama kodu // gönderdiğin verinin yüksek bitlerinin doğrulama kodu gibi
pek lazım olacağını zannetmiyorum. Plc ye ayrı ayrı yazıp ayrı ayrı okuyabilirsin...
16 bit signed = -32.768 dan 32.767 ye kadar
16 bit unsigned= 0-65.535 e kadar
32 bit signed = 2.147.483.648 den 2.147.483.67 ye kadar 32 bit unsigned = 0 dan 4.294.967.295 e kadar olan değerlerdir.
anladım hocam
peki tek sorunum ben bu yapıyı c# ile nasıl oluştururum yani diyelim örnek crc kodu hazır bir paket göndericem yan şöyle yazmam yeterlimi ?
port veri ="\x01\x03\x31\x04\x00\x04\x0B\x34"; serialPort1.Open(); serialPort1.WriteLine(port_veri);