Доброго времени суток коллеги ,не моя идея и сам я считаю её бредовой ,но есть задача записи архивных тегов с частотой по времени ниже 500мс ,до 100мс,-кто нибудь сталкивался с этим ?это относится к cpu S7-300 vs wincc 7.5.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Запись архивных тегов с частотой менее 500 мс
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 17 июн 2023, 04:23
- Имя: Роман Борисович
-
- освоился
- Сообщения: 208
- Зарегистрирован: 16 дек 2011, 15:13
- Имя: Алексей
- Страна: Россия
- Благодарил (а): 67 раз
- Поблагодарили: 53 раза
Запись архивных тегов с частотой менее 500 мс
Так как WinCC (не TIA Portal) не позволяет архивировать чаще чем 500 мс, то (вариант использования AR_SEND для S7-400 контроллеров не рассматриваем) мне видится такой механизм:
1. Создаем буфер в ПЛК, например на 100 значений.
2.1. В цикле контроллера заполняем буфер.
2.2. как только буфер заполнился, шлём его по UDP куда нибудь в сеть (главное чтобы посылка влезла полностью в UDP датаграмму).
2.3 goto 2.1
На компе слушатель (listener) UDP принимает пакет, парсит и пишет в базу.
В какую базу писать - варианты разные:
1. какая нибудь timescale база (напр. InfluxDB)
2. писать в базу WinCC (см. ODK функцию TLGInsertArchivData).
И я совсем не знаю, как поведет себя WinCC, если писать много и часто.
А сможет ли WinCC переварить большой объем информации при запросе (например, для отображения тренда)?
Вопросов много...
Можно еще напрямую писать в Influx (POST запросы) прямо с контроллера.
Крч, все описанное требует программирования и опытов.
Может есть еще решения...
1. Создаем буфер в ПЛК, например на 100 значений.
2.1. В цикле контроллера заполняем буфер.
2.2. как только буфер заполнился, шлём его по UDP куда нибудь в сеть (главное чтобы посылка влезла полностью в UDP датаграмму).
2.3 goto 2.1
На компе слушатель (listener) UDP принимает пакет, парсит и пишет в базу.
В какую базу писать - варианты разные:
1. какая нибудь timescale база (напр. InfluxDB)
2. писать в базу WinCC (см. ODK функцию TLGInsertArchivData).
И я совсем не знаю, как поведет себя WinCC, если писать много и часто.
А сможет ли WinCC переварить большой объем информации при запросе (например, для отображения тренда)?
Вопросов много...
Можно еще напрямую писать в Influx (POST запросы) прямо с контроллера.
Крч, все описанное требует программирования и опытов.
Может есть еще решения...
-
- авторитет
- Сообщения: 865
- Зарегистрирован: 16 ноя 2016, 11:33
- Имя: Максим Владимирович
- Страна: Россия
- город/регион: Магнитогорск
- Благодарил (а): 16 раз
- Поблагодарили: 223 раза
Запись архивных тегов с частотой менее 500 мс
IbaPDA со временем главного цикла может архив писать для контроллеров S7.
Есть ещë PLC Analyzer от Autem, он попроще и подешевле, но по его доступности могут быть вопросы, на iba зимой можно было купить дицензию, как сейчас тоже не знаю.
Есть ещë PLC Analyzer от Autem, он попроще и подешевле, но по его доступности могут быть вопросы, на iba зимой можно было купить дицензию, как сейчас тоже не знаю.
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 17 июн 2023, 04:23
- Имя: Роман Борисович
Запись архивных тегов с частотой менее 500 мс
Доброго времени суток коллеги ,а если для 400 го с AR_SEND SFB 37 .как это бы выглядело?
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Запись архивных тегов с частотой менее 500 мс
Если у вас проблема с тем что AlarmLogging не успевает обнаружить и записать кратковременные импульсы и вам именно нужно записать именно приход сообщений, но не особо важно время или факт ухода, то могу я решал так:
Написал FB со входами MinDuration:TIME и Alarm_in:BOOL, выходами Alarm_out:BOOL.
Заводим в него бит сработки и указываем время, например 3 сек.
Внутри блока логика ИЛИ(Alarm; TIMER.Q). Таймер PULSE с длиной MinDuration, запускается от Alarm_in.
Таким образом получаем бит с длиной не менее 3 секунд, который AlarmLogging уж точно поймает.
Написал FB со входами MinDuration:TIME и Alarm_in:BOOL, выходами Alarm_out:BOOL.
Заводим в него бит сработки и указываем время, например 3 сек.
Внутри блока логика ИЛИ(Alarm; TIMER.Q). Таймер PULSE с длиной MinDuration, запускается от Alarm_in.
Таким образом получаем бит с длиной не менее 3 секунд, который AlarmLogging уж точно поймает.
WinCC 7.4 SP1 Upd15, Step5.6