Драйвер счетчика Меркурий 230, 231, 232, 233, 236

Стартовая страница Форумы Разработка и интеграция Драйвер счетчика Меркурий 230, 231, 232, 233, 236

Просмотр 15 сообщений - с 256 по 270 (из 360 всего)
  • Автор
    Сообщения
  • #33113
    Mikhail
    Модератор

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

    #33114
    manjey73
    Участник

    ну очевидно что это .Session 🙂

    Проблема то в том, что код Status служебный со стороны Коммуникатора.

    1. Как он добавляется к словарю тегов, которые я формирую в драйвере?
    2. В какой момент Коммуникатор его передает в Сервер? до моих тегов, после моих тегов ?

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

    #33116
    baur
    Участник

    [15] РП15 Ввод-1 Яч.#7 — вот этот вот счетчик, точная его модификация ?

    [15] РП15 Ввод-1 Яч.#7

    #33117
    Mikhail
    Модератор

    Я даже не знаю, о каком конкретно словаре идёт речь. Если бы исходники были на GitHub, можно было бы посмотреть.

    Вторая проблема, я не могу отловить его

    Нужно воспроизвести ошибку, чтобы её исправить. Может быть, специально неправильные данные вернуть драйверу.

    #33118
    Mikhail
    Модератор

    Вот эти исходники?

    #33119
    manjey73
    Участник

    [15] РП15 Ввод-1 Яч.#7 — для данного счетчика сделайте копию шаблона и деактивируйте в нем Профиль мощностей. На вкладке Profile в верхней таблице снимите галку Active

    Похоже он без профилей — нет буквы P и он вроде честно об этом сообщает.
    Буду смотреть как это обойти.

    Да эти исходники

    @Mikhail
    исходник есть на GIT https://github.com/Manjey73/OpenDrivers/tree/main/DrvMercury23x

    Судя по ошибке драйвер пытается передать Статус устройства Normal-Error но фокус в том, что у меня нет такого тега Status — он явно формируется Коммуникатором, я только не совсем понимаю каким образом он лезет в мой словарь активных тегов ?

    #33120
    manjey73
    Участник

    Или Коммуникатор оборачивает созданные теги в Драйвере и поверх накладывает еще и Status ?

    Тогда предположу, что когда происходит ошибка на один из запросов происходит смещение индексации тегов как-то и потом Коммуникатор пытается передать Status, а его упс и нет… Хотя не совсем представляю, что к этому может приводить.

    #33121
    manjey73
    Участник

    Получается служебный тег Status из Коммуникатора передается по индексу, а не по имени ?

    #33122
    manjey73
    Участник

    [16] РП15 Ввод-1 Яч.#2: — такая же ошибка на запрос Профилей мощности

    #33125
    Mikhail
    Модератор

    Нужно найти строку, в которой возникает ошибка, тогда будет что обсуждать.
    Рекомендую изменить код следующим образом:
    1. В методе Session выделить блоки кода в виде отдельных методов.
    2. Переменную tag сделать локальной. Насколько это возможно поля класса Logic сделать локальными переменными методов.
    Вышеперечисленное позволит локализовать проблему.

    #33126
    manjey73
    Участник

    1. не совсем понял, там собственно всегда вызов Request идет с подменой запроса в цикле.

    2. tag вроде и есть локальная переменная, или это имя воспринимает Коммуникатор? типа изменить на myTag ?

    Тест 6.0.0.3

    Еще один тестовый. Одну штуку подправил, а вдруг?

    #33127
    manjey73
    Участник

    private int tag = 0; собственно. Абсолютно локальная переменная, собственная индексация переменных из привязанного шаблона

    #33128
    manjey73
    Участник

    Я сравнивал логи, которые выложил @baur

    в начале было все красиво, исключение с именем тега Status шло строго после одного запроса. А потом бац, и пошло после других запросов…

    Четкой привязки пока не обнаружил..

    #33147
    baur
    Участник

    Тест 6.0.0.3

    поставил, но к сожалению связь отвалился, ждем …

    PS: со следующей недели я в отпуске …

    #33148
    manjey73
    Участник

    @baur ну я сегодня логи офисного счетчика изучу.
    Вчера у нас напряжение просело 157, 170, 174 по фазам было, с утра счетчики не отвечают, хотя вчера еще работали после такого катаклизма 🙂

Просмотр 15 сообщений - с 256 по 270 (из 360 всего)
  • Вы должны авторизироваться для ответа в этой теме.