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

Как оптимизировать запись множества тегов через скрипты VBS

Модератор: Глоб.модераторы

Ответить

Автор темы
santi90
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 01 июл 2013, 23:17
Имя: Александр
Страна: Россия
город/регион: Санкт - Петербург
Благодарил (а): 6 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение santi90 »

Добрый день! Работаю с WinCC 8.0
Cтолкнулся с такой проблемой, выгружаю из пользовательских SQL таблица массивы данных и записываю их в теги с помощью vbs. Использую метод Write для каждого тега, что мне кажется большой ошибкой, скорость выполнения при больших количествах данных печальная. При этом теги устройства Modbus. Есть ли возможность записывать массивами или каким образом это можно оптимизировать? Куда копать? можно ли создать структуру и записать ее разом? В других SCADA системах в подобных задачах использовал также скрипты, но там была возможность записывать массивы данных в массивы тегов. Есть ли в WinCC подобное?

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение makesstr »

Если у вас теги=модбас-регистры, распологаются друг за другом то можно вместо нескольких маленьких тегов записывать большие. Если это булевые (DI/DO) то складывать их в слова, если аналоговые -> то складывать в 64bit
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
santi90
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 01 июл 2013, 23:17
Имя: Александр
Страна: Россия
город/регион: Санкт - Петербург
Благодарил (а): 6 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение santi90 »

makesstr писал(а): 28 мар 2024, 16:05 если аналоговые -> то складывать в 64bit
Дело в том, что у меня много параметров real 32-х битных, фактически можно конечно хотя бы в два раза сократить количество тегов используя 64 битные, но как-будто тоже не самый оптимальный вариант.
А нет такого, чтобы разом например, указывая стартовый адрес, как в структуре, можно было бы массив из скрипта туда отправить?

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение makesstr »

Насколько мне известно - нет.
Вам не нравится время выполнения или количество строк в скрипте?
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
santi90
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 01 июл 2013, 23:17
Имя: Александр
Страна: Россия
город/регион: Санкт - Петербург
Благодарил (а): 6 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение santi90 »

makesstr писал(а): 28 мар 2024, 16:24 Вам не нравится время выполнения или количество строк в скрипте?
Именно время выполнения, сами строки кода зациклены и имена тегов собираются автоматически, и условно, сам код выполняется довольно быстро, а вот значения в точки прилетают значительно позже...
Думал возможно на C script переехать, но как-будто в сети инфа, что он еще дольше работает.

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение makesstr »

От того что код будет короче, модбас (дьявольская шина!!!) работать быстрее не будет. Оно того не стоит. Попробуйте увеличить скорость шины, если длина позволяет. Не в том направлении думаете.
Си работает быстрее, но тут опять же, скорость выполнения ограничивается не vbs и sql .
WinCC 7.4 SP1 Upd15, Step5.6

AlexandrGr
не первый раз у нас
не первый раз у нас
Сообщения: 305
Зарегистрирован: 26 май 2022, 12:10
Имя: Александр
Страна: Россия
город/регион: lipetsk
Благодарил (а): 5 раз
Поблагодарили: 28 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение AlexandrGr »

makesstr писал(а): 28 мар 2024, 16:50 Попробуйте увеличить скорость шины, если длина позволяет.
А что в WinCC V8 появился драйвер для ModbusRTU?

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение makesstr »

AlexandrGr писал(а): 28 мар 2024, 16:54
makesstr писал(а): 28 мар 2024, 16:50 Попробуйте увеличить скорость шины, если длина позволяет.
А что в WinCC V8 появился драйвер для ModbusRTU?
Не знаю, я на 7.4 сижу, но там RTU тоже нет. Но вот в kepserver есть, а к нему можно по OPC подцепиться.
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
santi90
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 01 июл 2013, 23:17
Имя: Александр
Страна: Россия
город/регион: Санкт - Петербург
Благодарил (а): 6 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение santi90 »

makesstr писал(а): 28 мар 2024, 16:50 От того что код будет короче, модбас (дьявольская шина!!!) работать быстрее не будет.
Ну неужели его так накрывает, что он данные спустя 20 секунд мне прокидывает, не указал ранее, использую Modbus Tcp, передаю в сумме в районе 43600 байт.

Отправлено спустя 1 минуту 27 секунд:
AlexandrGr писал(а): 28 мар 2024, 16:54 А что в WinCC V8 появился драйвер для ModbusRTU?
Modbus Tcp

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение makesstr »

Ну смотрите, здесь несколько моментов
По крайней мере в wincc 7.4 Tag management примерно читает пишет раз в секунду. И даже если вы выставите высокую скорость шины, на скорость опроса и чтения Wincc это никак не повлияет.
Во вторых в Wincc не особо видно как часто вы посылаете запросы, какой длины итд, сколько успешных ответов и сколько осталось без ответа. Рекомендую пользоваться Modbus Poll.
И опять же если вы проведёте тщательные исследования и выясните что и как, с этой информацией вы скорее всего ничего не сможете сделать, т.к. в WinCC 7.4 Modbus TCP настраивается чуть более чем никак. ИП адрес и свап битов, на этом все.
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
santi90
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 01 июл 2013, 23:17
Имя: Александр
Страна: Россия
город/регион: Санкт - Петербург
Благодарил (а): 6 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение santi90 »

Спасибо за информацию, буду тестировать. Есть еще вариант попробовать OPC UA...

AlexandrGr
не первый раз у нас
не первый раз у нас
Сообщения: 305
Зарегистрирован: 26 май 2022, 12:10
Имя: Александр
Страна: Россия
город/регион: lipetsk
Благодарил (а): 5 раз
Поблагодарили: 28 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение AlexandrGr »

А куда пишете? Почему Modbus?

Автор темы
santi90
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 01 июл 2013, 23:17
Имя: Александр
Страна: Россия
город/регион: Санкт - Петербург
Благодарил (а): 6 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение santi90 »

AlexandrGr писал(а): 28 мар 2024, 18:48 А куда пишете? Почему Modbus?
С ходу не нашел "из коробки" драйвера для Emerson (GE) ПЛК и был выбран Modbus TCP

Fess
здесь недавно
здесь недавно
Сообщения: 11
Зарегистрирован: 20 ноя 2023, 23:33
Имя: Владимир
Поблагодарили: 1 раз

Как оптимизировать запись множества тегов через скрипты VBS

Сообщение Fess »

Здравствуйте.

Через vbs можно за один раз несколько тэгов отправить группой.
Dim group
Set group = HMIRuntime.Tags.CreateTagSet
group.Add "mytag1"
group.Add "mytag2"

group("mytag1").value = 1
group("mytag2").value = 4

group.write

Всех благ,
Фесс
Ответить

Вернуться в «WinCC»