ISaGRAF. Version 3.4

         

F_CLOSE


Аргументы:

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

               



F_EOF


Аргументы:

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



F_ROPEN


Аргументы:

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



F_TRIG


Аргументы:

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



F_WOPEN


Аргументы:

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



FA_READ


Аргументы:

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


яяяяяяяяяяяяяяяяяяяяяяяя ANA

яяяяяяяяяяяяяяяяяяяяяяяя ADDяяяяяяяяяя nb_written

яяяяяяяяяяяяяяяяяяяяяяяя LDяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя (* ЇЁб вм delta_tim *)

яяяяяяяяяяяяяяяяяяяяяяяя ANAяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя (* ЇаҐўа вЁвм ў integer *)

яяяяяяяяяяяяяяяяяяяяяяяя STяяяяяяяяяяяяя ana_delta_tim

яяяяяяяяяяяяяяяяяяяяяяяя LD яяяяяяяяяяяя file_id

яяяяяяяяяяяяяяяяяяяяяяяя FA_WRITEя ana_delta_timяяяяяяяяяяя

яяяяяяяяяяяяяяяяяяяяяяяя ANA

яяяяяяяяяяяяяяяяяяяяяяяя ADDяяяяяяяяяя nb_written

яяяяяяяяяяяяяяяяяяяяяяяя STяяяяяяяяяяяяя nb_written

яяяяяяяяяяяяяяяяяяяяяяяя F_CLOSE

яяяяяяяяяяяяяяяяяяяяяяяя STяяяяяяяяяяяяя ok

яяяяяяяяяяяяяяяяяяяяяяяя LDяяяяяяяяяяяяя nb_written

яяяяяяяяяяяяяяяяяяяяяяяя EQяяяяяяяяяяяяя 4

яяяяяяяяяяяяяяяяяяяяяяяя RETCяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя (* ў®§ўа в Ґб«Ё а ў­® 4 *)

яяяяяяяяяяяяяяяяяяяяяяяя LDяяяяяяяяяяяяя ERR_FILEяяя (* Ё­ зҐ ®иЁЎЄ  *)

яяяяяяяяяяяяяяяяяяяяяяяя STяяяяяяяяяяяяя ERROR


FA_WRITE


Аргументы:

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..................... оборудование В/В



FIND


Аргументы:

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



FM_READ


Аргументы:

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



FM_WRITE


Аргументы:

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



Функции и блоки, написанные на языке IEC


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.

- Если в функциональном блоке требуется виток, то прежде чем замкнуть виток, нужно использовать локальную переменную. Например:

Это не будет работать:                                   Это работает:

                                      



Gain


Аргументы:

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


Значение:     Безусловный переход на метку

Синтаксис:  Goto <labelname>

Аргументы: <labelname>

имя метки определенное в скрипте

Замечание:  Разрешены переходы назад. В случае бесконечного цикла, выполнение скрипта автоматически прерывается на каждом витке, для того чтобы сохранить выполнение циклов ISaGRAF.

Пример:        Print 'Before Jump'

         Goto MyLabel

         Print 'Within Jump' (*никогда не выполняется *)

         MyLabel:

         Print 'After Jump'

Выход:    Before Jump

         After Jump



GSnnn(progname)x


Предупреждение:  номер шага другой программы, при использовании такого синтаксиса не относится к стандарту 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 программа, которая должна быть наследником по отношению к программе в которой написан оператор

                                     


Возвращаемое значение:                (нет)

Наследники программы- наследника не запускаются автоматически оператором GSTART.

Замечание: Так как оператор GSTART не относится к стандарту IEC 1131-3, для запуска программы-наследника лучше использовать признак S:

                Child_name(S);

Пример использование GSTART и GKILL:

(* Последовательность 'Sfather' *)    (* Последовательность 'Schild' *)



        GKILL оператор

Имя:                              GKILL

Значение:                   убивает SFC программу, уничтожая маркер на всех ее текущих шагах.

                                     

Синтаксис:                 GKILL (<child_program> );

Операнды:                 SFC программа, которая должна быть наследником по отношению к программе, в которой написан оператор

                                     

Возвращаемое значение:                (нет)

Наследники программы-наследника убиваются автоматически оператором GKILL.

Замечание: Так как оператор GKILL не относится к стандарту IEC 1131-3, для того чтобы убить программу-наследник лучше использовать признак R:

                Child_name(R);

Пример: см. GSTART (функция описана выше)

        GFREEZE оператор

Имя:                              GFREEZE

Значение:                   удаляет все существующие маркеры  программы-наследника и запоминает их положение так, что программа может быть перезапущена с помощью оператора GRST.

                                     

Синтаксис:                 GFREEZE (<child_program> );

Операнды:                 SFC программа, которая должна быть наследником по отношению к программе в которой написан оператор

                                     

