Вы находитесь на странице: 1из 14

Разработка управляющих программ для контроллеров Орион

Разработка управляющих программ


для контроллеров Орион

Версия документа 1.0

Оглавление
1. Средства разработки управляющих программ................................................................................2

2. Проект нижнего уровня.....................................................................................................................2

2.1. Проект нижнего уровня на диске.............................................................................................2

2.2. Файлы проекта EWARM на диске..............................................................................................3

2.3. Проект нижнего уровня в среде разработки EWARM..............................................................4

3. Создание и корректировка проекта нижнего уровня.....................................................................5

3.1. Обновление системного ПО......................................................................................................5

3.2. Добавление нового УСО............................................................................................................6

3.3. Добавление нового абонента...................................................................................................9

3.4. Создание нового проекта станции............................................................................................9

3.5. Удаление абонентов и УСО........................................................................................................9

4. Компиляция управляющих программ..............................................................................................9

5. Запись загрузчика и управляющих программ в контроллер........................................................10

5.1. Запись загрузчика....................................................................................................................11

5.2. Запись управляющих программ..............................................................................................11

Приложение 1: Обновление старых версий системного ПО................................................................13

Приложение 2: Индикация работы управляющей программы и загрузчика......................................14

1
Разработка управляющих программ для контроллеров Орион

1. Средства разработки управляющих программ


Для создания управляющих программ контроллеров Орион необходимо следующее программное
обеспечение:

 Среда разработки IAR Embedded Workbench for ARM (EWARM). В данном руководстве
описывается использование EWARM версии 6.40 (подходит для Windows XP/Vista/7) или
6.50 (также подходит для Windows 8).

 Системное ПО для контроллеров Орион, на основе которого работает управляющая


программа. Системное ПО находится в папке Орион\system.

 Конфигуратор проектов САУ Юникон для контроллеров Орион. Находится в папке


Орион\Unicon5M. Как правило, каждая версия конфигуратора Юникон подходит только
для определенной версии системного ПО. Поэтому всегда рекомендуется использовать
последние версии Юникона и системного ПО.

Для загрузки управляющих программ по сети Ethernet, просмотра версии работающих программ и
их состояния, а также для выполнения других функций предназначена программа Сателлит,
которая находится в папке Орион\Satellite.

2. Проект нижнего уровня


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

2.1. Проект нижнего уровня на диске


В проект нижнего уровня на диске входят несколько каталогов, имеющие следующую структуру:

1 1 – Папка проекта станции.


2
3 2 – Папка проекта нижнего уровня (MCU – Microcontroller Unit).
4 3 – Дополнительные папки проекта нижнего уровня, вне следующих
групп.
4 – Папки абонентов и УСО. Каждая папка УСО содержит подпапку Regul
для программы регулирования.
5 – Папка с проектом EWARM и скомпилированными прошивками.

5 6 – Папка системного ПО.


6
1 – Папка проекта станции.
Рисунок 1. Пример проекта
2 – Папка проектанижнего уровня(MCU
нижнего уровня на диске
– Microcontroller Unit).
3 – Дополнительные папки проекта нижнего уровня, вне следующих
2
групп.
4 – Папки абонентов и УСО. Каждая папка УСО может содержать
подпапку Regul для программы регулирования.
5 – Папка с проектом EWARM и скомпилированными прошивками.
6 – Папка системного ПО.
1 – Папка проекта станции.
2 – Папка проекта нижнего уровня (MCU – Microcontroller Unit).
Разработка управляющих программ для контроллеров Орион
3 – Дополнительные папки проекта нижнего уровня, вне следующих
Проект нижнего уровня всегда находится
групп. в папке MCU и всегда содержит каталоги Project и
system. В Project находятся файлы проекта EWARM, необходимые для работы с проектом в среде
4 – Папки абонентов и УСО. Каждая папка УСО может содержать
EWARM. В system – системное ПО, на основе которого работает управляющая программа.
подпапку Regul для программы регулирования.
Остальные каталоги меняются от5 –проекта
Папка с кпроектом
проекту.EWARM
В частности, в MCU находится
и скомпилированными набор папок с
прошивками.
исходными файлами, соответствующим
6 – Папкаабонентам и УСО (№4 на рис. 1). Некоторые файлы в этих
системного ПО.
папках могут оказаться одинаковыми, однако описываемая структура предполагает, что для
каждого УСО создается отдельный каталог.

