PC Seriportunu Kullnabileceğim Scada Programı Tavsiyesi?

R.K

Üye
Katılım
29 May 2008
Mesajlar
114
Puanları
1
Yaş
44
Merhaba arkadaşlar. Sizlere bir sorum olacak. Yapacağım bir uygulamada plc olmadan Scada programı ile seriporttan istediğim bilgiyi göndermek istiyorum. Şöyle ki ekrana bir deponun aydınlatma şeklini çizeceğim ve scada programı yüklü pic PC'den tıklanan aydınlatmaları seriporttan göndereceğim bilgiye göre yakacağım. Seriporta kendi yapacağım bir devreyi bağlayacağım o kısımda sorun yok. Sadece scada programı için araştırma yapıyorum. Wincc Flexible, Wincc, Advanced HMI, P-Cim, Vijeo Citect bunlardan hangisi ile bu dediğim yapabilirim? Cevaplarınız için teşekkürler...
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Bence scada opsiyonu yerine herhangi bir visual dille yapabilirsin daha mantıklı olur ve garanti olur seri portla dısar cıkmak rahat olur.Örnek olarak c#,delphi,VB gibi

C# ile yapdaha önceden yaptığım basit bir seri port haberleşmesini acık kaynak kodlarını
ekliyorum umarım işine yarar


Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;

namespace CsharbSeriPort
{
    public partial class Form1 : Form
    {
        SerialPort serialPort1 = new SerialPort();
        string Gelen_Veri, Giden_Veri;
        byte[] Gelen_BYTE = new byte[10];
        byte[] Giden_BYTE = new byte[10];
       
        
        public Form1()

        {
            InitializeComponent();
            serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_GelenData);
            byte[] Giden_VeriHex = new byte[10];
            byte[] Gelen_VeriHex = new byte[10];
           
        }
       
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {

                Giden_Veri = StringInput.Text;
                serialPort1.WriteLine(Giden_Veri);
            }
        }

        private void serialPort1_GelenData (object sender, EventArgs e)
        {
        
            Gelen_Veri = serialPort1.ReadLine();
           
        }

        private void button3_Click(object sender, EventArgs e)
        {
            String_List.Items.Clear();
            Hex_List.Items.Clear();
           
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (!serialPort1.IsOpen)
            {
                 label1.Text= "Port Open";
                serialPort1.Open();
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                Gelen_Veri="";
                label1.Text = "Port Closed";
                serialPort1.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
            String_List.Items.Add(Gelen_Veri);
            Gelen_BYTE = Encoding.UTF7.GetBytes(Gelen_Veri);
            string cıkan = BitConverter.ToString(Gelen_BYTE);
            Hex_List.Items.Add(cıkan);
           
            }          
      

         }

        private void Buffer_Clear_Click(object sender, EventArgs e)
        {
            Gelen_Veri = "";

       
        }
    }
       
}
 
PIC li cihazlara Modbus' ı öğretebilirsen sorun kalmaz. WinCC flex de Citect' te Modbus RTU konuşur. Aksi halde daha dolambaçlı yollar denemek gerekir. Scada programı haberleşme sürücülerinde "Free protokol" diye bir şey var ise bununla da olur, ama zahmetli bence.
 
Free protocol teos scada ya da vusial basic olan herhangi bir scada da kullanabilirsiniz tabi script (kodlama) yazmak sureti ile.

PIC'e modbus öğretmek daha iyi bir yöntem


PIC li cihazlara Modbus' ı öğretebilirsen sorun kalmaz. WinCC flex de Citect' te Modbus RTU konuşur. Aksi halde daha dolambaçlı yollar denemek gerekir. Scada programı haberleşme sürücülerinde "Free protokol" diye bir şey var ise bununla da olur, ama zahmetli bence.
 
Cevaplarınız için teşekkürler arkadaşlar. Benimde düşündüğüm sizin dediğiniz modbus kullanmaktı. Fakat daha önce önce hiç denemediğim için sizlerin fikirlerine başvurdum. C# ile zaten seriport uygulamaları yapıyorum. Fakat düşündüğüm scada da ekranların sık sık değişme ihtimalinden dolayı C# ile değil winCC flexible ile yapmayı düşünüyorum (C# ile formu yap compile et vs...). Bir şeyler yapmaya çalışacağım becerirsem buradan yazarım arkadaşlar yine. Kolay gelsin...
 

Forum istatistikleri

Konular
128,188
Mesajlar
915,703
Kullanıcılar
449,956
Son üye
CharmanDear

Yeni konular

Geri
Üst