litceysel.ru
добавить свой файл
  1 2 3 4


Рисунок 3.7 Структура ПО контроллера ASK-Lab


Код ядра мОСРВ A3 генерируется программно-инструментальной средой “Конструктор А3”.

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

Учитывая специфику аппаратной части контроллера ASK-Lab, функции разделяются между микропроцессорами, входящими в его состав (условные обозначения микропроцессоров: PIC_Master – мастер сети, PIC_SPT и PIC_Danf – переферийные микропроцессоры). При написании ПО всей системы в целом следует особое внимание уделить вопросу межпроцессорного взаимодействия.

Функции микроконтроллера PIC_Master:


  • обмен с ПК по интерфейсу RS-232 и протоколу Ask-Bus v 3.1 (выполнение команд, принятых с ПК, поддержка информационного обмена между ПК и процессорами PIC_SPT и PIC_Danf)

  • обмен с процессорами PIC_SPT и PIC_Danf по интерфейсу I2C (PIC_Master – мастер сети)

  • реализация процедуры ввода пароля (используется клавиатура и ЖК-индикатор, хранение пароля в EEPROM)

  • ведение журнала событий (хранение в памяти FLASH)

  • преобразование данных согласно алгоритму ГОСТ при выполнении команд, требующих разграничения доступа.

Функции микропроцессора PIC_SPT:

  • обмен с теплосчетчиком по интерфейсу RS-232;
  • обмен с процессором PIC_Master по интерфейсу I2C (PIC_SPT – подчиненное устройство);


  • выполнение команд, принятых процессором PIC_Master с ПК;

  • поддержка информационного обмена между ПК и теплосчетчиком;

  • управление силовыми устройствами (по командам с PIC_Master).

Функции микропроцессора PIC_Danf:

  • омен с терморегулятором ECL Comfort 300 по интерфейсу RS-232;

  • омен с процессором PIC_Master по интерфейсу I2C (PIC_SPT – подчиненное устройство);

  • вполнение команд, принятых процессором PIC_Master с ПК;

  • пддержка информационного обмена между ПК и терморегулятором.

3.5 Описание обмена данными

3.5.1 Обмен данными между контроллером и ПК

Соответствие протоколов обмена между контроллером ASL-Lab и ПК семиуровневой модели OSI представлен на рисунке 3.8.


N

Уровень

Протокол

7

Прикладной

Определяется

программой на ПК

6

Представления

ГОСТ 28147-89

5

Сеансовый

Определяется оператором

системы

4

Транспортный

Специализированный

алгоритм под каждый тип

теплосчетчика

3

Сетевой

ASK-Bus v3.1

2

Звена данных


1

Физический

RS-232,

пара модемов через КТСОП


Рисунок 3.8 Протоколы обмена между контроллером и ПК

Физический уровень образует пара модемов. Они обеспечивают интерфейс RC-232 через КТСОП.

Параметры обмена:

- скорость передачи данных 2400 или 9600 бит/сек (но максимальная скорость модемов 115200 бит/сек);

- Биты данных 8;

- Четность нет;

- Стоповые биты 1;

- Управление потоком нет.


Уровень звена данных и сетевой образует протокол ASK-Bus v3.1 – внутрифирменный протокол, собственная разработка СКБ ГУАП. Несмотря на то, что на сетевом уровне соединение между ПК и контроллером происходит по принципу «точка - точка», в протоколе ASKBus есть поле, отвечающее за адрес устройства в составе сети. В данном случае по этому полю определяется, какому из микроконтроллеров во внутриплатной сети I2C предназначена команда.

На уровне представления используется алгоритм ГОСТ 28147-89 для шифрации команд, защищенных паролем, например, для команды управления силовыми устройствами.


3.5.2 Обмен данными между контроллером и переферийными устройствами

Связь ПК с теплосчетчиком и теплорегулятором обеспечивается в режиме трансляции данных. Формирование/разбор пакетов при обмене данными с теплосчетчиком и теплорегулятором в данном режиме производится непосредственно на ПК.