В случае нескольких абонентов удобнее делать папки УСО внутри папок абонентов, к которым они
принадлежат (см. рис. 1). Более того, если в разных абонентах имеются одноименные УСО
(например, в случае нескольких абонентов одного типа), такая структура файлов является
обязательной! В случае одного абонента папки УСО могут располагаться непосредственно в
папке MCU.

Кроме того, в MCU могут находиться другие папки, например, относящиеся ко всем УСО (№3 на
рис. 1).

2.2. Файлы проекта EWARM на диске


Для организации проекта нижнего уровня рекомендуется использовать определенную структуру
файлов проекта и рабочей области EWARM. Эти файлы на диске находятся в папке Project (рис. 2).

Файл с расширением *.eww описывает проект станции, включающий один или несколько
абонентов. В терминах EWARM этот файл называется рабочей областью (workspace).

Одноименные файлы с расширениями *.ewp и *.ewd описывают один абонент (не тип
абонента). В терминах EWARM файл ewp называется проектом, часть настроек которого (а
именно, настройки отладчика) хранятся в файле ewd.

Абоненты включают одно или несколько УСО (не типов УСО), каждому из которых сопоставляется
свой набор файлов с исходным кодом. УСО в терминах EWARM описываются в конфигурациях
проекта. Эти конфигурации не имеют отдельных файлов на диске и включаются в файл ewp.

В случае одного абонента или использования упрощенной структуры эти файлы могут называться:
Project.eww, Project.ewp, Project.ewd. Но для удобства файл eww следует называть по
наименованию станции, а каждую пару “ewp, ewd” – по наименованию абонента. Причем эти
названия могут не совпадать с именами папок на диске, но во избежание путаницы их следует
делать такими же или похожими.

На рис. 2 изображена папка Project для проекта, приведенного на рис. 1. Часть файлов и
каталогов, находящихся в этой папке, более подробно описывается в других разделах.

3
Разработка управляющих программ для контроллеров Орион

1
2

3
4

1 – Служебные файлы EWARM.

2 – Папки, содержащие скомпилированные управляющие программы в виде прошивок для


контроллеров. Каждая прошивка сохраняется в соответствующей папке УСО.

3 – Утилита для уменьшения размера проекта на диске после его компиляции.

4 – Запускаемый файл проекта нижнего уровня; в терминах EWARM – рабочая область.

5 – Описания структуры исходных файлов абонентов; в терминах EWARM – проекты.

Рисунок 2. Пример папки Project на диске

2.3. Проект нижнего уровня в среде разработки EWARM


Чтобы открыть проект нижнего уровня в среде разработки EWARM запустите файл *.eww,
находящийся в папке MCU\Project.

При выполнении условий, описанных в п. 2.2, название станции выводится в заголовке главного
окна EWARM. Структура проекта отражается в области Workspace. Если вы не видите этой области
или закрыли ее, выберите в главном меню View – Workspace. На рис. 3 изображена область
Workspace для проекта, приведенного на рис. 1 и 2.

4
Разработка управляющих программ для контроллеров Орион

Структура файлов и папок в центре области Workspace


называется деревом проекта.

Внизу области Workspace находится кнопка Overview,


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

Вверху области Workspace находится выпадающий


список с перечнем УСО по всем абонентам (если нажата
кнопка Overview) или по текущему (если нажата кнопка
абонента). Этот список называется списком
конфигураций в терминах EWARM или списком УСО в
терминах проекта станции.

Символом обозначается узел абонента. В структуре


