Для проведения линеаризации исходная характеристика была разбита на 9 линейных участков. Это позволяет занести в память контроллера только параметры линейных уравнений, что существенно сокращает объём управляющей программы [3, 4].
Параметры линейных уравнений приведены в таблице.
Таблица 2.1 - Параметры линейных уравнений
Номер линейного участка | Диапазон изменения уровня (см) | Коэффициент | Свободный член | Среднее значение относительной погрешности аппроксимации | |
нижняя граница | верхняя граница | ||||
0 | 50 | 3 | -20 | 30,79 | |
50 | 105 | 11 | -430 | 4,66 | |
105 | 152 | 17 | -1050 | 0,89 | |
152 | 222 | 24 | -2128 | 0,58 | |
222 | 275 | 28 | -2997 | 0,11 | |
275 | 342 | 31 | -3853 | 0,23 | |
342 | 410 | 32 | -4197 | 0,09 | |
410 | 416 | 24 | -905 | 0,02 | |
416 | 500 | 12 | 4105 | 0,09 |
Как видно из таблицы, наибольшая погрешность аппроксимации существует на первом участке. По графику видно, что на данном участке кривая существенно не линейна. Это и объясняет такое значение погрешности. Однако этот факт не является существенным недостатком, поскольку данный участок достаточно мал и соответствует довольно низким уровням топлива, которые редко достигаются на практике.
На рисунке 2.4 показана расчётная градуировочная характеристика, полученная при помощи описанных выше уравнений.
Рисунок 2.4 - Расчётная градуировочная характеристика
На рисунке 2.5 приведён график абсолютной погрешности аппроксимации для всех табличных значений.
Рисунок 2.5 - Абсолютная погрешность аппроксимации
На рисунке 2.6 приведён график относительной погрешности аппроксимации для всех табличных значений.
Рисунок 2.6 - Относительная погрешность аппроксимации
Достигнутые значения погрешностей являются приемлемыми при данных условиях. Кроме этого, значения объёма, полученные с помощью указанных уравнений, являются приблизительными. Точные значения по полным градуировочным таблицам вычисляются в программном модуле диспетчера [5].
2.4 Структура управляющей программы микроконтроллера
Управляющая программа микроконтроллера разработана в редакторе Ladder, входящего в комплект поставки микроконтроллера.
Программа выполняется циклически, длительность цикла составляет 0,01 с. Алгоритм работы состоит из следующих этапов.
Линеаризация аналогового сигнала с датчика уровня. На этом этапе определяется значение уровня в сантиметрах из соотношения: 20 мА соответствует максимальному уровню 5метров. Операционная система имеет встроенную функцию линеаризации, которая доступна через системные переменные. Для этого операнды записываются в ячейки памяти, SI80-SI83, после чего для активизации функции устанавливается системный бит SB80. Соответствующий фрагмент программы представлен на рисунке 2.3.
Рисунок 2.7 - Фрагмент программы, выполняющий линеаризацию
Вычисление объёма и массы топлива по его уровню. Производится с помощью совокупности линейных уравнений, описанных выше. После получения значения уровня производится выбор соответствующего уравнения. На рисунке 2.8 показан фрагмент программы, в котором производится вычисление объёма топлива в цистерне.
Рисунок 2.8 - Фрагмент программы вычисления объёма топлива в цистерне
Масса топлива рассчитывается путём умножения объёма на коэффициент преобразования, который равен 0,84 тонн/кубометр.
Алгоритм работы программы вычисления объёма и массы топлива приведён на рисунке 2.9.
Вычисление частоты вращения валов двигателей. Контроллер осуществляет подсчёт количества импульсов, поступающих на цифровые входы №8 и №9 за единицу времени, после чего производится пересчёт полученного значения в значение с размерностью
. Измерение интервала времени производится с помощью встроенного таймера. Отсчёт оборота производится по первому срезу входного импульса.Фрагмент программы, иллюстрирующий вычисление частоты представлен на рисунке 2.10.
Рисунок 2.9 - Алгоритм работы программы вычисления объёма и массы топлива
Рисунок 2.10 - Фрагмент программы вычисления частоты вращения валов
Схема алгоритма программы подсчёта импульсов и вычисления частоты вращения валов представлена на рисунке 2.11.
Рисунок 2.11 - Схема алгоритма программы подсчёта импульсов и вычисления частоты вращения валов
2.5 Конфигурирование DDE-сервера UniDDE
Для реализации возможности обмена данными между контроллером и компьютером фирмой Unitronics разработано специальное программное обеспечение – DDE-сервер. С помощью данного ПО различные приложения могут производить обмен данными с контроллером.
Работа сервера организована следующим образом. В оперативной памяти ПЭВМ сохраняются копии значений внутренних переменных контроллера. Сервер по своему протоколу через последовательный порт производит синхронизацию и обновление данных через заданный интервал времени. Всем внешним приложения доступны сохранённые копии значений переменных через DDE-канал.
Для начала работы сервера и организации связи с контроллером, необходимо задать ряд параметров. Диалоговое окно сервера UniDDE, в котором показаны все введённые параметры, показано на рисунке 2.12.
Рисунок 2.12 - Диалоговое окно задания параметров сервера UniDDE
После того, как указаны все необходимые параметры, в основном окне сервера появится строка, отображающая список наблюдаемых переменных, вид которой представлен на рисунке 2.13.
Рисунок 2.13 - Окно сервера UniDDE со списком отображаемых переменных
Теперь сервер готов к использованию. Для начала работы необходимо запустить сервер нажатием на кнопку «Run».
2.6 Разработка клиентского приложения
Клиентское приложение устанавливается на ПЭВМ капитана судна и производит приём и обработку информации, поступающей от контроллера.
Оно содержит также модуль для работы с терминалом спутниковой системы Inmarsat.
Вид главного окна приложения приведён на рисунке 2.14.
Рисунок 2.14 - Главное окно клиентского приложения
В режиме реального времени в главном окне отображаются частоты вращения левого и правого валов, что необходимо капитану для управления судном.
Уровень топлива в сантиметрах считывается напрямую из памяти контроллера посредством DDE-сервера.
Для вычисления объёма топлива используется усреднённая тарировочная таблица, полученная путём усреднения таблиц для гружёного и балластного состояний. Масса топлива вычисляется в соответствии с заданным коэффициентом пересчёта объёма в массу. Обычно его значение равно 0,84.
В окне имеется тестовое поле для отправки сообщений диспетчеру. Уровень сигнала спутников отображается в реальном времени с помощью соответствующего индикатора.
В режиме реального времени в окне отображается информация о текущем местонахождении судна. Эта же информация в автоматическом режиме отправляется диспетчеру.
2.7 Разработка серверного приложения
Для серверного приложения, установленного на ПЭВМ диспетчера, выбран модифицированный MDI-стиль интерфейса. Особенность заключается в том, одновременно в главном окне может создаваться множество дочерних форм, однако в каждый момент времени видня только одна. Переход между дочерними формами осуществляется нажатиями на кнопки «Вперёд» и «Назад». Стиль панели инструментов выбран по типу приложения Internet Explorer.
При запуске приложения автоматически отображается окно с сообщениями, пришедшими от судов за сегодняшний день. Вид окна приведён на рисунке 2.15.
Рисунок 2.15 - Окно с сообщениями от экипажа судна «Волгонефть-53»
С помощью элементов интерфейса можно задать период, за который требуется отобразить сообщения с судов.
Аналогичным образом выводится информация с датчиков. Вид окна с данной информацией показан на рисунке 2.16.
Рисунок 2.16 - Окно приложения с информацией от датчиков судна
Для обновления отображаемой информации служит кнопка «Обновить» на панели инструментов.
При нажатии на кнопку «Домой» произойдёт переход к окну, отображающему информацию о сообщениях с судов за сегодняшний день.
При нажатии на ссылку «Сообщения» будут отображены все сообщения, пришедшие и отправленные за сегодняшний день.
Вид окна представлен на рисунке 2.17.