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

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

Модератор: immortal

noname_npc
Сообщения: 48
Зарегистрирован: Сб июл 21, 2018 9:08 pm
Откуда: Калининград
Благодарил (а): 10 раз
Поблагодарили: 5 раз

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

Сообщение noname_npc » Сб авг 22, 2020 1:06 pm

kirush писал(а):
Пт авг 21, 2020 1:14 am
там баг только не разбирался где, в ПУ или в модбасе.
Все нормально работает modbus., У меня дома моха е2210 и он ей отлично управляет. Косяк где то у вас. У меня было такое с модулем systeminfo.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Сб авг 22, 2020 5:32 pm

Vittaly писал(а):
Вт авг 11, 2020 4:14 pm
Прошу помощи. @sergejey, Периодически останавливается цикл modbus. При запуске цикла вручную из консоли через некоторое время он вываливается вот с такими сообщениями:

Код: Выделить всё

root@md:/var/www/scripts# sudo -u www-data php /var/www/scripts/cycle_modbus.php
14:53:49 running cycle_modbus.php
ERROR: http://
Uncaught Exception: The input data should be an array of 2 or 4 bytes. in /var/www/modules/modbus/PhpType.php:205
Stack trace:
#0 /var/www/modules/modbus/PhpType.php(66): PhpType::checkData(Array)
#1 /var/www/modules/modbus/modbus.class.php(387): PhpType::bytes2signedInt(Array, false)
#2 /var/www/modules/modbus/modbus.class.php(176): modbus->poll_device('1')
#3 /var/www/scripts/cycle_modbus.php(41): modbus->readAll()
#4 {main}
  thrown

root@md:/var/www/scripts#
Я понимаю, что иногда приходи некорректный ответ (есть ошибки на линии - это данность моей системы). Но можно ли сделать так, чтобы эта ошибка не приводила к остановке цикла?
Ну так в цикле нужно поставить проверку на корректность полученних данних. Ето одна строка кода в пхп...
Спасибо нам ПОМОЖЕТ..!
Vittaly
Сообщения: 118
Зарегистрирован: Вт окт 14, 2014 9:19 pm
Благодарил (а): 48 раз
Поблагодарили: 12 раз

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

Сообщение Vittaly » Вс авг 23, 2020 3:50 pm

tarasfrompir писал(а):
Сб авг 22, 2020 5:32 pm
Vittaly писал(а):
Вт авг 11, 2020 4:14 pm
Прошу помощи. @sergejey, Периодически останавливается цикл modbus. При запуске цикла вручную из консоли через некоторое время он вываливается вот с такими сообщениями:

Код: Выделить всё

root@md:/var/www/scripts# sudo -u www-data php /var/www/scripts/cycle_modbus.php
14:53:49 running cycle_modbus.php
ERROR: http://
Uncaught Exception: The input data should be an array of 2 or 4 bytes. in /var/www/modules/modbus/PhpType.php:205
Stack trace:
#0 /var/www/modules/modbus/PhpType.php(66): PhpType::checkData(Array)
#1 /var/www/modules/modbus/modbus.class.php(387): PhpType::bytes2signedInt(Array, false)
#2 /var/www/modules/modbus/modbus.class.php(176): modbus->poll_device('1')
#3 /var/www/scripts/cycle_modbus.php(41): modbus->readAll()
#4 {main}
  thrown

root@md:/var/www/scripts#
Я понимаю, что иногда приходи некорректный ответ (есть ошибки на линии - это данность моей системы). Но можно ли сделать так, чтобы эта ошибка не приводила к остановке цикла?
Ну так в цикле нужно поставить проверку на корректность полученних данних. Ето одна строка кода в пхп...
Если бы я знал, в каком месте - я бы поставил...
Cubietrunck + Debian
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Вс авг 23, 2020 4:53 pm

Vittaly писал(а):
Вс авг 23, 2020 3:50 pm
tarasfrompir писал(а):
Сб авг 22, 2020 5:32 pm
Vittaly писал(а):
Вт авг 11, 2020 4:14 pm
Прошу помощи. @sergejey, Периодически останавливается цикл modbus. При запуске цикла вручную из консоли через некоторое время он вываливается вот с такими сообщениями:

Код: Выделить всё

root@md:/var/www/scripts# sudo -u www-data php /var/www/scripts/cycle_modbus.php
14:53:49 running cycle_modbus.php
ERROR: http://
Uncaught Exception: The input data should be an array of 2 or 4 bytes. in /var/www/modules/modbus/PhpType.php:205
Stack trace:
#0 /var/www/modules/modbus/PhpType.php(66): PhpType::checkData(Array)
#1 /var/www/modules/modbus/modbus.class.php(387): PhpType::bytes2signedInt(Array, false)
#2 /var/www/modules/modbus/modbus.class.php(176): modbus->poll_device('1')
#3 /var/www/scripts/cycle_modbus.php(41): modbus->readAll()
#4 {main}
  thrown

root@md:/var/www/scripts#
Я понимаю, что иногда приходи некорректный ответ (есть ошибки на линии - это данность моей системы). Но можно ли сделать так, чтобы эта ошибка не приводила к остановке цикла?
Ну так в цикле нужно поставить проверку на корректность полученних данних. Ето одна строка кода в пхп...
Если бы я знал, в каком месте - я бы поставил...
смотри вот отсюда -https://github.com/sergejey/majordomo-m ... s.php#L187
За это сообщение автора tarasfrompir поблагодарил:
Vittaly (Вт авг 25, 2020 9:16 am)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
IgorP
Сообщения: 2
Зарегистрирован: Пт авг 21, 2020 12:55 am
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение IgorP » Вт авг 25, 2020 1:42 am

noname_npc писал(а):
Сб авг 22, 2020 1:06 pm
kirush писал(а):
Пт авг 21, 2020 1:14 am
там баг только не разбирался где, в ПУ или в модбасе.
Все нормально работает modbus., У меня дома моха е2210 и он ей отлично управляет. Косяк где то у вас. У меня было такое с модулем systeminfo.
Может быть и не Modbus. Но я пробовал на дефолтной MDM, буквально: одно устройство, один объект, одно свойство и один метод с единственной строкой: say('Test',0);. Свойства дублируются, метод не выполняется. Какой то баг явно есть. Переделал обмен на mqtt.
znachok88
Сообщения: 96
Зарегистрирован: Сб май 19, 2018 11:08 pm
Благодарил (а): 26 раз
Поблагодарили: 3 раза

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

Сообщение znachok88 » Сб сен 26, 2020 2:06 pm

Привет. Приобрел недавно Я такую вот интересную малину
https://ab-log.ru/forum/viewtopic.php?f=1&t=1719 и в ней есть
RS485 auto-flow, max 500kbps, до 128 устройств (GPIO32,33)
также приобрел SDM 220 (с Modbus)
Хочу с помощью этого всего выводить данные в Majordomo, но вот нигде не могу найти мануала, что бы это реализовать. Есть только с esp через wifi, но это не интересно.
Подскажите пожалуйста с чего начинать, и как реализовать мои хотелки.
Vittaly
Сообщения: 118
Зарегистрирован: Вт окт 14, 2014 9:19 pm
Благодарил (а): 48 раз
Поблагодарили: 12 раз

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

Сообщение Vittaly » Сб сен 26, 2020 2:53 pm

znachok88 писал(а):
Сб сен 26, 2020 2:06 pm
Привет. Приобрел недавно Я такую вот интересную малину
https://ab-log.ru/forum/viewtopic.php?f=1&t=1719 и в ней есть
RS485 auto-flow, max 500kbps, до 128 устройств (GPIO32,33)
также приобрел SDM 220 (с Modbus)
Хочу с помощью этого всего выводить данные в Majordomo, но вот нигде не могу найти мануала, что бы это реализовать. Есть только с esp через wifi, но это не интересно.
Подскажите пожалуйста с чего начинать, и как реализовать мои хотелки.
Данный моуль вам не поможет. Он MODBUS TCP. А вам надо работать с физическим RS485 на плате, т.е. это MODBUS RTU. Штатного модуля в MJDM нет. Вам нужно самому либо найти PHP библиотеку, либо отдельную библиотеку на CLI, которая бы работала с MODBUS RTU.
Cubietrunck + Debian
znachok88
Сообщения: 96
Зарегистрирован: Сб май 19, 2018 11:08 pm
Благодарил (а): 26 раз
Поблагодарили: 3 раза

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