Возвращаемое значение:                (нет)

Наследники программы-наследника замораживаются автоматически вместе с указанной программой.

Замечание: Оператор GFREEZE не относится к стандарту IEC 1131-3.

Пример:



        GRST оператор

Имя:                              GRST

Значение:                   перезапускает программу-наследник и замороженную оператором GFREEZE, все маркеры, уничтоженные оператором GFREEZE восстанавливаются.



Синтаксис:                 GRST (<child_program> );

Операнды:                 SFC программа, которая должна быть наследником по отношению к программе в которой написан оператор

                                     

Возвращаемое значение:                (нет)

Наследники программы-наследника запускаются автоматически вместе с указанной программой.

Замечание: Оператор GRST не относится к стандарту IEC 1131-3.

Пример: см. GFREZE (функция описана выше)

        GSTATUS оператор

Имя:                              GSTATUS

Значение:                   возвращает текущее состояние SFC программы.

Синтаксис:                 <ana_var> := GSTATUS (<child_program> );

Операнды:                 SFC программа, которая должна быть наследником по отношению к программе в которой написан оператор

                                     

Возвращаемое значение:                0 = программа неактивна (убита)

                                                               1 = программа активна (запущена)

                                                               2 = программа заморожена

Замечание: Оператор GSTATUS не относится к стандарту IEC 1131-3.

Пример:




HYSTER


Аргументы:

XIN                       REAL                   любое аналоговое значение

XIN2                     REAL                   любое аналоговое значение

EPS                      REAL                   величина гистерезиса (должна быть больше нуля)

Q                          BOO                    TRUE если XIN1 перешел через XIN2 + EPS, но

                                                        Еще не ниже XIN2 - EPS

Описание:

Гистерезис действительного значения по верхнему пределу.

Временная диаграмма:



Иерархия программы SFC


Система ISaGRAF допускает описание вертикальной структуры программы SFC. SFC программы образуют иерархическое дерево. Каждая SFC программа может управлять (запускать, убивать) другие SFC программы. Такие программы называются наследниками SFC программы управляющей ими. SFC программы связаны в основное иерархическое дерево, используя связь “родитель-наследник”:

Основные правила иерархической структуры:

- SFC программы, которые не имеют родителей, называются ”основными” SFC программами

- Основные SFC программы активизируются системой в момент запуска приложения

- Программа может иметь несколько программ-наследников

- Наследник не может иметь более одного родителя

- Программа-наследник управляется только своим родителем

- Программа не может управлять наследником своего наследника

Основные действия, которые SFC программа-родитель может выполнять для управления программой-наследником :

Start                        Запустить             (GSTART) Запускает дочернюю программу : активизирует каждый ее начальный шаг. Наследники этой программы не запускаются автоматически.

Kill                           Убить     (GKILL) Убивает дочернюю программу : дезактивируя каждый ее активный шаг. Все наследники этой программы также убиваются.

