Tarihi Haberleşme Metodu: Modbus RTU
Elektronik ve onun üzerine tasarım yapan herkes cihazlarını birbirleriyle haberleştirmek için çeşitli metotlar kullanır. Bu metotlar kullanıcılardan çeşitli parametreler alınması için olabileceği gibi, bir cihazın belirli parçaları arasında bilgi transferi için de kullanılabilirler. Günümüzde bilgisayarı az çok bilen kullanıcıların çoğu Ethernet, USB, HDMI gibi haberleşme metotlarına aşina olsa da alt seviyeye inildiğinde bir çok hayat kurtarıcı haberleşme tekniği bulunmaktadır; SPI, I2C, UART, CAN, One Wire ve daha bir çoğu. Bu iletişim metotlarının her birisi kendine has fiziksel alt yapıya sahiptir ve haberleşmenin yapılacağı fiziksel ortama göre değişiklikler gösterir; bunlardan en çok bilineni RS232, RS485 ve türevleridir.
İlk Modbus alt yapısı 1979 yılında, mikrodenetleyicilerin olmadığı, mikroişlemcilerin ise bebeklik çağlarını yaşadığı yıllarda, özellikle PLC’leri ve bunun türevi sistemleri haberleştirmek için Modicon firması (şu an herkes bu firmayı Schneider Electric olarak biliyor) tarafından oluşturularak kullanıcılara sunulmuştur. Bir adet master’ın bulunduğu sistem 247 adet slave cihaz okuyabilecek şekilde düzenlenebilir.
Modbus’ın yaygınlaşmasındaki en büyük etmen ise; kolay anlaşılabilir, cihazlara kolay adapte edilebilir olmasının yanında ücretsiz bir lisans altında kullanıcılara sunulması gösterilebilir.
Modbus, haberleşme ve fiziksel katman olarak ikiye ayrılmaktadır. Haberleşme katmanı olarak günümüzde en çok kullanılanları Modbus ASCII, RTU ve TCP/IP’dir. Fiziksel katman olarak ise UART temelli RS232/RS485, USB/CAN gibi değişik birimler ve TCP/IP için Ethernet gösterilebilir. Biz bu yazımızda kullanıcıların en çok tercih ettiği, RS485 ve Modbus RTU’yu ele alacağız.
Modbus RTU
Modbus içerisinde seri iletişim metodunu kullanan ASCII ve RTU adı altında iki haberleşme metodu bulunmaktadır. İkisi de birbirine benzese de RTU, ASCII iletişim metoduna göre daha hızlıdır. Bunu bir örnek ile açıklamak gerekirse; 12345 sayısının seri hat üzerinde gönderimi ASCII ile “1”, “2”, “3”, “4”, “5” şeklinde 5 ayrı byte ile yapılırken, RTU’da ise bu bilgi 2x8bit olacak şekilde MSB ve LSB olarak ikiye bölünür ve 2 byte şeklinde (12345/256 bir byte, 12345%256 bir byte) gönderilerek hız kazanımı sağlanmış olur. Bu yüzden günümüzde Modbus tarafında RTU, en sık tercih edilen seri iletişim metodu olarak görülmektedir.Modbus RTU’nun frame yapısı yukarıda görülebilir. İlk byte’ta iletişim kurulacak cihazın adresi belirlenmelidir. Slave cihaz sayısı 247 adet olabileceğinden bu bölüme 0-247 arasında sayı yazılmalıdır. İkinci byte ise Modbus için standartlaşmış fonksiyon kodlarını ihtiva etmelidir. Bu fonksiyonlar aşağıdaki gibi tanımlanmıştır. Günümüzde en çok tercih edilen Modbus RTU fonksiyonları 3, 6 ve 16’dır.
Bundan sonraki bölümde fonksiyon tanımlamalarına göre datalar düzenlenerek, slave adresi ve fonksiyon numarasının CRC16’ı da son iki byte’a yazılarak gönderim ve alım işlemleri sağlanır.Modbus RTU için mesaj gönderim yada alımlarında, iki mesaj arası minimum 3.5 karakterlik bekleme yapılmalıdır. Bu bekleme baudrate hızına göre değişkenlik gösterecektir. Örneğin 9600 baudrate için bu değer yaklaşık 3ms iken 115200 baud değeri için 0.25ms civarında olacaktır.
Modbus RTU Haberleşme Örneği
Modbus RTU’yu anlayabilmek için teorikten ziyade pratik uygulama üzerinden haberleşme metodunu anlamak çok daha kolaydır. Haberleşme örneğimizde sırasıyla 3 ve 16. fonksiyonları ele alacağız.
İlk olarak, fonksiyon 3 örneğimizde slave adresi 17 (0x11) olan cihazın 107 (0x6B) ve 108. (0x6C) register değerleri okunmak istendiğinde göndermemiz ve almamız gereken komutlar aşağıda görülebilir. Ayrıntılar için resmi büyütebilirsiniz. Cevap dikkatlice incelenirse, slave öncelikle kendi slave numarası ve kendisine gelen fonksiyon tanımını gönderdikten sonra 2×2 byte şeklinde veri ile bunların CRC16 değerini master’a göndermektedir. Tüm bu değerler doğru ise master cevabı kabul etmektedir.
Son olarak, fonksiyon 16 örneğimizde slave adresi 17 (0x11) olan cihazın 301 (0x12D) ve 302. adreslerine aynı anda veriler yazılacaktır. Ayrıntılar için resmi büyütebilirsiniz.Bu kısımda da cevap dikkatlice incelendiğinde, yazım işleminde de slave’in mastera işlemin kabul edildiği bildirilmektedir.
Her iki örneğinde kilit noktalarından bir tanesi CRC16 hesaplamasıdır. Bunun için Modbus’ın kendi sitesinde lookup table bulunsa da günümüzün gelişen işlemcileriyle birlikte aşağıdaki kodu kullanmak oldukça kolay ve daha az yer kaybına neden olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void CRC16(const unsigned char Data, unsigned int* CRC) { unsigned int i; *CRC = *CRC ^(unsigned int) Data; for (i = 8; i > 0; i--) { if (*CRC & 0x0001) *CRC = (*CRC >> 1) ^ 0xA001; else *CRC >>= 1; } } |
İlk kez CRC fonksiyonu işletileceğinde girdi olarak girilecek CRC değerinin 0xFFFF olması gerekmektedir.
Modbus İçin Bilgisayar Programları
Modbus her ne kadar seri iletişim metodu üzerinden haberleşse de, Serial Port Terminal benzeri programlar bu iletişim metodunu çözmede zayıf kalacaktır. Modbus için kullanılan bir çok program olmasına karşın Modbus Poll adlı program, bu konuda benim gibi bir çok kullanıcının tercih ettiği en iyi programlar arasındadır.Eğer bilgisayar tarafında arayüz tasarlama konusunda tecrübeniz yok ise Modbus Poll ile bir çok denemenizi gerçekleştirebilir, kayıtlarınızı tutabilirsiniz. Programın deneme sürümünde zaman sınırı olsa da bir çok işlem için yeterli özelliklere sahip olduğunu söylemek gerekir.
Modbus Poll, master olarak sisteminize sorgu yapıp, slave olarak tasarladığınız cihazların testi için kullanıldığından master olarak tasarladığınız cihazlarınızın testini yine aynı firmaya ait Modbus Slave ile yapabilirsiniz.
Mikrodenetleyiciler için Modbus
Modbus’a yeni başlayan bir çok kişi, özellikle mikrodenetleyici tarafında nasıl bir yol izleyecekleri konusunda ikileme düşmektedir. İnternet özelinde bir çok örnek ve kütüphaneye rastlamak mümkün olsa da ben, kendi uygulamalarımda oluşturduğum kendi kütüphanemi kullanmayı tercih ediyorum. Eğer bu konuda zorluk çekiyorsanız internet üzerinde bulabileceğiniz FreeModbus kütüphane dosyalarını incelemenizi öneririm. Yaptığım incelemelerde 100 registerlık (100 x 2byte = 200byte) bir uygulama için FreeModbus 8.2kByte yer kaplarken, kendi uygulamam 2.4kByte kadar yer kaplamaktadır. Bu yüzden, her ne kadar hazır uygulamalar için kütüphane yazmayı zaman açısından verimli bulmasam da, Modbus için bir istisna yapıp kütüphanenizi kendiniz oluşturmanızı öneririm.
Modbus Uygulama Örneği
Modbus RTU ile ilgili aşağıda örnek uygulamaya ait ekran görüntüsünü aşağıda görebilirsiniz. Uygulamada 5 ve 6. registerdaki değerler 100ms’de bir sırasıyla arttırılıp azaltılırken, ilk 4 register ise STM32F072 Discovery üzerindeki ledleri kontrol etmektedir. Bunun yanı sıra, Modbus Poll üzerindeki değişen TX rakam değeri, her seferinde başarılı olan toplu register okuma işleminin sayısını göstermektedir. Poll süresine göre hızı değişkenlik gösteren bu sayıcıda, kütüphanenizin hızını ve verimliliğini ölçmeniz mümkündür.İlgili görüntüye ait uygulamanın .hex dosyasını buradan (indirdikten sonra dosyayı .rar yapmalısınız) indirebilirsiniz. UART haberleşmesi için STM32F072’nin PA9 ve PA10 bacakları kullanılmıştır.
Fotoğraftaki kütüphane ticari projelerde kullanıldığı için paylaşımını burada yapamıyorum. Yine de bu kütüphaneye ulaşmak ya da bilgi almak istiyorsanız bana iletişim bölümünden ulaşabilirsiniz.
Sonuç Olarak…
Modbus, 35 yıllık geçmişiyle oldukça popüler ve alışıldığında bırakılmayacak bir iletişim metodu. Özellikle haberleşme istesin ya da istemesin, debug anlamında, bir projeye başlarken led blinkten sonra dahil ettiğim ilk uygulamalardan biri. Yeni bir çok iletişim metodu ve yöntemi çıkmasına karşın, gelecek yıllarda da bu ihtiyar iletişim metodunu görmeye devam edeceğimiz aşikar olduğundan, elektroniğe yeni başlayan arkadaşlar için ilk önerdiğim iletişim metotlarının arasında da yer alıyor.
Gerek Modbus gerek ise diğer endüstriyel iletişim metotları ile ilgili tüm sorularınızı bana yorum bölümünden ulaştırabilirsiniz.
Herkese iyi çalışmalar dilerim.
Merhaba,
Bu konulara tamamen uzak birisi olarak bu işe merak duyduğumdan ve babamın tatlı baskısıyla girişmek durumunda kaldım. Visual basic bilgim ve plc bilgim giriş seviyesinde desek yeridir. Visual basic 6.0 programını lise eğitim döneminde aldım ama üzerinden 13 yıllık bir süre geçti sadece alt yapı olarak aklımda var. Ama okudukça hatırlamaya çalışıyorum. Yazılan makale ve bilgileri birleştirmeye çalışıyorum ama hiç bilgim olmadığından kafam daha çok karışıyor. Bu konuda sizce nereden başlamalıyım. PLC bağlantısı ve işlem takibi yapmak istiyorum. Bir kaç hazır uygulama buldum fakat hepsi kendine özgü ocx uygulaması yapmış ve formu okuyamıyorum. Dolayısıyla boş bir form oluşturdum diyelim. ve plcde y0 çıkış bobinine enerji verdim diyelim. sadece bu çıkışı verebileceğim bir uygulama yapsam belki üzerine birşeyler katarak geliştirebilirim. Ama şuan y0 enerji verilmesine rağmen bunu pcde okuyamıyorum bu konuda bana öncülük ve bilgi paylaşımı yapabilirseniz çok sevinirim. Yada izlemem gereken bir yol bir öneri belirtirseniz bu şekildede başlayabilirim.
Şimdiden ilginiz için çok teşekkür ederim
Saygılarımla,
Bağlanmak istediğim PLC Delta DVP14ss plcdir.
Merhaba Emre Bey,
Yazımda belirtmiş olduğum Modbus Poll adlı yazılım ile PLC haberleşmesi yapabiliyor musunuz öncelikle buna bakmalısınız. İstenilen bilgileri çektikten sonra ilerlemeniz gereken yol, aynı soru kalıplarını sizin gönderip, cevap almaya çalışmanızdır.
İyi günler dilerim.
Merhabalar Fırat Bey,
Ben bu konularda çok yeniyim ve anlayışınız için teşekkür ederim.
Öncelikle yazınız için çok teşekkür ederim. Ben PLC’den veri çekip bu verileri kaydetmek istiyorum. Bunun için basit bir c kodu yazmayı planladım fakat genel olarak haberleşmeyi nasıl yapacağımı çözemedim. Elimdeki datasheette modbus adresine ve özelliklerine göre hangi değeri alacağım mevcut örneğin
30517 Day yield (Wh) [E-heute] 4 U64 FIX0 RO
Cihazı usb to rs485 cihazı ile bilgisayara bağlayıp bu sonuçları almak istiyorum. Cihaza nasıl istek yolluyacağımı bilmiyorum. İstek yolladığım zaman geri dönüşü nasıl alacağım o konu hakkında da bilgim yok. Sizce nereden başlamalıyım ve sizin elinizde döküman varsa bana ulaştırabilir misiniz?
Teşekkürler
Burak
Merhaba Burak,
Öncelikle bu konuda PLC’nin hangi fiziksel layer üzerinden haberleştiğini bulmalısın; RS232 mi 485’mi, Etherner mi? Daha sonrasında uygun protokolü ve bağlantıyı seçerek Modbus Poll benzeri bir program ile takip yapabilirsin. Modbus için kendi akredite sitesinde bilgi bulabilirsin. Türkçe kaynak bu konuda öneremeyeceğim.
Merhaba,
STM32F407VG üzerinden web server, TCP/IP server örneklerini çalıştırdım. Ping atma bağlanma işlemleri yapabiliyorum. Önerebileceğiniz bir modbus kütüphanesi var mı acaba. Nette keil için örnek bulmakta zorlanıyorum
Merhaba Hasan,
Yakında PetitModbus adında bir kütüphaneyi sürmeyi düşünüyorum yalnız TCP/IP değil. Bu konuda layerlara bakıp kütüphaneyi senin yazman gerekiyor olabilir.
Merhabalar Fırat Bey,
Tez çalışmam için DSP TMS320F28030 Modbus haberleşmesi yapmaya çalışıyorum gelen veya giden verilerin nasıl okunacağı ile ilgili kod örneği paylaşabilir misiniz. Normalde veri okurken 16 bit struct yapısı oluşturup
union olarak bit bit işlem yapabiliyorum.
Saygılar.
Merhabalar Naci,
İlgili işlemci ile UART haberleşmesi yapabiliyor musun? Örneğin bir “deneme” yazısını seri port üzerinden gönderip, istediğin bir değişkeni bilgisayardan işlemciye gönderebiliyor musun? Eğer bunu yapamıyorsan öncelikle çözmen gereken kısım burasıdır. Haberleşmeyi yapabiliyorsan, protokolü projene dahil etmek için sadece videodaki önergeleri izlemen yeterli olacaktır.
Çok yararlı ve anlaşılır bir yazı olmuş.
Emeğinize sağlık.
Merhabalar Fırat Bey,
Bir yer altı madeninin gaz izleme ve otomasyon scadasından sorumluyum.
Protokolümüz MODBUS RTU dur.Kullandığımız master ve slaveler aynı firmaya aittir. MASTER aynı kalarak farklı markaya ait slave cihazlarını haberleştirebilmemiz mümkün müdür (örn.bir metan slave).
İyi çalışmalar diliyorum.
Merhaba,
Haberleşme hızı ve adreslemeler düzgün yapılırsa haberleşmemesi için sorun yoktur.
İyi günler hocam, akıllı ev projem için arduino ve raspberryi modbus üzerinden ESP8266 wifi shiel ile kablosuz haberleşerek Codesysde programlamak istiyorum. Ethernet shield ile yaptım ancak ESP8266 ile nasıl arduino kodları bulamadım yardımcı olursanız sevinirim.
Merhaba Oğuzhan,
Hem konunun başlığı burası değil, hem de Arduino ve ESP’ye destek vermiyorum.
Kolay gelsin.
Merhabalar,
RDF302 modbus lu siemens termostat, ısı sensoru, kalorimetre vs. gibi bazı cihazları İspanya’dan programlanıp gönderilmiş olan otomasyon panosuna bağlamam gerekiyor. Nasıl yapıldığını kısaca anlatabilir misiniz? Şimdiden teşekkür ederim.
Yani işi sen yap ben de üzerinden para kazanayım diyorsunuz. Şimdi ne olduğunu bile bilmediğim bir cihazın datasheet’in ulaşacağım, bunun nasıl kullanıldığını öğreneceğim, sonra gelip burada size anlatacağım. Siz de teşekkür ederim deyip, gerekli ücreti kazanacaksınız. Yani dediğim gibi işi bana yaptırtacak, cebinizi siz dolduracaksınız. Cin olmadan adam çarpmayı iyi öğrenmişsiniz. İbretlik olarak bu yorumunuzu çeşitli platformlarda paylaşacağım izninizle.
Selamlar.
1. örnekte 0x6B ve 0x6C okunmaz mı? Start adresin kendisinden değil bir sonrasından mı başlıyor okumaya?
Evet o kısımda bir eksiklik olmuş, şimdi güncelliyorum. Hex ile Decimal sayı çevrimi hatası. Teşekkürler dikkatiniz için.
Merhaba kendi modbus I/O modülümü yapmak istiyorum bana bu konuya nerden ve nasıl başlayacağım hakkında bilgi verebilir misiniz ?
Merhabalar,
Sizin ne kadar tecrübeye sahip olduğunuzu bilmediğimden; elektrik -> mikrodenetleyici -> yazılım -> haberleşme -> modbus sırasıyla bilgileri öğrenip uygulamanızı yapmanız gerekmektedir.
Sorun haberleşme kısmında aslında.
Peki sorunu bulmuşsunuz düzeltin öyleyse.
Değerli paylaşımınız için teşekkür ederim.Modbus kullanımı için MODBUS cihazlarının satın alınması şart mıdır ? Yoksa her hangi bir mikrodenetleyici yardımıyla modbus protokülünü kullanmak mümkün müdür ?
Hayır gerek yoktur kullanabilirsiniz.
Sitenizden edindiğim bilgiler sayesinde bir şeyler biraz daha oturmuş durumda modbus hakkında. Bu nedenle size bigilerinizi paylaştığınız için teşekkür ederim. Bir konuda yönlendirmeye ihtiyaç duymaktayım. Ben modbus tcp/ip kullanarak android uygulaması yaparken aynı zamanda başka bir platformda server gibi componentler oluşturmalı mıyım veya nasıl bir yol haritam olmalı? Şimdiden Yardımlarınız için teşekkür ederim.
Android konusunda bir bilgim yok maalesef.
Mükemmel bir yazı olmuş.
Yazı harika olmuş, elinize sağlık; fakat, modbus TCP/IP için de bir yazınız mevcut mudur?
Şu an için TCP/IP ile ilgili bir yazım mevcut değildir.
Merhaba,
Öncelikle, yazınız için teşekkür ederim. Cihaza erişim ve test konusunu çözdüm. Şimdi programlama yapacağım. Bir konuda fikir sormak istedim.
Birden fazla cihaza eş zamanlı sorgu göndermek soruna neden olur mu? Yoksa paket gönderip, cevabını okuyup, bir sonraki cihaza öyle mi paket göndermeliyim? Haberleşme mantığı olarak nasıl yol alacağımı bilemedim. Yanıtlarsanız sevinirim. Teşekkürler.
Bu sorunuz kullandığınız fiziksel alt yapı ile de ilgili. RS485 kullandığınızı var sayarak, master slave cihazların her birine ayrı ayrı soru sorup cevap alabilir. Modbus’ın temel mantığıdır zaten bu. İyi günler dilerim.
İlgili hex dosyasını mail adresime atabilir misiniz? Verdiğiniz link çalışmıyor. Başarılar.
Merhamalar, ilgili link düzeltilmiştir.
Hocam merhabalar, RS485 haberleşmede kullandığımız transceiver’larda bulunan Data Enable pinini(DE) manual olarak belirli şartlar dahilinde mi set-reset yapıyoruz? Yoksa USART çevresel biriminde bu işi otomatik olarak yapan RTS pinini mi kullanıyoruz?
Merhabalar RTS ucunu da bu iş için kullanabilirsiniz.
RTS ucu olmayan işlemcileri de baz alarak ben genelde bu işi gönderim bitişi kesmesi ile yapıyorum yazılımda.
Makalenizden çok faydalandık. En içten teşekkürlerimizle.
Ben teşekkür ederim.
Scroll u aşağıya çekince kopyama KARDEŞ yazıyor.
Kopyalama sen de 😉
Merhaba ben Modbus üzerinden röle kontrolü yapıyorum. Bunu C# da bir program yazıp Ethernet ile röleleri kontrol edeceğim. Bunun için registerların fonksiyon kodunu yazmam lazım. TCP’de çalışıyorum ama TX kodlarını yazmakta zorlanıyorum yazdığım kodla da röle açılıp kapanmıyor yardımcı olabilir misiniz TX’i yazarken?
Maalesef şu anki iş yoğunluğum nedeniyle bu konuda yardımcı olamam. İyi günler dilerim.
Makalenizin didaktik anlatımından dolayı çok teşekkür ederim. Bu konuda daha fazla makale görmek isteriz.
SAYGILARIMLA
Hocam öncelikle teşekkürler,benim anlamadığım bir nokta var.mesela da slave olan pic’ten butonun lojik değerini gönderirken neden enable pinini pasif yada aktif yapma gibi bir şey kullanmadık?
Enable pini nedir?
Ayrıca Slave herhangi bir data göndermez sorgu yapılmazsa eğer.
Merhaba; ben Entes marka güç analizörü mpr-53s cihazından modbus ile bir türlü haberleşemedim. Bana yardımcı olursanız çok sevinirim.
Tabiki IBAN numaramı göndereyim size, hiç bir problem olmadan yardımcı olurum.
Merhaba ;
Modbus ile haberleşirken 11 sorguda 4 tane error alıyorum. Modbus haberleşirken bu kadar hata almak normal mı?
12412235235 sorguda 0 hata alıyorum sizce?
Merhaba,
Sahada redresör ile haberleşiyorum.Bu olayı redresör firmasına söylediğimizde Modbus haberleşmede bu kadar error normal dediği için teyit almak için sordum.Desteğiniz için teşekkür ederim.
Merhabalar, ya haberleşme bağlantınızda problem var ya da redresör çok gürültülü çalıştığı için kendi kendine hataya düşüyor. Dolayısı ile bunu üretici ile teyitleşerek çözeceksiniz. Ben size sadece özel hizmet sunabilirim.
Merhaba,
Makale çok güzel. Benim de bir sorum olacak, UPS teki verileri bluetooth aracılığıyla PC de görüntülemek istiyorum, araştırırken modbus ile karşılaştım. Bunu modbuspoll üzerinden yapmam mümkün müdür. Haberleşme kısmını nasıl çözeceğimi bilmiyorum küçük bir yol gösterir misiniz bana.
UPS’teki haberleşme protokolünü çözdükten sonra bunu bilgisayara bluetooth ile gönderebilirsiniz. Yalnız bu istek özel olduğu için ancak ücretli destek verebilirim.
Fırat Bey merhabalar. Öncelikle anlatımınız için çok teşekkürler, gerçekten aydınlatıcı bilgiler var. Sadece teyit etme amaçlı olarak bir soracağım.
NodeMCU’yu RS485 -> TTL dönüştürücü ile enerji analizörüne bağlıyorum. NodeMCU üzerinden sorgulama yapacağımı düşünürsek, bu durumda yanlış bilmiyorsam, enerji analizörü slave, NodeMCU master oluyor değil mi?
Merhaba Semih Bey, evet o şekilde oluyor.
Fırat Bey merhabalar,
Anlatım çok güzel ve sade.
2009’dan bu yana SCADA sistemleri içerisindeyim ve bir çok koruma rölesi ile modbus RTU ya da TCP haberleştim.
Ancak bunu yaparken bazı röleler ile anlaşmakta zorlandığımda HEX olarak verileri incelemek gerekiyor. Bu bağlamda verdiğiniz bilgiler kıymetli.
Kolay gelsin. teşekkürler.
Hello Firat,
nice explanation on modbus. want to implement it on a pic24f but going thru your video i unfortunately dont understand turkish. is it possible to write a simple article on how to implement the slave driver into application.
even if you give explanation in turkish thats ok as google translate can assist me
thanks so much
Please search PetitModbus for implementation.
Merhaba Fırat bey,
Modbus pool programını indirip kurdum ve diagslave(plc simülasyon) ile laptopumda iki programı haberleştirip veri göndermem gerekiyor.Bu konu hakkında bilgi verirseniz çok mutlu olurum. İyi çalışmalar
Bu tarz özel isteklerinizi mail ile atabilirseniz daha iyi olur.
İyi günler.
Merhaba Fırat bey,
Projemde nodejs’te sqlite kullanarak bir backend hazırladım. frontend’te ise angular kullanılıyor.
Sorum, modbus tcp/ip kullanmam gerekiyor ve nodejs’te modbusla ilgili kaynak bulmakta zorlanıyorum ve biraz sözel bilgi dışında yazılımsal olarak hiç bir bilgim yok modbus’la ilgili, sıfırdan başlıyorum. Bu konuda nasıl yol izlemeliyim acaba? Yardımcı olursanız çok sevinirim.
Maalesef dediğiniz konular benim alanımın dışında.
Merhabalar ben RS485 protokolü ile çoklu gönderici (transmitter) ile 1 alıcıya (receiver) bilgi göndermek istiyorum. Arduino ile denedim. Sadece bir tanesinin bilgisi gelmektedir. Çoklu transmitter ile bir receiver a nasıl data gönderebilirim?
Merhabalar,
Söylediğiniz durum için Modbus uygun değildir. Canbus konusuna bakmanızı öneririm.
Merhaba Fırat Bey, bilgilendirici anlatımınız için tebrik ederim. Bir sorum olacaktı. Elimde iki tane PLC ve iki (16 input-output) Remote I/O modülü var. Amaç sadece bu I/O modüllerini kullanarak iki PLC arasında bir haberleşme kanalı kurmak. Bunu da ModBUS RTU ve RS485 ile yapacağım. Ama nasıl bir fiziksel bağlantı kurmam gerektiğini anlamadım. PLC’leri ve remote modülleri birbirine nasıl bağlamalıyım?
Merhabalar Halil Bey,
Probleminiz çok özel ve bu tarz sorular genel kullanıcıyı hem çok ilgilendirmiyor hem de benim PLC’lerle ilgili bir tecrübem yok. Yorumunuzu yine de yayınlıyorum, bilen arkadaşlar cevaplayabilirler.
Merhaba Fırat Bey öncelikle bu bilgilendirici yazınız için teşekkür ederim. Çok faydalı bir yazı. Ben Yıldız Teknik Üniversitesi son sınıf öğrencisiyim. Tasarım Projesi dersim için bir Modbus kütüphanesi oluşturmam gerekiyor. Yazınızda yüzeysel olarak bahsetmişsiniz. Benim bu konuda çok bir bilgim yok. Bana kütüphane oluşturmada yardımcı olur musunuz?
Merhabalar Furkan, maalesef bu konuda çok fazla vaktim yok yalnız sitemde PetitModbus diye ararsan sonuca ulaşacaksın.
Selamunaleykum fırat bey paylaşımınız için teşekkür ederim. Gerçekleştirmeyi düşündüğüm projede modbus haberleşmesi için rs485 kullanacağım yaygın olduğu için. Bunu işlemci tarafında usart ile okuyacağımdan max485 kullanacağım. Sadece max485 kullanmak yeterlimi yoksa donanımsal olarak (asgari düzeyde) dikkat edilmesi gereken başka noktalar varmı ?
Merhabalar, elbette bir çok konuda önlem almanız gerekecektir. Yalnız bunlar için özel danışmanlık verdiğimden söylemek burada uygun olmayacaktır.
Arkadaşımın bana yollamasıyla birlikte bu yazıyı inceledim, gerçekten iki defa okudum ve hayretler içerisinde kaldım. Çok değerli bir yazı, kıymetli bir bilgi. Çok tebrik ederim
İçerik için teşekkürler. Gördüğüm en anlaşılır içerik olmuş. Piyasaya bir tane daha gömülü sistemci kazandırmakta payınız oldu 🙂