Страница 18 из 31

Re: модуль modbus

Добавлено: Вт ноя 29, 2016 12:04 pm
ElectronicsInFocus
Mikhail72 писал(а):Всё мучаю ModbusTCP на Arduino, и выяснил такую вещь (с помощью Wireshark), что MD не получает ответа на запрос от UNO по протоколу Modbus. Как я писал выше у меня к MD подключен IP-домофон, когда ему приходит запрос он отсылает ответ, запросов к нему идёт три, два из них каждую секунду и один раз в минуту, тут всё в порядке. Когда запрос идёт к Ардуино, ответа нет. Но данные в MD откуда-то всё-таки попадают, решил посмотреть всю переписку между устройствами и нашел, что IP-домофон и Arduino обмениваются ещё и TCP пакетами с MD, видимо из них-то и проскакивают периодически данные в MD, т.е. когда я подключал Arduino к Modbus Poll, они друг друга отлично понимают по TCP, а вот MD понимает только данные, которые ему приходят в ответ на запрос по протоколу Modbus, а всё что проскакивает случайно видимо баг.
TCP-пакеты помимо пакетов с modbus-телом - это нормально, стандартное установление соединения по TCP. Ваших данных в них быть не может, это ошибочное предположение.
Чтобы не гадать на кофейной гуще, приложите дамп из Wireshark за несколько минут и опишите на каких IP какие узлы сидят.

Re: модуль modbus

Добавлено: Ср ноя 30, 2016 4:24 pm
shemnik69
Вот интересная тема. Интересна сама реализация. https://m.geektimes.ru/post/262568/

Re: модуль modbus

Добавлено: Ср ноя 30, 2016 9:32 pm
Mikhail72
Подключил Arduino, запустил Wireshark и начал тыкать кнопку обновить в настройках Modbus MajorDoMo. В логе пару раз проскочило значение 70, пока принтскринил может третье успело. 192.168.1.7 - адрес исследуемого, 192.168.1.3 - сервер MD, 192.168.1.8 - ip-домофон.

Скрины прилагаются и дамп, если я правильно понял что это он.
1.rar
(560.29 КБ) 268 скачиваний
SPOILERSPOILER_SHOW
1234.jpg
1234.jpg (225.64 КБ) 10287 просмотров
1225.jpg
1225.jpg (495.82 КБ) 10287 просмотров
1223.jpg
1223.jpg (487.57 КБ) 10287 просмотров

Re: модуль modbus

Добавлено: Ср дек 07, 2016 10:39 pm
Mikhail72
Раз никто не отвечает, решил поснифферить общение между MasterOPC Universal Modbus Server и тем же Arduino Uno, т.к. срок демки Modbus Poll истёк. При установке фильтра ModbusTCP отображаются только запросы сервера, ответов от Arduino не приходит, но данные на сервере отображаются корректно, т.е. данные от Uno уходят в TCP-пакетах и сервер их понимает, а MD понимает только modbus/tcp ответ на modbus/tcp запрос. Придётся искать костыли, т.к. очень хочется modbus.
Коротенький дамп прилагаю и скрин запрос/ответ OPC Server
2.rar
(2.99 КБ) 261 скачивание
SPOILERSPOILER_SHOW
opc.jpg
opc.jpg (681.82 КБ) 10239 просмотров
п.с. Отлаживаю систему систему контроля и управления доступом + контроль и управление локальным очистным сооружением на Arduino, управление выходами осуществляю по ModbusTCP FC5/Write single coil (MD и Uno дружат), а обратную связь через GET, т.к. MD не понимает Uno.

Re: модуль modbus

Добавлено: Пн дек 12, 2016 6:39 pm
gorobey
Обнаружилась проблема с модулем

http://192.168.99.хх/admin.php?pd=cGFuZWw6e2FjdGlvbj1tb2RidXN9pz_&md=modbus&inst=adm&
Error:
1406: Data too long for column 'LOG' at row 1
UPDATE `modbusdevices` SET `ID`='1', `TITLE`='Sensor', `HOST`='192.168.99.203', `PROTOCOL`='TCP', `PORT`='0', `DEVICE_ID`='2', `REQUEST_TYPE`='FC3', `REQUEST_START`='0', `REQUEST_TOTAL`='1', `RESPONSE_CONVERT`='dw2i', `DATA`='', `CHECK_LATEST`='2016-12-12 17:37:20', `CHECK_NEXT`='2016-12-12 17:38:20', `POLLPERIOD`='60', `LINKED_OBJECT`='TempSensor01', `LINKED_PROPERTY`='temp', `LOG`='2016-12-12 17:37:20 FC3 Error:

readMultipleRegisters: START\nConnected\nPacket: 7f2200000006020300000001\nSend\nWait data ... \nWait data ... \nData received\nPacket: 7f220000000302830b\n

