Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
4b86c607
Commit
4b86c607
authored
Aug 30, 2014
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
удалил "совсем" устаревшую документацию
parent
a9002edf
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
616 deletions
+0
-616
overview_ru.lyx
docs/Describes/overview_ru.lyx
+0
-616
No files found.
docs/Describes/overview_ru.lyx
deleted
100644 → 0
View file @
a9002edf
#LyX 1.1 created this file. For more info see http://www.lyx.org/
\lyxformat 218
\textclass article
\language russian
\inputencoding koi8-r
\fontscheme default
\graphics default
\paperfontsize 12
\spacing single
\papersize a4paper
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default
\layout Title
Направления разработки и используемые технологии
\layout Section
Принципы взаимодействия в системе
\layout Subsection
Общие принципы работы
\layout Standard
Процессы управления заказывают необходимые им для работы датчики у контроллеров
уведомлений.
Контроллеры ввода/вывода опрашивают датчики и передают эту информацию контролле
рам уведомлений.
Контроллеры уведомлений обрабатывают ее и рассылают сообщения об изменении
состояния всем заказавшим.
\layout Standard
Обмен информацией между объектами системы основан на сообщениях.
Этот механизм позволяет посылать и обрабатывать информацию в асинхронном
режиме.
Помимо обмена информации посредством сообщений имеется возможность прямого
доступа к функциям объекта.
\layout Standard
Вся информация полученная в результате опроса датчиков или анализа состояния
объектов сохраняется в базе данных, основанной на MySQL, что позволяет
в дальнейшем использовать её для контроля изменений параметров системы
во времени и анализа состояния объектов.
\layout Subsection
Основные программные элементы системы и их предназначение
\layout Enumerate
Процессы управления (
\family typewriter
ControlProcess
\family default
)
\begin_deeper
\layout Standard
Предназначены для реализации алгоритма управления одним или несколькими
объектами.
\end_deeper
\layout Enumerate
Контроллеры ввода/вывода (
\family typewriter
IOController
\family default
)
\begin_deeper
\layout Standard
Предназначены для сбора (опроса) информации о состоянии датчиков.
Предоставляют доступ к этой информации другим объектам.
\end_deeper
\layout Enumerate
Контроллеры уведомлений (
\family typewriter
NotifyController
\family default
)
\begin_deeper
\layout Standard
Являются расширением Контроллера ввода/вывода.
Помимо информации о текущем состоянии датчиков он позволяют заказывать
уведомление об изменении состояния и рассылают соответствующие сообщения
заказчикам.
Позволяют заказывать одну и туже информацию нескольким объектам.
\end_deeper
\layout Enumerate
Графический интерфейс пользователя
\begin_deeper
\layout Standard
Предназначен для отображения информации о работе системы.
Показывает состояния различных объектов, отображает записи в журнале.
\end_deeper
\layout Enumerate
Репозиторий объектов (
\family typewriter
ObjectRepository
\family default
)
\begin_deeper
\layout Standard
Предназначен для предоставления доступа к объекту по его имени.
При этом обеспечивает доступ как к удаленным объектам так и к локальным.
\end_deeper
\layout Enumerate
Информационный сервер, на основе базы данных (
\family typewriter
InformationServer
\family default
)
\begin_deeper
\layout Standard
Сохранение всей поступающей информации о состоянии датчиков, объектов, неисправн
остях.
Предоставление доступа к этой информации.
\end_deeper
\layout Subsection
Способ взаимодействия между объектами системы
\layout Standard
Взаимодействие между объектами системы (процессами управления, контроллерами
ввода/вывода и т.п.) происходит через
\begin_inset Quotes eld
\end_inset
Репозиторий объектов
\begin_inset Quotes erd
\end_inset
.
Каждый объект имеет уникальное имя.
После активизации он регистрируется в репозитории и становится доступен
другим объектам (т.е.
он может получать и обрабатывать сообщения, предоставляет доступ к своим
функциям).
Для доступа к объекту необходимо знать только имя объекта.
\layout Standard
Непосредственно механизм обмена, доступа к объектам, сетевое взаимодействие
реализованы на основе технологии построения распределенных систем CORBA.
Эта технология позволяет построить масштабируемую, надежную распределенную
систему ....
и т.п.
и т.п.
\layout Itemize
Варианты получения процессом, отображающим объекты на экране, сообщений
от подсистемы обмена сообщениями.
(Рисунок структуры и пример программы.)
\layout Itemize
Измерение и тестовая программа времени обращения за датчиком.
\layout Itemize
Обоснование выбранного варианта.
\layout Section
Связь графической подсистемы и процессов управления
\layout Standard
Процесс управления опрашивает датчики и формирует состояние контролируемого
оборудования, которое пересылается на дисплей.
На дисплее отображаются параметры оборудования и его состояние.
\layout Standard
Отдельно посылаются сообщения о возможных неисправностях.
\layout Section
Используемые программы и библиотеки
\layout Standard
Используемые программы:
\layout Itemize
\family typewriter
gcc
\family default
--- компилятор C++ серии gcc3.0
\layout Itemize
\family typewriter
doxygen
\family default
--- документирование программ
\layout Itemize
\family typewriter
sodipodi
\family default
--- редактирование svg (векторной графики)
\layout Itemize
\family typewriter
gimp
\family default
--- редактирование растровых изображений
\layout Itemize
\family typewriter
convert
\family default
--- преобразование графических форматов
\layout Itemize
LyX --- процессор документов для написания сопровождающей документации
\layout Standard
Используемые библиотеки:
\layout Itemize
\family typewriter
gtk--
\layout Itemize
\family typewriter
gnome-libs
\layout Itemize
\family typewriter
libguppi
\layout Itemize
\family typewriter
libomniORB (CORBA)
\layout Itemize
\family typewriter
libMySQL
\family default
\layout Standard
Рассмотреть подходящую библиотеку для отладки (nana?)
\layout Subsection
Подготовка графических материалов
\layout Standard
Максимальное возможное использование программ под Linux при подготовке графическ
ой части.
\layout Standard
Для векторных изображений использовать формат
\series bold
SVG
\series default
(масштабируемая векторная графика), предложенный консорциумом
\series bold
W3
\series default
как стандарт для сетевой графики.
\layout Standard
Возможно использование программ трёхмерного проектирования для создания
изображений объектов.
\layout Subsection
Информационная база
\layout Standard
Информационная база реализована на основе СУБД MySQL, являющуюся подмножеством
языка SQL.
Основными особенностями MySQL являются быстродействие и ошибкоустойчивость.
Ядро, на котором сформирован MySQL --- набор подпрограмм, которые использовалис
ь в высокотребовательном окружении много лет.
\layout Standard
Целью информационной базы в системе является накопление(сохранение) всей
поступающей информации для её дальнейшего анализа.
\layout Subsection
Использование существующих библиотек
\layout Standard
То, что можно сделать стандартными (уже имеющимися средствами), лучше делать
ими.
Если же имеющиеся средства по какой-либо причине не подходят, то для начала
рассмотреть возможность доработки стандартного средства так, чтобы оно
нам подходило.
\layout Standard
Абсолютное большинство программных инструментов и библиотек уже разработано,
и нам остаётся нужные нам библиотеки освоить и использовать, при необходимости
улучая их.
Эти улучшения должны быть, они являются нашей платой за использования в
нашем проекте свободных компонентов.
\layout Section
Документация
\layout Standard
В основную ветку
\series bold
CVS
\series default
\series bold
UniSet
\series default
изменения должны добавляться релизами, сопровождёнными документацией и
перечнем изменений.
\layout Section
Требования к системе разработки (языку) человеко-машинного интерфейса
\layout Enumerate
Осуществление связи с технологической станцией (ТС).
\layout Enumerate
Взаимодействие с пользователем через клавиатуру (возможно, ввод будет осуществля
ться через дискретные датчики на ТС).
\layout Enumerate
Поддержка графической библиотеки для OS GNU/Linux с реализацией стандартных
диалоговых элементов и работы с графическими изображениями.
\layout Section
Основные положения по вводу/выводу
\layout Enumerate
Дискретный и аналоговый
\emph on
вывод
\emph default
из процессов осуществляется посредством сообщений, адресованных непосредственно
процессу, осуществляющему вывод
\begin_float footnote
\layout Standard
Например, процессу обмена по CAN с терминальным контроллером.
\end_float
.
\layout Enumerate
Процессы, осуществляющие вывод, не имеют в себе информации о конкретных
датчиках, только о контроллерах, с которыми он обменивается.
\layout Enumerate
Данные, получаемые от процессов, осуществляющих
\emph on
ввод
\emph default
, помещаются этими процессами непосредственно в разделяемую память.
(???????)
\layout Enumerate
Процесс обработки заказов и контроля датчиков
\begin_float footnote
\layout Standard
Universal, построенный аналогично существующему для ЭД6
\end_float
самостоятельно с определённой периодичностью опрашивает разделяемую память
на предмет изменения состояния датчиков.
(???????)
\layout Enumerate
Координаты каждого датчика задаются следующим образом (???????)
\begin_deeper
\layout Itemize
Дискретный датчик:
\layout Standard
Для дискретной карты:
\layout Standard
\begin_inset Tabular
<lyxtabular version="2" rows="1" columns="3">
<features rotate="false" islongtable="false" endhead="0" endfirsthead="0" endfoot="0" endlastfoot="0">
<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
<column alignment="center" valignment="top" leftline="true" rightline="true" width="" special="">
<row topline="true" bottomline="true" newpage="false">
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер карты
\end_inset
</cell>
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер разъема
\end_inset
</cell>
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер модуля
\end_inset
</cell>
</row>
</lyxtabular>
\end_inset
\layout Standard
Для терминального контроллера:
\layout Standard
\begin_inset Tabular
<lyxtabular version="2" rows="1" columns="3">
<features rotate="false" islongtable="false" endhead="0" endfirsthead="0" endfoot="0" endlastfoot="0">
<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
<column alignment="center" valignment="top" leftline="true" rightline="true" width="" special="">
<row topline="true" bottomline="true" newpage="false">
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер контроллера
\end_inset
</cell>
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер группы
\end_inset
</cell>
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер модуля
\end_inset
</cell>
</row>
</lyxtabular>
\end_inset
\layout Itemize
Аналоговый датчик:
\layout Standard
Для аналоговой карты:
\layout Standard
\begin_inset Tabular
<lyxtabular version="2" rows="1" columns="2">
<features rotate="false" islongtable="false" endhead="0" endfirsthead="0" endfoot="0" endlastfoot="0">
<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
<column alignment="center" valignment="top" leftline="true" rightline="true" width="" special="">
<row topline="true" bottomline="true" newpage="false">
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер карты
\end_inset
</cell>
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер канала
\end_inset
</cell>
</row>
</lyxtabular>
\end_inset
\layout Standard
Для терминального контроллера:
\layout Standard
\begin_inset Tabular
<lyxtabular version="2" rows="1" columns="2">
<features rotate="false" islongtable="false" endhead="0" endfirsthead="0" endfoot="0" endlastfoot="0">
<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
<column alignment="center" valignment="top" leftline="true" rightline="true" width="" special="">
<row topline="true" bottomline="true" newpage="false">
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер контроллера
\end_inset
</cell>
<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
\begin_inset Text
\layout Standard
Номер канала
\end_inset
</cell>
</row>
</lyxtabular>
\end_inset
\end_deeper
\layout Section
Требования к терминальному контроллеру
\layout Enumerate
Терминальный контроллер (ТК) с заданной периодичностью пересылает на технологиче
ские станции (ТС) состояния датчиков
\layout Enumerate
ТС асинхронно шлёт на ТК команды на вывод
\layout Enumerate
При обрыве связи ТК переводит выходные каналы в безопасное состояние
\layout Enumerate
реализация ИЛИ для выходных сигналов
\layout Enumerate
очистка выходного буфера от ТС, с которой нет связи
\layout Section
Предложения по организации программной части системы управления
\begin_inset Quotes eld
\end_inset
UniSet
\begin_inset Quotes erd
\end_inset
.
\layout Enumerate
Процессы желательно делать в виде отдельных программ, что упростит их отладку
и обеспечит большую распределенность.
\layout Enumerate
Функциональность всей системы распределить по процессам, где каждый процесс
будет отвечать за определенную задачу.
Обмен по сети, слежение за изменением состояния датчиков и пр.
Модульный принцип построения архитектуры системы.
\layout Enumerate
Желательно использовать потоки в процессах управления (многопоточность).
\layout Enumerate
Неплохо было бы спроектировать систему перед реализацией с помощью языка
UML и CASE средств таких, как Rational Rose.
\layout Enumerate
Желательно изучить и использовать уже готовые библиотеки.
(nana -для отладки, omniORB для удаленного управления объектами и пр.)
\layout Enumerate
Для разработки графических интерфейсов использовать удобные IDE средства
и специальные высокоуровневые языки такие, как QT-Designer, RUBY.
\layout Enumerate
Ядро системы должно быть универсальным, что позволит устанавливать ее на
любой объект управления изменяя лишь процессы управления и соответствующие
модули.
\the_end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment