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

Компоненты и технологии, № 8'2002 Компоненты

Система реального времени

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

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

Юрий Владимиров

Lerajura@comail.ru Владимир Демиденко demvlad@comail.ru Сергей Заболотский power@etcetera.ru Сергей Миронов

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

задавать все изменения режима в виде программы и иметь автоматический контроль заряда в ампер-часах (кулономер). Тогда работа оператора сведется к загрузке деталей в гальваническую ванну и нажатию кнопки «СТАРТ», а далее процесс будет происходить автоматически, и при наборе требуемых ампер-часов источник выключится самостоятельно.

Авторами был разработан ряд импульсных источников мощностью от 2,5 до 25 кВт для работы в диапазоне выходных токов от 0 до 1500 А (при напряжении до 15 В) и выходных напряжений от 0 до 100 В (при токе до 250 А). В этих источниках обеспечивается смена полярности выходного тока (реверс), электронное управление режимом и достаточно высокое быстродействие — реакция на изменение заданных тока или напряжения. Система управления совместно с источниками успешно используется

Компоненты и технологии, № 8'2002

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

Общая конфигурация системы

Структурная схема системы приведена на рис. 1. Конструктивно система выполнена из 4 блоков:

• Блок А — основной контроллер, пульт оператора. На этом блоке осуществляется набор, корректировка и пуск программ работы источника. Здесь же обеспечивается индикация состояния системы и текущих выходных значений тока и напряжения источника. Все операции выполняются с 23-кнопочной клавиатуры и контролируются жидкокристаллическим и светодиодным индикаторами. При нажатии клавиши «СТАРТ» выбранная программа работы источника пересылается в исполнительный контроллер платы В силового блока. Микроконтроллер CONB переписывает принятую программу в свою энергонезависимую память и начинает выполнение. Блок А периодически опрашивает исполнительный контроллер и получает от него информацию о текущем режиме работы, состоянии источника и накопленных ампер-часах. Остановка программы работы источника происходит по нажатию клавиши «СТОП» основного контроллера или по набору заданных ампер-часов, либо при возникновении аварийной ситуации: пробой сетевого напряжения на выход источника, перегрев источника, выход напряжения питающей сети за допустимые пределы.

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

• Блок Р — дополнительный пульт, размещаемый вблизи гальванической ванны, чтобы оператор мог произвести включение или выключение источника сразу по окончании загрузки деталей в ванну, при нарушении процесса и т. д.

• Блок С — служит для соединения системы с компьютером, для стыковки интерфейса системы (RST) с интерфейсом RS-232.

Блоки Р и С используются не являются необходимыми. Все блоки системы соединяются двухжильным неэкранированным телефонным кабелем длиной до 200 м.

Блок А — основной контроллер Основной контроллер системы содержит следующие функциональные модули:

• Ядро — микроконтроллер CONA типа PIC16F876, энергонезависимая память на 32 кбайт типа 24LC256, ЖКИ — 2 строки по 16 знаков фирмы DATA VISION или аналогичный.

• Модуль светодиодной индикации — микроконтроллер CONL типа PIC16F873, восемь семисегментных индикаторов и 9 отдельных светодиодов.

• Модуль клавиатуры — микроконтроллер CONS типа PIC16F622, клавиатура.

• Модуль управления внешними устройствами.

• Модуль RST-интерфейса.

• Источник служебного питания. Микроконтроллер CONA является ядром

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

После включения питания микроконтроллер CONA опрашивает остальные модули системы с целью определения их работоспособности. Далее CONA извлекает из своей флэш-памяти байты статуса последнего отключения, из которого определяется, было ли последнее отключение аварийным, причины аварии, последний использованный режим и т. д. На ЖКИ выдается соответствующее сообщение. После этого из памяти рабочих программ (24LC256) считываются параметры последнего режима, загружаются в ОЗУ микроконтроллера и выдаются на индикацию. Система готова к работе. CONA каждые 20 мс опрашивает модуль клавиатуры в ожидании команды оператора. Нажатием соответствующих клавиш можно сменить программу, изменить ее параметры, переключиться в ручной режим.

