Здравствуйте!
Решил отписаться здесь о решении проблемы, которая заключается в следующем:
Имеем RS485 сеть приборов ТСРВ-043 и сервер на базе Windows 2003 Server. В сервере установлена плата приема RS485 от MOXA. Обращаю внимание, что задача по получению данных с приборов ТСРВ-043 является лишь одной из многих других, которыми занимается данный сервер.
На сервере установил программный комплекс Взлёт СП3 с последними обновлениями. Благодаря обновлениям в списке приборов появилась модель ТСРВ-043. В конфигураторе+планировщик задач windows настроил прием данных каждый час. Экспорт данных настроил на базу данных Microsoft SQL Server 2000, которая находиться на другом сервере (WebServer нашей технологической сети). Все настройки прошли без проблем, данные при опросе стали попадать в БД SQL.
При работе комплекса обнаружил следующее: при приеме данных бывают из-за ошибок сети с приборов не принимаются несколько часовых или суточных архивов. Особенно это видно при первоначальном опросе прибора, когда база данных на сервере еще пустая.
При запросе отчета это проявляется как показано на рисунке 1.
Но проблема в следующем - при последующем опросе данных, СП3 находит первый час или сутки, которых нет (по причине сбоя RS485 сети), все поздние записи при этом удаляет и начинает с этой даты/времени все качать заново с прибора. Естественно при этом могут быть новые ошибки по сети RS485 и новые не принятые часовки/сутки. Это прекрасно видно на рисунке 2 - та же дата, но при следующем опросе. Нет данных, но уже по другим часам.
При обращении в техподдержку был дан следующий совет - переходите на СП4. Чтож попробовал установить. На Windows 2003 Server категорически программа СП4 отказалась вставать с написью "невозможно установить на этом компьютере" или что-то подобное. Хорошо, думаю поизучаю СП4 на другом компьютере с Windows XP SP3. Там программа установилась, но для меня, к сожалению проблема уперлась в то, что требуется SQL Server не ниже 2008, а у меня 2000.
Так как SQL сервер задействован далеко не только текущей задачей, решено искать другие пути решения проблемы. И путь найден!
1. В работе остался СП3, привязанный к БД SQL Server 2000.
2. Средствами SQL сервера помощью триггеров было заблокировано удаление из таблиц с данными, полученными с приборов. Пример команд SQL для таблиц одного прибора:
CREATE TRIGGER NoDelRecS11 ON Суточная_11_ТСРВ043 INSTEAD OF DELETE AS RETURN;
CREATE TRIGGER NoDelRecH11 ON Часовая_11_ТСРВ043 INSTEAD OF DELETE AS RETURN;
3. В таблицах данных с приборов поле "ДатаВремя" сделано ключевым для исключения повторения данных (Рисунок3).
4. Данные действия необходимо проделать для всех таблиц с данными по всем приборам.
После таких махинаций система заработала нормально, данные с приборов все подкачались. Вообщем все работает.
Как говорится для всех вещей, сделанных в России, требуется "поработать напильником"
Думаю мой отчет поможет, тем кто вынужден, как я работать еще на версии СП3.