Overview название активного абонента выделено
полужирным шрифтом (ГПА на рис. 3). Через тире в той
же строчке, а также как текущий элемент в списке Рисунок 3. Пример проекта
конфигураций указывается актвиное УСО (ГТД1 на нижнего уровня в IAR EWARM
рис. 3).

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

Папка System содержит системное ПО и всегда является активной.

Папка Output является служебной. После компиляции программы она будет содержать файл bin с
прошивкой для контроллера (подробнее см. раздел 4) и служебные файлы. При переключении
УСО содержимое в папке Output в дереве проекта автоматически меняется на соответствующее
данному УСО.

3. Создание и корректировка проекта нижнего уровня

3.1. Обновление системного ПО


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

Версия системного ПО указана в файле MCU\system\version.h. Версию используемого ПО в


работающей программе можно узнать с помощью приложения Сателлит.

5
Разработка управляющих программ для контроллеров Орион

Если файл version.h отсутствует, значит данное системное ПО младше версии 1.0.0. Программы,
собранные на таком ПО, Сателлит не обнаруживает. В этих случаях процедура обновления
увеличивается на несколько шагов, которые вынесены в Приложение 1. Иначе выполните шаги в
соответствии со следующей инструкцией.

1. Как правило, для определенной версии системного ПО необходима соответствующая версия


конфигуратора Юникон, иначе при компиляции программы могут возникнуть ошибки.
Поэтому откройте базу данных проекта в последней версии Юникон и пересоберите файлы
нижнего уровня. Результат конвертации поместите в папки УСО проекта нижнего уровня.

2. Откройте проект нижнего уровня в EWARM и добавьте в дерево проекта сконвертированные


файлы УСО. Для этого выделите в Проводнике или другом файловом менеджере все файлы в
папке УСО за исключением каталогов и перетащите на соответствующую папку УСО в дереве
проекта в EWARM. (Либо нажмите правой клавишей на папке УСО в дереве проекта, выберите
Add – Add Files, найдите папку УСО на диске и выберите все находящиеся в ней файлы за
исключением каталогов.) Повторите данный пункт для каждой имеющейся конфигурации УСО.

3. Обновите системное ПО:

3.1. В проекте нижнего уровня на диске удалите папку MCU\system и поместите в каталог
MCU папку system с обновленным системным ПО.

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

 В EWARM удалите в дереве проекта папку System (нажмите на ней правой клавишей и
выберите Remove).

 Выберите в главном меню Project – Import File List (если строка неактивна, установите
фокус на дереве проекта, щелкнув в любой его части левой кнопкой мыши). Если появится
всплывающее информационное окно, нажмите ОК.

 В открывшемся диалоге выбора файла найдите файл MCU\system\Project\System.ewp.

 Удалите конфигурацию System (выберите в главном меню Project – Edit Configurations,


выделите в появившемся окне строку System и нажмите Remove).

4. Пересоберите все УСО, как описывается в разделе 4, и убедитесь в отсутствии ошибок.

3.2. Добавление нового УСО


1. Сконвертируйте файлы нижнего уровня в Юниконе и поместите папку с этими файлами в
рабочий каталог MCU.
Примечание: если УСО не имеет обмена с АИС, то для него должна быть снята галочка «Обмен
между АИС» в таблице «УСО» на вкладке «Абоненты и УСО» одноименного пункта в меню
«Проект» Юникона. В противном случае при сборке программы данного УСО возникнут
ошибки.
6
Разработка управляющих программ для контроллеров Орион

2. Добавьте программы управления и регулирования в рабочую папку УСО на диске, скопировав


в нее содержимое каталога MCU\system\Algorithm с шаблонами программ, либо готовые
программы, если есть.

3. Откройте проект нижнего уровня в EWARM и создайте новую конфигурацию:

3.1. В главном меню EWARM выберите Project – Edit Configurations. В появившемся окне
нажмите кнопку “New… “.

