NikCom HMI — PLC bağlantısı ve HMI görseli
Modern HMI Tasarımı
Endüstriyel arayüzleri hızlıca oluştur, yüksek performans ve şıklıkla yayınla.
PLC Entegrasyonu
Profinet , TCP protokolleri ile sorunsuz bağlantı ve veri akışı.
Lisans Yönetimi
Güvenli lisanslama, çevrim içi aktivasyon ve rahat sürüm takibi.
Toplam: 104
1HMI_SQL ile hangi senaryolarda doğrudan veritabanıyla çalışmalıyım?Kalıcı log, rapor, arşiv ve izlenebilirlik gerektiren süreçlerde.Detayı açKapat

HMI_SQL, proses verilerinin kalıcı depolanması ve raporlanmasında kullanılır.

  • Üretim kayıtları , Kolay Ekleme-Silme-Sorgu Alt Yapısı
  • Kayıtların DataGridView de Gösterimi
  • Raporlama Alt Yapısı , Kolay Sorgulama
2NumericBox ile sahada operatör hatalarını nasıl azaltırım?Sayı Çarpanı ve Sayı_Format ile güvenli veri girişi.Detayı açKapat
  • Sayı Çarpanı: Örn. servo pozisyonlarında girilen değeri çarpıp PLC’ye gönderir, PLC’den geleni bölüp ekranda gösterir (100 → 1000 gibi).
  • Format: Virgül/kademe ayarları ile beklenen sayı yapısını garanti altına alırsınız.
  • Min/Max: Limitlerle yanlış değer girişini engellersiniz.
3TCP Only Örnek Şablon Projeyi nerede/ nasıl kullanmalıyım?Cihazınıza uyarlayın; tip/ad/değer tutarlı olsun.Detayı açKapat

Örnek Şablon Projeyi (İçerisinde TCP Server Yapısıda Mevcut) cihazınıza entegre edin.
Tag ad/tip/değer alanlarını birebir eşleştirip sahada ölçümlerle doğrulayın.

4Klasör ve dosya yerleşimi için önerilen düzen nedir?C:/ veya D:/ altında NikCom_HMI klasörü; DLL ve örnekler burada dursun.Detayı açKapat

Projenizin dışında, kökte C:\\NikCom_HMI veya D:\\NikCom_HMI klasörü oluşturup NikCom_HMI.dll ve örnek dosyaları burada tutmanız önerilir; güncelleme/taşıma süreçleri kolaylaşır.

5Free’den sonra hangi durumda TCP Only, hangi durumda Full önerilir?Cihazla doğrudan TCP/IP gerekiyorsa TCP Only; endüstriyel kapsam gerekiyorsa Full.Detayı açKapat

Seçim kuralı: PLC olmadan özel cihaz ile soket haberleşmesi → TCP Only; alarm, reçete, SQL ve yetki gibi endüstriyel gereksinimler → Full.

6C# ile (Kod İle) NikCom HMI Kütüphanesinin bazı fonksiyonlarının kullanımını örneklendirir misin ?PLC den Değer Alma - Gönderme , PLCTag kullanımı , User Sınıfı ve DataBase_Class Kullanımı ile ilgili örneklerDetayı açKapat
                                            
//Aşağıda PLC den Değer Alma - Gönderme , PLCTag kullanımı ve DataBase_Class Kullanımı ile ilgili örnekler erilmiştir.          

