|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
14.12.2018, 13:04 | #1 |
Senior Member
Регистрация: Jan 2015
Сообщения: 116
Благодарил(а): 2 раз(а)
Поблагодарили:
2 раз(а) в 1 сообщении
|
Снова о циклах
Добрый день.
Дело было вечером, делать было нечего. Сделал тестовую программу для стендового 2Gi, с помощью двух счетчиков и блока PutPixel закрасил экран контроллера слева на право и сверху вниз. Контроллер выполнил программу, но довольно медленно. Изменил время тика вместо 100 мс. до 10 мс., программа заработала намного быстрее. 1-й вопрос Блок Device(kernel) показывает время выполнения цикла ~2 мс. Можно ли для увеличения производительности выставлять время цикла с запасом например 4 мс.? Или лучше все таки этого избегать. В хелпе написано что контроллер если ему не хватит время тика на исполнение программы автоматически увеличит время цикла. 2-й вопрос Есть готовый проект управления вент установкой (не конструкторский) в программе задействовано порядка 1000 FBD блоков и 4 регулятора. Device(kernel) показывает время исполнения цикла ~4-5 мс. Получается что программа для закрашивания экрана состоящая из двух счетчиков и PutPixel выполняется 2 мс., а программа из 1000 FBD 4-5 мс. Вывод на экран забирает столько ресурсов? 3-й вопрос Программа для управления вент установкой из 1000 FBD, так как у нее время цикла 4-5 мс., по умолчанию время цикла 100 мс., можно ли сделать ей цикл 10 мс, для большей отзывчивости или не надо таких экспериментов? |
14.12.2018, 13:09 | #2 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Снова о циклах
1. Выставить можно, но в случае, если, например, откроете системное меню - запаса процессорного времени не будет. Или, например, подключитесь к веб-интерфейсу. Это приведёт к тому, что счётчики, связанные с реальным временем, не досчитают (пропустят) время. То есть, посчитанное значение на счётчика перестанет соответствовать течению реального времени, так как программа де факто выполняется дольше чем должна.
2. Вывод забирает много ресурсов, но не настолько. Куда больше занимает сама система. Даже пустой проект будет иметь не нулевое время цикла. 3. Если все таймеры для исчисления реального времени в проекте имеют преобразования time_to_tick, то так сделать можно, но проблемы всё равно могут возникнуть в неожиданных местах. Например, в пид-регуляторах. __________________ В сегнетиксе не работаю с самого начала 2019 года. |
14.12.2018, 13:21 | #3 |
Senior Member
Регистрация: Jan 2015
Сообщения: 116
Благодарил(а): 2 раз(а)
Поблагодарили:
2 раз(а) в 1 сообщении
|
Ответ: Снова о циклах
Gromov, спасибо.
|
14.12.2018, 14:10 | #4 | |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Снова о циклах
Цитата:
|
|
14.12.2018, 14:17 | #5 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 160
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Снова о циклах
Вы спешите на свидание с любимой, а часы ваши тикают медленнее, чем нужно. В результате вы опаздываете.
Что именно может произойти со свиданием? Вот все ответы на этот вопрос годятся и для регулятора. Полный диапазон от "ничего" до "всё пропало". __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
14.12.2018, 19:06 | #6 |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Снова о циклах
Если речь идёт об известной особенности пид-регуляторов работать неправильно при превышении реальным тиком заданного - то вопрос закрыт, спасибо.
|