3.2. В следующем окне (рис. 4) в поле Name укажите имя создаваемой конфигурации УСО,
которое, как правило, должно совпадать с названием УСО. Однако в некоторых проектах
может применяться другой шаблон имени УСО.

3.3. В поле Based on configuration выберите за основу шаблонную конфигурацию «УСО», если
есть, в противном случае: любую существующую конфигурацию (не <None>).

3.4. Также проверьте следующие поля – Tool chain: ARM, Factory settings: Debug. Затем два
раза нажмите ОК.

Рисунок 4. Настройки конфигурации при создании УСО

4. Данный пункт нужно выполнить, только если в п. 3.3 вы выбрали за основу не шаблонную
конфигурацию. В этом случае необходимо исключить из компиляции активную папку УСО
исходной конфигурации. Например, за основу вы взяли УСО «ГТД1». При активной
конфигурации нового УСО нажмите правой кнопкой мыши на включенной в компиляцию
папке с исходными файлами ГТД1, и выберите “Options…”. В появившемся окне установите
самую верхнюю галочку Exclude from build и нажмите ОК. Папка должна стать неактивной .

5. Добавьте в дерево проекта новые папки (группы):


Нажмите правой кнопкой мыши на узле абонента , в который вы добавляете УСО, выберите
Add, а затем “Add Group…”. Введите название УСО, совпадающее с тем, которое вы указывали
в п. 3.2 или с названием папки УСО на диске, и нажмите ОК. Аналогичным образом добавьте
папку для программы регулирования с названием Regul – но не в корень проекта, а в папку
нового УСО.

7
Разработка управляющих программ для контроллеров Орион

6. Добавьте созданные в п. 1 файлы в проект:


Выделите в Проводнике или другом файловом менеджере все файлы в папке УСО за
исключением каталогов и перетащите на соответствующую папку УСО в дереве проекта в
EWARM. (Либо нажмите правой клавишей на папке УСО в дереве проекта, выберите Add – Add
Files, найдите папку УСО на диске и выберите все находящиеся в ней файлы за исключением
каталогов.) Отдельно добавьте в папку Regul в дереве проекта файл RegulProgram.cpp и
остальные файлы программы регулирования, если есть.

7. Скорректируйте заголовочный путь к папке УСО:

7.1. При активной конфигурации нового УСО нажмите правой кнопкой мыши на узле
абонента , и щелкните “Options…”. В появившемся окне выберите C/C++ Compiler –
Preprocessor. В конце поля Additional include directories добавьте строчки в следующем
формате:
$PROJ_DIR$\..\Абонент\УСО
$PROJ_DIR$\..\Абонент\УСО\Regul
где Абонент\УСО – путь к сконвертированным файлам нового УСО относительно каталога
MCU (однако если УСО не структурированы по абонентам, то папка абонента будет
отсутствовать). Аналогичным образом вы можете добавить пути к другим папкам, если
необходимо.

7.2. Данный подпункт нужно выполнить, только если в п. 3.3 вы выбрали за основу не
шаблонную конфигурацию. В этом случае необходимо удалить пути, относящиеся к
исходному УСО. Например, если вы за основу взяли УСО «ГТД1», то нужно удалить все
строчки, содержащие название папки с исходными файлами ГТД1.

Не меняйте других предустановленных настроек в окне Options!

Важно не забывать выполнять этот пункт, т.к. если его пропустить, программа
может успешно скомпилироваться, но будет либо приводить к остановке контроллера,
либо работать некорректно!

8. Исключите из других конфигураций папку нового УСО в дереве проекта. Для этого
последовательно выберите все конфигурации, кроме созданной, и исключите из их
компиляции папку нового УСО, как описано в п. 4.

9. Вернитесь в новую конфигурацию и пересоберите УСО, как описывается в разделе 4.

10. Если новое УСО включается в обмен между АИС, обновите файлы обмена АИС и исходные
файлы, созданные Юниконом, в папках соответствующих УСО и также пересоберите их
программы.