Сформированный пакет на ПК для теплосчетчика (либо теплорегулятора) вкладывается в поле данных пакета ASK-Bus. После разбора принятого контроллером ASK-Lab пакета поле данных передается на конечное устройство. Ответ от устройства принимается контроллером и без дополнительной обработки так же вкладывается в поле данных пакета ASK-Bus, и отправляется обратно на ПК, где и происходит разбор ответа устройства.


Примечание – данный режим работы контроллера ASK-Lab позволяет относительно быстро собрать систему на базе практически любых устройств с поддержкой последовательного интерфейса USART, т.к. весь протокол обмена с данным устройством будет реализован на ПК. Этот режим может быть так же использован как отладочный.

3.5.2.1 Работа контроллера ASK-Lab с теплосчетчиком СПТ942

Режимы обмена данных контроллера с теплосчетчиком:

- Режим прозрачности – данные с ПК передаются на контроллер по интерфейсу RS-232 и протоколу обмена с теплосчетчиком. Контроллер, распознав начальный и конечный символы данного протокола, передает полученный пакет на теплосчетчик.

- Режим команд – данные с ПК передаются на контроллер по интерфейсу RS-232 и протоколу ASK-Bus. Пакет данных для теплосчетчика вкладывается в поле данных пакета ASK-Bus. Команда 0x00 протокола ASK-Bus - передача данных на периферийное устройство. Контроллер, по этой команде извлекает поле данных из пакета и передает на периферийное устройство.

Параметры обмена:

- скорость передачи данных 2400 бит/сек.;

- Биты данных 8;

- Четность нет;

- Стоповые биты 1;

- Управление потоком сигнал DTR (всегда активен).


3.5.2.2 Работа контроллера с теплорегулятором ECL Comfort 300

Регулятор температуры ECL Comfort 300 Danfoss является полностью самостоятельным устройством, регулирующим температуру воды в контуре горячего водоснабжения и в контуре водяного отопления. Основными функциями контроллера при работе с ECL Comfort 300 являются функции удаленного мониторинга и изменения режимов работы регулятора. При наличии дополнительного коммуникационного модуля ECA87 для ECL Comfort 300 появляется возможность получать дополнительную информацию с ECL Comfort 300 и непосредственно управлять исполнительными устройствами данного регулятора.

Для обмена данными контроллера с регулятором температуры ECL Comfort 300 Danfoss используется режим команд (описан выше).


Параметры обмена:

- скорость передачи данных 1200 бит/сек.;

- Биты данных 8;

- Четность да;

- Стоповые биты 1;

- Управление потоком нет.


3.6 Обеспечение робастности и защиты информации

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

В работах[1], [2] была предложена концепция использования многоуровневой системы защиты информации в распределенных системах коммерческого учета. Эта концепция с рядом модификаций была реализована в проекте ПоТок-С.

При посылке команд управления сетевые пакеты с командами и ответные пакеты должны быть преобразованы. Пакет, посылаемый с ПК, преобразуется с использованием ключа, производного от пароля, введенного инженером АРМ. Для преобразования данных используется алгоритм ГОСТ 28147-89 с постоянной таблицей замен.

При получении пакета ПО контроллера делает обратное преобразование (в режиме реального времени) с использованием ключа, производного от пользовательского пароля (введенного на контроллере, аналогичному паролю ПО АРМ). Если контрольная сумма преобразованного блока корректна, производится проверка условия: принятое значение времени больше записанного в памяти контроллера. Если условие выполняется, контроллер выполняет команду. Ответный пакет преобразуется с использованием того же (пользовательского) ключа, содержит значение времени контроллера (значение системного таймера микропроцессора мастера сети).

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

Ключи шифрации в контроллер ASK-Lab вводит администратор системы, и он же имеет возможность его изменения. Разработчики системы обеспечивают лишь первоначальный код доступа и лишены возможности считывания использованных кодов шифрации после введения ключей администратором системы.


