форум асутп
 На главную                       Здесь может быть Ваша реклама, подробнее...


 Наверх  |  Перейти к теме  |  Поиск  |  Вход  |  Дерево    
 Синхронизация времени в контроллере
Автор: Егор Ушаков 
Дата:   27.12.07 15:25

На контроллере МФК3000 используется операционная система Linux (переписанный в TeNIX). Драйвера данной TeNIX используют системное время. Следовательно и пользовательские задачи были тоже завязаны на системное время. В этой ситуации возникает опасность что при синхронизации времени контроллера с верхним уровнем может возникнуть ошибка в расчете интервалов времени, производных и т.п. Особенно это критично для задач регулирования.
Кто может подсказать по своему или чужому опыту как решались подобные проблемы?
Время контроллера синхронизируется с верхним уровнем для обеспечения единообразия в архивах. Метка времени для архивных значений присваивается в контроллере.
Плюс остается открытым вопрос, как правильно синхронизировать время в резервированных контроллерах между Master'ом и Slave'ом.

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Alexander Diev 
Дата:   28.12.07 10:23

Здравствуйте, Егор.
> На контроллере МФК3000 используется операционная система Linux
> (переписанный в TeNIX). Драйвера данной TeNIX используют системное время.
> Следовательно и пользовательские задачи были тоже завязаны на системное
> время. В этой ситуации возникает опасность что при синхронизации времени
> контроллера с верхним уровнем может возникнуть ошибка в расчете интервалов
> времени, производных и т.п. Особенно это критично для задач регулирования.
> Кто может подсказать по своему или чужому опыту как решались подобные
> проблемы?
> Время контроллера синхронизируется с верхним уровнем для обеспечения
> единообразия в архивах. Метка времени для архивных значений присваивается
> в контроллере.
> Плюс остается открытым вопрос, как правильно синхронизировать время в
> резервированных контроллерах между Master'ом и Slave'ом
В системах, с которыми я работаю (Metso DNA, старые на платформе VME под
OS/9, новые - линуксовые) есть возможность при конфигурации указать
NTP-сервер, с которого идет синхронизация времени всей системы. То есть,
можно сделать выделенный сервер единого времени предприятия, и с него
уже синхронизировать все, что надо. Что касается МФК3000 - не знаю, есть
ли у него своя функция синхронизации, но если есть возможность залезть в
конфигурацию linux, то там можно настроить синхронизацию по все тому же
протоколу NTP (ну или SNTP,  если высокая точность не нужна).


--
С уважением,
Александр Диев,
ст. инженер АСУ отд. АСУТП
ОАО "Сегежский ЦБК"
mailto: adiev@xxxx.xx

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Oleg Alekseyev 
Дата:   28.12.07 13:35

----- Original Message -----
From: "Егор Ушаков"
Subject: [asutp] Синхронизация времени в контроллере


> На контроллере МФК3000 используется операционная система Linux
> (переписанный в TeNIX). Драйвера данной TeNIX используют системное время.
> Следовательно и пользовательские задачи были тоже завязаны на системное
> время. В этой ситуации возникает опасность что при синхронизации времени
> контроллера с верхним уровнем может возникнуть ошибка в расчете интервалов
> времени, производных и т.п. Особенно это критично для задач регулирования.
> Кто может подсказать по своему или чужому опыту как решались подобные
> проблемы?

В POSIX-e имеются как минимут два типа таймеров:
CLOCK_REALTIME - синхронизируемый от внешнего сервера времени;
CLOCK_MONOTONIC - несинхронизируемый, считает тики аппаратного таймера.
Установка новых показаний для часов CLOCK_REALTIME влияет на срабатывание таймеров, взведенных на абсолютное время, но не затрагивает интервальные таймеры.
Для расчётов интервалов времени надо пользовать CLOCK_MONOTONIC и интервальные таймеры ITIMER_REAL.
http://www.intuit.ru/department/se/pposix/12/pposix_12.html
http://www.developerweb.net/forum/archive/index.php/t-4272.html

Best regard.
Oleg.

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Перепелкин Сергей 
Дата:   28.12.07 13:57

Тут все просто. В Linux как и в большинстве  современных  операционных систем действительно есть служба NTP. Некоторе время назад нами был разработан сервер единого времени TimeVisor для синхронизации времени не только контроллеров МФК-3000, но всей АСУ ТП.
Подробнее о  синхронизации времени и о TimeVisor здесь: http://www.krug2000.ru/press.phtml?view=unitedtimeserver

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Alexander Diev 
Дата:   28.12.07 16:56

> Тут все просто. В Linux как и в большинстве  современных  операционных
> систем действительно есть служба NTP.
Это в виндах христианских службы и иконки, а в сатанинском линухе -
демоны :)

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Alex G. Zentner 
Дата:   29.12.07 23:52

Alexander Diev пишет:
> В системах, с которыми я работаю (Metso DNA, старые на платформе VME под
> OS/9, новые - линуксовые) есть возможность при конфигурации указать
> NTP-сервер, с которого идет синхронизация времени всей системы. То есть,
> можно сделать выделенный сервер единого времени предприятия, и с него
> уже синхронизировать все, что надо. Что касается МФК3000 - не знаю, есть
> ли у него своя функция синхронизации, но если есть возможность залезть в
> конфигурацию linux, то там можно настроить синхронизацию по все тому же
> протоколу NTP (ну или SNTP,  если высокая точность не нужна).
>
>
>

Как я понял, Егор Ушаков не по поводу самой синхронизации волнуется.
В МФК есть возможность задать NTP сервер, поэтому с синхронизацией как
таковой вопросов нет.
Проблема в том что расчет временных временых интервалов, таймеров и т.д.
привязан к системному времени - такие ф-ции как time(), gettimeofday(),
а не, например, к процессорным тикам...
Соответственно если между двумя вызовами  time()  происходит коррекция
времени - интервал будет выдержан неправильно.

