Оглавление
- Оглавление
- 2 Общие сведения
- 2.1 Родительский каталог проекта
- 2.1.1 Каталог AutomiqAutomation
- Подкаталог
ExternalModules
- 2.1.2 Каталог Libraries
- 2.1.3 Каталог Projects
- 2.1.4 Каталог SavedProjects
- 2.2 Структура каталога проекта - 2.2.1 Каталог HMI - 2.2.2 Каталоги JSC: Глобальный и локальный уровень - 2.2.3 Каталог Unimod
- 2.3 Использование системы контроля версий
2 Общие сведения
Для успешного запуска и функционирования системы AutomiqAutomation необходимо правильно организовать файловую структуру проекта. Корректная структура каталогов обеспечивает:
- Единое и предсказуемое расположение всех компонентов системы
- Удобство навигации и поддержки проектов
- Возможность автоматизированной обработки данных
- Совместную работу нескольких разработчиков
- Интеграцию с системой контроля версий (SVN)
Все проекты, создаваемые с использованием AutomiqAutomation, должны следовать единому стандарту структуры. Это позволяет системе однозначно находить исходные данные, библиотеки, конфигурации и генерируемые артефакты.
Ниже описана базовая структура рабочего окружения и назначение каждого ключевого каталога.
2.1 Родительский каталог проекта
Родительский каталог является корневым для всей экосистемы AutomiqAutomation. Он содержит четыре основных подкаталога:
Родительский каталог проекта является корневой директорией, в которой организованы все необходимые для разработки компоненты. Его типичная структура включает следующие основные каталоги:
Название каталога | Описание | Ссылка SVN |
---|---|---|
AutomiqAutomation | Основной каталог системы автоматизации, содержащий исполняемый файл, конфигурации и внешние модули. | svn://nashgit.ru/automiq/AutomiqAutomation |
Projects | Каталог, в котором хранятся конкретные проекты АСУ. Каждый проект (например, GPP_AFA ) является подкаталогом внутри Projects . |
svn://nashgit.ru/automiq/Projects/{Project Name} (где {Project Name} — имя проекта, например, GPP_AFA ) |
Libraries | Каталог, содержащий библиотечные проекты (типы, модели, HMI-компоненты), используемые всеми проектами. | svn://nashgit.ru/automiq/Libraries |
SavedProjects | Каталог для хранения архивных копий завершенных проектов. Используется для резервного копирования и извлечения типовых решений. | svn://nashgit.ru/automiq/SavedProjects |
[Корневой каталог]
├── AutomiqAutomation
│ ├── ExternalModules
│ │ ├── AfasModules # Внешние модули для проектов АСПСиПТ (Автоматизированные системы пожарной сигнализации и пожаротушения)
│ │ ├── AucsModules # Внешние модули для проектов АСУЭ (Автоматизированные системы управления энергопотреблением)
│ │ ├── EsdDcsModules # Внешние модули для проектов РСУ/ПАЗ (Регулирование, Сигнализация, Управление / Противоаварийная защита)
│ │ └── StandardModules # Базовые модули, реализующие общую функциональность для всех систем автоматизации
│ ├── GAP # Библиотека пользовательских скриптов (Global Automation Platform) на C#, используемых в процессе генерации
│ ├── Release # Стабильные, релизные версии конфигуратора
│ └── ReleaseCandidate # Тестовые сборки конфигуратора, проходящие предрелизное тестирование
├── Libraries
│ ├── AlphaHMI # Типовые компоненты и символы для мнемосхем HMI системы alpha
│ ├── DevStudio # Типовые модели объектов, используемые в SCADA-системе alpha.DevStudio
│ ├── Docs # Шаблоны и типовая документация
│ ├── Firmware # Прошивки для контроллеров (например, Unimod 2)
│ ├── JscGlobalConf # Глобальные конфигурационные файлы, общие для всех проектов (например, EventLists.xls)
│ └── Unimod # Типовые функциональные блоки (FB) и библиотеки для ПЛК Unimod 2
├── Projects
│ └── [Имя проекта] # Корневая директория конкретного проекта
│ ├── DevStudio # Сгенерированный проект для SCADA-системы alpha.DevStudio
│ ├── Unimod # Сгенерированный проект для ПЛК Unimod 2
│ ├── HMI # Сгенерированный проект для панели оператора (HMI)
│ ├── Weintek # Сгенерированный проект для панелей оператора Weintek
│ ├── SavedConf # Архивная копия модели данных проекта (JSC) на момент генерации
│ └── JSC # Основной каталог с моделями данных проекта
└── SavedProjects # Архивный каталог для хранения завершенных и сданных проектов
Рисунок 1 – Структура корневого каталога проекта
Подробнее о структуре каждого каталога см. в соответствующих разделах.
2.1.1 Каталог AutomiqAutomation
Содержит исполняемые модули, документацию и вспомогательные компоненты самой системы AutomiqAutomation:
flowchart TD
A[AutomiqAutomation]
A1[AutomiqAutomation <br> Documentation<br>руководства, <br>спецификации]
A2[ExternalModules<br>модули интеграции]
A3[GAP<br>вспомогательные <br>библиотеки]
A4[Release<br>релизные версии]
A --> A1
A --> A2
A --> A3
A --> A4
Подкаталог ExternalModules
Содержит специализированные модули для работы с различными внешними системами:
flowchart TD
EM[ExternalModules]
EM1[AfasModules<br>интеграция с АФАС]
EM2[AucsModules<br>интеграция с АСУ Ц]
EM3[EsdDcsModules<br>ESD и DCS]
EM4[StandardModules<br> универсальные <br>модули]
EM --> EM1
EM --> EM2
EM --> EM3
EM --> EM4
2.1.2 Каталог Libraries
Представляет собой централизованное хранилище библиотечных моделей и стандартных конфигураций, используемых во всех проектах. Является ключевым элементом унификации.
Libraries/
├── AplhaHMI/ – шаблоны графических элементов и объектов для Alpha.HMI
├── DevStudio/ – типовые структуры, теги, события для Alpha.DevStudio
├── Docs/ – общая документация по библиотекам и стандартам
├── Firmware/ – образы прошивок для контроллеров и HMI-устройств
├── JscGlobalConf/ – глобальные конфигурации среды JSC
├── Unimod/ – библиотеки функциональных блоков и драйверов для ПЛК ТРЕЙ (Unimod 2)
├── Weintek/ – шаблоны экранов и объектов для HMI-панелей Weintek
└── Контроль версий ПО/ – архивы версий программного обеспечения оборудования
flowchart TD
L["Libraries"]
L1["AplhaHMI"]
L2["DevStudio"]
L3["Docs"]
L4["Firmware"]
L5["JscGlobalConf"]
L6["Unimod"]
L7["Weintek"]
L8["Контроль версий ПО"]
L --> L1
L --> L2
L --> L3
L --> L4
L --> L5
L --> L6
L --> L7
L --> L8
⚠️ Примечание: Все проекты используют данные из
Libraries
как основу. Обновление библиотек автоматически отражается на новых проектах, что обеспечивает согласованность и масштабируемость.
2.1.3 Каталог Projects
Содержит активные проекты, находящиеся в стадии разработки или сопровождения. Структура каждого проекта основана на единой архитектуре, обеспечивающей согласованность и автоматизацию.
Projects/
└── <Имя_проекта>/
├── DevStudio/ – Сгенерированные и редактируемые проекты для Alpha.DevStudio
├── HMI/ – Проекты верхнего уровня для Alpha.HMI
├── JSC/ – Основной каталог для разработки, содержащий модели и конфигурации
├── SavedConf/ – Сохранённые конфигурации завершённых проектов (титулов)
├── Unimod/ – Проекты, программы и конфигурации для ПЛК (среда Unimod 2)
└── Docs/ – Документация проекта (контроль версий ПО, протоколы и т.д.)
📌 Примечание: Структура каталогов отдельного проекта описана в разделе 2.2 Структура каталога проекта
2.1.4 Каталог SavedProjects
Предназначен для архивации завершённых, сданных или резервных копий проектов. Используется для:
- Хранения финальных версий проектов после сдачи
- Создания резервных копий перед крупными изменениями
- Реиспользования фрагментов (узлов, конфигураций) в новых проектах
- Поддержки обратной совместимости и аудита
2.2 Структура каталога проекта
Типовая структура каталога отдельного проекта, независимо от его местоположения (Projects
или SavedProjects
):
<Имя_проекта>/
├── DevStudio/ – файлы и проекты для Alpha.DevStudio (конфигурации, теги, события)
├── Doc/ – техническая документация: P&ID, ведомости КИПиА, отчёты
├── HMI/ – HMI-проекты для Alpha.HMI, Weintek, MiniScada
├── JSC/ – [конфигурации и скрипты среды JSC](#211-каталог-automiqautomation)
├── SavedConf/ – сохранённые конфигурации AutomiqAutomation (исходные данные, шаблоны)
└── Unimod/ – проекты и программы для ПЛК ТРЕЙ в среде Unimod 2
Каждый подкаталог соответствует определённому компоненту ПТК и используется как точка назначения для генерируемых файлов.
2.2.1 Каталог HMI
Каталог HMI
является частью структуры проекта и содержит файлы проекта для верхнего уровня АСУ (мнемосхемы, окна, символы). Он организован таким образом, чтобы обеспечить централизованное управление общими библиотечными компонентами, при этом сохраняя возможность для проектных настроек.
Структура каталога:
externals\
— Каталог, содержащий внешние ссылки (SVN externals) на общие библиотечные компоненты.objects\
— Основной каталог проекта, в котором хранятся мнемосхемы, окна, группы объектов и другие проектные элементы, специфичные для данного проекта.output\
— Каталог, используемый для временного хранения файлов, генерируемых в процессе сборки проекта HMI.resources\
— Каталог для хранения ресурсов проекта, таких как изображения, шрифты, звуковые файлы и т.д.
Каталог externals
:
Каталог externals
содержит ссылки на общие библиотечные проекты, расположенные в репозитории svn://nashgit.ru/automiq/Libraries
. Это позволяет всем проектам использовать унифицированные и актуальные версии базовых компонентов. Ссылки настраиваются как SVN Externals.
Каталог в проекте | Ссылка на репозиторий (SVN External) | Назначение |
---|---|---|
externals\Alarms |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/Alarms |
Библиотека визуализации и управления аварийными сообщениями. |
externals\CommonLib |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/CommonLib |
Общие библиотечные объекты, символы и стили, используемые во всех проектах. |
externals\Explorer |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/Explorer |
Компоненты для навигации по проекту (дерево объектов, панели поиска). |
externals\IntegrityControl |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/IntegrityControl |
Инструменты для контроля целостности данных и состояния системы. |
externals\SecurityConfigurator |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/SecurityConfigurator |
Библиотека для настройки прав доступа и пользовательских ролей. |
externals\Trends |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/Trends |
Готовые компоненты для отображения графиков и трендов. |
externals\DCS_ESD_lib |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/DCS_ESD_lib |
Библиотека символов и объектов для систем управления технологическим процессом (DCS) и аварийного отключения (ESD). |
externals\Statistics |
svn://nashgit.ru/automiq/Libraries/AplhaHMI/Statistics |
Компоненты для сбора и отображения статистической информации. |
Актуализация проекта
В случае выхода обновления компонентов платформы Alpha, все измененные библиотечные компоненты заливаются в глобальный репозиторий
svn://nashgit.ru/automiq/Libraries
. Для актуализации любого проекта до последней версии библиотек достаточно выполнить обновление (update) содержимого каталогаHMI
. Это обеспечивает быстрое и согласованное обновление всех проектов, использующих общие библиотеки.
graph TB
%% =============== ГЛОБАЛЬНЫЙ РЕПОЗИТОРИЙ ===============
subgraph "Глобальный репозиторий"
direction TB
Libraries[Libraries]
Libraries --> AplhaHMI[AplhaHMI]
AplhaHMI --> Alarms_Lib[Alarms]
AplhaHMI --> CommonLib_Lib[CommonLib]
AplhaHMI --> Explorer_Lib[Explorer]
AplhaHMI --> IntegrityControl_Lib[IntegrityControl]
AplhaHMI --> SecurityConfigurator_Lib[SecurityConfigurator]
AplhaHMI --> Trends_Lib[Trends]
AplhaHMI --> DCS_ESD_lib_Lib[DCS_ESD_lib]
AplhaHMI --> Statistics_Lib[Statistics]
end
%% =============== ПРОЕКТНЫЙ РЕПОЗИТОРИЙ ===============
subgraph "Проектный репозиторий"
direction TB
HMI[HMI]
HMI --> externals[externals\]
externals --> Alarms[Alarms]
externals --> CommonLib[CommonLib]
externals --> Explorer[Explorer]
externals --> IntegrityControl[IntegrityControl]
externals --> SecurityConfigurator[SecurityConfigurator]
externals --> Trends[Trends]
externals --> DCS_ESD_lib[DCS_ESD_lib]
externals --> Statistics[Statistics]
HMI --> objects[objects\]
HMI --> output[output\]
HMI --> resources[resources\]
end
%% =============== СВЯЗИ (SVN EXTERNAL) — БЕЗ ПРОБЕЛОВ ===============
Alarms -->|SVN_External|Alarms_Lib
CommonLib -->|SVN_External|CommonLib_Lib
Explorer -->|SVN_External|Explorer_Lib
IntegrityControl -->|SVN_External|IntegrityControl_Lib
SecurityConfigurator -->|SVN_External|SecurityConfigurator_Lib
Trends -->|SVN_External|Trends_Lib
DCS_ESD_lib -->|SVN_External|DCS_ESD_lib_Lib
Statistics -->|SVN_External|Statistics_Lib
%% =============== СТИЛИ ===============
style Libraries fill:#fff2cc,stroke:#333
style AplhaHMI fill:#fff9c4,stroke:#333
style Alarms_Lib fill:#d9ead3,stroke:#333
style CommonLib_Lib fill:#d9ead3,stroke:#333
style Explorer_Lib fill:#d9ead3,stroke:#333
style IntegrityControl_Lib fill:#d9ead3,stroke:#333
style SecurityConfigurator_Lib fill:#d9ead3,stroke:#333
style Trends_Lib fill:#d9ead3,stroke:#333
style DCS_ESD_lib_Lib fill:#d9ead3,stroke:#333
style Statistics_Lib fill:#d9ead3,stroke:#333
style HMI fill:#e6f3ff,stroke:#333
style externals fill:#d9ead3,stroke:#333
style Alarms fill:#d9ead3,stroke:#333
style CommonLib fill:#d9ead3,stroke:#333
style Explorer fill:#d9ead3,stroke:#333
style IntegrityControl fill:#d9ead3,stroke:#333
style SecurityConfigurator fill:#d9ead3,stroke:#333
style Trends fill:#d9ead3,stroke:#333
style DCS_ESD_lib fill:#d9ead3,stroke:#333
style Statistics fill:#d9ead3,stroke:#333
2.2.2 Каталоги JSC: Глобальный и локальный уровень
Каталог JSC
является основным рабочим пространством для разработки проекта автоматизации. Он четко разделен на два уровня: глобальный (Conf
) и локальный (USR\PRJ
), что обеспечивает баланс между унификацией и гибкостью.
graph TD
subgraph "Проектный репозиторий"
JSC[JSC]
JSC --> Conf[Conf\]
JSC --> USR[USR\PRJ\]
USR --> PRJ_Conf[Conf\]
PRJ_Conf --> Models_PLC[Models\PLC\]
PRJ_Conf --> NetSwitches[NetSwitches\]
PRJ_Conf --> EventLists[EventLists\]
USR --> ResultFiles[ResultFiles\]
end
subgraph "Глобальный репозиторий"
Libraries[Libraries]
Libraries --> JscGlobalConf[JscGlobalConf]
end
Conf -->|SVN External<br>svn://nashgit.ru/automiq/Libraries/JscGlobalConf| JscGlobalConf
style JSC fill:#e6f3ff,stroke:#333
style Libraries fill:#fff2cc,stroke:#333
style Conf fill:#d9ead3,stroke:#333
style JscGlobalConf fill:#d9ead3,stroke:#333
Рис. 2. Диаграмма связей каталога
JSC
с глобальным репозиторием.Диаграмма отображает структуру каталога
JSC
и его зависимость от централизованной библиотеки типовых моделей. КаталогJSC\Conf
является ссылкой (SVN External) на репозиторийsvn://nashgit.ru/automiq/Libraries/JscGlobalConf
Каталог | Расположение | Назначение |
---|---|---|
JSC\Conf |
Глобальный уровень | Ссылка на централизованный репозиторий svn://nashgit.ru/automiq/Libraries/JscGlobalConf/Automiq . Содержит типовые модели устройств, системные настройки, шаблоны и утилиты, которые должны применяться во всех проектах АСПСиПТ. |
JSC\Conf\Models\ObjTypes |
Глобальный уровень | Содержит файлы моделей (XLS) типовых объектов (например, TreiS304.xls , NetDiag1.xls ), используемых для генерации устройств в DevStudio. Модели могут быть сгруппированы в подкаталоги (например, Diagnostic\Snmp\ , AFA\ ). |
JSC\Conf\Models\System |
Глобальный уровень | Содержит системные модели, необходимые для функционирования генератора: • Labels\ — Сопоставление тегов и наименований сигналов.• Events\ — Определение шаблонов аварийных сообщений.• Modbus\Devices\ — Описание состава фреймов для устройств Modbus. |
JSC\Conf\Models\TagAssignement |
Глобальный уровень | Содержит модели (Map.*.xls ) для преобразования тегов исполнительных механизмов в наименования сигналов. |
JSC\Conf\Tools |
Глобальный уровень | Содержит утилиты для настройки и управления проектом: • SettingManager — Для управления глобальными переменными.• Selector — Для выбора моделей из списка. |
JSC\USR\PRJ\Conf\Models\PLC |
Локальный уровень | Содержит модели ПЛК, разработанные специально для данного проекта. |
JSC\USR\PRJ\Conf\NetSwitches |
Локальный уровень | Может содержать проектные переопределения или дополнения к глобальной модели NetSwitches.xls . |
JSC\USR\PRJ\ResultFiles |
Локальный уровень | Каталог, в который система AutomiqAutomation сохраняет результаты своей работы (сгенерированные файлы импорта для DevStudio, HMI и т.д.). |
Примечание:
Использование глобального репозитория для хранения каталога
JSC\Conf
обеспечивает единообразие и согласованность всех проектов. При обновлении типовой модели (например, добавлении нового типа датчика или исправлении ошибки в модели коммутатора) все проекты могут быть легко актуализированы простым обновлением (update) своего каталогаJSC\Conf
.Это позволяет:
- Снижать количество ошибок, так как все проекты используют проверенные и отлаженные компоненты.
- Ускорять разработку, избегая дублирования усилий.
- Обеспечивать сквозную согласованность данных между проектами.
Модели в глобальном репозитории могут редактироваться и дорабатываться разными разработчиками. После внесения изменений и заливки в репозиторий, обновленные модели становятся доступными для использования во всех проектах, что способствует постоянному развитию и совершенствованию библиотек типовых решений.
2.2.3 Каталог Unimod
Каталог Unimod
является рабочим пространством для проектов, разрабатываемых в среде программирования ПЛК ТРЕЙ — Unimod 2. В нем хранятся все проектные файлы, включая логику, типы данных, теги и конфигурации задач.
Каждый проект Unimod имеет собственную подпапку (например, P0-80-030-JF01-CA1001-1A
), внутри которой организована стандартная структура:
Каталог | Назначение |
---|---|
{UnimodProject}\app\ |
Содержит основные приложения проекта |
{UnimodProject}\tags\ |
Хранит теги и переменные проекта. |
{UnimodProject}\tasks\ |
Содержит задачи исполнения (цикл, фоновые задачи и т.д.). |
{UnimodProject}\varLists\ |
Содержит списки переменных. |
{UnimodProject}\functions\ |
Ссылка на глобальный репозиторий. Содержит библиотечные функции |
{UnimodProject}\types\ |
Ссылка на глобальный репозиторий. Содержит определения типов данных (UDT) и функциональные блоки. |
Примечание:
Каталоги
functions
иtypes
являются SVN externals, которые ссылаются на соответствующие библиотечные проекты в глобальном репозиторииsvn://nashgit.ru/automiq/Libraries/Unimod/
. Выбор конкретной библиотеки зависит от специфики проекта автоматизации:
Глобальный репозиторий | Назначение | Статус |
---|---|---|
svn://nashgit.ru/automiq/Libraries/Unimod/2x/AfaProject/ |
Библиотечный проект, содержащий типовые блоки и типы данных для систем АСПСиПТ (Автоматизация Систем Пожаротушения и Сигнализации Пожара). | Актуальный |
svn://nashgit.ru/automiq/Libraries/Unimod/2x/ApucsProject/ |
Объединенный библиотечный проект, используемый для систем РСУ, ПАЗ и АСУЭ. Является основным для новых проектов этих направлений. | Актуальный |
svn://nashgit.ru/automiq/Libraries/Unimod/2x/DcsEsdProject/ |
Устаревший библиотечный проект с блоками для систем РСУ, ПАЗ и СКЗ. | Устаревший (используется только для поддержки старых проектов) |
svn://nashgit.ru/automiq/Libraries/Unimod/2x/AucsProject/ |
Устаревший библиотечный проект с блоками для систем АСУЭ. | Устаревший (используется только для поддержки старых проектов) |
Пример внешних ссылок для проекта АСПСиПТ:
Для проекта АСПСиПТ, например
PSaLA_MST_AFA
, настройки SVN externals будут выглядеть следующим образом:
Каталог в проекте Ссылка на репозиторий (SVN External) P0-80-030-JF01-CA1001-1A/functions
svn://nashgit.ru/automiq/Libraries/Unimod/2x/AfaProject/functions
P0-80-030-JF01-CA1001-1A/types
svn://nashgit.ru/automiq/Libraries/Unimod/2x/AfaProject/types
Это обеспечивает использование единой, проверенной библиотеки типов и функций для всех проектов АСПСиПТ.
2.3 Использование системы контроля версий
Система AutomiqAutomation интегрирована с SVN (Subversion) — централизованной системой контроля версий, обеспечивающей:
- Совместную работу команды разработчиков
- Контроль изменений и ведение истории правок
- Возможность отката к предыдущим версиям
- Согласованность между проектами и библиотеками
Связи между каталогами Libraries
и проектом
- Каталог
Libraries
является общим репозиторием, доступным для всех проектов. - При создании нового проекта система автоматически подтягивает актуальные версии библиотек.
- Изменения в
Libraries
могут быть синхронизированы со всеми проектами через обновление (Update).
Основные правила пользования SVN
- Перед началом работы — выполнить обновление (Update) репозитория.
- После внесения изменений — зафиксировать (Commit) с понятным комментарием.
- Не коммитить временные файлы (кэш, логи, локальные конфигурации).
- Все изменения в
Libraries
должны быть согласованы с руководителем проекта. - Версии проектов в
SavedProjects
также подлежат архивации в SVN.
Необходимость использования SVN
- Обеспечивает единый источник правды для всех участников проекта.
- Позволяет отслеживать историю изменений и выявлять причины ошибок.
- Минимизирует риски потери данных при сбоях.
- Поддерживает параллельную разработку нескольких проектов на базе общих библиотек.