Freeze                    (Заморозить         (GFREEZE) Дезактивирует каждый активный шаг программы, и запоминает их так, чтобы программа могла быть  перезапущена. Все наследники этой программы также замораживаются.

Restart                    Перезапустить     (GRST) Перезапускает замороженную дочернюю программу активизируя все ее зависшие шаги. Наследники этой  программы не перезапускаются автоматически.



If Goto


Значение:     Условный переход на метку. Условие – это либо сравнение двух переменных 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 ;

Вот результат импульсного действия:

Пример:



INSERT


Аргументы:

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 и настройку компьютера для разработки приложений.

        Программные и аппаратные требования

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 - это «/ISAWIN». Это позволяет легко установить ISaGRAF для Windows на тот же диск, на котором находился ISaGRAF для MS-DOS. Обратитесь к разделу «Директории ISaGRAF» в секции «Улучшенная техника» для более подробной информации о дисковой архитектуре ISaGRAF. Если ISaGRAF был успешно установлен, то следующая группа будет добавлена в Окно Менеджера Программ:



Вот главные пиктограммы ISaGRAF:

Projects:........... Управление проектом

Libraries:.......... Управление библиотекой

Book:................. Справочная система ISaGRAF

Diagnosis:........ Система диагностики для пользователя

Read Me:........... Информация о новой версии ISaGRAF

Report:.............. Стандартный отчёт об ошибках

               

                В случае если Вы столкнулись с проблемой, используйте стандартную форму отчёта об ошибках. Откройте её, заполните запросы и  при помощи команды меню File/Save As сохраните с указанием имени файла. Затем пошлите этот файл CJ International по факсу или по электронной почте.

        Обновление системных файлов

После завершения установки, необходимо обновить файл CONFIG.SYS до перезагрузки компьютера. Имя директории ISaGRAF не обязательно вставлять в переменную PATH.

ISaGRAF не использует никаких системных переменных DOS. Однако, следующие строки можно добавить в файл CONFIG.SYS:

                               files=20

                               buffers=20

Инструментарий ISaGRAF использует последовательный порт для сообщения с целевой системой PLC. По умолчанию последовательный порт для ISaGRAF - COM-1. Если мышь также использует последовательный порт, выберите COM-2 для мыши. Таким образом, установки по умолчанию будут верны для любых новых программ ISaGRAF.

После изменения файла CONFIG.SYS для вступления изменений в силу необходимо перезагрузить компьютер.



Þ            Важная информация для пользователей Windows NT:

При использовании Системы разработки  ISaGRAF для Windows NT 3.51 или 4.00 необходимо вставить следующие строки в раздел [WS001] файла ISA.ini в директории \ISAWIN\EXE:

[WS001]

NT=1

Isa=C:\ISAWIN

IsaExe=C:\ISAWIN\EXE

IsaApl=C:\ISAWIN\APL1

IsaTmp=C:\ISAWIN\TMP

Это совершенно необходимо для связи по стандарту RS.

        Защитный Ключ

Аппаратный защитный ключ предохраняет программное обеспечение ISaGRAF от несанкционированного копирования. Однако, большинство функций ISaGRAF доступно, даже если ключ не установлен.  Помимо прочего защитный ключ определяет  версию Системы разработки ISaGRAF и максимальный размер разрабатываемого приложения. Если ключ не установлен или установлен неправильно некоторые функции ISaGRAF не будут работать. Это нормальное поведение. Для того чтобы убедиться, что ключ правильно установлен, выберите раздел «Информация» меню «Помощь» в любом окне ISaGRAF. Доступные опции Системы разработки ISaGRAF будут изображены.

Ключ может быть подключён к любому параллельному порту компьютера. Если в компьютере более одного параллельного порта, то предпочтительнее подключить ключ ISaGRAF и принтер к разным портам. Для некоторых конфигураций компьютер/принтер ключ может не распознаваться, если вывод подключён к независимому (автономному) принтеру. В этом случае отключите принтер, или запустите его в реальном режиме, или перезапустите ISaGRAF.

Следует принять во внимание, что никакого ключа не нужно для ISaGRAF-32.

Þ            Важная информация для пользователей Windows NT:

В системах Windows NT должен быть установлен драйвер Sentinel/Rainbow™  для того, чтобы защитный ключ был различим. Прилагается отдельная дискета.


Инструменты


Команды меню "Инструменты" используются для запуска приложений ISaGRAF. Команда "Инструменты / Архив / Проекты" запускает менеджер архивов ISaGRAF, чтобы сохранять или восстанавливать проекты. Команда "Инструменты / Архив / Общие данные " используется для того, чтобы сохранять или восстанавливать файлы, которые используют все проекты (такие как общие макроопределения).

Команда "Инструменты / Библиотеки" запускает менеджер библиотек ISaGRAF в отдельном окне.

Команда "Инструменты / Импортировать программу IL " может быть использована для импортирования проекта описанного как отдельная программа IL в текстовом файле, согласно формату файла PLC Open.



INTEGRA


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.


·       Меню “Messages”

Меню “Messages” служит для управления выводом. Оно состоит из двух пунктов:

Acknowledge останавливает мигание красным в случае сообщений и тревог.

Clear полностью очищает окно вывода.

Пиктограмма целевой задачи ISaGRAF NT

Пиктограмма отражает состояние целевой задачи:

- приложение работает - пиктограмма вращается

- нет приложения (или оно остановлено) - пиктограмма останавливается

- в окне вывода имеются ошибки или сообщения - центр пиктограммы мигает красным. Чтобы остановить мигание нужно выбрать Acknowledge из меню Messages или Clear из того же меню (но помните, что этот пункт полностью очищает окно). Дальнейшую информацию по ошибкам можно найти главе об обработке ошибок и выводе сообщений.

Различные состояния сведены в следующую таблицу:

 

Нет ошибок

Ошибки или сообщения

(середина красная)

Запущенные приложения





Нет приложений





        Кнопка Start/Stop целевой задачи ISaGRAF NT

Эта кнопка полностью аналогична такой же кнопке в отладчике. Текст на кнопке отражает текущее состояние приложения. Если приложение работает, то отображается текст Stop. Если приложение остановлено или отсутствует, то отображается текст Start (Заметьте, что если кнопка Start нажата в отсутствие приложения, ее состояние сменится на Stop и сразу же вернется на Start).

        Целевая задача ISaGRAF NT, общая информация

С помощью команды View/Information вызывается следующее диалоговое окно, которое дает общую информацию о конфигурации целевой задачи и работающего приложения:



Имеется три раздела:

a)    Общие установки

