Инструкция по использованию ALPS-L
ALPS-L — настольное приложение для визуального проектирования логики автоматизации. Вы создаёте схему из блоков и связей, сохраняете проект в файл (.lalp), запускаете локально или выгружаете на устройство.
1. Начало работы
1.1. Запуск приложения
1.1.1. Необходимо скачать приложение с сайта www.antonloginov.pro, с раздела Загрузки
1.1.2. Запустить ALPS-portable.exe – > распаковать в необходимую папку
1.1.3. Запустить исполняемый файл программы ALPS.
1.2. Создание проекта
1.2.1. После запуска программы, появится стартовое окно.

На главном экране выберите «Создать проект» или нажмите Ctrl+N.
1.2.2. Перейдите в Рабочую область.
1.2.3. Проект автоматически сохраняется каждые 15 секунд при наличии изменений.
1.3. Открытие проекта
Кнопка «Открыть проект» — открыть файл проекта;
- Ctrl+O — открыть файл проекта;
- список «Недавние проекты» на главном экране.
2. Интерфейс редактора

2.1. Панель инструментов
| Кнопка | Действие | Горячая клавиша |
| Новый | Создать проект | Ctrl+N |
| Сохранить | Сохранить проект | Ctrl+S |
| Сохранить как | Сохранить под новым именем | Ctrl+Shift+S |
| Открыть | Открыть проект | Ctrl+O |
| Отменить / Повторить | Undo / Redo | Ctrl+Z / Ctrl+Y |
| Запуск | Локальный эмулятор | F10 |
| Стоп | Остановить выполнение | F10 (повторно) |
| Тест | Отладка на устройстве | F11 |
2.2. Библиотека блоков
Три раздела блоков:
| Раздел | Содержимое |
| Networks | TCP, UDP, WebSocket, COM, SSH, IR, реле и другие сетевые блоки |
| Include | Логика, Gate, debounce, ALP_V, init-блоки и встроенные функции |
| Custom | Пользовательские блоки (.ablib) и Переиспользуемые модули (.malp) |
Как добавить блок на canvas:
- перетащите блок из библиотеки;
- дважды щёлкните по блоку в правой панели библиотеки.
2.3. Рабочая область (canvas)
- Панорамирование — средняя кнопка мыши или два пальца на ноутбуке.
- Масштаб — колёсико мыши или CTRL + два пальца на тачпаде ноутбука.
- Выделение — щелчок по блоку; Ctrl+клик — несколько блоков.
- Перемещение — перетаскивание выделенных блоков.
- Удаление — Delete.
На canvas отображаются блоки активного листа. Блоки разных листов образуют один граф выполнения, но расположены на схеме отдельно.
2.4. Правая панель (свойства)
Выберите блок, чтобы изменить:
- Имя блока — уникальное, валидный Python-идентификатор;
- Параметры — адреса, порты, таймауты и т.д.;
- Заметки — текст для справки (Custom и модули).
2.5. Панель логов
Здесь отображаются:
- сообщения выполнения;
- ошибки валидации;
- статус подключений к устройствам;
- системные сообщения.
3. Работа с блоками
3.1. Добавление и настройка
- Перетащите блок на canvas.
- Дважды щёлкните по блоку (или кнопка Редактировать блок).
- В окне Редактирование блока задайте:
| Поле | Описание |
| Имя блока | Уникальное имя (Python-идентификатор) |
| Тип блока | logic, connection, init, custom |
| Параметры | Пары «имя → значение» |
| Входы / Выходы | Имена портов |
| Store in DB | Сохранять значение входа между циклами перезагрузки контроллера (программы) |
| Код | Python-логика (для Custom) |
4. Нажмите Save.
3.2. Соединение блоков
- Щёлкните на выходном/входном порте блока.
- Перетащите связь к входному/выходному порту другого блока.
Ограничения:
- дублирующие связи не создаются;
- типы портов должны быть совместимы.
3.3. Пользовательские блоки (Custom)
Блок Custom_Code позволяет написать собственную логику на Python:
# Код выполняется как тело async def _user_block(ctx):
# ctx.in_1 — значение на входе in_1
# ctx.set_out(«out_1», value) — установить выход
Создайте копию в библиотеке Custom, задайте входы, выходы, параметры и напишите логику в поле Code.
Более полное описание можно найти в приложении ALPS, в разделе F1 Справка -> Справка
3.4. Модули
Модуль — это переиспользуемый фрагмент схемы, который внутри устроен как полноценный проект ALPS, а на родительской схеме отображается как один блок с входами, выходами и параметрами.
Типичный сценарий: вы проектируете логику управления комнатой, типовой драйвер устройства или повторяющийся участок схемы — сохраняете его как модуль и затем используете на любых проектах одним блоком на «Рабочей области» проекта.
Что такое модуль
| Уровень | Что это |
| Внутри модуля | Обычная схема: блоки, связи, листы, Custom Code, сетевые блоки |
| Снаружи (на основной схеме) | Один блок-оболочка с портами, описанными в «фасаде» модуля |
| Файл в библиотеке | Архив .malp в разделе Custom → Modules |
При запуске (F10) и выгрузке (F12) модуль автоматически разворачивается во внутреннюю схему — на устройстве выполняется единая программа, как если бы все блоки были нарисованы на одном листе.
Граница модуля: три специальных блока
Чтобы ALPS понял, какие порты должны быть видны снаружи, внутри модуля обязательно размещают блоки из раздела Include:
| Блок | Назначение | Обязательность |
| module_inputs | Входы модуля, видимые на оболочке | Обязателен (ровно один) |
| module_outputs | Выходы модуля, видимые на обoлочке | Обязателен (ровно один) |
| module_params | Параметры оболочки (ссылки #имя) | Необязателен (не более одного) |
module_inputs
Каждый вход (кроме служебного enable) становится входным портом блока-модуля на родительской схеме.
Подписи портов задаются через alias в редакторе блока.
module_outputs
Каждый выход экспортируется на оболочку модуля.
Внутренние блоки подключаются к выходам module_outputs; снаружи они видны как выходы одного блока.
module_params
В таблице параметров указываются имена вида #ip_address, #port и значения по умолчанию.
Внутри модуля другие блоки ссылаются на те же #имя в своих параметрах.
На родительской схеме эти параметры доступны в свойствах экземпляра модуля.
Внутренние связи идут от module_inputs к логике и от логики к module_outputs.
Создание модуля: отдельный проект → сохранение как блок
Модуль создаётся не на основной схеме, а как самостоятельный проект:
Шаг 1. Создайте новый проект
Ctrl+N → Рабочая область.
Это обычный проект ALPS: листы, блоки, связи — всё работает так же, как в основном проекте.
Шаг 2. Добавьте граничные блоки
Из библиотеки Include добавьте:
- module_inputs
- module_outputs
- при необходимости — module_params
Настройте входы, выходы и параметры в редакторе каждого блока.
Шаг 3. Постройте внутреннюю логику
Между граничными блоками разместите нужную схему:
- логические блоки (Gate, and, debounce…);
- сетевые блоки (TCP_Client, UDP…);
- Custom Code на Python;
- другие модули (вложенность поддерживается).
Шаг 4. Сохраните проект как модуль
Меню Сохранить блок (или соответствующая команда на панели сохранения):
1. ALPS проверит схему:
- есть ли ровно один module_inputs;
- есть ли ровно один module_outputs;
- корректны ли ссылки #param внутри модуля.
2. Откроется диалог с именем модуля.
3. Текущий проект сохранится в файл .malp в библиотеку Custom.
Сообщение в диалоге: «Текущий проект будет сохранён как модуль (.malp) в разделе Custom.»
После сохранения:
- модуль появляется в библиотеке в разделе Modules;
- открытый документ переходит в режим редактирования модуля (имя модуля в заголовке окна);
- дальнейшее Сохранить (Ctrl+S) обновляет тот же .malp, а не файл .lalp.
Шаг 5. Повторное сохранение и копия
| Действие | Результат |
| Сохранить блок | Перезаписывает текущий .malp (если модуль уже открыт на редактирование) |
| Сохранить блок как… | Сохраняет копию под новым именем |
Физически файлы лежат в папке пользовательской библиотеки block_lib/custom/.
Модуль можно также открыть напрямую: двойной щелчок по .malp или перетаскивание файла в окно ALPS.
Использование модуля на основной схеме
Добавление на canvas
- Откройте основной проект (.lalp).
- В библиотеке Includes найдите сохранённый модуль.
- Перетащите его на canvas — появится блок-оболочка с портами из фасада.
На схеме виден один блок, внутри — вся разработанная логика.
Настройка экземпляра
Выделите блок модуля на canvas. В правой панели Свойства:
- задайте значения параметров (#ip_address, #port и т.д.);
- при необходимости измените имя экземпляра на схеме.
Связи на родительской схеме подключаются к внешним портам оболочки, а не к внутренним блокам.
Редактирование модуля
| Задача | Как открыть |
| Изменить шаблон для всех экземпляров | Редактирование модуля из библиотеки Modules (открывается .malp) |
| Изменить логику только этого экземпляра | Редактирование внутренней схемы экземпляра на canvas |
После изменения шаблона ALPS обновляет фасад на всех открытых проектах, где используется этот модуль.
Требования и ограничения
Перед сохранением модуля ALPS проверяет:
| Проверка | Ошибка, если… |
| module_inputs | нет блока или их несколько |
| module_outputs | нет блока или их несколько |
| module_params | более одного блока |
| Ссылки #param | внутри модуля есть #имя, не объявленное в module_params |
| Имя | совпадает с уже существующим блоком .ablib в Custom |
Имя модуля должно быть уникальным и не конфликтовать с Custom-блоками.
Краткая шпаргалка
Создать модуль:
Новый проект → module_inputs / module_outputs / module_params → внутренняя схема → Сохранить блок → имя → .malp
Использовать:
Основной проект → Modules → перетащить на canvas → связать порты
Изменить шаблон:
Modules → редактирование → правки → Ctrl+S (обновляет .malp)
Запустить:
F10 / F12 — модуль разворачивается автоматически.
4. Листы проекта
- Проект может содержать несколько листов (вкладок в дереве проекта слева).
- Все листы образуют единый граф выполнения.
- На canvas видны блоки только активного листа.
- Переключение листа — щелчок в дереве проекта.
5. Передача данных между блоками
Данные передаются по портам блоков — от выхода одного блока ко входу другого.
На портах могут передаваться:
- числа (int, float);
- строки;
- логические значения;
- списки и словари (Python).
Типы портов задаются в редакторе блока (input_types / output_types).
Параметры блока и опция Store in DB позволяют хранить значения между циклами выполнения.
6. Запуск, тест и выгрузка
6.1. Проверка схемы
Перед F10, F11 или F12 ALPS проверяет проект:
| Ошибка | Причина |
| Дубликаты имён | Два блока с одинаковым именем |
| Ошибка в Custom | Синтаксическая ошибка в Code |
| Модули | Нет module_inputs/module_outputs |
Исправьте ошибки по тексту диалога. Для справки по блоку: выделите его и нажмите F1.
6.2. Локальный запуск — F10
- Выполняет проект в локальном эмуляторе.
- Повторное F10 — Стоп.
- Во время выполнения можно отправлять значения по связи (двойной щелчок по связи).
6.3. Тест на устройстве — F11
- Выберите устройство на вкладке Устройства.
- Нажмите F11.
- ALPS собирает prog1.py, сверяет с устройством и открывает TCP-отладку.
- Повторное F11 — остановка теста.
6.4. Выгрузка на устройство — F12
- Выберите устройство.
- Нажмите F12.
- Подтвердите проект и устройство.
- Загрузка выполняется по SSH.
7. Устройства ALPS-L
7.1. Устройства
На вкладке Устройства добавляйте контроллеры:
- IP-адрес, имя, учётные данные SSH;
- тест связи, настройка сети, просмотр логов.
Перед F11 (тест) или F12 (выгрузка) выделите нужное устройство в списке.
7.2. Панель ALP-V
Блоки для связи с Android-панелью ALP-V:
| Блок | Назначение |
| ALP_V | Обмен данными с панелью ALP-V |
| ALP_V_gate | Шлюз между панелью и логикой схемы |
| ALP_SWT | Блок для управления выключателем ALP-SWT |
LinkID — номер виртуального канала между логикой и панелью:
- порты in_N / out_N соответствуют LinkID = N;
- LinkID 30001 зарезервирован для управления яркостью андроид панели.
8. Сетевые блоки
Раздел Networks в библиотеке:
| Блок | Назначение |
| TCP_Client | TCP-клиент: подключение к серверу |
| TCP_Server | TCP-сервер: приём подключений |
| UDP_Client | Отправка/приём UDP |
| WebSocket_Client / Server | WebSocket-соединения |
| COM_Connect | Последовательный порт контроллера ALP-iC |
| SSH_Client | SSH-подключение |
| wakeOnLan | Wake-on-LAN |
| HTTP_client | HTTP-запросы |
Пример TCP_Client:
- Вход connect: 1 — подключиться, 0 — отключиться.
- Вход tx: данные для отправки.
- Выход rx: принятые данные.
- Выход status: состояние подключения.
- Параметры: address, port, interval, таймауты.
9. Логические блоки (Include)
| Блок | Назначение |
| Gate | Передача данных от Gate в Gate, если у них одинаковое имя в параметре link_name |
| and / or / not | Логические операции |
| data_eq | Сравнение значений |
| debounce | Подавление дребезга |
| one_pulse / sequence_pulse | Формирование импульсов |
| repeat | Повтор операций |
| buffer | Вентиль, который пропускает данные при включенном enable и не пропускает если выключен |
| data_init | Отправка значение от 0 до 65535 в выход |
| send_data | Отправка данных |
Более подробное описание блоков можно найти в самом приложении при нажатии F1 или зайти Справка -> Справка.
10. Горячие клавиши
Файл и редактирование
| Клавиши | Действие |
| Ctrl+N | Новый проект |
| Ctrl+O | Открыть |
| Ctrl+S | Сохранить |
| Ctrl+Shift+S | Сохранить как |
| Ctrl+Z | Отменить |
| Ctrl+Y | Повторить |
Рабочая область
| Клавиши | Действие |
| F1 | Справка по выбранному блоку |
| F2 | Посмотреть все Связи (Link blocks) |
| F3 | Закомментировать / раскомментировать |
| Delete | Удалить выделенное |
| Ctrl+клик по связи | Добавить/убрать из выделения |
| ПКМ | Контекстное меню |
Выполнение
| Клавиши | Действие |
| F10 | Запуск / Стоп (локально) |
| F11 | Тест на устройстве / Стоп |
| F12 | Выгрузка на устройство |
11. Типовой рабочий процесс
- Создать проект (Ctrl+N)
- Добавить блоки из библиотеки на canvas
- Настроить параметры блоков (двойной щелчок)
- Соединить блоки связями
- Проверить схему (F10 — при ошибках исправить)
- Запустить локально (F10) — отладка в логах
- Выгрузить на контроллер (F12)
- Протестировать на устройстве (F11)
- Сохранить проект (Ctrl+S)
12. Справка внутри приложения
- F1 — справка по выбранному блоку или разделу приложения.
- Меню Справка → Справка.
- Для Custom-блоков текст из поля Notes попадает в справку.