ISaGRAF может работать как одна задача. В таком случае не рекомендуется перегружать коммуникации для того, чтобы гарантировать хорошую производительность. В многозадачной системе VxWorks различные целевые задачи ISaGRAF могут быть запущены на одном и том же процессоре, если они имеют различные номера подчиненных и последовательные порты.
Однозадачная реализация в основном ориентирована на слабую аппаратуру (дешевые платы и ПК, ориентированные на MS-DOS) или на разработку первого прототипа системы при портировании на новую платформу. Многозадачная реализация более предпочтительна.
Задача ISaGRAF не нарушает работу фоновых процессов и программ обработки прерываний.
Целевая задача ISaGRAF характеризуется номером подчиненного. Он может принимать значения от 1 до 255 за исключением 13 ($0D). Этот номер используется в протоколе связи. Он нужен для того, чтобы различать целевые задачи друг от друга, когда запущено несколько задач. Поэтому перед запуском целевых задач следует их регистрировать. Для этого предназначена функция isa_register_slave()
uchar isa_register_slave
(
uchar slave /* /* Номер подчиненного */
)
Описание:
Регистрирует новый подчиненный в системе с несколькими целевыми задачами.
Возвращаемое значение:
0 в случае успеха, BAD_RET - в случае ошибок.
Глобальная переменная TSK_FUNIT(char *) может содержать название каталога, в котором приложение будет хранить файлы резервных копий. Целевая задача ISaGRAF использует стандартные вызовы fopen, fread, fwrite, fclose для работы с файлами.
Значение по умолчанию - пустая строка (“”), указывающая, что каталог не назначен.
Пример:
TSK_FUNIT = "host name:/C:/ISaGRAF/target/apl/"
Назначает каталог ISaGRAF\target\apl в корне C: на хост-ПК с именем host_name для файлов резервных копий. Важно не забыть последний слеш, иначе файлы будут открываться в каталоге ISaGRAF\target и иметь в имени префикс apl.
При необходимости эта переменная может иметь различные значения для различных целевых задач.