İ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.");
}
}