PDA

Просмотр полной версии : Как уменьшить время цикла проекта.



Vos-svar
23.03.2022, 11:05
Добрый день.
Возникла проблема, подскажите пожалуйста пути решения.
В проекте визуализации на действие нажатие кнопки заведено смена экрана и присвоение значения переменной. Так вот при касании пальцем кнопки или клик мышки, смена экрана происходит, а переменная не меняется. Только при удержании пальца на кнопке или удержание кнопки мыши происходит изменение переменной, а при убирании пальца или отпускания кнопки мыши происходит смена экрана. Со всеми кнопками в проекте такая же проблема, действие происходит только после удержания пальца на кнопке или удержание кнопки мыши, хотя визуально форма кнопки меняется. Весь проект создан в мастерскада4д и выполняется на ПЛК110-MS4, отображение HMI на ВП110 и мониторе офисного ПК. Я думаю что это из-за большого времени цикла выполнения проекта, около 0,5-1 секунды, так как если запустить симуляцию то время цикла уменьшается до 0,1 секунды и проблема пропадает, есть ожидаемая реакция на нажатия кнопок в проекте.

Вольд
23.03.2022, 11:19
Проект большой ? Связь между ПЛК и панелью по какому интерфейсу осуществляется и кто Master ?

Vos-svar
23.03.2022, 11:39
По моему мнению проект еще пустой, только 10 экранов с визуализацией и программки для кнопок. Размер файла проекта 168 Мб. Связь по ethernet.

Вольд
23.03.2022, 11:57
Связь по ethernet.

Кто в сети Ethernet сервер и кто клиент ?

Vos-svar
23.03.2022, 12:03
если я правильно понимаю как это работает, то ПЛК является сервером, так как весь проект включая визуализацию загружен в ПЛК. Панель и ПК подключаются к визуализации по web адресу.

Вольд
23.03.2022, 12:18
если я правильно понимаю как это работает, то ПЛК является сервером, так как весь проект включая визуализацию загружен в ПЛК. Панель и ПК подключаются к визуализации по web адресу.

А я полагаю, что ПЛК у вас не сервер, а клиент. Соответственно панель - сервер. Дерево своего проекта покажите.

Vos-svar
23.03.2022, 12:30
Там кроме настроенной связи с модулем тензодатчиков все без изменений

Вольд
23.03.2022, 12:39
А где в протоколах связь с панелью ?

Vos-svar
23.03.2022, 12:47
ОВЕН ВП110 – сенсорная панель оператора со встроенным веб-браузером. Предназначена для наглядного отображения веб-визуализации контроллера. ВП110 оснащена встроенным браузером c поддержкой технологии HTML5, который позволяет отображать веб-страницы. Рекомендуется для совместного применения с ОВЕН ПЛК210, СПК1xx, OwenCloud и другими устройствами, имеющими веб-сервер. Подключение web-панели ОВЕН ВП110 осуществляется по одному из трех интерфейсов связи – Ethernet, Wi-Fi или 3G.

Вольд
23.03.2022, 12:57
Дались вам эти ПЛК110-MS4 и ВП110. Поставили бы обычные ПЛК и сенсорную панель и не было бы никаких проблем. Возни при разработке проекта было бы больше, но не было бы тормозов при обмене.

Vos-svar
23.03.2022, 13:32
Отключение панели не дает ощутимого результата. При одновременном отображении визуализации на панели и экране монитора ПК, время цикла ориентировочно 0,6-0,75 сек. Отключаю панель, оставляю только ПК, время цикла 0,45-0,55 сек. Если отключить ПК оставить только панель, время цикла тоже где то 0,45-0,55.

Вольд
23.03.2022, 13:52
Отключение панели не дает ощутимого результата. При одновременном отображении визуализации на панели и экране монитора ПК, время цикла ориентировочно 0,6-0,75 сек. Отключаю панель, оставляю только ПК, время цикла 0,45-0,55 сек. Если отключить ПК оставить только панель, время цикла тоже где то 0,45-0,55.

Лучше не будет. Если размер проекта увеличится, то будет еще хуже.

9066411154
24.03.2022, 15:52
Не слушайте Вольда. Судя по коментам он не компетентен в MS4D.
Как вы измеряете время цикла?
Да, ПЛК 110MS4 явно не хватает производительности.
Дабы ее повысить можно увеличить период обновления в шаблонах экрана, увеличить интервалы опроса по протоколам.
Как вариант - использовать по свойству клик мыши не присвоение переменных, а выдать импульс, и уже по этому импульсу в программе выполнить действие.

keysansa
24.03.2022, 19:06
Поменяйте местами присвоение переменной и переключение экрана.

Vos-svar
24.03.2022, 22:55
Не слушайте Вольда. Судя по коментам он не компетентен в MS4D.
Как вы измеряете время цикла?
Да, ПЛК 110MS4 явно не хватает производительности.
Дабы ее повысить можно увеличить период обновления в шаблонах экрана, увеличить интервалы опроса по протоколам.
Как вариант - использовать по свойству клик мыши не присвоение переменных, а выдать импульс, и уже по этому импульсу в программе выполнить действие.

Для измерения времени цикла использую компонент палитра-oscat-модули измерения-TC_S
Изменил период обновления со 100 на 1000 и это помогло! Время цикла с 0,6 уменьшилось до 0,4.
Увеличил интервал опроса по протоколам со 100 до 200, время цикла уменьшилось до 0,3!

Интересный момент, после записи конфигурации отключение от ПЛК видимого результата не давало, только после перезагрузки ПЛК время цикла менялось.