n      Номер подчиненного

n      Конфигурация связи (если связь по Ethernet, то в дополнение номеру порта будет отображаться список возможных адресов IP)

b)    Установки DDE

n      продолжительность цикла оповещения

n      имя сервера DDE

n      имена тем и элементов DDE.


Это общая информация, она не отражает реальные значения. Фактически поля между < > должны быть заменены реальными значениями.

c)    Приложение

n      статус приложения, который представляет собой имя приложения или текст No application в отсутствие работающего приложения

n      режим работы приложения, который указывает, было ли приложение запущено с помощью программного процессора. В этом случае графа содержит строку “Software processed”. Если приложение получено с помощью компилятора C в графе появляется строка “C compiled”. Если нет работающего приложения - в графе стоит строка “No application”.

n      Размер кода в байтах. Если режим “C compiled”, то значение поля есть 0.

n      Размер данных в байтах. Это суммарный размер сегмента данных исполняемого модуля и базы данных переменных.

        Имитация возможных плат целевой задачи ISaGRAF NT

Когда выбрана опция Simulate I/O при следующем старте приложения появляется следующее окно:



В зависимости от конфигурации соединений В/В Вашего приложения появится большее или меньшее число плат и большее или меньшее число переменных. Пара чисел “s:b” вверху колонки, соответствующей каждой плате указывает на идентификатор слота (s) и идентификатор платы (b). Нумерация начинается с 0, и этот порядок изменить невозможно.

Окно “32bits Boards Simulator” управляется кнопкой Start/Stop. Так, если имеется приложение с возможными платами и установлен флаг “Simulate I/O”, это окно появляется. При нажатии кнопки Stop - оно исчезнет. Это окно работает вместе с вызовами В/В.

Меню “Options” предлагает два пункта

Variable names показывает имена переменных в том (и только в том) случае, если предварительно была загружена таблица символов.

Hexadecimal values показывает числа в шестнадцатеричном формате вместо десятеричного по умолчанию.

Имена переменных будут выглядеть следующим образом:




ISaGRAF в многозадачном режиме: isaker, isatst, isanet


Для того чтобы улучшить время реакции целевой задачи ISaGRAF, целевая задача разделена на два процесса: программа связи (isatst или isanet) и прикладная целевая задача (isaker).

Такая архитектура более гибкая. Она позволяет запускать коммуникационных несколько задач с одной и той же целевой задачей или до 4 целевых задач с одной и той же коммуникационной задачей.

Это также облегчает интеграцию различных процессов (например, визуализацию и отладку) в рамках одного приложения или связь через один и тот же порт с 4 приложениями.

Целевая и коммуникационная задача не зависят друг от друга. Единственное требование состоит в том, чтобы задача isaker была запущена первой, так чтобы она смогла инициализировать систему и задача связи смогла связаться с ней. Задача ISaGRAF не нарушает работу фоновых процессов и программ обработки прерываний.



ISaGRAF в многозадачном режиме: isakerse, isakeret


Для того, чтобы уменьшить время реакции целевой задачи 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().


uchar isa_register_slave

(

uchar slave   /* Номер подчиненного */

)

Описание:

Регистрирует новый подчиненный в системе с несколькими целевыми задачами.

Возвращаемое значение:

0 в случае успеха, BAD_RET - в случае ошибок.

        Регистрация коммуникационных задач

Коммуникационная задача ISaGRAF характеризуется логическим номером. Он может принимать значения от 1 до 255. Он нужен для того, чтобы различать целевые задачи друг от друга когда запущено несколько задач. Поэтому, прежде чем запустить коммуникационную задачу ISaGRAF ее нужно зарегистрировать с помощью вызова isa_register_com().

uchar isa_register_com

(

uchar com_id       /* Идентификатор комм. задачи */

)

Описание:

Регистрирует новый подчиненный в системе с несколькими целевыми задачами.

Возвращаемое значение:

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.

При необходимости эта переменная может иметь различные значения для различных целевых задач. Дальнейшие детали о файлах резервных копий содержатся в разделе Отличительные особенности / Резервирование приложения.

        Управление окончанием цикла

Переменная TSK_NBTCKSCHED (uint32) имеет значение задержки в тиках, которую целевая задача ISaGRAF использует в конце цикла. Значение по умолчанию - 0 (один и тот же приоритет у всех задач). При необходимости для каждой целевой задачи это значение может быть своим.



Дальнейшие детали содержатся в разделе Отличительные особенности / Продолжительность цикла.

           Запуск задачи ядра ISaGRAF

После того как установлены переменные среды, на заключительном шаге с помощью вызова isa_main запускается задача ядра ISaGRAF:

uchar isa_main

