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
f3753a6e
Commit
f3753a6e
authored
Oct 09, 2011
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(docs): пишу документацию по чуть..чуть..
parent
6021e254
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
62 additions
and
5 deletions
+62
-5
libuniset.dox
docs/DocPages/libuniset.dox
+62
-5
No files found.
docs/DocPages/libuniset.dox
View file @
f3753a6e
/*! \page page_Uniset Краткое описание библиотеки libuniset
Основной целью библиотека libuniset является предоставление готовых "кубиков",
для построения АСУ.
Графически libuniset можно представить так:
- \ref pg_UniSet_Common
- \ref pg_Uniset_Processes
- \ref pg_UniSet_Network
- \ref pg_UniSet_Utilities
\section pg_UniSet_Common Общее описание libuniset
Основной целью библиотеки \b libuniset является предоставление готовых "кубиков", для построения АСУ.
Графически её можно представить так:
\image html libuniset.png
\section pg_Uniset_Processes Взаимодействие процессов на узле
В основу положена технология CORBA (omniORB - реализация AT&T).
Но основе вызовов CORBA построено всё взаимодействие. При этом API библиотеки,
"максирует" взаимодействие через CORBA и при необходимости
взаимодействие может быть переписано на основе других механизмов.
В библиотеке реализованы наиболее распространённые интерфейсы обмена,
это \b ModbusTCP и \b ModbusRTU. Помимо этого имеется собственный интерфейс \b UNet,
реализующий обмен по протоколу UDP.
Для взаимодействия с базами данных, реализован базовый DBInterface,
на основе которго можно писать интерфейсы для подключения uniset
к различным СУБД. В самой libuniset реализовано взаимодействие с MySQL.
Помимо собственно единого интерфейса, в библиотеке реализованы \b "готовые компоненты"
для построения АСУ. К ним относятся:
- \b SharedMemory - хранение "переменных"
- \b IOControl - работа с картами ввода/вывода
- \b Modbus TCP/RTU slave и master режимы
- \b UNetExchange - взаимодецствие по протоколу UDP
- \b LogicProcessor - компонент, позволяющий описывать алгоритмы на основе, логических схем
(записываемых в xml-файле).
\b Готовые \b компоненты - представляют из себя уже законченные программы (процессы),
которые "умеют" взаимодейсвовать с SharedMemory и позволяют легко
"развёртывать" распределённые системы.
Всё взаимодействие в libuniset построено на понятии "датчик". Это некоторая
"информационная единица", позволяющая процессам взаимодействовать между собой.
При этом создаётся \b "прозрачная сеть" и каждый процесс использующий тот или иной
датчик в своих целях, "не знает" где физически он находиться и одинаково
взаимодействует с локальными и удалёнными датчиками.
Далее будут рассмотрены типичные схемы построения этого взаимодействия на основе \b libuniset.
\section pg_Uniset_Processes Взаимодействие процессов на узле
На рисунке представлено типичное взаимодействие процессов на узле.
\image html uniset-node.png
...
...
@@ -44,4 +84,21 @@
\section pg_UniSet_Network Распределённое взаимодействие (сетевое)
\image html uniset-typical.png
Для обеспечения \b "прозрачности сети" всё взаимодействие построено на
использовании \b SharedMemory \b(SM), хранящей состояние датчиков во \b ВСЕЙ системе.
При этом на каждом узле запускатся своя копия \b SM. "прозрачность" при этом
обеспечивают процессы обмена между узлами по соответствующему протоколу
(на рисунке это CAN и UNET). Узлы \b постоянно обмениваются между собой
датчиками обеспечивая \b "одинаковостть" хранимой в SM информации.
Каждый процесс обмена получает от других узлов информацию о находящихся у них датчиков,
и в свою очередь посылает другим узлам информацию о датчиках находящихся у него на узле.
Так же через SM функционирует и процесс ввода/вывода (IOControl). Всё, что считывается с карт ввода
сохраняется в SM, а состояние "выходов" читается из SM и выводится в карты каналы вывода.
\section pg_UniSet_Utilities Утилиты входящие в состав libuniset
...
*/
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