С импульсом вариант еще не попробовал, обязательно проверю, расскажу.

Vos-svar
24.03.2022, 23:08
Поменяйте местами присвоение переменной и переключение экрана.
В проекте есть вот такой экран, где по нажатию кнопки "готово" должно происходить присвоение переменной и переход на другой экран. Я в окне "значения" свойств кнопки "готово", для параметра "нажата" указываю связанную переменную. Во вкладке события кнопки "готово" для "клик мыши" настраиваю переход на нужный экран. Это работает в симуляции, но не работает стабильно на железе.
Я не знаю как сделать то что вы предлагаете.

keysansa
26.03.2022, 10:10
Я не знаю как сделать то что вы предлагаете.

Сделать отдельную кнопку.

Скороспелов Андрей
28.03.2022, 14:38
Добрый день.
Возникла проблема, подскажите пожалуйста пути решения.
В проекте визуализации на действие нажатие кнопки заведено смена экрана и присвоение значения переменной. Так вот при касании пальцем кнопки или клик мышки, смена экрана происходит, а переменная не меняется. Только при удержании пальца на кнопке или удержание кнопки мыши происходит изменение переменной, а при убирании пальца или отпускания кнопки мыши происходит смена экрана. Со всеми кнопками в проекте такая же проблема, действие происходит только после удержания пальца на кнопке или удержание кнопки мыши, хотя визуально форма кнопки меняется. Весь проект создан в мастерскада4д и выполняется на ПЛК110-MS4, отображение HMI на ВП110 и мониторе офисного ПК. Я думаю что это из-за большого времени цикла выполнения проекта, около 0,5-1 секунды, так как если запустить симуляцию то время цикла уменьшается до 0,1 секунды и проблема пропадает, есть ожидаемая реакция на нажатия кнопок в проекте.

Приложите скриншот, как заданы действия на кнопке

Vos-svar
28.03.2022, 19:04
Приложите скриншот, как заданы действия на кнопке
На данный момент сделано так как на скринах.
Хочу попробовать переделать изменить на "присвоение параметра"

Филоненко Владислав
29.03.2022, 13:11
Добрый день.
Возникла проблема, подскажите пожалуйста пути решения.
В проекте визуализации на действие нажатие кнопки заведено смена экрана и присвоение значения переменной. Так вот при касании пальцем кнопки или клик мышки, смена экрана происходит, а переменная не меняется. Только при удержании пальца на кнопке или удержание кнопки мыши происходит изменение переменной, а при убирании пальца или отпускания кнопки мыши происходит смена экрана. Со всеми кнопками в проекте такая же проблема, действие происходит только после удержания пальца на кнопке или удержание кнопки мыши, хотя визуально форма кнопки меняется. Весь проект создан в мастерскада4д и выполняется на ПЛК110-MS4, отображение HMI на ВП110 и мониторе офисного ПК. Я думаю что это из-за большого времени цикла выполнения проекта, около 0,5-1 секунды, так как если запустить симуляцию то время цикла уменьшается до 0,1 секунды и проблема пропадает, есть ожидаемая реакция на нажатия кнопок в проекте.

перейдите на среду CoDeSys. По опыту ускорение цикла до 100 раз.

Vos-svar
31.03.2022, 20:45
перейдите на среду CoDeSys.

Куда деть купленное оборудование?

Vos-svar
31.03.2022, 20:59
В общем на данный момент удалось добиться приемлемых результатов. Касания кнопок воспринимаются панелью и алгоритмом как задумывалось. Для этого было сделано:
1. Все взаимодействия с панелью были переписаны на события "клик мыши".
Панель подтармаживает немного с реакцией, но главное что действие с кнопкой обработается.
2. Все алгоритмы переписаны с языка FBD на ST.
Этим удалось существенно ускорить работу ПЛК. Это оказалось неожиданной новостью, не думал что использование функциональных блоков так скажется на быстродействии.

Спорягин Кирилл
01.04.2022, 08:37
В общем на данный момент удалось добиться приемлемых результатов. Касания кнопок воспринимаются панелью и алгоритмом как задумывалось. Для этого было сделано:
1. Все взаимодействия с панелью были переписаны на события "клик мыши".
Панель подтармаживает немного с реакцией, но главное что действие с кнопкой обработается.
2. Все алгоритмы переписаны с языка FBD на ST.
Этим удалось существенно ускорить работу ПЛК. Это оказалось неожиданной новостью, не думал что использование функциональных блоков так скажется на быстродействии.

Ну, я еще использую другой простой метод. При событии клик мыши, я только устанавливаю, какую-либо переменную в True, а в коде программы, когда вижу, что переменная true, то выполняю необходимое действие и сбрасываю переменную в false.

Юрий Горелый2
01.04.2022, 14:40
ну и можно отдельно строить график времени цикла актуального. ну или через отладочную информацию посмотреть данные по работающей задаче)

Vos-svar
01.04.2022, 17:58
Ну, я еще использую другой простой метод. При событии клик мыши, я только устанавливаю, какую-либо переменную в True, а в коде программы, когда вижу, что переменная true, то выполняю необходимое действие и сбрасываю переменную в false.

Именно так я и сделал, в техподдержке мастерскада подсказали.

Vos-svar
01.04.2022, 18:04
ну и можно отдельно строить график времени цикла актуального. ну или через отладочную информацию посмотреть данные по работающей задаче)

Эх... Это я только, как говорится в "домашних условиях", боролся за возможность нормально пользоваться оборудованием. Думаю еще хлебну когда буду это всё запускать на производстве ((