≪
≫

Разработка программного обеспечения нижнего уровня

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

Этап 1. Задание схемы проекта. В соответствии со схемой соединения контроллеров, изображенной на рис. 26, сначала необходимо при использовании инструментальной системы КОНГРАФ задать правильные соединения для нашей задачи в сети контроллеров, имеющихся на стенде.

Сеть микроконтроллеров

Рис. 27. Сеть микроконтроллеров

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

Этап 2. Создание программ проекта для каждого контроллера. Контроллер MR8 является коммуникационным контроллером и через него осуществляется управление лампой накаливания.

Алгоритм работы микроконтроллера MR8

Рис. 28. Алгоритм работы микроконтроллера MR8

Контроллер MC5 является коммуникационным контроллером и через него осуществляется управление зеленой и красной индикаторными лампами.

Алгоритм работы микроконтроллера MC5

Рис. 29. Алгоритм работы микроконтроллера MC5

Основная программа с алгоритмом поддержания температурного режима помещения находится на контроллере МС8. Выход с этого контроллера подается на исполнительный механизм Belimo и коммуникационные контроллеры МС5 и MR8. Отлаженный и протестированный вариант программы приводится на рис. 30.

Алгоритм работы микроконтроллера MC8

Рис. 30. Алгоритм работы микроконтроллера MC8

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

Обзор алгоритмических блоков проекта

Приведем описание всех алгоритмических блоков инструментальной системы КОНГРАФ, задействованных в проекте.

1. ТЕРМ 10К +С - Термистор 10 кОм с сигнализацией обрыва/к.з.

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X

Вход

аналог.

Входное напряжение, мВ

TYPE

Вход

целоч.

Тип датчика

YCEL

Выход

аналог.

Измеренная температура, °C

YFAR

Выход

аналог.

Измеренная температура, °F

FAULT

Выход

логич.

Обрыв / короткое замыкание

Алгоблок предназначен для нормализации измерений термистора 10 кОм, т.е. преобразования измеренного сопротивления датчика в значение температуры.

Параметр TYPE может быть равен:

* 2 - для термистора 10К-2 или ACI/10K-CP (ACI);

* 3 - для термистора 10К-3 или ACI/10K-AN (ACI).

Характеристики поддерживаемых термисторов:

для 10к-2 -- B25/100=3990 или B25/100=3980

для 10к-3 -- B25/100=3715)

При обрыве или коротком замыкании проводов датчика, выход FAULT становится равным 1, а измеренная температура остаётся равной значению на момент обрыва или короткого замыкания.

2. НАПРЯЖЕНИЕ - Напряжение (0-10В)

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X

Вход

аналог.

Входное напряжение, мВ

Y

Выход

аналог.

Измеренное напряжение, В

Алгоблок преобразует напряжение, поступающее от датчика (0-10В) на вход АЦП через конфигуратор, в выходное значение напряжения датчика.

3. ФИЗ ВЕЛ ОГ-Преобразование в физические единицы по двум точкам с ограничением

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X

Вход

аналог.

Вход

XMIN

Вход

аналог.

Минимальное значение входа

XMAX

Вход

аналог.

Максимальное значение входа

YMIN

Вход

аналог.

Минимальное значение выхода

YMAX

Вход

аналог.

Максимальное значение выхода

Y

Выход

аналог.

Выход

Алгоблок выполняет линейное преобразование сигнала от датчика в физические единицы с ограничением.

X - сигнал датчика (мА, мВ или В);

Y - значение сигнала датчика, но уже в выбранных физических единицах.

4. Сумма

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X[i]

Входы

аналог.

Входы. Кол-во входов может быть от 2 до 255

Y

Выход

аналог.

Cумма

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

Y(t) = X[1](t) + X [2](t) + … + X [N](t)

Сумма N аналоговых чисел X[i] (i = 2…N), которые действительны на входах блока в текущем цикле работы алгоритма, определяет значение Y(t). В следующем цикле ФБ сформирует сумму новых значений на входах X[i] блока.

5. Разность

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X1

Вход

аналог.

Уменьшаемое

X2

Вход

аналог.

Вычитаемое

Y

Выход

аналог.

Разность

Вычисление разности аналоговых чисел.

Y(t) = X1(t) - X2(t)

Разность двух аналоговых чисел, которые действительны на входах блока в текущем цикле работы алгоритма, определяет значение Y(t). В следующем цикле алгоблок сформирует новое значение разности на выходе Y.

6. КОМПАР ВЕРХ - Компаратор верхнего уровня

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X

Вход

аналог.

Вход

XUP

Вход

аналог.

Уровень срабатывания. Пороговое значение верхнего уровня

HYS

Вход

аналог.

Величина гистерезиса

Z

Выход

логич.

Выход

Алгоблок предназначен для сравнения входного параметра с пороговым значением XUP. Z принимает значение "1" если X становится больше чем XUP и Z принимает значение "0" если Х становится меньше чем XUP-HYS.

7. КОМПАР НИЖ - Компаратор нижнего уровня

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X

Вход

аналог.

Вход

XLOW

Вход

аналог.

Уровень срабатывания. Пороговое значение нижнего уровня

HYS

Вход

аналог.

Величина гистерезиса

Z

Выход

логич.

Выход

Алгоблок предназначен для сравнения входного параметра с пороговым значением XLOW. Z принимает значение "1" если X становится меньше чем XLOW и Z принимает значение "0" если Х становится больше чем XLOW+HYS.

8. ПРЕОБР Л-А -

9. Преобразователь типов: логический в аналоговый

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

Q

Вход

логич.

Вход

Y

Выход

аналог.

Выход

Алгоблок выполняет функцию преобразования входной логической величины в аналоговую.

Если Q=0, то Y=0.0; если Q=1, то Y=1.0.

10. УМНОЖЕНИЕ - Умножение

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X[i]

Входы

аналог.

Множители. Кол-во входов может быть от 2 до 255

Y

Выход

аналог.

Произведение

Алгоблок предназначен для вычисления произведения аналоговых чисел.

Y(t) = X[1](t) * X [2](t) * … * X [N](t)

Произведение N аналоговых чисел X[i] (i = 2…N), которые действительны на входах блока в текущем цикле работы алгоритма, определяет значение Y(t). В следующем цикле алгоблок сформирует произведение новых значений на входах X[i] блока.

11. ЗДН АН - Задание аналоговой величины

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X

Вход

аналог.

Вход

Y

Выход

аналог.

Выход

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

Алгоблок копирует значение, заданное на входе X, на выход Y. Вход алгоблока по умолчанию сделан невидимым.

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

11. НЕ - Логическое НЕ

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

Q

Вход

логич.

Вход

Z

Выход

логич.

Выход

Алгоблок выполняет функцию логического отрицания. В каждом цикле работы алгоритма выполняется соотношение:

Z(t) = NOT (Q(t))

Если Q=1, то Z=0 и наоборот.

12. И - Логическое И:

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

Q[i]

Входы

логич.

Входы. Кол-во входов может быть от 2 до 255

Z

Выход

логич.

Выход

Алгоблок выполняет функцию логического умножения. В каждом цикле работы алгоритма выполняется соотношение:

Z(t) = Q[1](t) & Q[2](t) & ... & Q[N](t).

Если хотя бы один из входов Q равен 0, то Z=0.В противном случае Z=1.

13. ПАМЯТЬ АН - Запоминание аналоговой величины

Обозначение

Параметры

Имя

Вх/Вых

Тип

Комментарий

X

Вход

аналог.

Вход

Q

Вход

логич.

Стробирующий вход

Y

Выход

аналог.

Выход

Алгоблок выполняет функцию триггера-защелки. Входная информация X запоминается и передается на выход Y по переднему фронту на входе Q.

Параметр Y может быть сохранён в энергонезависимой памяти (на срок до двух недель).