From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Documents/How to/Transferring project configuration and the translation is 100% complete.

Other languages:
English • ‎mRussian • ‎Українська

Часто востребованной бывает задача переноса конфигурации из одного проекта OpenSCADA в другой. Причём, чаще всего нужно осуществить частичный перенос, например, перенос отдельных наработок, которые могут пригодиться в новом проекте.

Нужно отметить, что любые наработки с малейшим намёком и перспективой вторичного использования нужно стараться унифицировать и сохранять в отдельные-собственные библиотечные хранилища-БД.

At.png Крайне не рекомендуется непосредственно менять стандартные конфигурации и элементы стандартных библиотек, а также сохранять собственные-новые библиотеки и элементы в хранилищах стандартных библиотек. Это позволит Вам впоследствии безболезненно обновлять стандартные библиотеки, а также просто использовать наработки ваших предыдущих проектов.

1 Простой перенос хранилища с библиотеками и конфигурацией

Если вы учли вышеуказанные рекомендации и все Ваши унифицированные наработки содержаться в отдельном хранилище-БД, то весь процесс переноса будет заключаться в копировании и подключении хранилища в новом проекте или в простом его подключении для сетевых СУБД.

Процедура копирования хранилища-БД зависит от типа хранилища и с ней необходимо ознакомиться в соответствующей документации.

Для сопутствующего распространения с дистрибутивами OpenSCADA обычно используется БД SQLite в виде отдельных файлов *.db. Копирование БД SQLite соответственно заключается в простом копировании нужного файла БД из каталога проекта-баз данных старого проекта в каталог проекта нового.

Подключение осуществляется путём создания нового объекта БД в модуле нужного типа подсистемы БД и последующей его конфигурации (читать больше). После создания, конфигурации и включения БД; данные в БД можно сразу загрузить нажав кнопку "Загрузить программу из этой БД" на форме объекта БД. Однако это предусматривает только саму загрузку, без включения-запуска загруженных объектов, поэтому тут может быть проще перезапустить OpenSCADA.

2 Выделение нужной конфигурации

В случае, если нужная конфигурация содержится в Общем Хранилище или хранилище-БД стандартных библиотек, то предварительно нужно осуществить выделение её в отдельное хранилище. Выделить конфигурацию можно или в отдельное хранилище с вашими библиотеками или в экспортное хранилище. Экспортное хранилище, в отличие от библиотечного, служит только для переноса конфигурации и будет впоследствии удалено. В любом случае, нужно создать новое хранилище нужного типа подобно процедуре подключения выше. Для переноса нужно использовать тип, который планируется применять в новом проекте. Обычно для переноса лучше использовать тип БД SQLite ввиду простой процедуры копирования. Однако, если использовать сетевую СУБД, эта процедура может превратиться в простое подключение библиотечного или экспортного хранилища в новом проекте.

Далее конфигурацию необходимо выделить в библиотечное хранилище унификации или экспорта, если она непосредственно не может быть сохранена в хранилище. Отдельные шаблоны параметров или параметры контроллеров сбора данных, визуальные элементы библиотек виджетов и т.д. можно выделить путём создания библиотеки экспорта или унификации соответствующего элемента. Для новой библиотеки в качестве хранилища нужно указать ранее созданное хранилище унификации или экспорта. Далее осуществляется копирование нужных элементов из исходной библиотеки в библиотеку унификации-экспорта посредством стандартной функции копирования. После копирования библиотеку унификации-экспорта нужно сохранить и её содержимое попадёт в новое хранилище.

В случае необходимости переноса объекта с отдельным свойством БД или целых библиотек, операцию создания промежуточной библиотеки и последующего копирования можно опустить. Достаточно в поле БД указать ранее созданное хранилище унификации или экспорта и сохранить элемент. После чего рядом возникнет кнопка удаления данных объекта из предыдущего хранилища, чем вы можете воспользоваться если эта операция осуществляется в рамках одного проекта для выделения конфігурации в другое хранилище.

Дальнейшее действие, а именно простой перенос хранилища, осуществляется в соответствии с предыдущим разделом.

При переносе конфигурации путём экспортирования необходимо осуществить обратный процесс копирования из экспортных библиотек в локальные библиотеки нового проекта и удаление экспортного хранилища.

3 Низкоуровневое копирование содержимого БД

Для переноса можно использовать избирательное копирование таблиц БД с конфигурацией путём: выбора объектов таблиц в объекте БД, вызова команды копирования, выбора объекта новой БД и вызова команды вставки (читать больше). Однако для этого могут понадобиться знания структуры БД, про что изложено тут.