(

uchar slave,        /* Номер подчиненного*/

char *com            /* НЕ ИСПОЛЬЗУЕТСЯ, м.б. пустой строкой*/

)

Описание:

Стартует задачу ядра ISaGRAF.

Возвращаемое значение:

Возвращает ненулевое значение в случае возникновения ошибок.

Номер подчиненного - тот же самый, который обсуждался в разделе о регистрации подчиненного. Может быть запущено несколько целевых задач при условии, что они имеют различные номера подчиненных.

        Запуск коммуникационной задачи ISaGRAF

После того как установлены переменные среды, на заключительном шаге с помощью вызова tst_main_ex запускается коммуникационная задача ISaGRAF:

uchar tst_main_ex

(

char *com,           /* Имя коммуникационного устройства*/

uchar *slave,       Указатель на 4х байтовое поле с номерами подчиненных ядер*/

uchar com_id       /* Идентификатор коммуникационной задачи*/

)

Описание:

Стартует коммуникационную задачу ISaGRAF.

Возвращаемое значение:

Возвращает ненулевое значение в случае возникновения ошибок.

В 4х байтовом поле указываются номера подчиненных ядер, с которыми поддерживает связь коммуникационная задача. Если подчиненных меньше 4, соответствующие байты заполняются нулями. После того, как задача запущена это поле больше не используется.

Имя коммуникационного устройства должно совпадать с именем последовательного устройства, через которое поддерживается связь.

Можно запустить более одной коммуникационной задачи, при этом они должны иметь разные идентификаторы задач.

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

           Пример

Данный пример показывает как запустить:

Задачу ядра ISaGRAF с номером подчиненного 1.

Коммуникационную задачу ISaGRAF с идентификатором  задачи 1, связанную с ядром 1 через последовательное устройство /tyCo/1.



Коммуникационную задачу ISaGRAF с идентификатором задачи 2, связанную с ядром 1 по Ethernet через порт 1100.

Текущим каталогом является тот, где установлена целевая задача.

Загрузить модуль isassr.o

ld < RELS/isassr.o

Загрузить модуль isakeret.o (Его можно загрузить даже если связь по Ethernet не предполагается)

ld < CMDS/isakeret.o

Конфигурирование последовательной связи

ISAMOD ("/tyCo/1", 19200)

Частота системных часов

CLKRATE = sysClkRateGet ()

Регистрация подчиненного

isa_register_slave (1)

Регистрация коммуникационных задач

isa_register_com (1)

isa_register_com (2)

Каталог для резервирования (можно опустить, ибо используется умолчание)

TSK_FUNIT = ""

Управление окончанием цикла (можно опустить, ибо используется умолчание)

TSK_NBTCKSCHED = 0

Запуск задачи ядра ISaGRAF

sp (isa_main, 1, "")

Коммуникационная задача, связь со подчиненными

SlavesLink = 0x01000000

Запуск коммуникационных задач ISaGRAF

sp (tst_main_ex, "/tyCo/1", &SlavesLink, 1)

sp (tst_main_ex, "1100", &SlavesLink, 2)

Эта последовательность соответствует следующей схеме



Возможны также следующие конфигурации.



Это наиболее типичный случай когда ядро связано с коммуникационной задачей, работающей через последовательный порт (Ethernet).



Эта конфигурация состоит из двух ядер, связанных с одной коммуникационной задачей, работающей через последовательный порт (Ethernet), SlavesLink=0x01020000.


Использование галереи SFC


Редактор 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, из которого вызвана справка.



Использование редактора FBD/LD


Графический редактор ISaGRAF FBD/LD позволяет пользователю создавать конечные программы FBD, которые могут содержать части, написанные на LD. Он сочетает в себе возможности редактировать как текст, так и графику. Таким образом, можно создавать диаграммы и соответствующие им входы и выходы. Поскольку этот редактор предназначен для языка FBD, то чистые LD диаграммы предпочтительнее создавать при помощи редактора Quick LD.



Использование редактора потоковых диаграмм


Графический редактор потоковых диаграмм ISaGRAF позволяет пользователю  вводить программы на языке FC (Flow Chart), с действиями и тестами (решениями) запрограммированными либо на ST, IL либо на языке Quick LD. Потоковые Диаграммы – это диаграммы решений, которые могут быть также использованы для описания последовательных операций, так как они позволяют некоторые дополнительные возможности, такие как неблокированные обратные прыжки.



Использование редактора Quick LD


Язык LD допускает графическое представление булевых выражений. Булевы операторы AND, OR, NOT явно представлены в топологии диаграммы. Булевы выходные переменные присоединены к виткам графика. Редактор Quick LD  допускает простой ввод диаграмм при помощи клавиатуры или мыши. Элементы автоматически связываются и размещаются по ступеням самим редактором. Пользователю не нужно изображать никаких соединений. Кроме этого, редактор Quick LD размещает ступени диаграммы таким образом, что место, занимаемое диаграммой, всегда оптимально.



