Welcome to the new Schneider Electric Community

It's your place to connect with experts and peers, get continuous support, and share knowledge.

  • Explore the new navigation for even easier access to your community.
  • Bookmark and use our new, easy-to-remember address (community.se.com).
  • Get ready for more content and an improved experience.

Contact SchneiderCommunity.Support@se.com if you have any questions.

Close
Invite a Co-worker
Send a co-worker an invite to the Exchange portal.Just enter their email address and we’ll connect them to register. After joining, they will belong to the same company.
Send Invite Cancel
84607members
353883posts

Modbus TCP IP Connection

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.

Solved
Samed
Ensign
Ensign
2
1152

Modbus TCP IP Connection

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

TCPIP.jpg

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.

 

 

Tags (1)

Accepted Solutions
BayramY
Lieutenant Lieutenant
Lieutenant

Re: Modbus TCP IP Connection

 

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.


modbus_tcp.jpg

 

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.

 

h target=_blank target=_blankttps://ipc2u.com/articles/knowledge-base/detailed-description-of-the-mo...

 

İyi çalışmalar dilerim.

See Answer In Context

Tags (1)
2 Replies 2
BayramY
Lieutenant Lieutenant
Lieutenant

Re: Modbus TCP IP Connection

 

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.


modbus_tcp.jpg

 

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.

 

h target=_blank target=_blankttps://ipc2u.com/articles/knowledge-base/detailed-description-of-the-mo...

 

İyi çalışmalar dilerim.

Tags (1)
Samed
Ensign
Ensign

Re: Modbus TCP IP Connection

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.

Tags (1)