Для того, чтобы уменьшить время реакции целевой задачи ISaGRAF, целевая задача разделена на два процесса: программу связи и прикладную исполнительную задачу.
Такая архитектура более гибкая. Она позволяет запускать несколько коммуникационных задач с одной и той же целевой задачей или до 4 целевых задач с одной и той же коммуникационной задачей. Это позволяет работать через один и тот же порт с 4 целевыми задачами. Это также облегчает интеграцию различных процессов (например, визуализацию и отладку) в рамках одного приложения.
Целевая задача и задача связи не зависят друг от друга. Единственное требование состоит в том, чтобы задача ядра была запущена первой, так чтобы она смогла установить параметры системного окружения и задача связи смогла связаться с ней.
Задача ISaGraf не нарушает работу фоновых процессов и программ обработки прерываний.
Предлагается два модуля в зависимости от аппаратных возможностей:
- Для последовательной связи: isakerse.o
Этот модуль позволяет запустить ядра и последовательную связь.
- Для последовательной связи и/или через Ethernet: isakeret.o
Этот модуль позволяет запустить ядра и задачи для последовательной связи и/или для связи по Ethernet.
Способ запуска ISaGRAF с помощью этих модулей - один и тот же, с той лишь разницей, что в случае isakeret.o можно указать как имя последовательного устройства для последовательной связи, так и номер порта для связи по Ethernet, которые передаются как параметры при запуске ISaGRAF с помощью tst_main_ex (см. далее).
По отношению к ISaGRAF целевая задача VxWorks является сервером, а отладчик является клиентом, который подсоединяется к указываемому номеру порта.
Ядро ISaGRAF характеризуется номером подчиненного. Он может принимать значения от 1 до 255, исключая 13 ($0D). Этот номер используется в протоколе связи. Он нужен для того, чтобы различать целевые задачи друг от друга когда запущено несколько задач. Поэтому, прежде чем запустить ядра ISaGRAF их нужно зарегистрировать с помощью вызова isa_register_slave().