1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Хранение трендов в контроллере

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

Модераторы: Глоб.модераторы, специалисты по PLC

Ответить

Автор темы
ZIV
здесь недавно
здесь недавно
Сообщения: 50
Зарегистрирован: 31 мар 2010, 09:01
Имя: Igor V. Zhdanov
Страна: Россия
город/регион: Оренбургская обл, Бузулук

Хранение трендов в контроллере

Сообщение ZIV »

Имеем систему PLC --> InTouch & Historian. Вообщем, такая задача: хранение трендов в контроллере на время потери связи с ПК так, чтобы после восстановления они дописывались в базу (не было провала на тренде).
Мои соображения: берем одну переменную, сохраняем ее значения с определенной периодичностью, например, 1 раз в 100 мсек.
Сохраняем значения в одномерном массиве. А вот как организовать передачу в InTouch & Historian даже не представляю. В какую сторону копать??? :ges_hmm:

T_Vlad
освоился
освоился
Сообщения: 247
Зарегистрирован: 05 мар 2010, 15:01
Имя: Тихомиров Владимир Владимирович
Страна: Россия
город/регион: Кириши Ленинградской
Поблагодарили: 1 раз

Re: Хранение трендов в контроллере

Сообщение T_Vlad »

ZIV писал(а): например, 1 раз в 100 мсек.
В контроллере нет столько памяти.
Тренды реального времени, которые хранятся в контроллерах обычно не чаще 0.5 сек. Да и то это нужно для очень уж крутых аварийных процессов.
Сохранённые точки наверное можно передавать последовательно через какой то тег.

Автор темы
ZIV
здесь недавно
здесь недавно
Сообщения: 50
Зарегистрирован: 31 мар 2010, 09:01
Имя: Igor V. Zhdanov
Страна: Россия
город/регион: Оренбургская обл, Бузулук

Re: Хранение трендов в контроллере

Сообщение ZIV »

Легко посчитать. Вполне можно уложиться в разумные пределы, если число трендов еденично. К тому же некоторые контроллеры позволяют наращивать память.

Михайло
эксперт
эксперт
Сообщения: 3632
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 8 раз
Поблагодарили: 284 раза

Re: Хранение трендов в контроллере

Сообщение Михайло »

В S7-1200 есть флэшка на 24 Мб. Может поможет?

pike
специалист
специалист
Сообщения: 600
Зарегистрирован: 08 авг 2008, 10:43
Имя: Щукин Андрей Александрович
Страна: Россия
город/регион: Москва
Благодарил (а): 7 раз
Поблагодарили: 63 раза

Re: Хранение трендов в контроллере

Сообщение pike »

T_Vlad писал(а):
ZIV писал(а): например, 1 раз в 100 мсек.
В контроллере нет столько памяти.
Тренды реального времени, которые хранятся в контроллерах обычно не чаще 0.5 сек. Да и то это нужно для очень уж крутых аварийных процессов.
Сохранённые точки наверное можно передавать последовательно через какой то тег.
Для таких задач, производители контроллеров выпускают специальные модули, которые быстро (иногда с частотой в мсек), ведут большие логи для последующей предачи на верхний уровень. У Омрона это модули CJ(S)1W-SPUxx, у Митсубиши в серии Q вроде такой модуль появился.
Запись на флэш (как я понимаю в виде файла?) не всегда удобна, так как процесс этот не особо быстрый по сравненю с циклом контроллера. Да, и потом возникает вопрос как от туда потом данные передать наверх.
Авторы ТЗ, с которыми я работаю, не имеют права жаловаться на дороги, ЖКХ, бюрократию и правительство.

Автор темы
ZIV
здесь недавно
здесь недавно
Сообщения: 50
Зарегистрирован: 31 мар 2010, 09:01
Имя: Igor V. Zhdanov
Страна: Россия
город/регион: Оренбургская обл, Бузулук

Re: Хранение трендов в контроллере

Сообщение ZIV »

О чем и речь - как передать.
Посчитаем грубо. Сохраняем значение 1 раз в сек. Получается 3600 значений в час. 1 значение = 32 бит = 4 байта. 1 час = 14400 байт ~ 14 кбайт. В принципе, немного.
Теперь передача. Имеем часовой архив. Допустим, цикл контроллера 50 мсек. Присваиваем каждый цикл тегу тренда значение из архива. 3600 значений передадим за 3 мин. Это в идеале. В Historian сформируется тренд. Но без привязки ко времени создания архивных значений.

Автор темы
ZIV
здесь недавно
здесь недавно
Сообщения: 50
Зарегистрирован: 31 мар 2010, 09:01
Имя: Igor V. Zhdanov
Страна: Россия
город/регион: Оренбургская обл, Бузулук

Re: Хранение трендов в контроллере

Сообщение ZIV »

И кто победитель?

pike
специалист
специалист
Сообщения: 600
Зарегистрирован: 08 авг 2008, 10:43
Имя: Щукин Андрей Александрович
Страна: Россия
город/регион: Москва
Благодарил (а): 7 раз
Поблагодарили: 63 раза

Re: Хранение трендов в контроллере

Сообщение pike »

