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 Haberleşme
Profinet , Modbus TCP ve 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: 123
1Universal Modbus adresleme nedir?Universal Modbus, tüm Modbus TCP cihazlarında ortak olarak kullanılan HR, C ve DI adresleme yapısıdır.Detayı açKapat

Universal Modbus, tüm Modbus TCP cihazlarında ortak olarak kullanılan standart adresleme yapısıdır.

  • HR: Holding Register, sayısal veri
  • C: Coil, yazılabilir bit
  • DI: Discrete Input, okunabilir bit

Bu adresleme yöntemi PLC markasından bağımsızdır ve tüm Modbus uyumlu cihazlarda çalışır.

Farklı marka PLC veya cihazlara bağlanırken Universal Modbus adresleri kullanılır.

2Tag değerini C# ile nasıl okuyabilirim?TagList_GetValue ile ID veya adres üzerinden oku.Detayı açKapat

İlgili adresi önce HMI_Connect.TagList’e ekleyin. Ardından ID veya adres ile okuyabilirsiniz.

PLCTag val1 = hmI_Connect1.TagList_GetValue(5);        // ID ile
PLCTag val2 = hmI_Connect1.TagList_GetValue("DB1.D4@Dint"); // Adres ile
if (val1 != null) hmI_NumericBox1.Text = val1.ToString();
3Tag değerini ID’ye göre mi yoksa adrese göre mi okumalıyım?ID performans ve bakım için önerilir; adres esneklik sağlar.Detayı açKapat

ID tabanlı okuma refactor ve adres değişimlerinde daha dayanıklıdır: TagList_GetValue(5). Adres tabanlı okuma ("DB1.D4@Dint") hızlı deneme ve POC akışlarında esneklik verir. Büyük projelerde ID standardizasyonu önerilir.

4PLC’ye C# ile nasıl değer yazarım?TagList_SetValue çağır ve kısa bir Wait ekle.Detayı açKapat

Adresi TagList’e ekledikten sonra yazın ve kısa bir bekleme ekleyin.

hmI_Connect1.TagList_SetValue(5, 10800);
hmI_Connect1.Wait(150); // yazma sonrası stabilizasyon

Adresle yazım: TagList_SetValue("DB1.D4@Dint", 10800) Mutlaka Wait() kullanın

5Bool bir tag’ı nasıl set ederim?Adresi tip belirterek yaz: "DB1.Detayı açKapat

Adresi TagList’e ekledikten sonra yazın ve kısa bir bekleme ekleyin.

hmI_Connect1.TagList_SetValue("DB1.DBX0.1@Bool", true);
hmI_Connect1.Wait(150);
6PLCTag nesnesi ile çalışmanın avantajı nedir?Nesne tabanlı erişim, Event(Olay) ve okunabilirlik.Detayı açKapat

PLCTag ile tag’ı nesne olarak yönetirsiniz:

PLCTag t = NikCom_HMI.Tools.PLCTagList_tagID_To_PLCTag(hmI_Connect1, 5);
t.Change_Tag_Value(10800);
hmI_Connect1.Wait(150);

Bu yaklaşım Event(Olay) bağlama ve daha okunabilir kod sağlar.

7Tag değeri değiştiğinde nasıl event yakalarım?Tag_Changed olayına abone olun.Detayı açKapat

Değer değişimini dinlemek için olaya abone olun:

PLCTag t = NikCom_HMI.Tools.PLCTagList_tagID_To_PLCTag(hmI_Connect1, 5);
if (t != null) t.Tag_Changed += t_Tag_Changed;
8Wait(150) neden gerekli?Yazma sonrası haberleşme stabilizasyonu için.Detayı açKapat

Bazı PLC senaryolarında yazımın hemen ardından okuma/ikinci yazım tutarsızlığa sebep olabilir. Wait(150) kısa bir gecikme ile çevrimsel iletişimi stabilize eder. Değer, donanıma ve ağ koşullarına göre ayarlanabilir.

9Veritabanından sonuçları en hızlı nasıl çekerim?DataBase_Class.Detayı açKapat

Tek çağrıda tablo döndürür ve UI’a bağlayabilirsiniz.

NikCom_HMI.DataBase_Class db = new DataBase_Class("ConnectionString");
DataTable dt = db.GetTable("SELECT * FROM tbl_Report WHERE ID=25");
dataGridView1.DataSource = dt;
10MSSQL’e INSERT/UPDATE/DELETE sorgusu nasıl gönderilir?SendQueryDetayı açKapat
NikCom_HMI.DataBase_Class db = new DataBase_Class("ConnectionString");
db.SendQuery("UPDATE ...");