Rs232 bilgisayar kontrolü

+ Yorum Gönder
Elektronik ve Elektronik Bölümü Bölümünden Rs232 bilgisayar kontrolü ile ilgili Kısaca Bilgi
  1. 1
    Fatal
    Özel Üye
    Reklam

    Rs232 bilgisayar kontrolü

    Reklam



    Rs232 bilgisayar kontrolü

    Forum Alev
    Seriport; RS232 ile haberleşmesinin nasıl yapılabileceğini yazıyorum. Aslında 2.0’dan önceki Framework sürümlerinde portlarla haberleşme ile ilgili bir sınıf yoktu. Bu yüzden seri port haberleşmesi Windows API leri kullanılarak yapılıyordu. Bu eksiklik .NET 2.0 ile giderilmiş görülüyor. Framework 2.0 bizlere System.IO.Ports isimli yeni bir sınıf sağlamakta. Bu makalemizde el sıkışma(handshaking) veya akış kontrolü(flow control) gibi seri haberleşme kavramlarına değinmeyeceğiz. Amacımız .NET 2.0 ile gelen System.IO.Ports sınıfını incelemek olduğu için seri port haberleşmesi konusunda deneyimli olduğunuzu varsayıyorum Öte yandan detaylı port işlemleri için hand shaking,flow control gibi kavramları ayrıntılı olarak araştırmanızı öneririm.
    RS232’yi Tanıyalım:

    Pin Sinyal Anlamı Pin Sinyal Anlamı 1 taşıyıcı data sezme 6 veri set etme 2 alınan data(okunanlar) 7 gönderme için istek 3 yollanan datalar(yazılanlar) 8 silme için istek 4 veri terminal hazırlama 9 modemden gelen sinyaller 5 toprak Seri portlar, bilgisayarımız üzerinde hem veri yollayıp hemde veriyi aynı anda alarak çalışmaktadır. Bu tarz çalışma şekline terminolojide full-duplex denmektedir. Kullanacağımız seri portlar da full-duplex çalışmaktadır. Seri port haberleşmede 1 byte’lık veriyi transfer ederken, tek kablo üzerinden bitlerini belirli zaman aralıklarıyla tek tek yollamaktadır. 1 byte’lık veriyi bit bit yollarken elbetteki belirli bir sıra ve düzene göre yollamaktadır Çalışmasını internette kullanılan TCP/IP’ye kısmen benzetebiliriz TCP/IP’de gönderilecek olan pakete hedef ve kaynak ip adresleri eklenerek haberleşme sağlanır. Seri haberleşmede ip’lerin yerini start ve stop bitleri denilen terimler almaktadır. Yani veri önce start bit,sonra veri ve son olarakta stop bit şeklinde yollanır RS232, haberleşmede çok önemli bir kavramdır. Çok fazla detaya inmemiz makale sınırlarımızı aşacağı için sadece temel haberleşmedeki kavramlar ele almakla yetindim
    System.IO.Ports sınıfından kendimiz nesne yaratarak kullanabileceğimiz gibi Whidbey ile sürükle-bırak yöntem ile de bu nesneyi kolayca oluşturabiliriz.
    ------Port ------Port1=new ------Port( );
    yada

    şeklinde ekleme yapabiliriz
    ------port’un bileşeninin özelliklerini Properties penceresinden kolayca ayarlayabiliriz. Bu özellikler aşadaki şekilde gözükmektedir

    Özelliklerde dikkatimizi çeken ReadBufferSize özelliğidir. Bu özellik porttan okunan değerin bekletildiği yerdir. Bu değer default olarak 4096’dır ama isteğe bağlı olarak (uygulamanın durumuna bağlı olarak) değiştirilebilir ------Port sınıfından yarattığımız nesnede en fazla kullanılan metotlar ise WriteLine() ve ReadLine() metotlarıdır. Adlarındanda anlaşılacağı gibi biri yazma diğeri ise okuma işlemini yapmaktadır. Bunun yanı sıra portları açan ve kapayan Open(), Close() gibi metotları da bulunmaktadır. Open() ve Close() metotlarından bahsetmişken şunu belirtmekte fayda var. Eğer bir port açıksa ve siz bu portu tekrar açma isteğinde bulunursanız hata ile karşılaşırsınız Aynı şekilde kapalı bir porttan da veri okumaya kalkışırsanız gene bir hata mesajı alırsınız. Bu gibi durumları önlemek için IsOpen() methodu kullanılmaktadır. Bu metot ile portun açık olup olmadığı belirlenir ve bu metot bool türünden bir değer döner
    Porttaki haberleşmeyi görmek için basit bir mesajlaşma sistemi geliştirelim Bu sistemde DB 9 denilen female-female kabloları iki bilgisayara bağlayınız Eğer iki bilgisayara sahip değilseniz, küçük bir tel ile 2. ve 3. pinleri kısa devre yapın. Böylelikle gönderdiğiniz veriyi tekrardan geri almış olacaksınız. Aşadaki formda yaz ve oku butonlarının olaylarına bakalım
    private void yaz_click(object sender, EventArgs e)
    {
    if (!------Port1.IsOpen)
    {
    ------Port1.Open();
    }
    string sendmesaj = textBox1.Text+"-->>>>";
    ------Port1.WriteLine(sendmesaj);
    }

    private void oku_click(object sender, EventArgs e)
    {

    string i=------Port1.ReadLine();
    textBox2.Text ="<<<<---"+i;
    ------Port1.Close();

    }
    İlk önce göndereceğimiz veriyi yazıyoruz ve yaz buttonuna basıyoruz Bu noktada; bu string byte dizine çevriliyor ve çevrim ASCII kodlama ile yapılıyor. Bu yüzden karşı tarafta türkçe karekterlerin yerine ? çıkıyor

    Notlar:
    • Eğer iki bilgisayarı bağlayarak deneme yapıyorsanız;
      Her iki bilgisayarın aynı porta takılı olduğundan emin olun,
      Her iki bilgisayar içinde Bound Rate’lerin aynı olduğundan emin olun. Bu hız senkronizasyonu sağlayacaktır.
    • Her iki sistemde de .NET Framework 2.0(beta) ve programın yüklü olup olmadığını kontrol edin.
    • Tek bilgisayarda çalışıyorsanız 2 ile 3 pinlerini kısa devre yaptığınızdan emin olun.
    Bu bileşenin çalışabildiği platformlar:
    Windows Millennium Edition, Windows 2000, Windows 2000 Server, Windows 2000 Advanced Server, Windows XP Home Edition, Windows XP Professional, Windows Server 2003, .NET Compact Framework.
    ------port’un Diğer Özellikleri
    Genel Özellikler
    Özellik İsmi: Tanımı
    BaseStream Alt akım(Stream) nesnesini ------port için döndürür.
    BaudRate Seri portun BaudRate’ini geri dönder veya ayarlamamızı sağlar.
    BreakState
    Durdurma sinyalinin durumunu almaya veya ayarlamaya yarar.
    BytesToRead Alınan buffer bölgesindeki verinin boyutu geri döner.(Sadece okunabilir)
    BytesToWrite Yazılan buffer bölgesindeki verinin boyutunu döner.(Sadece okunabilir)
    CDHolding Taşıyıcı data sezme bitinin durumunu döner.(Sadece okunabilir)
    CtsHolding Silme için istek bitinin durumunu döner.(Sadece okunabilir)
    DataBits Bir byte’taki standart boyutunu ayarlamaya veya büyüklüğünü almaya yarar. DsrHolding Veri set etme bitinin durumunu döner. DtrEnable Veri Terminal hazırlamanın durumunu belirtiriz. Encoding Veri transferi başlamadan önceki encoding şeklinin seçilmesini sağlar veya ayarlamamızı sağlar. Handshake Seri porttaki handshaking protokolünü ayarlamamızı sağlar. IsOpen Seri portun açık olup olmadığını geri döner.(Sadece okunabilir) Parity Parity kontrol protoklunun ayarlamak için kullanılır. PortName Port ismini belirtmemizi sağlar. ReadBufferSize Seri porttan okunan verilerin bufferdaki ne kadar yer kaplayacağını belirleriz. WriteBufferSize Seri porta yazılan verilerin bufferdaki ne kadar yer kaplayacağını belirleriz.



  2. 2
    AKBİLE
    Bayan Üye

    Cevap: Rs232 bilgisayar kontrolü

    Reklam



    Rs232 bilgisayar kontrolü, fazlasıyla teknik bir konu buraya elektronik mezunu birisini davet ediyorum lütfen yorumlarınızı bekliyoruz







+ Yorum Gönder
5 üzerinden 5.00 | Toplam : 1 kişi