Jump to content

Qurbanli Vusal

Forum kullanıcıları
  • İçerik sayısı

    16
  • Katılım

  • Son ziyaret

İletiler bölümüne Qurbanli Vusal kullanıcısının eklediği dosyalar

  1. 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?

  2. Merhaba,Ben bilgisayar ile GMT 196R plc-ni RS-232 üzerinden haberleşdirmek istiyorum.

    ilk önce plc üzerinde olan RJ11 portundan (1-ci sekil)  şekilde rs232 portuna çevirdim(GND-GND, RX-RXD, TX-TXD)

    Bilgisayar üzerinde rs232 portu bulunmadığından onu usb portuna cevirdim(2-ci şekil)

    Modscan32 ile plc nin rs232 portu her iksi eyni ayarda(3-cu sekil)

    son olaraq plc-ni bağladığım com portuna MODSCAN32 programı ile bağlandım fakat orda TİME-OUT erroru alıyorum.

    Problem ne ola bilir?

     

    image.png.327d2cad181a67693e55d533a932269e.png

    image.png.9d66d0ea8db003831fec951400806456.png

    image.png.821b53c200a110b1be99f95da76b7901.png

    image.png.4ce377b843afaf77e5488b4f24231b5e.png

    image.png

  3. 58 minutes ago, Hanifi said:

    RS485 ve RS232 üzerinden Modbus RTU protokolü ile 196 ve 296 serileri ile haberleştirmek mümkündür.  Eğer Ethernet portu üzerinden yapmak isterseniz, Modbus TCP  protokolü ile 396 veya 496 serilerini kullanmanız gerekir.

    bilgisayar uzerinde rs232  portu yok.Rs232 ni usb-ye cevirib Modbus RTU kullana bilirmiyim?

     

  4. 20 hours ago, VKU said:

    Laptop/desktop ile TCP aracılığı ile PLC oku/yazmak.

    VB:NET de iken; (Not : C# örneği tüm veri tiplerini içeriyor, daha detaylı.)

    Nudget dan EasyModbusTCP yükleyin.
    Form1  oluşturun. Bir Button ekleyin

    PLC de iki adet değişken tanımlayın BIT olarak. ve Modbus kısmını aktif yapın.
    PLC de RUN yapın. Simulasyonda iken bu iki değişken değerlerini SET veya RESET ile değiştirin.

    Aşağıdaki kodu deneyebilirsiniz.
    Aslında herhangi bir tanım yapmadan PLC IP ile bağlanıp veri oku/yaz yapıp işi bitiriyorsunuz.

    -----------------------
    Imports EasyModbus

    Public Class Form1
      Public TcpClient_1 As ModbusClient
      Public Mb(2) As Boolean

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      TcpClient_1 = New EasyModbus.ModbusClient(Convert.ToString("PLC IP nizi buraya yazın."), 502) ' PLC
      TcpClient_1.Connect()
      if TcpClient_1.Connected then
          Mb = TcpClient_1.ReadCoils(0, 2) ' Sıfırdan başla 2 kayıt oku.
          console.writeln(Mb)
      End if
    End Class

    20 hours ago, VKU said:

     

    Terslikden PLC Modbus TCP ni desleklemiyor.Modbus RTU kullanmam lazim

     

  5. 24 minutes ago, beyzagokdemirr said:

    Merhaba Vusal Bey

     

    GMTCNT PLC ler Modbus RTU (GLC 196-296-396-496 Serileri) ve Modbus TCP (GLC 396-496 Serileri) protokollerini desteklemektedir.  3. Party yazılımlarda belirttiğim protokolü destekleyen kütüphane dosyaları bularak kullanabilirsiniz.

     C# ile yazılmış örnek programı aşağıdaki linkten inceleyebilirsiniz.

     http://forum.gmtcontrol.com/index.php?/topic/914-gmtsuite-modbus-tcp-ile-c-program-%C3%B6rne%C4%9Fi/

     

     İyi çalışmalar

    tesekurrler

     

  6. 14 hours ago, sukarakila said:

     min ve max değerleri Loadcell'den gelen değerlerdir. Örnek programda min_cal ve max_cal değişkenlerini aktif ettiğinizde otomatik olarak Lineer Fonksiyon X1 ve X2 değişkenlerine gönderilir. Yapmanız gereken hafif olan ağırlığınızı loadcell üzerine koymak ve koyduğunuz ağırlığın değerini gerçekmin değişkenine yazmak ve min_cal  bitini tetiklemek. Sonra da yüksek olan ağırlığınızı loadcell üzerine koymak ve koyduğunuz ağırlığın değerini gerçekdeger değişkenine yazmak ve max_cal  bitini tetiklemek. Eğer sisteminizde de dara varsa aynı işlermleri dara için de gerçekleştirmeniz gerekir.

    Tesekkur ederim

     

  7. 52 minutes ago, beyzagokdemirr said:

    Merhaba, 

    Sorunuzdan anladığım kadarıyla Loadcell uygulamalarında kalibrasyon yaparken ağırlığını bildiğimiz en az 2 ürüne ihtiyacımız vardır. Kalibrasyon yaparken düşük olan ağırlığın değeri gercekmin değişkenine yazılır. min değişkeni kalibre edilir. Aynı şekilde gercekdeger değişkeni ise yine ağırlığını bildiğimiz yüksek olan ağırlık değeridir. Onu da değişkenin içerisine yazıp max değişkenini kalibre etmemiz gerekir. 

     

     

    min ve max degerlere loadcellin olcme araligimi dahil edilmeli?

     

×
×
  • Yeni Oluştur...