3.3. Добавление нового абонента


1. Откройте папку шаблонного проекта Орион\Template\Project и скопируйте из нее в рабочий
проект файлы Абонент.ewd и Абонент.ewp, переименовав их по названию нового абонента.

8
Разработка управляющих программ для контроллеров Орион

2. Откройте проект нижнего уровня в EWARM и выберите в главном меню Project – Add Existing
Project. В появившемся окне найдите ваш файл <Название абонента>.ewp.

3. Добавляйте в абонент устройства связи с объектом, как описывается в подразделе 3.2.

3.4. Создание нового проекта станции


Для создания нового проекта станции воспользуйтесь пустым шаблонным проектом, который
находится в папке Орион\Template\Project. Переименуйте файл Станция.eww по названию
станции. Создайте абоненты, как указано в разделе 3.3, добавляйте в них УСО, как описывается в
разделе 3.2. Добавьте последнюю версию системного ПО в папку MCU и при необходимости
выполните п. 3.2 раздела 3.1.

Другой способ создания проекта станции: выбрать в главном меню EWARM File – New – Workspace,
добавить по крайней мере один абонент и сохранить рабочую область под желаемым именем.

3.5. Удаление абонентов и УСО


Для удаления УСО в EWARM сначала сделайте активной любую конфигурацию, отличную от
удаляемой. Затем выберите в главном меню EWARM: Project – Edit Configurations. В появившемся
окне в списке выберите удаляемый УСО и нажмите кнопку Remove, затем подтвердите выбор.
Кроме этого, возможно, вы захотите удалить папку УСО с диска (по крайней мере отметьте, что она
не используется) и в дереве проекта. Чтобы удалить ее из дерева, нажмите на папке правой
кнопкой мыши, щелкните Remove и подтвердите выбор.

Для удаления абонента в EWARM нажмите на его узле правой кнопкой, щелкните Remove и
подтвердите выбор. При этом автоматически удалятся УСО данного абонента, но на диске их при
необходимости нужно, опять же, удалить вручную.

4. Компиляция управляющих программ


Компиляция, или сборка, – это процесс преобразования исходных файлов (исходного кода) в
исполняемую программу. Процесс компиляции состоит из двух этапов. На первом этапе
выполняется проверка текста программы на отсутствие ошибок, на втором — генерируется
исполняемая программа. При компиляции управляющих программ для контроллеров Орион
программа создается в виде бинарного файла прошивки с расширением *.bin и может запускаться
только внутри контроллера.

Для проверки ошибок и компиляции определенного УСО выберите его в списке конфигураций и
щелкните в главном меню Project – Rebuild All. В случае успеха это действие присвоит созданной
прошивке текущие дату и время, определяющие ее версию, которая будет отображаться в
Сателлите. При использовании других команд сборки (компиляции) версия прошивки не
обновится!

После успешной компиляции файл прошивки попадает в следующую папку на диске:

9
Разработка управляющих программ для контроллеров Орион

MCU\Project\<Название УСО>\Exe\<Название абонента>.bin

Следует отметить, что в случае компиляции одноименных УСО в разных абонентах их прошивки
попадут в одну папку <Название УСО>\Exe, а имена прошивок будут совпадать с названиями
абонентов.

Папку с прошивкой можно открыть из EWARM, щелкнув правой кнопкой мыши на строчке
Project.out в дереве проекта и выбрав Open Containing Folder. При этом в списке конфигураций
должен быть выбран тот УСО, прошивку которого вы хотите открыть. Узел Project.out находится в
дереве проекта по следующему пути:

<Название абонента> – Output – Project.out

После корректировки нескольких УСО или обновления системного ПО удобно производить


групповую компиляцию. Чтобы ее настроить, щелкните в главном меню Project – Batch Build или
нажмите клавишу F8. В появившемся окне Batch Build нажмите кнопку “New…”, в поле Name
задайте имя группы компиляции, например, «Собрать все» или «Собрать ГПА», и переместите
подходящие конфигурации из поля Available configurations в Configurations to build. Затем нажмите
ОК.

