Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.10.2008, 14:55
|
#1
|
Прохожий
Регистрация: 06.09.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Протокол modbus. Вопросы по интерфейсу
Здравствуйте.
На работе дали задание разработать интерфейс сообщений между устройствами на основе протокола Modbus.
Суть такова. Есть некоторое количество измерительных приборов, соединённых по RS-485. Нужно сделать так, чтобы с одного прибора можно было управлять другим - устанавливать режимы, принимать архивы измерений и т.д. За основу предложено взять протокол modbus.
Уже месяц сижу и туплю.
Вопросы:
1. Можно ли сделать так, чтобы любое устройство могло взять на себя роль главного?
2. Каким образом вообще передавать информацию главному? Через регистры, что ли?
3. С чего вообще начинать?
Подскажите, пожалуйста, ткните носом во что-нибудь готовое, описание какое-нибудь.
Протокол зачитал, но там, такое ощущение, всё привязано к конкретным контроллерам.
|
|
|
|
16.10.2008, 15:02
|
#2
|
Прописка
Регистрация: 07.08.2005
Сообщений: 178
Сказал спасибо: 16
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
а вы что на лампах планируете делать?
и какие регистры вы имеете ввиду для передачи информации?
|
|
|
|
16.10.2008, 15:13
|
#3
|
Прохожий
Регистрация: 06.09.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от EKuzmich
|
а вы что на лампах планируете делать?
и какие регистры вы имеете ввиду для передачи информации?
|
Простите, я выгляжу тормозом, наверное, но я с таким раньше не сталкивался, вот, обращаюсь за помощью.
На лампах ничего делать не собираемся.
Регистры имеются ввиду микроконтроллерные. Это что же, мне сначала в эти регистры записать, а потом с помощью функции чтения считать удалённо, что ли?
|
|
|
|
16.10.2008, 15:26
|
#4
|
Прописка
Регистрация: 18.06.2006
Сообщений: 179
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Судя по вопросам, в голове пока пусто. Я недавно в аналогичной теме здесь посылал описание модбаса на русском. Нужно почитать.
Пока нет общего понимания, не будет ответа на заданные вопросы.
Да, любой прибор может взять на себя функции мастера, если у него в прошивке будет это реализовано. Только нужно будет решить, каким образом прибор будет брать на себя функцию мастера.
Через регистры.
Начать с чтения. Месяц потерян зря.
|
|
|
|
16.10.2008, 15:29
|
#5
|
Прописка
Регистрация: 07.08.2005
Сообщений: 178
Сказал спасибо: 16
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
у меня несколько вопросов:
1. вы с UART портами котроллера вообще работали?
2. понимаете как работает конвертер 232-485?
ЗЫ без регистров вообще не получится ничего сделать на котроллере все происходит через регистры и прерывания.
|
|
|
|
16.10.2008, 15:43
|
#6
|
Прохожий
Регистрация: 06.09.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от EKuzmich
|
у меня несколько вопросов:
1. вы с UART портами котроллера вообще работали?
2. понимаете как работает конвертер 232-485?
|
1. Не работал.
2. Не понимаю.
Моя задача - разработать интерфейс сообщения между устройствами. Реализация будет потом. Но я конкретно не втыкаю, как это сделать.
|
|
|
|
16.10.2008, 15:59
|
#7
|
Прописка
Регистрация: 07.08.2005
Сообщений: 178
Сказал спасибо: 16
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
поддерживаю ответ выше
тогда начните с чтения и изучения возможностей
для реализации того что можно сделать а потом смотрите что вас устраивает.
|
|
|
|
16.10.2008, 16:49
|
#8
|
Прописка
Регистрация: 19.08.2004
Сообщений: 156
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
|
|
|
|
16.10.2008, 18:21
|
#9
|
Временная регистрация
Регистрация: 12.10.2006
Сообщений: 53
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Для начала тебе нужно будет доработать программу для мастера, т.е. вывести переменные для МОДБАСа (производить чтение со СЛЕЙВОВ, запись и изменение значений в переменных СЛЕЙВОВ, режим отображения изменяемой информации в подчинённом). Нужно создать карту памяти подчинённых устройств. Устройства должны иметь индивидуальные адреса в сети. Мастер обращается к устройству в сети, спрашивая по адресу переменной её значение. Подчинённый отвечает на запрос. Значение переменной отображается на дисплее МАСТЕРА - по желанию.
Очень приблизительно всё выглядит так.
пример карты памяти:
;Direction - направление (read & write)
;Type - тип (битовые или регистровые)
;Baudrate - скорость слэйва
;Address - адрес слэйва в сети RS-485
;var(0-n) - адрес#тип#символьное имя#комментарий
[Request0]
Direction=read
Type=bit
Baudrate=115200
Address=0
Period=1000
var1=3801#bool#SCo_Дист/~Мест
var2=3802#bool#SCo_Таймер
var3=3803#bool#SCo_Блокировка
var4=3804#bool#SCo_Пуск/~Стоп
var5=3805#bool#SCo_Локальный_~Пуск/Стоп
[Request1]
Direction=read/write
Type=bit
Baudrate=115200
Address=0
Period=1000
var0=3c00#bool#SCi_Дист/Мест
var1=3c01#bool#SCi_Таймер
var2=3c02#bool#SCi_Пуск
var3=3c03#bool#SCi_Стоп
var4=3c04#bool#SCi_Сброс_аварии
var5=3c05#bool#SCi_Блокировка
__________________
Б.га нет, есть только двоичный код.
|
|
|
|
17.10.2008, 07:47
|
#10
|
Прохожий
Регистрация: 03.02.2007
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вот ресурс где есть примеры реализации на С http://freemodbus.berlios.de/
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:22.
|
|