ZIV писал(а):О чем и речь - как передать.
У модулей встроенный Ethernet. В принципе модуль виден с компа, как ftp с файлами, но в действительности используется программный модуль для ПК, что бы подвязаться (синхронизироваться) с базам данных. Файлы в контроллере в пишутся в обязательном порядке с привязкой к часам ПЛК.
Авторы ТЗ, с которыми я работаю, не имеют права жаловаться на дороги, ЖКХ, бюрократию и правительство.

alti

Re: Хранение трендов в контроллере

Сообщение alti »

Можно ещё сделать так: при обрыве связи хранить даннные в ПЛК (в виде файлов или просто двоичных массивов не важно, а при восстановлении передать недостающие данные SQL серверу на АРМе при помощи команды UPDATE). Реализовать запросы к SQL серверу по каналу Ehternet очень просто.

andrmur
освоился
освоился
Сообщения: 227
Зарегистрирован: 24 июл 2008, 09:22
Имя: Мурашко Андрей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Хранение трендов в контроллере

Сообщение andrmur »

Ziv,

посмотрите на вот этот модуль - http://discover.rockwellautomation.com/ ... rofile.pdf
он специально выпущен под платформу ControlLogix для хранения истории (трендов).
Синхронизируется с "большим" архиватором FT Historian SE на сервере.

alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 626
Зарегистрирован: 29 сен 2008, 17:05
Имя: Алексей Угрюмов
Страна: Россия
город/регион: СПб
Благодарил (а): 8 раз
Поблагодарили: 23 раза

Re: Хранение трендов в контроллере

Сообщение alex_ugrumov »

А какой контроллер-то? Кроме хранения переменной, надо хранить метку времени. Как правильно сказал Дмитрий Милосердов для, экономии места надо сохранять точку при отклонении от предыдущей на некое дельта. Что касается метки времени, то тут встаёт отдельный вопрос о том, как это время синхронизировать со временем на сервере. Дальше вопрос какой транспорт используется для передачи данных от контроллера к серверу (как в плане железа, так в плане протокола и механизма подключения - OPC/драйвер в СКАДА). У некоторых производителей есть поддержка исторических данных. У других ручками - запросили точку, приняли точку, приняли метку времени, сделали INSERT, подтвердили получение точки и т.д. Дальше тренды у InTouch по архивным данным из базы строятся?
Alex.

abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 20:21
Имя: Науменко Александр Сергеевич
Страна: Россия
город/регион: Шатура
Поблагодарили: 1 раз

Re: Хранение трендов в контроллере

Сообщение abbat81 »

Намного проще будет организовать систему автоматического резервирования канала связи. Единственное место, где я встречал хранение данных в контроллерах- это системы коммерческого либо технического учета, да и то данные хранились там в виде массивов значений вида : среднечасовое, среднесуточное и. т.д.
а не с интервалом в виде 0,5 сек. и менее

Автор темы
ZIV
здесь недавно
здесь недавно
Сообщения: 50
Зарегистрирован: 31 мар 2010, 09:01
Имя: Igor V. Zhdanov
Страна: Россия
город/регион: Оренбургская обл, Бузулук

Re: Хранение трендов в контроллере

Сообщение ZIV »

Вопрос был без привязки к конкретному железу. Удалось выяснить, что в Historian существует функция Update, строящая недостающую часть тренда. Спасибо всем высказавшимся по данному вопросу, задача обрела ястность. Теперь дело за экспериментами.

DDmitry
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 31 янв 2011, 11:00
Имя: Двоеглазов Дмитрий Николаевич
Страна: Россия
город/регион: Кирово-Чепецк

Re: Хранение трендов в контроллере

Сообщение DDmitry »

Данную задачу возможно сделать. В простейшем виде она реализована в контроллерах Triconex * SOE.
У Allen-Bradley в 1756, 1769 есть возможность подключить флешку CompactFlash.
Остается сделать
-Систему выбора данных для сохранения данных с привязкой даты и времении (запись одного события менее 14 байт не сделать),
-Сохранение/чтение на флеш,
-Подготовка и передача данных ПЭВМ,
-Приложение, принимающее и сохраняющее данные на SQL-сервер или др.БД.

В итоге может получится следующее (вырезано из документации реальной работающей системы):
Система регистрации событий и значений аналоговых параметров с высокой временной точностью (до 1 мс) реализованная на базе промышленного микропроцессорного комплекса Allen-Bradley.
Функциональность системы:
- сохранение истории технологического процесса в контроллере на энергонезависимой памяти на временном интервале до 10 лет;
- дата и время возникновения события присваивается в контроллере;
- синхронизация времени по GPS (опционально);
- временная точность регистрации параметров практически не зависит от количества параметров;
- определение сложных правил регистрации параметров, например, при появлении определенного события записать значения заданных параметров;
- данные, считанные с микропроцессорного комплекса, сохраняются в базу данных MSSQL,MySQL, пригодную для отображения в RSView с помощью TrendX, пример представлен на рисунке 1.
- передача данных с микропроцессорного комплекса осуществляется по мере их поступления посредством COM-порта и EtherNet (internet) или считывание данных производится пользователем с энергонезависимой памяти посредством считывателя карт памяти (CartReader);
Ответить

Вернуться в «Средний уровень автоматизации (управляющий)»