Fabrika ve Makina Otomasyonu Çözümleri
Bu forumun amacı endüstriyel tesislere ve makinalara yönelik çözümlerimizle ilgili bilgi ve doküman paylaşımı yapmak ve sorularınızı ilgili uzman ekibimizle buluşturmaktır. EcoStruxure mimarisinin sunmuş olduğu proses ve makina otomasyonu çözümlerini (M241, M262, M340, M580, SCADA, Historian, MES vb.) bu forumda tartışabilir, fikir alışverişinde bulunabilirsiniz. Başta Sistem/Makina Entegretörleri ve Son Kullanıcılar olmak üzere, endüstriyel otomasyon alanında faliyet gösteren tüm paydaşları forumun içeriğinden faydalanmaya davet ediyoruz.
Link copied. Please paste this link to share this article on your social media post.
2021-10-20 05:00 AM hakkında
Merhabalar ,
Modbus TCP/IP ile mikroişlemci kartımı haberleştrimek istiyorum(Entegre = W5500 ayrıca bu entegre ile TCP/IP soket haberleşmesi daha önceden yaptım) , haberleşme için Schneider M221 kullanıyoruz.
Sizlere sormak istediğim birinci soru iki tane M221 i modbus TCP/IP üzerinden haberleştirirken 1 tane PLC ye write ve read var yapıp diğer plc ye hiç bir ayar yapmadan (Sadece Modbus protokollerini açıyorum) haberleşiyorum. Bu durumda iki PLC imde client durumundamı ? veya hangi durumdalar.(Tahminim 2 PLC de client durumunda calisiyor)
İkinci sorum ise bir m221 e (Modbus protokollerini açarak) datalarını Modbus Poll ile paylaşıyorum.Modbus Polldan dataları okuyabiliyorum. Modbus Poll(Slave olmayan) burada Server olarak mı davranıyor ? Data alış verişi sırasında bu durumda modbus poll (PLC tarafında write / read var yok sadece parametreler açık) PLC registerlerina data mı yazıyor yoksa dinlemede kalıp PLC(Client) den gelen komuta cevap mı veriyor ? Cünkü araştırmamıza göre normal TCP/IP soket haberleşmesinde server sadece dinlemede kalıp sadece Clientlerden gelen komutlara cevap veriyor. Yani PLC de hiç bir şey yapmamamıza rağmen modbus poll buradan dataları nasıl bir sorgu ile çekiyor ?
Diger sorum ise bu tasarladığımı elektronik kart ile PLC(M221) arasında Modbus TCP/IP haberleşmesi yapmak istiyorum burada kart M221-M221(ilk sorumdaki gibi) mi davranması gerekiyor ? Yoksa modbus Poll(ikinci sorumdaki gibi) mi davranması gerekiyor ? Bir modbus tcp/ip sisteminde hiç server olmadan iki tane client te haberleşebilir mi ?
İşlemcimiz içerisine bir kütüphane yazacağız client mi yoksa server mu olarak mı davranacağız öğrenmek istiyoruz. Aslında sadece PLC ile kartımızı haberleştirdiğimizde bir registerimizden plcden gelen dataları okuyabiliyoruz fakat haberleşme sürekli kesiliyor ve sağlıklı iletişim kuramıyoruz. Modbus TCP/IP sequence incelediğimizde kart tarafında server olarak nasıl bir sequence göndereceğimizi de çözemedik. Aşagıdaki resimde paylaştığım şekilde 502 portu üzerinden bu dataları görebiliyoruz
ama elektronik kart tarafında(veya 3.part bir sistem bir modbus tcp/ip paketini nasıl gönderiyor ) bu formatta nasıl göndereceğiz bunun hakkında da fikriniz veya dökümanınız varsa bizimle paylaşırsanız çok memnun oluruz.
Çok teşekkür ederim .
İyi çalışmalar.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
2021-10-20 06:33 AM - düzenlenme zamanı: 2021-10-20 10:37 PM
Merhabalar,
Öncelikle Modbus TCP de haberleşen tarafları anlamaya çalışalım. Modbus haberleşmede bir taraf Master/Client, diğer taraf Slave/Server olarak adlandırılır, genellikle TCP haberleşmede Client-Server isimleri, RTU haberleşmede Master-Slave isimleri tercih edilir.
Slave/Server tarafı gelebilecek tüm soruları/komutları dinler ve gelen komutlara cevap verir. Server hangi cihazdan nasıl bir komut/soru geleceğini bilmez, desteklediği türdeki tüm komutlara cevap verir. Bir registera bir değer yazılması isteniyorsa o değeri yazar veya registerlarından bir veya birkaçının değeri sorulduğunda bu bilgiyi doğrudan verir. Master/Client tarafı hangi servera bağlanması gerektiğini bilir ve o servera komut/soru gönderir, karşılık gelen cevapları değerlendirir. Bu açıdan baktığımızda;
İlk sorunuzdaki M221 lerin Modbus TCP haberleşmesini düşünelim. Sadece Modbus protokollerini açtığınız taraf Server/Slave tarafıdır, bu ayarı yaptığımızda "Bu PLC artık Modbus dan gelebilecek tüm sorulara açıktır, kim registerlara okuma/yazma yapmak isterse yapabilir" demiş oluruz. “Read var/ write var” komutlarını kullandığınız kısım ise Client/Master tarafıdır, hangi IP adresli hangi Slave cihaza bağlanacağı burada ayarlanır ve istenilen registerların okuma/yazma komutları bu cihaz tarafından belirlenir.
İkinci sorunuzda M221 ile Modbus Poll un haberleşmesini düşünelim. Burada M221 in Modbus ayarını açarak PLC yi server haline getiririz, bu sayede Modbus TCP komutu gönderen bir client ın tüm komutlarını yerine getireceğimizi sağlamış oluruz. Modbus Poll client gibi davranır, M221 in registerlarına okuma/yazma işlemi yapmak için M221 ye komutlar gönderir ve cevaplarını alır.
Modbus TCP haberleşmesinde bir cihaz aynı anda hem client olup başka server cihazları okuyup/yazabilir, hem de server olup başka bir client cihazın kendi registerlarını okuyup yazmasına izin verebilir.
Sizin sisteminizde M221 i server olarak ayarlayıp, elektronik kartınız üzerinden client olarak Modbus komutları gönderebilirsiniz. Eğer C#, Python gibi bir dil kullanıyorsanız hazır Modbus kütüphanelerini kullanarak hazır fonksiyonlar ile okuma/yazma işlemi yapabilirsiniz. Eğer komutları kendiniz oluşturmak istiyorsanız Modbus komutlarının nasıl gönderilmesi/alınması ile ilgili aşağıdaki dökümanı inceleyebilirsiniz.
İyi çalışmalar dilerim.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
2021-10-20 06:33 AM - düzenlenme zamanı: 2021-10-20 10:37 PM
Merhabalar,
Öncelikle Modbus TCP de haberleşen tarafları anlamaya çalışalım. Modbus haberleşmede bir taraf Master/Client, diğer taraf Slave/Server olarak adlandırılır, genellikle TCP haberleşmede Client-Server isimleri, RTU haberleşmede Master-Slave isimleri tercih edilir.
Slave/Server tarafı gelebilecek tüm soruları/komutları dinler ve gelen komutlara cevap verir. Server hangi cihazdan nasıl bir komut/soru geleceğini bilmez, desteklediği türdeki tüm komutlara cevap verir. Bir registera bir değer yazılması isteniyorsa o değeri yazar veya registerlarından bir veya birkaçının değeri sorulduğunda bu bilgiyi doğrudan verir. Master/Client tarafı hangi servera bağlanması gerektiğini bilir ve o servera komut/soru gönderir, karşılık gelen cevapları değerlendirir. Bu açıdan baktığımızda;
İlk sorunuzdaki M221 lerin Modbus TCP haberleşmesini düşünelim. Sadece Modbus protokollerini açtığınız taraf Server/Slave tarafıdır, bu ayarı yaptığımızda "Bu PLC artık Modbus dan gelebilecek tüm sorulara açıktır, kim registerlara okuma/yazma yapmak isterse yapabilir" demiş oluruz. “Read var/ write var” komutlarını kullandığınız kısım ise Client/Master tarafıdır, hangi IP adresli hangi Slave cihaza bağlanacağı burada ayarlanır ve istenilen registerların okuma/yazma komutları bu cihaz tarafından belirlenir.
İkinci sorunuzda M221 ile Modbus Poll un haberleşmesini düşünelim. Burada M221 in Modbus ayarını açarak PLC yi server haline getiririz, bu sayede Modbus TCP komutu gönderen bir client ın tüm komutlarını yerine getireceğimizi sağlamış oluruz. Modbus Poll client gibi davranır, M221 in registerlarına okuma/yazma işlemi yapmak için M221 ye komutlar gönderir ve cevaplarını alır.
Modbus TCP haberleşmesinde bir cihaz aynı anda hem client olup başka server cihazları okuyup/yazabilir, hem de server olup başka bir client cihazın kendi registerlarını okuyup yazmasına izin verebilir.
Sizin sisteminizde M221 i server olarak ayarlayıp, elektronik kartınız üzerinden client olarak Modbus komutları gönderebilirsiniz. Eğer C#, Python gibi bir dil kullanıyorsanız hazır Modbus kütüphanelerini kullanarak hazır fonksiyonlar ile okuma/yazma işlemi yapabilirsiniz. Eğer komutları kendiniz oluşturmak istiyorsanız Modbus komutlarının nasıl gönderilmesi/alınması ile ilgili aşağıdaki dökümanı inceleyebilirsiniz.
İyi çalışmalar dilerim.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
2021-10-20 11:51 PM - düzenlenme zamanı: 2021-10-22 01:03 AM
Merhabalar Bayram Bey ,
Cevabınız için çok teşekkür ederim , gerçekten çok açıklayıcı ve anlaşılabilir bir cevap olmuş.
Sizlere iyi çalışmalar dilerim.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
2023-11-08 02:38 AM hakkında
Between the Server and client how can we repair modbus connection errors when there no physical network issues?
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.