Для защиты от атак при наличии сообщника в составе персонала, в контроллере ведется журнал, учета команд управления. Журнал доступен лишь для просмотра с АРМ инженера, но не может быть откорректирован. Эта информация позволяет фиксировать время и источник команд управления. Эта же информация обеспечивает возможность арбитража в случае незлонамеренных ошибок персонала.


3.6.1 Преобразование данных

Преобразованию подвергается поле STA (статус), CD (код команды) и поле DATA протокола ASK-Bus. Поле флагов протокола ASK-Bus должно содержать только признак необходимости преобразования, одинаковый для всех команд, требующих преобразования (старший бит = 1).

Состав преобразуемой информации приведен в таблице 3.3 .

Таблица 3.3

Состав преобразуемой информации


информация

поле ASK-Bus

длина

Поле статуса

STA

1

код команды

CD

1

параметры команды или пакет для внешнего устройства

DATA

N

системное время

DATA

4

дополнение до кратности 8 байт

DATA

L

Длина параметров команды N

DATA


1

контрольная сумма

DATA

2


Для длины преобразуемых данных Len должны выполняться условия: Len mod 8 = 0 и Len >= 16. Контрольная сумма – это сумма всех байтов данных, подвергаемых преобразованию, расположенных до нее (младшими вперед). Дополнение до кратности 8 байт производится заполнением пространства значением системного таймера.


3.6.2 Служебный и пользовательский пароль

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

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

При изменении пароля сначала вводится старый пароль, при его правильности (т.е. при совпадении введенного значения с пользовательским паролем) предлагается ввести новый пользовательский пароль. Длина пароля – от 3 до 6 символов, пароль хранится в энергонезависимой памяти EEPROM контроллера. При успешном изменении пароля обнуляется счетчик времени, служащий для проверки корректности приходящих сетевых пакетов (при приеме каждой новой корректной команды, имеющей преобразованные данные, данный счетчик изменяется на значение поля «время сетевого пакета»).


3.6.3 Ключ преобразования данных

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


На основе пароля формируется ключ, используемый для преобразования данных. Длина ключа – 256 бит. Расширение пароля до длины ключа осуществляется следующим образом:

1) преобразование пароля в BCD;

2) копирование получившейся строки на всю длину ключа;

3) выполнение операции XOR с неизменяемой константой, хранимой в энергонезависимой памяти контроллера, длина которой равна длине ключа.


3.6.4 Системное время

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


3.6.5 Защита от сбоев и протоколирование событий

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

- контроль корректности функционирования программной системы;

- контроль времени выполнения задач;

- запись контекста ПО контроллера в случае исключительной ситуации для последующего анализа;

- запись дампа памяти;

- ведение журнала событий.

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

4 Модернизация контроллера

4.1 Постановка задачи

В рамках дипломного проекта решались поставленные Заказчиком задачи по модернизации подсистемы ПТС-2, а именно:


  1. Принудительное выключение электромоторов по истечении тайм-аута;

  2. Обеспечение контроля положения задвижек;

  3. Повышение надежности каналообразующей аппаратуры.

Изменения аппаратной части контроллера затронули только 2 пункт.

Изменения программного обеспечения контроллера затронули все 3 пункта.

Изменения программного обеспечения ПК также затронули все 3 пункта.

4.1.1 Выключение электромоторов по истечении тайм-аута

Контроллер ASK-Lab имеет восемь дискретных выходов. Для каждого дискретного выхода на плате сопряжения контроллер имеет твердотельные реле с нормально разомкнутыми контактами (рисунок 4.1). Номинальный ток коммутации для этих реле составляет 1.5А и номинальное рабочее напряжение ~12-240В. Максимально допустимый кратковременный ток в течение одного полупериода до 10А. Внешний вид разъемов для подключения исполнительных устройств изображен на рисунке 4.2.





В системе ПТС-2 задействовано 5 выходов: по 2 для каждого из двух электроприводов и 1 для клапана слива воды (рисунок 4.3).


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

