Система TwinCAT позволяет создать до четырех подсистем реального времени (Run-Time System). Они будут работать параллельно, если доступно четыре ядра процессора, или как-то делить процессорное время, если ядер меньше.
В каждом рантайме можно организовать параллельную работу четерех задач (Task), т. е. всего получается 16 параллельных задач, которые могут взаимодействовать друг с другом внутри своего рантайма. Фактически задачи работают последовательно, но внутри задачи будет казаться, что все работает параллельно. Как таковые задачи нужны для удобства задания времени цикла программы; это спорно, но похоже на правду.
Визуализация, кстати, автоматически добавляет две задаче: одна - для вывода интерфейса (рисования графики, там время цикла совсем большое), другая - для пользовательского ввода (побыстрее, но медленнее технологического цикла).
- Переменные, имена программ, ФБ и пр. POU "принадлежат" рантайму, а не задачам (см. у них номер порта отличается от номера порта задач и совпадает с номером порта рантайма).
- ADS.API библиотеки подключаются к рантайму (опять-таки, см. номер порта), т. к. именно образ рантайма публикуется ADS-сервером.
- В System Manager'e переменные из разных задач отображаются в первой задаче: просто так сделано.
- Задачи - это по сути список вызова программ или глобальных экземпляров ФБ (Program Call, см. PLC Control → Resources → Task configuration).
- Задачи одного рантайма могут иметь разное время циклов. Это влияет на время цикла программы, назначенной задаче. Например, вызов одной и той же программы из разных задач, заставит работать программу со временем цикла вызывающей задачи.
- При вызове одной и той же программы из разных задач, программа по прежнему существует в единственном экземпляре, с единым набором локальных переменных и состояний.
- Порядок обработки задач в рамках рантайма задается приоритетом задачи: 0 - первая, ..., 3 - последняя.
- В рамках одного рантайма программы могут вызывать друг-друга, передавать данные через IN/OUT и глобальные переменные/константы.
- Если задаче назначено несколько программ, они вызываются в порядке их следования и делят между собой время цикла задачи.
- Точки останова прерывают все задачи рантайма разом, т. е. действуют на весь рантайм сразу.
No comments
Post a Comment
Note: Only a member of this blog may post a comment.