После того как режим выбран, по нажатию клавиши «СТАРТ» информация передается в микроконтроллер CONB силового блока, и он запускается. В режиме «СТАРТ» CONA каждые 100 мс опрашивает силовой блок и получает информацию о текущем режиме и накопленных ампер-часах. Эта информация после преобразования выдается на индикаторы.

CONA имеет следующие каналы обмена данными:

• I2C — связь с внешней энергонезависимой памятью рабочих программ. Интерфейс реализован программно, частота обмена около 200 кГц.

• SPI — связь с модулем светодиодной индикации. Интерфейс реализован программно, скорость обмена порядка 200 кбит/с.

• Связь с ЖКИ по протоколу ЖКИ, причем сигнал чтения ЖКИ не используется.

• USART — связь с модулем клавиатуры и внешними устройствами (через стык RST). Скорость обмена 19,2 кбод.

• Включение внешних нагрузок — логические сигналы.

Контроллер управления светодиодными индикаторами CONL — это реализованная на микроконтроллере специализированная микросхема динамического управления 11 семисегментными индикаторами с общими анодами (рис. 2). По последовательному интерфейсу SPI в микроконтроллер CONL загружаются 16 байт состояния светодиодов, причем можно задать не только гашение или свечение каждого сегмента, но и мерцание отдельных сегментов разных знаков или мерцание каждого знака. После загрузки информации CONL выполняет динамическое управление индикаторами с частотой сканирования 2,5 кГц. При подключении джампера к выводу «test» CONL переходит в режим тестирования индикаторов, при этом последовательно высвечиваются сначала каждый сегмент, затем отдельные знаки от 0 до 9, после чего задается мерцание сегментов и знаков, что позволяет быстро проверить работоспособность индикаторов и определить неисправный элемент схемы.

В системе использованы 8 семисегментных индикаторов. Отдельные светодиоды (9 шт.) подключены как сегменты индикаторов 9 и 10.

Модуль клавиатуры выполнен на микроконтроллере CONS. Клавиатура матричная — 5x5. Используются 23 клавиши. CONS непрерывно сканирует клавиатуру и при обнаружении нажатия клавиши производит проверку на дребезг контактов. Если нажатие признано достоверным, код нажатой клавиши записывается в выходной регистр. При обращении CONA модуль клавиатуры выдает код состояния клавиатуры. При этом помимо кода нажатой клавиши специальными битами дополнительно выдается следующая информация:

• клавиша нажата, и ее состояние считывается в первый раз;

е

Компоненты и технологии, № 8'2002

Lm7805

Рис. 4 ча

• клавиша нажата, и ее состояние уже считано;

• клавиша отпущена.

Разработаны и успешно используются два варианта клавиатуры. Первый — клавиатура, набранная из «тактовых кнопок», выполнена в виде отдельной печатной платы с кнопками на пленочной мембране. Второй — заказная пленочная клавиатура, наклеиваемая на лицевую панель блока А.

Интерфейс, названный авторами И8Т, был разработан для использования в условиях сильных электромагнитных помех и успешно использовался в промышленных приложениях. Интерфейс И8Т позволяет гальванически развязать линию связи с двух сторон с электрической прочностью 2,5 кВ. В схему стыка входят (рис. 3):

• передающий и приемный оптроны БЛ1,

БЛ2;

• ключи Q3, Q5;

• ограничители тока Q2, Q4.

При отсутствии сигнала ключ Q3 разомкнут, и напряжение на выходной линии равно выходному напряжению ограничителя тока (около 12 В). Если микроконтроллер СОЫЛ выдает на выход Тх логический ноль, ключ Q3 замыкается. Ограничитель тока входит в режим ограничения (ток ограничения 25 мА), и напряжение на выходной линии падает до 0,7 В. При выдаче на выход Тх логической единицы на линии опять устанавливается 12 В. Быстродействие всей схемы составляет 3-5 мкс, что позволяет организовать обмен со скоростью до 100 кбод. Однако при большой длине линии быстродействие начинает ограничиваться ее емкостью. При длине линии 200 м и использовании неэкранированной не-свитой пары проводов максимальная скорость обмена ограничивается величиной 19,2 кбод. Следует отметить, что использование экранированной линии может снизить скорость об-

