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 • ‎российский • ‎українська

Автор: Роман Савоченко

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

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

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

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

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

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

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

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

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

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

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

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

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

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