Автор |
Сообщение |
Сообщение создано: 17. 07. 2009 [15:44]
|
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
|
На каких-то блоках внутренний дип, на других внешний переключатель, на некоторых внешняя перемычка INIT-GND. При изменении любых настроек блока надо замыкать, после чего, разомкнув, перегрузить блок.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Сообщение создано: 24. 07. 2009 [09:18]
|
andrelek
Андрей Полевой
Зарегистрирован(а) с: 13.12.2008
Сообщения: 210
|
almaz wrote:
На каких-то блоках внутренний дип, на других внешний переключатель, на некоторых внешняя перемычка INIT-GND. При изменении любых настроек блока надо замыкать, после чего, разомкнув, перегрузить блок.
Спасибо уже разобрался! На моем модуле и внутренний дип и перемычка INIT-GND.
|
Сообщение создано: 24. 07. 2009 [09:26]
|
andrelek
Андрей Полевой
Зарегистрирован(а) с: 13.12.2008
Сообщения: 210
|
Спасибо, господа разработчики, огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
После исправлений скада с модулем работает сутки! ))))
|
Сообщение создано: 05. 12. 2009 [19:14]
|
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
|
При падениях в модуле DCON происходил вылет всей OpenSCADA.
Существует ли возможность изолировать ядро OpenSCADA от ошибок в модулях?
То есть, чтобы в случае падения одного модуля, происходил автоматический перезапуск только этого модуля (не затрагивая работу ядра и остальных модулей) с выдачей соответствующего сообщения в лог или stderr ?
PS Вечную жизнь микроядру /usr/bin/openscada!!!
[Сообщение редактировалось 2 раз(а), в последний раз 05.12.2009 в 19:18.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Сообщение создано: 05. 12. 2009 [19:48]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
В рамках одного процесса нет. Это цена за высокую производительность.
Можно сделать путём выноса функции модуля в отдельный процесс и отражать его данные с помощью DAQGate.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 05. 12. 2009 [20:32]
|
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
|
Несколько процессов - каждый с определёнными модулями
Это несколько увеличит надёжность. Если знаешь от каких модулей изолироваться... Но никто не перезапустит сбившийся процесс...
Кто знает какой из нескольких десятков модулей и при каких условиях может дать сбой, например, через год непрерывной работы?
А насколько может снизится производительность системы при изоляции ядра от модулей?
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Сообщение создано: 05. 12. 2009 [22:02]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
almaz wrote:
Кто знает какой из нескольких десятков модулей и при каких условиях может дать сбой, например, через год непрерывной работы?
Так-же как и никто не может знать какой из драйверов ОС или её компонентов даст сбой.
Для этого делается несложный диспетчер прямо в скрипте OpenSCADA или используется стандартный, например monit.
almaz wrote:
А насколько может снизится производительность системы при изоляции ядра от модулей?
На затраты сеарилизации данных в поток и межпроцесный обмен.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 06. 12. 2009 [09:21]
|
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
|
Может быть тогда есть возможность обеспечить хотя бы не полную изоляцию (не выделяя ядро и модули в разные процессы)?
Допустим, чтобы обработчик ошибок перезапускал только поток процесса в случае возникновения в нём непредвиденной ошибки. С выдачей диагностического сообщения.
[Сообщение редактировалось 1 раз(а), в последний раз 06.12.2009 в 09:24.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Сообщение создано: 06. 12. 2009 [16:35]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
Я таких механизмов не знаю. Сигнал сегментации памяти приходит процессу целиком и его обработка не прерывает поток, а зацикливает его на этой ошибке. Во всяком случае раньше я пробовал, а затем закоментировал. Сейчас выделил код создания потоков, что позволило вести их учёт, но получить большинство информации всёравно нет возможности, например получить TID потока, не находясь в контексте этого потока нет возможности. А без TID нет возможности получить статистику работы потока.
Learn, learn and learn better than work, work and work.
|