Использование редактора SFC


Язык SFC используется для описания операций последовательного процесса. Он использует простое графическое представление для различных шагов процесса и условий, позволяющих изменить активный шаг. Вход в программу SFC осуществляется при помощи графического редактора SFC. SFC - это ядро стандарта IEC 1131-3. Остальные языки обычно описывают действия внутри шагов и логические условия для совершения переходов. Графический редактор SFC позволяет пользователю создавать завершённые программы на SFC. Он совмещает возможности редактирования как текста, так и графики. Таким образом, возможен ввод диаграмм SFC, соответствующих им действий и условий. 0



Использование редактора словаря


Словарь ISaGRAF - это средство для редактирования внутренних переменных, переменных ввода/вывода, функциональных блоков и макросов приложения. Словарь группирует все объявления переменных и функциональных блоков приложения и макросов в текстовой форме.

Переменные, функциональные блоки и макросы должны быть объявлены в словаре перед использованием. Переменные и макросы могут использоваться в любом автоматическом языке : SFC, FBD, LD, ST, и IL. Функциональные блоки, используемые в FBD, объявлять не обязательно, так как редакторы FBD и Quick LD автоматически объявляют используемые блоки.

        Переменные

Переменные сортируются в соответствии со своей областью действия и типом. Только переменные с одинаковыми областями действия и типами могут быть введены в одну решётку ввода. Вот основные типы области видимости переменных :

 ГЛОБАЛЬНАЯ......... может быть использована любой программой текущего проекта

 ЛОКАЛЬНАЯ........... может быть использована только одной программой

Ниже приведены основные типы переменных :

 БУЛЕВСКАЯ............ true/false двоичные величины

 АНАЛОГ................... действительные или целые величины

 ТАЙМЕР................... временные величины

 СООБЩЕНИЕ........... символьные строки

Переменная идентифицируется именем, комментарием, атрибутами, сетевым адресом и другими специальными полями. Ниже приведены основные атрибуты переменных :

ВНУТРЕННЯЯ.... переменная в памяти (внутренняя)

ВХОД................. переменная, связанная с устройством ввода

ВЫХОД.............. переменная, связанная с устройством вывода

КОНСТАНТА..... внутренняя переменная только для чтения (с начальным значением)

 

Замечание:

Таймеры всегда являются внутренними переменными. Переменные ввода и вывода

всегда имеют глобальную область видимости.

        Макросы

Макросы - это синонимы, которые могут быть использованы в любом языке для замены текстовых строк. Заменяемый текст может быть именем переменной, константой или сложным выражением.
Макросы различаются в соответствии с их областью видимости. Только макросы одного типа и области действия могут быть вставлены в одинаковую сетку редактирования. Вот основные виды области действия макросов :

 ОБЩАЯ.................... может быть использована любой программой любого проекта

 ГЛОБАЛЬНАЯ......... может быть использована любой программой текущего проекта

 ЛОКАЛЬНАЯ........... может быть использована только одной программой

Макросы идентифицируются именем, блоком описания на ST и комментарием.

        Экземпляры функциональных блоков

Функциональные блоки, используемые в языках ST и IL, должны быть объявлены в словаре. Так как функциональный блок содержит внутренние спрятанные данные, то каждая копия блока должна быть идентифицирована. Следующий пример показывает функциональный блок «R_TRIG» ( определение поднятой грани ), определённый в библиотеке, который используется для определения фронта различных переменных. Каждая копия блока должна быть идентифицирована уникальным именем. Определение типа блока и его параметров производится при помощи менеджера библиотек :

Имя блока:                           R_TRIG

Параметры:                       Input=CLK

                                               Output=Q

При помощи редактора словаря образуется имя :

Имя экземпляра:                TRIG_B1                       Имя блока:    R_TRIG

Имя экземпляра:                TRIG_B2                       Имя блока:    R_TRIG

Объявленные блоки могут быть использованы в ST программе :

TRIG_B1 (b1);

edge_b1 := TRIG_B1.Q;       (* b1 определение фронта переменной *)

TRIG_B2 (b2);

edge_b2 := TRIG_B2.Q;       (* b2 определение фронта переменной *)

Объявленные экземпляры функциональных блоков могут быть ГЛОБАЛЬНЫМИ ( доступные в любой программе проекта ) или ЛОКАЛЬНЫМИ, для одной программы. Функциональные блоки, используемые в языках FBD и LD, объявлять не нужно, так как это делает редактор FBD.

 



 

(* функциональные блоки всегда имеют то же имя, что и блок, объявленный в библиотеке.Редактор FBD автоматически объявляет реализацию каждый раз при вставке блока из библиотеки *)

