GMTSuite programında Bit, Word, DoubleWord, İnteger ve Real olmak üzere 5 çeşit veri tipi kullanılmaktadır. Sizin Bit tipi olan MB0,MB1 ve MB2 operandlarınız C# programınız ile uyumlu olmasından dolayı doğru çalışmaktadır. Fakat MW0 tipi operandınızın tipi Suit'e Bit olarak değil de word olarak tanımlamış olsaydınız uygun olacaktı. C# programınızda da word için aşağıdaki gibi bir dönüşüm yapmak durumundasınız.
int gir_adres = Convert.ToInt32(numericUpDown9.Value); // numericUpDown9 değerini int32 tipine dönüştürür ve gir_adres içine yükler...
int[] okunan = tcpclient.ReadHoldingRegisters(gir_adres - 40001, 2); // gir_adres değerinden 40001 çıkarır ve sonuçta çıkan adresden değer okur bunu da okunan dizisine yükler...
int donusen = ModbusClient.ConvertRegistersToInt(okunan); // okunan dizi değerini ModbusClient yapısına uygun olarak int değerine dönüştürür...
textBox17.Text = Convert.ToString(donusen); // sonucu string olarak ltextBox7'de gösterir.
GMT Suite izin verdiği adres aralığı: 40001 ≥ Modbus Adresi ≥ 41025 olabilir.
Gönderilen Değer Aralığı: 0 ≥ Girilen Değer ≥ 65535
Faydalı olması dileğiyle, Kolay Gelsin....