Чтобы использовать групповую компиляцию откройте окно Batch Build, как указано выше,
выберите подходящую группу в списке Batches (если вы захотите проверить, что в нее входит,
нажмите “Edit…”) и нажмите Make или, для завершающего этапа корректировки, – Build All.

Перед сдачей проекта в архив или пересылкой уменьшите его размер. Для этого воспользуйтесь
утилитой Clean_MCU.bat, которая, как правило, находится, в папке MCU\Project (рис. 2). Если она
отсутствует, скопируйте ее в эту папку из шаблонного проекта. Не пользуйтесь командой Clean в
EWARM, т.к. она оставляет «тяжелые» объектные файлы и удаляет файлы прошивок.

5. Запись загрузчика и управляющих программ в


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

Также загрузчик при каждом включении контроллера проверяет целостность программы (путем
контроля CRC) и, если она будет нарушена, не запустит программу.

Проверить наличие загрузчика можно в программе Сателлит, соединив контроллер к


компьютером по сети Ethernet. Если контроллер не подключен к программатору и отображается в
Сателлите, значит в нем уже установлен загрузчик.

5.1. Запись загрузчика


Скомпилированный файл загрузчика находится в папке:

10
Разработка управляющих программ для контроллеров Орион

Орион\Loader\Loader_vX.bin, где X – версия загрузчика.

Для его записи в контроллер необходим программатор ST-LINK/V2 или аналогичный и программа
STM32 ST-LINK Utility, установщик которой находится в папке:

Орион\Tools\STM32 ST-LINK Utility_vX.exe, где X – версия утилиты.

Инсталлятор STM32 ST-LINK Utility включает драйвер программатора, который также нужно
установить.

Для записи загрузчика в контроллер выполните следующие действия:

1. Подключите программатор к компьютеру и к контроллеру. Некоторые программаторы во


избежание выхода из строя необходимо подключать и отключать при выключенном питании
контроллера.

2. Запустите программу STM32 ST-LINK Utility и соединитесь с контроллером, выбрав в главном


меню Target – Connect.

3. Сотрите флэш-память контроллера, выбрав в главном меню Target – Erase Chip (Ctrl+E).

4. Выберите File – Open file и укажите путь к файлу загрузчика на диске.

5. Запишите загрузчик в память контроллера, выбрав в главном меню Target – Program & Verify
(Ctrl+P) и нажав кнопку Start в появившемся окне.

6. После окончания прошивки, проверьте, что в логе программы появилась строка


«Verification...OK». Также в случае успеха на контроллере станет мигать второй индикатор
(описание индикации см. в Приложении 2).

5.2. Запись управляющих программ


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

Первый способ: загрузка программы по сети Ethernet с помощью программы Сателлит, которая
находится в папке Орион\Satellite. Программа поддерживает групповую прошивку контроллеров
и другие функции. Подробно об использовании этой программы см. ее встроенную справку,
которая также доступна в файле:

11
Разработка управляющих программ для контроллеров Орион

Орион\Satellite\Справка программы Сателлит.pdf

Второй способ: запись программ с помощью программатора ST-LINK/V2 или аналогичного. Для его
использования установите драйвер вместе с программой STM32 ST-LINK Utility (как описано в
разделе 5.1), или отдельно, запустив файл:

Орион\Tools\ST-LINK_V2_usbdriver\stlink_winusb_install.bat

Чтобы загрузить собранную программу в контроллер через программатор выберите в главном


меню EWARM: Project – Download and Debug или нажмите сочетание клавиш Ctrl + D. Этот способ
позволяет работать с программой в режиме отладки с использованием точек останова, слежением
за состояниями переменных и пр.

С использованием программатора работа управляющей программы возможна и без загрузчика,


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

Записывать программу через программатор или запускать ее в режиме отладки допускается и


после записи загрузчика. Загрузчик при этом не будет испорчен, так как он находится в другой
области памяти контроллера.

12
Разработка управляющих программ для контроллеров Орион

Приложение 1: Обновление старых версий системного ПО


Если версия системного ПО в проекте младше 1.0.0, то при обновлении ПО, кроме действий,
описанных в разделе 3.1, нужно выполнить следующие пункты:

1. Если в проекте введены сигналы диагностики связи с АИС, удалите их, потому что Юникон
должен создавать их автоматически. Для этого:

1.1. Удалите во всех УСО пользовательский неавтоформируемый блок LST. Если для какого-то
УСО данный блок отсутствует, следующие подпункты для него выполнять не нужно.

1.2. Поскольку некоторые алгоритмические имена автоформируемых сигналов стали


другими, перепривяжите данные имена в мнемосхемах. Это относится к сигналам
ошибки конфигурирования (Conf_Error_УСО → crcError_УСО) и обрыва порта (УСО_P1_Brk
→ breakP1; УСО_P2_Brk → breakP2).

1.3. Удалите из LogicalProgram.cpp всех УСО блоки кода, наподобие этих:

#include "ais.h"
#define GTD1 1
#define GTD2 2
#define N1 3

// Неисправности
lst.noLink_GTD1 = AISState.getBreak(GTD1);
lst.noLink_VMON = AISState.getBreak(VMON);
lst.noLink_GTD2 = AISState.getBreak(GTD2);
lst.noLink_N1 = AISState.getBreak(N1);

lst.Conf_Error_GTD1 = AISState.getError(GTD1);
lst.Conf_Error_VMON = AISState.getError(VMON);
lst.Conf_Error_GTD2 = AISState.getError(GTD2);

tch.N1_P1_Brk = BreakPort[0];
tch.N1_P2_Brk = BreakPort[1];

2. Скорректируйте настройки проекта EWARM:

2.1. Для каждой конфигурации (для каждого УСО) откройте опции проекта, нажав правой
кнопкой мыши на корне проекта (верхней строчке в дереве с надписью Project и иконкой
куба) и выбрав Options.

2.2. В опциях выберите C/C++ Compiler – Preprocessor и в поле Additional include directories
добавьте строку:
$PROJ_DIR$\..\system\COMMON

13
Разработка управляющих программ для контроллеров Орион

Желательно добавить ее после строки:


$PROJ_DIR$\..\system\LIB

2.3. В опциях выберите Output Converter, установите галочку Generate additional output,
укажите Output format: binary и снимите галочку Override default. Затем нажмите ОК.

2.4. Повторите данные действия для каждой имеющейся конфигурации УСО.

Приложение 2: Индикация работы управляющей


программы и загрузчика
Описанная индикация соответствует версии системного ПО 1.0.5 и версии загрузчика 2 и может
измениться в дальнейшем.

12345678 ИндикаторЗначениеУправляющая программа1 (горит при старте)Запуск управляющей


программы (может длиться 10 с. и более)1 (мигает)Работа управляющей программы.
Частота мигания зависит от времени базового цикла2 (мигает)Работа драйвера в
управляющей программе5 (мигает)Идет прием данных от АИС5-8 (горят)Программа
остановлена. Подробнее отображается в СателлитеЗагрузчик (при выключенном
индикаторе 1)2 (горит)
при стартеЗапуск загрузчика2 (горит)
в процессе работыЗависание загрузчика. Также при зависании этот индикатор может быть
выключен2 (мигает)Работа загрузчика5 (мигает)Идет загрузка прошивки по сети6
(мигает)Выдерживается таймаут в несколько секунд после прошивки до запуска
управляющей программы8 (горит)Ошибка загрузчика. Подробнее отображается в
СателлитеОбщее5 (горит)Наличие сетевого соединения3-4 (мигают при
старте)Инициализация свича

Рисунок 5. Нумерация индикаторов и их значение

14