Экземпляры функциональных блоков, автоматически объявленные редакторами FBD и LD, всегда локальны для редактируемой программы.

        Сетевые адреса

Сетевой адрес является необязательным. Переменная с ненулевым сетевым адресом может быть прослежена

внешней системой ( например, процессом визуализации системы ) в процессе выполнения. В более общем случае, сетевой адрес обеспечивает механизм идентификации для каждой работающей коммуникационной системы, которая не поддерживает символьное имя. Сетевой адрес может быть определён для каждой переменной, в том числе при её создании или изменении.


Использование редактора соединений В/В


Цель операции соединения В/В - это установление логической связи между переменными В/В приложения и физическими каналами плат, существующими на целевой машине. Для создания этой связи пользователь должен определить и установить все платы целевой машины, и поместить переменные В/В на соответствующие каналы В/В.

Список слева показывает шасси целевой машины с разъемами плат. Разъем может быть пуст, или использован одной платой В/В или более сложным оборудованием. Каждый разъем определяется порядковым номером. Шасси может содержать до 255 плат. Список справа показывает параметры плат и переменные, подключенные к выбранной плате. Плата может иметь до 128

каналов В/В.

        Иконки

Иконки, отображенные на передней грани, показывают тип и атрибуты переменных, которые могут быть подключены к каналам платы. Система ISaGRAF не позволяет подключение переменных разного типа на той же самой плате. Ниже значение используемых иконок:

....................... тип логическое

....................... тип целое/вещественное

....................... тип сообщение

.......................  входы - нет подключенных каналов

....................... выходы - нет подключенных каналов

....................... входы - минимум один канал подключен

.......................  выходы - минимум один канал подключен

Ниже показаны иконки, используемые для отображения типа устройств В/В, установленного в разъем:

....................... комплексное оборудование В/В

....................... действительное оборудование В/В

....................... виртуальное оборудование В/В

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

.................... параметр платы

....................... свободный канал

....................... занятый канал

 
   Передвижение плат в списке

Используйте эти кнопки в панели инструментов или “Редактор / Передвинуть вверх/вниз” в меню команд для передвижения выбранной платы В/В на одну линию вверх или вниз в главном списке. Команда “Редактор / Вставить слот” устанавливает пустой разъем в текущей позиции.



Использование симулятора 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, компилятор выводит предупреждение если новая компиляция приложения ведет к к большему количеству размещенных временных переменных.



        Входы и выходы

Так как ISaGRAF система очень открытая, требуемые изменения должны быть воплощены OEM, используя определенные свойства соответствующего оборудования. Система ISaGRAF не позволяет пользователю добавлять, подсоединять или удалять переменные В/В, или изменять описание платы В/В по ходу работы. Такие операции, как изменение параметров платы и запирание каналов В/В, возможны используя стандартные свойства OEM и функцию “OPERATE”.

        Операции во время работы

Изменение запущенного приложения состоит из следующих операций:

·  изменение исходного кода приложения на workbench

·  генерация нового кода приложения

·  загрузка нового кода приложения, используя команду “изменить” вместо “загрузить”

·  переключение со старого приложения на новое между циклами выполнения PLC, использую команду “Выполнить изменение”.

Эта процедура гарантирует, что целевой PLC всегда имеет полное и надежно работающее приложение, и позволяет пользователю управлять синхронизацией эталонных операций очень безопасным и эффективным путем. Это также позволяет пользователю изменять проект при любой возможности. Несмотря на сам процесс, “изменение по ходу работы”, в основном, то же самое, что и нормальный набор команд “остановить, запустить и загрузить”. Отличия состоят в том, что состояния переменных не теряются и время переключения очень мало (обычно в течении 1 или 2 циклов). Во время переключения переменные не изменяются, и все внутренние, входные и выходные переменные сохраняют то же самое значение, и до, и после изменения приложения. Во время переключения никакие действия не выполняются и SFC маркеры не передвигаются.

       Требования по памяти

 

Для поддержки способности “изменения по ходу работы”, целевое PLC должно иметь свободное место в памяти для возможности сохранения измененной версии кода приложения. Обе версии кода приложения должны храниться во время операции переключения.

       Ограничения

Как было описано ранее, разрешены только изменения последовательности кодов.


Определение переменных, параметров приложения и соединений В/ В не может быть изменено. Когда загружается измененная версия приложения, ISaGRAF делает сравнение между измененным приложением и запущенным для определения любых небезопасных изменений. Если переключение кажется опасным или невозможным, то генерируется ошибка загрузки. Одна из защит выполняемых ISaGRAF - это сравнение символьной таблицы контрольной суммы, так что определяется любое изменение имен переменных, программ или элементов SFC. Если шаг активен, когда совершается переключение, то не сохраненные действия (N) будут потеряны. Действия активизации нового шага не выполняется. Действия, выполненные при деактивизации шага, - это действия, переходящие в код нового приложения. Если переход достоверен, когда происходит переключение, то его приемная часть обновляется. Новый загруженный код приложения не дублируется на PLC. Дубль - это версия, которая была предварительно загружена стандартными командами загрузки.

        Операции

