СОДЕРЖАНИЕ
1 Описание комплекса мониторинга системы оперативного тока и блока
контроля аккумуляторной батареи .................................................................... 10
1.1 Системы оперативного тока...................................................................... 10
1.2 Назначение и работа комплекса мониторинга системы оперативного
тока .................................................................................................................... 14
1.3 Основные характеристики и обслуживание аккумуляторной батареи.19
1.4 Блок контроля аккумуляторной батареи ................................................. 24
1.5 Постановка задачи на исследовательскую работу ................................. 28
1.5.1 Общие требования к ПО КМСОТ ......................................................... 28
1.5.2 Требования к ПО БКАБ .......................................................................... 29
1.5.3 Требования к метрологическим характеристикам .............................. 30
1.6 Краткие выводы к главе 1 ......................................................................... 31
2 Разработка программного обеспечения для блока контроля аккумуляторной
батареи .................................................................................................................. 33
2.1 Обзор микроконтроллера STM32F405RGT6 .......................................... 33
2.2 Описание платформы Eclipse.................................................................... 34
2.3 Операционная система для микроконтроллеров FreeRTOS .................. 39
2.4 Описание кода программы ........................................................................ 42
2.4.1 Подключение библиотек ........................................................................ 42
2.4.2. Функция приведения значения АЦП в нормальный вид ................... 42
2.4.3 Функции для записи и чтения параметров во/из Flash ....................... 44
2.4.4 Инициализация работы блока ................................................................ 45
2.4.5 Прерывание по отключению питания и инициализация детектора
отключения питания ........................................................................................ 47
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 5
2.4.6 Настройка тактирования БТВ ................................................................ 51
2.4.7 Инициализация SPI и портов GPIO....................................................... 53
2.4.8 Функция сброса АЦП ............................................................................. 55
2.4.9 Функция калибровки каналов АЦП ...................................................... 55
2.4.10 Функция одиночного преобразования АЦП ...................................... 57
2.5 Краткие выводы к главе 2 ......................................................................... 57
3 Проверка работы программы с помощью операторной панели.................. 59
3.1 Отображение полученных данных на операторной панели .................. 59
3.2 Отображение параметров аккумуляторной батареи .............................. 65
3.3 Краткие выводы к главе 3 ......................................................................... 67
ЗАКЛЮЧЕНИЕ ................................................................................................ 68
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ...................................... 69
ПРИЛОЖЕНИЕ А. Исходный код программы ............................................. 72
ПРИЛОЖЕНИЕ Б. Схема электрическая принципиальная блока контроля
аккумуляторной батареи
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 6
ВВЕДЕНИЕ
Актуальность работы. Мониторинг аккумуляторных батарей очень
важен практически в любой системе, где необходимо следить за уровнем
заряда батареи. При неправильной эксплуатации аккумуляторы могут выйти
из строя – перестанут отдавать требуемую ёмкость, а время работы объекта в
режиме автономного питания снизится до нуля. Основная проблема, которая
возникает при заряде аккумуляторов, состоит в поиске параметра, измерения
которого позволили бы с достаточной точностью определить состояние
полного заряда.
Комплекс мониторинга системы оперативного тока предназначен для
измерения
основных
параметров
первичных
компонентов
системы
электрических
оперативного
и
технологических
постоянного
тока,
вычисления вторичных параметров, характеризующих состояние СОПТ и
заблаговременного информирования о предаварийных режимах работы.
С помощью блока контроля аккумуляторной батареи возможно
измерение напряжения асимметрии АБ, измерения температуры внутри
шкафа АБ, измерения значения и направления тока.
Одна из важных составляющих систем оперативного тока – система
мониторинга, обеспечивающая непрерывный контроль, своевременное
выявление неисправностей, предупредительную и аварийную сигнализацию,
передачу данных в АСУ верхнего уровня. Комплект оборудования для
мониторинга
обычно
включает
различные
аналого-цифровые
преобразователи, модули ввода, измерительные приборы, реле контроля
уровней и пульсаций напряжения, преобразователи интерфейса, системы
контроля изоляции и т. п.
Совокупность источников питания, кабельных линий, шин питания
переключающих
устройств
и
других
элементов оперативных
цепей
составляет систему оперативного тока электроустановки. Оперативный ток
на подстанциях служит для питания вторичных устройств, к которым
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 7
относятся
оперативные
цепи
защиты,
автоматики
и
телемеханики,
аппаратура дистанционного управления, аварийная и предупредительная
сигнализация.
При нарушениях нормальной работы подстанции оперативный ток
используется также для аварийного освещения и электроснабжения
электродвигателей (особо ответственных механизмов).
Объектом исследования являются микропроцессорный блок для
контроля аккумуляторной батареи в системах оперативного постоянного
тока.
Предметом
контроля
исследования
аккумуляторной
программное
батареи
обеспечение
комплекса
для
мониторинга
блока
систем
оперативного тока.
Цель
магистерской
диссертации
заключалась
в
разработке
программного обеспечения для блока контроля аккумуляторной батареи,
являющегося частью комплекса мониторинга систем оперативного тока.
Задачи исследования. Для достижения цели исследования поставлены и
решены следующие задачи:
1) обзор систем оперативного тока, назначения и работы комплекса
мониторинга системы оперативного тока, основные характеристики
и
обслуживание аккумуляторной батареи;
2)
разработка
программного
обеспечения
для
блока
контроля
аккумуляторной батареи, описание микроконтроллера STM32F405RGT6,
платформы
Eclipse
и
кода
программы,
реализация
возможности
программирования блока по USB и передачи измеренных значений по
интерфейсу CAN;
3) получение и отображение параметров на операторной панели;
Методы исследования. Решение поставленных задач производилось на
основе экспериментального изучения особенностей программирования
микроконтроллеров STM32, основанных на ядре ARM Cortex-M4, с
использованием
отладочной
платы
STM32F4DISCOVERY.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 8
Программирование микроконтроллера осуществлялось на языке Си в среде
разработки Eclipse Cpp Oxygen с применением средств аппаратной и
программной отладки разработанных приложений: OpenOCD и ST-LINK/V2.
Публикации. По результатам исследований было опубликовано четыре
печатные работ в сборниках материалов научных конференций, цитируемых
РИНЦ:
1) Всероссийской научно-технической конференции с международным
участием «Проблемы и перспективы развития отечественной светотехники,
энергетики и электротехники». elibrary.ru, РИНЦ.
2) Внутривузовских конференциях «Огаревские чтения» 2016 и 2017
годов. elibrary.ru, РИНЦ
3) Внутривузовской конференции молодых учёных студентов и
аспирантов. elibrary.ru, РИНЦ.
4) Электронное периодическое издание для студентов и аспирантов
Огарёв–online. elibrary.ru.
Структура и объем диссертации. Диссертация состоит из введения,
трех глав, заключения, библиографического списка, одного приложения и
графического материала. Основной текст изложен на 68 страницах, включает
43
рисунка.
Разработанная
в
результате
работы
программа
для
микроконтроллера представлена в приложении. А, объемом 14 страниц.
Общий объем диссертации составил 82 страницы.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 9
1 Описание комплекса мониторинга системы оперативного тока и
блока контроля аккумуляторной батареи
1.1 Системы оперативного тока
Совокупность источников питания, шин питания переключающих
устройств, кабельных линий и других элементов оперативных цепей
представляют систему оперативного тока электроустановки. На подстанциях
оперативный ток необходим для питания вторичных устройств, таких как
аппаратура
дистанционного
управления,
оперативные
цепи
защиты,
автоматики и телемеханики, предупредительная и аварийная сигнализация.
При возникновении нестабильной работы подстанции оперативный ток
также используется для аварийного освещения и электроснабжения
электродвигателей (особо ответственных механизмов).
Проектирование установки оперативного тока сводят к выбору рода
тока, выбору типа источников питания, режима работы, расчету нагрузки,
составлению электрической схемы сети оперативного тока. Системы
оперативного тока, применяемые на подстанциях:
1) постоянный оперативный ток - система питания оперативных цепей,
при которой в качестве источника питания применяется аккумуляторная
батарея;
2) переменный оперативный ток - система питания оперативных цепей,
при которой в качестве основных источников питания используются
измерительные
трансформаторы
тока
защищаемых
присоединений,
измерительные трансформаторы напряжения, трансформаторы собственных
нужд. В качестве дополнительных источников питания импульсного
действия используются предварительно заряженные конденсаторы;
3) выпрямленный оперативный ток - система питания оперативных
цепей переменным током, в которой переменный ток преобразуется в
постоянный (выпрямленный) с помощью блоков питания и выпрямительных
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 10
силовых устройств. В качестве дополнительных источников питания
импульсного действия могут использоваться предварительно заряженные
конденсаторы;
4)
смешанная
оперативных
цепей,
оперативного
тока
система
при
оперативного
которой
(постоянный
и
тока
-
используются
система
питания
разные
системы
выпрямленный,
переменный
и
выпрямленный).
При переменном оперативном токе наиболее простым способом
питания
электромагнитов
отключения
выключателей
является
непосредственное включение их во вторичные цепи трансформаторов тока
(схемы с реле прямого действия или с дешунтированием электромагнитов
отключения при срабатывании защиты). При этом предельные значения
токов и напряжений в токовых цепях защиты не должны превышать
допустимых значений, а токовые электромагниты отключения (реле типов
РТМ, РТВ или ТЭО) должны обеспечивать необходимую чувствительность
защиты в соответствии с требованиями ПУЭ. Если эти реле не обеспечивают
необходимой
чувствительности
защиты,
питание
цепей
отключения
производится от предварительно заряженных конденсаторов.
На подстанциях с переменным оперативным током питание цепей
автоматики, управления и сигнализации производится от шин собственных
нужд через стабилизаторы напряжения.
Источниками
переменного
оперативного
тока
являются
трансформаторы собственных нужд и измерительные трансформаторы тока и
напряжения,
осуществляющие
питание
вторичных
устройств
непосредственно или через промежуточные звенья – блоки питания,
конденсаторные устройства. Переменный оперативный ток распределяется
централизованно и, следовательно, при его использовании не требуется
сложной и дорогой распределительной сети. Однако зависимость питания
вторичного оборудования от наличия напряжения в основной сети,
недостаточная мощность самих источников (измерительные трансформаторы
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 11
тока и напряжения) ограничивает область применения оперативного
переменного тока.
Трансформаторы тока служат надежными источниками для питания
защит
от
коротких
замыканий;
трансформаторы
напряжения
и
трансформаторы собственных нужд могут служить источниками для защит
от повреждений и ненормальных режимов, не сопровождающихся глубокими
понижениями напряжения, когда не требуется высокой стабильности
напряжения и допустимы перерывы в питании.
Независимым
источником
оперативного
тока
являются
аккумуляторные батареи. К преимуществам источников питания постоянного
оперативного тока относят простоту и надежность схемы релейной защиты и
обеспечение питания всех цепей подключенных устройств в любой момент
времени с необходимым уровнем напряжения и тока независимо от
состояния основной сети.
Для
повышения
надежности
сеть
оперативного
питания
секционируется с тем, чтобы обесточивание одной или нескольких секций не
приводило к отказам наиболее ответственных потребителей оперативного
тока, к которым относятся устройства релейной защиты, автоматики и
управления (рисунок 1).
Рисунок 1 – Схема подключения источника постоянного оперативного тока
(аккумуляторной батареи) в распределительном устройстве
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 12
Аккумуляторная батарея работает на шинки постоянного тока, от
которых отходят линии, питающие секции оперативного тока для каждой
группы потребителей. ШУ – шинки для питания устройства релейной
защиты, автоматики и управления (обычно отдельная шинка для каждой
секции шин), ШС - шинки сигнализации и ШВ – шинки питания
электромагнитов
включения
выключателей.
Аккумуляторная
батарея
является также источником аварийного освещения подстанции.
Аккумуляторная батарея выполняется обычно из свинцово-кислотных
аккумуляторов,
обладающих
достаточно
высокими
долговечностью,
экономичностью и выдерживающих кратковременные перегрузки, например
при питании электромагнитов включения мощных выключателей (ток
электромагнита может достигать нескольких сотен ампер).
Помещение аккумуляторной батареи должно иметь обогрев и
вентиляцию для удаления паров серной кислоты. Для обеспечения
долговечности батареи должен соблюдаться оптимальный режим ее
подзаряда, заряда и разряда. С этой целью используются автоматические
регулируемые выпрямительные установки (подзарядные устройства).
Защита сети постоянного оперативного тока осуществляется с
помощью предохранителей и автоматических выключателей с обеспечением
селективности и чувствительности. Наиболее частым видом повреждений
являются замыкания одного из полюсов на землю.
Оно не приводит к разрушениям, однако появление второго замыкания
может привести к ложному срабатыванию устройства защиты или
электромагнитов включения. Поэтому используется контроль изоляции,
например установкой двух вольтметров. При отсутствии замыканий
напряжение шин относительно земли одинаково, в противном случае
показания вольтметров отличаются.
Всех потребителей энергии, получающих питание от аккумуляторной
батареи, можно разделить на три группы:
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 13
1) Постоянно включенная нагрузка – аппараты устройств управления,
блокировки, сигнализации и релейной защиты, постоянно обтекаемые током,
а также постоянно включенная часть аварийного освещения. Постоянная
нагрузка на аккумуляторной батареи зависит от мощности постоянно
включенных ламп сигнализации и аварийного освещения, а также от типов
реле. Так как постоянные нагрузки невелики и не влияют на выбор батареи, в
расчетах можно ориентировочно принимать для крупных подстанций 110500 кВ значение постоянно включенной нагрузки 25 А.
2) Временная нагрузка – появляющаяся при исчезновении переменного
тока во время аварийного режима – токи нагрузки аварийного освещения и
электродвигателей
постоянного
тока.
Длительность
этой
нагрузки
определяется длительностью аварии (расчетная длительность 0,5 часа).
3) Кратковременная нагрузка (длительностью не более 5 с) создается
токами включения и отключения приводов выключателей и автоматов,
пусковыми токами электродвигателей и токами нагрузки аппаратов
управления, блокировки, сигнализации и релейной защиты, кратковременно
обтекаемых током.
1.2 Назначение и работа комплекса мониторинга системы
оперативного тока
Современную систему энергоснабжения объектов энергетики и
промышленных предприятий невозможно создать без систем оперативного
постоянного тока (СОПТ). Основная область использования СОПТ бесперебойное (автономная работа не менее 30 минут) электропитание
объектов средней и большой мощности в энергетике, нефтяной и газовой
отраслях, промышленности, объектов связи и телекоммуникаций.
Острая потребность в модернизации и перевооружении объектов
электроэнергетики, а также ввод новых мощностей требует использования
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 14
надежных систем бесперебойного электроснабжения, удовлетворяющих
современным требованиям эксплуатации.
Комплекс
мониторинга
системы
оперативного
тока
(КМСОТ)
предназначен для автоматического измерения сопротивления изоляции,
напряжений,
токов
функциональных
и
пульсаций,
составляющих
в
а
также
СОПТ
и
контроля
передачи
состояния
полученной
информации в АСУТП верхнего уровня.
Отличительными особенностями комплекса является его гибкая
конфигурация для решения конкретных задач, таких как: мониторинг
сопротивления изоляции сети, мониторинг сопротивления изоляции секций и
присоединений, мониторинг состояния и положения коммутационных и
защитных аппаратов, мониторинг постоянного напряжения и тока в
требуемых цепях, мониторинг пульсаций постоянного напряжения и тока в
требуемых цепях, мониторинг асимметрии напряжений групп элементов АБ
при симметричном и несимметричном измерительном отводе от АБ,
мониторинг температуры АБ.
Комплекс обладает высокой точностью и отсутствием необходимости
калибровки, интеллектуальным адаптивным алгоритмом измерительного
воздействия
вероятность
при
мониторинге
ложного
сопротивления
срабатывания
реле
изоляции,
и
снижающим
дискретных
входов
микропроцессорных защит.
В состав комплекса входят: Блок индикации (БИ), Устройство сбора
информации (УСИ), Блок тестового воздействия (БТВ), блок питания (БП),
Блок контроля изоляции (БКИ),
(БКДС),
Блок контроля дискретных сигналов
Блок контроля напряжения и тока (БКНТ),
Блок контроля
аккумуляторной батареи (БКАБ) (рисунок 2).
Все функциональные блоки подключены к шине CAN и шине питания
24 В. Функциональные блоки получают уставки и команды управления от БИ
через УСИ. В БИ через УСИ поступают данные от функциональных блоков.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 15
БИ обрабатывает данные и отображает информацию. БИ передаёт команды
управления реле сигнализации в УСИ, а также передаёт данные в АСУТП.
Рисунок 2 – Структурная схема КМСОТ
БТВ получает уставки от БИ, в соответствии с которыми выполняет
функции измерения и контроля общего сопротивления изоляции СОПТ,
сопротивления изоляции полюсов и секций СОПТ, напряжения полюсов
относительно «земли» и напряжения главных шин.
БТВ поочередно подключает между «землёй» и положительным,
отрицательным полюсом сети резистор (активный режим БТВ). БТВ
измеряет отклик напряжений полюсов на подключение резистора, на основе
которого производит расчёт общего сопротивление изоляции СОПТ,
сопротивления изоляции полюсов и ёмкости СОПТ.
Для определения сопротивления изоляции секций и присоединений
используются датчики дифференциального тока (ДДТ), которые измеряют
отклик
дифференциального
тока
в
присоединениях
на
воздействие
поочередно подключаемого к положительному и отрицательному полюсу
сети резистора.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 16
БТВ определяет дифференциальный ток по двум каналам подключения
ДДТ и рассчитывает сопротивление изоляции двух секций.
Каждый БКИ синхронизируется с БТВ и в определённые стадии
измерительного цикла определяет значение дифференциального тока по
восьми каналам подключения ДДТ. БКИ получают от БТВ информацию о
значениях напряжения полюсов относительно «земли» и производят расчёт
сопротивления изоляции присоединений.
Все функциональные блоки питаются от ИП напряжением 24 В
постоянного тока. Количество ИП определяется количеством и суммарной
потребляемой
мощностью
функциональных
блоков.
Связь
между
функциональными блоками Комплекса осуществляется по интерфейсу CAN.
Функциональные
блоки
Комплекса
размещают,
как
правило,
в
распределительном шкафу (рисунок 3).
БИ
представляет
собой
промышленный
сенсорный
дисплей
(рисунок 4, рисунок 5). БИ выполняет функции, связанные с отображением
информации, управлением комплекса, хранение уставок и журнала событий.
Место размещения БИ – лицевая панель распределительного щита.
УСИ выполняет функции информационного моста между БИ и
остальными функциональными блоками. УСИ также содержит четыре реле
сигнализации. УСИ, БТВ, БКИ, БКДС, БКНТ и БКАБ выполнены в
пластиковых корпусах с креплением на DIN-рейку или монтажную панель.
БТВ выполняет функции мониторинга напряжений полюсов СОТ
относительно «земли», общего сопротивления изоляции и эквивалентного
сопротивления
изоляции
полюсов
СОТ
относительно
«земли»,
сопротивления изоляции секций СОПТ.
БКИ совместно с ДДТ выполняют функции, связанные с мониторингом
сопротивления изоляции присоединений. Каждый БКИ имеет восемь каналов
для подключения ДДТ.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 17
БКДС принимает дискретные сигналы для реализации функций
контроля положений и аварийных срабатываний коммутационных и
защитных аппаратов.
Рисунок 3 – Пример размещения функциональных блоков комплекса
БКНТ выполняет функции, связанные с мониторингом в требуемых
точках СОПТ напряжения, пульсаций напряжения, тока и пульсаций тока.
БКНТ имеет два входа мониторинга напряжения, два входа для подключения
шунтов, два входа для подключения датчиков тока.
Рисунок 5 – Внешний вид БИ
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 18
Рисунок 6 – Окно «Журнал» и «Тренды» БИ
БКАБ выполняет функции, связанные с мониторингом асимметрии
напряжений групп элементов АБ, тока АБ, пульсаций тока АБ и температуры
АБ. БКАБ имеет вход мониторинга напряжения АБ, входа для подключения
шунта, входа для подключения датчиков тока и вход для подключения
датчика температуры.
Резисторы
вероятности
уравнительные
ложных
(РУ)
срабатываний
используются
реле
и
для
уменьшения
дискретных
входов
микропроцессорных защит, а также для уменьшения времени измерения
сопротивления изоляции в протяжённой сети с большой ёмкостью
относительно «земли». РУ выравнивают напряжения полюсов СОПТ
относительно «земли» до безопасного уровня при несимметричном снижении
сопротивления изоляции одного из полюсов вплоть до 30 кОм.
1.3 Основные характеристики и обслуживание аккумуляторной
батареи
В настоящее время вряд ли можно найти отрасль техники, где бы ни
применялись электрические аккумуляторные батареи. Традиционно их
используют
в
автомобильном
транспорте,
авиации,
космических
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 19
технологиях.
Поэтому
каждый
человек,
имеющий
отношение
к
аккумуляторам, хотел бы, чтобы они прослужили как можно дольше.
Одним из наиболее распространенных источников тока, используемых
для старта механических двигателей, являются кислотные аккумуляторные
батареи. Аккумуляторная батарея представляет собой электрохимический
прибор,
который
при
соединении
с
источником постоянного
тока
накапливает (аккумулирует) электрическую энергию, а при соединении с
потребителями тока отдает ее, разряжаясь.
Перезаряжаемая батарея состоит из отдельных батарей или ячеек
соединенных
между
собой
для
обеспечения
электропроводности.
Аккумуляторные батареи часто оснащены датчиком температуры, который
используется зарядным устройством для определения конца зарядки.
Все батареи, в том числе и аккумуляторные или перезаряжаемые,
работают по одному принципу. Любая батарея это емкость с химическими
веществами, которые вырабатывают электричество. Химические реакции в
емкости
основаны
на
электрохимии.
В
своем
простейшем
виде
электрохимическая реакция в батарее это окисление металла электролитом
(например, кислота).
При окислении металл электрода испускает электроны. Эти электроны
передаются на второй электрод, находящийся в том же растворе электролита,
в результате движения заряженных частиц и получается электричество. Оба
электрода
подключаются
к
различным
полюсам
напряжения
и
непосредственно не связаны друг с другом. Поток электронов происходит от
отрицательно заряженного электрода к положительному.
В настоящее время очень часто используют кислотные аккумуляторные
батареи, которые способны давать большие токи при малом падении
напряжения на выходе. Активными материалами кислотной аккумуляторной
батареи являются:
- перекись свинца (PbO2) на положительных пластинах;
- чистый губчатый свинец (Pb) на отрицательных пластинах;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 20
- серная кислота (H2SO4) в электролите.
При разряде батареи данные материалы, вступая в реакцию с серной
кислотой, постепенно превращаются в сернокислый свинец (PbSO4). Они
имеют пористое строение и пропитаны электролитом. В химические реакции
в первую очередь включается серная кислота, находящаяся в порах. Это
обстоятельство
оказывает
существенное
влияние
на
некоторые
эксплуатационные характеристики батареи.
Важнейшими электрическими и эксплуатационными характеристиками
батарей являются:
– электродвижущая сила;
– напряжение;
– емкость;
– зарядный ток;
– коэффициент электрической отдачи;
– срок службы;
– срок сохраняемости.
Для увеличения срока службы свинцово-кислотной АБ желательно
использовать только малую часть ее емкости до повторной зарядки. Каждый
процесс разряда-заряда называется зарядным циклом, причем не обязательно
полностью разряжать аккумулятор. Если возможно использовать более 50%
энергии, запасенной в АБ до ее заряда, без заметного ухудшения ее
параметров, такая батарея называется батареей «глубокого разряда».
Емкость аккумуляторов – это количество электрической энергии,
которое
может
отдать
полностью
заряженный
аккумулятор
при
определенном режиме разряда и температуре от начального до конечного
напряжения. Единицей СИ для электрического заряда является кулон (1Кл),
но на практике емкость обычно выражается в ампер-часах (Ач).
Емкость измеряют в ампер-часах и определяют по формуле (1):
C Ip tp,
(1)
где С – емкость, Ач;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 21
Ip – сила разрядного тока, А;
tp – время разряда, ч.
Номинальная емкость – емкость, которую должен отдать новый
полностью заряженный аккумулятор в нормальных условиях разряда,
указанных в стандарте на этот аккумулятор. При этом напряжение не должно
упасть ниже определенной величины.
Так как емкость зависит от разрядного тока и конечного разрядного
напряжения, в условном обозначении аккумуляторов указывается емкость,
соответствующая
определенному
режиму
разряда.
Для
стартерных
аккумуляторов за номинальную принимается емкость при 20-часовом,
стационарных при 10-часовом, тяговых при 5-часовом режимах разряда.
Емкость
зарядная
–
количество
электричества,
принимаемое
аккумуляторной батареей во время заряда. Зарядная емкость АКБ всегда
больше разрядной из-за потерь энергии на побочные реакции и процессы.
Отдача
по
емкости
–
отношение
количества
электричества,
полученного от аккумулятора при разряде, к количеству электричества,
необходимого для заряда аккумулятора до первоначального состояния при
определенных условиях. Она зависит от полноты заряда. Часть же заряда
теряется на газообразование, это уменьшает коэффициент отдачи.
Емкость
остаточная
–
величина,
соответствующая
количеству
электричества, которое может отдать частично разряженный аккумулятор
при установленном режиме разряда до конечного напряжения.
Резервная ёмкость аккумуляторной батареи – время, в течение которого
батарея сможет обеспечить работу потребителей в аварийном режиме.
Величина резервной ёмкости, выраженная в минутах, последнее время все
чаще проставляется изготовителями стартерных
аккумуляторных батарей
после значения тока холодного старта.
Емкость
зарядная
–
количество
электричества,
сообщаемое
аккумулятору во время заряда. Измерение емкости ведется до падения
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 22
напряжения хотя бы одного элемента аккумуляторной батареи до величины,
регламентированной для конкретного режима разряда.
В течение срока
службы емкость АКБ изменяется (рисунок 7). В
начале срока службы она возрастает, так как происходит разработка
активной массы пластин. В процессе эксплуатации емкость некоторое время
держится стабильной, а затем начинает постепенно уменьшаться из-за
устаревания активной массы пластин.
Рисунок 7 – Зависимость емкости АКБ от рабочих циклов
Емкость батареи зависит от количества активного материала и
конструкции электродов, количества и концентрации электролита, величины
тока
разряда,
температуры
электролита,
степени
изношенности
аккумулятора, наличия посторонних примесей в электролите и других
факторов.
При увеличении тока разряда емкость батареи уменьшается. АКБ при
форсированных режимах разряда отдают емкость меньше, чем при разряде
более длительными режимами (небольшой величиной тока). Поэтому на
аккумуляторах могут быть обозначения при 3,5,6,10,20 и 100 часах разряда.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 23
При этом
емкости одной и той же батареи будут совершенно разные.
Наименьшая будет при 3-х часовом разряде, наибольшая при 100 часовом.
С повышением
температуры электролита емкость растет, но при
излишне высоких температурах уменьшается
срок их службы.
Это
происходит потому что, при повышении температуры электролит легче
проникает в поры активной массы, так как уменьшается его вязкость и
увеличивается внутреннее сопротивление. Поэтому в реакции разряда
принимает
участие
больше
активной
массы,
чем
при
заряде,
производившемся при более низкой температуре.
При низких
же температурах емкость
и полезное действие АКБ
быстро уменьшается.
Если увеличить концентрацию (плотность электролита), то емкость
также увеличится, но аккумулятор быстро выйдет из строя из-за разрыхления
активной массы батареи.
1.4 Блок контроля аккумуляторной батареи
Мониторинг аккумуляторных батарей очень важен практически в
любой системе, где необходимо следить за уровнем заряда батареи. При
неправильной эксплуатации аккумуляторы могут выйти из строя –
перестанут отдавать требуемую ёмкость, а время работы объекта в режиме
автономного питания снизится до нуля.
Одним из ключевых параметров, влияющих на долговечность
аккумулятора, является температура, до которой он нагревается. Важно не
допускать его перегрева. В момент заряда через все элементы течёт
одинаковый ток. И если в цепи появится элемент, который в силу
определённых причин не добирает нужного напряжения, - через все
остальные работоспособные элементы будет протекать больший ток. А
перезаряд для аккумулятора гораздо хуже, чем недозаряд. Наблюдается
перегрев, ухудшается время работы [].
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 24
Основная проблема, которая возникает при заряде аккумуляторов,
состоит в поиске параметра, измерения которого позволили бы с достаточной
точностью определить состояние полного заряда.
В ходе заряда герметичных щелочных аккумуляторов меняется
несколько параметров: напряжение, температура, внутреннее давление.
Характер их изменений в процессе заряда аккумулятора изображен на
рисунке 8. Эти параметры обеспечивают различную чувствительность и
имеют разные ограничения при использовании.
Заряд
стандартным
режимом
обычно
проводится
в
течение
регламентированного времени. Контроль напряжения при такой стратегии
заряда малоэффективен, так как при низких плотностях тока заряда
напряжение в конце процесса меняется незначительно.
Рисунок 8 – Изменение характеристик герметичного аккумулятора при
заряде
Комплекс мониторинга системы оперативного тока предназначен для
измерения
основных
параметров
первичных
компонентов
системы
электрических
оперативного
и
технологических
постоянного
тока,
вычисления вторичных параметров, характеризующих состояние СОПТ и
заблаговременного информирования о предаварийных режимах работы.
С помощью блока контроля аккумуляторной батареи (БКАБ) возможно
измерение напряжения асимметрии АБ, измерения температуры внутри
шкафа АБ, измерения значения и направления тока (два канала – канал
шунта, канал датчика тока). Функциональная схема БКАБ представлена на
рисунке 9.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 25
Рисунок 9 – Функциональная схема БКАБ
БКАБ имеет следующие сигнальные входы:
– гальванически развязанный вход для измерения напряжения АБ и
асимметрии напряжений групп элементов АБ;
– гальванически развязанный вход для измерения тока и действующего
значения пульсаций тока с использованием внешнего шунта;
– вход для измерения тока с использованием ДТ;
– вход для подключения ДТАБ.
Разъём XT3 предназначен для подключения ДТ. Сигнал датчика тока
поступает во внутренний АЦП микроконтроллера.
Разъём XT4 предназначен для подключения ДТАБ (NTC – термистор).
Сигнал ДТАБ поступает во внутренний АЦП микроконтроллера.
Разъём XT5 предназначен для подключения к АБ, измерения
напряжения АБ и асимметрии напряжений групп элементов АБ. Через
защитную цепь и делитель напряжения сигнал поступает в АЦП. Данные из
АЦП
поступают
через
гальванически
развязанный
интерфейс
в
микроконтроллер.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 26
Разъём XT6 предназначен для подключения к шунту. Сигнал с шунта
поступает в АЦП. Переменная составляющая сигнала поступает в RMS
детектор, далее в АЦП. Данные из АЦП поступают через гальванически
развязанный интерфейс в микроконтроллер.
Микроконтроллер обрабатывает информацию и передаёт её через
драйвер в УСИ по интерфейсу CAN.
Разъём X1 предназначен для установки программного обеспечения.
Программное обеспечение блока содержит следующие потоки:
1. Главный поток для непрерывного измерения следующих параметров
паузой в 100 мс:
1.1. С использованием внешнего АЦП AD7792 с периодом выборки 120
мс (80 Гц):
– 2 канала напряжения с общей точкой с коэффициентом усиления 2;
– 1 канал напряжения шунта с коэффициент усиления 2 или 16;
– 1 канал пульсаций напряжения шунта.
1.2 С использованием внутреннего АЦП с частотой выборки 192 кГц:
– 1 канал тока датчика (256 выборок на канал);
– 1 канал сопротивления терморезистора (256 выборок на канал).
2. Обслуживание USB – терминала.
3. Обслуживание CAN интерфейса.
РУ
представляют
собой
две
группы
резисторов,
создающих
дополнительное сопротивление 30 кОм между полюсами СОПТ и «землёй».
РУ уменьшают влияние сопротивления изоляции проводников СОПТ на
напряжение полюсов относительно «земли».
ДДТ используются совместно с БТВ и БКИ для реализации функции
мониторинга
сопротивления
изоляции
присоединений.
Выходное
напряжение ДДТ пропорционально постоянному дифференциальному току в
присоединении. Номинальное напряжение питания ДДТ –12 В, двуполярное.
Уровень выходного сигнала – от минус 5до плюс 5 В. Коэффициент
преобразования – 0,5 В / мА.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 27
ДТ используются совместно с БКНТ и БКАБ для реализации функции
мониторинга
тока
без
использования
шунта.
Выходной
ток
ДТ
пропорционален измеряемому току. Номинальное напряжение питания ДТ –
12 В, двуполярное. Уровень выходного сигнала – от минус 100 мА до
плюс100 мА. Коэффициент преобразования – 2000:1.
1.5 Постановка задачи на исследовательскую работу
1.5.1 Общие требования к ПО КМСОТ
Комплекс мониторинга системы оперативного тока предназначен для
измерения
основных
параметров
первичных
компонентов
системы
электрических
и
оперативного
технологических
постоянного
тока,
вычисления вторичных параметров, характеризующих состояние СОПТ и
заблаговременного информирования о предаварийных режимах работы.
Комплекс обеспечивает следующие функции:
1. Контроль и индикацию напряжения на шинках постоянного тока и
выдачу сигнала о его повышении или понижении;
2. Контроль уровня пульсаций напряжения на секциях и выдачу
сигнала при увеличении пульсаций выше уставок;
3. Измерение и индикацию суммарного тока потребления секций и
сборок СОПТ, токов ЗУ;
4. Измерение и фиксацию аварийных значений сверхтоков, времени их
протекания, оценочный подсчёт остаточного ресурса плавких вставок вводов
питания на сборки СОПТ;
5. Подсчёт
выключателей
количества
оценочное
аварийных
определение
отключений
остаточного
автоматических
коммутационного
ресурса;
6. Измерение напряжений на равных, по количеству элементов, частях
аккумуляторной батареи, вычисление суммы и разности измеренных
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 28
значений, выдачу сигнала при превышении величины разности напряжений
заданного значения, индикацию суммарного значения напряжений;
7. Измерение и индикацию тока в цепи аккумуляторной батареи с
определением направления (по критерию заряд/разряд);
8. Контроль уровня пульсаций тока АБ и выдачу сигнала при
увеличении пульсаций выше уставки;
9. Контроль и индикация температуры аккумуляторной батареи, выдача
сигнала при достижении предельно допустимых значений;
10. Измерение потенциалов полюсов СОПТ относительно «земли»,
вычисление их разности и выдачу сигнала при превышение разности
потенциалов заданных величин;
11. Автоматическое измерение активного сопротивления изоляции
полюсов СОПТ относительно «земли» и выдачу сигнала при его снижении
ниже заданных значений с указанием повреждённого фидера;
12. Ручной поиск участка со сниженным сопротивлением изоляции;
13. Контроль
отключения
целостности
любого
всех
автоматического
предохранителей,
выключателя,
аварийного
положения
всех
коммутационных и защитных аппаратов;
14.
Индикацию
состояния
и
положения
всех
защитных
и
коммутационных аппаратов местную визуальную и по АСУ ТП с привязкой
к мнемосхеме СОПТ;
15. Регистрацию аварийных событий СОПТ с указанием времени
возникновения и записью аварийных параметров в энергонезависимую
память.
1.5.2 Требования к ПО БКАБ
Программное обеспечение блока контроля аккумуляторной батареи
должно обеспечивать:
1. Измерение напряжения АБ;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 29
2. Косвенное измерение тока АБ и его пульсаций с использованием
внешнего шунта по одному гальванически развязанному входу;
3. Косвенное измерение тока АБ и его пульсаций с использованием
внешнего датчика тока;
4. Определение направления тока АБ (заряд/разряд);
5. Проводить расчет степени заряда АБ;
6. Проводить расчет прогнозируемого времени автономной работы
от АБ при текущей нагрузке;
7. Измерение температуры АБ;
8. Расчет
и
контроль
асимметрии
напряжения
АБ
(при
соответствующей схеме подключения);
9. Передачу измеренных значений по шине CAN.
1.5.3 Требования к метрологическим характеристикам
Измерение
электрических
параметров
систем
оперативного
постоянного тока необходимо проводить с учётом следующих требований:
1.
ПО
КМСОТ
должно
обеспечивать
измерение
асимметрии
напряжения АБ в диапазоне от -150В до +150В.
2. Погрешность измерения напряжения асимметрии АБ должна быть
не более ±(0,25%+0,1В).
3. ПО КМСОТ должно обеспечивать измерение напряжения полюсов
сети относительно «земли» в диапазоне от 0В до 300В.
4. Погрешность измерения напряжения полюсов относительно «земли»
должна быть не более ±(0,25%+0,1В).
5. ПО КМСОТ должно обеспечивать измерение напряжения шунта
(косвенное измерение тока) в диапазоне от -0,375В до 0,375В.
6. Погрешность измерения напряжения шунта (косвенное измерение
тока) должна быть не более ±(0,25%+0,1мВ).
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 30
7. ПО КМСОТ должно обеспечивать измерение действующего
значения напряжения пульсаций шунта (косвенное измерение тока) в
диапазоне от 0В до 0,023В.
8.
Погрешность измерения действующего значения напряжения
пульсаций шунта (косвенное измерение тока) в диапазоне частот от 20Гц до
1кГц и амплитуде напряжения не более 40мВ должна быть не более
±(0,25%+0,1мВ).
9. ПО КМСОТ должно обеспечивать измерение тока (при косвенном
измерении с использованием датчика тока) в диапазоне от -100мА до +100мА
10.
Погрешность измерения тока (при косвенном измерении с
использованием датчика тока) должна быть не более ±(1,5%+0,1мА).
11. ПО КМСОТ должно обеспечивать измерение температуры АБ в
диапазоне от 1°С до 70°С.
12. Абсолютная погрешность измерения температуры АБ должна быть
не более 2,5°С.
1.6 Краткие выводы к главе 1
Совокупность источников питания, кабельных линий, шин питания
переключающих
устройств и
других
элементов оперативных
цепей
составляет систему оперативного тока электроустановки. Оперативный ток
на подстанциях служит для питания вторичных устройств, к которым
относятся
оперативные
цепи
защиты,
автоматики
и
телемеханики,
аппаратура дистанционного управления, аварийная и предупредительная
сигнализация.
Острая потребность в модернизации и перевооружении объектов
электроэнергетики, а также ввод новых мощностей требует использования
надежных систем бесперебойного электроснабжения, удовлетворяющих
современным требованиям эксплуатации.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 31
Комплекс
мониторинга
системы
оперативного
тока
(КМСОТ)
предназначен для автоматического измерения сопротивления изоляции,
напряжений,
токов
функциональных
и
пульсаций,
составляющих
в
а
также
СОПТ
и
контроля
передачи
состояния
полученной
информации в АСУТП верхнего уровня.
Приведенные в данной главе технические требования к разработке ПО
для мониторинга и контроля СОПТ, составлены с учётом требований,
предъявляемых
к
современным
устройствам
сбора
информации
на
микропроцессорной основе.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 32
2 Разработка программного обеспечения для блока контроля
аккумуляторной батареи
2.1 Обзор микроконтроллера STM32F405RGT6
Основанные на ARM Cortex-M4 микроконтроллеры серии STM32 F4
являются продолжением ведущей линейки STM32, обладая еще более
высокой производительностью. Микроконтроллеры изготавливаются по
90нм-технологии и используют запатентованный ST Microelectronics’ом ART
Accelerator для достижения наилучших результатов тестов среди основанных
на ядре Cortex-M микроконтроллеров, достигая показателей в 225 DMIPS/606
CoreMark
и
работая
с
флеш-памятью
на
частоте
180
МГц.
Микроконтроллеры серии STM32 F4 являются результатом идеального
симбиоза
возможности
производительностью
управления
обработки
МК
сигналов,
в
реальном
свойственной
времени
и
сигнальным
процессорам, дополняя таким образом линейку контроллеров STM32 новым
классом устройств, сигнальными микроконтроллерами (англ. digital signal
controller, DSC).
На контроллере присутствует два раздельных блока USB. Первый –
USB OTG full-speed, является полностью аппаратной реализацией и
совместим со стандартами USB 2.0, а также OTG 1.0. Работает на скорости до
12 Mбит/с. Поддерживается работа в режиме Host/Device/OTG. Присутствует
SRP (Session request protocol) и HNP (Host negotiation protocol).
Второй – USB OTG high-speed работает в режиме Host/Device/OTG с
высокой
скоростью
480
Мбит/с,
для
чего
необходим
блок
приемопередатчика, работающего на высокой скорости через специальный
ULPI-интерфейс.
Интерфейс позволяет работать с картами SD/SDIO/MMC-картами
памяти и дисковыми контроллерами CE-ATA. В восьмибитном режиме
несущая частота обмена данными составляет 48 MHz. Контроллер
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 33
соответствует таким стандартам: SD Memory Card 2.0, MultiMediaCard
System 4.2 (работа в режимах 1/4/8 бит), SD I/O Card 2.0 (режимы 1го и 4х
бит), CE-ATA 1.1.
Контроллер оснащен тремя блоками SPI, каждый из которых работает в
режиме Мaster (Мultimaster) либо в режиме Slave, передавая данные
полудуплексно,
аппаратный
полнодуплексно
расчет
либо
контрольных
симплексно.
сумм
CRC
Поддерживается
для
повышения
помехоустойчивости канала связи: так CRC может быть передан последним
байтом слова в режиме Tx, присутствует автопроверка правильности CRC
последнего пришедшего байта. Блок устройства SPI1 работает на скоростях
вплоть до 37,5 Mбит/с. Другие ограничены максимальной скоростью в 21
Мбит/с. Передача данных идет в виде 8- или 16-битных блоков, вперед
младшим либо старшим битом.
На борту находятся два CAN-модуля, работающих по стандартам 2.0А
и 2.0В, скорость работы при этом достигает 1 Мбит/с. Модули могут
работать со стандартными, а также с расширенными кадрами. Модуль CAN
содержит три буфера передачи, трехкаскадный FIFO-стек и 28 банков
фильтров (распределены и масштабируемы).
В микроконтроллерах STM32 есть мощный модуль АЦП, который
имеет хорошие характеристики и интересные особенности: 18 каналов ввода
(16 внешних и 2 внутренних); разрешение 12 бит; всевозможные режимы
преобразования: однократное, непрерывное, по триггеру, по таймеру;
удобное выравнивание битов результата; скорость оцифровки — до 0.9 MSPS
с программируемым временем захвата и преобразования; автокалибровка;
режим сканирования входов по списку; аналоговый watchdog.
2.2 Описание платформы Eclipse
Платформа Eclipse создана для построения интегрированных сред
разработки (IDE). Она может использоваться для создания различных
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 34
сквозных вычислительных решений для множества сред выполнения
программ. Внешний вид программы представлен на рисунке 10.
Рисунок 10 – Страница обзора программы Eclipse
При выборе архитектуры, создателям инструментов необходимы
равные условия и полное раскрытие информации при отсутствии скрытых
API и интерфейсов от инструмента к инструменту. Eclipse предлагает для
этой цели открытый исходный код платформы. Для проверки качества,
портативности и быстродействия кода опубликованные API тестируются
консорциумом
смежных
индустрий,
сформированных
в
сообщество.
Сообщество заинтересовано в совместной работе для улучшения сред
разработки и интеграции продукта. Сообщество разделяет общие интересы в
создании таких продуктов, которые будут способны легко взаимодействовать
в различных средах путем использования технологии плагинов. При
совместной деятельности и распределения ключевой технологии интеграции
поставщики Eclipse-совместимых инструментов могут сконцентрироваться
на собственных областях экспертизы и создании новых технологий
разработки.
Также очень важна свобода в расширении платформы для достижения
новых
возможностей.
Eclipse
предоставляет
возможность
создания
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 35
производных работ, включая перераспределение платформы. Использование
Eclipse
позволяет
разработчикам
инструментов
сфокусироваться
на
собственных основных задачах и новых моделях для технологии разработки.
Eclipse обеспечивает получение своевременных ответов на требования
об изменениях и улучшениях продукта, предоставляемых контролируемым и
организованным способом. Посредством сайта www.eclipse.org разработчики
могут вносить различные изменения. Это достигается путем совместной
работы и всяческого содействия разработчиков в развитии платформы.
Основной идеей проекта Eclipse является создание "Apache для
инструментов
разработчика".
Под
этим
подразумевается
создание
инфраструктуры с открытым кодом, предоставляющей множество базовых
сервисов,
так
необходимых
разработчикам
ПО.
Это
должен
быть
"инструментарий для разработки инструментариев". Являясь не просто
набором API, инфраструктура Eclipse будет состоять из реального кода,
созданного для выполнения реальной работы.
Платформа Eclipse представляет собой фундамент для построения и
запуска интегрированных инструментов разработки сквозного программного
обеспечения. Платформа состоит из компонентов с открытым исходным
кодом, используемым поставщиками инструментов для построения решений,
встраиваемых в интегрированную рабочую область. Платформа Eclipse
объединяет в себе технологию, выражающуюся в правильно оформленном
дизайне и среде реализации.
Eclipse была реализована и протестирована для Windows NT, Windows
XP (Beta), Windows 2000, Windows 98, Windows ME и Red Hat Linux Version
7.1. Технология Eclipse была написана на языке Java, что позволяет легко
использовать ее в широком кругу различных платформ.
Рабочее пространство
Eclipse состоит из нескольких панелей,
называемых представлениями, например навигационное или схематическое
представления (navigator or outline views). Набор таких представлений
называется перспективой. Одна из наиболее распространённых перспектив Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 36
перспектива Ресурсы (Resource), которая представляет собой базовый набор
представлений
для
управления
проектами
и
просмотра,
а
также
редактирования файлов проекта.
После установки основной сборки Eclipse для C/C++ нужно добавить в
программу дополнительные пакеты GDB Hardware Debugging и и GNU ARM
OpenOCD Debugging (рисунок 11).
Рисунок – 11 Установка дополнительного пакета GDB Hardware Debugging
После
добавления
новых
конфигураций
отладки
настраиваем
программу согласно рисункам 12 и 13.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 37
Рисунок 12 – Настройка вкладки «Главное меню»
Рисунок 13 – Настройка вкладки «Отладчик»
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 38
После в консоли загружаем написанную ранее программу и запускаем
отладку. Если программа успешно загрузилась, то Eclipse предложит перейти
в перспективу отладки и остановит программу. Можно ставить точку
останова в коде и возобновить работу программы (рисунок 14).
Рисунок 14 – Рабочая панель программы Eclipse после отладки
2.3 Операционная система для микроконтроллеров FreeRTOS
Назначение
аппаратурой
и
ОС
–
заполнение
высокоуровневыми
ниши
между
программами,
они
низкоуровневой
предоставляют
программам удобный интерфейс обращения к системным ресурсам, будь то
процессорное время, память или устройства ввода/вывода. В настоящее
время
создано
и
развивается
множество
ОС, ориентированных
на
выполнение на МК. Однако МК как платформа для выполнения ОС имеет
существенные отличия от современных компьютеров. Прежде всего, МК
работает
в
режиме
реального
времени,
то
есть
время
реакции
микроконтроллерного устройства на внешнее событие должно быть строго
меньше заданной величины и должно быть сопоставимо со скоростью
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 39
протекания внешних процессов. Типичный пример: время реакции на
срабатывание датчика давления в промышленной установке должно быть не
более 5 мс, иначе произойдет авария. Таким образом, ОС для МК — это
операционная система реального времени (ОСРВ). К ОСРВ предъявляются
жесткие временные требования в отличие от распространенных ОС общего
назначения (Windows, UNIX-подобные и др).
Микроконтроллер, по сути, это однокристальный компьютер с сильно
ограниченными аппаратными ресурсами, хотя диапазон выпускаемых МК по
производительности и объемам памяти очень широк. Тем не менее, все МК
имеют
существенные
аппаратные
ограничения,
что
предъявляет
специфические требования к ОСРВ для МК. Их основные особенности:
1. Низкая производительность.
2. Малый объем ОЗУ и ПЗУ.
3. Отсутствие блока управления памятью (Memory management unit,
MMU), используемого большинством современных ОС, например Windows и
UNIX-подобными.
4. Отсутствие аппаратных средств поддержки многозадачности
(например, средств быстрого переключения контекста).
Рассмотрим преимущества, которыми обладает ОСРВ:
1. Многозадачность. ОСРВ предоставляет программисту готовый,
отлаженный механизм многозадачности. Каждую отдельную задачу можно
программировать по отдельности так, как будто остальных задач не
существует. Например, можно разработать архитектуру программы, то есть
разбить ее на отдельные задачи и распределить их между командой
программистов. Программисту не нужно заботиться о переключении между
задачами: за него это сделает ОСРВ в соответствии с алгоритмом работы
планировщика.
2. Временная база. Любая ОСРВ имеет удобный программный
интерфейс для отсчета интервалов времени и выполнения каких-либо
действий в определенные моменты времени.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 40
3. Обмен данными между задачами. Если необходимо передать
информацию от одной задачи к другой без потерь, то используется очередь,
которая гарантирует, что сообщения дойдут до адресата в том объеме и в той
последовательности, в которой были отправлены.
FreeRTOS — это многозадачная, мультиплатформенная, бесплатная
операционная система жесткого реального времени с открытым исходным
кодом. FreeRTOS была разработана компанией Real Time Engineers Ltd.
специально для встраиваемых систем. Большая часть кода FreeRTOS
написана на языке Си, ассемблерные вставки минимального объема
применяются лишь там, где невозможно применить язык Си из-за специфики
конкретной аппаратной платформы. Работа планировщика FreeRTOS в
режиме вытесняющей многозадачности имеет много общего с алгоритмом
переключения потоков в современных ОС общего назначения. Вытесняющая
многозадачность предполагает, что любая выполняющаяся задача с низким
приоритетом прерывается готовой к выполнению задачей с более высоким
приоритетом. Как только высокоприоритетная задача выполнила свои
действия, она завершает свою работу или переходит в состояние ожидания, и
управление снова получает задача с низким приоритетом. Переключение
между задачами осуществляется через равные кванты времени работы
планировщика, то есть высокоприоритетная задача, как только она стала
готова к выполнению, ожидает окончания текущего кванта, после чего
управление
получает
планировщик,
который
передает
управление
высокоприоритетной задаче. Таким образом, время реакции FreeRTOS на
внешние события в режиме вытесняющей многозадачности — не больше
одного кванта времени
планировщика, который
можно
задавать в
настройках. По умолчанию он равен 1 мс.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 41
2.4 Описание кода программы
2.4.1 Подключение библиотек
Работа программы микроконтроллера по контролю аккумуляторной
батареи в СОПТ начинается с подключения библиотек, инициализации всех
использующихся переменных и функций. Определяется количество каналов
АЦП, переменных входного напряжения (Uvh1 и Uvh2), напряжения
ассиметрии (Uasm), напряжения шунта (Ush), производится настройка
тактирования и объявление переменной flag1 и статуса ошибки. Часть кода
программы, отвечающего за перечисленные выше действия, представлена на
рисунке 15.
Рисунок 15 – Код программы, отвечающий за подключение библиотек и
объявление переменных
2.4.2. Функция приведения значения АЦП в нормальный вид
Алгоритм, с помощью которого значение АЦП приводится в
нормальный вид, представлен на рисунке 16. Часть кода программы показана
на рисунке 17. Обратный и дополнительный коды используются для замены
операции вычитания операцией сложения, что упрощает устройство
арифметического
блока
ЭВМ.
Дополнительный
код
—
наиболее
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 42
распространенный способ представления отрицательных чисел. Обратный
код для положительного числа совпадает с прямым кодом.
Рисунок 16 – Алгоритм приведения значения АЦП в нормальный вид
Рисунок 17 – Код программы, реализующий вывода значения АЦП в
нормальном виде
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 43
2.4.3 Функции для записи и чтения параметров во/из Flash
Зачастую
возникает
необходимость
сохранить
ряд
данных
в
энергонезависимую память. Такими данными могут быть настройки
программы для МК. Если нет внешней памяти, то приходится использовать
внутренние ресурсы МК. К сожалению STM32А4 не имеет в своём составе
памяти EEPROM, позволяющей писать побайтно, как в ОЗУ. Поэтому
появляется необходимость использовать Flash-память. Перед записью
определенной страницы она должна быть предварительно стерта («стертому»
состоянию памяти соответствуют все биты, установленные в единицу).
Стирать память можно только по секторам, т.е., если требуется записать 1
байт, необходимо скопировать весь сектор, стереть его и записать в него
старые данные, заменив в них нужный байт. Записать же данные поверх
текущих невозможно. Соответственно, во время записи нужные биты могут
быть «обнулены». Прежде чем что-то делать с памятью её надо сначала
разблокировать.
Эта
операция
выполняется
с
помощью
функции
FLASH_Unlock(). После того, как запись в память закончена, память
блокируется функцией FLASH_Lock().
Стирание
Flash
осуществляется
FLASH_EraseSector(FLASH_Sector_11,
VoltageRange_3),
функцией
где
FLASH_Sector_11 указывает на номер сектора, в котором находятся данные,
подлежащему стиранию, VoltageRange_3 – диапазон питания. Существуют 4
диапазона, в нашем случае VoltageRange_3 соответствует диапазону питания
от 2.7 до 3.6 В. Запись во Flash происходит по адресу команды
FLASH_ProgramByte(). Первым пишется адрес, в который происходит запись,
вторыми данные, которые необходимо записать. Код программы для записи
параметров во Flash показан на рисунке 18. Код программы для чтения
параметров из Flash показан на рисунке 19.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 44
Рисунок 18 – Код программы для записи параметров во Flash
Рисунок 19 – Код программы для чтения параметров из Flash
2.4.4 Инициализация работы блока
Начало подпрограммы инициализации работы блока начинается с
вызова
функции
BKABInit.
Далее
проводим
процедуру
тактирования периферийного устройства и инициализацию SPI
настройки
(команда
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 45
SPI_ini()) и таймера АЦП (команда init_timerACP()). После задержки в 50мс
производится сброс двух АЦП и их последующая калибровка. С помощью
строчки Ush = FloatACP присваиваем переменной Ush значение напряжения
шунта,
замер
которого
производится
командой
ACP2_a2 = ACP77922_Start_SCM(2,2). Далее опрашиваем таймер и если он
сброшен, то происходит сброс источника прерываний и измерение
напряжения на положительной и отрицательных клеммах АКБ, напряжения
пульсации шунта. После происходит вычисление полного напряжения АКБ.
В случае, если напряжение пульсации шунта Ush < 0.073В, тогда
настраиваем второй канал АЦП на коэффициент усиления равным 16. В
противном случае, если Ush > 0.073В, канал настраивается на коэффициент
усиления равным 2. Код программы инициализации работы блока
представлен на рисунках 20 и 21.
Рисунок 20 – Код настройки тактирования периферийного устройства,
инициализации SPI и таймера АЦП
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 46
Рисунок 21 – Вычисление полного напряжения АКБ и настройка канала АЦП
на нужный коэффициент усиления
2.4.5 Прерывание по отключению питания и инициализация
детектора отключения питания
В современных условиях
к микроконтроллерам предъявляются
требования пониженного энергопотребления и малого тепловыделения.
Выполнение таких требований обеспечивается, в первую очередь, снижением
питающего напряжения ядра микроконтроллера и введением специальных
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 47
режимов энергосбережения. Микроконтроллеры серии STM32 включают в
свой состав специальный блок управления питанием. Блок управления
питанием STM32 состоит из набора регуляторов напряжения и логики
управления
режимами
работы.
Функцию,
позволяющую
определять
изменение питающего напряжения и оперативно реагировать, называют PVD
— Programmable Voltage Detector.
PVD используют, когда есть необходимость отслеживать напряжение
питания, чтобы выполнить какие-то действия, когда напряжение питания
упадет ниже указанного уровня. Разрешение работы PVD устанавливается
битом PVDE. Флаг PVDO, доступный в регистре PWR_CSR, указывает
превышение напряжения VDD над заданным для PVD порогом. Это событие
внутри микроконтроллера связано с линией 16 EXTI и может генерировать
прерывание, если оно разрешено в EXTI-регистрах. Прерывание от PVD
может быть сгенерировано, когда напряжение VDD станет ниже или выше
порога PVD, в зависимости от конфигурации перепада (фронт или срез) на
линии 16 EXTI. На программу обработчика прерывания можно возложить
выполнение некоторых задач при аварийном завершении задачи. Например,
сохранение важных вычисленных значений в энергонезависимой памяти.
Временная диаграмма работы PVD приведена на рисунке 22.
После того, как порог выбран, PVD будет сообщать о том, что
напряжение питания упало ниже порога (или наоборот, поднялось выше
него) установкой флага PVDIF. Если разрешено прерывание, то оно будет
срабатывать при каждой установке PVDIF.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 48
Рисунок 22 – Временная диаграмма работы PVD
На рисунке 23 показан код программы для настройки прерывания по
отключению питания.
Рисунок 23 – Код программы для настройки прерывания по отключению
питания
Алгоритм и код программы для инициализации детектора пропадания
питания представлены на рисунках 24 и 25 соответсвенно.
Командой PWR_PVDLevelConfig(PWR_PVDLevel_6) задается порог
напряжения
3.05
В.
Далее
командами
PWR_PVDCmd(ENABLE)
и
NVIC_InitTypeDef NVIC_InitStructure разрешаем прерывание и настраиваем
NVIC – контроллер приоритетных векторных прерываний.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 49
Рисунок 24 – Алгоритм программы для инициализации детектора пропадания
питания
Рисунок 25 – Код программы для инициализации детектора пропадания
питания
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 50
2.4.6 Настройка тактирования БТВ
Код и алгоритм настройки тактирования БТВ представлены на
рисунках 26 и 27 соответственно.
Рисунок 26 – Подпрограмма настройки тактирования БТВ
Функция
void
RCC_Configuration(void)
является
оболочкой
для
процедуры настройки тактирования. Сначала производится сброс всего
RCC_DeInit(),
потом
включение
RCC_HSEConfig(RCC_HSE_ON),
затем
внешнего
ждем
генератора
стабилизации
—
генератора
HSEStartUpStatus = RCC_WaitForHSEStartUp() и только после этого при
успешном старте генератора происходит дальнейшая настройка — в
противном случае включается внутренний генератор HSI.
После
запуска
генератора
необходимо
провести
настройку
конфигурации ядра процессора, периферийной шины. Далее настраивается
PLL — функция RCC_PLLConfig(RCC_PLLSource_HSE, 6, 96, 6, 4)
настраивает источник - RCC_PLLSource_HSE и коэффициент умножения
Командой while (RCC_GetSYSCLKSource() != 0x08 ожидаем стабилизации
генератора.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 51
Рисунок 27 – Алгоритм подпрограммы настройки тактирования БТВ
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 52
2.4.7 Инициализация SPI и портов GPIO
Как и любой другой интерфейс, SPI используется для передачи данных
от одного устройства к другому. Устройства на шине SPI не равноправны,
как правило, присутствует одно главное устройство (Master) и множество
подчинённых устройств (Slave). Обычно, в роли мастера выступает
микроконтроллер, а подчинёнными устройствами является различная
периферия вроде термодатчиков, акселерометров, часов реального времени и
т.д. Сама шина SPI физически представляет собой 4 провода:
1) MOSI – по этому проводу данные идут от Master к Slave устройству
2) MISO – по этому проводу данные идут от Slave к Master устройству
3) SCK – через этот провод передается тактовый сигнал от Master к
Slave устройствам
4) CS – Chip select (или SS – Slave select) – Через этот провод Master
указывает Slave на то, что данные передаются именно ему.
К одной шине может подключаться несколько устройств, количество
которых теоретически не ограничено. SPI предоставляет возможность
обмениваться данными в полнодуплексном режиме. Пока Master генерирует
тактовые импульсы, он может посылать данные на Slave устройство и
одновременно принимать их от него же (рисунок 28).
Рисунок 28 – Простейшее подключение к шине SPI
С помощью команды GPIO_InitTypeDef проводим настройку пинов
периферийного устройства. Для того, чтобы настроить порт нужно поместить
все данные в макрофункцию GPIO_Init_PIN(GPIO,N,MODE); где: GPIO —
это порт (GPIOA, GPIOB, GPIOC и т.д.), N — это номер бита (число от 0 до
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 53
15), MODE — это режим пина. Затем командой RCC_AHB1PeriphClockCmd
включаем тактирование необходимых модулей. В нашем случае настраиваем
выводы 5, 6 и 7 порта А на работу в режиме альтернативной функции, порт 3
настраиваем на режим ввода данных. После проводим заполнение структуры
с параметрами SPI модуля и разрешаем работу с выбранными устройствами.
Код программы инициализации SPI и портов GPIO представлен на
рисунке 29.
Рисунок 29 – Код программы инициализации SPI и портов
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 54
2.4.8 Функция сброса АЦП
Для реализации функции сброса АЦП сначала включаются функции
EN1_ON
(Enable) и CS1_ON (Crystal select). Затем программа ожидает
реализацию передачу данных и после их получения пересылает число по
каналу
SPI1
(команда
SPI_I2S_SendData).
После
того,
как
данные
пересылаются, контроллер получает сигнал и после задержки в 500 мс
выключает функции Enable и Crystal select. Код программы функции сброса
АЦП представлен на рисунке 30.
Рисунок 30 – Код программы функции сброса АЦП
2.4.9 Функция калибровки каналов АЦП
Функция калибровки каналов АЦП начинается с создания служебных
массивов для пересылки в АЦП по SPI (команды uint8_t datach[2] и uint8_t
datacalib[2] ). После активаций функций Enable и Crystal select настраиваем
конфигурацию регистра на униполярный первый канал с коэффициентом
усиления 2, аналогично поступаем со вторым каналом. Далее настраиваем
MODE-регистр на калибровку шкалы АЦП и калибровку нуля. В конце
подпрограммы выключаем функции Enable и Crystal select. На рисунке 31
представлена реализация программного кода.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 55
Рисунок 31 – Код программы для реализации функции калибровки
каналов АЦП
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 56
2.4.10 Функция одиночного преобразования АЦП
В режиме
одиночного преобразования задаётся группа от 1 до 16
каналов, обработка которых производится последовательно, а результат
помещается в один-единственный 12-разрядный регистр. Подразумевается,
что данные будут сохраняться с помощью DMA, нельзя просто выбрать один
канал, нужно задать группу, а в ней выбрать количество каналов.
Преобразования могут быть циклическими и периодическими, запускаться
по таймеру или внешнему прерыванию.
В начале функции одиночного преобразования АЦП, как и в
вышеописанных функциях, необходимо активировать Enable и Crystal select.
Затем настраиваем выбранные каналы в конфигурационном регистре с
коэффициентом усиления 2 и на работу одиночного преобразования в MODрегистре. После ожидаем готовность данных в DATA-регистре и считываем
их. Реализация кода данной функции представлена на рисунке 31.
2.5 Краткие выводы к главе 2
В данной главе описан
микроконтроллер STM32F405RGT6, его
характеристики, интерфейс, работа АЦП. Микроконтроллеры серии STM32
F4 являются результатом идеального симбиоза возможности управления МК
в реальном времени и производительностью обработки сигналов.
Также проведен обзор платформы Eclipse, созданной для построения
интегрированных сред разработки (IDE). Она может использоваться для
создания различных сквозных вычислительных решений для множества сред
выполнения программ. Рассмотрен процесс настройки платформы, загрузка
новых библиотек и начало работы.
Описана программа для микроконтроллерной системы управления
блока
контроля
аккумуляторной
батареи
комплекса
мониторинга
оперативного тока. Представлены алгоритмы подпрограмм.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 57
Рисунок 31 – Код функции одиночного преобразования АЦП
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 58
3 Проверка работы программы с помощью операторной панели
3.1 Отображение полученных данных на операторной панели
Операторная
панель
—
специализированное
вычислительное
устройство массового (либо крупносерийного) производства, реализованное
в
виде
промышленного
контроллера
(а
не
компьютера),
широко
использующее человеко-машинный интерфейс для управления операторами
отдельными
автоматизированными
устройствами
или
целыми
технологическими процессами в составе АСУ ТП в рамках промышленной
автоматизации.
Операторная
панель
обычно
представляет
собой
конструкцию,
имеющую плоскую переднюю часть с дисплеем и органами управления, с
высоким IP, защищённую от негативного воздействия окружающей
(агрессивной) среды и механического воздействия. Как правило, панель
имеет небольшую глубину, что позволяет удобно разместить её на панели
управления, пульте оператора, или на дверце шкафа, содержащего
устройства автоматизации.
Для комплекса мониторинга системы оперативного тока была
разработана операторная панель, представленная на рисунке 32.
Рисунок 32 – Операторная панель КМСОТ
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 59
При включении панели появляется главное меню (рисунок 33), на
котором отображается состояние сети, всех присоединенных блоков, блока
контроля напряжений и токов и блока контроля аккумуляторной батареи.
Если иконка загорается красным цветом, это значит, что значения какоголибо параметра (параметров) вышли за пределы уставки.
Рисунок 33 – Главное меню операторной панели
Во вкладке «Присоединения» можно посмотреть параметры всех
блоков, присоединенных к КМСОТ. На рисунке 34 в качестве примера
приведены параметры блока контроля изоляции. Для каждого блока
отражены значения сопротивления изоляции и активность дискретных
входов.
Состояние всего комплекса мониторинга системы оперативного тока
можно просмотреть, нажав на значок «Комплекс исправен» (если комплекс
неисправен, то фон иконки становится красным, а надпись меняется на
«Комплекс неисправен»). Откроется окно, представленное на рисунке 35.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 60
Рисунок 34 – Вкладка «Присоединение»
Рисунок 35 – Вкладка «Состояние комплекса»
Во вкладке «Меню» (рисунок 36) также можно отслеживать состояние
комплекса. Кроме этого, можно перейти к журналу событий, который
фиксирует каждое изменение параметров (рисунок 37). В нем можно
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 61
посмотреть в какое время произошло превышение уставки, возврат к норме,
когда образовалась аварийная ситуация.
Рисунок 36– Вкладка «Меню»
Во вкладке «Тренды» (рисунок 38) отображаются графики напряжений
и сопротивлений за определенное время. Чтобы настроить графики, во
вкладке «Вид» выбираем тренды, которые необходимо вывести на экран,
настраиваем предел шкалы и время, в течение которого будет отображаться
информация (рисунок 39).
В «Настройках» можно просматривать и задавать сервисные параметры
и уставки блоков (рисунок 40).
К сервисным параметрам относятся: верхний предел тестового
воздействия полюса «+», верхний предел напряжения тестового воздействия
полюса «–», верхний предел разности напряжения полюсов, запас по
напряжению, запас по сопротивлению, максимальная емкость сети, верхний
предел тока тестового воздействия, количество циклов для подтверждения
неисправности датчиков.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 62
Рисунок 37– Вкладка «Журнал»
Рисунок 38– Вкладка «Тренды»
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 63
Рисунок 39– Настройка вида трендов
Рисунок 40 – Задание сервисных параметров и уставок БКАБ
Уставка – изменение некоторой величины или параметра, по
достижении которого происходит изменение состояния системы. Для БКАБ
уставками являются: верхний предел температуры АБ, верхний предел
асимметрии напряжений, верхний предел тока шунта, верхний предел
пульсаций шунта и верхний предел тока.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 64
3.2 Отображение параметров аккумуляторной батареи
Как уже было сказано, основными параметрами для аккумуляторной
батареи являются те параметры, которые задаются в уставках. После
загрузки кода программы в микропроцессор и запуска операторной панели,
мы можем просмотреть состояние этих параметров. На рисунке 41
представлен пример, когда напряжение асимметрии АБ составляет –20,1 В
при предельно допустимом, заданном в уставках, 12 В. Следовательно, это
значение будет иметь красный фон и оповестит оператора об аварийном
положении.
Рисунок 41 – Окно состояния аккумуляторной батареи при напряжении
асимметрии АБ, превышающего аварийную уставку
Когда данная проблема будет устранена, то окно состояния АБ примет
вид, изображенном на рисунке 42.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 65
На рисунке 42 также видно, что действующее значение пульсаций тока
шунта превышает предупредительную уставку и значение имеет желтый
предупредительный фон. На рисунке 43 показан пример, когда действующее
значение пульсаций тока шунта не превышает уставку и его фон зеленый.
Рисунок 42 – Окно состояния аккумуляторной батареи без напряжения
асимметрии
Рисунок 43 – Окно состояния аккумуляторной батареи при действующем
значении пульсаций, не превышающего уставку
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 66
3.3 Краткие выводы к главе 3
В данной
главе была продемонстрирована работа программы с
помощью операторной панели. Проведено описание всех настроек и
основных возможностей при работе с панелью.
Показаны
возможные
состояния
отчетов
и
окон
параметров
аккумуляторной батареи.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 67
ЗАКЛЮЧЕНИЕ
В данной работе были рассмотрены особенности структуры систем
оперативного
тока,
приведена
сравнительная
характеристика
использующихся в настоящее время устройств для мониторинга параметров
СОПТ; разработана программа для микропроцессорного блока контроля
аккумуляторной батареи, в соответствии c техническим заданием.
Результатом
проведенных
научно-исследовательских
и
опытно-
конструкторских работ следует считать создание микропроцессорного
измерительного блока, позволяющего проводить контроль состояния
аккумуляторной батареи, а также передачу измеренных значений по шине
CAN в устройство сбора информации.
Благодаря реализации программного обеспечения микроконтроллерной
системы на платформе FreeRTOS, функционал работы блока может быть
дополнен без изменения основного кода программы.
Дальнейшие исследования и разработки по расширению программного
функционала возможны в сторону исследования и разработки алгоритмов
контроля
технологических
параметров
СОПТ,
например
контроль
остаточного ресурса. Также в дальнейшем представляется возможным
разработка
OPC-сервера
и
конфигурационных
драйверов
комплекса
мониторинга СОПТ, для передачи измеренных значений в централизованную
SCADA-систему.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 68
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.
Воеводин В. В. Вычислительная математика и структура
алгоритмов / М.: Изд-во МГУ, 2006. – 112 с.
2. Гусев Ю. П. Электрофизические процессы в аккумуляторах
электростанций при коротких замыканиях / Ю. П. Гусев, А. М. Поляков. //
Известия РАН. Энергетика. – 2001. – №4. – C. 99–105.
3. Хендерсон П. Функциональное программирование: Применение и
реализация. / М.: Мир, 1983. – 349 с.
4. Антонов Л. Е. Электромагнитные помехи в сети оперативного
постоянного тока. Влияние аккумуляторной батареи / Л. Е. Антонов, А. А.
Ворошилов, П. А. Смирнов // Новости ЭлектроТехники. – 2015. – № 2. – С.
1–15.
5. Балашов В. В. Распределительная сеть СОПТ. / В. В. Балашов, Г. Ч.
Чо // «Энергоэксперт». – 2009. – №6 – С. 5–24
6. Коротков М. В. Комплекс мониторинга системы оперативного тока /
М. В. Коротков, В. Ю. Клементьев, А. Ю. Бальзамов // В сборнике:
Материалы XXI научно-практической конференции молодых ученых,
аспирантов и студентов Национального исследовательского Мордовского
государственного университета им. Н. П. Огарёва. В 3-х частях. Составитель
А. В. Столяров. Ответственный за выпуск П. В. Сенин. – 2017. – С. 243–250.
7. Коротков М. В. Комплекс мониторинга системы оперативного тока:
контроль аккумуляторной батареи. / М. В. Коротков, А. Ю. Бальзамов // В
сборнике: XLV Огарёвские чтения. Материалы научной конференции. В 3-х
частях. Ответственный за выпуск П.В. Сенин. – 2017. – С. 301–305.
8. Коротков М. В. Контроль аккумуляторной батареи в комплексе
мониторинга системы оперативного тока / М. В. Коротков, А. Ю.
Бальзамов // В сборнике: Проблемы и перспективы развития отечественной
светотехники, электротехники и энергетики. Материалы XIII Всероссийской
научно-технической конференции с международным участием в рамках IV
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 69
Всероссийского светотехнического форума с международным участием.
Ответственный редактор О. Е. Железникова. – 2017. – С. 563-569.
9. Антонов Л. Е. Обоснование выбора решения по организации
оперативного постоянного тока на примере выпущенных проектов / Энергоэксперт. – 2009. – № 2. – С. 32–39.
10. Способы контроля заряда аккумуляторов. [Электронный ресурс]. –
Режим доступа: http://www.powerinfo.ru/control.php.
11.
Микроконтроллеры
[Электронный
ресурс].
с
–
ядром
Cortex-M4
Режим
STMicroelectronics.
доступа:
http://mt-
system.ru/news/stmicroelectronics/mikrokontrollery-s-jadrom-cortex-m4stmicroelectronics.
12. Сайт компании «ТЕХНОКОМПЛЕКТ». Комплекс мониторинга
систем оперативного тока серии КМСОТ «Дубна». [Электронный ресурс]. –
Режим доступа: http://www.technocomplekt.ru/produktsiya/kmsot-m-dubna.html.
13.
Сайт
компании
«STMicroelectronics».
STM32F4
Series.
[Электронный ресурс]. Режим доступа: http://www.st.com/en/microcontrollers/s
tm32f4series.html?querycriteria.
14. Комплекс мониторинга системы оперативного тока КМСОТ-М
«Дубна».
Руководство
по
эксплуатации.
/
ЗАО
«МПОТК
«ТЕХНОКОМПЛЕКТ».
15. Сайт компании ООО «Завод «ЭНЕРГОСИСТЕМЫ». Новая
платформа «ZES» для систем оперативного постоянного тока. [Электронный
ресурс]. – Режим доступа: http://www.zavodes.ru/.
16. Вострокнутов H. H. Применение полупроводников в устройствах
релейной защиты и системной автоматики. / Н. Н. Вострокнутов, В. Г.
Дорогунцев, В. М. Маранчак, Н. И. Овчаренко, Е. Л. Сиротинский, В. Л.
Фабрикант – М.: Высшая школа, 1962. – 284 с.
17. Шефер В. А. Экспериментальное исследование режимов работы
полупроводниковых приборов в релейных схемах. – М.: Энергия, 1972 –
С. 46–55.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 70
18. Волков М. С. Защита установок оперативного тока от коротких
замыканий / М. С. Волков, Ю. П. Гусев, И. А. Тимонин // Радиоэлектроника,
электротехника и энергетика. Тез. докл. XV междунар. науч.-техн. конф.
студентов и аспирантов: В 3-х т. М.: Издательский дом МЭИ. – 2009. –
С. 339–350.
19.
Курниц
А.
А.
FreeRTOS
–
операционная
система
для
микроконтроллеров / Компоненты и Технологии (КиТ). – 2011. – №2. – С. 1–
7.
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 71
ПРИЛОЖЕНИЕ А
(обязательное)
Исходный код программы
#include "spi_dma.h"
uint16_t ACP1_a1=0;
uint16_t ACP1_a2=0;
uint16_t ACP2_a1=0;
uint16_t ACP2_a2=0;
double Uvh1=0;
double Uvh2=0;
int32_t Uvch=0;
float Uasm=0.0;
float Ush=0.0;
double RMS=0.0;
uint16_t RMStemp=0.0;
uint8_t flag1;
RCC_ClocksTypeDef RCC_Clocks1;
ErrorStatus HSEStartUpStatus;
//funkciya privideniya znach ACP v normaln vid
float FloatACP(uint16_t ACP, uint8_t gain)
{
float temp;
uint16_t temp1=0x0000;
uint16_t temp2=0x0000;
if ((ACP&0x8000) == 0x8000)
{
temp = ((ACP&0x7FFF)*CD)/gain;
return -(temp);
} else
{
temp1 = ACP|0x8000;
temp2 = ~temp1;
temp = (temp2+1)*CD/gain;
return temp;
}
}
//fukciya dlya zapisi parametrov vo flesh
adr WriteParamsToFlash(void *params)
{
adr Adr;
uint16_t i;
uint16_t n1=0;
uint16_t n2=0;
uint8_t *byte_ptr;
int size = sizeof(params);
uint32_t DEVICE_SECTOR;
uint32_t DEVICE_ADDRESS;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 72
byte_ptr = (uint8_t *) params;
FLASH_Unlock();
if ( size > 128000)
{
DEVICE_SECTOR = FLASH_Sector_10;
DEVICE_ADDRESS = 0x080C0000;
FLASH_Unlock();
FLASH_EraseSector(DEVICE_SECTOR, VoltageRange_3);
FLASH_EraseSector(FLASH_Sector_11, VoltageRange_3);
}
else
{
DEVICE_SECTOR = FLASH_Sector_11;
DEVICE_ADDRESS = 0x080E0000;
FLASH_EraseSector(DEVICE_SECTOR, VoltageRange_3);
}
for (i=0; i < size; ++i)
{
FLASH_ProgramByte(DEVICE_ADDRESS+i, byte_ptr[i]);
n2 = DEVICE_ADDRESS+i;
}
n1 = DEVICE_ADDRESS;
FLASH_Lock();
Adr.start = n1;
Adr.end = n2;
return Adr;
}
//fukciya chteniya parametrov iz flesh
uint8_t flash_read(uint32_t address)
{
return (*(__IO uint8_t*) address);
}
void ReadParamsFromFlash(uint32_t n1, uint32_t n2, void *params)
{
uint8_t *byte_ptr;
uint32_t i;
byte_ptr = (uint8_t *) params;
FLASH_Unlock();
for (i=0; i < n2-n1+1; ++i)
{
byte_ptr[i] = flash_read(n1+i);
}
FLASH_Lock();
}
//zaderzhka v mks
void delay_ms(uint32_t delay_temp)
{
TIM8->PSC = 16-1;
TIM8->ARR = delay_temp;
TIM8->EGR = TIM_EGR_UG;
TIM8->CR1 = TIM_CR1_CEN|TIM_CR1_OPM;
while ((TIM8->CR1&TIM_CR1_CEN)!=0);
}
//inicializac raboti bloka
void BKABInit(void)
{
RCC_Configuration();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);
SPI_ini();
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 73
init_timerACP();
delay_ms(50);
ACP77921_Reset();
ACP77922_Reset();
ACP77921_Calibrate(1);
ACP77921_Calibrate(2);
ACP77922_Calibrate(1,2);
ACP77922_Calibrate(2,2);
ACP2_a2 = ACP77922_Start_SCM(2,2);
Ush = FloatACP(ACP2_a2, 2);
//OD_BKAB_8202 = Ush;
flag1 = 1;
}
void TIM7_IRQHandler()
{
if (TIM_GetITStatus(TIM7, TIM_IT_Update) != RESET)
{
TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
TIM_Cmd(TIM7, DISABLE);
if (flag1 == 1)
{
ACP1_a1 = ACP77921_Start_SCM(1);
Uvh1 = (double)(ACP1_a1*1.17*500)/(65536*2);
ACP1_a2 = ACP77921_Start_SCM(2);
Uvh2 = - ((double)(ACP1_a2*1.17*500)/(65536*2));
Uvch = (uint16_t)(Uvh2/0.01);
Uvch <<= 16;
Uvch |= (uint16_t)(Uvh1/0.01);
ACP2_a1 = ACP77922_Start_SCM(1,2);
RMS = (ACP2_a1*1.17)/(65536*32);
RMStemp = (int16_t)(RMS/0.0000004);
RMStemp
= RMStemp;
Uasm = fabsf(Uvh1 - Uvh2);
if (fabs(Ush) <= 0.073)
{
ACP2_a2 = ACP77922_Start_SCM(2,16);
Ush = FloatACP(ACP2_a2, 16);
Ush = Ush;
} else
{
ACP2_a2 = ACP77922_Start_SCM(2,2);
Ush = FloatACP(ACP2_a2, 2);
Ush
= Ush;
}
}
}
TIM_Cmd(TIM7, ENABLE);
}
//prerivanie po propdaniyu pitaniya
void PVD_IRQHandler()
{
if (PWR_GetFlagStatus(PWR_FLAG_PVDO)==SET)
{
PWR_ClearFlag(PWR_FLAG_PVDO);
}
}
void init_timerACP(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7, ENABLE);
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQn;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 74
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//Preemption Priority
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //Sub Priority
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_TimeBaseInitTypeDef base_timer;
base_timer.TIM_Prescaler = 16000 - 1;
base_timer.TIM_Period = 103;
base_timer.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM7, &base_timer);
TIM_ITConfig(TIM7, TIM_IT_Update, ENABLE);
NVIC_EnableIRQ(TIM7_IRQn);
TIM_Cmd(TIM7, ENABLE);
}
void init_PVD(void)
{
PWR_PVDLevelConfig(PWR_PVDLevel_6);
PWR_PVDCmd(ENABLE);
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef
EXTI_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_EnableIRQ(PVD_IRQn);
EXTI_ClearITPendingBit(EXTI_Line16);
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Line = EXTI_Line16;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}
//nastroyka taktirovaniya BTV
void RCC_Configuration(void)
{
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if (HSEStartUpStatus == SUCCESS)
{
RCC_HCLKConfig(RCC_SYSCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PLLConfig(RCC_PLLSource_HSE, 6, 96, 6, 4);
RCC_PLLCmd(ENABLE);
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while (RCC_GetSYSCLKSource() != 0x08) {}
}
}
//inicializaciya SPI i portov GPIO
void SPI_ini(void)
{
GPIO_InitTypeDef GPIO_Init_PIN;
GPIO_InitTypeDef GPIO_Init_PIN1;
GPIO_InitTypeDef GPIO_Init_PIN2;
SPI_InitTypeDef GPIO_Init_SPI;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_Init_PIN.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_Init_PIN.GPIO_Mode = GPIO_Mode_AF;
GPIO_Init_PIN.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init_PIN.GPIO_OType
= GPIO_OType_PP;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 75
GPIO_Init_PIN.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_Init_PIN);
GPIO_Init_PIN2.GPIO_Pin = GPIO_Pin_3;
GPIO_Init_PIN2.GPIO_Mode = GPIO_Mode_IN;
GPIO_Init_PIN2.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init_PIN2.GPIO_OType
= GPIO_OType_PP;
GPIO_Init_PIN2.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_Init_PIN2);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
GPIO_Init_SPI.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
GPIO_Init_SPI.SPI_CPHA = SPI_CPHA_2Edge;
GPIO_Init_SPI.SPI_CPOL = SPI_CPOL_High;
GPIO_Init_SPI.SPI_CRCPolynomial = 7;
GPIO_Init_SPI.SPI_DataSize = SPI_DataSize_8b;
GPIO_Init_SPI.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
GPIO_Init_SPI.SPI_FirstBit = SPI_FirstBit_MSB;
GPIO_Init_SPI.SPI_Mode = SPI_Mode_Master;
GPIO_Init_SPI.SPI_NSS = SPI_NSS_Soft;
SPI_Init(SPI1, &GPIO_Init_SPI);
SPI_Cmd(SPI1, ENABLE);
EN1_OFF();
CS1_OFF();
EN2_OFF();
CS2_OFF();
}
//funkciya chteniya registra ACP
uint16_t AD7792_ReadRegistr(uint8_t adr)
{
uint8_t datareg[2];
uint16_t rdy = 0;
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) {};
SPI_I2S_SendData(SPI1, adr);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET) {};
delay_ms(10);
datareg[0] = 0xFF;
datareg[1] = 0xFF;
rdy = SPI_Read(datareg);
return rdy;
}
//funciya zapisi v registri ACP po SPI
void SPI_Write(uint8_t Data[], uint8_t Size)
{
uint8_t i;
for(i=0; i < Size; i ++)
{
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) {};
SPI_I2S_SendData(SPI1, Data[i]);
}
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET) {};
}
//fukciya chteniya registrov ACP po SPI
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 76
uint16_t SPI_Read(uint8_t Data[])
{
uint16_t receivedData1 = 0x0000;
uint16_t receivedData2 = 0x0000;
uint16_t receivedData = 0x0000;
receivedData = 0x0000;
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) {};
SPI_I2S_SendData(SPI1, Data[0]);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET) {};
receivedData1 |= (uint16_t)SPI_I2S_ReceiveData(SPI1);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) {};
SPI_I2S_SendData(SPI1, Data[1]);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET) {};
receivedData2 = (uint16_t)(SPI_I2S_ReceiveData(SPI1) << 8);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET) {};
receivedData = receivedData1 | receivedData2;
return receivedData;
}
//sbros ACP1
void ACP77921_Reset(void)
{
EN1_ON();
CS1_ON();
//sbros ACP 32 clock po SPI
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) {};
SPI_I2S_SendData(SPI1,0xFF);
SPI_I2S_SendData(SPI1,0xFF);
SPI_I2S_SendData(SPI1,0xFF);
SPI_I2S_SendData(SPI1,0xFF);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET) {};
delay_ms(500);
CS1_OFF();
EN1_OFF();
delay_ms(30);
}
//sbros ACP2
void ACP77922_Reset(void)
{
EN2_ON();
CS2_ON();
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) {};
SPI_I2S_SendData(SPI1,0xFF);
SPI_I2S_SendData(SPI1,0xFF);
SPI_I2S_SendData(SPI1,0xFF);
SPI_I2S_SendData(SPI1,0xFF);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET) {};
delay_ms(500);
CS2_OFF();
EN2_OFF();
delay_ms(30);
}
//funkciya kalibrovki kanalov ACP1
void ACP77921_Calibrate(uint8_t chanel)
{
uint8_t datach[2];
uint8_t datacalib[2];
EN1_ON();//aktiviruem enable dla ADUM i cristal select dlya ACP
CS1_ON();
if (chanel == 1)// 1 kanal ACP
{
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 77
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x11;
datach[1] = 0x80;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x1180) break;
}
}
else if (chanel == 2)// 2 kanal ACP
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x11;
datach[1] = 0x81;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x1181) break;
}
}
for (uint8_t i=0; i<3; i++)
{
datacalib[0] = 0x08;
SPI_Write(datacalib,1);
delay_ms(10);
datacalib[0] = 0x80;
datacalib[1] = 0x09;
SPI_Write(datacalib,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x48) == 0x8009) break;
}
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 1){};
//nastraivaem mod registr na kalibr nulya
for (uint8_t i=0; i<3; i++)
{
datacalib[0] = 0x08;
SPI_Write(datacalib,1);
delay_ms(10);
datacalib[0] = 0xA0;
datacalib[1] = 0x09;
SPI_Write(datacalib,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x48) == 0xA009) break;
}
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 1){};
CS1_OFF();
EN1_OFF();
delay_ms(30);
}
//funkciya kalibrovki kanalov ACP2
void ACP77922_Calibrate(uint8_t chanel, uint8_t gain)
{
uint8_t datach[2];
uint8_t datacalib[2];
EN2_ON();
CS2_ON();
if (chanel == 1)
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 78
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x16;
datach[1] = 0x90;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x1690) break;
}
}
else if (chanel == 2)
{ if (gain == 2)
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x01;
datach[1] = 0x81;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x0181) break;
}
} else
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x04;
datach[1] = 0x91;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) != 0x0491) break;
}
}
}
for (uint8_t i=0; i<3; i++)
{
datacalib[0] = 0x08;
SPI_Write(datacalib,1);
delay_ms(10);
datacalib[0] = 0x80;
datacalib[1] = 0x09;
SPI_Write(datacalib,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x48) == 0x8009) break;
}
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 1){};
for (uint8_t i=0; i<3; i++)
{
datacalib[0] = 0x08;
SPI_Write(datacalib,1);
delay_ms(10);
datacalib[0] = 0xA0;
datacalib[1] = 0x09;
SPI_Write(datacalib,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x48) == 0xA009) break;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 79
}
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 1){};
CS2_OFF();
EN2_OFF();
delay_ms(30);
}
//fukciya odinochnogo preobrazovaniya ACP1
uint16_t ACP77921_Start_SCM(uint8_t chanel)
{
uint8_t datach[2];
uint8_t datascm[2];
uint16_t result;
EN1_ON();
CS1_ON();
if (chanel == 1)
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x11;
datach[1] = 0x80;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x1180) break;
}
}
else if (chanel == 2)
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x11;
datach[1] = 0x81;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x1181) break;
}
}
for (uint8_t i=0; i<3; i++)
{
datascm[0] = 0x08;
SPI_Write(datascm,1);
delay_ms(10);
datascm[0] = 0x20;
datascm[1] = 0x09;
SPI_Write(datascm,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x48) != 0x2009) break;
}
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 1){};
datascm[0] = 0x58;
SPI_Write(datascm,1);
delay_ms(10);
datascm[0] = 0xFF;
datascm[1] = 0xFF;
result = SPI_Read(datascm);//schitivaem danniye
CS1_OFF();
EN1_OFF();
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 80
delay_ms(30);
return result;
}
//fukciya odinochnogo preobrazovaniya ACP2
uint16_t ACP77922_Start_SCM(uint8_t chanel, uint8_t gain)
{
uint8_t datach[2];
uint8_t datascm[2];
uint16_t result;
EN2_ON();
CS2_ON();
if (chanel == 1)
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x16;//1 kanal s 64 koef usil unipolar
datach[1] = 0x90;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x1690) break;
}
}
else if (chanel == 2)//2 kanal bipolar 2 ili 16 korf usil
{ if (gain == 2)
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x01;
datach[1] = 0x81;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x0181) break;
}
} else
{
for (uint8_t i=0; i<3; i++)
{
datach[0] = 0x10;
SPI_Write(datach,1);
delay_ms(10);
datach[0] = 0x04;
datach[1] = 0x91;
SPI_Write(datach,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x50) == 0x0491) break;
}
}
}
//ostalnoe anologich ACP1
for (uint8_t i=0; i<3; i++)
{
datascm[0] = 0x08;
SPI_Write(datascm,1);
delay_ms(10);
datascm[0] = 0x20;
datascm[1] = 0x09;
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 81
SPI_Write(datascm,2);
delay_ms(10);
if (AD7792_ReadRegistr(0x48) != 0x2009) break;
}
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 1){};
datascm[0] = 0x58;
SPI_Write(datascm,1);
delay_ms(10);
datascm[0] = 0xFF;
datascm[1] = 0xFF;
result = SPI_Read(datascm);
CS2_OFF();
EN2_OFF();
delay_ms(30);
return result;
}
Лист
Изм. Лист
№ докум.
Подпись Дата
МД – 02069964 – 11.04.04. – 04 – 18 82
Отзывы:
Авторизуйтесь, чтобы оставить отзыв