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

Автоматизация и диспетчеризация => Взлет СП3 => Тема начата: Valentin8080 от 06.10.2017, 05:38:22



Название: Подъем данных с приборов ТСРВ-043 в БД Microsoft SQL Server 2000
Отправлено: Valentin8080 от 06.10.2017, 05:38:22
Здравствуйте!
Решил отписаться здесь о решении проблемы, которая заключается в следующем:
Имеем 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.




Название: Re:Подъем данных с приборов ТСРВ-043 в БД Microsoft SQL Server 2000
Отправлено: yurik от 06.10.2017, 06:41:12
Скорее всего проблема не из-за Взлет СП3, а из-за использования SQL 2000.
Если выбирать акцессовскую базу или SQL 2008, то опрос часовых архивов идет, начиная от текущего системного времени, докачивая недостающие записи.
Если у вас не под сотню приборов, то вполне акцессовской базой можно было обойтись (настроив периодическую обработку утилитой JETCOMP).


Название: Re:Подъем данных с приборов ТСРВ-043 в БД Microsoft SQL Server 2000
Отправлено: Valentin8080 от 06.10.2017, 07:00:07
Так я же писал выше - он докачивает недостающие записи начиная с последней не принятой, но перед этим он удаляет все записи после нее. А в процессе нового опроса появляются новые не принятые часовки/сутки. В этом то и есть проблема.
Не думаю, что БД тут при делах, так как четко вижу, что подается команда в БД на удаление всех предыдущих записей.
Акцесс мне не подойдет, потому что эти же данные с помощью ASP отображаются потом на web-страничке WEB-сервера.


Название: Re:Подъем данных с приборов ТСРВ-043 в БД Microsoft SQL Server 2000
Отправлено: Дмитрий Пархоменко от 06.10.2017, 15:42:27
Здравствуйте!

Хотел бы добавить по поводу Взлет СП4.

... Чтож попробовал установить. На Windows 2003 Server категорически программа СП4 отказалась вставать с написью "невозможно установить на этом компьютере" или что-то подобное. ...
Сам Взлет СП4 таких сообщений не выводит. Вероятнее всего, это сообщение было от одного из необходимых ему компонентов, возможно от Microsoft .Net Framework 4.0 или Microsoft SQL Server 2008 R2. Пожалуйста подробнее опишите какой именно компонент отказал в установке, а еще лучше со скриншотом.
Также, обратите внимание, что к серверу Windows 2003 предъявляется требование - не ниже SP2 (возможно Ваш сервер старше указанной версии?).

... Там программа установилась, но для меня, к сожалению проблема уперлась в то, что требуется SQL Server не ниже 2008, а у меня 2000. ...
Вы можете установить и настроить на одном сервере SQL Server 2008 параллельно с SQL Server 2000.

... Но проблема в следующем - при последующем опросе данных, СП3 находит первый час или сутки, которых нет (по причине сбоя RS485 сети), все поздние записи при этом удаляет и начинает с этой даты/времени все качать заново с прибора. ...
... 3. В таблицах данных с приборов поле "ДатаВремя" сделано ключевым для исключения повторения данных (Рисунок3). ...
Поэтому Вам и рекомендовано пользоваться Взлет СП4, потому как он данных проблем не имеет.


Название: Re:Подъем данных с приборов ТСРВ-043 в БД Microsoft SQL Server 2000
Отправлено: Valentin8080 от 09.10.2017, 10:39:17
Скидываю по просьбе скрин сообщения и конфигурации компьютера - сервера.
Как я понял, не установился Microsoft .Net Framework 4.0, так как после его распаковки выдалось это сообщение.
Устанавливать СП4 пока не вижу смысла - все работает на том, что есть :)

А вот СП3 можно было и подлатать немного. Ведь функция подъема данных - это же основное. Ладно бы ошибка была в каких-нибудь отчетах и т.п.

P.S. Выше немного неправильно написал по СП3.
То есть СП3 сначала ищет самую старую запись, и удаляет все, что было по времени после этой записи. Потом начинает заново с текущей даты/времени в сторону этой старой записи наполнять архив БД. А по хорошему он должен не удалять, а просматривать каждую запись на предмет существования ее в БД и при ее отсутствии уже делать запрос прибору.


Название: Re:Подъем данных с приборов ТСРВ-043 в БД Microsoft SQL Server 2000
Отправлено: Дмитрий Пархоменко от 09.10.2017, 10:50:55
Как я понял, не установился Microsoft .Net Framework 4.0, так как после его распаковки выдалось это сообщение.
Да, так и есть. Скорее всего необходимо установить компонент "Windows Imaging (WIC)" перед установкой ".Net Framework 4.0". В справке к СП4 в разделе "Введение", "Требования к системе" внизу страницы есть ссылка на загрузку этого компонента.

Устанавливать СП4 пока не вижу смысла - все работает на том, что есть :)

А вот СП3 можно было и подлатать немного. Ведь функция подъема данных - это же основное. Ладно бы ошибка была в каких-нибудь отчетах и т.п.
СП3 по-потихонечку снимается с поддержки, т.е. доработок для него уже не будет. Кроме того, как я и писал выше, СП4 ведет себя лучше при многих действиях, и особенно при сборе данных.