Harun
-
İçerik sayısı
2 -
Katılım
-
Son ziyaret
İçerik Türü
Profiller
Forumlar
Günlükler
Takvim
İletiler bölümüne Harun kullanıcısının eklediği dosyalar
-
-
Merhaba. Enkoder okuma konusunda takıldığım bir yer var. GMT serisinden 750 W bir servo motor var. GSSF-L1 model servo sürücü var. PLC olarak GLC-396T model kullanıyorum. Yaşadığım problem enkoderden okuma yaparken, belirli bir süre verinin gelmemesi veya geç gelmesi. Sonrasında tekrar devam etmesi. Yani bir turda 2500 puls alamıyorum.
Bu olay tekrar edip duruyor. Test etmek için aynı modelde farklı bir servo taktım ve PLC yi değiştirdim ama sorun devam etti. PLC enkoder girişi olarak IP 3/4/5 kullandım. Sürücü kısmında mı yoksa yazılım kısmında mı bir ayar yapmam gerekiyor çözemedim. Yardımcı olursanız sevinirim. Teşekkürler.
GMTSoft ve C# Modbus RTU (RS232) Haberleşmesi
in GMTSoft FORUM
Oluşturuldu:
İ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."); } }