мена до 9,6 кбод и ниже. При обмене используется логический протокол ШЛИТ. Логическому нулю на выходе Тх микроконтроллера СОЫЛ соответствует низкое напряжение на линии. Ограничитель тока питается от гальванически развязанного источника питания 15 В. Ключ Q3 имеет ограничение тока замыкания ^2) на уровне около 70 мА.

Для того чтобы помеха начала влиять на обмен, необходимо, чтобы в линии был наведен ток помехи более 25 мА. При гальванической развязке на двух концах линии это маловероятно даже без экрана.

Интерфейс И^Т имеет и еще одну полезную особенность: если устройство на дальнем конце линии потребляет ток менее 10-15 мА, то можно организовать его питание непосредственно от линии. На рис. 4 показана организация питания, приема и передачи в дополнительном пульте (блок Р). Следует отметить, что при питании от линии помехозащищенность канала связи несколько падает.

Схема гальванической развязки на конце линии (рис. 5) используется в плате В силового блока и блоке С. Она аналогична схеме стыка блока А, но не имеет источника питания 15 В и одного ограничителя тока.

Альтернативой интерфейса ИЗТ может быть оптически развязанный интерфейс И8-422, однако И8-422 существенно дороже, не позволяет питать маломощные устройства от линии связи и, кроме того, требует трехпроводной линии.

В блоке Л имеется 3 канала ИвТ, каждый из которых питается от отдельного гальванически развязанного источника. Поскольку ШЛИТ предусматривает связь только двух объектов, а микроконтроллер СОЫЛ принимает информацию от 4 источников сигнала (3 канала И8Т и модуль клавиатуры), в блоке А организовано объединение этих сигналов

через монтажное «ИЛИ» — резистор R1 и диод VD1 на выходе Tx микроконтроллера CONS. В схемах RST-стыков использованы транзисторы КТ3102 и КТ3107.

Каждая внешняя линия связи представляет собой токовую петлю. Разрыв или замыкание линии USART является для всех устройств, подключенных к линии, сигналом (битом) «СТАРТ» по используемому протоколу. В нормальном рабочем режиме «0» (и «СТАРТ») передается замыканием линии. В аварийной ситуации возможны замыкание или разрыв линии связи; в обоих случаях возникает ложный «СТАРТ» и нарушение протокола обмена, что приводит к неминуемому обнаружению ошибки и к соответствующей реакции системы, в частности, к аварийной остановке силового модуля.

Модуль управления внешними нагрузками представляет собой три транзисторных ключа с ограничением тока на уровне 120-130 мА, питаемых от отдельного источника питания 13 В, гальванически развязанного от остальных схем блока A. Включение ключей осуществляется через три оптрона типа PC814 тремя отдельными сигналами микроконтроллера CONA.

Источник питания блока А (рис. 6) выполнен на микросхеме TOP-232. Он вырабатывает шесть выходных напряжений для питания функциональных модулей блока. Источник сохраняет работоспособность при напряжении питающей сети от 85 до 285 В, потребляя при этом не более 10 Вт. При пропадании напряжения сети источник выдает в CONA сигнал «АВАРИЯ ПИТАНИЯ», по которому тот записывает в свою флэш-память состояние выхода из рабочего режима.

Вся электроника блока А размещена на одной печатной плате размерами 140x260 мм. Индикаторы и отдельные светодиоды размещены на обратной стороне этой платы и ме-

Компоненты и технологии, № 8'2002

D2 LM78L05

f

Вых I

Вых U

0,1

K1

>----------1=1—г—

Нет стабилизации напряжения —|—

п >------1=1------

Разрешение инициализации Нет стабилизации тока Пробой сети на выход Перегрев силового блока К1 Отключение в сети питания -------

К1

Вых I <-

Старт

750

О,1 : Вых U <г~_

0,1 -

