C# Scada Tasarımı

Başlatan fractal, 24 Şubat 2012, 10:26:09

fractal

c# scada tasarım teknikleri nelerdir?seriport modbus ascii kullnıyorum plc ile haberleşmek için.datalar sürekli nasıl okunur.nasıl güncellenir.temel iskelet nasıl olmalıdır...

Restantum cogniscutur Quantum deligutur

influx

Fultek in hazırladığı activex ler var onlardan satın alabilirsin, yada opc sever kullanabilirsin.

http://www.fultek.com.tr/Modbus.html

fractal

ben hazır istemiyorum.örneğim plc den d100 d101 d102........d120 datalarını modbus ascii ile sürekli okumak istiyorum.aynı zamanda belli butonlarla m0,m1,m2.....................m20 gibi plc bitleri  set,reset,toggle,momentary gibi kontrol etmek istiyorum.belli data adreslerinede veri yazmak istiyorum...
kendi yaptığım programda bu okuma yazma yapısını tam oturtamadığım için sıkıntı yaşıyorum.ilk başta düzgün çalışıyor sonra haberleşme yavaşlıyor.bazen butonları kontrol edemiyorum gibi gibi...

okuyacağım yada yazacağım plc bölgelerin adreslerini bulup protokole göre hex kodlarını bulup seriporttan gönderiyorum

SerialPort1.WriteLine(":01031384000164" + (char)13 + (char)10); // d900 adresini okuma

timer ile tüm dataları güncellemek istedim olmadı.datareceive event kullanarak yapmayı deneyeceğim.
Restantum cogniscutur Quantum deligutur

influx

ilk önce modbus yapısı güzelce araştır, daha sonra hangi plc de kullancaksan plc ye ait fonksiyonlarıda bilmen gerekli mesela siemens s7 1200 için comm_load ve master yada slave foksiyon bloklarını kullanarak yapabilirsin, bu plcden plcye değişir. kendini geliştirmek için yapacaksan araştırabilirsin fakat proje geliştiriyorsan bunlarla uğraşma hazırı kullan geç...

ogunduru

Fultek'in C# ile hazırlanmış activex yazılımını kullanmak her açıdan daha mantıklı bir çözüm. 100 usd civarında bir fiyat oldukça makul sayılır. Modbus protokolü etkin bir şekilde kullanmak için harcayacağınız zamanın maliyeti daha yüksek olmalı.
Matematik Mühendisi bir hobi elektronikçi

fractal

kullandığım plc nin modbus protokülünü cözdüm onda bir sorun yok.data okuma yazma bit okuma yazma kodları hex adresleri hepsi ok.
Restantum cogniscutur Quantum deligutur

transistor

hangi plc kullanıyorsunuz
Herşey Vatan İçin.

Murat Mert

Alıntı yapılan: transistor - 27 Şubat 2012, 10:01:36
hangi plc kullanıyorsunuz

Yanlış değilsem delta kullanıyor Fractal hoca.
mert07

fractal

evet.delta plc.:))..ben plc tarafında sorun yaşamıyorum.c# tarafında neler yapabilirim diye araştırıyorum.örneğin plc için wpl soft programında online oluduğunuzda tüm giriş çıkış data timer counter değerleri görülebiliyor ve maniple edebiliyorsunuz.ben c# ile böyle bir program yapmaya kalksam nasıl olur gibi.örneğin programımda kullanılan giriş çıkış timer counter değerleri aynı anda nasıl hem okuyacağım hem yazabileceğim hemde programın diğer fonsiyonlarını kullanabileceğim...
Restantum cogniscutur Quantum deligutur

transistor

fikir vermesi açısından siemens s7-300 için yaptığım gui nin resmini veriyorum benim yaptığım seninkinden farklı olarak pc ile plc ler arasında iletişimi ayrı bir devre yapıyor tüm kodlar onun üzerinde pc ile olan irtibatı sağlıyor ayrıca iletişim tcp üzerinden ;
gui den plc leri 11 farklı şekilde kontrol edebiliyorsun
1. run a geçirme
2. stop a geçirme
3. istediğin blok ve adreslere yazma
4. hız testi yapma
5. istediğin blok ve adresleri okuma
6. istediğin blok ve adresleri silme
7. szl okuma
8. tüm szl bloklarını okuma
9. ram den roma kopyalama
10. blokları okuma
11. bit düzeyinde okuma

tüm bunları online olarak okumak istiyorsan timer veya başka bir şekilde okumakta senin elinde