Для обновления кода запущенного приложения, следующие операции должны быть выполнены:

·  Перед тем, как сделать любое изменение запущенного приложения, настоятельно рекомендуется сделать копию текущего проекта под другим именем. Изменения могут быть произведены на копии.

·  Перед редактированием любой программы, пользователь должен проверить, что опция средств редактирования “изменить дневник”

установлена для упрощения будущего сопровождения программы.

·  Когда одна или более последовательностей были изменены (без изменения структур SFC и иерархии программы), коды нового приложения должны генериться на workbench перед загрузкой.

·  Используя отладчик внутри старого проекта, пользователь должен соединиться с целевым PLC и выполнить любую операцию, которая может сделать обновление приложения быстрее или более безопасно.

·  Используя отладчик внутри нового проекта, пользователь должен соединиться с целевым PLC. Если имя приложения изменено, то целевая база данных не будет доступна.Пользователь должен запустить команду “Файл / Изменить приложение”.

·  Измененное приложение загружается выбором опции “обновить потом ”. Это может немного замедлить PLC во время пересылки.

·  Когда загрузка завершена пользователь может запустить команду “Файл / Выполнить изменение” для разрешения переключения в наиболее подходящий момент. Переключение будет в течении 1 или 2 циклов.

·  Когда переключение будет корректно выполнено, то будут показаны программы запущенного измененного приложения. Если нет, то значит существующее запущенное приложение осталось как было.


Язык функциональных блочных диаграмм (FBD)


Язык функциональных блочных диаграмм (FBD) - графический язык.  Он позволяет программисту строить сложные процедуры, используя существующие функции из библиотеки ISaGRAF и

связывая их вместе при помощи графических диаграмм.



Язык инструкций (IL)


Список инструкций или IL - это язык низкого уровня.  Инструкции всегда относятся к текущему результату (или IL регистру). Оператор определяет операцию, которая должна быть выполнена с текущим результатом и операндом. Результат операции снова запоминается в текущем результате.



Язык описания


Программа может быть описана при помощи одного из следующих графических или текстовых языков:

Язык последовательных функциональных схем (SFC) для программирования высокого уровня

Язык Потоковых Диаграмм (FC) для программирования высокого уровня

Язык функциональных блочных диаграмм (FBD) для сложных циклических операций

Язык релейных диаграмм  (LD) только для булевских операций

Язык структурированный текст (ST) для любых циклических операций

Язык инструкций (IL) для операций низкого уровня

Одна и та же программа не может смешивать несколько языков. Язык программирования программы выбирается в момент создания программы и не может быть изменен в последствии. Исключением являются языки FBD и LD, которые можно комбинировать внутри одной программы.



Язык последовательных функциональных схем (SFC)


Язык последовательных функциональных схем (SFC) - это графический язык, который используется для описания последовательных операций. Процесс представляется в виде набора определенных шагов, связанных переходами. К каждому переходу прикреплено логическое условие. Действия внутри шагов описаны более детально при помощи других языков (ST, IL, LD, FBD).



Язык потоковых диаграмм


Потоковые Диаграммы

(FC) – это графический язык, использующийся для описания  последовательных операций. Потоковая Диаграмма состоит из Действий и Тестов. Между Действиями и Тестами находятся ориентированные связи представляющие потоки данных. Множественные связи используются для представления расхождений и схождений. Действия и тесты могут быть описаны с помощью языков ST, LD or IL. Функции и Функциональные блоки любого языка (кроме SFC) могут быть вызваны из действий и тестов. Программа Потоковых Диаграмм может вызывать другие программы Потоковых Диаграмм. Вызываемая программа FC – это подпрограмма

вызывающей программы FC.



Язык релейных диаграмм (LD)


Язык релейных диаграмм - это графическое представление логических уравнений, комбинирующее контакты (входы) и витки (выходы). Язык LD позволяет описывать работу с булевыми данными помещая графические символы в схему программы. Графические символы LD организованы внутри схемы так же, как электрическая схема. Справа и слева LD диаграмма  должна соединяться с вертикальными силовыми рельсами. Основные компоненты  LD диаграммы.

---------------- Левая вертикальная силовая шина

---------------- Правая вертикальная силовая шина

---------------- Горизонтальная линия связи

---------------- Вертикальная линия связи

---------------- Множественные линии соединения (все соединенные вместе)

---------------- Контакт связанный с переменной

---------------- Виток связанный с переменной