750

0,1 0,1 -Норма <

Включить питание силового блока < Знак выходного тока, напряжения <

Ro0

Rai

Ra2

Ra4

Rb3

Rb4

Rb5

Rbö

Rb7

RcO

Rcl

Rc2

Rc3

Rc4

Rc5

Ra3

Ra5

RbO

Rbl

Rc6

Rc7

+5 В 1

T X

T

-< +12 В

1 3K

XII

20 МГц

-> Тх

-<R*

Рис. 7

ханически не связаны с корпусом блока, что существенно упрощает конструкцию. На плате использован один кварцевый резонатор на 10 МГц, подключенный к выводам OSCIN и OSCOUT микроконтроллера CONA. Тактовый сигнал с выхода OSCOUT этого микроконтроллера подается на входы OSCIN микроконтроллеров CONS и CONL. Клавиатура связана с печатной платой 10-проводным шлейфом. Нарис. 9 показан внешний вид пленочной клавиатуры, которая одновременно является лицевой панелью блока А.

Блок размещается во влагозащитном или герметичном пластмассовом корпусе.

Блок P — дополнительный пульт Дополнительный пульт представляет собой простейший контроллер, имеющий две кнопки, дублирующие клавиши «СТАРТ» и «СТОП» блока А, а также два светодиода, дублирующие светодиоды «СТАРТ» и «СТОП» блока А.

Блок C — стыковка с компьютером Для упрощения программного обеспечения компьютера и блока A обмен информацией между ними сделан асинхронным. Микроконтроллер CONC блока C выполняет роль буфера, используя ОЗУ для хранения передаваемых блоков информации. Для обмена информацией с компьютером используются аппаратные средства USART. Канал обмена с блоком A организован программно. Поскольку блок C гальванически связан с компьютером, для его питания нельзя использовать RST-линию. Поэтому блок C гальванически развязан от линии связи (рис. 5), а его питание осуществляется от отдельного адаптера 5 В, 100 мА, смонтированного в сетевой вилке.

Плата B силового блока Схема модуля управления силовым блоком приведена на рис. 7. Все функции внешнего канала управления силовым блоком выполняет контроллер D1 (CONB). В режиме реального времени он управляет потоками, необходимыми для реализации пользовательской программы изменения во времени выходных параметров силового блока.

В соответствии с протоколом, через RST-интерфейс CONB принимает команды и данные

от главного контроллера, передает ему по его запросу данные измерений и расчетов, распаковывает рабочую программу, а также вырабатывает сигналы для внутреннего канала управления силовым блоком. Для измерения реальных выходных значений тока и напряжения, а также значения температуры критического узла силового блока используются встроенные АЦП и аналоговый коммутатор микроконтроллера (шины RA0 — RA2 порта A). Управление выходными значениями тока и напряжения производится через двухканальный цифровой ШИМ микроконтроллера (порт C, шины RC1, RC2).

Протокол обмена информацией

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

Все устройства подключаются к линии параллельно, и передачу любого из них все остальные получают одновременно. Обмен ведется по протоколу, который включает в себя набор команд и описаний структур данных, а также описание структур обмена. Отклонение от протокола говорит о неисправности оборудования и вызывает соответствующую реакцию системы. Главный контроллер (CONA) в системе связи через USART играет роль мастера, то есть именно он инициирует все обмены, благодаря чему разрешаются конфликты на линии. При передаче используется девятый бит (ADDRESSABLE USART). Любой конфликт считается заведомой физической ошибкой, который возможен только при физических неисправностях в компонентах системы.

Можно выделить два вида пересылаемых байтов — информационные и командные (например, команды ведомым устройствам и их служебные сообщения, например, подтверждение приема вызова). Для отличия информационных и командных байтов используется их 9-й бит. В командных байтах он устанавлива-