В случае неправильного монтажа или неисправности самого электропривода постоянное нахождение под напряжением 220В может привести к тому, что обмотка электропривода сгорит. Чтобы избежать этого контроллер ASK-Lab должен по истечении заданного промежутка времени снимать управляющее напряжение с реле. Тайм-аут должен быть настраиваем, т.к. в зависимости от модели электропривода гарантированное время срабатывания может меняться.


4.1.2 Контроль положения задвижек

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

Э
ксперименты по использованию цифрового видео в петле обратной связи для контроля текущего состояния исполнительных механизмов проводились на одной из подстанций еще в 2005 году и описаны в [3], [4]. В экспериментально опробованном варианте конфигурации системы оператор мог контролировать положение задвижек в реальном масштабе времени через телекамеры слежения. Передача видео в этом случае осуществлялась посредством ЛВС здания, к которой подключался специализированный видеоконтроллер, разработаны в СКБ ГУАП. Эта видеосистема используется вплоть до настоящего времени на одном из узлов теплоснабжения. На рис. 4.4 приведено изображение панели управления системы ПТС-2 с узла, оборудованного системой видеоконтроля.

Были исследованы возможность передачи цифрового видео по коммутируемым телефонным сетям общего пользования. В реальных условиях Санкт-Петербурга передача одного видеокадра осуществлялась за 2-3 сек, что обеспечивало возможность видеоконтроля за объектом управления по коммутируемым телефонным линиям.

В силу разных причин этот концептуальный подход, несмотря на свою перспективность, не получил развития в проекте ПТС.

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

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


По согласованию с Заказчиком этот вариант контроля был реализован и внедрен в результате дипломного проекта.


4.1.3 Повышение надежности каналообразующей аппаратуры

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

Самым простым способом решения данной задачи является использование интеллектуальной розетки, которая по заданному расписанию, например, раз в час, будет производить сброс модема (рисунок 4.5).

Недостатки данного решения:


  1. Увеличение общей стоимости системы;

  2. Проблема обеспечения сохранности.




Из-за этих недостатков было принято решение производить сброс модема с помощью контроллера ASK-Lab, используя один из трех свободных портов управления (всего восемь, а задействовано пять). Этот вариант получил название “встроенная интеллектуальная розетка” и был реализован в процессе дипломной работы.

4.2 Модернизация аппаратной части контроллера

Модернизация аппаратной части контроллера связана с добавлением в контур управления датчиков положения задвижек.

В контроллере ASK-Lab было предусмотрено 8 гальванически развязанных цифровых входов. Датчики типа «сухой контакт», необходимые для контроля положения задвижек, нельзя напрямую подключить к контроллеру.

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


4.2.1 Разработка схемотехнических решений

На рисунке 4.6 представлен фрагмент принципиальной схемы коммуникационной платы. Для пользователя доступны разъемы 5EEHDV-04P (на рисунке 4.6 компонент J10). Предполагается, что датчики будут подключаться как раз к этим разъемам, т.е. на места цифровых входов.


Доработать коммуникационную плату для обеспечения возможности подключения датчиков можно несколькими способами:


  • «Вручную» переразвести плату, т.е. перерезать ненужные дорожки и запаять провода для новых цепей;

  • Внести необходимые изменения на дополнительной плате и впаять ее как мезонин.

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

Принципиальная схема дополнительной платы приведена в Приложении Х .

Мезонинная плата впаивается на места двух сборок оптопар. Никакие дорожки резать не приходится. Дополнительно с коммуникационной платы проводом «проложена» цепь +5В. Это обеспечивает возможность получить 8 гальванически развязанных входов для датчиков «сухой контакт» (рисунок 4.7).




4.2.2 Конструктивное исполнение

Внешний вид мезонинной платы представлен на рисунке 4.8.

Плата маленькая по площади, односторонняя и компонентов на ней минимум: штыри и две сборки оптопар. Это гораздо более экономичное решение, чем изготовление большой коммуникационной платы. Внешний вид коммуникационной платы в новом качестве представлен на рисунке 4.9.






4.3 Модернизация программного обеспечения контроллера

