- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Хранение трендов в контроллере
Модераторы: Глоб.модераторы, специалисты по PLC
-
- здесь недавно
- Сообщения: 50
- Зарегистрирован: 31 мар 2010, 09:01
- Имя: Igor V. Zhdanov
- Страна: Россия
- город/регион: Оренбургская обл, Бузулук
Хранение трендов в контроллере
Имеем систему PLC --> InTouch & Historian. Вообщем, такая задача: хранение трендов в контроллере на время потери связи с ПК так, чтобы после восстановления они дописывались в базу (не было провала на тренде).
Мои соображения: берем одну переменную, сохраняем ее значения с определенной периодичностью, например, 1 раз в 100 мсек.
Сохраняем значения в одномерном массиве. А вот как организовать передачу в InTouch & Historian даже не представляю. В какую сторону копать???
Мои соображения: берем одну переменную, сохраняем ее значения с определенной периодичностью, например, 1 раз в 100 мсек.
Сохраняем значения в одномерном массиве. А вот как организовать передачу в InTouch & Historian даже не представляю. В какую сторону копать???
-
- освоился
- Сообщения: 247
- Зарегистрирован: 05 мар 2010, 15:01
- Имя: Тихомиров Владимир Владимирович
- Страна: Россия
- город/регион: Кириши Ленинградской
- Поблагодарили: 1 раз
Re: Хранение трендов в контроллере
В контроллере нет столько памяти.ZIV писал(а): например, 1 раз в 100 мсек.
Тренды реального времени, которые хранятся в контроллерах обычно не чаще 0.5 сек. Да и то это нужно для очень уж крутых аварийных процессов.
Сохранённые точки наверное можно передавать последовательно через какой то тег.
-
- здесь недавно
- Сообщения: 50
- Зарегистрирован: 31 мар 2010, 09:01
- Имя: Igor V. Zhdanov
- Страна: Россия
- город/регион: Оренбургская обл, Бузулук
Re: Хранение трендов в контроллере
Легко посчитать. Вполне можно уложиться в разумные пределы, если число трендов еденично. К тому же некоторые контроллеры позволяют наращивать память.
-
- специалист
- Сообщения: 600
- Зарегистрирован: 08 авг 2008, 10:43
- Имя: Щукин Андрей Александрович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 63 раза
Re: Хранение трендов в контроллере
Для таких задач, производители контроллеров выпускают специальные модули, которые быстро (иногда с частотой в мсек), ведут большие логи для последующей предачи на верхний уровень. У Омрона это модули CJ(S)1W-SPUxx, у Митсубиши в серии Q вроде такой модуль появился.T_Vlad писал(а):В контроллере нет столько памяти.ZIV писал(а): например, 1 раз в 100 мсек.
Тренды реального времени, которые хранятся в контроллерах обычно не чаще 0.5 сек. Да и то это нужно для очень уж крутых аварийных процессов.
Сохранённые точки наверное можно передавать последовательно через какой то тег.
Запись на флэш (как я понимаю в виде файла?) не всегда удобна, так как процесс этот не особо быстрый по сравненю с циклом контроллера. Да, и потом возникает вопрос как от туда потом данные передать наверх.
Авторы ТЗ, с которыми я работаю, не имеют права жаловаться на дороги, ЖКХ, бюрократию и правительство.
-
- здесь недавно
- Сообщения: 50
- Зарегистрирован: 31 мар 2010, 09:01
- Имя: Igor V. Zhdanov
- Страна: Россия
- город/регион: Оренбургская обл, Бузулук
Re: Хранение трендов в контроллере
О чем и речь - как передать.
Посчитаем грубо. Сохраняем значение 1 раз в сек. Получается 3600 значений в час. 1 значение = 32 бит = 4 байта. 1 час = 14400 байт ~ 14 кбайт. В принципе, немного.
Теперь передача. Имеем часовой архив. Допустим, цикл контроллера 50 мсек. Присваиваем каждый цикл тегу тренда значение из архива. 3600 значений передадим за 3 мин. Это в идеале. В Historian сформируется тренд. Но без привязки ко времени создания архивных значений.
Посчитаем грубо. Сохраняем значение 1 раз в сек. Получается 3600 значений в час. 1 значение = 32 бит = 4 байта. 1 час = 14400 байт ~ 14 кбайт. В принципе, немного.
Теперь передача. Имеем часовой архив. Допустим, цикл контроллера 50 мсек. Присваиваем каждый цикл тегу тренда значение из архива. 3600 значений передадим за 3 мин. Это в идеале. В Historian сформируется тренд. Но без привязки ко времени создания архивных значений.
-
- здесь недавно
- Сообщения: 50
- Зарегистрирован: 31 мар 2010, 09:01
- Имя: Igor V. Zhdanov
- Страна: Россия
- город/регион: Оренбургская обл, Бузулук
-
- специалист
- Сообщения: 600
- Зарегистрирован: 08 авг 2008, 10:43
- Имя: Щукин Андрей Александрович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 63 раза
Re: Хранение трендов в контроллере
У модулей встроенный Ethernet. В принципе модуль виден с компа, как ftp с файлами, но в действительности используется программный модуль для ПК, что бы подвязаться (синхронизироваться) с базам данных. Файлы в контроллере в пишутся в обязательном порядке с привязкой к часам ПЛК.ZIV писал(а):О чем и речь - как передать.
Авторы ТЗ, с которыми я работаю, не имеют права жаловаться на дороги, ЖКХ, бюрократию и правительство.
Re: Хранение трендов в контроллере
Можно ещё сделать так: при обрыве связи хранить даннные в ПЛК (в виде файлов или просто двоичных массивов не важно, а при восстановлении передать недостающие данные SQL серверу на АРМе при помощи команды UPDATE). Реализовать запросы к SQL серверу по каналу Ehternet очень просто.
-
- освоился
- Сообщения: 227
- Зарегистрирован: 24 июл 2008, 09:22
- Имя: Мурашко Андрей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 2 раза
Re: Хранение трендов в контроллере
Ziv,
посмотрите на вот этот модуль - http://discover.rockwellautomation.com/ ... rofile.pdf
он специально выпущен под платформу ControlLogix для хранения истории (трендов).
Синхронизируется с "большим" архиватором FT Historian SE на сервере.
посмотрите на вот этот модуль - http://discover.rockwellautomation.com/ ... rofile.pdf
он специально выпущен под платформу ControlLogix для хранения истории (трендов).
Синхронизируется с "большим" архиватором FT Historian SE на сервере.
-
- почётный участник форума
- Сообщения: 626
- Зарегистрирован: 29 сен 2008, 17:05
- Имя: Алексей Угрюмов
- Страна: Россия
- город/регион: СПб
- Благодарил (а): 8 раз
- Поблагодарили: 23 раза
Re: Хранение трендов в контроллере
А какой контроллер-то? Кроме хранения переменной, надо хранить метку времени. Как правильно сказал Дмитрий Милосердов для, экономии места надо сохранять точку при отклонении от предыдущей на некое дельта. Что касается метки времени, то тут встаёт отдельный вопрос о том, как это время синхронизировать со временем на сервере. Дальше вопрос какой транспорт используется для передачи данных от контроллера к серверу (как в плане железа, так в плане протокола и механизма подключения - OPC/драйвер в СКАДА). У некоторых производителей есть поддержка исторических данных. У других ручками - запросили точку, приняли точку, приняли метку времени, сделали INSERT, подтвердили получение точки и т.д. Дальше тренды у InTouch по архивным данным из базы строятся?
Alex.
-
- освоился
- Сообщения: 238
- Зарегистрирован: 30 май 2009, 20:21
- Имя: Науменко Александр Сергеевич
- Страна: Россия
- город/регион: Шатура
- Поблагодарили: 1 раз
Re: Хранение трендов в контроллере
Намного проще будет организовать систему автоматического резервирования канала связи. Единственное место, где я встречал хранение данных в контроллерах- это системы коммерческого либо технического учета, да и то данные хранились там в виде массивов значений вида : среднечасовое, среднесуточное и. т.д.
а не с интервалом в виде 0,5 сек. и менее
а не с интервалом в виде 0,5 сек. и менее
-
- здесь недавно
- Сообщения: 50
- Зарегистрирован: 31 мар 2010, 09:01
- Имя: Igor V. Zhdanov
- Страна: Россия
- город/регион: Оренбургская обл, Бузулук
Re: Хранение трендов в контроллере
Вопрос был без привязки к конкретному железу. Удалось выяснить, что в Historian существует функция Update, строящая недостающую часть тренда. Спасибо всем высказавшимся по данному вопросу, задача обрела ястность. Теперь дело за экспериментами.
-
- здесь недавно
- Сообщения: 17
- Зарегистрирован: 31 янв 2011, 11:00
- Имя: Двоеглазов Дмитрий Николаевич
- Страна: Россия
- город/регион: Кирово-Чепецк
Re: Хранение трендов в контроллере
Данную задачу возможно сделать. В простейшем виде она реализована в контроллерах Triconex * SOE.
У Allen-Bradley в 1756, 1769 есть возможность подключить флешку CompactFlash.
Остается сделать
-Систему выбора данных для сохранения данных с привязкой даты и времении (запись одного события менее 14 байт не сделать),
-Сохранение/чтение на флеш,
-Подготовка и передача данных ПЭВМ,
-Приложение, принимающее и сохраняющее данные на SQL-сервер или др.БД.
В итоге может получится следующее (вырезано из документации реальной работающей системы):
Система регистрации событий и значений аналоговых параметров с высокой временной точностью (до 1 мс) реализованная на базе промышленного микропроцессорного комплекса Allen-Bradley.
Функциональность системы:
- сохранение истории технологического процесса в контроллере на энергонезависимой памяти на временном интервале до 10 лет;
- дата и время возникновения события присваивается в контроллере;
- синхронизация времени по GPS (опционально);
- временная точность регистрации параметров практически не зависит от количества параметров;
- определение сложных правил регистрации параметров, например, при появлении определенного события записать значения заданных параметров;
- данные, считанные с микропроцессорного комплекса, сохраняются в базу данных MSSQL,MySQL, пригодную для отображения в RSView с помощью TrendX, пример представлен на рисунке 1.
- передача данных с микропроцессорного комплекса осуществляется по мере их поступления посредством COM-порта и EtherNet (internet) или считывание данных производится пользователем с энергонезависимой памяти посредством считывателя карт памяти (CartReader);
У Allen-Bradley в 1756, 1769 есть возможность подключить флешку CompactFlash.
Остается сделать
-Систему выбора данных для сохранения данных с привязкой даты и времении (запись одного события менее 14 байт не сделать),
-Сохранение/чтение на флеш,
-Подготовка и передача данных ПЭВМ,
-Приложение, принимающее и сохраняющее данные на SQL-сервер или др.БД.
В итоге может получится следующее (вырезано из документации реальной работающей системы):
Система регистрации событий и значений аналоговых параметров с высокой временной точностью (до 1 мс) реализованная на базе промышленного микропроцессорного комплекса Allen-Bradley.
Функциональность системы:
- сохранение истории технологического процесса в контроллере на энергонезависимой памяти на временном интервале до 10 лет;
- дата и время возникновения события присваивается в контроллере;
- синхронизация времени по GPS (опционально);
- временная точность регистрации параметров практически не зависит от количества параметров;
- определение сложных правил регистрации параметров, например, при появлении определенного события записать значения заданных параметров;
- данные, считанные с микропроцессорного комплекса, сохраняются в базу данных MSSQL,MySQL, пригодную для отображения в RSView с помощью TrendX, пример представлен на рисунке 1.
- передача данных с микропроцессорного комплекса осуществляется по мере их поступления посредством COM-порта и EtherNet (internet) или считывание данных производится пользователем с энергонезависимой памяти посредством считывателя карт памяти (CartReader);