ется равным единице, а в информационных — нулю. Обращение всегда начинается с командного байта вызова A#, где # — четырехразрядный адрес вызываемого устройства. Если это устройство существует и работоспособно, оно выдает командный байт подтверждения E#, где # — адрес вызванного устройства. Остальные устройства системы, приняв «чужой» вызов, игнорируют принимаемые байты до окончания обмена. Далее CONA выдает командный байт, представляющий собой команду ответившему устройству, например, «выдать данные», «принять данные», «выключить силовой блок» и т. д. После приема этой команды следует пересылка данных, причем количество байтов пересылки фиксировано для команды каждого типа. CONA выдает команду окончания обмена F#. Обнаружив этот байт, все устройства системы переходят в режим ожидания вызова (продолжая при этом выполнять свои текущие программы). Для каждого устройства имеется свой протокол обмена. Для коротких обменов протокол упрощен. Например, самый простейший протокол обмена с модулем клавиатуры (адрес — 01) выглядит так:

• A0h — вызов от CONA;

• b — байт состояния клавиатуры от CONS;

• F0h — байт окончания обмена от CONA. Есть три команды от CONA без вызова конкретного устройства, выполняемые всеми заинтересованными устройствами одновременно.

Пример одного законченного протокольного действия «Опрос состояния с накопленными ампер-часами»:

A1 (A) — El (B) — C2 (A) — bst, bl, b2, b3, b4, b4, b5, b6 (B) — Fl (A).

В скобках указан передатчик: A — CONA, B — CONB.

C2 — команда «выдать состояние с накопленными ампер-часами»; bst — байт состояния;

b — байт знака накопленных ампер-часов; b2— накопленные ампер-часы (старший байт);

b3 — накопленные ампер-часы; b4 — накопленные ампер-часы (младший байт);

b5 — количество интервалов длительностью 1 мс за время между двумя подобными обращениями; b6 — номера исполняемых цикла и интервала.

Расшифровка приведенной последовательности такова:

• CONA передает в линию байт с шестнадцатеричным значением A1;

• устройство, распознавшее свой адрес A1, а именно CONB, передает в линию подтверждение полученного им обращения в виде кода E1;

• получив правильный ответ от CONB, CONA передает в линию байт C2 — команду: «выдать состояние силового блока с накопленными ампер-часами»;

• приняв и распознав команду C2, CONB передает в линию последовательность байтов bst, b1, b2,... , b6;

• получив нужную информацию, CONA передает в линию подтверждение об успешно проведенном сеансе связи и о его окончании — код F1.

е

Компоненты и технологии, № 8'2002

Рис. 8. Упрощенная структурная схема программы контроллера силового блока

Предусмотрено около 20 командных байтов, в том числе:

• B1 — начало передачи блока данных;

• B2 — окончание передачи блока данных;

• BF — окончание передачи данных;

• C1 — включение питания силового блока;

• C2 — запуск преобразователя силового блока;

• FF — аварийная остановка всех устройств системы.

Для блока C (стык с компьютером) данные принимаются и передаются блоками по 64 байт. Для остальных устройств системы максимальное количество байтов в одном цикле обмена не превышает 16.

Программа управления процессами

Структура программы управления процессами показана на рис. 8. Это «операционная» система контроллера силового блока. Ядром подсистемы управления силовым блоком является диспетчер процессов STOKER, анализирующий состояние флагов и вектора передачи управления. Вектор передачи управления формируется программными модулями в зависимости от результатов их работы. Таким способом программные модули передают управление друг другу. Все задействованные аппаратные ресурсы, а именно таймеры, модули USART и EEPROM, вмешиваются в этот процесс через систему прерываний. STOKER работает на прикладном уровне. В режиме ожидания он передает управление на doctor — программный модуль опроса состояния силового блока. Если надо включить, например, режим ручного управления, контроллер CONA отправит контроллеру CONB блок данных с необходимыми значениями выходных параметров силового блока и с признаком ручного режима работы. Как только данные попадают в CONB, STOKER отдаст полномочия программному моду-

