Сразу прошу прощения за неприятные комментарии, но что делать, если так всё и есть. Есть ли надежда, что закончится ситуация “одно починили, другое сломали”?
Каждый раз после установки очередного обновления, что-то перестает работать, иногда очень важное. Поэтому мы всегда оттягиваем установку обновления до последнего. Не случилось исключения и в этот раз. Сколько могли держались на версии 22.08, но все же нам пришлось поставить 23.05 - там были важные для нас исправления. Но вместе с исправлениями нас ждал очередной “сюрприз”. Встали почти все опросы квартирных электросчетчиков Меркурий 206. Из 450 подключенных на настоящий момент М206, опрос успешно прошли только около 30 счётчиков. Это полный пэ, товарищи.
Пришлось потратить полдня своего времени, чтобы разобраться в чем дело. Причем выходного дня, так как рабочий график сейчас очень плотный, и в нем нет места для бесплатной работы непонятно для чего. Ведь мы то не просили ничего трогать в драйвере Меркурий 206.
Теперь, собственно, что удалось выяснить. В теме http://forum.lers.ru/viewtopic.php?f=8&t=5195 вас попросили добавить чтение из М206 всякой всячины. Однако как-то было упущено из виду, что не со всеми М206 такой фокус проходит. Те наши счётчики, которые сейчас все же прошли опрос, имеют самый свежий серийный номер 270***** и выше. Но уже с номерами 248***** и ниже ваш ухудшенный драйвер работает некорректно. К примеру, Cos ? из более старых М206 считать нельзя, т.к. они не поддерживают эту команду. И ваш драйвер начинает верещать “Ответ не получен (таймаут 7000мс)”. И по примитивной логике прекращает опрос. И даже не пробует считать и сохранить то, что на самом деле важно - интеграторы. Которые, естественно, прекрасно бы считались.
Поэтому прошу вас, в самое ближайшее время, обучите ваш драйвер адекватно реагировать на эту ситуацию. Примером может послужить фирменная утилита. Которая не закатывает истерику, если не удается считать параметры, которые есть не во всех счетчиках.
Очень рассчитываю на ваше понимание. Ситуация то серьезная, данные пропадают безвозвратно. Заранее огромное спасибо!
Как известно у приборов Меркурий серии 20Х единый протокол обмена. При этом в этом протоколе не отображается информации о том, какие приборы и с какой версией поддерживают те или иные команды, а какие нет. По этой причине с добавлением нового функционала периодически возникают проблемы.
К сожалению мы не переделаем наш примитивный драйвер на логику, по которой работает заводская программа и вот по какой причине:
Заводская программа при чтении данных посылает запрос прибору и если прибор не отвечает программе, то программа считает, что прибор не поддерживает команду. Однако, эта логика работы не учитывает плохие каналы связи. Если мы переделаем драйвер на такую логику, то у вас будет успешно проходить опроса, а многих данных вы можете не увидеть, а это приведет к большим вопросам и нам придется потратить больше времени, что бы в них разобраться.
Есть ли у вас возможность предоставить доступ к нескольким старым и одному новому прибору, для того, что бы мы внесли исправления в драйвер и проверили чтение данных?
Еще раз прошу прощения, больше таких комментариев не будет. Уже понятно, что ничего они изменить не смогут, каждый останется при своём. Вы все равно будете модернизировать программу так, как считаете нужным. Мы же по возможности будем решать свои проблемы сами, так быстрее и надежнее. Уже для некоторых приборов мы сами написали конвертеры протоколов, чтобы ЛЭРС с ними работала, как надо или хотя бы вообще работала. Вот и сейчас есть соблазн просто написать такой конвертер, который будет подсовывать ЛЭРС недостающий ответ вместо счетчика. И уже к концу недели можно будет забыть об этой проблеме. Или заменить все М206 в ЛЭРС на М203. Это конечно муторно, но вполне осуществимо за один рабочий день. И пусть кто-нибудь другой дорабатывает драйвер.
Но все же, давайте попробуем еще раз решить всё “по науке”. Итак, доступ в ближайшее время предоставить не сможем, свободных счетчиков у нас нет. А проводить эксперименты на рабочих счётчиках жильцов не разрешат…
Но я могу вам написать команду, с которой возникли проблемы. И заодно проверить оставшиеся команды (их там 2 или 3), которые не прошли, потому что опрос до них не доходит. На все предыдущие (хотя и там добавились новые) счетчик отвечает.
И еще вопрос. Вы пишите, что “какие приборы и с какой версией поддерживают те или иные команды, а какие нет”. А нельзя сделать проверку по серийному номеру? Узнать у производителя, начиная с какого номера стали поддерживаться новые команды. Как я уже писал, счетчики 270***** и выше уже работают, а 248***** и ниже - нет. Соответственно, искомый номер где-то в этих пределах. Номера у Меркурий только растут, т.е. это однозначно, чем выше номер, тем новее счетчик. Хотя, конечно, никаких гарантий нет, что это так будет всегда.
Добавить проверку по серийным номерам возможно, однако производитель не хранит информацию о том, в каких приборах и с какими номерами появились те или иные функции.
Если у вас есть информация, какие приборы на какие запросы не отвечают, поделитесь ей. Если возможно, напишите не только серийный номер но и версию ПО.
У нас на тестировании был прибор серийный номер которого начинается с 299 и его опрос шел успешно.
Мы обратимся сегодня к производителю, для разъяснения вопроса.
Добавил скрин версии ПО прибора, с которым проблем нет как в указанной теме.
Думаю вам стоит в ваш драйвер добавить для версий ПО ниже, чем 1.0 (06.04.15) не запрашивать данные Cos ?(и другие параметры качества сети?).
Думаю tsst стоит добавить скрин из программы конфигуратора, с тех приборов, с которых не удается считать часть данных. Думаю не читаются следующие данные - Сos, F и Q.
В общем на проверке по серийному номеру можно ставить крест. Я совсем забыл, что Меркурий под новыми номерами продает не только новые, но и перемаркированные б/у счетчики из ремонта. И у нас есть такие. Изначально пришел брак, около 30 шт с дохлой батарейкой. Мы их отправили обратно, и нам прислали взамен отремонтированные б/у. Но не наши, а другие, на них следы установки, эксплуатации и царапины. А наши то были совсем новые. А чтобы никто не догадался, на всех самые свежие серийные номера и даты выпуска.
Как я уже писал раньше, счетчики 270***** и выше проходят опрос. Но вот сейчас я наткнулся на несколько таких перемаркированных, с номерами 275*****, а внутри они старые и всякие косинусы не понимают.
можно же наверно доработать драйвер и сначала запрашивать текущие показания, а потом уже косинусы и прочую лабудень. Тогда показания 100% снимутся, а если вылетит на косинусах - это уже будет не важно
Скрины из конфигуратора с версией ПО и того что в наличии имеет счетчик, всех этих перемаркированных, счетчиков 270***** и выше, и ниже 270***** , не помешают.
Думаю тут можно поступать более проще, запрашивать версию ПО и собственно её дату. К примеру счетчики с ПО 1.0 (06.04.15) читаются без проблем.
Еще можно спросить тут.
Вот один из старых счетчиков:
А вот уже посвежее, он знает, что такое косинус:
А теперь внимание! Подстава от Меркурия, наслаждайтесь:
Как можно видеть, серийный номер прямо соседний с предыдущим, и дата выпуска у них в один день. И даже версия ПО якобы свежая. Это вот и есть перемакрированный старый счетчик после ремонта.
Так что определить по версии ПО, будет он или нет читать косинус, тоже нельзя. Мне кажется, что это вообще всего лишь запись в ячейке памяти, что ПО новое, но на самом деле оно старое. То есть перепрошили грубо говоря только заголовок. От такие дела, да…
Тут есть несколько вариантов - либо счетчики левые(некоторые жильцы такие ставят, дабы банально воровать электроэнергию), либо реальный косяк в прошивке.
Предлагаю читать из М206 дату его производства, и если дата производства новее 01.03.17(мои несколько счетчиков, у всех номера начинаются 299******), то читать S (ВА) и Cos. Соответственно старее дата производства, то не читать эти параметры(tsst может сравнить в конфигураторе, что есть из архивов и параметров в счетчиках, а что нет).
Либо не считать ошибкой ошибку чтения S (ВА) и Cos и продолжить опрос далее, что будет более универсальнее, и можно обойтись одним драйвером на всю линейку М20*.
Никаких левых счетчиков, я же объяснял ситуацию. Все счетчики мы покупаем сами у оф. представителя партиями сразу на весь дом. Жильцы сами ничего не ставят. Но у Меркурия бывает брак. И они его меняют на такие вот отремонтированные. Политика партии у них такая. При этом естественно всё официально - все заводские пломбы, голограммы, новый паспорт и новый серийный номер.
С датой ПО тоже не все однозначно, я же привел пример, где дата одна и та же, а прошивка реально разная. Где гарантия что с ПО от 01.03.17 не повторится?
Я и предлагал с самого начала не считать ошибкой, если нет ответа на эти доп команды. Так делает родная утилита. Причем на отсутствие обязательных команд она еще как ругается. То есть там сделано исключение именно для таких вот случаев. Видимо они об этом давно уже знают.
Этот вариант самый логичный и то, что в первую очередь приходит в голову, я сам делал конвертеры в MODBUS на ATmega328 для электросчетчиков Инкотекса(необходимость в СКАДА контролировать онлайн мощность и другие параметры на объектах), и алгоритм опроса сделал СРАЗУ универсальным для счетчиков М20* и отдельный алгоритм для преобразователя всех модификаций М230, но так как данные преобразователи цепляются напрямую к счетчику, а далее уже модем, передающий на удаленную сторону, то нечитаемость некоторых параметров не считалось ошибкой, т.е. нет обработки надежности канала связи, так как она не нужна.
В данном случае я предлагаю разработчикам ЛЭРС не считать ошибкой нечитаемость только 2 параметров. tsst может дополнительно сравнить весь список параметров, предполагаю еще суточные архивы отсутствуют в приборах со старым железом и новым ПО, а так как на форуме уже есть тема с просьбой добавить чтение суточных архивов в М206, то нечитаемость с некоторых счетчиков этого архива всплывет в будущей версии ЛЭРС. Возможно что то еще из журналов событий.
Либо предоставить выбор для М206, что читать из прибора в свойствах оборудования в ЛЭРС.
Вот дамп опроса 2-х счетчиков, нового и старого.
Только команда “86 02” не обрабатывается старым счетчиком. Этот как раз косинус и полная мощность.
Всё остальное, как видно из скрина, работает.
Команды “27” и “85” чтения интеграторов, до которых ЛЭРС-опрос не доходит, естественно тоже работают. Однако, чтобы быть уверенным на 146%, я проверил их на всякий случай из терминалки - всё прекрасно.
Мы постараемся сегодня разобраться в этом вопросе с производителем. Вчера к сожалению нам на него не ответили.
Если производитель не даст нам ответа, как различать приборы, по всей видимости потребуется переработать логику работы драйвера по аналогии с ПО производителя.
tsst, вы можете привести дамп обмена, как в предыдущем сообщении, только для приборов с номерами 27543324 и 27543320 (для которых вы предоставили скриншоты со служебной информацией).
Данные необходимы для производителя, что бы разобраться в вопросе.