4.3.1 Описание исходного ПО контроллера

Как было указано выше, контроллер ASK-Lab построен на основе 4-x микроконтроллеров PIC18F458, объединенных внутриплатной сетью I2C.

Применительно к проекту ПТС, в схеме управления задействовано 3 микроконтрллера (рисунок 4.10):

• PIC_Master – является мастером сети, отвечает за коммуникацию с ПК (через модем, или без него) и др. функции контроллера;


• PIC_SPT – является подчиненным (slave) устройством сети, отвечает за коммуникацию с теплосчетчиком и управление силовыми устройствами;

• PIC_Danf - является подчиненным (slave) устройством сети, отвечает за коммуникацию с терморегулятором ECL Comfort 300.


Для управления силовыми устройствами используется порт PORTD микроконтроллера, отвечающего за информационный обмен с теплосчетчиком (PIC_SPT).

Информация с датчиков приходит на порт PORTD микроконтроллера, отвечающего за информационный обмен с теплорегулятором (PIC_Danf).





Краткое описание функций программного обеспечения контроллера приведено ниже.

Функции микроконтроллера PIC_Master:


  • Обмен с ПК по интерфейсу RS-232 и протоколу Ask-Bus v 3.1 (выполнение команд, принятых с ПК, поддержка информационного обмена между ПК и процессорами PIC_SPT и PIC_Danf)

  • Обмен с процессорами PIC_SPT и PIC_Danf по интерфейсу I2C (PIC_Master – мастер сети)

  • Реализация процедуры ввода пароля (используется клавиатура и ЖК-индикатор, хранение пароля в EEPROM)

  • Ведение журнала событий (хранение в памяти FLASH)

  • Преобразование данных согласно алгоритму ГОСТ при выполнении команд, требующих разграничения доступа.


В Таблице 4.1 представлен состав модулей ПО микроконтроллера PIC_Master.

Таблица 4.1

Модули ПО микроконтроллера PIC_Master.



Модуль

Описание

1

Main.asm

Главный модуль проекта. Генерируется автоматически ПО “Constructor A3”


2

AskBus31.inc

Формирование/разбор пакетов протокола ASK-Bus v.3.1

3

AskTrans.inc

Формирование контрольной информации сетевого пакета на уровне ASK-Bus, являющегося ответным на запросный пакет с ПК

4

Crypt.inc

Прямое и обратное преобразование данных по алгоритму Гост в режиме простой замены

5

Define.inc

Модуль констант и объявлений. Генерируется автоматически ПО “Constructor A3”

6

Enter_Pswd.inc

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

7

Ex_Flash.inc

Работа с FLASH-памятью контроллера

8

Init.inc

Процедуры начальной инициализации контроллера. Генерируется автоматически ПО “Constructor A3”

9

Kernvar.inc

Модуль объявления переменных ядра. Генерируется автоматически ПО “Constructor A3”

10

Keyboard.inc

Опрос по требованию матричной клавиатуры с возвратом кода последней нажатой и отжатой клавиши

11

LCD.inc


Настройка и вывод на ЖКД текстовой информации

12

Macros.inc

Набор макросов, используемых ядром мОСРВ и библиотечными модулями. Системное ПО. Генерируется автоматически ПО “Constructor A3”

13

MasterCMD.inc

Выполнение команд (пришедших с ПК), предназначенных для выполнения микропроцессором PIC_Master

14

MI2C.inc

Обмен данными по интерфейсу I2C в режиме мастер с PIC18, работающими в режиме слэйв, либо другими внешними I2C слэйв-устройствами

15

Procs.inc

Набор стандартных процедур, используемых ядром мОСРВ и библиотечными модулями. Системное ПО

16

Resetbufsbyto.inc

Сброс буферов межзадачного обмена по условию

17

Setaskdevaddr.inc

Установка адреса устройства для протокола ASK-Bus v3.1

18

Spt_strt.inc

Формирование/разбор сетевых пакетов для обмена с СПТ 942 (посредством PIC_SPT) в режиме прозрачности

19

