Pulser3 Kurulum PDF İndir

Pulser3NET API Kullanım Kılavuzu

Pulser3 Cihaz İletişim Kütüphanesi • .NET Sınıf Kütüphanesi • C#

1. Genel Bakış

Pulser3NET, Pulser3 hareket kontrol cihazlarıyla ağ üzerinden iletişim kurmak için tasarlanmış bir .NET sınıf kütüphanesidir. Kütüphane; cihaz bağlantısının yönetimi, değişken (tag) tanımlama, veri okuma/yazma ve G-kod dosyalarının FTP üzerinden cihaza aktarılması gibi işlevleri tek bir çatı altında toplar.

Kütüphanenin ana giriş noktası Pulser3NET sınıfıdır. Bu sınıf; arka planda bir DeviceManager ve bir SGProject nesnesi kullanarak cihaz listesini, değişken sözlüğünü ve iletişim durumunu yönetir.

Temel Özellikler

  • Modbus TCP (varsayılan port 502) üzerinden Pulser3 cihazıyla iletişim.
  • Sembolik değişken (tag) tabanlı adresleme — sayısal adresler yerine anlamlı isimler kullanımı.
  • Tamponlanmış (buffered) toplu okuma ile verimli veri alışverişi.
  • Bool, sayı (16/32-bit işaretli) ve string veri tiplerini okuma/yazma.
  • G-kod dosyalarının FTP ile cihaza asenkron olarak yüklenmesi.

2. Mimari ve Kavramlar

Bileşen Açıklama
Pulser3NET Uygulamanın etkileşim kurduğu ana sınıf. Tüm okuma/yazma ve bağlantı işlemleri bu sınıf üzerinden yapılır.
DeviceManager Cihazların açılması, kapatılması ve veri erişiminden sorumlu iç yönetici.
SGProject Cihaz listesini (devices) ve değişken tanımlarını (variables) tutan proje nesnesi.
Değişken (Tag) Bir cihaz adresine karşılık gelen, isimle erişilen sembolik tanım.
Buffer Tek seferde birden çok değişkenin toplu okunmasını sağlayan tampon mekanizması.

3. Hızlı Başlangıç

Aşağıdaki adımlar tipik bir kullanım akışını gösterir: nesne oluşturma, değişken ekleme, bağlanma, veri okuma/yazma ve bağlantıyı kapatma.

3.1 Nesne Oluşturma

Pulser3NET nesnesi, cihazın IP adresi ve port numarasıyla oluşturulur. Yapıcı metot cihazı otomatik olarak projeye ekler.

var pulser = new Pulser3NET.Pulser3NET("192.168.1.100", 502);

3.2 Değişken (Tag) Tanımlama

Cihaz adreslerine anlamlı isimler atamak için AddVar kullanılır. Tüm değişkenler eklendikten sonra CreateDict çağrılarak sözlük oluşturulur.

pulser.AddVar("hmi_Start", "Pulser3", "1200.1", "Baslat biti");
pulser.AddVar("hmi_Stop",  "Pulser3", "1200.2", "Durdur biti");
pulser.AddVar("dint_XAbs", "Pulser3", "...",    "X mutlak konum");

pulser.CreateDict();  // Degisken sozlugunu olustur

3.3 Bağlanma ve Kapatma

bool ok = pulser.Connect();
// ... okuma / yazma islemleri ...
pulser.Disconnect();

4. API Referansı

4.1 Yapıcı ve Bağlantı Yönetimi

Pulser3NET(string ip, int port)

Yeni bir Pulser3NET örneği oluşturur ve verilen IP/port ile Pulser3 cihazını projeye ekler.

Parametreler:

  • ip — Cihazın IP adresi (örn. "192.168.1.100").
  • port — Modbus TCP portu (varsayılan 502).

bool Connect()

Projedeki tüm cihazlarla iletişimi başlatır.

Döndürür: İşlem başlatıldıysa true.

bool Disconnect()

Tüm cihaz bağlantılarını kapatır.

Döndürür: İşlem tamamlandıysa true.

4.2 Değişken (Tag) Yönetimi

void AddVar(string tag, string device, string address, string description)

Projeye yeni bir sembolik değişken ekler. Değişken, cihaz adresine isimle erişimi sağlar.

Parametreler:

  • tag — Değişkenin benzersiz ismi (örn. "hmi_Start").
  • device — Değişkenin ait olduğu cihaz adı (örn. "Pulser3").
  • address — Cihaz üzerindeki adres (örn. "1200.1").
  • description — İsteğe bağlı açıklama.

void CreateDict()

Eklenen tüm değişkenlerden hızlı erişim için bir sözlük oluşturur. Tüm AddVar çağrılarından sonra bir kez çağrılmalıdır.

4.3 Veri Okuma ve Yazma

bool ReadBool(string address, ref bool value)

Belirtilen adresten bir boolean değer okur (tampondan). Doğrudan cihazdan okumak için ReadBoolDirect kullanılır.

Parametreler:

  • address — Değişken adı veya adresi.
  • value — Okunan değerin yazılacağı referans.

Döndürür: Başarılıysa true.

bool WriteBool(string address, bool value)

Belirtilen adrese bir boolean değer yazar.

Parametreler:

  • address — Değişken adı veya adresi.
  • value — Yazılacak değer.

Döndürür: Başarılıysa true.

bool ReadNumber(HMI_DataFormat dataFormat, string address, ref long value)

Belirtilen adresten sayısal bir değer okur. Doğrudan okuma için ReadNumberDirect mevcuttur.

