|
Как общаться двум ПК по RS-485 по протоколу Modbus? | ☑ | ||
---|---|---|---|---|
0
Kseniya_
08.08.16
✎
21:06
|
Добрый день!
Я давно ищу реализацию или объяснение, как заставить общаться двум компьютерам по рс-485 (а не компьютеру и Контроллеру) по протоколу модбас. И каждый раз, в каждой статье, натыкаюсь на объяснение общения ПК и ПЛК, но ни одной статьи про общение компьютеров. В будущем компьютеров будет больше двух. Не встречался ли кто-то с такой задачей? |
|||
1
Zamestas
08.08.16
✎
21:08
|
(0) Для чего?
|
|||
2
Kseniya_
08.08.16
✎
21:13
|
(1) Для реализации режима работы программы ведущий-ведомый. Несколько компьютеров связаны кабелем рс-485. И ещё по ком-порту связан один из компьютеров с контроллером (но речь не о нем), один из компьютеров ведущий опрашивает контроллер и отправляет всем остальным компьютерам по модбаз, что он жив, и данные, которые он опросил. Остальные компьютеры отвечают ведущему о своей живучести. Дальше если ведущий выключается/ломается, то ведомые не получив от него данных, один из ведомых становится ведущим и сам начинает опрос контроллера.
|
|||
3
vde69
08.08.16
✎
21:14
|
во первых модбус - требует единомоментного мастера, или постоянного или циклического...
во вторых в стандарте зашиты команды управления периферийкой а не софтом... в третьих - есть библиотеки для комп-комп, реально видел... |
|||
4
vde69
08.08.16
✎
21:15
|
(2) ринг-мастер поддерживается кучей других (более простых протоколов)
|
|||
5
H A D G E H O G s
08.08.16
✎
21:21
|
жесть какая.
|
|||
6
Kseniya_
08.08.16
✎
21:23
|
(4) Ринг-мастер это имеется ввиду ведомый-ведущий? А другие протоколы работают с рс-485?
|
|||
7
H A D G E H O G s
08.08.16
✎
21:23
|
Бяги девочка оттуда. Эта полупромышленная херь никуда не уперлась.
|
|||
8
Kseniya_
08.08.16
✎
21:27
|
(7) Уже почти сбежала. Вот без этой жести не отпустят никак)
|
|||
9
vde69
08.08.16
✎
21:29
|
(7) вообще надстройки над модбусом в каждом авто работают :)
это один из самых распространённых классов протоколов в мире... но вот в реализации они тяжелые, ибо стандарт жесткий и требует полной реализации. Я хотел его делать в умном доме, но пришел к собственному велосипеду по двум причинам, первая - требование полной реализации... |
|||
10
H A D G E H O G s
08.08.16
✎
21:30
|
(9) Все функции в ардуино лениво прописать?
|
|||
11
Garykom
гуру
08.08.16
✎
21:32
|
А шо еще нету реализации tcp/ip поверх модбаса?
|
|||
12
vde69
08.08.16
✎
21:33
|
(10) памяти и так мало, и размер кадра избыточно велик...
написал свое, тестировал неделю включая в сеть специальный генератор белого шума, все работает очень надежно... |
|||
13
vde69
08.08.16
✎
21:33
|
(11) есть
|
|||
14
Garykom
гуру
08.08.16
✎
21:39
|
(13) Гм, не нашел нашел только Modbus TCP который реализация модбаса поверх tcp/ip протокола
http://www.modbus.org/tech.php |
|||
15
H A D G E H O G s
08.08.16
✎
21:40
|
(11) Как оно?
|
|||
16
vde69
08.08.16
✎
21:47
|
(14) ну да, я немного не правильно тебя понял :)
тут основная проблема - это необходимость мастера, а делать ринг-мастер а по верх него TCP - по моему это просто глупо :) |
|||
17
Garykom
гуру
08.08.16
✎
21:47
|
(16) нашел https://toster.ru/q/74322
|
|||
18
Zamestas
08.08.16
✎
21:52
|
(2) А комп часто мрет?
|
|||
19
vde69
08.08.16
✎
21:53
|
может лучше юзать https://ru.wikipedia.org/wiki/LanDrive
|
|||
20
Garykom
гуру
08.08.16
✎
21:54
|
(16) Да мастер нужен который по сути будет роль шлюза играть и заниматься пересылкой/забором пакетов со слейвов.
На слейвах нужен буфер на исходящие пакеты чтобы дождаться пока мастер обратится за ними. И самый изврат в (0) когда мастер помирает и "новый мастер" заново делает "dhcp" )) |
|||
21
Garykom
гуру
08.08.16
✎
21:57
|
(19) Да хотел предложить но оно заточено на умный дом а не обмен между компами в этой извращенной сети.
Проще свое написать будет прямо на modbus он же простой совершенно. Еще есть готовое http://www.mesta-automation.com/modbus-with-c-sharp-libraries-examples/ в разных видах как платные "обертки" так и фри. |
|||
22
Kseniya_
08.08.16
✎
21:58
|
(18) Мастер умирает не часто, просто в ситуации, когда выключают компьютер (не каждый день, а по какой-то особой причине - переставить его нужно и пр. или он просто сломался, предположительно раз в 2-4 недели, к примеру.
|
|||
23
Garykom
гуру
08.08.16
✎
22:06
|
||||
24
Kseniya_
08.08.16
✎
22:07
|
А пользоваться вместо модбаз запись/чтение в ком-порт номер 1, например, так не получится с рс-485?
|
|||
25
Garykom
гуру
08.08.16
✎
22:07
|
||||
26
Garykom
гуру
08.08.16
✎
22:08
|
(24) Оно так по сути и работает, но по очереди устанавливает serial соединение между матером и слейвами.
Слейвы сами ничего не могут пока жив мастер. |
|||
27
Kseniya_
08.08.16
✎
22:09
|
(26) Слейвы смогут прочитать в этой библиотеке данные из пакета с мастера, но не смогут мастеру ответ дать?
|
|||
28
vde69
08.08.16
✎
22:10
|
(21) вообще-то LanDrive это надстройка над Modbus/RTU
так, что можно смело его реализацию брать :) |
|||
29
Zamestas
08.08.16
✎
22:11
|
(27) Не могут - только по запросу.
|
|||
30
Garykom
гуру
08.08.16
✎
22:14
|
(29) +1
(27) слейв может ответить мастеру, если мастер ничего на запросил то слейв будет молчать в тряпочку. |
|||
31
Garykom
гуру
08.08.16
✎
22:17
|
Кстати задачка (0) нерешаема для более чем одного резервного мастера, без дополнительного канала коммуникации.
Можно настроить один из слейвов что если ему долго не сообщает о своей работе мастер (не соединяется с ним) то этот слейв будет считать что мастер сдох и сам начнет "мастерить". Но вот два резервных мастера в один момент времени не может быть. И в случае отказа мастера и запасного мастера остальные слейвы будут тупо ждать. Если одному из них каким то способом не сообщить что теперь ты мастер (резервный же не успел назначить запасного себе). |
|||
32
Kseniya_
08.08.16
✎
22:18
|
(30) Может быть такой вариант и каким-то образом сгодился бы по ком-порту, в принципе слейву и надо отвечать мастеру, самостоятельно без запроса что-то отправлять мастеру слейву не нужно
|
|||
33
Garykom
гуру
08.08.16
✎
22:21
|
(32) Это можно, ссылки на либы в ветке.
В случая отказа одновременно обоих мастеров основного и запасного будет привет )) |
|||
34
Garykom
гуру
08.08.16
✎
22:23
|
||||
35
vde69
08.08.16
✎
22:29
|
(32) я-бы сабж решал железным способом, берем тригер с циклическим сдвигом на 10 портов, 5 портов завязываем через кондер на RX железки RS485,
и в зависимости от того какой интерфейс работает на прием выставляем соответствующий тригер из 5 остальных, далее ставим 5 преобразователей TTL, и все... с компаов можно читать эти TTL выхода на котором будет только 1 текущий активный уровень... ну как-то так... то есть железка сама будет определять какой RS485 , будет считатся мастером |
|||
36
Garykom
гуру
08.08.16
✎
22:38
|
(35) Ты изобрел уплотнение )) примерно так GSM пашет и еще много чего
|
|||
37
Zamestas
08.08.16
✎
22:46
|
А я бы решил сабж по другому: Поставил бы не глюкавую железку и запретил её таскать.
|
|||
38
Garykom
гуру
08.08.16
✎
22:58
|
(37) Чем поможет "не глюкавая" железка когда провод оборвут? Только к этой "не глюкавой" железке.
|
|||
39
Zamestas
08.08.16
✎
23:03
|
(38) У ТС в (22) данная проблема не возникает.
|
|||
40
Garykom
гуру
08.08.16
✎
23:10
|
(39) Тогда не понимаю смысла (2) как резервного мастера. Думал то нуна автоматом чтобы мастер сам поднимался, а не направительным пинком от человека.
По сути это и есть дополнительный канал коммуникации. Просто реализовать мастер/слейв на каждом компе и мастера запускать только на том что нуна. |
|||
41
Йохохо
09.08.16
✎
00:20
|
485 это же "общая шина"? если на нее навесить пачку 485-232 слышать будут все? и если прокинуть общую шину всем резервным дело останется за программной реализацией?
|
|||
42
Kseniya_
09.08.16
✎
00:46
|
(40) Кажется и правда можно и нужно обойтись обычным ком-портом. Мастер выбираться должен 1 раз или по-умолчанию, а вообще, человек там не должен что-то включать и пр, компьютер должен сам понять, что мастера нет и кто-то один из компьютеров должен принять на себя работу мастера.
|
|||
43
Kseniya_
09.08.16
✎
00:47
|
(41) Да, вроде бы там сейчас должно быть все внутри этой сети слышно, я это не сразу поняла.
|
|||
44
Йохохо
09.08.16
✎
09:00
|
(42) бывает схема "делаю, потому что могу". Мастера слушают шину и считают сколько в сети старше их по айди. Если один, то в отсчет предыдущего + время ответа + 400мс опрашивают устройство самостоятельно
|
|||
45
Kseniya_
09.08.16
✎
15:17
|
(44) Уже пробую по этой схеме делать. Большое спасибо всем!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |