Смекни!
smekni.com

Стабилизатор тока электродиализатора (стр. 5 из 13)

Диаграмма состояний системы для системы управления преобразователем представлена на рисунке 4.4.

В таблице 4.2 представлено соответствие событий и процедур, отвечающих за обработку этих событий.

Таблица 4.2 - События и обрабатывающие их процедуры

события процедуры и события
СТАРТСТОП Power_ToMode();Power_Stop();
Конец вычисления Border_i>8Power_Mode=Mode();
Превышен заданный ток AD1_OnHighLimit();
Выход на режим Iop=IzTI1_Enable();Power_Mode=Stabilization();
Температура в норме AD2_OnLowLimit();
Превышена температура AD2_OnHighLimit();
Такт вывода на режим TI1_OnInterrupt();

Состояние «режим простоя». В этом состояний источник находится после поступления на вход питания. При этом на ключах нет управляющих сигналов, измерения не проводятся, ток на выходе равен нулю. Это состояние устойчивое, из него возможен переход только в режим «Вычисление нулевого уровня тока». Код ошибки в этом состоянии равен нулю. Состояние «Вычисление нулевого уровня тока». В это состояние источник переходит после возникновения события «старт». В этом режиме на ключи не подается управляющих сигналов, производится считывание значения тока с АЦП, устанавливается нулевой уровень тока. Возможны переходы в состояния: «режим простоя» при возникновении события «стоп», «вывод на режим» при возникновении события «конец вычисления». Событие «конец вычисления» возникает после заданного количества считываний тока с АЦП.

Состояние «вывод на режим». В этом состояний на ключи подаются управляющие ШИМ - сигналы, ток на выходе плавно нарастает в течение заданного времени до значения тока задатчика, выходной ток стабилизируется. При возникновении события «стоп» переходит в состояние «режим простоя». При превышении выходным током тока задатчика возникает событие «превышен заданный ток», источник переходит в состояние «превышение заданного тока». При превышении полупроводниковыми приборами заданной температуры, возникает событие «превышена температура», источник переходит в состояние «перегрев». Каждые 100 мкс. возникает событие «такт стабилизаций», при этом рассчитывается длительность управляющих импульсов ШИМ, и запускаются новые измерения тока, и температуры. Так же каждые 50 мс. происходит событие «такт вывода на режим», при этом увеличивается значение опорного тока задатчика. Состояние «режим стабилизации». Переход в это состояние происходит при возникновении события «выход на режим». Это событие возникает, когда ток на выходе достигнет тока задатчика. При возникновении события «стоп» происходит переход в состояние «режим простоя», при этом управляющие сигналы сбрасываются. При превышении выходным током тока задатчика возникает событие «превышен заданный ток», источник переходит в состояние «превышение заданного тока». При превышении полупроводниковыми приборами заданной температуры, возникает событие «превышена температура», источник переходит в состояние «перегрев». Каждые 100 мкс. возникает событие «такт стабилизаций», при этом рассчитывается длительность управляющих импульсов ШИМ, и запускаются новые измерения тока, и температуры. Состояние «превышение заданного тока». В этом состоянии управляющие сигналы сбрасываются, ток на выходе равен нулю, происходит запись в соответствующие переменные значения кода ошибки. При возникновении события «стоп» переходит в состояние «режим простоя».

4.2.1 Разработка блок-схем процедур модуля PWM

Для написания программы будет использоваться язык программирования высокого уровня C++. Написание кода будет осуществляться в среде разработки CodeWarrior. Также будет использован инструмент ProcessorExpert, предназначенный для ускорения процесса настройки регистров DSP-контроллера. Интерфейс среды разработки CodeWarriorпредставлен на рисунке 4.5.

POWER_MODE - переменная, предназначенная для отображения состояния, в котором находится модуль стабилизации в данный момент. В таблице 4.3 приведены в соответствии состояния системы и значения переменной POWER_MODE, которые она принимает в данном состоянии.

Таблица 4.3 - Состояния переменной POWER_MODE

Значение POWER_MODE Состояние
0 WAIT- режим простоя
1 MODE- выход на режим
2 STABILIZATION- режим стабилизации
3 CURRENT_OREVFLOW - превышено максимальное значение тока
4 FAULT – сигнал ошибки от драйвера
5 TEMPERATURE– превышена температура
6 CURRENT_BOORDER – вычисление нуля тока на АЦП

BORDER_I – переменная, предназначенная для счетчика интегратора.

BORDER – переменная, предназначенная для вычисления полочки тока.

Iop – ток задатчика (опора).

Iz – ток задатчика.

Step – шаг для вывода на режим.

CURRENT_FROM_ADC – переменная, предназначенная для считывания в нее значения с АЦП.

k,b(COUNT_TEMPRET_TABLE) – константы для вычисления температуры (взяты из технической документации на датчик температуры).

SPI_MODE – переменная, предназначенная для идентификации команды, поступившей системе по параллельному порту.

В таблице 4.4 приведены в соответствии команды системе, поступающие по параллельному интерфейсу, и значения переменной SPI_MODE, которые она принимает при поступлении этой команды.

Таблица 4.4 - Команды переменной SPI_MODE

Значение SPI_MODE Команда
0 Режим ожидания параллельного интерфейса
1 Режим приема пакета данных

DATA_TO_SEND – массив данных отправляемых по параллельному интерфейсу на управляющий контроллер.

Значения которые может отправлять массив DATA_TO_SEND:

– начало пакета DATA_TO_SEND [0];

– текущее значение тока DATA_TO_SEND [1];

– текущая температура DATA_TO_SEND [2];

– код ошибки DATA_TO_SEND [3];

– конец пакета DATA_TO_SEND [4];

В таблице 4.5 приведены в соответствии команды системе, поступающие по параллельному интерфейсу, и значения переменной DATA_TO_SEND, которые она отправляет.

Таблица 4.5 - Коды переменнойDATA_TO_SEND

Код ошибки Ошибка
0 NO_ERROR – нет ошибки
1 DRIVER – сработала защита драйвера
2 TEMP_OVER – сработала защита по температуре
3 CUR_OVER – сработала защита по току

CounRX – счетчик принятых байт.

PACET – массив для хранения принятых байт.

В таблице 4.6 приведены в соответствии команды системе, поступающие по параллельному интерфейсу, и значения переменной PACET.

Таблица 4.6 - Команды переменной PACET

Значение PACET Команда
PACET[0] Код начала пакета
PACET [1] Команда преобразователю
PACET [2] Значение тока задатчика

Описание основных процедур:

SS1_RecvChar() – процедура чтения данных из буфера приемника SPI.

SS1_ClearRxBuf() – процедура очистки буфера приемника SPI.

SS1_SendBlck() – процедура посылки данных в буфер приемника SPI.

TI1_OnInterrupt() – процедура вызываемая при возникновении прерывания по таймеру-счетчику.

TI1_Disable() – процедура запрещения работы таймера-счетчика.

TI1_Enable() – процедура разрешения работы таймера-счетчика.

AD1_GetValue16() – процедура считывания данных с АЦП.

AD1_Mesure() – процедура инициализации АЦП.

AD1_GetChanOfSet() – процедура установки нулевого уровня АЦП.

AD1_OnHighLimit() – процедура срабатывающая при достижении верхнего порога АЦП.

AD1_OnLowLimit() – процедура срабатывающая при достижении нижнего порога АЦП.

AD1_SetLowChanLimit() – процедура установки нижнего уровня срабатывания АЦП.

AD1_SetHighChanlimit() – процедура установки верхнего уровня срабатывания АЦП.

Математические процедуры:

- процедура вычитания SUB();

- процедура умножения L_MULT_TS();

- процедура сложения L_ADD().

4.3 Разработка диаграммы состояний блока связи с панелью индикации

Модуль SPI необходим для обмена информацией между панелью индикации и программной системой. Диаграмма состояний модуля SPI представлена на рисунке 4.6.

Состояние «ожидание пакета/передача данных». Модуль переходит в это состояние после подачи питания. В этом состояний модуль SPI ожидает начало передачи данных, при поступлении тактового сигнала отправляет байт данных. Возможен переход в состояние «прием/передача пакета» при возникновении события «такт работы (получение стартового символа пакета)». Также возможно событие такт работы.

Состояние «прием/передача пакета». В этом состоянии принимается символ данных по каждому тактовому сигналу, при этом отправляет байт данных. Модуль находится в этом состоянии, пока не возникнет событие «такт работы (получение последнего символа пакета)». В этом состояний также возможно событие «такт работы», при котором он остается в том же состояний.

5. Разработка платы индикации

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

Каждый семисегментный индикатор состоит из набора светодиодов, аноды которых объединены, как показано на рисунке 5.1. чтобы зажечь определенный светодиод требуется подать питание на анод, а соответствующий катод подключить «земле»[17].