- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Бесконечный цикл с ожиданием.
Модераторы: Глоб.модераторы, специалисты Weintek
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 17 мар 2019, 11:33
- Имя: Владимир Дёмин
- Страна: Россия
- город/регион: Тюмень, Тюменская обл.
Бесконечный цикл с ожиданием.
Чтобы избежать большого количества обращений в LW в периодическом макросе и снизить нагрузку на CPU, стал использовать бесконечный цикл с DELAY.
Корректно ли работает "сборщик мусора", не повиснет ли панель из-за утечек, например через месяц? Т.е. есть ли с этим какие-то очевидные проблемы? Тестировал пару дней без активно изменяющихся значений, жора памяти не наблюдаю.
Переменные в макросе создаю единоразово, в функциях использую глобальные переменные, дабы не множить.
Корректно ли работает "сборщик мусора", не повиснет ли панель из-за утечек, например через месяц? Т.е. есть ли с этим какие-то очевидные проблемы? Тестировал пару дней без активно изменяющихся значений, жора памяти не наблюдаю.
Переменные в макросе создаю единоразово, в функциях использую глобальные переменные, дабы не множить.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Бесконечный цикл с ожиданием.
а почему нельзя было вместо этого отдельный макрос просто сделать периодическим через заданное время?
А при таком решении как у Вас, нужно уже контролировать состояние этого цикла (видимо другим отдельным макросом) и включить сторожевую собаку, и отображать состояние этого цикла, ибо откуда нам знать, что у Вас там в этом цикле.
Вообще, исключительно ИМХО, делать так - дурной тон. Каждая операция должна быть единичной и завершаться без исключений.
В отличие от Вашего цикла, при возникновении исключений циклический макрос прервётся с ошибкой сам и перезапустится на следующем периоде (если задано циклическое исполнение), а что будет с бесконечным циклом - даже опытный программист не всегда может предположить.
По вопросам работы Форума можно обратиться по этим контактам.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 28 авг 2014, 09:30
- Имя: Воднев Александр Васильевич
- Страна: РФ
- город/регион: Томск
- Благодарил (а): 22 раза
- Поблагодарили: 33 раза
Бесконечный цикл с ожиданием.
Без зазрения совести почти всегда использую в своих проектах один макрос с бесконечным циклом. Только необходимо соблюдать одно условие: в этом цикле обязательно должна быть задержка на время >=100 мс, иначе панель сильно увлекается этим макросом и начинает тормозить остальные процессы. Работаю с панелями WEINTEK с 12-го года, еще ни одна не закапризничала.
-
- почётный участник форума
- Сообщения: 1181
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 351 раз
- Поблагодарили: 241 раз
Бесконечный цикл с ожиданием.
Значит везло - работа на грани фола ("задержка на время >=100 мс").vodav писал(а): ↑23 июл 2020, 11:34Без зазрения совести почти всегда использую в своих проектах один макрос с бесконечным циклом. Только необходимо соблюдать одно условие: в этом цикле обязательно должна быть задержка на время >=100 мс, иначе панель сильно увлекается этим макросом и начинает тормозить остальные процессы. Работаю с панелями WEINTEK с 12-го года, еще ни одна не закапризничала.
Я полностью солидарен:
Заменить "тост" на "макрос".
PS. Надо что-то еще написать - мое 666-е сообщение.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Бесконечный цикл с ожиданием.
Имеет право, наверное, но
Это ведь то же самое, только печатать меньше и есть контроль исполнения.
По вопросам работы Форума можно обратиться по этим контактам.
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Бесконечный цикл с ожиданием.
Встречный вопрос знатокам Weintek: есть ли смысл экономить на обращении к LW? Можно ли как-то измерить оверхэд этой операции на CPU?
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 17 мар 2019, 11:33
- Имя: Владимир Дёмин
- Страна: Россия
- город/регион: Тюмень, Тюменская обл.
Бесконечный цикл с ожиданием.
У меня в изначальном варианте было порядка 1000 обращений в LW_bit в периодическом 1с макросе. (Нужно было данные с предыдущего исполнения хранить + красивое функциональное разбиение по функциям) = +15%.
Соответственно, каждый раз обращение и копирование производится.
Отправлено спустя 10 минут 26 секунд:
В итоге про бесконечный цикл: при полной нагрузке память забивается.
В функции одна переменная создаётся, каждый раз, но очень сомневаюсь, что только в ней дело.
Вероятно, внутренние преобразования, промежуточные значения при расчетах и прочее. Но это есть ПРЕДПОЛОЖЕНИЕ.
Соответственно, каждый раз обращение и копирование производится.
Отправлено спустя 10 минут 26 секунд:
В итоге про бесконечный цикл: при полной нагрузке память забивается.
В функции одна переменная создаётся, каждый раз, но очень сомневаюсь, что только в ней дело.
Вероятно, внутренние преобразования, промежуточные значения при расчетах и прочее. Но это есть ПРЕДПОЛОЖЕНИЕ.
Последний раз редактировалось rekkod 24 июл 2020, 10:39, всего редактировалось 2 раза.
-
- специалист по WEINTEK
- Сообщения: 120
- Зарегистрирован: 05 фев 2014, 12:22
- Имя: Иван Николаевич
- Поблагодарили: 21 раз
Бесконечный цикл с ожиданием.
Это абсолютно нормально делать вечный цикл с задержками. Причин такого использования может быть много.
Кроме DELAY, макрос засыпает при считывании данных из внешних устройств. Это можно использовать, например, в Free Protocol для своевременной обработки. Никакой сборки мусора, во всяком случае динамической, по идее, не требуется - все переменные создаются статично и освобождают память при выходе из макроса. Почему возникают проблемы с памятью - нужно смотреть. Существуют, например, проблемные драйверы устройств, которые могут забивать память. К примеру, драйвер Siemens с символьной адресацией.
Кроме DELAY, макрос засыпает при считывании данных из внешних устройств. Это можно использовать, например, в Free Protocol для своевременной обработки. Никакой сборки мусора, во всяком случае динамической, по идее, не требуется - все переменные создаются статично и освобождают память при выходе из макроса. Почему возникают проблемы с памятью - нужно смотреть. Существуют, например, проблемные драйверы устройств, которые могут забивать память. К примеру, драйвер Siemens с символьной адресацией.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 17 мар 2019, 11:33
- Имя: Владимир Дёмин
- Страна: Россия
- город/регион: Тюмень, Тюменская обл.
Бесконечный цикл с ожиданием.
Подскажите, с ModbusTCP подобной проблемы нет? Я опрашиваю по 500 слов с 8 ПЛК, каждые 0,5 секунд. Может, буфер на передачу забивает?VanMo писал(а):Существуют, например, проблемные драйверы устройств, которые могут забивать память. К примеру, драйвер Siemens с символьной адресацией.
При отключённой передаче данных те же скрипты не забивают память.
Панель MT8071iE
П.С. Есть ли какие-то мануалы в открытом доступе о работе панели под капотом, например, организация исполнения макросов, отрисовка графики параллельно или в моменты простоя, о словах состояния макросов? Чтобы не из метода тыка было, а из надежных источников.
Отправлено с моего HD1900 через Tapatalk
-
- специалист по WEINTEK
- Сообщения: 120
- Зарегистрирован: 05 фев 2014, 12:22
- Имя: Иван Николаевич
- Поблагодарили: 21 раз
Бесконечный цикл с ожиданием.
Нет, это стабильный драйвер.
Как Вы определили, что забивается память?
Более-менее принцип работы макросов расписан здесь: http://www.rusavtomatika.com/articles/m ... -pro-1.php
Подробнее только в основном руководстве по EasyBuilder. В панели стоит Линукс, поэтому конечно там многозадачность.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 17 мар 2019, 11:33
- Имя: Владимир Дёмин
- Страна: Россия
- город/регион: Тюмень, Тюменская обл.
Бесконечный цикл с ожиданием.
По процентам загрузки оперативной памяти.VanMo писал(а):Нет, это стабильный драйвер.
Как Вы определили, что забивается память?
Стабильно увеличивается, без взаимодействия с панелью.
LW-11159
При разрыве связи с контроллерами, скрипты исполняются по тем же веткам, но увеличение загрузки памяти прекращается. Так же прекращаются постоянные изменения на экране.
Опрашиваю контроллеры через "время-зависимую передачу данных".
Буду копать макросы и понаблюдаю при более длительной непрерывной эксплуатации, посмотрю, как это в конечном счёте повлияет на производительность.
Спасибо.
Отправлено с моего HD1900 через Tapatalk
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Бесконечный цикл с ожиданием.
Подтверждаю. 20+ устройств с непрерывным циклическим опросом, проблем не заметил.
Может это та же проблема с последней версией EBPro (проект надо пересоздать) ?
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 27
- Зарегистрирован: 10 сен 2015, 23:17
- Имя: Полтораков Михаил Васильевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 4 раза
- Поблагодарили: 6 раз
Бесконечный цикл с ожиданием.
Вроде бы где-то на форуме пробегало, что в панелях Weintek установлен Windows Embedded?
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 17 мар 2019, 11:33
- Имя: Владимир Дёмин
- Страна: Россия
- город/регион: Тюмень, Тюменская обл.
Бесконечный цикл с ожиданием.
Вроде, на сМТ серии win.
Можно попробовать nmapом банер чекнуть. Так иногда про начинку узнаю.
Отправлено с моего HD1900 через Tapatalk
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 17 мар 2019, 11:33
- Имя: Владимир Дёмин
- Страна: Россия
- город/регион: Тюмень, Тюменская обл.
Бесконечный цикл с ожиданием.
ИТОГ. От Выборки данных (в высоком приоритете каждую секунду 40x8 слов) забивалась оператива (если LW11159 ОЗУ).
Они у меня по наличию связи пишутся, потому обрыв связи давал такой эффект.
С бесконечным циклом всё окей.
Они у меня по наличию связи пишутся, потому обрыв связи давал такой эффект.
С бесконечным циклом всё окей.