Parametreler:

  • dataFormat — Veri biçimi (örn. Signed_16bit, Signed_32bit).
  • address — Değişken adı veya adresi.
  • value — Okunan değerin referansı.

Döndürür: Başarılıysa true.

bool WriteNumber(HMI_DataFormat dataFormat, string address, long value)

Belirtilen adrese sayısal bir değer yazar.

Parametreler:

  • dataFormat — Veri biçimi.
  • address — Değişken adı veya adresi.
  • value — Yazılacak değer.

Döndürür: Başarılıysa true.

bool ReadString(string address, int word_length, ref string value)

Belirtilen adresten bir metin okur.

Parametreler:

  • address — Değişken adı veya adresi.
  • word_length — Okunacak word (kelime) sayısı.
  • value — Okunan metnin referansı.

Döndürür: Başarılıysa true.

bool WriteString(string address, int word_length, string value)

Belirtilen adrese bir metin yazar.

Parametreler:

  • address — Değişken adı veya adresi.
  • word_length — Yazılacak word sayısı.
  • value — Yazılacak metin.

Döndürür: Başarılıysa true.

4.4 Tamponlanmış (Buffered) Okuma

Birden çok değişkeni verimli biçimde tek seferde okumak için tampon mekanizması kullanılır.

void BeginBuffer()

Tampon okuma döngüsünü başlatır; önceki tamponlanan verileri temizler.

void Buffer(HMI_DataType dataType, HMI_DataFormat dataFormat, string address, ushort word_length)

Bir değişkeni okuma tamponuna ekler. Okuma, ReadBufferedData çağrıldığında yapılır.

Parametreler:

  • dataType — Veri tipi (örn. Bool, Number).
  • dataFormat — Veri biçimi (örn. Signed_32bit).
  • address — Değişken adı veya adresi.
  • word_length — Word sayısı (bool için 0).

void ReadBufferedData()

Tampona eklenen tüm değişkenleri cihazdan tek seferde okur. Sonrasında ReadBool / ReadNumber ile değerler alınır.

4.5 G-Kod Dosya Aktarımı

void SelectGCode(string fileName)

Verilen G-kod dosyasını FTP üzerinden Pulser3 cihazına asenkron olarak yükler.

Parametreler:

  • fileName — Yüklenecek G-kod dosyasının tam yolu.

5. Tam Kullanım Örneği

Aşağıdaki örnek; nesne oluşturma, değişken tanımlama, bağlanma, tamponlanmış okuma ve yazma işlemlerinin tümünü kapsar. Bir Windows Forms uygulamasında zamanlayıcı (timer) tabanlı periyodik okumayı gösterir.

5.1 Başlatma ve Değişken Tanımı

pulser = new Pulser3NET.Pulser3NET(txtIP.Text,
                                   Convert.ToInt32(txtPort.Text));

// Ozel degiskenleri ekle
pulser.AddVar("hmi_Reset", "Pulser3", "1200.0", "");
pulser.AddVar("hmi_Start", "Pulser3", "1200.1", "");
pulser.AddVar("hmi_Stop",  "Pulser3", "1200.2", "");
pulser.AddVar("hmi_RAPID", "Pulser3", "1201.12", "");
pulser.AddVar("bit_ESP",   "Pulser3", "1220.0", "");

// Degisken sozlugunu olustur
pulser.CreateDict();

5.2 Bağlanma

bool result = pulser.Connect();
if (result == true)
{
    timer1.Start();
    _connected = true;
}

5.3 Periyodik Tamponlu Okuma

pulser.BeginBuffer();
pulser.Buffer(HMI_DataType.Bool,   HMI_DataFormat.Signed_16bit, "bit_ESP",   0);
pulser.Buffer(HMI_DataType.Bool,   HMI_DataFormat.Signed_16bit, "hmi_RAPID", 0);
pulser.Buffer(HMI_DataType.Number, HMI_DataFormat.Signed_32bit, "dint_XAbs", 0);
pulser.Buffer(HMI_DataType.Number, HMI_DataFormat.Signed_32bit, "dint_YAbs", 0);

pulser.ReadBufferedData();

pulser.ReadBool("bit_ESP",   ref eStop);
pulser.ReadBool("hmi_RAPID", ref rapid);
pulser.ReadNumber(HMI_DataFormat.Signed_32bit, "dint_XAbs", ref xAbs);
pulser.ReadNumber(HMI_DataFormat.Signed_32bit, "dint_YAbs", ref yAbs);

5.4 Değer Yazma

// Buton ile bir biti degistirme
eStop = eStop ^ true;
pulser.WriteBool("bit_ESP", eStop);

// Basili tutunca hareket (jog) ornegi
pulser.WriteBool("hmi_XP", true);   // MouseDown
pulser.WriteBool("hmi_XP", false);  // MouseUp

5.5 Bağlantıyı Kapatma

timer1.Stop();
pulser.Disconnect();
_connected = false;

6. Notlar ve İpuçları

  • CreateDict metodunu tüm AddVar çağrılarından sonra yalnızca bir kez çağırın.
  • Tamponlanmış okumada döngü her zaman BeginBuffer ile başlamalı, Buffer çağrılarından sonra ReadBufferedData ile tamamlanmalıdır.
  • ...Direct ile biten metotlar (ör. ReadBoolDirect) tampon yerine doğrudan cihazdan okur; anlık ve seyrek okumalar için uygundur.
  • G-kod aktarımı asenkrondur; büyük dosyalarda yükleme arka planda devam eder.
  • Bool değişkenleri tamponlarken word_length değerini 0 olarak verin.