private void hmI_Button_Click(object sender, EventArgs e)
{

    //-----------------------PLC den Değer Alma
    //Öncelikle İlgili PLC Adresini HMI_Connect nesnesinin TagListine e ekleyiniz

    //PLC de değer alma , Tag List ->  Tag ID ile
    object _tagDegeri_1 = hmI_Connect1.TagList_GetValue(5);  //ID si 5 olan tagın değerini PLC den Alır
    if(_tagDegeri_1 != null)
    {
        hmI_NumericBox1.Text= _tagDegeri_1.ToString();  // Değeri NumericBox da gösterdik , Windows Form Elemanlarında da gösterebilirsiniz. Örn TextBox
    }


    //PLC de değer alma , Tag List ->  Tag Adresi ile
    object _tagDegeri_2 = hmI_Connect1.TagList_GetValue("DB1.D4@Dint");  // 1 Nolu DB de D4 veri alanının değerini PLC den Alır
    if (_tagDegeri_2 != null)
    {
        hmI_NumericBox1.Text = _tagDegeri_2.ToString();  // Değeri NumericBox da gösterdik , Windows Form Elemanlarında da gösterebilirsiniz. Örn TextBox
    }


    //-----------------------PLC e Değer Yollama
    //Öncelikle İlgili PLC Adresini HMI_Connect nesnesinin TagListine e ekleyiniz

    //PLC e değer yollama , Tag List ->  Tag ID ile
    hmI_Connect1.TagList_SetValue(5, 10800);  // ID si 5 olan Tag a 10800 değeri yollanmıştır (Bu şekilde PLC e veri yollayabilirsiniz)
    hmI_Connect1.Wait(150); //PLC 'e veri yollandığında satır beklemesi yapınız




    //PLC e değer yollama , Tag List ->  Tag Adresi ile
    hmI_Connect1.TagList_SetValue("DB1.D4@Dint", 10800);  // 1 Nolu DB de D4 veri alanına 10800 değeri yollanmıştır (Bu şekilde PLC e veri yollayabilirsiniz)
    hmI_Connect1.Wait(150); //PLC 'e veri yollandığında satır beklemesi yapınız


    //PLC e değer yollama , Tag List ->  Tag Adresi ile  , Bool Değer Yollama (Tag ID ilede Yollanabilir)
    hmI_Connect1.TagList_SetValue("DB1.DBX0.1@Bool", true);  // 1 Nolu DB de O.1 veri alanı true yapılıyor (Tag ID ilede Yollanabilir)
    hmI_Connect1.Wait(150); //PLC 'e veri yollandığında satır beklemesi yapınız



    //-----------------------Tag List den PLCTag alma
    //PLC e değer yollama 
    PLCTag _tag_1 = NikCom_HMI.Tools.PLCTagList_tagID_To_PLCTag(hmI_Connect1, 5);  //hmI_Connect1 in TagList inden ID si 5 Olan Tag alındı
    _tag_1.Change_Tag_Value(10800); // ID si 5 olan Tag a 10800 değeri yollanmıştır (Bu şekilde PLC e veri yollayabilirsiniz)
    hmI_Connect1.Wait(150);


    //PLC e değer yollama 
    PLCTag _tag_2 = NikCom_HMI.Tools.PLCTagList_Adres_To_PLCTag(hmI_Connect1, "DB1.DBX0.1@Bool");
    _tag_2.Change_Tag_Value(true);  // 1 Nolu DB de O.1 veri alanı true yapılıyor 
    hmI_Connect1.Wait(150);


    PLCTag _tag_3 = NikCom_HMI.Tools.PLCTagList_tagID_To_PLCTag(hmI_Connect1, 5);  //hmI_Connect1 in TagList inden ID si 5 Olan Tag alındı
    if(_tag_3 != null)
    {
        hmI_NumericBox1.Text = _tag_3.Tag_Value_in_PLC.ToString();   // Değeri NumericBox da gösterdik , Windows Form Elemanlarında da gösterebilirsiniz. Örn TextBox
    }



    //-----------------------PLC Tag ile Event (Olay Tanımlama) Tanımlama
    PLCTag _tag_4 = NikCom_HMI.Tools.PLCTagList_tagID_To_PLCTag(hmI_Connect1, 5);  //hmI_Connect1 in TagList inden ID si 5 Olan Tag alındı
    if( _tag_4 != null)
    _tag_4.Tag_Changed += _tag_4_Tag_Changed;



    //----------------------DataBasae_Class Kullanımı
    //Eğitim Bölümünden DataBasae_Class Kullanımı için Video İzleyebilirsiniz

    //3 Satırda tablo verilerini alma
    NikCom_HMI.DataBase_Class _db = new DataBase_Class("ConnectionString i buraya Giriniz");
    DataTable dataTable  = _db.GetTable("Select * from tbl_Report Where ID=25"); //Select Sorgusu
    dataGridView1.DataSource = dataTable;

    //MSSQL e Sorgu Yollama
    _db.SendQuery("insert , Update , Delete Sorgunuzu buraya yazabilirsiniz");    
                       


    //----------------------User (Kullanıcı İşlemleri)

    //Login Ekranını Getirir ve Kullanıcının Giriş yapmasını Sağlar
    hmI_Connect1.Login();

    //LogOut Yapar
    hmI_Connect1.LogOut();

    //Login Yapmış Kullanıcı ID sini verir , isterseniz bu veriyi PLC e yollayabilirsiniz
    int user_ID = hmI_Connect1.Login_Active_User_ID;

    //User sınıfı ile kullanıcı bilgilerini öğrenebilirsiniz , Önemli : User sınıfında Kod ile yapacağınız değişiklikler kalıcı olmaz 
    User kullanici = hmI_Connect1.User_ID_To_User(user_ID);     
           
}


private void _tag_4_Tag_Changed(object sender, Tag_Value_Changed_EventArgs e)
{
   //Tag Değeri Değiştiğinde Bu Olay Çalışır
   if(e.new_Tag_Value != null)
        hmI_NumericBox1.Text=e.new_Tag_Value.ToString();
}

                        
7Free’den sonra TCP Only mi Full mü seçmeliyim?Cihazla TCP/IP gerekiyorsa TCP Only; endüstriyel modüller için Full.Detayı açKapat

Özel cihaz / Arduino → TCP/IP → TCP Only. Alarm/Reçete/SQL/IOList/Security gibi endüstriyel modüller → Full.

8Saha problemlerinde kök neden analizine nasıl yaklaşırım?Sistematik: ağ, port, tag, yetki, bileşen, donanım sırasıyla.Detayı açKapat
  1. Ağ ve portlar (erişim/engeller).
  2. Tag adres/tip doğrulama.
  3. Yetki/güvenlik kısıtları.
  4. Bileşen davranışı ve olay akışları.
  5. Donanım/OS kaynak sınırlamaları.
9HMI_DateTime ve PLC tarih/saat verisiPLC den tarih saat verisi alınır veya PLC e tarih saat verisi gönderilirDetayı açKapat

HMI_DateTime ile PLC den tarih saat verisi alınabilir veya PLC e tarih saat verisi yollayabilirsiniz

10Full lisansla geliştirilen bir ekranın tipik yaşam döngüsüTasarım → Olay/Komut → Test (Offline/Online) → Log/Rapor.Detayı açKapat
  1. Tasarım: Bileşenler yerleşimi ve tag bağları.
  2. Olay/Komut: HMI_Button/Trigger ile davranışlar.
  3. Test: Önce Offline, sonra Online sahada doğrulama.
  4. Log/Rapor: HMI_SQL ile kalıcı kayıt ve raporlar.