TaskCond.inc

Условия запуска задач в мОСРВ. Генерируется ПО “Constructor A3” на основе схемы межзадачного обмена

20

UsartD.inc


Обмен данными по интерфейсу RS-232 с внешним устройством с формированием пакета по символам границ пакета и по таймауту

21

Userdef.inc

Модуль констант и объявлений пользователя. Генерируется ПО “Constructor A3” на основе файла объявлений пользователя

22

ViewLevel.inc

Формирование/разбор сетевых пакетов на уровне представления данных


Внесение изменений в ПО микроконтроллера PIC_Master для реализация новых функций системы не потребовалось, т.к. новые прикладные задачи решаются на микроконтроллерах PIC_SPT и PIC_Danf.

Функции микропроцессора PIC_SPT:

  • Обмен с теплосчетчиком по интерфейсу RS-232;

  • Обмен с процессором PIC_Master по интерфейсу I2C (PIC_SPT – подчиненное устройство);

  • Выполнение команд, принятых процессором PIC_Master с ПК;

  • Поддержка информационного обмена между ПК и теплосчетчиком;

  • Управление силовыми устройствами (по командам с PIC_Master).


В Таблице 4.2 представлен состав модулей ПО микроконтроллера PIC_SPT.

Таблица 4.2

Модули ПО микроконтроллера PIC_ SPT.



Модуль

Описание

1

Main.asm

Главный модуль проекта. Генерируется автоматически ПО “Constructor A3”

2

CmdDisp.inc


Диспетчер команд, пришедших от PIC_Master

3

Define.inc

Модуль констант и объявлений. Генерируется автоматически ПО “Constructor A3”

4

Init.inc

Процедуры начальной инициализации контроллера. Генерируется автоматически ПО “Constructor A3”

5

Kernvar.inc

Модуль объявления переменных ядра. Генерируется автоматически ПО “Constructor A3”

6

Macros.inc

Набор макросов, используемых ядром мОСРВ и библиотечными модулями. Системное ПО. Генерируется автоматически ПО “Constructor A3”

7

Procs.inc

Набор стандартных процедур, используемых ядром мОСРВ и библиотечными модулями. Системное ПО

8

Resetbufsbytos.inc

Сброс буферов межзадачного обмена по условию

9

SI2C.inc

Обмен данными по интерфейсу I2C в режиме слейв с PIC18, работающим в режиме мастер

10

SlaveCMD.inc

Выполнение команд пользователя (пришедших с ПК), предназначенных для выполнения микропроцессором PIC_SPT

11

TaskCond.inc

Условия запуска задач в мОСРВ. Генерируется ПО “Constructor A3” на основе схемы межзадачного обмена


12

Usart.inc

Обмен данными по интерфейсу RS-232 с внешним устройством с формированием пакета по таймауту

13

Userdef.inc

Модуль констант и объявлений пользователя. Генерируется ПО “Constructor A3” на основе файла объявлений пользователя


Модернизация ПО микроконтроллера PIC_SPT необходима для реализации функций:

  • Принудительное выключение электромоторов по истечении тайм-аута;

  • Повышение надежности каналообразующей аппаратуры (сброс модема).


Функции микропроцессора PIC_Danf:

  • Обмен с терморегулятором ECL Comfort 300 по интерфейсу RS-232;

  • Обмен с процессором PIC_Master по интерфейсу I2C (PIC_SPT – подчиненное устройство);

  • Выполнение команд, принятых процессором PIC_Master с ПК;

  • Поддержка информационного обмена между ПК и терморегулятором.


Состав модулей ПО микропроцессора PIC_Danf аналогичен составу модулей PIC_SPT. Отличие модулей в различных константах и определениях.

Модернизация ПО микроконтроллера PIC_SPT необходима для реализации задачи контроля положения задвижек.


4.3.2 Задача выключения электроприводов по тайм-ауту

Задача выключения электроприводов по тайм-ауту реализуется на микроконтроллере PIC_SPT.

