Так нашли решения проблемы со счетчиком или нет?
У меня час, два, может несколько дней опрашиваться, а потом ошибка контрольной суммы и все тут. Если передернуть ПЛК и счетчик, то снова все нормально.
Вид для печати
Так нашли решения проблемы со счетчиком или нет?
У меня час, два, может несколько дней опрашиваться, а потом ошибка контрольной суммы и все тут. Если передернуть ПЛК и счетчик, то снова все нормально.
А точно ли ошибка CRC ?
з.ы. такое может быть если - была потеря связи на время более 240 секунд (на новых счетчиках), после чего счетчик закрывает канал связи и надо снова авторизоваться. Если программа не учитывает данный таймаут при опросе и снова не производит авторизацию, счетчик будет выдавать сообщение по данному поводу какой-то длины, а ваш код ждет другую длину. Как следствие ошибка CRC.
Это чисто предположение исходя из поведения счетчика.
Опрос счетчика идет каждые 10 секунд, опрос реализован один в один как в описании библиотеки. Ошибка появляется в GetParam.Error6, при переводе ошибки в текст, звучит как "Ошибка контрольной суммы".
Ведь в примере библиотеки реализован опрос как раз по шагам, проверка порта, проверка связи с устройством и т.д. При каждом опросе все эти шаги проверяются, как я понимаю.
Если честно, то не знаю, как в библиотеке реализовано, я ее когда то пытался переделать на обычный COM порт, без UNM. Зависала на каких-то этапах. Потом отпала необходимость и я бросил.
Я описал вариант, когда счетчик может снова захотеть авторизацию, посылая в ответ на ваш запрос чтения, а так как вы читаете что-то другое и ожидаете другой ответ и другой длины, то вот вам и причина ошибки CRC.
Опять же, повторюсь - это предположение. Так как я эти счетчики читаю Scada системой, а не ПЛК-шкой.
По крайней мере у меня в драйвере реализован механизм по таймеру, так как писал с расчетом на то, что я некторые параметры счетчика могу читать раз в час например. И я не помню подобной реализации в драйвере Овен для этого.
К тому же это новые счетчики долго удерживают связь, а со старыми прошивками там время удержания канала гораздо меньше... Надо доки поднимать и смотреть.
Пробовал опрашивать намного реже, раз в 10 минут. Ситуация такая же.
Сегодня еще добавилась ошибка: "неверный адрес устройства в ответе", она чередуется с ошибкой по контрольной сумме.
В библиотеке реализован опрос в шесть шагов:
1) Тест связи
2) Открытие сессии
3) Чтение мгновенных значений
4) Чтение фиксированных данных
5) Чтение массивов энергии
6) Закрытие сессии
Вот на последнем этапе у меня вылетают эти ошибки, и они чередуются.
У меня на ПЛК висит только счетчик, вообще ПЛК больше ничего не делает. Ну еще есть ModBUS Slave, в который перекидываю данные полученные со счетчика.
Хм, если есть п6. Закрытие сессии, то надо копать код. Где-то там есть ошибка. Мне так кажется...