From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Documents/Release 0.9/Updating 0.8.0 LTS and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська

Основными отличиями версии 0.9 LTS от 0.8.0 LTS являются:

  1. Размещение данных проекта пользователя и отсутствие поддержки и понятия "Проект OpenSCADA" в 0.8.0 LTS.
  2. Старые БД библиотек в 0.8.0 LTS.
  3. Наличие ряда модулей, которые в 0.8.0 LTS на ранних версиях и были фактически полностью переписаны в 0.9 LTS, а соответственно, для них полностью отсутствует совместимость:
  • DAQ.DiamondBoards — полностью переписан и не является совместимым;
  • DAQ.ICP_DAS — полностью переписан и не является совместимым;
  • DAQ.AMRDevs — фактически можно считать новым, поскольку первый, и пока единственный, полноценный источник появился там после выпуска 0.8.0 LTS;
  • Archive.DBArch — фактически можно считать новым и актуальным, поскольку его версия, при выпуске 0.8.0 LTS, была малополезной и поэтому обновлена одним из обновлений и сейчас является одинаковой с 0.9 LTS.

Во всём ином, версия 0.9 LTS может исполнять проекты пользователя версии 0.8.0 LTS и Вы даже можете оставить старые БД библиотек (пункт 2), если использование новых вызывает проблемы или они изменялись. Если Вы использовали что-то из пункта 3 то их конфигурацию нужно будет полностью, или частично заменить. Итак, рассмотрим пункты 1 и 2 этих отличий.

At.png Обновления нужно осуществлять исключительно для конфигураций, которые предварительно были обновлены до последнего обновления 0.8.0 LTS!

Отличие в размещении пользовательских проектов (пункт 1) нужно решать обязательно, поскольку, для запуска проектов пользователя, в 0.8.0 LTS используются индивидуальные сценарии командной строки вроде openscada_AGLKS, openscada_demo, openscada_start и которые отсутствуют в 0.9 LTS или работают несколько по иному.

At.png Разрешение отличия в размещении пользовательских проектов не происходит автоматически и для этого нужно умение пользоваться консолью, а для обновления и запуска "по старому" понадобится доступ суперпользователя.

Если Вы не желаете осуществлять полный перенос своего проекта в отдельный и специальный каталог то, перед обновлением, можно сохранить сценарий запуска проекта и конфигурационный файл, а потом вернуть их назад и продолжить запускать проект пользователя в 0.9 LTS, что в основном будет работать "ПО СТАРОМУ".

Итак, на примере проекта модели ТП "АГЛКС" и сохранив папку "~/.openscada", делаем:


1. Подготовка и актуализация текущей конфигурации
  • обновляем OpenSCADA до последнего обновления 0.8.0 LTS, согласно использованному способу установки;
  • актуализируем проект пользователя, можно пропустить для обновленных конфигураций:
  • запускаем проект пользователя;
  • запускаем разработку графического окружения;
  • меняем рабочую базу данных на какую-то другую, а потом возвращаем её, что приведёт к отметке необходимости сохранения всего проекта;
  • сохраняем.
At.png Эта операция может привести к потере конфигурации графического окружения на непоследенй LTS версии.
1a. [ПО СТАРОМУ] Сохранение сценария запуска и конфигурационного файла, копируя в какую-то временную папку
  • исполняем процедуру:
$ cp /usr/bin/openscada_AGLKS /var/tmp
$ cp /etc/oscada_AGLKS.xml /var/tmp


2. Обновление OpenSCADA до новой версии 0.9 LTS
  • меняем обычного пользователя на суперпользователя;
  • полностью удаляем 0.8.0 LTS, что на дистрибутивах основанных на Debian делается командой:
$ apt-get purge openscada*
  • устанавливаем 0.9 LTS, как пакет "openscada-model-aglks" или другой виртуальный, который больше соответствует Вашему проекту; детали читайте в "Как установить".


3. Обновление и восстановление конфигурации
3a. [ПО СТАРОМУ] Восстановление старого сценария, конфигурации и замена ссылок некоторых каталогов
  • выполняем процедуру:
$ rm /usr/bin/openscada_AGLKS; cp /var/tmp/openscada_AGLKS /usr/bin
$ cp /var/tmp/oscada_AGLKS.xml /etc
# Покидаем суперпользователя и осуществляем
$ ln -sf /usr/share/openscada/icons ~/.openscada/icons
3b. [ПРОЕКТ] Перенос файлов проекта пользователя в отдельный каталог, предварительно покинув суперпользователя
  • вызываем команду обновления, которая делает всё необходимое:
$ openscada-proj update AGLKS
# Для пользовательского проекта с данными в каталоге "~/.openscada/DATA"
$ openscada-proj update MyProjectName
  • или вручную и если исходная конфигурация очень специфична:
  • собираем все файлы проекта в отдельный каталог, в каталоге проектов пользователя OpenSCADA, что типично "~/.openscada"; хотя 0.8.0 LTS не регламентирует и не обязываете так делать, и такая практика уже частично применялась, поэтому там нужно только положить отдельные части проекта:
$ mv ~/.openscada/ARCHIVES ~/.openscada/AGLKS
$ ln -s ../LibsDB ~/.openscada/AGLKS/LibsDB
$ ln -s ./ ~/.openscada/AGLKS/AGLKS
  • применяем конфигурационный файл типового проекта OpenSCADA 0.9 LTS, поскольку старый тут не подойдёт да и вся основная конфигурация сохранялась в главной БД:
$ cp /etc/oscada_start.xml ~/.openscada/AGLKS/oscada.xml
  • переименовываем файл главной БД в "St.db", если он не такой, поскольку именно такой записан в конфигурационном файле;
  • заменяем старые БД библиотек или можем их оставить если Вы там что-то меняли:
$ cp -R /usr/share/openscada/LibsDB/*.db ~/.openscada/LibsDB


4. Запуск
  • [ПО СТАРОМУ] запускаем старый сценарий.
  • [ПРОЕКТ] запускаем обновленный проект, даже выбором в менеджере проектов.


5. Отличия и желаемые изменения полученного обновления
  • [ПРОЕКТ] Сократить адрес к локальным файлам БД проекта, который будет иметь вид "./AGLKS/Model.db" и его можно сократить до "Model.db".
  • Проект визуализации:
  • уведомитель был полностью переписан, поэтому, на главной странице Вашего проекта, нужно предусмотреть атрибуты описания желаемых уведомителей, и типовые значения которых можно получить из проекта шаблона, конечно если библиотеки обновлены;
  • свойства проекта визуализации, на предмет контроля параметров окна исполнения, в основном вынесены в отдельные атрибуты главной страницы и которые, соответственно, и нужно определять.