ISaGRAF. Version 3.4

         

Символы приложения


К каждому объекту приложения ISaGRAF ссылаются по имени (введенному во время объявления переменной           ) и по внутреннему виртуальному адресу, вычисленному генератором кодов. Виртуальный адрес переменной - это не ее сетевой адрес, введенный во время объявления переменной. Виртуальные адреса используются для связной работы, и специальных “С” приложений, использующих опцию IO development tool. Когда генератор кодов ISaGRAF запущен, он создает ASCII файл с логическим соответствием между именами и виртуальными адресами для всех объектов (переменные, программы, шаги…) проекта. Этот файл может быть легко запрошен из любого приложения пользователя для получения информации о статической базе данных ISaGRAF. Файл называется “APPLI.TST” и располагается в каталоге проекта ISaGRAF: “\ISAWIN\APL\proname” (proname - имя проекта). Этот раздел описывает детальный формат файла “APPLI.TST”. Основные нотации, используемые для последующего описания, показаны ниже:

VA                 виртуальный адрес

ATTR            атрибут переменной

USR               “С” функция

Возможные значения для атрибутов переменной показаны ниже. Такие значения содержатся в полях “атрибутов” (“attributes”):

+X                  внутренняя переменная

+C                 внутренняя переменная только на чтение

+I                   входная переменная

+O                 выходная переменная

Все числа, исключая виртуальные адреса, выражаются как десятичные целые. Виртуальные адреса (VA) выражаются как шестнадцатеричные числа их 4 цифр, и предваряются символом “!”. Например:

123                это десятичное значение

!А003             это шестнадцатеричный виртуальный адрес

Основная структура файла “APPLI.TST” показана ниже. Файл структурирован как список блоков. Блок - это список записей. Каждая запись описывается на одной строке текста. Каждый блок начинается с заголовка, помещенного на одной строке текста.



начало блока

описание блока

конец блока

Основной синтаксис одного блока показан ниже:


@ <block_name> <arguments>

#record...

#record...

...

Структура первого блока, содержащего главную информацию о приложении, показана ниже:

@ISA_SYMBOLS,<appli_crc>

#NAME,<appli_name>,<version>

#DATE,<creation_date>

#SIZE,G=<nbprg>,S=<nbstep>,T=<nbtra>,L=0,P=<nbpro>,V=<nbvar>

#COMMENT,cj international

appli_crc........... контрольная сумма символов приложения

appli_name...... имя приложения

version............. номер версии ISaGRAF

creation_date.. дата генерации приложения

nbprg................ число программ

nbstep.............. число шагов SFC

nbtra.................. число транзакций SFC

nbpro................ число используемых функций "C"

nbvar................. общее число переменных

Структура последнего блока, который указывает конец файла, показана ниже:

@END_SYMBOLS

Структура блока, используемого для описания программ приложения, показана ниже:

@PROGRAMS,<nbprg>

#<va>,<name>

#...

nbprg................ число программ, определенных в этом блоке

va....................... виртуальный адрес программы

name................. имя программы

Структура блока, используемого для описания шагов SFC приложения, показана ниже. Заметьте, здесь один виртуальный шаг, определенный для каждой не SFC программы:

@STEPS,<nbsteps>

#<va>,<name>,<father>

#...

nbsteps............ число шагов, определенных в этом блоке

va....................... виртуальный адрес шага

name................. имя шага

father................ виртуальный адрес родителя

Структура блока, используемого для описания SFC транзакций приложения, показана ниже:

@TRANSITIONS,<nbtrans>

#<va>,<name>,<father>

#...

nbtrans............. число транзакций, определенных в этом блоке

va....................... виртуальный адрес транзакции

name................. имя транзакции

father................


виртуальный адрес родителя

Структура блока, используемого для описания логических переменных приложения, показана ниже:

@BOOLEANS,<nb_boo>

#<va>,<name>,<attr>,<program>,<eq_false>,<eq_true>

#...

и если число переменных превосходит 4095:

X#(1.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

 

nb_boo.............. число переменных в этом блоке

va....................... виртуальный адрес переменной

varno................. диапазон адреса

name................. имя переменной

attr..................... атрибут переменной

program........... виртуальный адрес программы родителя

........................... или “!0000” для глобальной переменной

eq_false............ строка, используемая для значения ложь (false)

eq_true............. строка, используемая для значения истина (true)

Структура блока, используемого для описания аналоговых переменных приложения, показана ниже:

@ANALOGS,<nb_ana>

#<va>,<name>,<attr>,<program>,<format>,<unit>

#...

и если число переменных превосходит 4095:

X#(2.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

nb_ana.............. число переменных в этом блоке

va....................... виртуальный адрес переменной

varno................. диапазон адреса

name................. имя переменной

attr..................... атрибут переменной

program........... виртуальный адрес программы родителя

........................... или “!0000” для глобальной переменной

format............... = "I" для целой переменной

........................... = "F" для вещественной переменной

unit.................... строка блока

Структура блока, используемого для описания переменных таймера приложения, показана ниже:

@TIMERS,<nb_tmr>

#<va>,<name>,<attr>,<program>

#...

и если число переменных превосходит 4095:



X#(3.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

nb_tmr.............. количество переменных в этом блоке

va....................... виртуальный адрес переменной

varno................. диапазон адреса

name................. имя переменной

attr..................... атрибут переменной (всегда +Х: внутренняя)

program........... виртуальный адрес программы родителя

........................... или “!0000” для глобальной переменной

Структура блока, используемого для описания переменных сообщения приложения, показана ниже:

@MESSAGES,<nb_msg>

#<va>,<name>,<attr>,<program>,< max_len>

#...

и если число переменных превосходит 4095:

X#(4.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

nb_msg............ число переменных в этом блоке

va....................... виртуальный адрес переменной

varno................. диапазон адреса

name................. имя переменной

attr..................... атрибут переменной

program........... виртуальный адрес программы родителя

........................... или “!0000” для глобальной переменной

max_len............ максимальная длина (объявленный диапазон)

Структура блока, используемого для описания “С” функций, примененных в приложении, показана ниже:

@USP,<nb_usp>

#<va>,<name>

#...

nb_usp.............. число С функций в этом блоке

va....................... виртуальный адрес С функции

name................. имя С функции

Структура блока, используемого для описания экземпляров функционального блока “С”, примененных в приложении, показана ниже:

@FBINSTANCES,<nb_fb>

#<va>,<inst_name>,<fb_name>

#...

nb_fb................. число экземпляров функционального блока “С” в этом   блоке

va....................... виртуальный адрес экземпляра функционального блока                “С”

inst_name........ имя экземпляра функционального блока “С”

fb_name........... имя ссылки функционального блока “С”


Содержание раздела