Herşey Vatan İçin.

fractal

C# ile Indusoft Web Studio tarzı birşey yapılabilirmi?Indusoft Web Studio opc server kullanılıyor sanırım.tam olarak opc server nedir?
Restantum cogniscutur Quantum deligutur

ogunduru

#11
OPC server için özet olarak, PLC'lerin üzerinde barındırdıkları verileri biriktirebilecekleri (server'a bilgi aktarmak gibi), networke bağlanarak veri paylaşım kabiliyetini arttırabilecekleri bir uygulamadır. Fabrikalarda daha çok verinin toplanması için kullanılıyor.

C# resmini verdiğin türde bir uygulamayı elbette profesyonelce yapabileceğin araçlara sahip. Muhtemelen ihtiyacının fazlası...
Matematik Mühendisi bir hobi elektronikçi

fractal

indusoft scada programını inceledim.bu programda tag lar oluşturuluyor.örneğin plc den okuma yazma yapılacak tüm giriş ,çıkış,timer,counter,data adresleri tek tek giriliyor.okuma ,yazma, okuma-yazma yapıp yapmayacağı belirleniyor.şimdi c#ile tasarım yaparken bu iş nasıl olucak.bir alt program sürekli bizim oluşturduğumuz bu adreslerimi okuyup yzacak.yoksa hangi sayfada ise osayfadaki adreslermi kullanılacak.birde sadece okuma ve sadece yazma yapılırkenki durum ile okuma yazma yapmaarasındaki fark nedir.zaten hatakontrolü olamayackmı?
x0,,,,,,,,x50 kadar okuma yapacaksam teker teker okuma yerine tek seferde okuma yapmak arasında bir fark varmıdır?
indosoft tag sınırlaması vardı.bunun nedeni tam olarak sınırlı zamanda sınırlı giriş çıkış data okumaklamı alakalıdır?
Restantum cogniscutur Quantum deligutur

ogunduru

#13
PLC'lerin hepsinde kullanılan standart bazı protokoller var. Bunlardan en popüler olanı Modbus. RS485 gibi bir seri iletişim kullanacaksan Modbus/RTU veya Modbus/Text  protokolü ile bilgiyi bilgisayara aktarmak mümkün. Modbus protokolünde PLC üzerinde hazır olan verinin adreslerini belirterek okuma yapılıyor. Bunu yapabilmek için PLC yazılımının da bilgiyi aynı protokole göre iletmesi için ayarlanması gerekli. Ethernet haberleşmesi yapılacaksa yine Modbus protolünün TCP versiyonu var. Benzer yaklaşımla bu kullanılabilir. Modbus protokolü ile haberleşen kodşarı yazmak çok ciddi bir iş. Bunu yapmak yerine 100 USD verip C#'da yazılımış hazır bir modülü almak bence en iyisi. (www.fultek.com.tr)

OPC server seçeneğinde ise durum tamamen farklı. PLC veriyi OPC server üzerindeki veritabanına yazıyor. C# veya başka dille yazılmış bir programa sadece verşitabanından bilgiyi okumak kalıyor.

Başka seçeneklerde var. Örneğin Siemens PLC'leri için PC'ye takılan PCI kartlar var. Başka markalarda da vardır belki ama ben kullanmadım. Bu PCI kartlar ile gelen yazılım bilgisayara kurulunca, PLC üzerindeki veri adreslerini girerek veriye ulaşmak son derece kolay. Bu kartları kullanalı 5 sene olduğu için ismini şu an hatırlamıyorum, ama siemens web sitesinden bulunabilir.

Kolay gelsin
Matematik Mühendisi bir hobi elektronikçi

fractal

SerialPort1.WriteLine(":010505000000F5" + (char)13 + (char)10);

gibi komutlar kullanarak delta plc ile denemeler yaptım.şimdi indusofta tag lar oluşturulurken hex adreslerin başına sayılar geliyor.0x:1055 gibi
burda 0x:,1x,2x,4x oluyor.bu kodlar okumamı yazmamı bobin okumamı onu kodluyor.yukrda benim yazdığım kodda öyle zaten.şidmi bu yapıyı biliyorum.opc ile plc okuma daha sonra yazacağım  programla da opc den okumak ile---opc kullanmadan yukardaki yolla plc den okumak arasındaki fark nedir?bu opc nin yapısı nasıldır?ben de okuma yaparken hata kontrolü yapğıyorum...
Restantum cogniscutur Quantum deligutur