Для выполнения этой функции был написан новый модуль StopMotor.inc и изменен модуль SlaveCMD.inc


Модуль StopMotor.inc предназначен для реализации принудительного выключения электромоторов по истечении тайм-аута.

Таблица 4.3

Характеристики модуля StopMotor.inc:

Параметр


Значение

Имя файла

StopMotor.inc

Использование прерываний

нет

Локальная память, байт

7

Параметры, задаваемые константами

да

Количество задач

2

Действия при инициализации

Чтение из EEPROM значения тайм-аута. Если значение некорректно или отсутствует, то запись в EEPROM значения тайм-аута по умолчанию


Ниже приведено краткое описание логики работы контроллера.

Задачи модуля StopMotorCheckCMD, StopMotorCheckTO имеют самый низкий приоритет и постоянно находятся в очереди фоновых задач.

Задача StopMotorCheckCMD проверяет, не пришла ли по I2C команда для PIC_SPT. Если пришедшая команда – это команда управления электроприводами, то выставляется флаг соответствующего мотора и запоминается значение системного таймера.

Задача StopMotorCheckTO контролирует истечения тайм-аута. Если выставлен флаг мотора, то проверяется разница между текущим значением системного таймера и значением таймера, когда пришла команда. Если разница превысила тайм-аут, то соответствующий мотор выключается, и флаг сбрасывается.

Модуль SlaveCMD.inc предназначен для выполнения команд пользователя (пришедших с ПК через PIC_Master) на процессоре PIC_SPT или PIC_Danf.

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

В нашем случае в протокол обмена между ПК и контроллером ASK-Lab было необходимо добавить две новые команды, которые выполняются на микроконтроллере PIC_SPT:


  • команда установки значения тайм-аута (SlaveCmd_SetMotorTO);

  • команда чтения значения тайм-аута (SlaveCmd_GetMotorTO).


Тайм-аут хранится в EEPROM микроконтроллера.

Значение тайм-аута может быть от 1 до 60 сек. Проверка корректности ТО осуществляется перед записью нового значения в память EEPROM. Для робастности системы значение тайм-аута дублируется тремя байтами в памяти EEPROM. Выбор значения тайм-аута осуществляется по мажоритарному принципу из трех прочитанных.


4.3.3 Задача контроля положения задвижек

Задача контроля положения задвижек реализуется на микроконтроллере PIC_Danf.

Для выполнения этой функции был изменен модуль SlaveCMD.inc

В протокол обмена между ПК и контроллером ASK-Lab было необходимо добавить новую команду – команду чтения порта датчиков.

По этой команде обратно на ПК посылается значение порта PORTD.


4.3.4 Задача управления питанием модема

Задача управления питанием модема реализуется на микроконтроллере PIC_SPT.

Для выполнения этой функции был написан новый модуль ResetModem.inc и изменен модуль SlaveCMD.inc


Модуль ResetModem.inc предназначен для реализации сброса модема с заданными периодом времени.

Таблица 4.4

Характеристики модуля ResetModem.inc:

Параметр

Значение

Имя файла

ResetModem.inc

Использование прерываний

нет

Локальная память, байт

5

Параметры, задаваемые константами


да

Количество задач

3

Действия при инициализации

Начальная установка флагов, включение питания


Ниже приведено описание логики работы при реализации этой функции.

Каждый период сброса модема (Т сброса) питание модема пропадает на длительность времени сброса (t сброса) (рисунок 4.11). Период сброса настаивается и хранится в EEPROM контроллера, а длительность сброса задается константой и равен 20 секундам.





Задачи модуля ResetModemCheckPeriod, ResetModemCheckDuration, ResetModemCheckCMD имеют самый низкий приоритет и постоянно находятся в очереди фоновых задач.

Задача ResetModemCheckPeriod отслеживает время истечения периода сброса. Считается разница между текущим значением системного таймера и временем, когда произошел последний сброс модема. Если эта разница превышает значение периода, считанного из EEPROM контроллера, то выставляется флаг сброса, выключается питание модема и запоминается значение системного таймера для задачи ResetModemCheckDuration.

