[Модуль] ModBus (modbus)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

MrDorianGray
Сообщения: 10
Зарегистрирован: Пн июл 04, 2016 4:46 pm
Благодарил (а): 0
Поблагодарили: 0

Re: модуль modbus

Сообщение MrDorianGray » Пт июл 15, 2016 8:45 am

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

Возникла проблема:
У меня получается такая ситуация - есть два разных преобразователя Ethernet-Modbus RTU и один прибор с двумя релюшками и двумя датчиками.
Я настроил считывание периодически показаний двух датчиков, состояние реле№1 и управление реле №2 по кнопке на Сцене.

Включаю систему с первым преобразователем, показания считываются периодически все Ок. Управляю Реле№2 по кнопке - все Ок, данные продолжают дальше считываться периодически.

Включаю систему со вторым преобразователем, показания считываются периодически - все Ок. Управляю Реле№2 по кнопке все Ок, но данные перестают считываться периодически, хотя если зайти в панель управления и считать принудительно - то данные считывают.

Получается со вторым преобразователем я могу управлять системой, но данные получить периодически уже не могу =(((
Подскажите куда копать и как отдебажить данную проблему. Возможно проблема в преобразователе что он не такой шустрый, как первый и не успевает все обработать, но все таки хотелось бы что б периодический опрос датчиков не останавливался.
Аватара пользователя
foxvlad
Сообщения: 287
Зарегистрирован: Пн сен 22, 2014 3:18 pm
Откуда: Сочи
Благодарил (а): 78 раз
Поблагодарили: 78 раз
Контактная информация:

Re: модуль modbus

Сообщение foxvlad » Пт июл 15, 2016 10:51 am

MrDorianGray писал(а):Было бы здорово добавить поддержку считывания по запросу а не по таймеру, тогда можно было настроить скрипт который может запускать считывание когда необходимо и не засорять канал ненужным считыванием данных - я понимаю что можно настроить интервалы, но мне кажется это как-то неправильно.

Возникла проблема:
У меня получается такая ситуация - есть два разных преобразователя Ethernet-Modbus RTU и один прибор с двумя релюшками и двумя датчиками.
Я настроил считывание периодически показаний двух датчиков, состояние реле№1 и управление реле №2 по кнопке на Сцене.

Включаю систему с первым преобразователем, показания считываются периодически все Ок. Управляю Реле№2 по кнопке - все Ок, данные продолжают дальше считываться периодически.

Включаю систему со вторым преобразователем, показания считываются периодически - все Ок. Управляю Реле№2 по кнопке все Ок, но данные перестают считываться периодически, хотя если зайти в панель управления и считать принудительно - то данные считывают.

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

Посмотрите в логах, что происходить по второму преобразователю.

Это скорее всего проблема либо в устройстве либо в ваших настройках, надо как то подробней глянуть, что у вас за настройки и как прописана кнопка с объектах и методах.

Если есть возможность, свяжитесь со мной завтра в группе в контакте, ссылка на группу есть на моем сайте и на канале.
MrDorianGray
Сообщения: 10
Зарегистрирован: Пн июл 04, 2016 4:46 pm
Благодарил (а): 0
Поблагодарили: 0

Re: модуль modbus

Сообщение MrDorianGray » Пт июл 15, 2016 11:44 am

Та настроено вроде все как-обычно по видео, которое было выше. Возникает ощущение, что в один прекрасный момент преобразователь не успевает ответить на запрос и система думает что прибор заглючил и соответственно прекращает опрос, хотя скрипт cycle_modbus.php вызывается системой.
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: модуль modbus

Сообщение vitar78 » Пт июл 15, 2016 5:02 pm

ребят подскажите по modbus tcp
настроил ардуинку слейв 1 передача температура
в МД в модуле модбас приём, но как дальше вывести в сцену не могу разобратся
MrDorianGray
Сообщения: 10
Зарегистрирован: Пн июл 04, 2016 4:46 pm
Благодарил (а): 0
Поблагодарили: 0

Re: модуль modbus

Сообщение MrDorianGray » Пт июл 15, 2016 6:07 pm

Тебе необходимо создать объект, в свойство которого ты будешь сохранять считанные данные, а потом с помощью скрипта разбивать данные - если у тебя считывается сразу несколько значений через запятую.
Смотри видео - https://www.youtube.com/watch?v=AsRB-JSuCVU .
MrDorianGray
Сообщения: 10
Зарегистрирован: Пн июл 04, 2016 4:46 pm
Благодарил (а): 0
Поблагодарили: 0

Re: модуль modbus

Сообщение MrDorianGray » Пт июл 15, 2016 6:11 pm

Вопрос к разработчику модуля: с какой целью делалась рандомизация номера порта TCP соединения (в разных запросах он разный).

Выяснилось что второй преобразователь может поддерживать только пять активных соединений одновременно. Почему бы не сделать один исходящий порт для обмена данными, который указывать при создании соединения?
Аватара пользователя
foxvlad
Сообщения: 287
Зарегистрирован: Пн сен 22, 2014 3:18 pm
Откуда: Сочи
Благодарил (а): 78 раз
Поблагодарили: 78 раз
Контактная информация:

Re: модуль modbus

Сообщение foxvlad » Пт июл 15, 2016 9:01 pm

MrDorianGray писал(а):Вопрос к разработчику модуля: с какой целью делалась рандомизация номера порта TCP соединения (в разных запросах он разный).

Выяснилось что второй преобразователь может поддерживать только пять активных соединений одновременно. Почему бы не сделать один исходящий порт для обмена данными, который указывать при создании соединения?
Чего-то я не понял про, что вы?
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: модуль modbus

Сообщение vitar78 » Пт июл 15, 2016 10:22 pm

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

PS
По поводу ошибок разобрался 1 регистр несуществующий прописал
остальное не могу победить

modbus pool читает всё коректно и бза ошибок
bureau
Сообщения: 2
Зарегистрирован: Пт июл 15, 2016 11:58 pm
Благодарил (а): 0
Поблагодарили: 0

Re: модуль modbus

Сообщение bureau » Сб июл 16, 2016 12:06 am

foxvlad писал(а): Чего-то я не понял про, что вы?
Попробую немнго обьяснить... Есть несколько моентов...
1) На каждый modbus запрос открывается новое ТСР соединение. Почему была вложена така логика?
2) Каждый запрос modbus-ТСР протокола имеет рандомный порядковый номер что не есть хорошо...
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 27 раз

Re: модуль modbus

Сообщение Geban » Сб июл 16, 2016 6:42 am

Читайте несколько регистров сразу из устройства. Будете получать данные одним запросом по одному TCP соединению.
За это сообщение автора Geban поблагодарил:
foxvlad (Сб июл 16, 2016 8:30 am)
Рейтинг: 1.16%
Ответить