Harun Oluşturuldu: 27 Ekim, 2020 Share Oluşturuldu: 27 Ekim, 2020 İyi çalışmalar. Elimde GLC-196R model bir PLC bulanmakta. PLC ile C# arasında RS232 üzerinden bir Modbus RTU haberleşmesi gerçekleştirmek istiyorum. Bunun için C# tarafında EasyModbus paketini kullanıyorum. PLC ile PC arasında RS232-USB dönüştürücü ve GMT haberleşme kablosu takılı. C# ve PLC kısmında gerekli kodları yazdım ama hiçbir şekilde PLC ile C# arasında veri okuma veya yazma işlemi yapamıyorum. C# ile PLC tarafında bulunan ID ve BaudRate gibi ayarlar birbirini karşılıyor. Sistemin çalışması test amaçlı olacağı için thread gibi işlemler yapmadım. Kodları aşağıda paylaşıyorum. Bu konu hakkında proje yapmış biri bilgilendirirse sevinirim. PLC TARAFI Modbus Slave Config bloğu Enerjilenme biti ile çalıştırıldı. C# KODLARI using EasyModbus; ModbusClient modbusClient; private void BtnConnect_Click(object sender, EventArgs e) { try { modbusClient = new ModbusClient(selectedPort); modbusClient.Baudrate = 9600; modbusClient.StopBits = StopBits.One; modbusClient.Parity = Parity.None; modbusClient.UnitIdentifier = 1; modbusClient.Connect(); MessageBox.Show("Başarılı bir şekilde bağlandı"); } catch (Exception) { MessageBox.Show("Bağlantı Sağlanamadı"); } } //Word değer gönderme private void BtnSetWord_Click(object sender, EventArgs e) { try { int register = Convert.ToInt32(txtWordRegister.Text); int value = Convert.ToInt32(txtWordValue.Text); modbusClient.WriteSingleRegister(40001 + register, value); } catch (Exception) { MessageBox.Show("Word gönderme başarısız."); } } Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
malikenes 27 Ekim, 2020 gönderildi Share 27 Ekim, 2020 gönderildi Tavsiyem öncelikle Modscan (https://www.win-tech.com/demos/modscan32.zip) gibi programlarla haberleşmeyi sağlamandır. Böylelikle yazmış olduğun kodun içerebileceği hataları devre dışı bırakmış olursun. Bağlantı için PLC' nin RJ11 (telefon jakı) soketini kullanıyorsun ve GMT' nin orjinal kablosunu kullanıyorum demişsin. GMT' nin kablosu PLC ile HMI arası bir haberleşme kablosudur. O kablonun 9 pinli kısmındaki bağlantı uçları 7-8-5 tir. Ancak PC için standart RS232 uçları ise 2-3-5 tir. Bu duruma dikkat edin. PC ile haberleşirken Rx-Rx, Tx-Tx, Gnd-Gnd şeklinde bağlantı yapılması gerektiğini de hatırlatırım. Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Qurbanli Vusal 16 Eylül, 2021 gönderildi Share 16 Eylül, 2021 gönderildi On 10/27/2020 at 5:29 PM, Harun said: İyi çalışmalar. Elimde GLC-196R model bir PLC bulanmakta. PLC ile C# arasında RS232 üzerinden bir Modbus RTU haberleşmesi gerçekleştirmek istiyorum. Bunun için C# tarafında EasyModbus paketini kullanıyorum. PLC ile PC arasında RS232-USB dönüştürücü ve GMT haberleşme kablosu takılı. C# ve PLC kısmında gerekli kodları yazdım ama hiçbir şekilde PLC ile C# arasında veri okuma veya yazma işlemi yapamıyorum. C# ile PLC tarafında bulunan ID ve BaudRate gibi ayarlar birbirini karşılıyor. Sistemin çalışması test amaçlı olacağı için thread gibi işlemler yapmadım. Kodları aşağıda paylaşıyorum. Bu konu hakkında proje yapmış biri bilgilendirirse sevinirim. PLC TARAFI Modbus Slave Config bloğu Enerjilenme biti ile çalıştırıldı. C# KODLARI using EasyModbus; ModbusClient modbusClient; private void BtnConnect_Click(object sender, EventArgs e) { try { modbusClient = new ModbusClient(selectedPort); modbusClient.Baudrate = 9600; modbusClient.StopBits = StopBits.One; modbusClient.Parity = Parity.None; modbusClient.UnitIdentifier = 1; modbusClient.Connect(); MessageBox.Show("Başarılı bir şekilde bağlandı"); } catch (Exception) { MessageBox.Show("Bağlantı Sağlanamadı"); } } //Word değer gönderme private void BtnSetWord_Click(object sender, EventArgs e) { try { int register = Convert.ToInt32(txtWordRegister.Text); int value = Convert.ToInt32(txtWordValue.Text); modbusClient.WriteSingleRegister(40001 + register, value); } catch (Exception) { MessageBox.Show("Word gönderme başarısız."); } } çözüm bulundumu? Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...