exception \'Exception\' with message \'Modbus response error code: 11 (GATEWAY TARGET DEVICE FAILED TO RESPOND)\' in /var/www/modules/modbus/ModbusMaster.php:205\nStack trace:\n#0 /var/www/modules/modbus/ModbusMaster.php(509): ModbusMaster->responseCode(\'\\x7F\"\\x00\\x00\\x00\\x03\\x02\\x83\\v\')\n#1 /var/www/modules/modbus/ModbusMaster.php(445): ModbusMaster->readMultipleRegistersParser(\'\\x7F\"\\x00\\x00\\x00\\x03\\x02\\x83\\v\')\n#2 /var/www/modules/modbus/modbus.class.php(240): ModbusMaster->readMultipleRegisters(\'2\', \'0\', \'1\')\n#3 /var/www/modules/modbus/modbusdevices_edit.inc.php(117): modbus->poll_device(\'1\')\n#4 /var/www/modules/modbus/modbus.class.php(430): require(\'/var/www/module...\')\n#5 /var/www/modules/modbus/modbus.class.php(131): modbus->edit_modbusdevices(Array, \'1\')\n#6 /var/www/modules/modbus/modbus.class.php(93): modbus->admin(Array)\n#7 /var/www/lib/jTemplate.class.php(711) : eval()\'d code(8): modbus->run()\n#8 /var/www/lib/jTemplate.class.php(711): eval()\n#9 /var/www/lib/jTemplate.class.php(195): jTemplate->parseModules(\'...\', Array, \'./templates/\')\n#10 /var/www/lib/jTemplate.class.php(109): jTemplate->parse(\'

Явно из-за длинного лога. Где он хранится и как его пофиксить ?

Re: модуль modbus

Добавлено: Вт дек 27, 2016 7:31 pm
sergejey
попробуйте обновить модуль, я добавил обрезание лога

Re: модуль modbus

Добавлено: Ср дек 28, 2016 4:52 pm
TheForum
Приветствую.

Помогите с конвертацией или с коррекцией php файла модуля MODBUS. Считываю показания с измерительного модуля по модбасу (TCP). Другой сканер Модбас показывает значение 2283 (в десятичной системе) (в инструкции указано выдаваемое значение и коэффициент 0.1, т.е. получаем 228.3 Вольт как и должно быть). При использовании модуля MJD и выборе преобразование данных "none (bytes)" получаю 8,228. При выборе других видов преобразования получаю вообще что то неадекватное. Как добиться данных с десятичной точностью - 228.3 вместо 8,228 (иногда впереди 9). Или хотя бы целые значения - 228... Не совсем понятны преобразования полученных данных MODBUS MJD модулем..

Спасибо.

Дополнение - проблему решил - немного еще поэкспериментировал с функциями чтения и преобразования.. В итоге выбрал функцию FC4 вместо FC3 и преобразование INT to integer и получил свои желаемые 2283 :) Что еще заметил - мое устройство обновляет данные каждые 200мс. На другом сканере стоял период обновления 1 сек., в MJD тоже 1 сек. Данные корректно считывались в обеих программах. Ради эксперимента в другом сканере поставил время опроса 200мс, и в MJD данные перестали обновляться, другой сканер работал корректно.. Так что смотрите время опроса данных своих устройств, не ставте максимальные значения и планируйте ресурсы :)

Re: модуль modbus

Добавлено: Ср дек 28, 2016 9:54 pm
Mikhail72
Обновил, подключил, в логе событий по-прежнему пусто, после нескольких нажатий на кнопку "обновить" в логе появилась одна строчка с данными. При отключении Arduino появляется строка "2016-12-28 23:36:46 FC3 Error: <pre>readMultipleRegisters: START
</pre> exception 'Exception' with message 'socket_connect() failed.</br>Reason: ()
Запустил MasterOPC Universal Modbus Server с теми же настройками регистров, всё нормально.
SPOILERSPOILER_SHOW
5.jpg
5.jpg (757.16 КБ) 10647 просмотров

Re: модуль modbus

Добавлено: Пн фев 06, 2017 12:23 pm
ILGAS
Помогите пожалуйста добавить домофон к Majordomo.
В modbus я не понимаю.
вот ссылка как добавили мой домофон через modbus на другой платформе.
https://kickstone.ru/article/intercom/
документация на домофон
https://kickstone.ru/article/intercom/b ... us_api.pdf
Заранее спасибо за помощь.

Re: модуль modbus

Добавлено: Пт фев 17, 2017 12:31 pm
blackangel
Есть предложение к автору!

Крайне неудобно, открывать отдельно взятую запись чтобы увидеть тип запроса и адрес. Поэтому предлагаю добавить в общий список колонки "Адрес" и "тип запроса". Было бы очень удобно наглядно смотреть какие у тебя адреса заняты.