- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Как оптимизировать запись множества тегов через скрипты VBS
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 27
- Зарегистрирован: 01 июл 2013, 23:17
- Имя: Александр
- Страна: Россия
- город/регион: Санкт - Петербург
- Благодарил (а): 6 раз
Как оптимизировать запись множества тегов через скрипты VBS
Добрый день! Работаю с WinCC 8.0
Cтолкнулся с такой проблемой, выгружаю из пользовательских SQL таблица массивы данных и записываю их в теги с помощью vbs. Использую метод Write для каждого тега, что мне кажется большой ошибкой, скорость выполнения при больших количествах данных печальная. При этом теги устройства Modbus. Есть ли возможность записывать массивами или каким образом это можно оптимизировать? Куда копать? можно ли создать структуру и записать ее разом? В других SCADA системах в подобных задачах использовал также скрипты, но там была возможность записывать массивы данных в массивы тегов. Есть ли в WinCC подобное?
Cтолкнулся с такой проблемой, выгружаю из пользовательских SQL таблица массивы данных и записываю их в теги с помощью vbs. Использую метод Write для каждого тега, что мне кажется большой ошибкой, скорость выполнения при больших количествах данных печальная. При этом теги устройства Modbus. Есть ли возможность записывать массивами или каким образом это можно оптимизировать? Куда копать? можно ли создать структуру и записать ее разом? В других SCADA системах в подобных задачах использовал также скрипты, но там была возможность записывать массивы данных в массивы тегов. Есть ли в WinCC подобное?
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Как оптимизировать запись множества тегов через скрипты VBS
Если у вас теги=модбас-регистры, распологаются друг за другом то можно вместо нескольких маленьких тегов записывать большие. Если это булевые (DI/DO) то складывать их в слова, если аналоговые то складывать в 64bit
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 27
- Зарегистрирован: 01 июл 2013, 23:17
- Имя: Александр
- Страна: Россия
- город/регион: Санкт - Петербург
- Благодарил (а): 6 раз
Как оптимизировать запись множества тегов через скрипты VBS
Дело в том, что у меня много параметров real 32-х битных, фактически можно конечно хотя бы в два раза сократить количество тегов используя 64 битные, но как-будто тоже не самый оптимальный вариант.
А нет такого, чтобы разом например, указывая стартовый адрес, как в структуре, можно было бы массив из скрипта туда отправить?
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Как оптимизировать запись множества тегов через скрипты VBS
Насколько мне известно - нет.
Вам не нравится время выполнения или количество строк в скрипте?
Вам не нравится время выполнения или количество строк в скрипте?
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 27
- Зарегистрирован: 01 июл 2013, 23:17
- Имя: Александр
- Страна: Россия
- город/регион: Санкт - Петербург
- Благодарил (а): 6 раз
Как оптимизировать запись множества тегов через скрипты VBS
Именно время выполнения, сами строки кода зациклены и имена тегов собираются автоматически, и условно, сам код выполняется довольно быстро, а вот значения в точки прилетают значительно позже...
Думал возможно на C script переехать, но как-будто в сети инфа, что он еще дольше работает.
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Как оптимизировать запись множества тегов через скрипты VBS
От того что код будет короче, модбас (дьявольская шина!!!) работать быстрее не будет. Оно того не стоит. Попробуйте увеличить скорость шины, если длина позволяет. Не в том направлении думаете.
Си работает быстрее, но тут опять же, скорость выполнения ограничивается не vbs и sql .
Си работает быстрее, но тут опять же, скорость выполнения ограничивается не vbs и sql .
WinCC 7.4 SP1 Upd15, Step5.6
-
- не первый раз у нас
- Сообщения: 305
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз
Как оптимизировать запись множества тегов через скрипты VBS
А что в WinCC V8 появился драйвер для ModbusRTU?
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Как оптимизировать запись множества тегов через скрипты VBS
Не знаю, я на 7.4 сижу, но там RTU тоже нет. Но вот в kepserver есть, а к нему можно по OPC подцепиться.
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 27
- Зарегистрирован: 01 июл 2013, 23:17
- Имя: Александр
- Страна: Россия
- город/регион: Санкт - Петербург
- Благодарил (а): 6 раз
Как оптимизировать запись множества тегов через скрипты VBS
Ну неужели его так накрывает, что он данные спустя 20 секунд мне прокидывает, не указал ранее, использую Modbus Tcp, передаю в сумме в районе 43600 байт.
Отправлено спустя 1 минуту 27 секунд:
Modbus Tcp
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Как оптимизировать запись множества тегов через скрипты VBS
Ну смотрите, здесь несколько моментов
По крайней мере в wincc 7.4 Tag management примерно читает пишет раз в секунду. И даже если вы выставите высокую скорость шины, на скорость опроса и чтения Wincc это никак не повлияет.
Во вторых в Wincc не особо видно как часто вы посылаете запросы, какой длины итд, сколько успешных ответов и сколько осталось без ответа. Рекомендую пользоваться Modbus Poll.
И опять же если вы проведёте тщательные исследования и выясните что и как, с этой информацией вы скорее всего ничего не сможете сделать, т.к. в WinCC 7.4 Modbus TCP настраивается чуть более чем никак. ИП адрес и свап битов, на этом все.
По крайней мере в wincc 7.4 Tag management примерно читает пишет раз в секунду. И даже если вы выставите высокую скорость шины, на скорость опроса и чтения Wincc это никак не повлияет.
Во вторых в Wincc не особо видно как часто вы посылаете запросы, какой длины итд, сколько успешных ответов и сколько осталось без ответа. Рекомендую пользоваться Modbus Poll.
И опять же если вы проведёте тщательные исследования и выясните что и как, с этой информацией вы скорее всего ничего не сможете сделать, т.к. в WinCC 7.4 Modbus TCP настраивается чуть более чем никак. ИП адрес и свап битов, на этом все.
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 27
- Зарегистрирован: 01 июл 2013, 23:17
- Имя: Александр
- Страна: Россия
- город/регион: Санкт - Петербург
- Благодарил (а): 6 раз
Как оптимизировать запись множества тегов через скрипты VBS
Спасибо за информацию, буду тестировать. Есть еще вариант попробовать OPC UA...
-
- не первый раз у нас
- Сообщения: 305
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз
-
- здесь недавно
- Сообщения: 27
- Зарегистрирован: 01 июл 2013, 23:17
- Имя: Александр
- Страна: Россия
- город/регион: Санкт - Петербург
- Благодарил (а): 6 раз
Как оптимизировать запись множества тегов через скрипты VBS
С ходу не нашел "из коробки" драйвера для Emerson (GE) ПЛК и был выбран Modbus TCP
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 20 ноя 2023, 23:33
- Имя: Владимир
- Поблагодарили: 1 раз
Как оптимизировать запись множества тегов через скрипты VBS
Здравствуйте.
Через vbs можно за один раз несколько тэгов отправить группой.
Dim group
Set group = HMIRuntime.Tags.CreateTagSet
group.Add "mytag1"
group.Add "mytag2"
group("mytag1").value = 1
group("mytag2").value = 4
group.write
Всех благ,
Фесс
Через vbs можно за один раз несколько тэгов отправить группой.
Dim group
Set group = HMIRuntime.Tags.CreateTagSet
group.Add "mytag1"
group.Add "mytag2"
group("mytag1").value = 1
group("mytag2").value = 4
group.write
Всех благ,
Фесс