Сообщение znachok88 » Сб сен 26, 2020 3:05 pm

Vittaly писал(а):
Сб сен 26, 2020 2:53 pm
znachok88 писал(а):
Сб сен 26, 2020 2:06 pm
Привет. Приобрел недавно Я такую вот интересную малину
https://ab-log.ru/forum/viewtopic.php?f=1&t=1719 и в ней есть
RS485 auto-flow, max 500kbps, до 128 устройств (GPIO32,33)
также приобрел SDM 220 (с Modbus)
Хочу с помощью этого всего выводить данные в Majordomo, но вот нигде не могу найти мануала, что бы это реализовать. Есть только с esp через wifi, но это не интересно.
Подскажите пожалуйста с чего начинать, и как реализовать мои хотелки.
Данный моуль вам не поможет. Он MODBUS TCP. А вам надо работать с физическим RS485 на плате, т.е. это MODBUS RTU. Штатного модуля в MJDM нет. Вам нужно самому либо найти PHP библиотеку, либо отдельную библиотеку на CLI, которая бы работала с MODBUS RTU.
спасибо хоть на этом, а то мне нарозсказывали что это проще простого купи счетчик и все, а только потом показывают инструкции с esp и всякой хренью, которую городить вообще не охота и не буду.
Yevgen16
Сообщения: 99
Зарегистрирован: Вс мар 29, 2020 11:20 am
Благодарил (а): 42 раза
Поблагодарили: 13 раз

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

Сообщение Yevgen16 » Сб сен 26, 2020 11:18 pm

Vittaly писал(а):
Сб сен 26, 2020 2:53 pm
Данный моуль вам не поможет. Он MODBUS TCP. А вам надо работать с физическим RS485 на плате, т.е. это MODBUS RTU. Штатного модуля в MJDM нет. Вам нужно самому либо найти PHP библиотеку, либо отдельную библиотеку на CLI, которая бы работала с MODBUS RTU.
Да нет. Поможет, правда с некоторым ковырянием. Здесь, в теме, было сообщение https://mjdm.ru/forum/viewtopic.php?f=5 ... 775#p63775. Ну так с помощью него происходит перенос MODBUS RTU в MODBUS TCP. И уже из модуля можно раскидывать данные. Но вот сам модуль мажордома Модбас у меня работал как-то криво, часто валились какие-то ошибки, хотя из-под винды все работало хорошо и без ошибок. Потом я переделал работу счетчика через скрипт mbmd (есть на гитхабе) и брокер mqtt. Эта связка сейчас работаает второй месяц, стабильно и практически без ошибок.
Последний раз редактировалось Yevgen16 Сб сен 26, 2020 11:24 pm, всего редактировалось 1 раз.
Raspberry Pi4B (4Gb) + MegaD + Informer (skysilver)
Yevgen16
Сообщения: 99
Зарегистрирован: Вс мар 29, 2020 11:20 am
Благодарил (а): 42 раза
Поблагодарили: 13 раз

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

Сообщение Yevgen16 » Сб сен 26, 2020 11:21 pm

znachok88 писал(а):
Сб сен 26, 2020 3:05 pm
спасибо хоть на этом, а то мне нарозсказывали что это проще простого купи счетчик и все, а только потом показывают инструкции с esp и всякой хренью, которую городить вообще не охота и не буду.
У меня чисто по проводам. Никаких esp. Но повозится пришлось пару дней. Счетчик SDM120, почти такой же, только поменьше и с токовым трансформатором.
Raspberry Pi4B (4Gb) + MegaD + Informer (skysilver)
Ответить