Size: a a a

2020 May 12

АП

Александр Привалов... in ru_ASUTP
Vyatcheslav P
Так в чём проблема-то была?
Мой косяк) Отладчик показывает кучу лишней инфы, не заметил ошибки)
источник

АП

Александр Привалов... in ru_ASUTP
Вот с тасками бы разобраться еще бы)
источник

Z

Z-Vladimir in ru_ASUTP
Александр Привалов
Если поставить одной из нескольких задач приоритет ниже других,она никогда не выполнится.
Если время выполнения задач превышает заданное время цикла плк, то задачи устанавливаются в очередь, на запуск после завершения выполняемой задачи. Если постоянно есть в очереди задачи, то выполняться будет с более высоким приоритетом, а с низким никогда не выполнится. Если приоритет задач одинаковый, то запустится та задача из очереди, которая находится дольше в ожидании.
источник

Z

Z-Vladimir in ru_ASUTP
Для чего вообще возникла необходимость разбивать программу на задачи?
источник

АП

Александр Привалов... in ru_ASUTP
В том то и прикол,что пока приоритет у всех тасков одинаковый(в моем случае = 1),они выполняются все
источник

АП

Александр Привалов... in ru_ASUTP
Время цикла = 20мс
источник

АП

Александр Привалов... in ru_ASUTP
Время выполнения задач - минимальное, простой = 19998 мкс
источник

АП

Александр Привалов... in ru_ASUTP
Z-Vladimir
Для чего вообще возникла необходимость разбивать программу на задачи?
Такова логика программы
источник

А

Алексей in ru_ASUTP
lapshinvr.ru
Менеджер задач Codesys
Данная статья посвящена разъяснению работы циклического вызова программ в средах программирования Codesys 2.3 и Codesys 3.5. Обратим внимание на разницу в реализации управления программами на данных платформах, рассмотрим принцип действия менеджера задач, определим типы задач, реализуемые в указанных программах, остановимся на функции «watchdog».<br />
В любой из версий Codesys могут возникнуть ситуации, когда одна задача по времени выполнения может совпасть с другой. В этом случае необходимо задать приоритет, какая из задач важнее. Можно привести такой пример. Вы запланировали задачи на год вперёд. Одна из таких задач – пойти на день рождения к другу. И еще у вас есть ежедневная задача – каждый день ходить в магазин. Если вы отдадите приоритет магазину, на день рождения можете и не попасть, хотя ждали этого события целый год.
источник

Z

Z-Vladimir in ru_ASUTP
Александр Привалов
В том то и прикол,что пока приоритет у всех тасков одинаковый(в моем случае = 1),они выполняются все
Так это не прикол. Как и написал выше. По завершению цикла, выполненная задача встает в очередь.
источник

А

Алексей in ru_ASUTP
Приоритеты в Codesys 2.3 указываются в размерности от 0 до 15, в Codesys 3.5 они уже в диапазоне от 0 до 31. Все эти приоритеты связаны с распределением процессорного времени. Чем меньше число приоритета, тем приоритет выше и тем больше будет выделено процессорного времени для выполнения связанной программы.
Тип многозадачности в Codesys 2.3 называется «замещающий», когда одна задача замещает другую. Менеджер задач в данной версии реализует заданную логику по приоритетам. Выполняться будет тот приоритет, который выше.
источник

Z

Z-Vladimir in ru_ASUTP
Александр Привалов
Время выполнения задач - минимальное, простой = 19998 мкс
Немного не так написал про время цикла. Имел в виду циклические и периодические задачи. Т.е. если есть N циклических задач, каждая задача после выполнения устанавливается в очередь. Если в очередь попадает задача с высоким приоритетом, то она будет первая на выполнение, даже если там будут задачи, которые никогда не выполнились, но имеют более низкий приоритет
источник

АП

Александр Привалов... in ru_ASUTP
Что то вы ребята намешали
источник

АП

Александр Привалов... in ru_ASUTP
Есть кооперативная и вытесняющая многозадачность.
источник

АП

Александр Привалов... in ru_ASUTP
По умолчанию codesys 2.3 говорит что используется кооперативная многозадачность, но в зависимости от ПЛК может присутствовать и вытесняющая.
источник

АП

Александр Привалов... in ru_ASUTP
У меня ПЛК 160[M2]
источник

АП

Александр Привалов... in ru_ASUTP
Не нашел в документации о типе многозадачности ничего, но и в настройках менеджера ничего такого нет.
источник

АП

Александр Привалов... in ru_ASUTP
Задач несколько, и несколько из них вызываются по интервалу (500мс и 1000 мс)
источник

АП

Александр Привалов... in ru_ASUTP
Основное PLC_PRG вызывается как freewheeling
источник

АП

Александр Привалов... in ru_ASUTP
Пока у всех задач одинаковый приоритет,все работает,не считая того что вывод внутри PLC_PRG через 232 интерфейс не всегда передает строку до конца.
источник