EnglishУкраїнськаmRussian
Login/New
Topic with many replies

[BugFixed] Падение DCON


Author Message
Written on: 17. 07. 2009 [15:44]
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
На каких-то блоках внутренний дип, на других внешний переключатель, на некоторых внешняя перемычка INIT-GND. При изменении любых настроек блока надо замыкать, после чего, разомкнув, перегрузить блок.

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Written on: 24. 07. 2009 [09:18]
andrelek
Андрей Полевой
registered since: 13.12.2008
Posts: 210
almaz wrote:

На каких-то блоках внутренний дип, на других внешний переключатель, на некоторых внешняя перемычка INIT-GND. При изменении любых настроек блока надо замыкать, после чего, разомкнув, перегрузить блок.


Спасибо уже разобрался! На моем модуле и внутренний дип и перемычка INIT-GND.
Written on: 24. 07. 2009 [09:26]
andrelek
Андрей Полевой
registered since: 13.12.2008
Posts: 210
Спасибо, господа разработчики, огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
После исправлений скада с модулем работает сутки! ))))
Written on: 05. 12. 2009 [19:14]
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
При падениях в модуле DCON происходил вылет всей OpenSCADA.
Существует ли возможность изолировать ядро OpenSCADA от ошибок в модулях?
То есть, чтобы в случае падения одного модуля, происходил автоматический перезапуск только этого модуля (не затрагивая работу ядра и остальных модулей) с выдачей соответствующего сообщения в лог или stderr ?

PS Вечную жизнь микроядру /usr/bin/openscada!!!icon_smile.gif

[This article was edited 2 times, at last 05.12.2009 at 19:18.]

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Written on: 05. 12. 2009 [19:48]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
В рамках одного процесса нет. Это цена за высокую производительность.
Можно сделать путём выноса функции модуля в отдельный процесс и отражать его данные с помощью DAQGate.

Learn, learn and learn better than work, work and work.
Written on: 05. 12. 2009 [20:32]
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
Несколько процессов - каждый с определёнными модулями icon_rolleyes.gif
Это несколько увеличит надёжность. Если знаешь от каких модулей изолироваться... Но никто не перезапустит сбившийся процесс...

Кто знает какой из нескольких десятков модулей и при каких условиях может дать сбой, например, через год непрерывной работы?icon_rolleyes.gif

А насколько может снизится производительность системы при изоляции ядра от модулей?

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Written on: 05. 12. 2009 [22:02]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
almaz wrote:

Кто знает какой из нескольких десятков модулей и при каких условиях может дать сбой, например, через год непрерывной работы?icon_rolleyes.gif

Так-же как и никто не может знать какой из драйверов ОС или её компонентов даст сбой.
Для этого делается несложный диспетчер прямо в скрипте OpenSCADA или используется стандартный, например monit.

almaz wrote:

А насколько может снизится производительность системы при изоляции ядра от модулей?

На затраты сеарилизации данных в поток и межпроцесный обмен.

Learn, learn and learn better than work, work and work.
Written on: 06. 12. 2009 [09:21]
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
Может быть тогда есть возможность обеспечить хотя бы не полную изоляцию (не выделяя ядро и модули в разные процессы)?
Допустим, чтобы обработчик ошибок перезапускал только поток процесса в случае возникновения в нём непредвиденной ошибки. С выдачей диагностического сообщения.

[This article was edited 1 times, at last 06.12.2009 at 09:24.]

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Written on: 06. 12. 2009 [16:35]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
Я таких механизмов не знаю. Сигнал сегментации памяти приходит процессу целиком и его обработка не прерывает поток, а зацикливает его на этой ошибке. Во всяком случае раньше я пробовал, а затем закоментировал. Сейчас выделил код создания потоков, что позволило вести их учёт, но получить большинство информации всёравно нет возможности, например получить TID потока, не находясь в контексте этого потока нет возможности. А без TID нет возможности получить статистику работы потока.

Learn, learn and learn better than work, work and work.



14630