Jump to content

VKU

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

    82
  • Katılım

  • Son ziyaret

  • Days Won

    3

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

  1. Merhabalar, L298N modülü Arduino modülü gibi sistemler için uygundur. IN1,2,3,4 ile Enable pinleri 5VDC giriş ile çalışır. PLC çıkışları ise 24VDC dir. Ayrıca, Bu modül amatör işlere uygundur. Devre bölücü ile deneme yapılır. Ancak tavsiye etmem.

  2. Sayın wera, çalışma üzerinden zaman geçti. Kayıtlarımı kontrol ettim. PLC den direkt PWM çıkışı almak için aşağıdaki gibi bir bağlantı yaptım. Ancak bu deneme idi. Çünkü PLC çıkışı 24V, motor kontrol kartı girişi ise 5V  idi. Bu nedenle önce kontrol kartı olmadan deneme yaptım PWM ürettiğini gördüm. Sonra bu çıkış (24V) ile hız kontrol kartını (5V) voltaj düşürücü bir devre ile irtibatladım. Ancak,  voltajı sabit tutamadığım için aşağıdaki safhayı gerçekleştirmek zorunda kaldım.

    Kontrol kartı ile ilgili olarak STM32 kartını kullandım. Farklı sistemler arasındaki haberleşmeyi de Modbus ile gerçekleştirdim. Hız kontrolü de HMI ekranından seçildi, ancak STM32 nin PWM çıkışını kullandım. Bu uygulamada PLC PWM direkt olarak kullanmadım. Sanırım Konu açılış BAŞLIĞI ile gerçekleşen biraz farklı oldu.

    image.png.20c153ec85f1816c949b7310a44d8137.png

  3. Piyasada bulunan RS 485 MAX TTL modülü ile arduino kullanarak modbus haberleşmesi yapıyorsanız bir çok sorunla karşılaşabilirsiniz. ilk sorun bu modulün çabuk ısınması ve kendini kilitlemesidir. İkinci olarak Arduino Mega dan farklı bir kart kullanıyorsanız (Nano, UNO gibi) sıkıntı ile karşılaşacaksınız. En son da loop içinde 50-100 ms. gibi denenerek bulunacak bir delay gerekli olabilir.

    İlk çözüm olarak kendi uygulamalarımda arduino tarafında nrf24 alıcı/verici modülü kullandım. PC/laptop tarafında arduino Nano ya da bir nrf24 modülü taktım. PC üzerinden vb.net/c# ile kod yazıp PLC ile TCP modbus haberleştirdim.

    İkinci çözüm olarak bir HMI modbus master olarak kullanılır. RTU'lar bu hatta bağlanır. HMI - PLC için ayrı bir hat oluşturulur. HMI'de sorgulanan RTU değerleri timer lar ile PLC ye aktarılabilir.

     

  4. I could not make a success connecting 396T PLC via my own broker on my PC.  As Hanifi Bey explained the PLC does not allow customer broker.

    But I may suggest another way to read/write Modbus addressed values between 396T PLC and PC. 

    VS 2019 Community, NUGET EasyModbusTCP by Stefan Roßmann.

    Imports EasyModbus
    Public Class Form1
     Public Mb(10) As Boolean  = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
     Public Mw(3) As Integer  ' 04x0001 ...

    ' Use a radio button to connect PLC via local ethernet IP
    ' TbxPLC_IP.Text holds PLC IP Addr.
    Private Sub RB_F1_ON_Click(sender As Object, e As EventArgs) Handles RB_F1_ON.Click
     TcpClient_1 = New EasyModbus.ModbusClient(Convert.ToString(TbxPLC_IP.Text), 502) ' PLC
     TcpClient_1.Connect()
    End Sub

    ' use a Timer with 200ms interval
    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
      ' EasyModbus lib supports discrete connection. So, every time to read/write values make a new connection
     TcpClient_1 = New EasyModbus.ModbusClient(Convert.ToString(TbxPLC_IP.Text), 502) ' PLC
     TcpClient_1.Connect()
     If TcpClient_1.Connected Then
     ' for coils
     Mb = TcpClient_1.ReadCoils(0, 7) ' Coil 0 .. 6 -> adres 1..7

    ' for holding Regs
     Mw = TcpClient_1.ReadHoldingRegisters(0, 2)

     End If
    End Sub
    End Class

  5. Adresin bir eksiğini yazarak deneyiniz.

    ReadHoldingRegister kullanıldığında, eğer Modbus 4X adresi 1 den başlıyor ve ardaşık iki adres bilgisi okunacak ise;

         ModbusClient.ReadHoldingRegister(0,2);

    4X adres 2001 den başlıyor ise, ModbusClient.ReadHoldingRegister(2000,2);

  6. 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

  7. vb.net ile linkteki örneği kullanarak Nudget dan EasyModbusTCP yükleyerek ihtiyacım doğrultusunda bir yazılım geliştirmiştim.

    Dikkat edilmesi gereken bir timer ile belirlenen tick aralığında HER SEFERİNDE yeniden bağlantı kurulmasıdır.

  8. c alt programı kullanarak 0..5 (yani 6 adet rakam üret)

    /* Intializes random number generator */

    srand(time(NULL));

    /* bir sayı üret */

    sayi=rand()%6;

     

    sayi değişkenini GMTSUITE Operandlar bölümünde WORD olarak tanımlayın. Aşağıdaki örnek 2 sn. de bir 0 ila 5 arasında random rakam üretiyor.

    Sonra tetiklemeyi nasıl yapılacak ise ardından bu alt programı çağırın. Her seferinde 0..5 arasında bir değer dönecek. IF cümlecikleri ile bu değer kullanılabilir.

    resim.png.f02664e9a7494140d466a50fa5b8c398.png

     

    Not : Çevrim dışı Simulasyon ile denedim. ANSI C deki mod işlevinin gmtsuite de farklı bir kullanımı olabilir. Gerçek ortam denemesi yapmadım.

  9. PC'de mosquitto broker çalışıyor. PLC IP 192.168.0.55, PLC adı PLC1 iken --varsayımsal topic adı ile--

    cmd'de; mosquitto_sub -h 192.168.0.55 -p "1234" -t "START"  (ayrıca PLC1/START ile de denedim)

    Error: Hedef makine etkin olarak reddetti­ğinden bağ­lantı kurulamadı. hatası döndü.

    Anaconda Sypder'da;

    from PyQt5 import QtCore, QtGui, QtWidgets

    import paho.mqtt.client as mqtt

    def on_connect(client, userdata, flags, rc): # The callback for when the client connects to the broker

        print("Connected with result code {0}".format(str(rc))) # Print result of connection attempt

        client.subscribe("PLC1/START")

    def on_message(client, userdata, msg):

        print("Message received-> " + msg.topic + " " + str(msg.payload)) # Print a received msg

        QtWidgets.QPlainTextEdit(Form).plainTextEdit_2.text=str(msg.payload)

        QtWidgets.QLabel(Form).label_2.setObjectName("str(msg.payload)")

    client = mqtt.Client("c1")

    client.on_connect = on_connect

    client.on_message = on_message

    client.connect('127.0.0.1')

    client.loop_start()

     

    çalışıyor.

     

    cmd'den;

    mosquitto_pub -t "PLC1/START" -m 1 veya -m 0 yapınca;

    phytonda; 

    Message received-> PLC1/START b'1'
    Message received-> PLC1/START b'0'

    bilgisi yazdırılıyor.

    Bu durumda yerel PC de broker kullanıldığında; 396T PLC de örneğin START (bit, modbus addr 1) değişkeni için topic adının ne olduğu önem kazanıyor. Böylece PC'den ve phyton'dan bu isimle subscribe ve publish  yapabileyim.

    Yardımlarınız için teşekkür ederim.

     

  10. Hanifi Bey, GMTSuite'de MQTT server adını PC deki ile nasıl değiştirebilirim.

    PLC'de subs./publ. tanımlama ve değişkeni pub. yapmak için hangi işlemleri yapmalıyım. Teşekkürlerimle.

  11. Merhabalar,

    Mqtt protokolünü biraz inceledim. Kullanışlı gözüküyor.

    396T'da bir subscribe/publish client oluşturup, Ethernet üzerinden PC deki Mosquito Broker aracılığı ile Pyton'da hazırladığım GUI'ye bir kaç veri aktarabilir miyim? Örneğin, motor ON/OFF, sensör değeri vb.

    Teşekkürlerimle.

     

  12. 1 faz GSSF-L1 Servo sürücü (400 W motor) ile PLC bağlantısında;
    Servo AIN1 (Analog Input)-19 --> PLC Analog +OUT
    Servo Aktif-8         --> PLC Digital Çıkış (örneğin QP3)
    Servo GNDA-21    --> PLC Analog GND
    yaptım.
    Ancak Emre Beyin pdf dokümanını incelememe rağmen

    Servo COM1(pin2) --> PLC (24 VDC girişte) VCC mi yoksa GND ucuna mı bağlanmalı, netleştirir misiniz.

    Teşekkürlerimle.

    resim.png.e57fc79cff154caffb3b7a3e5c36d125.png

     

  13. Öğretici Projeler Bölümüne; mevcut projeye ilave olarak oluşturulacak bir veya birkaç yeni senaryoya uygun olarak, PLC'nin temel fonksiyonlarını içeren örnekler verilmesinin faydalı olacağını düşünüyorum. Bu hem PLC hem HMI özellikli olabilir.

    Aslında, yardım dokümanında da fonksiyon veya birlikte çalışacağı fonksiyonlar ile PLC için bir çözüm de gösterilebilir. İlişkili fonksiyondan bu proje/ler sayfasına bağlantı konulabilir. Öğretmen okulundan bir arkadaşım toplulumuzun %85 oranında görsel temelli öğrenmeyi tercih ettiğini söyledi.

    İyi Çalışmalar dilerim.

     

     

    • Thanks 1
  14. PLC ile ilgili bazı pdf ve video kaynakların listesi aşağıdadır. 

    pdf dokümanlarda başka markalar olsa da temelini bu kaynaklardan öğrendikten sonra GMTSuite yardım dokümanı ile ihtiyacınızı karşılayabileceğinizi düşünüyorum.

    PLC Programlama Teknikleri : http://www.selcuk.edu.tr/dosyalar/files/074/Plc.pdf

    PLC Programlama : http://megep.meb.gov.tr/mte_program_modul/moduller_pdf/Plc%20Programlama.pdf

    PLC ye Hazırlık : http://www.megep.meb.gov.tr/mte_program_modul/moduller_pdf/Plc%20ye%20Haz%C4%B1rl%C4%B1k.pdf

    PLC ile Ünite Kontrolü : http://www.megep.meb.gov.tr/mte_program_modul/moduller_pdf/PLC%20ile%20%C3%9Cnite%20Kontrol%C3%BC.pdf

    PLC ve Montajı : http://www.megep.meb.gov.tr/mte_program_modul/moduller_pdf/Plc%20Ve%20Montaj%C4%B1.pdf

    Temel PLC sistemleri  : http://megep.meb.gov.tr/mte_program_modul/moduller_pdf/Temel%20Plc%20Sistemleri.pdf

    Videolar :

    GMTCNT Eğitim : https://www.youtube.com/channel/UCkTSrtTldg2x-ctHXi0CnLg

    Elektrik Mühendisliği TV https://www.youtube.com/watch?v=UFnWQSFqqJ8&list=PL7BhqOpVDO0gZ--Gz102zoxzG2xfZxhnL

    Otomasyoncunuz : https://www.youtube.com/watch?v=PHaGmsA79zk

    gAzi hocA : https://www.youtube.com/watch?v=klTo9uHDB7g

    otomasyon online : https://www.youtube.com/watch?v=4ynOQ6CNtv8

    AY-KA ROBOTİK VE AKIL OYUNLARI : https://www.youtube.com/watch?v=SmRVWoODF_Q

    Ekrem Keleş : https://www.youtube.com/watch?v=ct4K5aBZo3I

    Otomasyon Hocası : https://www.youtube.com/watch?v=jTuMaaM5Qpg

    Saygılarımla.

    • Thanks 1
  15. Merhabalar, benzer durumu yaşamıştım. Resetleyince sorun çözülmüştü.

    A. Elektriği kesin.  PLC'ye 24 VDC gelmesi lazım bir voltmetre ile girişi ölçün. PLC ek modül takılı ise sökün yeniden takın.

    B. PLC'yi resetlemek için;

    * PLC'nin enerjisi kesilir.

    * PLC reset butonuna basılır.

    * Butona basılı durumdayken PLC'ye enerji verilir.

    1.Bu durumda yaklaşık 10 saniye içinde kırmızı uyarı ledi yanıp sönmesi için beklenir.

    2.Bu süre sonunda buton bırakılır.

    Bu işlem sonunda PLC network şifresi 1234 değerine döner, IP ve DNS ayarları otomatik hale dönmüş olur. PLC içerisine yüklenmiş olan ladder program veya diğer ayarlar silinmez.

    C. Sorun devam ediyor ise; Gmtsuite Menüde Konfigürasyonda 396T seçili olduğunu teyid edin.

        Menüden cihazlara tıklayın. EKLE yapın. (Ethernet kablosu ile bağlantı yapıyorsanız kablonun sağlam olduğunu kontrol edin) USB ile bağlantı için bir driver yüklenmesi gerekiyor. http://gmtcontrol.com/tr/yuklemeler/yazilimlar.html den yazılımı yükleyin. Dikkat : driver yükleyince bilgisayarın kapatılıp açılması tavsiye edilir.

    D. Hala sorun devam ediyor ise firmayı arayın. Kolay gelsin.

     

    • Thanks 1

    vnc

    Benzer bir sorunu ben de yaşamıştım. Servis sağlayıcım ile telefon ile görüştüğümde (Uydu.net) sabit IP olması halinde Port Yönlendirebilme yapılabildiğini öğrendim.

    Sizde bir sorun isterseniz.

     

×
×
  • Yeni Oluştur...