---
title: "Вопросы и ответы ALTA IDE"
product: "ALTA IDE"
document_number: "№ 1-RU-161729-1.4"
version: "1.4"
language: "ru"
source: "https://docs.owen.ru/product/alta-ide/doc/faq_alta_IDE_stable"
pdf: "https://docs.owen.ru/download/pdf/j2K_Y.rp_alta+ide_voprosy+i+otvety+%28faq%29_1-ru-156534-1.4.pdf"
generated: "2026-10-14"
---

# Вопросы и ответы ALTA IDE

## Содержание

- [Цель документа](#topic-125476)
- [Вопросы по прошивке](#topic-125477)
  - [Что такое прошивка?](#topic-125478)
  - [Как узнать версию прошивки?](#topic-125479)
  - [Как обновить прошивку контроллера через web-конфигуратор?](#topic-125480)
  - [В каких случаях следует обновлять прошивку контроллера?](#topic-125481)
  - [Где взять новые прошивки?](#topic-125482)
- [Конфигуратор. Обновление прошивки и проекта](#topic-125483)
  - [Для чего нужен web-конфигуратор?](#topic-125484)
  - [Как попасть в web-конфигуратор?](#topic-125485)
  - [Какой пароль у web-конфигуратора?](#topic-125486)
  - [Как обновить прошивку с USB-накопителя?](#topic-125487)
  - [Как сбросить пароль web-конфигуратора?](#topic-125488)
  - [Можно ли обновить прошивку без сброса настроек?](#topic-125489)
- [Вопросы по](#topic-125490)
  - [Что такое ?](#topic-125491)
  - [Где скачать ?](#topic-125492)
  - [Как установить ?](#topic-125493)
  - [Что такое таргет-файл?](#topic-125494)
  - [Где взять таргет-файлы?](#topic-125495)
  - [Как перенести проект с одного компьютера на другой?](#topic-125496)
  - [Что такое библиотека?](#topic-125497)
  - [Как установить и подключить библиотеку к проекту?](#topic-125498)
  - [Где находятся библиотеки в файловой системе?](#topic-125499)
  - [Можно ли создать пользовательскую библиотеку? Информация по внутренней структуре библиотек](#topic-125500)
- [Вопросы по подключению контроллера к ПК](#topic-125501)
  - [Как подключиться к контроллеру из ?](#topic-125502)
  - [Как узнать IP-адрес контроллера?](#topic-125503)
  - [Как поменять IP-адрес контроллера?](#topic-125504)
  - [Что делать, если не видит контроллер?](#topic-125505)
- [Вопросы по созданию проекта в](#topic-125506)
  - [Как объявить энергонезависимую переменную?](#topic-125507)
  - [Можно ли использовать в проекте PERSISTENT-переменные?](#topic-125508)
  - [Какой объем энергонезависимой памяти у контроллеров ОВЕН?](#topic-125509)
  - [Как однократно выполнить фрагмент кода при первом запуске программы?](#topic-125510)
- [Вопросы по загрузке, запуску, отладке проекта](#topic-125511)
  - [Как загрузить проект в контроллер?](#topic-125512)
  - [Как удалить проект из контроллера?](#topic-125513)
  - [Как выгрузить проект из контроллера?](#topic-125514)
  - [Почему написанный код не выполняется?](#topic-125515)
  - [Как отладить программу?](#topic-125516)
  - [Что делать при возникновении ошибок компиляции?](#topic-125517)
  - [Как изменить имя переменной во всем программном объекте (программе, ФБ, функции)?](#topic-125518)
- [Вопросы по памяти и архивации](#topic-125519)
  - [Для чего используется внутренняя память контроллера? Какой объем внутренней памяти доступен пользователю?](#topic-125520)
  - [Какие USB- и SD- накопители можно подключать к контроллеру](#topic-125521)
- [Вопросы по настройке обмена с другими устройствами](#topic-125522)
  - [Какие протоколы поддерживают контроллеры ОВЕН со средой ?](#topic-125523)
  - [Как соотносятся номера COM-портов контроллера с номерами портов в ?](#topic-125524)
- [Вопросы по системному времени](#topic-125525)
  - [Как считать системное время контроллера в коде программы? Как настроить системное время в](#topic-125526)
  - [Как настроить синхронизацию времени по NTP?](#topic-125527)
  - [Что делать, если системное время постоянно сбивается?](#topic-125528)
- [Остальные вопросы](#topic-125529)
  - [Как перезагрузить контроллер из кода программы?](#topic-125530)
  - [Как организовать терминальное подключение к контроллеру (SSH и т. д.)?](#topic-125531)
  - [Как подключиться к файловой системе контроллера?](#topic-125532)
  - [Какие сетевые порты используются контроллером?](#topic-125533)
  - [Как подключить контроллер к VPN?](#topic-125534)
  - [Как реализовать ПИД-регулирование в программе контроллера?](#topic-125535)

<a id="topic-125476"></a>

## Цель документа

Настоящее руководство представляет собой сборник наиболее часто задаваемых вопросов, возникающих во время работы с контроллерами ОВЕН, программируемыми в среде ALTA IDE, и ответов на них. В некоторых случаях вопросы охватывают слишком большую предметную область – тогда вместо ответа приводится ссылка на документ, посвященный затронутой теме. Все документы доступны для скачивания на сайте компании [ОВЕН Цифровые решения](https://owendigital.ru/products/altaide/dokumentaciia).

Данный FAQ составлен с учетом опыта пользователей, ранее работавших в среде **CODESYS**, которая долгое время использовалась для программирования ПЛК.

Поскольку обе среды предназначены для решения схожих задач, часть материалов была адаптирована из документации к CODESYS. Кроме того, во многих случаях логика и алгоритмы решений в ALTA IDE совпадают с решениями в CODESYS.

**Обратите внимание:** несмотря на схожесть задач, между средами существуют принципиальные различия. ALTA IDE спроектирована с учетом более низкого порога входа и в целом является более дружелюбной и интуитивно понятной для начинающих разработчиков.

> [!IMPORTANT]
> **Предупреждение.** Прямое копирование проектов из CODESYS в ALTA IDE невозможно.

Мы настоятельно рекомендуем внимательно изучить ответы, приведенные в этом FAQ для ALTA IDE.

Поскольку ALTA IDE активно развивается, с выходом новых версий и расширением функциональных возможностей будет выпускаться обновленный документ FAQ, отражающий актуальное состояние среды.

Если после прочтения у вас останутся вопросы, вы всегда можете обратиться в техническую поддержку по адресу: [support@owendigital.ru](mailto:support@owendigital.ru).

<a id="topic-125477"></a>

## Вопросы по прошивке

<a id="topic-125478"></a>

### Что такое прошивка?

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

<a id="topic-125479"></a>

### Как узнать версию прошивки?

Версия прошивки отображается в web-конфигураторе на вкладке Состояние/Обзор:

![3 2](https://docs.owen.ru/book_img/2419/161609.png)

Кроме того, версия прошивки отображается в ALTA IDE при подключении к контроллеру.

![3 2 1](https://docs.owen.ru/book_img/2419/161608.png)

<a id="topic-125480"></a>

### Как обновить прошивку контроллера через web-конфигуратор?

Прошивка контроллера может быть обновлена из web-конфигуратора. Для этого следует:

1. Подключить контроллер в сеть Ethernet, в которой находится пользовательский ПК, или напрямую к ПК при помощи кабеля USB.
2. Зайти в web-конфигуратор и перейти на вкладку Система/Обновление прошивки.
3. В случае необходимости установить галочку **Удалить настройки устройства** (если для данной прошивки такая возможность поддерживается).
4. Нажать кнопку Далее.
5. Выбрать файл прошивки (формата .swu для ПЛК110-ALTA) и нажать кнопку **Перезагрузить устройство и обновить прошивку**.

> [!NOTE]
> **Примечание.** По умолчанию в случае обновления прошивки пользовательский проект и настройки контроллера сохраняются. При необходимости пользователь может перед началом прошивки установить в web-конфигураторе галочку Удалить настройки устройства (см. пп. 3) – если для данной прошивки такая возможность поддерживается. Удаление настроек также происходит в том случае, если к контроллеру подключен USB- или SD-накопитель, в корне которого присутствует файл с названием reset_plc.

<a id="topic-125481"></a>

### В каких случаях следует обновлять прошивку контроллера?

Прошивку контроллера необходимо обновлять в следующих случаях:

1. По рекомендации технической поддержки компании ОВЕН Цифровые решения.
2. В случае возникновения ошибок, связанных с прошивкой, и рекомендаций на форуме ОВЕН обновить ее.
3. В случае добавления в новой прошивке необходимого пользователю функционала.

<a id="topic-125482"></a>

### Где взять новые прошивки?

Файлы прошивок и история версий доступны на сайте ОВЕН Цифровые решения в разделе [ALTA IDE/Cервисное ПО](https://owendigital.ru/products/altaide/dokumentaciia).

<a id="topic-125483"></a>

## Конфигуратор. Обновление прошивки и проекта

<a id="topic-125484"></a>

### Для чего нужен web-конфигуратор?

Контроллеры ОВЕН, программируемые в среде ALTA IDE, имеют встроенный web-конфигуратор.

С помощью web-конфигуратора можно:

- получить информацию о контроллере;
- настроить сетевые параметры и сервисы контроллера;
- настроить системное время контроллера;
- обновить прошивку контроллера;
- загрузить пакет таргет-файлов и драйвер USB;
- получить доступ к терминалу Linux;
- посмотреть журнал операционной системы;
- получить доступ к web-визуализации контроллера и настроить ее параметры;
- посмотреть журнал ALTA, информацию мониторинга задач, информацию о приложении;
- посмотреть статистику работы контроллера в виде графиков;
- изменить дополнительные настройки контроллера.

![новый 3 2](https://docs.owen.ru/book_img/2419/161607.png)

Описание web-конфигуратора приведено в руководстве Описание Web-интерфейса OpenWrt, который доступен на сайте ОВЕН на странице любого из контроллеров, который имеет web-конфигуратор.

<a id="topic-125485"></a>

### Как попасть в web-конфигуратор?

Необходимо подключить контроллер к сети, в которой находится ПК\*, или напрямую к ПК через кабель USB, запустить web-браузер и ввести IP-адрес соответствующего интерфейса контроллера.

\* – вместо ПК может использоваться любое устройство с web-браузером, например смартфон.

<a id="topic-125486"></a>

### Какой пароль у web-конфигуратора?

Пароль по умолчанию — owen (в нижнем регистре). Пароль может быть изменен в web-конфигураторе во вкладке Система/Управление.

<a id="topic-125487"></a>

### Как обновить прошивку с USB-накопителя?

Для обновления прошивки контроллера ПЛК110-ALTA с USB-накопителя следует:

1. Отформатировать накопитель в файловую систему FAT32 (рекомендуется использовать утилиту HP USB Disk Storage Format Tool). Накопитель должен содержать только один раздел и иметь стиль таблицы разделов MBR.
2. Поместить файл прошивки (формата .swu) в корневую директорию накопителя.
3. В случае необходимости **сброса настроек контроллера и удаления проекта** при перепрошивке на заводские следует поместить в корневую директорию накопителя файл **reset_plc** (он входит в состав архива прошивки).
4. Подключить накопитель к контроллеру.
5. Перевести тумблер на лицевой панели ПЛК в положение "Стоп".
6. Отключить питание контроллера.
7. Подключить питание контроллера.
8. При загрузке ПЛК сразу после подачи питания включится светодиод Работа. Это сигнал, что можно запустить процесс обновления прошивки. Пока горит **светодиод** Работа перевести **тумблер** в положение Работа. Это запустит процесс обновления прошивки с USB-A накопителя.
9. ПЛК начнет издавать звуковые сигналы, что свидетельствует о начале прошивки. Обновление прошивки занимает около двух минут. Процесс обновления завершается трехкратным звуковым сигналом.

<a id="topic-125488"></a>

### Как сбросить пароль web-конфигуратора?

Если пароль от web-конфигуратора неизвестен, то для его сброса следует перепрошить контроллер с USB- или SD-накопителя со сбросом настроек (с использованием файла reset_plc). После этого в конфигуратор можно будет войти, использовав пароль по умолчанию (owen).

<a id="topic-125489"></a>

### Можно ли обновить прошивку без сброса настроек?

В некоторых ситуациях требуется обновить прошивку без сброса настроек (чтобы сохранить проект ALTA, сетевые настройки и т. д.). Если обновление прошивки производится с USB/SD-накопителя – то на данном накопителе не должно быть файла reset_plc (его наличие приводит к сбросу настроек на заводские в процессе прошивки). Если обновление прошивки производится через web-конфигуратор – то в процессе обновления должна быть снята галочка **Удалить настройки устройства**.

<a id="topic-125490"></a>

## Вопросы по 

<a id="topic-125491"></a>

### Что такое ?

**ALTA IDE** — это современная интегрированная среда разработки, предназначенная для программирования ПЛК (программируемых логических контроллеров) на языках стандарта IEC 61131-3. Среда разрабатывается и распространяется компанией ОВЕН Цифровые решения.

**ALTA IDE** используется для разработки и отладки прикладного программного обеспечения и разработки интерфейса оператора, которые в сочетании образуют пользовательский проект. Проект загружается для исполнения в контроллер.

Среда **ALTA IDE** находится в стадии активного развития, что обеспечивает регулярный выпуск новых версий.

<a id="topic-125492"></a>

### Где скачать ?

ALTA IDE может быть загружена с сайта компании [**ОВЕН Цифровые решения**](https://owendigital.ru/products/altaide/description).

<a id="topic-125493"></a>

### Как установить ?

Процесс установки ALTA IDE описан в [**руководстве пользователя ALTA IDE**](https://docs.owen.ru/download/pdf/vyksl.rp_alta+ide+%28versia+1.3%29_1-ru-154848-1.30.pdf) и в руководстве [**ALTA IDE Быстрый старт**](https://docs.owen.ru/download/pdf/wFYP3.bystryj+start_alta+ide+%28versia+1.0%29_1-ru-154391-1.8.pdf).

<a id="topic-125494"></a>

### Что такое таргет-файл?

Таргет-файл (файл целевой платформы) является неотъемлемой частью каждого проекта ALTA IDE. Таргет-файл содержит информацию о ресурсах контроллера и обеспечивает его связь со средой программирования. Каждая модель контроллера ОВЕН имеет собственный таргет-файл. Таргет-файлы включают в себя дополнительный функционал (работа с системным временем, подключенными накопителями и т. д.)

<a id="topic-125495"></a>

### Где взять таргет-файлы?

Таргет-файлы уже включены в установщик ALTA IDE и обновляются вместе со средой, дополнительной установки не требуется.

<a id="topic-125496"></a>

### Как перенести проект с одного компьютера на другой?

При создании проекта в ALTA IDE создается папка, содержащая все файлы, необходимые для корректной работы проекта. Директория для сохранения также выбирается на этапе создания проекта.

Сохраните проект, который хотите перенести, одним из способов:

- с помощью кнопки ![Сохранить проект](https://docs.owen.ru/book_img/2419/161606.png) на тулбаре;
- Главное меню → Файл → Сохранить проект
- или сочетания клавиш CTRL+S.

Заархивируйте папку с проектом любым привычным архиватором.

На новом ПК разархивируйте папку с проектом. Убедитесь, что установлена версия ALTA IDE, идентичная версии, в которой был создан проект (допускается открытие проекта в версии, не совпадающей с версией создания, но в этом случае не гарантируется корректная работа всего функционала).

> [!NOTE]
> **Примечание.** Всегда рекомендуется обновлять ALTA IDE до последней версии

Откройте проект одним из способов:

- с помощью кнопки ![Открыть проект](https://docs.owen.ru/book_img/2419/161605.png) на тулбаре;
- Главное меню → Файл → Открыть проект
- или сочетания клавиш CTRL+О.

При открытии выберите файл с расширением *.alta*.

<a id="topic-125497"></a>

### Что такое библиотека?

Библиотека — это набор готовых функций, функциональных блоков и других объектов.

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

<a id="topic-125498"></a>

### Как установить и подключить библиотеку к проекту?

Библиотеки предустановлены в ALTA IDE, дополнительной установки не требуется. Необходимо только подключить библиотеки к конкретному проекту.

Доступные в ALTA IDE библиотеки располагаются в Менеджере библиотек.

![4 8 2](https://docs.owen.ru/book_img/2419/161604.png)

Менеджер библиотек содержит две вкладки:

**Мои библиотеки** — библиотеки, подключенные к проекту;

**Магазин** — библиотеки, доступные для подключения.

Для просмотра содержимого библиотеки нажмите на ее карточку:

- на вкладке **README** представлен перечень функций, функциональных блоков и других объектов, входящих в библиотеку.

  ![4 8](https://docs.owen.ru/book_img/2419/161603.png)

- на вкладке **Информация** можно скачать файл с полным руководством к библиотеке.

  ![4 8 1](https://docs.owen.ru/book_img/2419/161602.png)

Чтобы подключить библиотеку к проекту:

1. В редакторе **Менеджер библиотек** перейдите на вкладку **Магазин**.

2. Выберите нужную библиотеку и нажмите кнопку **Подключить** на её карточке.

   ![Карточка библиотеки](https://docs.owen.ru/book_img/2419/161601.png)

3. Библиотека будет добавлена в проект и отобразится на вкладке **Мои библиотеки**.

<a id="topic-125499"></a>

### Где находятся библиотеки  в файловой системе?

Библиотеки в ALTA IDE хранятся по следующему пути:

```
C:\Users\<имя пользователя>\AppData\Roaming\AltaIDE\Compiler\lib\castlelib\packages
```

<a id="topic-125500"></a>

### Можно ли создать пользовательскую библиотеку? Информация по
внутренней структуре библиотек

#### Пошаговая инструкция по созданию библиотеки:

1. Создадим папку с названием библиотеки, например "MyLibrary", в директории

   ```
   C:\Users\<имя пользователя>\AppData\Roaming\AltaIDE\Compiler\lib\castlelib\packages
   ```

2. Созданную папку "MyLibrary" необходимо заполнить содержимым, по аналогии с другими готовыми библиотеками ALTA IDE. Сделаем на примере библиотеки Util.

   Внутри находятся 3 элемента:

   ![4 9](https://docs.owen.ru/book_img/2419/161600.png)

   1. Папка src — внутри исходный код библиотеки на ST:

      ![4 9 3](https://docs.owen.ru/book_img/2419/161639.png)

   2. Файл Fort.toml — файл метаданных (описание) библиотеки;

   3. README.md — краткое описание библиотеки.

3. Скопируем содержимое папки util в созданную нами папку MyLibrary:

   ![4 9 4](https://docs.owen.ru/book_img/2419/161638.png)

4. Отредактируем каждый файл по отдельности для нашей библиотеки:

   1. Зайдем в MyLibrary\\src, изменим название файла с util.st на MyLibrary.st.

   2. Откроем файл MyLibrary.st в любом текстовом редакторе (например, Notepad++: ПКМ по файлу → Редактировать в Notepad++):

      ![4 9 5](https://docs.owen.ru/book_img/2419/161637.png)

      Удалим исходный код библиотеки util и напишем собственную функцию, например результат сложения двух значений типа REAL:

      ![4 9 6](https://docs.owen.ru/book_img/2419/161636.png)

      ```
      FUNCTION Sum : REAL
      VAR_INPUT
          A: REAL;   (*Первое слагаемое*)
          B: REAL;   (*Второе слагаемое*)
      END_VAR
      Sum:=A+B;
      END_FUNCTION
      ```

      Сохраним изменения в файле (Ctrl+S) и закроем редактор.

   3. Откроем файл Fort.toml (так же через Notepad++ для редактирования). Файл Fort.toml - содержит основную информацию о библиотеке. Отредактируем структуру данных под нашу библиотеку и укажем актуальный путь к исходному коду.

      | Поле | Назначение | Старое значение в файле | Новое значение в файле |
      | --- | --- | --- | --- |
      | \[package\] | Секция с основной информацией о библиотеке | — |   |
      | name | Имя библиотеки | util | MyLibrary |
      | version | Версия библиотеки | 1.0.0 | 1.0.0 |
      | authors | Автор/организация-разработчик | IEC | OWEN |
      | description | Краткое описание назначения библиотеки | Утилиты | Утилиты |
      | documentation | Ссылка на документацию библиотеки | [https://ftp.owen.ru/ALTA_IDE/05_Documentation/Libraries/UM_Util_Lib.pdf](https://ftp.owen.ru/ALTA_IDE/05_Documentation/Libraries/UM_Util_Lib.pdf) | - |
      | \[lib\] | Секция с параметрами исходного кода | — |   |
      | path | Путь к файлу исходного кода библиотеки | src/util.st | src/MyLibrary.st |
      |   |   | ![4 9 7](https://docs.owen.ru/book_img/2419/161635.png) | ![4 9 8](https://docs.owen.ru/book_img/2419/161634.png) |

      Сохраним изменения (Ctrl+S) и закроем редактор.

   4. Откроем последний файл README.md — краткую справку markdown (также через NotePad++), удалим описание и напишем краткую информацию о своей библиотеке:

      ![4 9 9](https://docs.owen.ru/book_img/2419/161633.png)

      ```
      Библиотека **MyLibrary** - это пример пользовательской библиотеки

      В состав библиотеки MyLibrary входят:

      ### Математическая операция ###
          Fun Sum - сложение двух переменных типа REAL
      ```

      Сохраним изменения (Ctrl+S) и закроем редактор.

5. Откроем ALTA IDE, создадим новый проект и перейдем в раздел Менеджер библиотек, вкладка Магазин. Здесь можно увидеть, что наша библиотека MyLibrary успешно отобразилась в магазине:

   ![4 1](https://docs.owen.ru/book_img/2419/161632.png)

   Нажмем на карточку нашей библиотеки и увидим краткое описание, которое мы редактировали в файле README.md:

   ![4 9 1](https://docs.owen.ru/book_img/2419/161631.png)

6. Вернемся назад и добавим библиотеку в проект (кнопка Подключить):

   ![4 9 2](https://docs.owen.ru/book_img/2419/161630.png)

7. Создадим простую программу с использованием функции из библиотеки и загрузим на ПЛК:

   ```
   VAR
   rResult:REAL;
   END_VAR
   rResult:=MyLibrary.Sum(10.5, 20.5);
   END_PROGRAM
   ```

   ![4 9 10](https://docs.owen.ru/book_img/2419/161649.png)

   В режиме Онлайн мы видим, что функция из пользовательской библиотеки возвращает корректное значение:

   ![4 9 11](https://docs.owen.ru/book_img/2419/161648.png)

Пользовательская библиотека успешно создана. Теперь можно наполнять ее другими функциями и ФБ, и использовать в своих проектах.

<a id="topic-125501"></a>

## Вопросы по подключению контроллера к ПК

<a id="topic-125502"></a>

### Как подключиться к контроллеру из ?

Подробно этот вопрос рассмотрен в руководстве ALTA IDE. [Быстрый старт](https://docs.owen.ru/product/alta-ide/doc/1288/cel-dokumenta/podklucaem-i-nastraivaem-plk) в разделе Подключаем и настраиваем ПЛК, которое доступно на сайте [**ОВЕН Цифровые решения**](https://owendigital.ru/products/altaide/description) в разделе ALTA IDE/Документация.

Подключить ПЛК110-ALTA к ALTA IDE можно по одному из двух доступных интерфейсов: Ethernet или USB Type-C.

<a id="topic-125503"></a>

### Как узнать IP-адрес контроллера?

По умолчанию интерфейсы контроллера имеют следующие IP-адреса:

**Сетевые настройки интерфейса Ethernet по умолчанию**

| Прибор | Интерфейс | Режим DHCP Client | IP-адрес | Маска подсети | IP-адрес шлюза |
| --- | --- | --- | --- | --- | --- |
| ПЛК110-ALTA | Ethernet | Отключен | 192.168.0.10 | 255.255.0.0 | 192.168.0.1 |

**Сетевые настройки интерфейса USB по умолчанию**

| Прибор | Интерфейс | Режим DHCP Client | IP-адрес | Маска подсети | IP-адрес шлюза |
| --- | --- | --- | --- | --- | --- |
| ПЛК110-ALTA | USB Type-C | Включен | 10.0.6.10 | 255.255.255.248 | - |

Узнать IP-адрес контроллера можно следующим способом: в web-конфигураторе (вкладка Состояние/Обзор или Сеть/Интерфейсы)

![5 2](https://docs.owen.ru/book_img/2419/161647.png)

![5 2 1](https://docs.owen.ru/book_img/2419/161646.png)

<a id="topic-125504"></a>

### Как поменять IP-адрес контроллера?

С помощью web-конфигуратора (вкладка Сеть/Интерфейсы).

![5 3](https://docs.owen.ru/book_img/2419/161645.png)

<a id="topic-125505"></a>

### Что делать, если  не
видит контроллер?

1. Проверить наличие пинга между компьютером и контроллером: Открыть командную строку (Win+R - ввести в поле "cmd" - ОК) и ввести команду “ping \<IP-адрес контроллера>”. В случае наличия связи можно будет увидеть следующий ответ:

   ![5 4 1](https://docs.owen.ru/book_img/2419/161644.png)

2. Если пинга нет, то необходимо проверить корректность сетевых настроек контроллера (в web-конфигураторе) и компьютера (в настройках сетевых адаптеров).

3. Причиной отсутствия связи могут быть также ограничения сети (например, в ней могут быть заблокированы нужные сетевые порты), антивирусное ПО и т. д.

> [!NOTE]
> **Примечание.** Если контроллер подключается к ПК или сетевому оборудованию через интерфейс, прикрепленный к зоне WAN, то в web-конфигураторе на вкладке Сеть/Межсетевой экран/Правила для трафика следует включить правило Allow-ALTA-Connection.

![5 4](https://docs.owen.ru/book_img/2419/161643.png)

<a id="topic-125506"></a>

## Вопросы по созданию проекта в 

<a id="topic-125507"></a>

### Как объявить энергонезависимую переменную?

В ALTA IDE в данный момент поддержаны только retain переменные. При перезаписи проекта на ПЛК значения retain переменных **не сохраняются** (в отличии от PERSISTENT-переменных, которые на данный момент не поддержанны в ALTA IDE).

Retain переменные объявляются

- в области объявления переменных программы между ключевыми словами VAR RETAIN и END_VAR:

  <div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?> <?Pub _font
  FontColor="#54B6D1"?>RETAIN<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>iCycles<?Pub /_font?><?Pub _font
  FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
  ?>UDINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
  ?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
  FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fbTON<?Pub /_font?><?Pub _font
  FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DCDCDC"
  ?>TON<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
  ?>             <?Pub _font FontColor="#5DA35B"?>// таймер задержки включения<?Pub /_font?>
  <?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?></code></td></tr></tbody></table></div></div>

- в списках глобальных переменных:

  <div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR_GLOBAL<?Pub /_font?> <?Pub _font
  FontColor="#54B6D1"?>RETAIN<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>gCounter<?Pub /_font?><?Pub _font
  FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
  ?>DINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
  ?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
  FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>gMode<?Pub /_font?><?Pub _font
  FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
  ?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
  ?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
  FontColor="#E1E1E1"?>;<?Pub /_font?>
  <?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?></code></td></tr></tbody></table></div></div>

**Обратите внимание:** глобальные переменные объявляются **вне** программного объекта. Для объявления глобальной переменной необходимо создать программный объект (программу, функцию или функциональный блок), и объявить список глобальных переменных после завершающей части конструкции объявления компонента (END_PROGRAM, END_FUNCTION или END_FUNCTION_BLOCK).

Объявление retain переменных внутри функции или функционального блока не приведет к созданию энергонезависимой переменной.

Если в программе используется экземпляр функционального блока со свойством retain, то все переменные внутри этого ФБ сохраняются в энергонезависимой памяти.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?> <?Pub _font
FontColor="#54B6D1"?>RETAIN<?Pub /_font?> 
<?Pub _font FontColor="#988DF7"?>fbTON<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TON<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> <?Pub _font FontColor="#5DA35B"?>// таймер задержки включения<?Pub /_font
?>
 <?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?> </code></td></tr></tbody></table></div></div>

Для переменных типа структуры и массивы со свойством retain в энергонезависимую память:

- сохраняется значение каждого поля экземпляра структуры;
- сохраняется значение каждого элемента массива.

<a id="topic-125508"></a>

### Можно ли использовать в проекте PERSISTENT-переменные?

Нет, на данный момент PERSISTENT-переменные в ALTA IDE не поддержаны.

<a id="topic-125509"></a>

### Какой объем энергонезависимой памяти у контроллеров ОВЕН?

ПЛК110–ALTA

| Параметр | Значение |
| --- | --- |
| Размер Retain-памяти (MRAM) | 64 кБ |

Энергонезависимые retain-переменные сохраняются в микросхеме MRAM. Сохранение энергонезависимых переменных выполняется по изменению любой из переменных, но не чаще раза в секунду – при этом вся область энергонезависимой памяти перезаписывается целиком.

Микросхема MRAM включает в себя две дублирующие друг друга области памяти. При старте контроллер проверяет CRC этих областей – если для одной области рассчитанный CRC не соответствует сохраненному (такое может быть, например, при пропадании питания в момент сохранения), то значения энергонезависимых переменных восстанавливаются из второй области.

<a id="topic-125510"></a>

### Как однократно выполнить фрагмент кода при первом запуске программы?

Пример кода:

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>  <?Pub _font
FontColor="#988DF7"?>xIsPlcStarted<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#EBC5DE"?>NOT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>xIsPlcStarted<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font
FontColor="#A4DBD2"?>THEN<?Pub /_font?>
  <?Pub _font FontColor="#5DA35B"?>// операции, однократно выполняемые при первом запуске программы<?Pub /_font?>
  <?Pub _font FontColor="#5DA35B"?>// ...<?Pub /_font?>
  <?Pub _font FontColor="#DCDCDC"?>xIsPlcStarted<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125511"></a>

## Вопросы по загрузке, запуску, отладке проекта

<a id="topic-125512"></a>

### Как загрузить проект в контроллер?

Для загрузки проекта контроллер должен быть [подключен](#topic-125502) к ПК, связь установлена.

Нажмите на кнопку **Старт** на панели инструментов. ALTA IDEсохранит все изменения, выполнит сборку проекта и запишет приложение в прибор.

![7 1](https://docs.owen.ru/book_img/2419/161642.png)

Впоследствии с помощью этой кнопки будет осуществляться запуск приложения на приборе.

В окне вывода отображается информация о компиляции проекта. Если в процессе сборки возникнут ошибки они также будут отражены в окне вывода.

![7 1 2](https://docs.owen.ru/book_img/2419/161641.png)

Успешная загрузка проекта в прибор:

![7 1 3](https://docs.owen.ru/book_img/2419/161640.png)

<a id="topic-125513"></a>

### Как удалить проект из контроллера?

Удалить проект из контроллера можно с помощью web-конфигуратора:

ПЛК/Управление приложениями → Удалить

![7 2](https://docs.owen.ru/book_img/2419/161669.png)

<a id="topic-125514"></a>

### Как выгрузить проект из контроллера?

В данный момент выгрузка проекта из контроллера в ALTA IDE не поддержана.

<a id="topic-125515"></a>

### Почему написанный код не выполняется?

В значительном числе случаев такое может происходить, если программа не привязана к задаче – то есть программа находится в контроллере, но не вызывается на исполнение.

Для решения проблемы следует добавить в компонент **Менеджер задач** циклическую задачу, нажав ПКМ → Добавить CYCLE_TASK

![7 5](https://docs.owen.ru/book_img/2419/161667.png)

И привязать необходимую программу к циклической задаче (через контекстное меню ПКМ или используя drag&drop\*, предварительно настроив ее по необходимости (приоритет, период вызова и т.д.).

![7 5 1](https://docs.owen.ru/book_img/2419/161666.png)

![7 5 2](https://docs.owen.ru/book_img/2419/161665.png)

После этого можно [загружать проект](#topic-125512) в ПЛК, программа будет вызываться циклической задачей на исполнение.

\*drag&drop - это способ взаимодействия с интерфейсом, при котором пользователь захватывает элемент (программу в нашем случае), перемещает его в другое место (циклическую задачу) и отпускает кнопку мыши или палец на сенсорном экране. После этого компонент программы привязывается к компоненту задачи.

<a id="topic-125516"></a>

### Как отладить программу?

Удобным средством отладки программ является использование **точек останова (breakpoints)** – меток в программе, по достижению которых программа останавливается. Точки останова можно поставить только на определенных строках – рядом с номерами таких строк расположены серые метки. После установки точка останова принимает красный цвет.

![7 6](https://docs.owen.ru/book_img/2419/161664.png)

Более подробно с инструментом отладки можно ознакомиться в документе [**РП ALTA IDE в п. 5.5 Режим онлайн и отладка программы**](https://docs.owen.ru/product/alta-ide/doc/1287/rabota-s-ustrojstvom/otladka-programmy)

<a id="topic-125517"></a>

### Что делать при возникновении ошибок компиляции?

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

- Подсветка и ошибка программного объекта programm_1;
- Подсветка ошибки в коде;
- Вывод компилятора.

![7 7](https://docs.owen.ru/book_img/2419/161663.png)

<a id="topic-125518"></a>

### Как изменить имя переменной во всем программном объекте (программе,
ФБ, функции)?

Чтобы изменить имя переменной на другое во всем программном объекте, необходимо вызвать через стандартную горячую клавишу Ctrl + F инструмент поиска, раскрыть список рядом со строкой поиска.

![7 8](https://docs.owen.ru/book_img/2419/161662.png)

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

![7 8 1](https://docs.owen.ru/book_img/2419/161661.png)

После нажатия - все переменные поменяют свое имя, в примере rValue → rValue1.

![7 8 2](https://docs.owen.ru/book_img/2419/161660.png)

Так же возможна одиночная замена выбранного элемента, более подробно с механизмом поиска и замены можете ознакомиться в [**РП ALTA IDE**](https://docs.owen.ru/product/alta-ide/doc/1287/razrabotka-proekta-i-poradok-raboty/razrabotka-programmy/programmnye-bloki/redaktor-funkciifunkcionalnogo-blokap).

<a id="topic-125519"></a>

## Вопросы по памяти и архивации

<a id="topic-125520"></a>

### Для чего используется внутренняя память контроллера? Какой
объем внутренней памяти доступен пользователю?

Внутренняя память контроллера подразделяется на оперативную память и flash-память. Определенный объем памяти занимает **ОС Linux** и системные компоненты. Остальной объем доступен пользователю.

| Модель прибора | Объем оперативной памяти, Мб | Объем flash-памяти, Гб |
| --- | --- | --- |
| ПЛК110–ALTA | 256 | 8 (еММС) |

<a id="topic-125521"></a>

### Какие USB- и SD- накопители можно подключать к контроллеру

Накопители должны соответствовать следующим требованиям:

1. Поддерживаемый стиль разделов – [**MBR**](https://ru.wikipedia.org/wiki/Главная_загрузочная_запись) ([**GPT**](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID) не поддерживается). Методика определения стиля разделов доступна по [**ссылке**](https://remontka.pro/gpt-or-mbr-disk/).
2. Рекомендуется использовать накопители с одним [**разделом**](https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0).
3. Поддерживаемые файловые системы – [**FAT16/FAT32**](https://ru.wikipedia.org/wiki/FAT), [**NTFS**](https://ru.wikipedia.org/wiki/NTFS) (только чтение), [**ext4**](https://ru.wikipedia.org/wiki/Ext4). Обновление прошивки/проекта возможно только при использовании накопителя с файловой системой [**FAT16/FAT32**](https://ru.wikipedia.org/wiki/FAT).
4. Перед началом работы рекомендуется отформатировать накопитель с помощью утилиты **HP USB Disk Storage Format Tool**

<a id="topic-125522"></a>

## Вопросы по настройке обмена с другими устройствами

<a id="topic-125523"></a>

### Какие протоколы поддерживают контроллеры ОВЕН со средой ?

Контроллеры ОВЕН со средой исполнения ALTA IDE поддерживают протоколы Modbus RTU (Master/Slave), Modbus ASCII (Master/Slave), Modbus TCP (Master/Slave).

У пользователя так же имеется возможность работы с COM-портами и сокетами ПЛК, при помощи библиотек SysLibCom и SysLibSocket соответственно.

> [!NOTE]
> **Примечание.** В режиме Modbus UART Slave есть функция автодетектирования протокола, то есть не требуется дополнительно выбирать протокол передачи данных RTU/ASCII.

<a id="topic-125524"></a>

### Как соотносятся номера COM-портов контроллера с номерами портов
в ?

| Порт в ALTA IDE | Физический порт ПЛК110–ALTA |
| --- | --- |
| UART1 | RS-485-1 |
| UART2 | RS-485-2 |
| UART4 | RS-232 |

<a id="topic-125525"></a>

## Вопросы по системному времени

<a id="topic-125526"></a>

### Как считать системное время контроллера в коде программы? Как
настроить системное время в 

Считать системное время для использования в коде программы можно в узле Device (таргет-файл) в разделе Периферия → Часы.

![10 1](https://docs.owen.ru/book_img/2419/161699.png)

Изменить и настроить время в ПЛК можно с помощью web-конфигуратора в разделе Система → Время.

![10 1 1](https://docs.owen.ru/book_img/2419/161698.png)

<a id="topic-125527"></a>

### Как настроить синхронизацию времени по NTP?

Включить синхронизацию системного времени контроллера по протоколу NTP можно в web-конфигураторе на вкладке Система/Время. Для этого следует установить галочку Включить NTP-клиент и, в случае необходимости, указать адреса дополнительных NTP-серверов (например, локального NTP-сервера).

Для проверки синхронизации можно использовать кнопку **Синхронизировать с NTP-сервером**. В случае установки галочки **Включить NTP-сервер** на контроллере будет запущен NTP-сервер – это позволит другим устройствам синхронизировать свое время с временем контроллера.

см. рисунок 10.2

<a id="topic-125528"></a>

### Что делать, если системное время постоянно сбивается?

Если системное время постоянно сбивается, то, вероятнее всего, разряжен элемент питания. Следует заменить элемент питания согласно инструкции, приведенной в руководстве по эксплуатации. В качестве элемента питания RTC в ПЛК110-ALTA используется CR2032T.

Если проблема сохранится – следует обратиться в техническую поддержку компании ОВЕН Цифровые решения [support@owendigital.ru](mailto:support@owendigital.ru).

<a id="topic-125529"></a>

## Остальные вопросы

<a id="topic-125530"></a>

### Как перезагрузить контроллер из кода программы?

Следует привязать переменную типа BOOL к каналу Команда Reboot узла Device (таргет-файла). По переднему фронту переменной контроллер будет перезагружен с корректным завершением всех запущенных процессов.

![11 1](https://docs.owen.ru/book_img/2419/161696.png)

<a id="topic-125531"></a>

### Как организовать терминальное подключение к контроллеру (SSH
и т. д.)?

Для доступа к терминалу используется логин **root**, пароль по умолчанию – **owen**. Пароль совпадает с паролем web-конфигуратора и может быть изменен. Доступно несколько вариантов подключения:

1. Через web-конфигуратор

   В web-конфигураторе следует перейти на вкладку **Система/Терминал** и нажать кнопку **Открыть терминал** в отдельном окне.

   ![11 2](https://docs.owen.ru/book_img/2419/161695.png)

   В появившемся окне браузера следует раскрыть вкладку **Дополнительные** и нажать кнопку **Перейти на сайт**.

   После этого можно начать работу в открывшемся окне или вернуться на страницу web-конфигуратора и обновить ее – на ней начнет отображаться терминал.

   ![11 2 5](https://docs.owen.ru/book_img/2419/161694.png)

2. Через SSH-клиент (например, Putty)

   В SSH-клиенте следует указать IP-адрес контроллера, тип соединения – SSH, порт по умолчанию – 22. Номер порта может быть изменен в web-конфигураторе на вкладке **Система/Управление/Доступ по SSH**.

   ![7 2 1](https://docs.owen.ru/book_img/2419/161693.png)

   *Настройки подключения в программе Putty (USB Type-C)*

   Если появится окно **Предупреждение безопасности**, то следует нажать ОК.

3. Через интерфейс RS-232 (Debug).

   В web-конфигураторе на вкладке **Система/Управление/Последовательный порт** следует установить галочку **Системная консоль RS232** и нажать кнопку **Сохранить**. Для применения настроек следует перезагрузить контроллер (**Система/Перезагрузка**)

   ![11 2 2](https://docs.owen.ru/book_img/2419/161692.png)

   Затем следует подключить контроллер к ПК через последовательный порт, который может работать в режиме Debug.

   > **Примечание.** Последовательный порт в режиме Debug не может использоваться для обмена с другими устройствами.

   > **Примечание.** Для подключения к Debug-порту контроллера ПЛК110-ALTA нужно использовать кабель КС14.

   В настройках Putty следует выбрать тип соединения Serial, скорость – 115200 и указать номер COM-порта компьютера (отображается в Диспетчере устройств):

   ![11 2 3](https://docs.owen.ru/book_img/2419/161691.png)

   *Номер COM-порта ПК в Диспетчере устройств*

   ![11 2 4](https://docs.owen.ru/book_img/2419/161690.png)

   *Настройки подключения в программе Putty (с использованием debug порта)*

   > **Примечание.** При подключении к терминалу через RS-232 Debug можно увидеть лог загрузки контроллера при его перезагрузке. Это лог может запросить инженер техподдержки в случае изучения специфических проблем с контроллером.

<a id="topic-125532"></a>

### Как подключиться к файловой системе контроллера?

Для подключения к файловой системе контроллера рекомендуется использовать утилиту **WinSCP**. В настройках подключения следует выбрать тип соединения **SCP** и указать IP-адрес контроллера. Номер порта оставить по умолчанию – **22**, указать имя пользователя – **root**, пароль по умолчанию – **owen**. Номер порта может быть изменен в web-конфигураторе на вкладке **Система/Управление/Доступ по SSH**, а пароль – на вкладке **Система/Управление.**

![11 3](https://docs.owen.ru/book_img/2419/161709.png)

*Настройки подключения в программе WinSCP*

В появившемся окне аутентификации следует нажать **ОК**.

В случае появления ошибки «**Не могу сменить каталог на ‘/’**» следует нажать **ОК**.

<a id="topic-125533"></a>

### Какие сетевые порты используются контроллером?

Список используемых сетевых портов контроллера приведен в таблице ниже:

**Cписок используемых сетевых портов**

|   |   |   |
| --- | --- | --- |
| Сервис/Ппротокол | Порт по умолчанию | Где изменить |
| ALTA Runtime | 8383 (TCP) | Web-конфигуратор, вкладка **ПЛК/Настройки/Порт подключения** |
| Поиск устройства | 10102 (UDP) | Web-конфигуратор, вкладка **ПЛК/Настройки/Порт сканирования** |
| Web-конфигуратор (HTTP) | 80 (TCP) | Web-конфигуратор, вкладка<br>**Службы/HTTP/HTTPS** |
| Web-конфигуратор (HTTPS) | 443 (TCP) | Web-конфигуратор, вкладка<br>**Службы/HTTP/HTTPS** |
| Веб-терминал | 4200 (TCP) | Web-конфигуратор, вкладка **Система/Терминал/Настройки** |
| Modbus TCP | 502 (TCP) | ALTA IDE/TCP Server/Порт TCP |
| NTP | 123 (UDP) | Изменение не поддерживается |
| SSH | 22 (TCP) | Web-конфигуратор, вкладка **Система/Управление/Доступ по SSH** |
| FTP | 21 (TCP) | Web-конфигуратор, вкладка **Службы/FTP** |

<a id="topic-125534"></a>

### Как подключить контроллер к VPN?

Контроллеры ОВЕН поддерживают протоколы OpenVPN и WireGuard. Для использования протоколов следует в web-конфигураторе создать соответствующие виртуальные сетевые интерфейсы.

Подробная инструкция приведена в документе Описание Web-интерфейса OpenWrt, которое доступно на сайте ОВЕН на странице соответствующего контроллера.

<a id="topic-125535"></a>

### Как реализовать ПИД-регулирование в программе контроллера?

Если автонастройка регулятора не требуется, то можно использовать блоки регуляторов из библиотеки Util.

- FB PID - PID регулятор;
- FB PID_FIXCYCLE - PID регулятор, для которого время цикла можно задавать вручную.