--
Всего хорошего!
Центнер Алексей.
инженер по АСУТП ООО "Огнеупор"
gemini@xxx.xx
г. Магнитогорск, Россия.

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Vyatcheslav Perevalov 
Дата:   30.12.07 23:14

В сообщении от 29 декабря 2007 Alex G. Zentner написал(a):
> Проблема в том что расчет временных временых интервалов, таймеров и т.д.
> привязан к системному времени - такие ф-ции как time(), gettimeofday(),
> а не, например, к процессорным тикам...
> Соответственно если между двумя вызовами  time()  происходит коррекция
> времени - интервал будет выдержан неправильно.

Остановить регулирование - синхронизировать время - запустить регулирование.
Только регулятор должен быть достаточно устойчивым.

--
Всего хорошего
/vip

Адрес этого сообщения    Ответить на это сообщение
 
 RE: Синхронизация времени в контроллере
Автор: Oleksii Filipov 
Дата:   31.12.07 00:10

Уважаемые Коллеги,

А какой смысл привязывать регуляторы к мировому времени? Я думаю, достаточно
времени процессора. Может, приведёте примеры задач, в которых это
необходимо?
А что касается таймеров, чувствительных к коррекции времени, вероятно,
следует подумать о выставлении предупредительных флагов, запрещающих
синхронизацию. Нетривиальная, конечно, задача. Лучше строить алгоритмы,
"устойчивые" к сбоям синхронизации, то есть - привязанные только к времени
процессора, а синхронизацию и отработку задач, завязанных на мировое время
выделить в отдельный модуль.

Всего наилучшего

Алексей

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Alex G. Centner 
Дата:   31.12.07 07:43

Vyatcheslav Perevalov пишет:
> Остановить регулирование - синхронизировать время - запустить регулирование. Только регулятор должен быть достаточно устойчивым.
> -- Всего хорошего /vip

Как вы себе это представляете ? Практически.


--
Всего хорошего!
Центнер Алексей.
инженер по АСУТП ООО "Огнеупор"
gemini@xxx.xx
г. Магнитогорск, Россия.

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Alex G. Centner 
Дата:   31.12.07 07:57

Oleksii Filipov пишет:
> Уважаемые Коллеги,
>
> А какой смысл привязывать регуляторы к мировому времени? Я думаю, достаточно
> времени процессора. Может, приведёте примеры задач, в которых это
> необходимо?

Ну на вскидку, самое банальное - управление наружным освещением :)


> А что касается таймеров, чувствительных к коррекции времени, вероятно,
> следует подумать о выставлении предупредительных флагов, запрещающих
> синхронизацию. Нетривиальная, конечно, задача. Лучше строить алгоритмы,
> "устойчивые" к сбоям синхронизации, то есть - привязанные только к времени
> процессора, а синхронизацию и отработку задач, завязанных на мировое время
> выделить в отдельный модуль.
>

Это даже сомнений не вызывает, что таймеры надо привязывать к
процессорным тикам. Вопрос как это реализовано в библиотеках МФК...


--
Всего хорошего!
Центнер Алексей.
инженер по АСУТП ООО "Огнеупор"
gemini@xxx.xx
г. Магнитогорск, Россия.

Адрес этого сообщения    Ответить на это сообщение
 
 Re: Синхронизация времени в контроллере
Автор: Vyatcheslav Perevalov 
Дата:   31.12.07 15:02

В сообщении от 31 декабря 2007 Alex G. Centner написал(a):
> > Остановить регулирование - синхронизировать время - запустить
> > регулирование. Только регулятор должен быть достаточно устойчивым. --
> > Всего хорошего             /vip
>
> Как вы себе это представляете ? Практически.
Ну, например, так:

#!/bin/bash
service regulators stop
ntpdate time.server.ru
service regulators start

Сам этот скрипт, вернее, его вызов, прописать в crontab.

Скрипт regulators написать так, чтобы остановка регулирования происходила по
окончании текущего (незавершённого) цикла подстройки и положить
в /etc/init.d/ (/etc/rc.d/init.d/). Предусмотреть в нём цели start, stop,
restart, reload, status. Как именно - зависит от.

--
Всего хорошего
/vip

Адрес этого сообщения    Ответить на это сообщение
 
 Re[2]: Синхронизация времени в контроллере
Автор: Evgueny Tikhonovich 
Дата:   03.01.08 17:50

Приветствую!

   Поздравляю всех подписчиков с наступившим Новым Годом! Желаю
успехов на АСУТПшном и всех остальных поприщах!

   А так же еще раз напоминаю всем подписчикам о необходимости следить
за форматированием сообщений. К примеру, сообщение Вячеслава
Перевалова в почтовие выглядит примерно так: http://img218.imageshack.us/my.php?image=asutpscreenshotsy1.gif
Не очень удобно читать.


--
С Уважением, Тихонович Евгений.
Модератор ASUTP, ASUTPTALK, NEWSASUTP.
________________________________________________________________
.... Все влюбленные клянутся исполнить больше, чем могут, но не исполняют даже возможного. (Шекспир)

Адрес этого сообщения    Ответить на это сообщение
 Список форумов    


 Список форумов  |  Нужен логин? Регистрируйтесь здесь 
 Логин пользователя
 Имя пользователя:
 Пароль:
 Помнить пароль:
   
 Забыли ваш пароль?
Введите имя пользователя или e-mail, и новый пароль будет послан на email, указанный в вашем профиле.

Рейтинг@Mail.ru