Аргументы:
ID INT номер файла: возвращенный функциями F_ROPEN или F_WOPEN
ok BOO статус
TRUE если файл закрыт успешно
FALSE если была ошибка
Описание:
Закрывает двоичный файл, открытый функциями F_ROPEN или F_WOPEN. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа, использующая блоки управления файлом*)
(* ST Эквивалент: *)
file_id := F_ROPEN('data.bin');
ok := F_CLOSE(file_id);
(* IL Эквивалент: *)
LD 'data.bin'
F_ROPEN
ST file_id
F_CLOSE (* идентификатор файла уже в текущем результате *)
ST ok
Аргументы:
ID INT номер файла: возвращенный функциями F_ROPEN или F_WOPEN
ok BOO индикатор конца файла
TRUE если конец файл был достигнут при последнем чтении или записи
FM_READ последнее сообщение прочитанное из файла может быть неверным, если последний символ -
не символ окончания строки
Описание:
Проверяет достигнут ли конец файла. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа, использующая блоки управления файлом*)
(* ST Эквивалент: *)
file_id := F_ROPEN('data.bin');
WHILE not(F_EOF(file_id))
VAL := FA_READ(file_id);
END_WHILE;
MESSAGE := 'last val = ' + msg(VAL);
ok := F_CLOSE(file_id);
(* IL Эквивалент: *)
LD 'data.bin'
F_ROPEN
ST file_id
LD file_id
F_EOF
JMPC END_OF_FILE
NOT_EOF: LD file_id
FA_READ
ST VAL
LD file_id
F_EOF
JMPNC NOT_EOF (* если не eof, то читать*)
END_OF_FILE: LD VAL
MSG
ST val_msg (* превращение VAL в строку *)
LD 'last val = '
ADD val_msg
ST MESSAGE
LD file_id
F_CLOSE
ST ok
Аргументы:
Path MSG имя файла может определять путь доступа к файлу с использованием символов / или \ для определения директории. Для переносимости приложений / или \ эквивалентны
ID INT номер файла
0 если была ошибка: файл не существует
Описание:
Открывает двоичный файл для чтения. Должен использоваться с FX_READ и FX_CLOSE. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа, использующая блок управления файлом*)
(* ST Эквивалент: *)
file_id := F_ROPEN('c:\data \data.bin');
error := (file_id=0);
(* IL Эквивалент: *)
LD 'c:\data\data.bin'
F_ROPEN
ST file_id
EQ 0
ST error
Аргументы:
CLK BOO любая булевская переменная
Q BOO TRUE, когда CLK меняется с TRUE на FALSE
FALSE во всех остальных случаях
Описание:
Определяет задний фронт булевской переменной.
(*FBD пример блоков F_TRIG*)
(* ST эквивалент: Мы предполагаем, что F_TRIG1 – экземпляр блока F_TRIG *)
F_TRIG1(cmd);
nb_edge := ANA(F_TRIG1.Q) + nb_edge;
(* IL Эквивалент: *)
LD cmd
ST F_TRIG1.clk
CAL F_TRIG1
LD F_TRIG1.Q
ANA
ADD nb_edge
ST nb_edge
Аргументы:
Path MSG имя файла может определять путь доступа к файлу с использованием символов / или \ для определения директории. Для переносимости приложений / или \ эквивалентны.
ID INT номер файла
0 если была ошибка: файл не существует
Описание:
Открывает двоичный файл для чтения. Должен использоваться с FX_READ и FX_CLOSE. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа, использующая блок управления файлом*)
(* ST Эквивалент: *)
file_id := F_WOPEN('c:\data \data.bin');
error := (file_id=0);
(* IL Эквивалент: *)
LD 'c:\data\data.bin'
F_WOPEN
ST file_id
EQ 0
ST error
Аргументы:
ID INT номер файла: возвращенный функцией F_ROPEN
Q INT целая аналоговая величина считанная из файла
Описание:
Читает аналоговые переменные из двоичного файла. Должна использоваться с F_ROPEN и F_CLOSE. Эта функция осуществляет последовательный доступ к файлу, начиная с предыдущей позиции. Первый вызов после F_ROPEN читает первые 4 байта файла, каждый вызов сдвигает указатель чтения. Для проверки достигнут ли конец файла используйте F_EOF. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа, использующая блоки управления файлом*)
(* ST Эквивалент: *)
file_id := F_ROPEN('voltramp.bin');
vstart := FA_READ(file_id);
vend := FA_READ(file_id);
vinc := FA_READ(file_id);
delta_tim := tmr(FA_READ(file_id));
ok := F_CLOSE(file_id);
(* IL Эквивалент: *)
LD 'voltramp.bin'
F_ROPEN
ST file_id
FA_READ (* читать vstart *)
ST vstart
LD file_id
FA_READ (* читать vend *)
ST vend
LD file_id
FA_READ (* читать vinc *)
ST vinc
LD file_id
FA_READ (* читать delta_tim *)
TMR (* превращение в timer *)
ST delta_tim
LD file_id
F_CLOSE
ST ok
Аргументы:
ID INT номер файла: возвращенный функцией F_WOPEN
IN INT целая аналоговая величина, которую нужно записать в файла.
Q BOO статус выполнения: TRUE если ok
Описание:
Записывает аналоговые переменные в двоичный файл. Эта функция осуществляет последовательный доступ к файлу, начиная с предыдущей позиции. Первый вызов после F_WOPEN записывает первые 4 байта файла, каждый вызов сдвигает указатель чтения. Для проверки достигнут ли конец файла используйте F_EOF. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа*)
(* ST Эквивалент: *)
file_id := F_WOPEN('voltramp.bin');
nb_written := 0;
nb_written := nb_written + ana(FA_WRITE(file_id,vstart));
nb_written := nb_written + ana(FA_WRITE(file_id,vend));
nb_written := nb_written + ana(FA_WRITE(file_id,vinc));
nb_written := nb_written + ana(FA_WRITE(file_id,ana(delta_tim)));
ok := F_CLOSE(file_id);
IF ( nb_written <> 4) THEN
ERROR := ERR_FILE;
END_IF;
(* IL Эквивалент: *)
LD 'voltramp.bin'
F_ROPEN
ST file_id
LD 0
ST nb_written
LD file_id (* писать vstart *)
FA_WRITE vstart
ANA
ADD nb_written
ST nb_written
LD file_id (* писать vend *)
FA_WRITE vend
ANA
ADD nb_written
ST nb_written
LD file_id (*писать vinc *)
FA_WRITE vinc
Менеджер архивов ISaGRAF создает уникальный архивный файл для каждого из сохраненных объектов. Архивный файл имеет то же имя, что и объект. Его расширение определяет тип. Ниже даны используемые расширения:
.pia..................... проект
.bia..................... плата В/В
.iia...................... функция на языке IEC
.aia..................... функциональный блок на языке IEC
.uia..................... C функция
.fia...................... C функциональный блок
.cia..................... C функция преобразования
.ria...................... конфигурация В/В
.xia..................... оборудование В/В
Аргументы:
IN MSG любая строка
Pat MSG любая непустая строка
Pos INT =0 если подстрока Pos не найдена
=позиция первого символа первого вхождения подстроки Pat (первая позиция - 1) эта функция отличает заглавные буквы от прописных
Описание:
Находит подстроку в строке. Возвращает положение подстроки в строке.
(*FBD пример блока “FIND”*)
(* ST Эквивалент: *)
complete_string := 'ABCD' + 'EFGH'; (* полная строк - это 'ABCDEFGH' *)
found := FIND (complete_string, 'CDEF'); (* найдено 3 *)
(* IL Эквивалент: *)
LD 'ABCD'
ADD 'EFGH'
ST complete_string
FIND 'CDEF'
ST found
Аргументы:
ID INT номер файла: возвращенный функцией F_ROPEN
Q MSG сообщение считанное из файла
Описание:
Читает строковые переменные из двоичного файла. Должна использоваться с F_ROPEN и F_CLOSE. Эта функция осуществляет последовательный доступ к файлу, начиная с предыдущей позиции. Первый вызов после F_ROPEN читает первую строку файла, каждый вызов сдвигает указатель чтения. Строка заканчивается нулем (0), символом конца строки (‘\n’) или возвратом (‘\r’);
Для проверки достигнут ли конец файла используйте F_EOF. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа, использующая блоки управления файлом*)
(* ST Эквивалент: *)
file_id := F_ROPEN('voltramp.bin');
status1 := FM_READ(file_id);
status2 := FM_READ(file_id);
IF (F_EOF(file_id)) THEN
ERROR := ERR_FILE;
unused_eof_mes := FM_READ(file_id);
END_IF;
ok := F_CLOSE(file_id);
(* IL Эквивалент: *)
LD 'voltramp.bin'
F_ROPEN
ST file_id
FM_READ (* читать status1 *)
ST status1
LD file_id
FM_READ (* читать status2 *)
ST status2
LD file_id
F_EOF
JMPNC CLOSE_FILE (* если конец файла, то не делать прыжок *)
LD ERR_FILE
ST ERROR
LD file_id
FM_READ (* читать unused_eof_mes *)
ST unused_eof_mes
CLOSE_FILE LD file_id
F_CLOSE
ST ok
Аргументы:
ID INT номер файла: возвращенный функцией F_ROPEN
IN MSG сообщение, которое надо записать в файл
ok BOO статус выполнения
TRUE если успешно
Описание:
Записывает строковые переменные в двоичный файл. Должна использоваться с F_WOPEN и F_CLOSE. Эта функция осуществляет последовательный доступ к файлу, начиная с предыдущей позиции. Первый вызов после F_WOPEN записывает первую строку файла, каждый вызов сдвигает указатель записи. Эта функция не включена в симулятор ISaGRAF.
(*FBD программа, использующая блоки управления файлом*)
(* ST Эквивалент: *)
file_id := F_WOPEN('trace.txt');
ok := FM_WRITE(file_id,'First message');
ok := FM_WRITE(file_id,'Last message');
ok := F_CLOSE(file_id);
(* IL Эквивалент: *)
LD 'trace.txt'
F_WOPEN
ST file_id
FM_WRITE 'First message' (*писать первое сообщение *)
ST ok
LD file_id
FM_WRITE 'Last message' (* писать второе сообщение *)
ST ok
LD file_id
F_CLOSE
ST ok
ISaGRAF управляет библиотекой функций и функциональных блоков, написанных на языке IEC. Доступные языки для описания таких функций или блоков - это FBD
(Function Block Diagram), LD
(Ladder Diagram), ST (Structured Text), IL (Instruction List). Заметьте, что языки LD и FBD могут быть смешаны в одной и той же диаграмме. Язык SFC (Sequential Function Chart) не может быть использован для описания функции или блока в библиотеке. Язык, прикрепленный к элементу библиотеки, выбирается когда создается функция, и не может быть изменен позже.
КомпиляцияФункции и блоки, определенные в библиотеке, должны быть скомпилированы (проверены) перед тем, как они могут быть использованы в проекте ISaGRAF. Более ничего не должно быть изменено со стороны Библиотеки, касающееся функций и блоков. Элементы библиотеки автоматически появляются в окне меню выбора, когда используется графический редактор LD/FBD внутри проекта.
Функция, определенная в библиотеке, может вызывать другую библиотечную функцию. Однако система ISaGRAF не поддерживает рекурсивность в вызове функций. Функциональный блок, написанный на языке IEC, не может вызывать другие функциональные блоки (ни на IEC, ни на языке “С”). Ввод исходных кодовИсходный код библиотечной функции или функционального блока вводится, используя стандартные средства ISaGRAF: графический редактор для LD или FBD программ, текстовый редактор для ST или IL программ. Обратитесь к соответствующему разделу в этом руководстве для получения дальнейшей информации об этих средствах. Генератор Кодов ISaGRAF может быть напрямую вызван из графического или текстового окна редактирования для завершения исходного кода библиотечной функции или блока.
Словарь локальных переменныхБиблиотечная функция или функциональный блок может иметь локальные переменные и локально определенные слова. Для доступа к декларированию переменной пользователь должен выполнять команды “Словарь” из меню “Файл” в окне редактора, во время редактирования исходного кода функции.
Исполнение подпрограмм или функций управляется их родительской программой. Исполнение родительской программы подвешивается до тех пор пока не закончит свою работу подпрограмма:
Любая программа любой секции может иметь одну или несколько подпрограмм. У каждой подпрограммы может быть только одна родительская программа. Подпрограмма может иметь локальные переменные и макроопределения. Для описания подпрограмм может быть использован любой язык, за исключением SFC. Программы секции Функции - это подпрограммы, которые могут быть вызваны любой другой программой в проекте. В отличии от других подпрограмм они не принадлежат никакой родительской программе. Программы секции Функции могут вызывать другие программы этой же секции. Функции могут быть размещены в библиотеке.
Предупреждение: Система ISaGRAF не поддерживает рекурсивных вызовов функций. Если программа секции Функции будет вызывать сама себя или будет вызываться одной из вызванных ею подпрограмм, то возникнет ошибка.
Предупреждение: Функция или подпрограмма не “запоминают” локальных значений своих локальных переменных. Функции и подпрограммы не могут вызывать функциональные блоки.
Интерфейс подпрограммы должен быть определен явно, с типами и уникальными именами каждого вызываемого и возвращаемого параметра. Для того чтобы поддержать стандарт языка ST, возвращаемый параметр должен иметь то же имя, что и подпрограмма.
Следующая таблица показывает, как установить значение возвращаемого параметра в теле подпрограммы, в различных языках:
ST: присвоить значение возвращаемому параметру, используя его имя
(то же имя что и у подпрограммы):
subprog_name := <expression>;
IL: значение текущего результата (IL регистр)
в конце последовательности запоминается в возвращаемом параметре:
LD 10
ADD 20 (*значение возвращаемого параметра = 30*)
FBD: установить возвращаемый параметр, используя имя:
subprog_name
LD: использовать символ витка с именем возвращаемого параметра:
subprog_name
Функция преобразования - это “С” функция, вызываемая менеджером В/В ISaGRAF каждый раз, когда аналоговая переменная, использующая это преобразование, является входом или выходом проекта.
Функция создает отношение между электрическим значением переменной (считанное на входном датчике или посланное на выходное устройство) и его физическим значением (используемое в выражениях приложения). Следовательно, функция делится на две части: входное преобразование и выходное преобразование. Менеджер библиотек ISaGRAF позволяет пользователю управлять исходным кодом “С” функции преобразования.
Преобразование может быть использовано для целочисленных и вещественных аналоговых переменных. Это значит, что интерфейс функции преобразования всегда определяется плавающими значениями. Интерфейс одинаков для любой функции преобразования. Определение “С” этого интерфейса сделано в файле определения “TACN0DEF.H”.
Обратитесь к ISaGRAF Target User’s Guide для получения дальнейшей информации по тому, как управлять исходным кодом “С” функции преобразования, и как интегрировать новый элемент в целевую систему ISaGRAF.
Функциональные блоки могут использовать языки: LD, FBD, ST или IL. Локальные переменные функциональных блоков копируются для каждого экземпляра. Когда программа вызывает блок, на самом деле, вызывается экземпляр блока: вызывается тот же код, но используются данные, захваченные специально для данного экземпляра блока. Значения переменных экземпляра передаются от одного цикла к другому.
Предупреждение:
- Функциональный блок, написанный на одном из языков IEC, не может вызывать другие функциональные блоки: механизм экземпляров позволяет работать только с собственными локальными переменными блока. Вот список стандартных функциональных блоков, которые нельзя использовать внутри блоков IEC: SR, RS, R_Trig, F_Trig, SEMA, CTU, CTD, CTUD, TON, TOF, TP, CMP, StackInt, AVERAGE, HYSTER, LIM_ALRM, INTEGRAL, DERIVATE, BLINK, SIG_GEN
SR, RS, R_Trig, F_Trig, SEMA, CTU, CTD, CTUD, TON, TOF, TP, CMP, StackInt, AVERAGE, HYSTER, LIM_ALRM, INTEGRAL, DERIVATE, BLINK, SIG_GEN
- По той же причине нельзя использовать Положительные или Отрицательные контакты или витки, или витки Установить и Сбросить.
- Функции TSTART и TSTOP для запуска и остановки таймеров не могут быть использованы внутри функционального блока для целевых задач версий 3.0x. Они работают начиная с версии 3.20.
- Если в функциональном блоке требуется виток, то прежде чем замкнуть виток, нужно использовать локальную переменную. Например:
Это не будет работать: Это работает:
Аргументы:
IN любой тип
Q любой тип
Описание:
Приписывает значение одной переменной другой переменной.
Этот блок очень удобен для прямой связки диаграммы входа с диаграммой выхода. Он может быть также использован (с линией булевского отрицания) для инвертирования состояния линии соединенной с диаграммой выхода.
(*FBD пример блоков присвоения*)
(* ST эквивалент: *)
ao23 := ai10;
bo100 := NOT (bi1 AND bi2);
(* IL эквивалент: *)
LD ai10
ST ao23
LD bi1
AND bi2
STN bo100
Система разработки ISaGRAF позволяет генерацию исходных кодов на языке “С”. В этом случае, все содержание приложения, включая описание SFC схем, определение базы данных и последовательности кодов генерится в формате языка “С”. Есть два стиля генерируемых кодов:
CC86M............... (C исходный код - V3.04) генерирует исходный код неструктурного "C". Этот стиль нужно выбирать, если ваша целевая задача основана на версии ISaGRAF до 3.23.
SCC.................... (структурный C исходный код) генерирует исходный код структурного "C". Этот стиль нужно выбирать, если ваша целевая задача основана на версии ISaGRAF 3.23 или поздней.
Следующие два файла создаются в каталоге проектов:
APPLI.C............. общие исходные коды приложения
APPLI.H............. определения языка “С”
В случае генерации исходного кода структурного "C", ".C" файлы исходников и ".H" файлы определений создаются для каждой программы приложения, в дополнение к общим файлам "APPLI.C" и "APPLI.H". Эти файла должны быть скомпилированы и слинкованы с библиотекой ISaGRAF для получения окончательного исполняемого кода. Обратитесь к “ISaGRAF I/O development toolkit User’s Guide” для дальнейшей информации насчет рекомендуемой техники реализации.
Замечание: Некоторые отладочные возможности, такие как загрузка приложения, модификация по ходу работы и точки прерывания не доступны, когда приложение ISaGRAF скомпилировано на языке “С”.
Окно редактирования словаря показывает список переменных с одинаковым типом и областью действия. Тип и область действия всегда указаны в заголовке.
Окно редактирования показывает только основные поля описания переменных : имя, атрибуты, сетевой адрес и комментарий. Полное описание выделенных переменных всегда дано в окне текущего состояния. Используйте следующие кнопки на инструментальной панели для выбора области действия редактируемых переменных : ... ОБЩАЯ.................... может быть использована любой программой любого проекта ... ГЛОБАЛЬНАЯ........ может быть использована любой программой текущего проекта ... ЛОКАЛЬНАЯ........... может быть использована только одной программойИспользуйте "Tab" управление в полосе заголовка, для выбора типа объекта редактирования:
Используйте поле ввода текста слева от панели для поиска префикса имени переменной. В данном случае поиск производится по всему списку от начала. Кроме этого, для поиска доступны команды меню «Найти». Поиск не различает регистров. Поиск может проводится вперёд или назад по отношению к выделенной переменной.Action | Действие | Список операторов или присваиваний выполненных за один шаг программы SFC в активном состоянии. | |||
Action (FC) | Действие (FC) | Символ Потоковой Диаграммы. Действие представляет собой список инструкций, которые должны быть выполнены , кода динамический поток встречает символ действия. | |||
Activity of a step | Активность шага | Атрибут шага, который определяется выражением SFC. Действия, связанные с шагом, выполняются в соответствии с их активностью. | |||
Analog | Аналоговый | Тип переменной. Это длинное целое или вещественное число. | |||
Attribute | Атрибут | Класс переменных. Возможные атрибуты переменных - внутренние, ввода или вывода. | |||
Begin section | Начальная секция | Группа последовательных программ, выполняемых в начале каждого цикла запуска. | |||
Beginning step | Начальный шаг | Первый шаг в теле макроса. Начальный шаг не связан с какими-либо предыдущими действиями. | |||
Boolean | Булевский тип | Тип переменных. Переменные данного типа могут принимать только истинное или ложное значение | |||
Boolean action | Булевское действие | Действие SFC: булевской переменной присваивается значение активности сигнала шага | |||
Breakpoint | Точка останова | Место в программе, помеченное пользователем во время отладки. Точка останова - шаг SFC или переход. Система останавливается, когда SFC достигает Точки останова. | |||
C function | «С»-функция | Функция, написанная на «C», вызванная из программы ISaGRAF (написанной на другом языке) синхронно. «С»-функции поставляются CJ International или пишутся пользователем | |||
C language | Язык «С» | Язык программирования высокого уровня, предназначенный для описания действий компьютера, таких как «С»-функции и функции преобразования | |||
C source code | «С»-код | Текстовый файл, содержащий программу на языке «С» | |||
C source header | Заголовоч-ный файл «С» | Текстовый файл, содержащий прототипы функций и определения типов, необходимых для программы на языке «С» | |||
Cell | Ячейка | Элементарная область в графической матрице для графических языков, таких как SFC, FBD или LD. | |||
Child SFC program | Дочерняя SFC программа | SFC- программа, управляемая другой SFC- программой, называемой родительской | |||
Clearing a transition | Освобожде-ние перехо-да | Операция во время выполнения программы: все маркеры, созданные ранее, удаляются. Выражение создаётся на каждом следующем шаге. | |||
Coil | Виток | Графическая составляющая LD-программы, используемая для отображения присваивания переменных вывода. | |||
Comment | Коммента-рий | Текст, включенный в программу, но не имеющий влияния на её выполнение | |||
Comment (SFC) | Коммента-рий (SFC ) | Текст, присоединённый к SFC- шагу или переходу, но не имеющий влияния на её выполнение | |||
Common | Общий | Диапазон объявления слов. Такие объекты могут быть использованы любой программой из любого проекта. | |||
Condition (for a transition) | Условия ( для перехо-да ) | Булево выражение присоединённое к SFC- переходу. Переход не может быть совершён, если выражение ложно. | |||
Connector (FC) | Соедини-тель (FC) | Графическая компонента FC, которая представляет связь, от точки потоковой диаграммы действию ил тесту FC. Графический символ прыжка – это маленький кружок с номером ссылки элемента назначения. | |||
Constant expression | Константа | Буквенное выражение, используемое для описания постоянного значения. Константы связаны с одним типом. | |||
Contact | Контакт | Графическая составляющая LD- программы. Она отображает статус переменной ввода. | |||
Conversion | Преобразо-вание | Фильтр, связанный с аналоговой переменной ввода или вывода. Преобразование автоматически производится всякий раз, когда значение переменной вводится или выводится. | |||
Conversion function | Функция преобразо-вания | «С»- функция, которая описывает преобразование. Такое преобразование может быть присоединено к любой аналоговой переменной ввода / вывода | |||
Conversion table | Таблица преобразо-вания | Набор точек, которые определяют линейное (посегментное) преобразование. Такое преобразование может быть присоединено к любой аналоговой переменной ввода / вывода | |||
Cross references | Перекрёст-ная ссылка | Информация, собранная системой разработки ISaGRAF, про словарь переменных, а также про их использование в программе. | |||
Current result (IL) | Текущий результат (в языке IL ) | Результат инструкции в IL-программе. Текущий результат может быть изменён инструкцией или использоваться для создания переменной. | |||
Cycle timing | Временной цикл | Длительность исполнения текущего цикла.0000 | |||
Cycle to cycle mode | Режим последова-тельного выполне-ния циклов | Выполняемый режим: в этом режиме циклы исполняются по очереди, в соответствии с инструкциями пользователя, данными отладчику. | |||
Cyclic | Цикличес-кий | Атрибут программы, которая всегда выполняется. | |||
Decision (FC) | Решение (FC) | (Также называется тест) Символ потоковой диаграммы присоединенный к булевскому выражению. Поток направляется по символам Да или Нет в зависимости от состояния выражения. | |||
Defined word | Макроопре-деление | Уникальный идентификатор, который используется для подстановки в любое выражение текста программы. | |||
Delayed operation (IL) | Операция задержки (в языке IL) | Операция в IL-программе, которая выполняется при обнаружении инструкции «(» в программе. | |||
Diary | Дневник | Текстовый файл, содержащий все записи об изменениях, сделанных над одной программой. Каждая запись завершается датой изменения. | |||
Dictionary | Словарь | Список внешних переменных, переменных ввода/вывода и макросов, используемых в программах проекта. | |||
Edge | Фронт | Изменение значения булевской переменной. Передний фронт означает изменение с ложного значения на истинное, задний фронт - с истинного на ложное. | |||
End section | Секция End | Группа циклических программ, исполняемая в конце каждого указанного цикла. | |||
Ending step | Последний шаг | Последнее действие в теле макро шага SFC. | |||
Expression | Выражение | Набор операторов и идентификаторов, которые отображают вычисление формулы. | |||
Father SFC program | Родитель-ская SFC- программа | SFC-программа, которая управляет другой SFC- программой, называемой дочерней. | |||
FBD | FBD | Язык диаграмм функциональных блоков | |||
FC | FC | "Потоковая Диаграмма". | |||
Flow Chart | Потоковая Диаграмма | Графический язык использующийся для описания потоков. Диаграмма состоит из действий, которые должны выполняться и решений, которые допускаю выбор из различных направлений потока. Язык Потоковых Диаграмм позволяет рисовать цтклы, которые должны выполняться на последовательных циклах. | |||
Function block | Функцио-нальный блок | Графический компонент языка FBD, который представляет стандартную элементарную функцию библиотеки ISaGRAF. | |||
Functional Block Diagram | Диаграмма функцио-нального блока. | Графический язык : равенства состоят из стандартных элементарных блоков библиотеки ISaGRAF и связаны вместе в диаграмму. | |||
Global | Глобаль-ный | Диапазон области видимости переменных и макросов. Глобальные Объекты могут быть использованы любой программой, входящей в проект. | |||
Hierarchy | Иерархия | Архитектура проекта, разделённого на несколько программ. Иерархическое дерево показывает связи между родительскими и дочерними программами. | |||
I/O board | Плата ввода/ вывода | Аппаратный ресурс. Плата характеризуется типом и направлением ( ввод или вывод ). Параметры платы описаны в библиотеке ISaGRAF. | |||
I/O channel | Канал ввода/ вывода | Точка соединения платы ввода - вывода. Канал может получать одну переменную ввода - вывода. | |||
I/O connection | Соедине-ние ввода/ вывода | Определение связей между переменными программы и каналами платы, существующими в выбранной системе. | |||
I/O variable | Перемен-ная ввода/ вывода | Переменная, соединённая с устройством ввода или вывода. Переменная ввода - вывода должна быть соединена с каналом платы ввода - вывода. | |||
Identifier | Идентифи-катор | Уникальное слово, используемое для представления переменной или константы в программировании. | |||
IL | Список Инструкций | Язык Списка Инструкций | |||
Initial situation | Состояние инициали-зации | Список начальных действий SFC- программы, которые определяют состояние программы в момент её старта. | |||
Initial step | Шаг ини-циализации | Специальная операция SFC-программы, которая выполняется в момент запуска. | |||
Input | Ввод | Атрибут переменной. Такая переменная может быть связана с устройством ввода. | |||
Instruction | Инструкция | Элементарная операция IL-программы, внесённая в текстовую строку. | |||
Instruction List | Список Инструкций | Язык низкого уровня, состоящий из последовательного списка элементарных операций. | |||
Integer | Целое | Класс аналоговых переменных, хранящихся в формате 32- битового целого со знаком. | |||
Internal | Внутренняя | Атрибут переменной, не связанной с устройством ввода - вывода. | |||
Jump to a step | Прыжок к шагу | Графический компонент SFC, который изображает связь перехода с выполнением операции. Графический символ прыжка - стрелка с номером действия, на которое будет осуществлён прыжок. | |||
Keyword | Ключевое слово | Зарезервированное слово языка программирования. | |||
Label (IL) | Метка (в IL) | Идентификатор в начале IL-инструкции, который может быть использован как операнд оператора JMP. | |||
Ladder Diagram | Релейная диаграмма | Графический язык, объединяющий контакты и витки. Предназначен для проектирования булевских уравнений. | |||
LD | Язык релейных диаграмм | ||||
Level 1 of the SFC | 1- уровень в SFC | Главное описание SFC-программы. 1-уровень группирует схемы и присоединяет комментарии. | |||
Level 2 of the SFC | 2- уровень в SFC | Детальное описание SFC-программы. В этом описании действия внутри шагов и булевские условия связываются с переходами. | |||
Library | Библиотека | Набор программных и аппаратных ресурсов, которые могут быть непосредственно вставлены в программу. | |||
Local | Локальный | Диапазон области видимости переменных и макросов. Локальные объекты могут быть использованы только одной из программ проекта. | |||
Locked I/O | Закрытый ввод/ вывод | Переменная ввода или вывода, логически разъединённая с сообщающимся устройством ввода или вывода при помощи команды «Закрыть», данной пользователем в отладчике. | |||
Macro step | Макро шаг | Графический компонент SFC. Макро шаг - это уникальная группа шагов и переходов, представленная определённым символом в главной диаграмме и описанная отдельно. | |||
Matrix | Матрица | Логическое разделение редактируемой области на прямоугольные ячейки во время выполнения программы на графическом языке. | |||
Message | Сообщение | Тип переменной. Переменные этого типа содержат строку переменной длины. | |||
Modbus | Сетевой протокол Modbus | Master-Slave протокол. Целевая система ISaGRAF может быть подчиненным по отношению к внешней системе (такой как управляющая система ) в полной архитектуре. | |||
Modifier (IL) | Модифика-тор ( в IL ) | Одиночный символ, помещённый в конце ключевого слова IL, который изменяет значение оператора. | |||
Network address | Сетевой адрес | Формальный шестнадцатеричный адрес, который может быть определён для каждой переменной. Этот адрес используется протоколом Modbus при соединении системы с внешней системой. | |||
Non-stored action | Не сохраня-емое действие | SFC- действие : список операторов, выполняемых в каждом цикле целевой задачи, когда соответствующий шаг - в активном состоянии. | |||
OEM key code (I/O board) | Код изго-товителя оборудо-вания | Шестнадцатеричный 16-битовый код, определённый для каждой платы ввода - вывода в библиотеке ISaGRAF. Он идентифицирует изготовителя платы. | |||
OEM parameter (I/O board) | Идентификационный параметр платы, определенный её разработчиком. Это может быть как константа, так и переменная, определяемая пользователем во время соединения ввода-вывода. | ||||
Operand (IL) | Операнд | Переменная или константа, обрабатываемая элементарной инструкцией IL. | |||
Operation (IL) | Операция | Основная инструкция языка IL. В основном связана с операндами в инструкциях. | |||
Output | Вывод | Атрибут переменной. Такие переменные связаны с устройством вывода целевой машины. | |||
Parameter (C function) | Параметр «C» - функции | Значение, переданное «С»- функции. П. Характеризуется его типом. | |||
Parameter (I/O board) | Параметр платы ввода/ вывода | Константа или определённое пользователем значение - параметр стандартной платы ввода-вывода. Может быть задано программно во время соединения ввода-вывода. | |||
Parent program | Родитель-ская программа | Программа, написанная на любом языке, которая управляет ( или вызывает ) другую программу ( написанную не на SFC ), называемую её подпрограммой. | |||
Power rail | Шина питания | Главные левые и правые вертикальные шины, расположенные с краю релейной диаграммы. | |||
Program | Программа | Основной программный элемент проекта. Программа пишется на одном языке и помещается в иерархическое дерево проекта. | |||
Project | Проект | Программная область, которая содержит всю информацию ( программы, переменные, ... ) для одного приложения ISaGRAF. | |||
Pulse action | Импуль-сное действие | SFC- действие : список операторов, выполняемых только один раз при активизации соответствующего шага. | |||
Range | Диапазон | Часть программы, в которой может использоваться объект. Предопределённые диапазона ISaGRAF - общий, глобальный, локальный. | |||
Real | Веществен-ный | Класс аналоговой переменной, которая хранится как число с плавающей точкой с одинарной точностью в 32- битовом формате. | |||
Real board | Реальная плата | Плата ввода-вывода, физически соединённая с устройством ввода-вывода целевого компьютера. | |||
Real time mode | Режим реального времени | Нормальный режим исполнения: целевой цикл переключается при помощи программного временного цикла. | |||
Reference number (SFC) | Номер ссылки | Десятичное число ( 1...65535 ) , которое идентифицирует SFC- шаг или SFC- переход. | |||
Register (IL) | Регистр | Текущий результат последовательности действий IL. | |||
Return value
of a sub-program | Возвраща-емое значение подпро-граммы. | Значение, возвращаемое подпрограммой в конце выполнения. Оно используется в операциях вызывавшей подпрограммы. | |||
Run time error | Ошибка при выполнении | Ошибка приложения, обнаруженная ISaGRAF во время выполнения. | |||
Section | Секция | Группа программ, выполняемая по одинаковым динамическим правилам. | |||
Separator | Раздели-тель | Специальный символ или группа символов, используемая для разделения идентификаторов в языке. | |||
Sequential Function Chart | Последова-тельная Функцио-нальная Диаграмма | Графический язык : процесс описывается как список шагов, связанных переходами. Действия связаны с шагами. Переходы определяются булевскими условиями. | |||
Sequential section | Последова-тельный раздел | Группа программ проекта. Выполнение этих программ подчинено динамическим правилам языка SFC. | |||
SFC | Язык Последовательных Функциональных Схем | ||||
ST | Язык Структурированного текста | ||||
Statement | Оператор | Основная полная операция ST. | |||
Step | Шаг | Основной графический компонент SFC. Шаг представляет устойчивую стадию процесса и изображается квадратом. Каждому шагу ставится в соответствие его номер. Активность шага используется для контроля выполнения соответствующего процесса. | |||
String | Строка | Набор символов, хранящийся в переменной типа message. | |||
Structured Text | Структури-рованный текст | Структурированный язык высокого уровня, сочетающий присваивания, конструкции высокого уровня ( такие как if/then/else ) и вызовы функций. | |||
Sub-program | Подпро-грамма | Программа, написанная на каком-либо языке и вызываемая другой программой, называемой её родительской. | |||
Target | Цель | Целевая машина ISaGRAF, которая поддерживает базовое ПО ISaGRAF. | |||
Target cycle | Целевой цикл | Набор действий, выполняемый каждый раз, когда активизируется система ISaGRAF. Действия переключаются в соответствии с программным временным циклом. | |||
Technical note | Техничес-кие при-мечания | Руководство пользователя по элементам библиотеки ISaGRAF ( «С»- функции, функциональные блоки, функции преобразования или платы ввода-вывода ). | |||
Test (FC) | Тест (FC) | (Также называется решение)Символ потоковой диаграммы присоединенный к булевскому выражению. Поток направляется по символам Да или Нет в зависимости от состояния выражения. | |||
Timer | Таймер | Тип переменной. Такие переменные содержат значение времени и могут быть автоматически обновлены системой во время выполнения программы. | |||
Token (SFC) | Маркер | Графический маркер, используемый для изображения активного шага SFC- программы. | |||
Toolbox | Комплект инструмен-тальных средств | Маленькое графическое окно, принадлежащее окну инструмента графического редактирования. Оно группирует главные клавиши для выбора графических компонентов. | |||
Top level program | Программа верхнего уровня | Программа, размещённая на верху иерархического дерева. Вызывается системой. | |||
Transition | Переход | Главный графический компонент SFC. Переход определяет отношение между различными SFC-шагами. Переход имеет идентификационный номер. К каждому переходу присоединяется булевское условие. | |||
Type | Тип | Класс переменных одинакового формата. Основные типы - булевский, аналоговый, таймер и сообщение. | |||
Validity of a transition | Истинность перехода | Атрибут перехода. Переход проверяется, когда все предыдущие шаги активны. | |||
Variable | Перемен-ная | Уникальное представление элементарных данных, которое обрабатывается в программе или проекте. | |||
Virtual board | Виртуаль-ная плата | Плата ввода- вывода , которая физически не соединена с устройством ввода-вывода целевой машины. |
Значение: Безусловный переход на метку
Синтаксис: Goto <labelname>
Аргументы: <labelname>
имя метки определенное в скрипте
Замечание: Разрешены переходы назад. В случае бесконечного цикла, выполнение скрипта автоматически прерывается на каждом витке, для того чтобы сохранить выполнение циклов ISaGRAF.
Пример: Print 'Before Jump'
Goto MyLabel
Print 'Within Jump' (*никогда не выполняется *)
MyLabel:
Print 'After Jump'
Выход: Before Jump
After Jump
Предупреждение: номер шага другой программы, при использовании такого синтаксиса не относится к стандарту IEC 1131-3. Простой способ сделать тоже самое, используя правила IEC - это объявить глобальную булевскую переменную в словаре, которая будет представлять активность интересующего нас шага (например ref_step_X). Затем вы вводите в шаг переменную с признаком N (ref_step_X(N);). Затем в программе, которая желает проверить активность этого шага, вы используете эту переменную.
Программа Prog Другая программа, которой нужна активность шага программы Prog
TSTART операторИ мя: TSTART
Значение: запускает переменную таймер, таймер не модифицируется командой TSTART, т. е. счет начинается с текущего значения таймера
Синтаксис: TSTART (<time_variable> );
Операнды: Любой неактивный таймер
Возвращаемое значение: (нет)
Пример:
(*ST программа , использующая оператор TSTART и TSTOP*)
Временная диаграмма если bi100 всегда равно FALSE:
Таймер сохраняет свое значение в течении одного цикла.
TSTOP операторИмя: TSTOP
Значение: останавливает переменную таймер, таймер не модифицируется командой TSTOP.
Синтаксис: TSTOP (<time_variable> );
Операнды: Любой активный таймер
Возвращаемое значение: (нет)
Пример: см. TSTART
GSTART операторИмя: GSTART
Значение: запускает программу наследник, устанавливая маркер на все ее начальные шаги.
Синтаксис: GSTART (<child_program> );
Операнды: SFC программа, которая должна быть наследником по отношению к программе в которой написан оператор
Аргументы:
XIN REAL любое аналоговое значение
XIN2 REAL любое аналоговое значение
EPS REAL величина гистерезиса (должна быть больше нуля)
Q BOO TRUE если XIN1 перешел через XIN2 + EPS, но
Еще не ниже XIN2 - EPS
Описание:
Гистерезис действительного значения по верхнему пределу.
Временная диаграмма:
Система ISaGRAF допускает описание вертикальной структуры программы SFC. SFC программы образуют иерархическое дерево. Каждая SFC программа может управлять (запускать, убивать) другие SFC программы. Такие программы называются наследниками SFC программы управляющей ими. SFC программы связаны в основное иерархическое дерево, используя связь “родитель-наследник”:
Основные правила иерархической структуры:
- SFC программы, которые не имеют родителей, называются ”основными” SFC программами
- Основные SFC программы активизируются системой в момент запуска приложения
- Программа может иметь несколько программ-наследников
- Наследник не может иметь более одного родителя
- Программа-наследник управляется только своим родителем
- Программа не может управлять наследником своего наследника
Основные действия, которые SFC программа-родитель может выполнять для управления программой-наследником :
Start Запустить (GSTART) Запускает дочернюю программу : активизирует каждый ее начальный шаг. Наследники этой программы не запускаются автоматически.
Kill Убить (GKILL) Убивает дочернюю программу : дезактивируя каждый ее активный шаг. Все наследники этой программы также убиваются.
Freeze (Заморозить (GFREEZE) Дезактивирует каждый активный шаг программы, и запоминает их так, чтобы программа могла быть перезапущена. Все наследники этой программы также замораживаются.
Restart Перезапустить (GRST) Перезапускает замороженную дочернюю программу активизируя все ее зависшие шаги. Наследники этой программы не перезапускаются автоматически.
Значение: Условный переход на метку. Условие – это либо сравнение двух переменных ISaGRAF, либо сравнение переменной и константы.
Синтаксис: If <var1> test <var2>
Goto <labelname>
If <var1> test <constant_expr> Goto
<labelname>
Имеются тесты
сравнения:
= true если члены имеют одно значение
<> true если члены имеют разные значения
< true если первый член меньше второго
<= true если первый член меньше или равен второму
> true если первый член больше второго
>= true если первый член больше или равен второму
Аргументы: <var1> <var2> символы объявленных переменных или непосредственно представленные переменные В/В использующие соглашения "%".
<constant_expr> константа, которая соответствует типу переменной. Для булевских, "0" и "1" могут использоваться "FALSE" и "TRUE". Для таймеров, префикс "T#" или "TIME#" может быть опущен.
<labelname> имя метки определенной в скрипте.
Замечание: Разрешены переходы назад. В случае бесконечного цикла, выполнение скрипта автоматически прерывается на каждом витке, для того чтобы сохранить выполнение циклов ISaGRAF.
Пример: (* Этот виток работает до тех пор пока MyVar не равно TRUE *)
Loop:
If MyVar = TRUE Goto TheEnd
Print MyVar
Goto Loop
TheEnd:
Импульсное действие - это список инструкций ST или IL, которые выполняются только однажды при активизации шага. Инструкции пишутся в соответствии со следующим синтаксисом:
ACTION (P) :
(*ST операторы *)
END_ACTION ;
Вот результат импульсного действия:
Пример:
Аргументы:
IN MSG начальная строка
Str MSG строка которую нужно вставить
Pos INT позиция вставки
вставка делается перед позицией
(первая позиция - 1)
Q MSG измененная строка
пустая строка если Pos < 0
соединение строк если Pos > длина IN
Описание:
Вставляет подстроку в строку начиная с данной позиции.
(*FBD пример блока “INSERT”*)
(* ST Эквивалент: *)
MyName := INSERT ('Mr JONES', 'Frank ', 4);
(* MyName - это 'Mr Frank JONES' *)
(* IL Эквивалент: *)
LD 'Mr JONES'
INSERT 'Frank ',4
ST MyName
Этот раздел описывает инсталляцию системы ISaGRAF и настройку компьютера для разработки приложений.
Программные и аппаратные требованияISaGRAF может быть установлен на любом компьютере, удовлетворяющем минимальным потребностям Windows 3.1. Однако желательно наличие следующих аппаратных ресурсов:
· Персональный компьютер на базе микропроцессора 80486 или выше
(рекомендуется Pentium)
· 8 МБ оперативной памяти
(рекомендуется 16 мегабайт)
· Один 3.5’’ (1.44 МБ) дисковод
· Не менее 20 МБ свободного места на жёстком диске
· Графический адаптер VGA или SVGA и совместимый монитор
· Мышь (необходима для средств графической разработки)
· Параллельный LPT1 порт (необходим для ключа защиты)
До инсталляции ISaGRAF должно быть установлено система Windows:
· Windows 3.1 - расширенная версия для 386
· Windows 95
· Windows NT Version 3.51 или 4.00
Использование инсталляционной программыISaGRAF устанавливается программой INSTALL. Эта программа копирует программное обеспечение ISaGRAF с диска ISaGRAF на жёсткий диск пользователя. Кроме того, INSTALL добавляет группу ISaGRAF в окно Менеджера Программ и создаёт инициализационный файл «ISA.ini» в поддиректории EXE.
INSTALL - программа Windows, поэтому она должна запускаться из Менеджера Программ Windows или командой Выполнить из меню Пуск Windows 95. Для установки ISaGRAF необходимо выполнить следующие шаги:
· Вставить Диск 1 в соответствующий дисковод
· Из менеджера программ или меню Пуск, запустить "SETUP.EXE" в корневой папке CD-ROM, или "A:\INSTALL.EXE" в случае гибких дисков.
· Следовать соответствующим инструкциям для завершения установки. Рекомендуется устанавливать Систему Разработки ISaGRAF в новой директории, для того чтобы избежать конфликтов с файлами ISaGRAF старых версий.
INSTALL спросит, какие из следующих компонент необходимы:
· Выполняемые программы ISaGRAF
· Оперативно-доступная информация и помощь
· Стандартные библиотеки ISaGRAF
· Примеры программ ISaGRAF
Команды меню "Инструменты" используются для запуска приложений ISaGRAF. Команда "Инструменты / Архив / Проекты" запускает менеджер архивов ISaGRAF, чтобы сохранять или восстанавливать проекты. Команда "Инструменты / Архив / Общие данные " используется для того, чтобы сохранять или восстанавливать файлы, которые используют все проекты (такие как общие макроопределения).
Команда "Инструменты / Библиотеки" запускает менеджер библиотек ISaGRAF в отдельном окне.
Команда "Инструменты / Импортировать программу IL " может быть использована для импортирования проекта описанного как отдельная программа IL в текстовом файле, согласно формату файла PLC Open.
L
Аргументы:
RUN BOO режим: TRUE=интегрировать/FALSE=держать
R1 BOO сброс
XIN REAL вход: любая действительная аналоговая величина
X0 REAL начальное значение
CYCLE TMR период интегрирования
Q BOO не R1
XOUT REAL интегрированный выход
Описание:
Интеграл действительной величины
Если величина параметра CYCLE меньше чем время цикла приложения ISaGRAF, то период интегрирования будет равен времени цикла приложения ISaGRAF.
(*FBD пример блока “INTEGRAL” *)
(* ST Эквивалент: Мы предполагаем, что INTEGRAL1 - это экземпляр блока INTEGRAL *)
INTEGRAL1(manual_mode, NOT(manual_mode), sensor_value, init_value, t#100ms);
controlled_value := INTEGRAL1.XOUT;
(* IL Эквивалент: *)
LD manual_mode
ST INTEGRAL1.run
STN INTEGRAL1.R1
LD sensor_value
ST INTEGRAL1.XIN
LD init_value
ST INTEGRAL1.X0
LD t#100ms
ST INTEGRAL1.CYCLE
CAL INTEGRAL1
LD INTEGRAL1.XOUT
ST controlled_value
Пользовательский интерфейс целевой задачи ISaGRAF имеет вид:
Основными являются следующие элементы:
Заголовок окна
панель меню
меняющаяся в зависимости от состояния пиктограмма статуса
кнопка Start/Stop
вывод ошибок и сообщений
панель статуса
Заголовок окна имеет вид “ISaGRAF - name_of_apli - Target”, где name_of_apli - это имя работающего приложения. Заголовок сокращается до “ISaGRAF - - Target” когда нет работающего приложения.
Панель меню целевой задачи ISaGRAF NTПанель меню имеет 4 пункта
Options
Messages
View
Help
· Меню “Options”
(См. также раздел Общая информация по опциям)
Меню Options открывает доступ к установленным для работающего приложения опциям:
Slave позволяет модифицировать номер подчиненного. Измененное значение вступит в силу только после рестарта целевой задачи. Эта опция - недоступна если при старте целевой задачи в командной строке была задана хотя бы одна опция.
Communication позволяет модифицировать конфигурацию связи. Измененное значение вступит в силу только после рестарта целевой задачи. Эта опция - недоступна если при старте целевой задачи в командной строке была задана хотя бы одна опция кроме -s.
DDE позволяет модифицировать продолжительность цикла извещения. Измененное значение вступит в силу только после рестарта целевой задачи. Эта опция - недоступна если при старте целевой задачи в командной строке была задана хотя бы одна опция кроме -s.
Simulate I/O ставит или снимает отметку в зависимости от состояния опции. Измененное значение вступит в силу только после Stop/Start приложения.
Priority позволяет модифицировать приоритет. Измененное значение вступает в силу немедленно.
Default options восстанавливает текущие значения по умолчанию для следующих параметров:
- Communication
- DDE
- координаты окна
Измененные значения вступят в силу только после рестарта целевой задачи. Эта опция - недоступна если при старте целевой задачи в командной строке была задана хотя бы одна опция кроме -s.
|
Нет ошибок |
Ошибки или сообщения (середина красная) |
Запущенные приложения |
|
|
Нет приложений |
|
|
Для того чтобы улучшить время реакции целевой задачи ISaGRAF, целевая задача разделена на два процесса: программа связи (isatst или isanet) и прикладная целевая задача (isaker).
Такая архитектура более гибкая. Она позволяет запускать коммуникационных несколько задач с одной и той же целевой задачей или до 4 целевых задач с одной и той же коммуникационной задачей.
Это также облегчает интеграцию различных процессов (например, визуализацию и отладку) в рамках одного приложения или связь через один и тот же порт с 4 приложениями.
Целевая и коммуникационная задача не зависят друг от друга. Единственное требование состоит в том, чтобы задача isaker была запущена первой, так чтобы она смогла инициализировать систему и задача связи смогла связаться с ней. Задача ISaGRAF не нарушает работу фоновых процессов и программ обработки прерываний.
Для того, чтобы уменьшить время реакции целевой задачи 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().
Редактор ISaGRAF SFC управляет галереей SFC: это набор структур SFC, которые могут быть введены в любую схему SFC. Элементы галереи SFC могут дополнительно включать программы шагов и переходов уровня 2. Используйте следующие команды меню "Инструменты":
Копировать в галерею SFC ........... копировать выделенные элементы в галерею SFC
Вставить из галереи SFC ............... вклеить элемент галереи SFC в текущую позицию
При копировании в галерею SFC (т.e. при создании нового элемента галереи SFC), вы можете дополнительно потребовать встроить программу уровня 2 выбранных символов SFC.
Окно генератора кодов автоматически открывается командами “Проверить” и “Создать” из другого окна ISaGRAF Workbench. Окно генератора кодов не закрывается автоматически, когда заканчивается затребованная операция генерации кодов, так что пользователь все еще будет иметь доступ ко всем командам генерации кодов и опциям из меню окна.
ISaGRAF включает полный графический и символьный редактор. Команда “Отладка” окна управления программ запускает отладчик для управления приложением, загруженным на целевую PLC. В этом режиме отладчик общается с целевой системой через аппаратную связь. Команда “Симуляция” окна управления программ одновременно запускает отладчик и полный симулятор целевой системы. Это позволяет пользователю тестировать его приложение, когда целевая система В/В еще не завершена. Окно отладчика содержит команды для управления всем приложением.
Если, при запуске отладчика, приложение на целевой PLC то же, что и на workbench, то автоматически открывается окно управления программами в режиме отладки. Команды этого окна могут быть использованы для открытия других окон ISaGRAF (графического и текстового редакторов, словаря, списков переменных, соединений В/В …). Все окна, открытые во время сессии отладки функционируют в “режиме отладки”, означающим то, что команда редактирования запрещена. Отображенные компоненты программ (шаги, переходы, переменные …) показаны с их текущим состоянием или значением. Двойной щелчок мышкой по объекту изменяет его статус или значение в целевом приложении.
Когда отладчик запускается в режиме симуляции, связь с целевой системой ISaGRAF останавливается. Отладчик взаимодействует только с окном симуляции. Так как целевая система не существует в данном режиме, то команды “загрузить”, “запустить приложение” или “остановить приложение” не доступны в меню отладчика.
Библиотеки ISaGRAF обеспечивают стандартный интерфейс между автоматической разработкой и возможностями программного обеспечения или оборудования целевой системы ISaGRAF. Существует по одной библиотеке для каждого типа интерфейса. Менеджер Библиотек ISaGRAF Workbench предназначен для разработчика оборудования или программного обеспечения. Разработчик использует менеджер библиотек для описания интерфейса программирования ISaGRAF с объектами, которые он создает.
Менеджер Библиотек ISaGRAF Workbench показывает элементы одной из библиотек ISaGRAF. В левой области окна находится список элементов выбранной библиотеки. В правой области находятся технические замечания (руководство пользователя) по элементу, в настоящий момент выбранному в списке элементов. Меню менеджера библиотек содержат команды для создания, определения или изменения элементов активной библиотеки. Команда “Файл / Другая библиотека” разрешает выбор одной из библиотек ISaGRAF. Окно с левой стороны от меню средств тоже может быть использовано для выбора библиотеки:
Оперативная информация по следующим разделам устанавливается вместе с ISaGRAF:
· Описание языка ISaGRAF
· Полное Руководство Пользователя (для любого средства ISaGRAF)
· Технические замечания для элементов библиотеки
Из любого окна ISaGRAF выберите меню «Помощь» для вывода оперативной информации об основных возможностях (таких как языки) и средства ISaGRAF, из которого вызвана справка.
Графический редактор ISaGRAF FBD/LD позволяет пользователю создавать конечные программы FBD, которые могут содержать части, написанные на LD. Он сочетает в себе возможности редактировать как текст, так и графику. Таким образом, можно создавать диаграммы и соответствующие им входы и выходы. Поскольку этот редактор предназначен для языка FBD, то чистые LD диаграммы предпочтительнее создавать при помощи редактора Quick LD.
Графический редактор потоковых диаграмм ISaGRAF позволяет пользователю вводить программы на языке FC (Flow Chart), с действиями и тестами (решениями) запрограммированными либо на ST, IL либо на языке Quick LD. Потоковые Диаграммы – это диаграммы решений, которые могут быть также использованы для описания последовательных операций, так как они позволяют некоторые дополнительные возможности, такие как неблокированные обратные прыжки.
Язык LD допускает графическое представление булевых выражений. Булевы операторы AND, OR, NOT явно представлены в топологии диаграммы. Булевы выходные переменные присоединены к виткам графика. Редактор Quick LD допускает простой ввод диаграмм при помощи клавиатуры или мыши. Элементы автоматически связываются и размещаются по ступеням самим редактором. Пользователю не нужно изображать никаких соединений. Кроме этого, редактор Quick LD размещает ступени диаграммы таким образом, что место, занимаемое диаграммой, всегда оптимально.
Язык SFC используется для описания операций последовательного процесса. Он использует простое графическое представление для различных шагов процесса и условий, позволяющих изменить активный шаг. Вход в программу SFC осуществляется при помощи графического редактора SFC. SFC - это ядро стандарта IEC 1131-3. Остальные языки обычно описывают действия внутри шагов и логические условия для совершения переходов. Графический редактор SFC позволяет пользователю создавать завершённые программы на SFC. Он совмещает возможности редактирования как текста, так и графики. Таким образом, возможен ввод диаграмм SFC, соответствующих им действий и условий. 0
Словарь ISaGRAF - это средство для редактирования внутренних переменных, переменных ввода/вывода, функциональных блоков и макросов приложения. Словарь группирует все объявления переменных и функциональных блоков приложения и макросов в текстовой форме.
Переменные, функциональные блоки и макросы должны быть объявлены в словаре перед использованием. Переменные и макросы могут использоваться в любом автоматическом языке : SFC, FBD, LD, ST, и IL. Функциональные блоки, используемые в FBD, объявлять не обязательно, так как редакторы FBD и Quick LD автоматически объявляют используемые блоки.
ПеременныеПеременные сортируются в соответствии со своей областью действия и типом. Только переменные с одинаковыми областями действия и типами могут быть введены в одну решётку ввода. Вот основные типы области видимости переменных :
ГЛОБАЛЬНАЯ......... может быть использована любой программой текущего проекта ЛОКАЛЬНАЯ........... может быть использована только одной программойНиже приведены основные типы переменных :
БУЛЕВСКАЯ............ true/false двоичные величины АНАЛОГ................... действительные или целые величины ТАЙМЕР................... временные величины СООБЩЕНИЕ........... символьные строкиПеременная идентифицируется именем, комментарием, атрибутами, сетевым адресом и другими специальными полями. Ниже приведены основные атрибуты переменных :
ВНУТРЕННЯЯ.... переменная в памяти (внутренняя)
ВХОД................. переменная, связанная с устройством ввода
ВЫХОД.............. переменная, связанная с устройством вывода
КОНСТАНТА..... внутренняя переменная только для чтения (с начальным значением)
Замечание:
Таймеры всегда являются внутренними переменными. Переменные ввода и вывода
всегда имеют глобальную область видимости.
МакросыМакросы - это синонимы, которые могут быть использованы в любом языке для замены текстовых строк. Заменяемый текст может быть именем переменной, константой или сложным выражением.
Макросы различаются в соответствии с их областью видимости. Только макросы одного типа и области действия могут быть вставлены в одинаковую сетку редактирования. Вот основные виды области действия макросов :
Цель операции соединения В/В - это установление логической связи между переменными В/В приложения и физическими каналами плат, существующими на целевой машине. Для создания этой связи пользователь должен определить и установить все платы целевой машины, и поместить переменные В/В на соответствующие каналы В/В.
Список слева показывает шасси целевой машины с разъемами плат. Разъем может быть пуст, или использован одной платой В/В или более сложным оборудованием. Каждый разъем определяется порядковым номером. Шасси может содержать до 255 плат. Список справа показывает параметры плат и переменные, подключенные к выбранной плате. Плата может иметь до 128
каналов В/В.
ИконкиИконки, отображенные на передней грани, показывают тип и атрибуты переменных, которые могут быть подключены к каналам платы. Система ISaGRAF не позволяет подключение переменных разного типа на той же самой плате. Ниже значение используемых иконок:
....................... тип логическое ....................... тип целое/вещественное ....................... тип сообщение ....................... входы - нет подключенных каналов ....................... выходы - нет подключенных каналов ....................... входы - минимум один канал подключен ....................... выходы - минимум один канал подключенНиже показаны иконки, используемые для отображения типа устройств В/В, установленного в разъем:
....................... комплексное оборудование В/В ....................... действительное оборудование В/В ....................... виртуальное оборудование В/ВНиже показаны иконки, используемые для отображения параметра или канала:
.................... параметр платы ....................... свободный канал ....................... занятый канал Передвижение плат в спискеИспользуйте эти кнопки в панели инструментов или “Редактор / Передвинуть вверх/вниз” в меню команд для передвижения выбранной платы В/В на одну линию вверх или вниз в главном списке. Команда “Редактор / Вставить слот” устанавливает пустой разъем в текущей позиции.
Симулятор ядра ISaGRAF запускается вместе с отладчиком, когда выполняется команда “Симулировать” из меню “Отладка” в окне Управления Программ. Симулятор ядра - это законченная целевая система ISaGRAF, поддерживающая стандартные свойства ISaGRAF и все функции “C”, и блоки функций стандартной библиотеки, поставляемой CJ International. Платы В/В графически симулируются в окне. Любой тип платы В/В может быть симулирован. Платы, определенные как “Виртуальные платы” во время соединения В/В, также появляются в окне симуляции.
“Средства диагностики” - это подмножество средств отладчика ISaGRAF. Оно позволяет конечному пользователю работать с предопределенным набором переменных, для того, чтобы исследовать и управлять процессом. Отладчик ISaGRAF - очень мощное средство, которое включает функции высокого уровня. Средства Диагностики обеспечивают безопасный путь управления целевым приложением для последних запущенных операций или обслуживания. Средства Диагностики ISaGRAF запускаются непосредственно из группы ISaGRAF в Менеджере Программ двойным щелчком на следующей иконке:
Список существующих проектов отображается в окне диалога. Это позволяет пользователю запустить лимитированную версию отладчика ISaGRAF на существующем, уже загруженном приложении ISaGRAF. Нажатие кнопки “ПРИНЯТЬ” запускает лимитированный отладчик на выбранном проекте. Нажатие кнопки “Отказ” закрывает окно диалога. Команда “Установка” используется для установки связи между ISaGRAF Workbench и целевым PLC. Обратитесь к главе “Управление программами” этого руководства для получения большей информации по этой команде.
Замечание: Диагностические Средства ISaGRAF (лимитированный отладчик) не может быть использован для загрузки, остановки или обновления приложения, запущенного на целевом PLC. Если проект, выбранный в окне диалога Диагностических Средств, не тот же самый, что установлен и запущен на PLC, то ни одна операция не может быть выполнена.
Когда лимитированный отладчик ISaGRAF запущен и правильно подключен к целевому приложению, то доступны следующие команды:
· Просмотр списков переменных
· Просмотр графических документов с помощью Прожектора
Команды меню «Создать» используются для генерации кода и для ввода опций и дополнительных данных, используемых при создании кода приложения. Обратитесь к разделу «Использование генератора кода» этого Руководства за более подробной информацией об этих средствах.
Создание кода приложенияКоманда «Создать» запускает генерацию кода проекта. Опции для цели генерации должны быть корректно установлены до запуска команды. До генерации целевого кода любая непроверенная программа проверяется ля выявления синтаксических ошибок. ISaGRAF содержит последовательный компилятор, который не перекомпилирует программы, скомпилированные ранее.
Проверка выбранных программКоманда «Проверить» позволяет пользователю проверить синтаксис программ, выделенных в списке. Если при проверке ошибок не обнаружено, то она не будет перепроверяться до тех пор, пока её содержание не будет изменено.
Имитация измененияКоманда «Коснуться» имитирует изменение каждой программы, так что все они будут компилироваться снова при последующей генерации кода.
Рабочие опции приложенияЭта команда открывает окно диалога, в котором вводятся главные параметры работающего приложения. Они включают синхронизацию циклов, управление ошибками, начальный режим и аппаратную реализацию поддерживаемых переменных. Обратитесь к разделу «Использование генератора кода» этого документа за более подробной информацией об этой команде.
История измененийЭта команда используется для установки опций Генератора Кода ISaGRAF, для создания и оптимизации кода. Обратитесь к разделу «Использование генератора кода» этого документа за более подробной информацией об этой команде.
История измененийЭта команда открывает окно диалога, в котором изображена история изменений проекта. Обратитесь к разделу «Управление Проектами» этого документа за более подробным описанием этой команды.
Определение ресурсов«Ресурсы» - это данные, определённые пользователем ( например, файл ), которые должны быть объединены с целевым кодом, так что они могут быть загружены вместе с ним. Обратитесь к разделу «Использование генератора кода» этого документа за более подробным описанием файла определения ресурсов.
Этот раздел описывает возможности и команды текстового редактора ISaGRAF, особенно команды, использующиеся для ввода исходных текстов программ ST и IL.
Утилита архивирования ISaGRAF позволяет пользователю сохранять проекты ISaGRAF и библиотеки на дискетах или в каталоге дублирования. Менеджер Архивов ISaGRAF – это диалог, который может быть вызван из Менеджера Проектов или Менеджера Библиотек ISaGRAF.
Предполагается, что для создания и содержания надежных архивов, будут использоваться следующие положения::· Записывайте имя и описание сохраненного объекта на наклейку диска
· Не сохраняйте проекты и библиотеки на одной и той же дискете
· Не сохраняйте разные проекты на одной и той же дискете
Свойство “Изменение по ходу работы” (“On line modification”) позволяет пользователю изменять приложение во время работы процесса. Это иногда необходимо для химических процессов, где любое прерывание может подвергнуть опасности продукцию или безопасность. Этой функцией следует пользоваться очень осторожно. ISaGRAF может быть не в состоянии распознать все возможные конфликты, созданные операциями, определенными пользователем, при этих изменениях по ходу работы.
Последовательности кодовТак как ISaGRAF предоставляет много возможностей для доступа к переменным, программам или платам В/В из отладчика, функция “Изменение по ходу работы”, описанная здесь, применяется только для изменения последовательности кодов. Последовательность кодов - это полный набор ST, IL, LD или FBD инструкций, выполненных в строке. В программе “начало цикла” (“beginning of cycle”) или “конец цикла” (“end of cycle”), последовательность кодов - это полный список инструкций, написанных в программе. В SFC программе последовательность кодов - это Уровень 2 программирования одного шага или перехода. “Изменение по ходу работы” состоит из замены одной или более последовательности кодов, без остановки цикла выполнения PLC. Так как управление маркерами SFC очень критично, то невозможно изменение структуры SFC, добавление, перенумерация или удаление шага, перехода или SFC программы.
ПеременныеТак как база данных переменных - это очень критическая часть приложения, она может быть доступна в любое время другими процессами (на многозадачной PLC). Также возможно изменение значения переменных из отладчика. Следовательно, ISaGRAF не позволяет пользователю добавлять, переименовать или удалять переменные по ходу работы приложения. В любом случае возможно изменять способ использования переменной в приложении. Также возможно резервировать “неиспользуемые” внутренние или В/В переменные в первой версии приложения, так что будущие изменения могут использовать их.
В базе данных ISaGRAF существуют различные стили переменных.
Ограничения распространяются на всех:
- Объявленные переменные
Переменные однажды объявленные в словаре ISaGRAF. Они не могут быть изменены или переименованы по ходу работы. Рекомендуется объявлять и инициализировать в приложении некоторые дополнительные переменные даже если они не используются сейчас. Такие дополнительные переменные позволят в дальнейшем модифицировать приложения без изменения контрольной суммы.
- Экземпляры функциональных блоков
Каждый экземпляр функционального блока на "C" или IEC соответствует данным сохраненным в базе данных реального времени ISaGRAF. Когда экземпляр функционального блока добавляется или удаляется, Модификация по Ходу Работы становится невозможной. Так, что лучше работать в ST с экземплярами FB объявленными в словаре, чем добавлять блоки (которые будут соответствовать новым автоматически объявленным экземплярам) в Quick LD или FBD диаграммах. Также, любая модификация в определении функционального блока в библиотеке ISaGRAF приведет к невозможности изменений по ходу работы.
- Шаги
Каждый шаг SFC соответствует куску данных, где хранятся динамические атрибуты шага SFC (его время активности и флаг). Добавление или удаление шагов SFC изменяет базу данных и запрещает изменение по ходу работы.
- Скрытые переменные размещенные компилятором
Компилятор ISaGRAF генерирует “скрытые", временные переменные чтобы разрешить сложные выражения. В некоторых случаях, изменение приложения может привести к отличному набору невидимых временных переменных, и это ведет к невозможности изменения по ходу работы. Чтобы избежать этой ситуации, вы можете добавить следующие вхождения в файл ISA.INI, для того чтобы заставить размещать минимальное количество временных переменных для каждой программы, даже если они не используются для компиляции первой версии приложения. Значения даны для примера:
[DEBUG]
MNTVboo=8 ; для булевских
MNTVana=4 ; для integer и real
MNTVtmr=4 ; для timer
MNTVmsg=2 ; для message
Когда такие установки написаны в ISA.INI, компилятор выводит предупреждение если новая компиляция приложения ведет к к большему количеству размещенных временных переменных.
Язык функциональных блочных диаграмм (FBD) - графический язык. Он позволяет программисту строить сложные процедуры, используя существующие функции из библиотеки ISaGRAF и
связывая их вместе при помощи графических диаграмм.
Список инструкций или IL - это язык низкого уровня. Инструкции всегда относятся к текущему результату (или IL регистру). Оператор определяет операцию, которая должна быть выполнена с текущим результатом и операндом. Результат операции снова запоминается в текущем результате.
Программа может быть описана при помощи одного из следующих графических или текстовых языков:
Язык последовательных функциональных схем (SFC) для программирования высокого уровня
Язык Потоковых Диаграмм (FC) для программирования высокого уровня
Язык функциональных блочных диаграмм (FBD) для сложных циклических операций
Язык релейных диаграмм (LD) только для булевских операций
Язык структурированный текст (ST) для любых циклических операций
Язык инструкций (IL) для операций низкого уровня
Одна и та же программа не может смешивать несколько языков. Язык программирования программы выбирается в момент создания программы и не может быть изменен в последствии. Исключением являются языки FBD и LD, которые можно комбинировать внутри одной программы.
Язык последовательных функциональных схем (SFC) - это графический язык, который используется для описания последовательных операций. Процесс представляется в виде набора определенных шагов, связанных переходами. К каждому переходу прикреплено логическое условие. Действия внутри шагов описаны более детально при помощи других языков (ST, IL, LD, FBD).
Потоковые Диаграммы
(FC) – это графический язык, использующийся для описания последовательных операций. Потоковая Диаграмма состоит из Действий и Тестов. Между Действиями и Тестами находятся ориентированные связи представляющие потоки данных. Множественные связи используются для представления расхождений и схождений. Действия и тесты могут быть описаны с помощью языков ST, LD or IL. Функции и Функциональные блоки любого языка (кроме SFC) могут быть вызваны из действий и тестов. Программа Потоковых Диаграмм может вызывать другие программы Потоковых Диаграмм. Вызываемая программа FC – это подпрограмма
вызывающей программы FC.
Язык релейных диаграмм - это графическое представление логических уравнений, комбинирующее контакты (входы) и витки (выходы). Язык LD позволяет описывать работу с булевыми данными помещая графические символы в схему программы. Графические символы LD организованы внутри схемы так же, как электрическая схема. Справа и слева LD диаграмма должна соединяться с вертикальными силовыми рельсами. Основные компоненты LD диаграммы.
---------------- Левая вертикальная силовая шина ---------------- Правая вертикальная силовая шина ---------------- Горизонтальная линия связи ---------------- Вертикальная линия связи ---------------- Множественные линии соединения (все соединенные вместе) ---------------- Контакт связанный с переменной ---------------- Виток связанный с переменной