RS485 ADRES ATAMA

Başlatan batuhann, 14 Ağustos 2020, 12:34:21

batuhann

Merhabalar, merak ettiğim bir konu var, RS485 haberleşme protokolünde, haberleşme yapılacak mikrodenetleyicilere adresi kendimiz verebilir miyiz? Örneğin 2 adet mikrodenetleyici bulunuyor. Birisi master diğeri slave durumunda olacak, master cihaz slave olan cihazın adres bilgisini gönderecek(istediğimiz bir değer olabilir) ve slave cihaz bu adres bilgisini kendi adresi olarak ayarlayıp RS485 iletişimine bu adres ile başlayacak. Böyle birşey yapılabilir mi? veya bunun gibi bir işlem için hangi haberleşme protokolü kullanılmaıdır?

esdevhk

Multislave bir sistemde hepsinin birbirinden farklı başlangıç adresleri olmalı ki değiştirmek istediğinizde ilgili veri paketini sadece tek bir cihaz alabilsin. Sizin de bildiğiniz üzere RS485de belirlediğiniz veri çerçevesi çok önemlidir ve sistemdeki tüm karışıklığı bu veri çerçevesi ile çözersiniz.

ete

RS485 haberleşme sistemi RS232 altyapısını kullanır. Sistemde Slave adreslerini kullanıcı belirler. Standart bir protokol yoktur. Kullanıcı kendi ihtiyacına uygun olarak bir sistem belirler. Ama standart olarak Her slave in bir adresi (ID no) olur ve Master bu ID nosunu yolladığı bilginin başına ekleyerek havuza yollar ve bilgiyi bütün slave ler alır ve ID nosu çakışan slave emrin yada bilginin kendisine geldiğini anlar.
Dikkat edilmesi gerekenler şunlardır.
Bilgi başına bir işaretçi eklenmesi haberleşmenin kalitesini artırır. Bilgi adedi en baştan belirlenir ve her zaman bu adet bütün slave ler için uygulanır.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

mehmet

Taşıt yolları, taşıtlar ve yükleri
olarak düşünmek gerekli.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

MB_77

Slave cihaz belirtildiği gibi kendi adreaini gördükten sinra datalari dikkate Lacak şekilde dUzenlenir genelde.

Ancak ilave olarak genel komutlar da ekleyebilirsiniz. Mesela adres yerine atıyorum 210 datası geldiginde tüm slavler sonraki datayu işler.

Burada slave için 210 datasini adres kaydetme komutu olarak düzenler ve 210 dan sonra gelen datayi adres olarak kaydedecek şekilde düzenleyebilirsiniz.


Bu mantıkta mastera sadece tek slave bağlı ilmali aksi halde tüm slavler aynı adresi kaydeder. Bu adresten bağımsız genel komut mantigini gelistirebilirsiniz.

Mesela bu komutu alan slave eğer adresi sifirsa yeni adresi kaydetsin koşulu gibi bir koşul koyarsanız yani adres verilmemisse yazsın kosulu. Bu durumda sisteme teker teker slave ekleyerek adresleyebilirsiniz