лю с именем handload. Этот модуль настраивает систему на работу в режиме ручного управления, но не включает силовой блок, а возвращает управление на STOKER, который переводит подконтрольную ему подсистему в режим ожидания, то есть управление передается модулю doctor, пока не придет команда запустить инвертор силового блока. Как только приходит эта команда, STOKER вызывает программный модуль включения режима ручного управления — handmode, который производит включение инвертора силового блока (подачу энергии в нагрузку) и тоже передает управление на STOKER. Тот возвращается в режим ожидания, пока не получит команду сменить выходные параметры силового блока. Тогда снова вызывается модуль handmode, но теперь он не включает силовой блок, а меняет его выходные параметры. Выходные параметры отрабатываются внутренним каналом управления силовым блоком.

За протоколом связи следит модуль обработки прерываний от линии Rx USART CONB под названием RxIT. Он передает команды и данные через почтовый ящик на STOKER, а через программный модуль ComF1 происходит синхронизация команды и процесса. Только после прихода протокольного кода F1 от CONA STOKER получает возможность вмешаться в процесс. Модуль ComF1 сортирует всю приходящую почту (сообщения), относящуюся к прикладному уровню. Команды, не относящиеся к прикладному уровню, выполняются самим «протокольным контроллером» — программным модулем RxIT с помощью специальных подпрограмм. К прикладному уровню относятся программные модули, работающие под управлением STOKER (рис. 8). Эти модули занимаются непосредственной реализацией задания для силового блока. Все остальные программные структуры относятся к системному уровню.

Программный режим использует те же технологии, только с участием гораздо большего количества программных структур. Сначала в почтовый ящик частями пересылаются данные программного режима. О каждой принятой части STOKER получает извещение и передает управление модулю, который распаковывает и переписывает содержимое в EEPROM. Для того чтобы собрать прикладную программу, надо получить минимум три, а максимум — двадцать блоков данных, в зависимости от задаваемой программы, причем здесь существует специализация: каждой частью занимается отдельный программный модуль. Всего их три: Save_PROG, Save_Interv и Save_Round. Если все данные поступили, STOKER получает об этом извещение через тот же модуль ComF1 и запускает целую эстафету (или конвейер). Следует отметить, что в принятых сообщениях приходит не сама программа, а, скорее, «план работы» для силового блока. Сама программа собирается из модулей прикладного уровня. Дальше происходит следующее: STOKER вызывает модуль регистрации ProgSet, который делает некоторые настройки, в том числе устанавливает признак того, что программа поступила и передает управление по цепочке модулям, загружающим данные из EEPROM в рабочие регистры контроллера. Когда последний из них отработает, STOKER переводит подсистему в режим ожидания до получения команды «включить инвертор силового блока». Здесь STOKER запустит еще одну цепочку прикладных программных модулей, в конце которой управление получит модуль запуска интервалов IntGo — основной модуль программного режима.

Понятие интервала является стержнем прикладной программы. По сути, выполнение прикладной программы силового блока есть не что иное, как отработка комбинации из нескольких интервалов времени с различными, соответствующими каждому интервалу, выходными параметрами. Параметрами интервала являются его длительность (2-998 мс), выходной ток силового блока (0-250, 0-500 или 0-1500 А, в зависимости от модели блока), выходное напряжение силового блока (0-15, 0-30 или 0-50 В), частота выходных тока и напряжения (0-100 Гц). После окончания интервала управление передается программному модулю stokhelper, проверяющему «технологическую карту» и направляющему процесс дальше — загрузить параметры следующего интервала или все закончить, причем, когда программа полностью выполнена, предусмотрены четыре варианта поведения:

• все выключить;

• все оставить без изменений;

• включить ток хранения с частотой 0,05 Гц;

• включить ток хранения с частотой 50 Гц.

За временем в системе следят часы — таймер TMR1 микроконтроллера. В отсчете длительности интервала модуль IntGo опирается на его показания.

Программа может состоять из пятнадцати интервалов (минимум один, максимум пятнад-

Компоненты и технологии, № 8'2002

Рис. 9

цать). На введенной последовательности интервалов можно организовать до четырех циклов с количеством повторений от 1 до 998 или — при 999 заданных повторениях — «до бесконечности». При «бесконечном» цикле система остановится после накопления заданного количества отработанных ампер-часов или по команде с пульта управления (CONPWRA).

