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
85194659
Commit
85194659
authored
Oct 06, 2011
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(docs): подправил документацию
parent
116c811d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
5 deletions
+40
-5
IOControl.h
extensions/IOControl/IOControl.h
+0
-0
SharedMemory.h
extensions/SharedMemory/SharedMemory.h
+40
-5
No files found.
extensions/IOControl/IOControl.h
View file @
85194659
This diff is collapsed.
Click to expand it.
extensions/SharedMemory/SharedMemory.h
View file @
85194659
...
@@ -107,7 +107,7 @@
...
@@ -107,7 +107,7 @@
<item id="2342" name="MyObject" ... evnt_myfilter="1" ../>
<item id="2342" name="MyObject" ... evnt_myfilter="1" ../>
</objects>
</objects>
\endcode
\endcode
При это в параметрах старта SM должно быть указано \b --e-filter myfilter.
При это
м
в параметрах старта SM должно быть указано \b --e-filter myfilter.
Тогда при своём старте SM пришлёт объекту с идентификатором 2342 уведомление.
Тогда при своём старте SM пришлёт объекту с идентификатором 2342 уведомление.
В качестве уведомления объектам рассылается сообщение \b SystemMessage::WatchDog.
В качестве уведомления объектам рассылается сообщение \b SystemMessage::WatchDog.
...
@@ -135,14 +135,49 @@
...
@@ -135,14 +135,49 @@
\endcode
\endcode
На данный момент зависимость можно устанавливать только на дискретные датчики.
На данный момент зависимость можно устанавливать только на дискретные датчики.
\section sec_SM_HeartBeat Слежение за "живостью" объектов
\section sec_SM_HeartBeat Слежение за "живостью" объектов
("сердцебиение")
Слежение за специальными датчиками (инкремент специальных датчиков),
Слежение за специальными датчиками (инкремент специальных датчиков),
а также выставление дискретных датчиков "живости" процессов.
а также выставление дискретных датчиков "живости" процессов.
...
...
Данный механизм построен на следующей логике:
\par
Каждому процессу, за которым необходимо следить, назначается два дватчика "сердцебиения"(heartbeat),
аналоговый(счётчик) и дискретный. Во время работы, процесс периодически (время задаётся в настройках)
сохраняет в свой \b аналоговый датчик заданное значение (количество тактов).
В свою очередь процесс SM, каждый "такт"(время между шагами задаётся в настройках),
"отнимает" у этого значения 1 (декриментирует). Пока значение счётчика больше нуля, дискретный датчик
держиться равным "1" (т.е. 1 - процесс "жив"). Если процесс "вылетает" и перестаёт обновлять свой счётчик,
то через некоторое количество тактов его счётчик становится меньше нуля. Как только это происходит, SM фиксирует,
"недоступность" процесса, и выставляет дискретный датчик в ноль (т.е. 0 - процесс вылетел(недоступен)).
При этом, имеется возможность для некоторых процессов (обычно для особо важных, без которых работа невозможна) указать,
время ожидания "перезапуска процесса"(heartbeat_reboot_msec) и в случае если для SM настроена работа с WDT-таймером
и за заданное время процесс не перезапустился (не обновил свой счётчик), происходит
перезагрузка контроллера (SM перестаёт сбрасывать WDT-таймер).
У аналоговых датчиков "сердцебиения" в конфигурайионном файле необходимо указывать \b heartbeat="1".
А также поля:
<br>\b heartbeat_ds_name - имя дискретного датчика, связанного с данным аналоговым
<br>\b heartbeat_node="ses" - фильтрующее поле (см. --heartbeat-node)
<br>\b heartbeat_reboot_msec - время ожидания перезапуска процесса. Это необязательный параметр, задаётся только в случае
необходимости перезапуска контроллера.
Пример задания датчиков "сердцебияния":
<br>_31_04_AS - аналоговый (счётчик)
<br>_41_04_S - дискретный ("доступность процесса")
\code
<item default="10" heartbeat="1" heartbeat_ds_name="_41_04_S" heartbeat_node="ses" heartbeat_reboot_msec="10000"
id="103104" iotype="AI" name="_31_04_AS" textname="SES: IO heartbeat"/>
<item default="1" id="104104" iotype="DI" name="_41_04_S">
<MessagesList>
<msg mtype="1" text="КСЭС: отключился ввод\вывод" value="0"/>
</MessagesList>
</item>
\endcode
\section sec_SM_History Механизм аварийного дампа
\section sec_SM_History Механизм аварийного дампа
...
...
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