Şimdi Ara

s7 200 PLC Seri Haberleşme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
16
Cevap
0
Favori
4.314
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • s7 200 PLC ile C #arayüzünü kullanarak seri haberleşme hakkında bilgisi olan arkadaşlarımdan yardım bekliyorum.Benim için çok önemli.C # kısmında sıkıntım yok ama s7 200 PLC kısmında büyük sıkıntı var.PLC ile seri haberleşme ile ilgili pek bir bilgim yok.Yardım edebilecek arkadaşlar çok büyük bir iyilik etmiş olursunuz

    Şimdiden Teşekkürler



  • Merhabalar;

    S7-200'ün üzerinde RS485 seri portu mecvut. Öncelikle PC ile PLC arasına RS232'den RS485'e çevirici kullanman gerekiyor.

    S7-200'ün seri portunun kontrolünü free protokol olarak konfigüre edebileceğin gibi Modbus RTU protokolünü kullanarak da haberleşebilirsin.

    Freeprotokol uygulamasının yapımıyla ilgili ayarlamalar S7-200'ün Türkçe kullanma klavuzunda anlatılıyor. Ama S7-200'de iyi olmadığını söylediğin için PLC'yi modbus slave yapmanı öneririm. Bu durumda S7-200 üzerinde haberleşmeyle ilgili çok az uğraşırsın ama PC üzerinde modbus master protokolünü yazman gerekiyor.
    PC tarafında Modbus Master yapabilirseniz PLC'de modbus slave yapmak daha kolay olacaktır. (http://www.modbus.org/)

    Modbus için internette kullanabileceğin hazır DLL'ler var. Sanırım Delta'nın sitesinde de var bu dll.

    S7-200'ün Türkçe kullanma klavuzuna aşağıdaki linkten ulaşabilirsiniz.

    http://www.plcegitimi.com/Download.aspx




  • Cevabın için çok teşekkür ederim.Aslında yabancı olduğum terimler ama en azından nerden başlayacağımı biliyorum artık.

    Bir de kepserverex programı ile de haberleşilebiliniyormuş diye duydum bu konuda bir bilgin var mı acaba ?
  • Merhaba;

    evet keepserver ile de haberleşebilirsin. Keepserver bir çok protokol ile (Modbus RTU, Modbus TCP...) cihazlar ile haberleşip veri toplayabilen bir cihazdır.

    Ama PLC'yi Modbus Slave olarak ayarlaman gerekiyor. PC'de RS485 port yoksa RS232-RS485 ya da USB-RS485 dönüştürücü kullanman gerekiyor.

    Ama C# tarafında iyiysen kendinde modbus protokolünü yazabilirsin. Modbus protokolü için hazır DLL'ler bulabileceğin gibi kendin de yazabilirsin, forumlarda kod örnekleri var.
  • Çok teşekkür ederim konuyla ilgilendiğin için verdiğin bilgiler beni aydınlattı.Bu konuda biraz yol katledip son durumu haber ederim.
  • Kardeşim bana C# için HoldRegister.cs diye b, dosya gerekli bilgin varsa yardımcı olabilir misin?
  • S7-200'ün register tablosunu mu istiyorsun?
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • c #kısmında programı şu an ki bilgilerimle kendim yazmam mümkün değil biyerlerden hazıl bulmayaa çalıştım. modbus.dll , holdregister.cs gibii dosyalar eklemek gerekiyo heralde.kütüphaneler falan eklemek gerekiyo.işin içinden çıkamadım açıkcası.
  • Merhaba;

    C# için sıkıntım yok dediğin için Modbus önerdim (zaten en kolay ve yapılması gerekende bu).

    modbus kütüphanesini hazır kütüphane olarak veren yerler var. onlardan hazır olarak alıp kullanabilirsin ya da biraz uğraşırsan kendin de yazabilirsin.

    yanılmıyorsam modbus ile ilgili kod örnekleri de internette var. Geçen yıl bir projede modbus rtu hem de tcp haberleşmesini yazmıştım. o zamanlar örnek kodlar görmüştüm.

    özellikle seri haberleşme tarafı çok zor değil. hazır modbus programlarıda var ve onların dll kullanımına açık olanları da var.

    S7-200 için özellikle bir register tablosuna da ihtiyaç yok.

    S7-200'de register'lar VB, VW ve VD olarak adreslenebiliyor. örneğin VB0 - Byte (8bit), VW0 - word (16 bit) ve VD0 - double (32 bit)

    VW0 = VB0 + VB1 byte'larını kapsar

    VD0 = VW0 + VW1 = VB0 + VB1 + VB2 + VB3 şeklindedir.

    Modbus'da okunan ve yazılan register'lar 16 bittir yani S7-200'den VW alanlarını okursun.

    Örneğin VW0 adresindeki veriyi okuman istesen PLC'ye modbus 0x03 mesajını göndermelisin. göndereceğin mesaj:

    1 byte fonksiyon kodu + 2 byte başlangıç adresi + 2 byte okunacak register sayısı + 2 byte CRC =03 00 00 00 01 CRC1 CRC2 gibi bir mesaj olmalıdır.

    CRC hesabını S7-200 kendisi yapar (Siemens'in Modbus kütüphanesini kullanmalısın). C#'da CRC hesabıyla ilgili formül bulamazsan hafta içinde formülü gönderebilirim.

    C# kodunu denemeden önce hazır bir program ile PLC'den verileri okuyabildiğine emin olmakta fayda var. Ayrıca aşağıdaki dokümanı da incelemeni öneririm.
    Modbus haberleşmesinin referans dokümanıdır.

    http://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf

    Ayrıca modbus.org sitesinde test programlarıyla ilgili linklerde var.

    kolay gelsin...




  • Kardeş çok teşekkür ederim vaktini ayırıp ilgileniyosun.Fakat şunu anladım ki teknik bilgim hiç yok.Öğrendikçe bütün bunlar yabancı gelmemeye başladı.3. sınıf öğrenciyim ve bütün bunları öğrenmemin tek yolu birinin bana uygulama yaparak anlatması ya da en basitinden çalışan bir yazılımın elimde olması.Belliki senin bilgilerin baya bi ust düzey.hocamın bana verdiği süre de kısııtlı olduğu ve sınav haftasında olduğum için açıkçası çok zaman ayıramıyorum.fakat proje ödevi ve teslim etmem gerekiyo.Kardeşim senin elinde en basitinden yazılmış program varsa bana gönderebilir misin.çalışır durumda yapılmıs programı inceleyerek çok daha rahat öğrenebileceğimi düşünüyorum.



    c # ile ı0.0 - ı0.07 arası inputlara giriş vermem ve buna karşılık Q0.0 - Q0.7 ye kadar olan outputların çıkış vermesi ve çıkış verdiğini c # arayüzündde görmem mükemmel derece de işimi görür.
    ı0.0-q0.0
    ı0.1-q0.1
    ...

    bu alana yeni başlayanlar ve internetten araştırarak öğrenmeye çalışanlar için oldukça öğretici bir yazılım olabileceğini düşünüyorum.bunu kendim yapmamm şimdiki bilgilerimle mümkün değill gibi gözüküyor
    ama yazılmış bir yazılım üzerinden anlayabileceğimi düşünüyorum

    Herşey için teşekkürler...



    < Bu mesaj bu kişi tarafından değiştirildi MustafaHan -- 22 Haziran 2013; 0:51:49 >




  • Merhaba;

    Aşağıdaki adresten Modbus poll programını indir. PLC ile haberleşmeyi test etme aşamasında işini kolaylaştırır.

    http://www.modbustools.com/

    S7-200'ü modbus slave modunda çalıştırabilmek için Modbus kütüphanen var mı? tabi haberleşme için RS232-RS485 ya da USB-RS485 çeviricin olmalı.

    PLC ve programlama kablon varsa en azından modbus slave haberleşme yapan bir plc programı gönderebilirim. En azından programı plc'ye yükleyip haberleşmeyi test etme şansın olur.
    C# da yaptığım uygulama var ama n katmanlı ve karışık bir uygulama olduğu için şuanda onun üzerinde bir düzenleme yapıp gönderme şansım yok.

    kolay gelsin...



    < Bu mesaj bu kişi tarafından değiştirildi turgaydemir -- 23 Haziran 2013; 23:30:11 >




  • Modbus ile haberleşmek için gerekli c # ve plc kısmını tamamladım.usb to 485 kablomda var .fakat donanımsal olarak sonuç alamadım.Galiba nedeni de siemens in modbus adreslerine erişilebilinmesi için ayrı bir modül gerekiyo fakat elimde suan yok ve temin etme şansımda yok.en azından hocaya proojeyi sunarken simülasyon olarak çallışır durumda gösterebileceğim bir projenin olması çok makbul geçer.
  • Merhaba;

    Yazdığın c# programını PLC olmasada test edebilirsin.

    Modbus Test programları var. Modbus slave simulator diye ararsan karşına çıkar.

    Bir de yanlış hatırlamıyorsam virtual serial port control isimli bir program vardı.
    Bu program ile de pc üzerinde sanal iki adet port oluşturup bunları birbirine yazılımsal olarak bağlayabiliyorsun.
    Böylece PLC gibi bir donanımın olmasa da simulator yazılımları vasıtasıyla yaptığın yazılımı test edebiliyorsun.

    Siemens S7-200 PLC'lerde modbus haberleşme yapabilmek için Siemens'in Modbus kütüphanesini edinmen gerekiyor. Aslında internette iyi araştırırsan bu kütüphaneyi paylaşanlar var. (siemens s7-200 modbus library diye ararsan bulabilirsin...)

    Bu kütüphaneyi kurduktan sonra iki komut ile PLC'yi modbus ile çalışır hale getirebiliyorsun.
  • modbus library yükledim microwinde modbus slave programını yazdım. yazılımımı ust to rs485 ile PLC s7200 cpu224 e attım fakat c# kısmında com olarak veri göndermeye çalıştım.fakat biligisayarda com da hiçbir bağlantı yok gibi gözüküyor.bunun nedeni ne anlamadım.acaba bilgisayara ust to rs232 kablo plc yee bağlarken de rs232 to rs485 kullanmak gerekiyo onu anlayamadım.microwinden programı plc ye soruunsuz atıyorum.bunun nedeni ne olabilir acaba? ust to rs485 ile plc ye programı atıyorum . fakat bilgiisayar kabloyu usb olarak görüyo.inşallah sorunumu anlatabilmişimdir.
  • PLC'ye program atabildiğine göre programlama kablonda sıkıntı yok demek ki.

    USB-RS485 çevirici kablonu PC'ye taktığında Aygıt yöneticisi içerisindeki Bağlantı Noktaları bölümünde bir değişiklik oluyor mu?

    Bu usb-rs485 çeviriciyi taktığında bağlantı noktalarında COMx gibi yeni bir eklenti oluşuyorsa C#'da o COMx portunu kullanman gerekiyor.

    Eğer bu usb-rs485 kablonu pc'ye taktığında bağlantı noktarına yeni bir COM noktası eklenmiyorsa bu çeviriciyi RS485 haberleşmesi için kullanamazsın.

    PLC'nin Modbus olarak seçtiğin portuyla sadece RS485 ile haberleşebilirsin...

    Bu söylediklerimde bir sıkıntı yoksa Modbus Poll programını kullanarak PLC ile haberleşmenin yapıldığından emin olduktan sonra kendi programının problemlerini çözmen daha kolay olacaktır.
  • Kardeşim çok sağol verdiğin bilgiler çok işime yararı.Herhangi bir konuda yardım edebileceğim birşey olursa haberim olsun.

    ...
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.