Форум АО "ВЗЛЕТ"

Вопросы измерений и учета => Технические вопросы => Тема начата: iSv от 24.12.2010, 06:17:17



Название: Архивы ТСРВ-024
Отправлено: iSv от 24.12.2010, 06:17:17
Добрый день. Столкнулся со следующей проблемой:
ваша программа "Отчёт ТСРВ 02х" не может прочитать суточный архив с прибора.
Прибор определяется, но получить с него хоть одну запись не удаётся.
>Запрашивается структура архивной таблицы...
>Запрашивается строка архивной таблицы за xx.xx.xx xx:xx:xx
после этого выскакивает сообщение "Закончился таймаут ожидания"
При всём этом мгновенные показания снимаются по modbus без каких либо проблем.


Название: Re: Архивы ТСРВ-024
Отправлено: andr62 от 24.12.2010, 09:10:06
Надо с клавиатуры тепловычислителя проверить наличие в архиве соответствующих записей. Если реально записей за запрашиваемые сутки нет, то и программа их не считает.


Название: Re: Архивы ТСРВ-024
Отправлено: vsp от 24.12.2010, 11:22:22
Такое может быть, если Вы используете конвертор USB/COM. Не все они в этом смысле полноценны.


Название: Re: Архивы ТСРВ-024
Отправлено: iSv от 06.01.2011, 08:44:10
Как оказалось проблема была в "зашитом" в код программы "Отчёт" таймауте.
Используя универсальный просмотрщик и монитор тсрв-024, а такзе меняя значения таймаутов на приборе и в программе все архивы снимались без ошибок.
А "Отчёт..." так и не работает. Используйте УП! ;)


Название: Re: Архивы ТСРВ-024
Отправлено: iSv от 06.01.2011, 10:30:45
Теперь, когда проблемы со связью устранены, можно перейти к главному вопросу:
Необходимо по modbus считывать с прибора суточный архив за прошедший день по ТС1 и ТС2.
После изучения документации по тсрв-024 пришёл к выводу, что нужно использовать пользовательскую функцию 65, а запросы в моём случае (прибор с адресом 1, на 6.01.11) должны выглядеть так: 01 41 00 01 00 01 01 00 00 00 06 01 0B и 01 41 00 04 00 01 01 00 00 00 06 01 0B.
Но к какому регистру обращаться с таким запросом?
Потом нашёл тему http://www.vzljot.ru/forum/index.php?topic=4610.0 и modbus регистры "Адрес в архиве, у.е. Тип Суточный ТС1 (1) - 4014" и "Адрес в архиве, у.е. Тип Суточный ТС2 (4) - 4017" обрели смысл. Т.е. по логике вещей так и должно быть: зная дату архивной записи (или индекс в архиве) можно расчитать адрес регистра, начиная с которого хранится эта запись в памяти вычислителя.
К сожалению в документации по ТСРВ-024 ничего подобного я не нашёл :-\
Помогите разобраться, как по modbus получать архтвные записи.


Название: Re: Архивы ТСРВ-024
Отправлено: vsp от 11.01.2011, 11:54:14
Что-то там с пользовательской функцией у Вас сумбур.

Полагаю, эти рабочие записи  помогут:
-------------------------------------------------------------------------
Запросы архива для прибора с адресом 1.

01 41  00  ArcNum  00 01 01  Sec Min Hour Day Month Year   CS1 CS2

Year – год минус 2000. Для 2007 года - 07

ArcNum – номер архива по таблице:
0 – Часовой архив, 1 часть
3 – Часовой архив, 2 часть
6 – Часовой архив, 3 часть
9 – Часовой архив, суммарный

1 – Суточный архив, 1 часть
4 – Суточный архив, 2 часть
7 – Суточный архив, 3 часть
10 – Суточный архив, 3 часть


Ответ такой :        адрес,функция, длина, запись, КС(2байта)


Размер записи одной части любого архива по ТС – 172 байт (полный запрос 177)
Размер записи  любого суммарного архива – 18 байт (полный запрос 23)


Название: Re: Архивы ТСРВ-024
Отправлено: iSv от 13.01.2011, 08:53:10
Перечитал мануал "структура архивов тсрв-024", но ничего не нашёл о дроблении архива на части (массивы с индексами 1, 4, 7). Т.е. получается, на запрос массива с индексом 1 функцией 65 придёт в ответ только часть 172-байтной архивной записи?


Название: Re: Архивы ТСРВ-024
Отправлено: vsp от 13.01.2011, 13:12:12
1 часть - это архив по первой теплосистеме.


Название: Re: Архивы ТСРВ-024
Отправлено: iSv от 15.01.2011, 11:07:48
Цитировать
1 часть - это архив по первой теплосистеме.
Спасибо за пояснение.
Я так и предположил в самом начале, но писать запросы, основываясь только на предположениях нельзя.
Ещё требует пояснения контрольная сумма, указываемая в запросе
(http://s015.radikal.ru/i332/1101/ed/028abf33efad.bmp)
- пример запроса из приложения А к описанию протокола modbus

vsp, вы пишете:
Цитировать
01 41  00  ArcNum  00 01 01  Sec Min Hour Day Month Year   CS1 CS2
т.е. контрольная сумма - 2 байта?
По документации modbus вообще не ясно сколько байт занимает контрольная сумма.
Расчёт контрольной суммы должен выполнять я? И вообще следует ли туда что-либо записывать?
Из описания структуры архивов ТСРВ-024:
Цитировать
Примечание: У всех архивов, запись которых защищена контрольной суммой, при
запросе записи по интерфейсу сначала проверяется контрольная сумма записи и если она
повреждена, то возвращается обратно запрос с взведенным флагом ошибки (см. описание
протокола ModBus). При успешном чтении, контрольная сумма передается в записи


Название: Re: Архивы ТСРВ-024
Отправлено: vsp от 17.01.2011, 16:52:18
1. Контрольная сумма состоит из 2 байт.
2. Контрольную сумму запроса должны формировать Вы.
3. Контрольную сумму ОТВЕТА Вы должны проверить на предмет выявления ошибок передачи.
4. Контрольную сумму архивной записи (ответ состоит из архивной записи, обрамленной протокольными добавками ModBus) рекомендую Вам игнорировать, с ней пусть разбирается сам прибор.