При «прокачке» тока через нагрузку система подсчитывает прошедший через нагрузку заряд в ампер-часах с учетом направления движения положительного заряда. То есть, ампер-часы имеют знак и являются величиной векторной, поскольку гальванические процессы — направленные.

Пользовательский интерфейс

Пользовательский интерфейс обеспечивается главным контроллером (блок Л, рис. 1).

Программа микроконтроллера CONA, несмотря на ее величину (70% всей программной памяти) и большое количество подпрограмм (около 300), достаточно проста по идеологии — это последовательное выполнение одного из нескольких (в зависимости от режима) цикличных программных блоков, каждый из которых включает в себя множество подпрограмм. Период цикла определяется периодом опроса модуля клавиатуры — около 20 мс. В программе используется всего одно прерывание — по аварии питания. Для передачи управления от одной подпрограммы к другой используются флаги (более 30). В работе используется все четыре страницы памяти микроконтроллера Р1С16Б876. Программы, относящиеся к каким-то конкретным видам обработки и пре-

образования данных, размещены на одной странице, что позволяет уменьшить количество переходов с одной страницы памяти на другую (тем не менее, таких переходов около 100). Фиксированное положение знаков на индикаторах позволило отказаться от арифметики с плавающей точкой. Вычисление ампер-часов производится с погрешностью не хуже 0,1%. Для уменьшения «мелькания» младшего разряда значений тока и напряжения, принятых из блока B, применен программный цифровой фильтр.

Ввод программ работы источника осуществляется из последовательно открывающихся 16 меню, отображаемых на ЖКИ. По окончании заполнения каждого меню программа переходит к следующему. При попытке ввода некорректных данных на ЖКИ выдаются соответствующие сообщения.

Программы микроконтроллеров CONS и CONL достаточно просты. У первого — сканирование клавиатуры, прерывание при получении запроса и выдача байта состояния клавиатуры по прерыванию. У второго — переключение анодов светодиодных индикаторов с выдачей на катоды соответствующего им байта из регистров состояния индикаторов. При начале передачи происходит прерывание программы индикации и начинается прием 16 байтов данных. Если протокол передачи соблюден, принятые данные переписываются в регистры состояния индикаторов, и микроконтроллер выходит из прерывания. При нарушении протокола (задержка передачи, неправильное количество тактов сигнала SCL, однократная помеха, вызвавшая прерывание) принятые данные игнорируются, и микроконтроллер переходит в режим индикации старых данных.

Программа микроконтроллера CONP также достаточно проста и описывать ее мы не будем.

Компьютер в рассматриваемой системе может использоваться в трех режимах:

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

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

жиме пуск и останов источника возможен как от блока Л, так и от компьютера.

• Как основной контроллер системы. В этом режиме блок Л используется только для предварительной обработки, пересылки информации и индикации, а управление источником и задание его режима (а также выбор программ его работы) возможно только с клавиатуры компьютера.

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

Заключение

Применение микроконтроллеров позволяет адаптировать систему под конкретные требования пользователя (оператора, технолога и т. д.) и совершенствовать технологический процесс. Например, можно добавить энергонезависимые часы-календарь, защиту от несанкционированного доступа к рабочим программам источников и даже сетевое управление, вплоть до управления через Интернет.

Рассматриваемая система успешно применяется на гальванических производствах. Система представляется открытой, достаточно универсальной, имеющей развитую индикацию, клавиатуру и линии связи. Это позволяет использовать ее для управления самыми разнообразными устройствами, для чего необходимо только переработать программное обеспечение, в первую очередь программы контроллеров СООТ и CONA, и, возможно, исполнительный контроллер СООТ, встраиваемый в управляемое устройство, или подключить несколько таких контроллеров. В частности, рассматривались возможности использовать систему для управления холодильными установками, туннельными печами для поверхностного монтажа, сушильными печами, промышленными кондиционерами и климатическими установками. При этом одним пультом управления можно контролировать несколько объектов. Переработка программного обеспечения базируется на уже созданных программных структурах.

е