LINUX.ORG.RU

Поясните по modbus

 


1

2

Заказал такую вот платку - http://www.ebay.com/itm/8-Channel-Network-IP-Relay-Web-Dual-Control-Ethernet-...

Вчера забрал, подключил, потыкал мышкой в веб-интерфейсе (когда его нашел) - реле срабатывают :)

Среди коммуникаций заявлена работа с modbus (с чем раньше дела не имел). Я так понимаю, некими утилитами можно дергать те же реле из консоли и, возможно, смотреть состояние входов. В настройках задается TCP-порт для такого общения. Т.е., по-идее, нужен некий modbus tcp-клиент (?), который и сможет передавать команды железке. Чем можно пообщаться в Linux'e с платкой? Под Android в маркете вижу несколько софтин, а в Debian с этим как-то не густо. И как вообще типично происходит такое общение?

★★★★★

Ответ на: комментарий от conalex

Эта штука и так в репозитории есть. Только там, кроме самой либы, в пакете ничего нет. Собирал версию с githib'а, там есть тесты - заточенные, правда, чисто на внутреннее использование. Сменил адрес в исходнике, пересобрал, но внятного оно ничего не выдает.

YAR ★★★★★
() автор топика
Ответ на: комментарий от sigurd

modpoll пробовал, но на любые комбинации параметров у меня «Reply time-out!». Кстати, таки железка слушает 3 порта - веб, 502 и некий 1234. Веб и 1234 задается в веб-интерфейсе. А для modbus'а надо было ломиться на 502, каким он дефолтно и является, а не на тот 1234. В таком случае тесты от libmodbus хоть что-то выдают:

rain@elitebook:/tmp/libmodbus/tests$ ./unit-test-client 
Connecting to 192.168.1.166:502
** UNIT TESTING **
1/1 No response timeout modification on connect: OK

TEST WRITE/READ:
[00][01][00][00][00][06][FF][05][01][30][FF][00]
Waiting for a confirmation...
<00><01><00><00><00><06><FF><05><01><30><00><00>
1/2 modbus_write_bit: OK
[00][02][00][00][00][06][FF][01][01][30][00][01]
Waiting for a confirmation...
<00><02><00><00><00><04><FF><01><01><00>
2/2 modbus_read_bits: OK

Line 143: assertion error for 'tab_rp_bits[0] == 1': FAILED (0 != 1)



В принципе, с консоли можно железку и wget'ом дергать:

rain@elitebook:/tmp$ wget -qO /dev/null --user=admin --password=12345678 http://192.168.1.166/relay_en.cgi --post-data="saida1on"
rain@elitebook:/tmp$ wget -qO /dev/null --user=admin --password=12345678 http://192.168.1.166/relay_en.cgi --post-data="saida1off"

Соответственно, включение и выключение первого реле. Но интересно было и с modbus'ом разобраться.

YAR ★★★★★
() автор топика

Модбасня очень простой протокол. Устройство твое, скорее всего, содержит в себе реализацию modbus-slave (сервер). Тебе нужна программа, которая modbus-master (клиент). Сам протокол - это несколько областей памяти, тебе, скорее всего, интересны holding и input - регистры. Остальными никто щас не пользуется. В холдинг можно писать и их читать, инпуты только читать. Посмотри доки, протокол очень прост.

А про все остальное, под оффтоп есть замечательная тулза - modscan. Либо ищи аналоги, либо напиши небольшой скрипт на каком-нибудь питоне. В modbus-master tcp вообще подводных граблей минимум.

RedPossum ★★★★★
()

Про modbus неплохо на википедии написано. Недавно брал измеритель температуры, так вот он работает по modbus(только не tcp, а rtu) и в комплекте шло описание по какому адресу какая инфа хранится, а еще параметры подключения и т.д. Клиента пришлось делать самому, как сказали выше, там не особенно сложно.

rumgot ★★★★★
()

Нехило ты лоханулся! Тупо на STM32F107 можно было то же самое наворотить в 5 раз (как минимум) дешевле!

И не на идиотском модбасе, а на обычных GET/POST запросах.

anonymous
()
Ответ на: комментарий от anonymous

наворотить

По-моему, это не синоним варианта «готовое решение». А так-то да, можно было взять RPi Zero или аналог, зацепить на него сеть, а на GPIO повесить реле, найденные в хламе... Цена на плату мне самому не особо нравится, но тем не менее. Эту взял для начала просто поиграться, а там посмотрим.

И не на идиотском модбасе, а на обычных GET/POST запросах.

Для не читавших тред: я прекрасно рулю этой платкой и через wget с POST-запросом. А modbus - просто одна из опций, на которую, в принципе, можно забить, так как для моих применений вполне хватит и веб-интерфейса.

YAR ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Нехило ты лоханулся! Тупо на STM32F107 можно было то же самое наворотить в 5 раз (как минимум) дешевле!

цена 2 463,13 руб

Какой жадный анон!

qaqa ★★
()
Ответ на: комментарий от qaqa

Ну жадный не жадный, а то что 400 рублей за плату с реле, 130 за, прости хоспаде, ардуино нано, плюс, эээ могу сорвать, 250р за юзернет шилд... Прошивка пишется элементарно из готовых библиотек... И будет и модбас и пост/Гёт и прочие куртизанки с преферансом...

anonymous
()

Я о....аю дорогая редакция... Cortex-M3 чтобы 8 лампочками рулить... Чтож не малина сразу...

anonymous
()
Ответ на: комментарий от anonymous

Ну жадный не жадный, а то что 400 рублей за плату с реле, 130 за, прости хоспаде, ардуино нано, плюс, эээ могу сорвать, 250р за юзернет шилд... Прошивка пишется элементарно из готовых библиотек... И будет и модбас и пост/Гёт и прочие куртизанки с преферансом.

Сюда необходимо добавить наличие:

* опыта программирования, как минимум.

* знаний этой кухни хотя бы на уровне ардуины.

* желания красноглазить.

Вместо того, чтобы тупо переплатить в абсолютном выражении несчастных пару тыщ. Естественно, если необходимо массовое применение, которое окупит затраты на разработку, стоит всем вышеперечисленным заняться.

qaqa ★★
()
Ответ на: комментарий от anonymous

Modbus чем не устроил? Хороший протокол для получения числовой информации. Зачем http, если там одни зоголовки будут занимать больше байт, чем непосредственно запрашиваемая инфа.

rumgot ★★★★★
()
Ответ на: комментарий от anonymous

а можно и вообще без всей этой тряхомудии просто воткнуть провод в розетку или использовать выключатель - совсем бесплатно выйдет

anonymous
()
Ответ на: комментарий от anonymous

Вроде где-то писали, что есть, но на деле мне весьма сложно ориентироваться на чисто китайском сайте производителя :)

YAR ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.