Задача ResetModemCheckDuration отслеживает время истечения нахождения в сбросе. Если флаг сброса установлен, то считается разница между текущим значением системного таймера и временем, когда контроллер выключил питание модема. Если эта разница превышает значение константы в памяти, то питание модема включается, флаг сброса обнуляется и запоминается значение системного таймера для задачи ResetModemCheckPeriod.

Задача ResetModemCheckCMD анализирует команды, которые приходят на микроконтроллер PIC_SPT. Если это критически важные команды, например, управление исполнительными устройствами, то обновляется значение переменной, в которой хранится время последнего сброса. Таким оброзом сброс отодвигается ровно на один период. Это сделано для того, чтобы контроллер в критический момент не выключил модем и не разорвал связь между ПК и контроллером.


Бит порта PORTD, отвечающего за управление питанием модема, задается с помощью маски. Пользователь не может с помощью программы на ПК в ручном режиме поменять значение этого бита. Это сделано, чтобы пользователь по ошибке не выключил питание модема и таким образом разорвал связь.

В протокол обмена между ПК и контроллером ASK-Lab было необходимо добавить две новые команды, которые выполняются на микроконтроллере PIC_SPT:


  • команда установки периода сброса модема;

  • команда чтения периода сброса модема.

Для этого был изменен модуль SlaveCMD.inc.

4.4 Модернизация программного обеспечения ПК

Для реализации новых функций контроллера было доработано приложение «Инженер. Ниже приводятся описания внесенных изменений в процессе модернизации.


4.4.1 Задача выключения электроприводов по тайм-ауту

Главная панель программа представлена на рис. 4.12. В этом режиме оператор имеет возможность выбора конкретной реализуемой в данный момент функции.

Панель «Тайм-аут выключения моторов» (рисунок 4.13) появляется при нажатии на кнопку «Тайм-аут моторов» главной панели программы.





С помощью ползунка у пользователя есть возможность задать тайм-аут от 5 до 60 секунд с шагом в 5 секунд.

Команда установки или чтения тайм-аута приходит на микроконтроллер PIC_Master, который ее разбирает и перетранслирует на микроконтроллер PIC_SPT по шине I2C. Микроконтроллер PIC_SPT записывает значение тайм-аута в EEPROM и использует его при управлении электроприводами. Получив от слейва ответ со статусом выполненной команды, PIC_Master посылает ответ на ПК.

Команда установки тайм-аута моторов защищена паролем.


4.4.2 Задача контроля положения задвижек

Панель управления исполнительными устройствами претерпела следующие изменения (рисунок 4.14). Над кнопками управления исполнительными устройствами появились 8 виртуальных переключателей. Они отражают состояние датчиков типа «сухой контакт», подключенных к контроллеру: замкнуто или разомкнуто.




Для системы важны в первую очередь четыре датчика, привязанные к конкретным положениям задвижек электроприводов. К четырем оставшимся пользователь имеет возможность подключать устройства по своему усмотрению.

При открытии этой панели информация о текущем состоянии каналов управления и датчиков обновляется раз в секунду. Т.е. с таким интервалом посылаются на контроллер команда чтения порта управления и команда чтения порта датчиков.

При нажатии на клавишу F1 – F8 на контроллер посылается команда установки соответствующего значения на порту управления.


4.4.3 Задача управления питанием модема

Панель «Период сброса модема» (рисунок 4.16) появляется при нажатии на кнопку «Период сброса» главной панели программы (рисунок 4.15)







С помощью ползунка у пользователя есть возможность задать период сброса модема от 15 до 240 минут с шагом 15 минут, а также «бесконечность» (т.е. включен постоянно) при крайнем правом положении ползунка.

Т.к. модем подключен к одному из каналов управления (6 канал), то это накладывает определенные ограничения. Чтобы оператор не разорвал связь с контроллером, отключив питание модема, контроль за 6 каналом управления осуществляет только контроллер. Пользователю он недоступен.



<< предыдущая страница   следующая страница >>