MercanSoftYazılım Teknolojileri Günlüğü
01 Mar 2019

C# ile Baykon BX21S Terazi den bilgi okuma

C# ile Baykon BX21S Terazi

Merhaba arkadaşlar,

bu yazımda sizlere Baykon marka bir teraziden veri nasıl okunur onu göstermeye çalışacağım.

bir winform açıyoruz ve 1 combobox , 1 textbox ve 1 tanede buton ekliyoruz.

tüm kaynak kodlarını sizlerle paylaşıyorum açıklamaları kodların arasına yapıyor olacağım hadi şimdi gelin kodları bir inceleyelim.

 

public partial class Form1 : Form
{

// burada bilgisayarınızdaki tüm açık portları getirmesini istedim ve bunuda bir string arrayine attım. bunu daha sonra bir combo boxta döneceğim.
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
bool durum = false;
public Form1()
{
InitializeComponent();

Control.CheckForIllegalCrossThreadCalls = false;
}
private void Form1_Load(object sender, EventArgs e)
{

button3.BackColor = Color.Green;

// evet burada açık portları attığımız string arrayini dönerek comboboxa ekliyoruz.
foreach (string port in ports)
{
_cmbCOM.Items.Add(port);
}
}
private void button3_Click(object sender, EventArgs e)
{

if (durum==false)
{
try
{

// bağlantı için gerekli baudrate databits değerlerini giriyoruz.
serialPort1.BaudRate = 9600;
serialPort1.PortName = _cmbCOM.Text.ToString();
serialPort1.Parity = System.IO.Ports.Parity.None;
serialPort1.StopBits = System.IO.Ports.StopBits.One;
serialPort1.DataBits = 8;
}
catch (Exception ex)
{
_lblDurum.Text = “Bağlantı Hatası :” + ex.Message.ToString();
}
if (!serialPort1.IsOpen)
{
try
{

// portu açıyoruz ve bağlanıyoruz.
serialPort1.Open();
durum = true;
button3.BackColor = Color.Red;
button3.Text = “Bağlantıyı Kes”;
_lblDurum.Text = _cmbCOM.Text.ToString() + ” Portuna Bağlandı.”;
_Kilit(false);

}
catch (Exception ex)
{
_lblDurum.Text = “Bağlantı Hatası :” + ex.Message.ToString();
}
}
}
else
{
serialPort1.Close();
durum = false;
button3.BackColor = Color.Green;
button3.Text = “Bağlan”;
_lblDurum.Text = “Bağlantı Kesildi.”;
_Kilit(true);
}
}
public void _Kilit(bool durum)
{
_cmbCOM.Enabled = durum;
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// evet baykon terazilerde butona basınca terazide yazan veriyi gönderiyor bize gelen veri önünde veya arkasında bazı ekstra veriler olulyor

// örnek : Total : 21.45  gibi sadece veriyi almak için önündeki total ve : gibi karakterleri temizlemeniz gerekli _Temizle() metotunuda o nedenle kullandım

string test = serialPort1.ReadExisting();
string yeni = _Temizle(test);

textBox1.Text = string.Empty;
Thread.Sleep(1000);
textBox1.Text = _Temizle(yeni);

 

}

}

 

evet bu kadardır umarım faydalı bir yazı olmuştur sormak istediğiniz soruları lütfen yorum bölümünden sorunuz

 

herkese iyi kodlamalı günler..

C#.Net • Yazılımlarım 6 Comments

6 comments :

  1. merhabalar tam olarak aradığım bir konuda değinmişsiniz öncelikle paylaşımınız için teşekkürler. web tabanlı program yaptım kantar raporlamalarını sql ile alıyoruz aracı program var kayıt yapıyoruz, benim amacım web üzerinde kantarın değerini almak bunun için nasıl bir yol gerekiyor ,teşekkürler

  2. Slm ‘lar _Temizle methodu içeriği paylaşılmamış rica etsem paylaşırmısınız. Şidmdiden teşkkürder

  3. o kısmı atlamışım sanırım:) hemen paylaşıyorum.

    public string _Temizle(string veri)
    {
    string TemizVeri = string.Empty;
    TemizVeri = veri.Trim();
    TemizVeri = TemizVeri.Replace(“Gross”, “”);
    TemizVeri = TemizVeri.Replace(“kg”, “”);
    TemizVeri = TemizVeri.Replace(“\r”, “”);
    TemizVeri = TemizVeri.Replace(“\n”, “”);
    TemizVeri = TemizVeri.Replace(“G”, “”);
    TemizVeri = TemizVeri.Replace(“r”, “”);
    TemizVeri = TemizVeri.Replace(“o”, “”);
    TemizVeri = TemizVeri.Replace(“s”, “”);
    TemizVeri = TemizVeri.Replace(“s”, “”);
    TemizVeri = TemizVeri.Replace(“.”, “,”);
    TemizVeri = TemizVeri.Trim();
    return TemizVeri;
    }

    1. evet, her teraziye uygulanır fakat port numarası ,BaudRate değişkenlik gösterebilir ayrıca teraziden gelen ascii türü karaterlerin temizlenmesi gerekir yukarıdaki _Temizle metotundaki gibi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir