ISaGRAF. Version 3.4

         

Стандартные функции


Существуют следующие стандартные функции, поддерживаемые системой ISaGRAF. Эти функции предопределены и их не нужно заявлять в библиотеке.

Математические.................... ABS                  модуль

                                                  EXPT, POW       экспонента, степень

                                                  LOG                  логарифм

                                               SQRT                корень квадратный

                                               TRUNC              отрезать действительную часть

Тригонометрические.............. ACOS, ASIN     арккосинус, арксинус

                                                  ATAN                арктангенс

                                               COS, SIN           косинус, синус

                                                  TAN                  тангенс

Работа с регистрами............. ROL, ROR         вращать влево, вращать вправо

                                               SHL, SHR          сдвиг влево, сдвиг вправо

Работа с данными.................. MIN, MAX          Минимум, Максимум

                                                  LIMIT                 Ограничение

                                                  MOD                  Модуль

                                               MUX4, MUX8     Мультиплексор (4 и 8 входов)

                                                  SEL                   Двоичный селектор

                                                  ODD                  Четность

                                                  RAND                Случайная величина

Превращение данных............ ASCII                 Символ à ASCII код

                                                  CHAR                ASCII код à

символ

Работа со строками.................MLEN               Взять длину строки               

                                               DELETE             Удалить подстроку

                                                  INSERT              Вставить строку


яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя FINDяяяяяяяяяяяяяяяяя Ќ ©вЁ Ї®¤бва®Єг

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя REPLACEяяяяяяяяя ‡ ¬Ґ­Ёвм Ї®¤бва®Єг

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя LEFT, MIDяяяяяяяяя €§ў«Ґзм «Ґўго з бвм, бҐаҐ¤Ё­г

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя RIGHTяяяяяяяяяяяяяя €§ў«Ґзм Їа ўго з бвм

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя DAY_TIMEяяяяяяя ‚аҐ¬п ¤­п

ђ Ў®в  б ¬ ббЁў ¬Ё.............. ARCREATEяяяяяя ‘®§¤ вм ¬ ббЁў 楫ле зЁбҐ«яяяяяяяяяяяяяяяяяяяяяяяяяяяяя

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя ARREADяяяяяяяяяя —Ёв вм /

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя ARWRITEяяяяяяяяя ЏЁб вм н«Ґ¬Ґ­в ¬ ббЁў 

ђ Ў®в  б ¤ў®Ёз­л¬ д ©«®¬. F_ROPENяяяяяяяяя ЋвЄалвм ¤ў®Ёз­л© д ©« ў ०Ё¬Ґ з⥭Ёп

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя F_WOPENяяяяяяяя ЋвЄалвм ¤ў®Ёз­л© д ©« ў ०Ё¬Ґ § ЇЁбЁ

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя F_CLOSEяяяяяяяяя ‡ Єалвм ¤ў®Ёз­л© д ©«

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя F_EOFяяяяяяяяяяяяяя Џа®ўҐаЁвм Є®­Ґж ¤ў®Ёз­®Ј® д ©« 

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя FA_READяяяяяяяя —Ёв вм Ё§ ¤ў®Ёз­®Ј® д ©« 

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя FA_WRITEяяяяяяя ‡ ЇЁб вм ў ¤ў®Ёз­л© д ©«

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя FM_READяяяяяяяя —Ёв вм Ё§ ¤ў®Ёз­®Ј® д ©«  бва®Єг

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя FM_WRITEяяяяяяя ‡ ЇЁб вм ў ¤ў®Ёз­л© д ©« бва®Єг


Стандартные функциональные блоки


Существуют следующие стандартные функциональные блоки, поддерживаемые системой ISaGRAF. Эти функциональные блоки предопределены и их не нужно заявлять в библиотеке.

Булевские............................... SR                       установить доминанту

                                                  RS                       сбросить доминанту

                                                  R_Trig                  определение переднего фронта

                                                  F_Trig                  определение заднего фронта

                                                  SEMA                  семафор

Счетчики................................. CTU                     счетчик вверх

                                                  CTD                     счетчик вниз

                                                  CTUD                   счетчик вверх-вниз

Таймеры.................................. TON                     время включения

                                                  TOF                     время выключения

                                                  TP                        время пульсирования

Целые аналоги........................ CMP                     сравнение

                                                  StackInt             Стек целых аналоговых

Действительные аналоги..... AVERAGE        Среднее из N образцов

                                                  HYSTER            Булевский гистерезис на разнице

                                                                            действительных

                                                  LIM_ALRM        Тревога верхнего/нижнего предела с

                                                                            гистерезисом

                                                 INTEGRAL             Интегрирование по времени

                                                 DERIVATE             Дифференцирование по времени

Генерация сигналов...............BLINK                   Мерцающий булевский сигнал

                                                 SIG_GEN               Генератор сигнала

Замечание:

Если созданы новые функциональные блоки на “C” , они могут быть вызваны из языка FBD.



Стандартные операторы


Существуют следующие стандартные операторы IEC языков:

Работа с данными.................. Присвоение, Аналоговое отрицание

Булевские операции.............. Логическое И (AND)

                                                  Логическое ИЛИ (OR)

                                                  Логическое исключающее ИЛИ (OR)

Арифметические операции... Сложение

                                                  Вычитание

                                                  Умножение

                                                  Деление

Логические операции............. Аналоговое побитовое И (AND)

                                                  Аналоговое побитовое ИЛИ (OR)

                                                  Аналоговое побитовое исключающее ИЛИ (OR)

                                                  Аналоговое побитовое отрицание

Сравнения............................... Меньше чем

                                                  Меньше или равно

                                                  Больше чем

                                                  Больше или равно

                                                  Равно

                                                  Неравно

Превращение данных............ Превратить в Boolean

                                                  Превратить в Integer Analog

                                                  Превратить в Real Analog

                                                  Превратить в Timer

                                                  Превратить в Message

Другие..................................... Соединение строк

                                                  Доступ к системе                                           

                                                  Работа с каналами В/В



Стили и отслеживание изменений


Редактор ISaGRAF LD/FBD позволяет вам приписать графический стиль любой компоненте диаграммы LD/FBD. Стиль, в основном, определяется, как специальная окраска диаграммы. Но ISaGRAF, также, использует стили, чтобы разрешить отслеживание изменений в диаграммах.

Заметим, что стили не видны во время симуляции или отладки, так как цвета (красный и голубой) используются в этом режиме для высвечивания TRUE / FALSE состояний переменных.

        Предопределенные стили

Следующие стили предопределены:

Нормальный.... Чертеж по умолчанию (черный). Для отслеживания изменений, стиль "нормальный" определяет элементы, имеющие этот стиль, как часть первоначальной диаграммы. Элементы стиля "Нормальный", обычно сканируются во время исполнения.

Модифицир..... Элементы помеченные "модифицированный" окрашены розовым. Для отслеживания изменений, стиль "модифицированный" используется, чтобы высветить элементы, которые были добавлены или изменены со времени появления первоначальной диаграммы. Элементы стиля " модифицированный ", обычно сканируются во время исполнения..

Удаленный...... Элементы помеченные "удаленный" окрашены серым, с пунктирной линией. Такие элементы не принимаются во внимание во время исполнения диаграммы. Этот стиль используется для отслеживания удаленных элементов.

Адаптирован... В дополнение к предопределенным стилям, редактор ISaGRAF LD/FBD позволяет вам выбрать любой цвет, примененный к части диаграммы. Такие элементы рассматриваются, как имеющие стиль "Адаптированный". Использование стиля "Адаптированный" не влияет на выполнение диаграммы.

Используйте команды подменю "Стиль" в меню "Редактор" для применения стиля к выбранным элементам.

        Отслеживание изменений

Использование стилей, и наличие стиля "Удаленный" позволяет автоматически отслеживать изменения в существующей диаграмме. Используйте команду "Отметь изменения " в меню "Редактор/Стиль", чтобы позволить или запретить отслеживание изменений.


Когда установлена опция "Отметь изменения", все измененные или добавленные в диаграмму элементы автоматически устанавливаются в стиль "Модифицированный". Когда элемент удаляется, с использованием команд "Удалить" или "Вырезать", они не удаляются из диаграммы визуально, а просто помечаются стилем "Удаленный". Это позволяет пользователю следить за всеми изменениями в диаграмме.

Используйте "Редактор/Стиль/Устранить все удаленные символы ", чтобы на самом деле удалить все элементы, помеченные стилем "Удаленный" из диаграммы LD/FBD. Эта команда не принимает во внимание текущий выбор и всегда применяется ко всей диаграмме.

Чтобы восстановить элемент, помеченный стилем "Удаленный", выберите желаемый элемент и примените к нему стиль "Нормальный", стиль "Модифицированный"  или "Адаптированный". Такая операция может привести к неправильным соединениям (более одной связи подходит к одной и той же точке входа), Это будет определено во время следующей проверки программы.


Строковые переменные


Сообщения или строковые переменные содержат символьные строки . Длина строки может меняться в процессе работы. Длина строковой переменной не может превосходить значения определенного при объявлении переменной. Максимальная длина строки ограничена 255 символами.

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

Внутренняя:         переменная, хранящаяся в памяти, изменяемая программой

Константа:      неизменяемая переменная, хранящаяся в памяти, с начальным значением

Вход:            переменная, связанная с устройством ввода (обновляется системой)

Выход:         переменная, связанная с устройством вывода

Строка может содержать любой символ из стандартной таблицы ASCII (код ASCII от 0 до 255). Некоторые “C” функции из стандартной библиотеки ISaGRAF неправильно обрабатывают сообщения, содержащие нулевой символ (0).



Связь по Modbus


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

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

Простейшей промышленной сетью является протокол в стандарте MODBUS/MODICON, который доступен почти на каждой системе визуализации процесса, и который требует только последовательную связь (RS232, RS485, Токовая петля).

Отладочный протокол связи ISaGRAF является MODBUS совместимым для использования различных видов доступа чтение/запись из Modbus мастера.



Связи с отладчиком


Симулятор ядра поддерживает полную связь с отладчиком ISaGRAF, так что любые возможности отладчика могут быть использованы во время симуляции. Симулятор ядра всегда работает с текущим приложением ISaGRAF. Во время симуляции команды “Запустить”, “Остановить”, “Загрузить” или “Изменить” недоступны. Симулятор не может быть использован, если цель “Симуляция” не была выбрана в опциях компилятора перед построением целевых кодов. Закрытие окна симулятора означает, что окно отладчика (и любое окно ISaGRAF, открытое во время сессии отладки) будет также закрыто.



SYSTEM


Аргументы:

 

                Mode                     INT           задает системный параметр и режим доступа

                Arg                         INT-TMR  новое значение для режима “запись”

                Param                    INT           значение запрашиваемого параметра

Описание:

                Доступ к системным параметрам.

Далее следует список возможных команд для функции SYSTEM:

Команда

Значение

SYS_TALLOWED

читать допустимое время цикла

SYS_TCURRENT   

читать текущее время цикла

SYS_TMAXIMUM   

читать максимальное время цикла

SYS_TOVERFLOW               

читать переполнения времени цикла

SYS_TRESET        

сбросить счетчик времени цикла

SYS_TWRITE         

изменить время цикла

SYS_ERR_TEST

проверка ошибок выполнения

SYS_ERR_READ

читать старейшую ошибку выполнения

Возможные аргументы предопределенных функций функции SYSTEM:

Команда

Аргумент

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

SYS_TALLOWED

0

допустимое время цикла

SYS_TCURRENT   

0

текущее время цикла

SYS_TMAXIMUM   

0

максимальное время цикла

SYS_TOVERFLOW               

0

количество переполнений времени цикла

SYS_TRESET        

0

0

SYS_TWRITE         

новое время цикла

записанное время цикла

SYS_ERR_TEST

0

0 если ошибок нет

SYS_ERR_READ

0

код старейшей ошибки выполнения

(*FBD пример блоков SYSTEM*)

(* STэквивалент: *)

alarm := (SYSTEM (SYS_TOVERFLOW, 0) <> 0);

If (alarm) Then

             nb_err := nb_err + 1;

             rc := SYSTEM (SYS_TRESET, 0);

End_If;



TAN


Аргументы:

IN                         REAL                   не может равняться PI/2 по модулю PI

Q                          REAL                   тангенс входа

                                                        =1У+38 для неверного входа

Описание:

Вычисляет тангенс действительной величины.

(*FBD пример блока “TAN”  и “ATAN”*)

(* ST Эквивалент : *)

tangent := TAN (angle);

result := ATAN (tangent); (*результат равен углу *)

(* IL Эквивалент: *)

LD                     angle

TAN

ST                     tangent

ATAN

ST                     result



Техника компилирования и линкования


Система разработки ISaGRAF не включает в себя “C” компиляторов или линкеров. Однако эта глава объясняет основную технику, которая может быть применена для легкого использования файлов, созданных Менеджером Библиотек ISaGRAF, и затем используемые другим инструментарием, таким как компиляторы и линковщики.

           Исходные “C” файлы

Преобразуемые исходные “C” файлы, функции и функциональные блоки размещены Менеджером Библиотек ISaGRAF в директории  ISAWIN\LIB\DEFS и ISAWIN\LIB\SRC. Имя исходного файла содержит номер соответствующего преобразования, функции или функционального блока в библиотеке ISaGRAF. Используемые имена файлов:

\isawin\lib\defs\TACN0DEF.H             файл определений для любых функций преобразования

\isawin\lib\src\GRCN0nnn.H                исходный файл функций преобразования

\isawin\lib\defs\GRUS0nnn.H                               файл определений функций

\isawin\lib\src\GRUS0nnn.C                 исходный файл функций

\isawin\lib\defs\GRFB0nnn.H               файл определений функциональных блоков

\isawin\lib\src\GRFB0nnn.C                 исходный файл функциональных блоков

(nnn - номер преобразования, функции или функционального блока)

Предупреждение: Когда переименовываются или копируются элементы библиотеки, ее текстовые и программные строки не обновляются Менеджером Библиотек ISaGRAF в соответствии с новыми именами элементов и логическими номерами. Они должны быть обновлены вручную в исходном “C” файле.

Файл \ISAWIN\LIB\USPNUMS  дает соотношение между именами и логическими номерами для “C” функций, расположенных в библиотеке ISaGRAF. Пример такого файла:

1           funct_A

10         funct_B

16         funct_C

Файл  \ISAWIN\LIB\FBLNUMS дает соотношение между именами и логическими номерами для “C” функциональных блоков, расположенных в библиотеке ISaGRAF.

Пример такого файла:

0           fbl_A

1           fbl_B

2           fbl_C

Файл   \ISAWIN\LIB\CNVNUMS дает соотношение между именами и логическими номерами для функций преобразования, расположенных в библиотеке ISaGRAF.


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

0           SCALE

1           BCD

Эти файлы автоматически обновляются Менеджером Библиотек ISaGRAF каждый раз при преобразовании, создании функции или функционального блока создании, переименовании, копировании или уничтожении функционального блока. Генератор кода ISaGRAF генерирует следующие файлы при создании приложения:

\isawin\apl\ppp\GRCN0LIB.C                 Объявление в виде массива всех            функций, преобразования используемых

                                                                     в проекте.

\isawin\apl\ppp\GRUS0LIB.C                  Объявление в виде массива всех            функций, используемых в

                                                                     проекте.

\isawin\apl\ppp\GRFB0LIB.C                  Объявление в виде массива всех            функционалных блоков, используемых

                                                                     в проекте.

(ppp имя пректа ISaGRAF)

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

           Загрузка  исходных файлов в систему

Исходные  “C” файлы и файлы определений, созданные Менажером  Библиотек ISaGRAF, могут быть загружены в целевую задачу системы ISaGRAF, если это поддерживается родным компилятором. Для этого может быть использован стандартный инструмент TERMINAL, поставляемый с Windows.

Когда исходные файлы управляются в целевой системе, файлы определений будут обновляться новыми операциями загрузки каждый раз, когда функциональный интерфейс изменяется Менеджером Библиотек ISaGRAF.

Командные строки для загрузки файлов могут быть сгруппированы,  например, в командных файлах, а затем запущены из меню инструментов системы разработки (смотри руководство пользователя: Управление программами)

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



С исходными файлами можно работать непосредственно на вашем PC, если PC является целевой системой, или доступен кросс - компилятор, запущен на PC и генерирует коды для целевой системы.

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

Командные строки для загрузки файлов могут быть сгруппированы,  например в командных файлах, а затем запущены из меню инструментов системы разработки (смотри руководство пользователя: Управление программами)

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

        Линкование с библиотеками ядра ISaGRAF

Предупреждение:

Далее следует общая информация, которая может не совсем соответствовать вашей целевой системе.

В любом случае вы можете справиться в readme и .TXT файлах, поставляемых на целевом диске.

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

Существует две реализации:

- однозадачный ISaGRAF: все функции выполняются в одной программе

- многозадачный ISaGRAF: для связи выделяется отдельная задача (или нить)

В любом случае “C” компоненты сгруппированы в одинаковых библиотеках: для “C” программистов нет разницы в создании однозадачной или многозадачной системы. Для однозадачной версии “C” библиотеки пользователя линкуются в одну задачу (обычно называемую isa), тогда как для многозадачной версии библиотеки линкуются в задачу ядра (обычно называемую isaker).

Система разработки                                                        Целевая система



Внутренняя часть программного обеспечения ISaGRAF не зависит от аппаратной части.


Она выполняет IEC языки и имеет свою собственную базу данных переменных.

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

Библиотеки

Содержание

ISAUSP

- объектный файл GRUS0LIB (массив декларированных функций)

- объектный файл каждой интегрированной функции

ISAFBL

- объектный файл GRFB0LIB (массив декларированных функциональных блоков)

- объектный файл каждого интегрированного функционального блока

ISACNV

- объектный файл GRCN0LIB (массив декларированных преобразований)

- объектный файл каждой интегрированной функции преобразования

Затем программист должен слинковать эти новые библиотеки с другими объектными файлами и библиотеками ядра ISaGRAF. Различные стадии разработки “C” приложений показаны на следующей диаграмме:



Список объектных модулей и библиотек, которые присоединяются во время линкования:

Построение isaker:

 

Объектный Модуль:             tast0mal

Объектный Модуль:             tats0com

Библиотека ядра:                 isaker

Библиотека ядра:                 isaoem

Библиотека пользователя: isausp                             определенные пользователем

                                                                                        функции

Библиотека пользователя: isafbl                               определенные пользователем

                                                                                        функциональные блоки

Библиотека пользователя: isacnv                             определенные пользователем

                                                                                        функции преобразования

Библиотека ядра:                 isasys

Системные библиотеки:      (refer to your "C" compiler manual)

Построение isa

 

Объектный Модуль:             tast0mal

Объектный Модуль:             tast0com

Библиотека ядра:                 isaker



Библиотека ядра:                 isatst

Библиотека ядра:                 isaoem

Библиотека пользователя: isausp                             определенные пользователем

                                                                                        функции

Библиотека пользователя: isafbl                               определенные пользователем

                                                                                        функциональные блоки

Библиотека пользователя: isacnv                             определенные пользователем

                                                                                        функции преобразования

Библиотека ядра:                 isasys

Системные библиотеки:      (refer to your "C" compiler manual)

Программист может придерживаться порядка следования объектных модулей и библиотек, показанного на предыдущем рисунке. Объектные модули и библиотеки имеют стандартные расширения (“.lib”, “.obj”, “.l”, “.r” ...) в соответствии с целевой системой.

        Требующиеся опции компиляции

Опции преобразования могут быть выбраны во время компилирования и линкования.

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

(math, graphics ...) во время линкования.

Все исходные файлы “C” Ядра ISaGRAF были компилированы в LARGE модели памяти. Программист должен использовать одинаковые модели для компилирования преобразований, функций и функциональных блоков.

При компилировании компонентов “C” библиотеки определяется специальная константа. Она указывает тип целевой системы и процессоров, для того, чтобы исходные тексты преобразований, функций и функциональных блоков были независимыми от системы. Ниже указаны значения этой константы:

DOS....................для DOS базированных систем (процессор NTEL)

ISAWNT............для Windows-NT базированных систем (процессор INTEL)

OS9.....................для систем OS9 (процессор MOTOROLA)



VxWorks.............для систем VxWorks (процессор MOTOROLA)

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

        Поддерживаемые компиляторы

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

Компилятор Microsoft MSC 7.00          для целевой задачи DOS

Компилятор Microsoft MSVC 4.00       для целевой задачи Windows-NT

Компилятор Microware ULTRA-C       для целевой задачи  OS-9

Tornado 1.0; GNU Toolkit 2.6                 для целевой задачи  VxWorks

По поводу использования других компиляторов контактируйте с CJ International.

        Резюме

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

1.         Используется с Менеджером Библиотек ISaGRAF для создания новых

элементов: дает им имена и текстовые комментарии. Автоматически генерируется фрейм “C” исходного файла.

2.         Используется с Менеджером Библиотек ISaGRAF, описывает интерфейс ( вызывает и возвращает параметры) если элементы являются функциями или функциональными блоками. Автоматически генерируются заголовки исходных “C” файлов.

3.         Используется с Менеджером Библиотек ISaGRAF, вводит текст подробного          технического  описания элемента (руководство пользователя).

 

4.         Используется с Менеджером Библиотек ISaGRAF, завершает исходный файл “C” путем добавления  “C” программирования преобразования, функции или алгоритма функционального блока. Исходный код элемента теперь завершен. Можно использовать другой редактор.

5.         Выбор опции “Показать логический номер” Менеджера Библиотек, чтобы  узнать, какой логический номер присоединен к новому элементу. Этот номер используется в имени пути преобразования “.C” и “.H” исходных файлов.

6.         Копировать/Загружать .C и .H файлы в вашу целевую систему (если родной компьютер) или в соответствующее окружение (если кросс компьютер), где находятся целевые библиотеки ISaGRAF и инсталлированы задачи.

7.         Запустить компилятор “C” на новом исходном файле и корректировать

                имеющиеся синтаксические ошибки.

8.         Вставить имя нового элемента определенного сервиса  в “GR??0LIB.C”

                исходный файл, который определяет массив вставленных элементов.

9.         Запустить компилятор “C” для компилирования файла “GR??0LIB.C”..

10.       Вставить имя объектного модуля в список объектных файлов, используемых

                для построения соответствующих библиотек..

11.       Запустить построитель “C” библиотек. Запустить линковщик “C” для

                построения нового ядра.

12.       Установить вновь созданное ядро на вашей целевой машине.

13.       Запустить пример приложения ISaGRAF, которое тестирует вызов и интерфейс нового элемента.


TMR


Аргументы:

IN                         INT-REAL       любая не временная величина

                                                  IN (или целая часть от IN, если он действительный) -

                                                  число миллисекунд

Q                          TIMER            временная величина, представленная IN

Описание:

Превращает аналоговую переменную в таймер.

(*FBD пример блоков TMR*)

 (* STэквивалент: *)

ares := TMR (1256);                               (* ares := t#1s256ms *)

rres := TMR (1256.3);                             (*rres := t#1s256ms *)

(* IL эквивалент: *)

LD                     1256

TMR

ST                     ares

LD                     1256.3

TMR

ST                     rres



TOF


Аргументы:

      IN                         BOO               если задний фронт, то начинает увеличивать

внутренний таймер если передний фронт, то                         останавливается и сбрасывает внутренний таймер

PT                        TMR               максимальное планируемое время

Q                          BOO              если TRUE, то планируемое время истекло

ET                        TMR               текущее прошедшее время

Описание:

Увеличивать внутренний таймер до заданной величины.

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



TON


Аргументы:

IN                         BOO              если передний фронт, то начинает увеличивать

                                                  внутренний таймер, если задний фронт, то останавливается и сбрасывает внутренний таймер

PT                        TMR               максимальное планируемое время

Q                          BOO              если TRUE, то планируемое время истекло

ET                        TMR               текущее прошедшее время

Описание:

Увеличивать внутренний таймер до заданной величины.

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

             



TP


Arguments:

IN                         BOO              если передний фронт, то начинает увеличивать

                                                  внутренний таймер (если уже не увеличивается) если задний фронт и время истекло, то сбрасывает внутренний таймер

                                                  любое изменение IN во время счета не имеет эффекта.

PT                        TMR               максимальное планируемое время

Q                          BOO              если TRUE, то таймер считает

ET                        TMR               текущее прошедшее время

Описание:

Увеличивать внутренний таймер до заданной величины.

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



Требования к памяти целевой системы


Встроенный упакованный код (ВУК) требует дополнительной памяти в целевой системе. По грубой оценке ВУК занимает в полтора раза больше места чем приложение. Это означает, что использование ВУК умножает размер требуемой памяти на 2.5.

Специальные ограничения могут возникнуть на целевых системах с сегментированной памятью. Так как ВУК запоминается как ресурс в сгенерированном коде, он должен быть сохранен в том же сегменте данных, что и код приложения.



TRUNC


Аргументы:

IN                         REAL                   любая действительная аналоговая величина

Q                          REAL                   если IN>0 наибольшее целое меньшее или равное

                                                        входа

                                                        если IN<0 наименьшее целое большее или равное

                                                               входа

Описание:

Отсекает дробную часть.

(*FBD пример блока “TRUNC”*)

(* ST Эквивалент: *)

result := TRUNC (+2.67) + TRUNC (-2.0891);

(* означает: result := 2.0 + (-2.0) := 0.0; *)

(* IL Эквивалент: *)

LD                     2.67

TRUNC

ST                     temporary  (* временный результат TRUNC *)

LD                     -2.0891

TRUNC

ADD                  temporary

ST                     result



Улучшенная техника программирования


Эта глава содержит больше информации об ISaGRAF Workbench и целевой системе. Рекомендуется, чтобы пользователь был знаком со средствами и методами ISaGRAF перед чтением этого раздела.



Управление элементами библиотеки


Используйте команды меню “Файл” для создания элементов и работайте с существующими элементами в открытой библиотеке.

       Создание нового элемента

Команда “Новый”

из меню “Файл” создает новый элемент в выбранной библиотеке. Имя нового элемента вводится на основе следующих правил:

·  Длина имени не должна превышать 8

символов

·  Первый символ должен быть буквой

·  Следующие должны быть буквами, цифрами или символом подчеркивания

·  Верхний и нижний регистры в наименовании не различаются.

Текстовые комментарии связываются с каждым элементом библиотеки. Этот комментарий вводится во время создания элемента. Когда создается новый элемент, то должно быть введено следующее:

·  его определение для конфигурации В/В,

·  его параметры для платы В/В,

·  его пользовательский интерфейс для функции или функционального блока.

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

       Работа с существующими элементами

Команда “Файл / Переименовать” позволяет пользователю изменить имя или комментарий элемента, выбранного из списка элементов. Команда “Файл / Копировать” позволяет пользователю копировать элемент, высвеченный в активной библиотеке, на другой элемент в той же самой библиотеке. Если элемент назначения уже существует, то все его содержание будет перезаписано. Если элемент назначения не существует, то он будет автоматически создан. Команда “Файл / Удалить” удаляет текущий выбранный элемент из активной библиотеки. Следующие компоненты элемента управляются командами “Переименовать”, “Копировать” и “Удалить”:

·  техническое примечание

·  полное определение для конфигурации В/В

·  параметры для платы В/В или сложного оборудования

·  определение интерфейса для функции или функционального блока

·  исходные коды для функции и функционального блока, написанного на языке IEC

·  исходные коды для преобразования С, функции или функционального блока


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

“Копировать” в подключенном исходном коде.

           Если элемент - это функция, написанная на языке IEC, то имя возвращаемого параметра не изменяется командами “Переименовать”

или “Копировать”.

       Установка парольной защиты

Команда “Файл / Установить пароль” позволяет пользователю определить парольную защиту для выбранного элемента в открытой библиотеке. Обратитесь к разделу “Парольная защита”, в конце первой части этого руководства для получения дальнейшей информации об уровнях паролей и защите данных. Пароли относятся только к выбранному элементу. Они не имеют никакого влияния на другие элементы в библиотеке ISaGRAF.

       Компилирование функций и функциональных блоков

Когда выбрана библиотека функций или функциональных блоков, написанная на языке IEC, команда “Проверить (Компилировать)”

меню “Файл” используется для проверки синтаксиса выбранного элемента и создания его объектного кода. Функции и блоки, написанные на языке IEC, должны быть скомпилированы без ошибок, прежде чем они могут быть использованы в проектах ISaGRAF. Эта команда не эффективна, если выбрана другая библиотека.

       Технические замечания

Команда “Редактор/ Технические замечания” позволяет пользователю определить стандартный текстовый формат для всех элементов текущей выбранной библиотеки. Во время редактирования технического замечания нового элемента, этот формат используется как основной скелет. Это позволяет пользователю оптимизировать редактирование технического замечания.

Команда "Инструменты / Стандартный формат замечания " позволяет пользователю определить стандартный текстовый формат для всех элементов текущей выбранной библиотеки. Во время редактирования технического замечания нового элемента, этот формат используется как основной скелет. Это позволяет пользователю оптимизировать редактирование технического замечания.



.

        Параметры

Параметры элемента описывают интерфейс между компьютерными операциями, обеспечиваемыми элементом, и использованием элемента в приложении ISaGRAF. Параметры имеют различное значение для каждого типа элемента библиотеки.

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

       Исходные коды С

ISaGRAF Workbench позволяет программисту управлять исходным кодом библиотечного преобразования, функции или функционального блока. Исходный код функции или блока, написанный на языке IEC, - это текст или диаграмма, описанная языком, прикрепленным к функции. Исходные коды “С” компонентов (“С” функции, функциональные блоки “С” и функции преобразования) разделяются на два раздельных файла: исходный код С заголовка, который содержит именно определение интерфейса, в соответствии с определением параметров элемента, и файл исходного кода С, который содержит реализацию работы элемента.

ISaGRAF Workbench генерирует файл исходного кода, когда создается новый библиотечный элемент. Он также создает и обновляет исходный заголовок, основанный на определении параметров. Программист может использовать текстовый редактор ISaGRAF для завершения файла исходного кода.

        Архивация элементов библиотеки

Команда

"Инструменты / Архив" запускает менеджер архивов ISaGRAF чтобы сохранить или восстановить элементы библиотеки. Вы должны выбрать библиотеку перед запуском "Команды архив ". Менеджер архивов показывает элементы только одной библиотеки за раз.


Управление переменными


Доступные команды меню «Файлы» работают с выделенным классом переменных, реализаций функциональных блоков и макросов. Используйте команду «Другой» для выбора типа и области действия редактируемых переменных.

        Печать переменных

Используйте команду «Файл / Печать» для того, чтобы распечатать список редактируемых объектов на стандартном принтере Windows. Распечатка включает в себя полное описание каждого объекта текущей редактируемой группы.

        Создание новых переменных

Команда «Файл / Новый» позволяет пользователю создавать новые переменные, экземпляры функциональных блоков и макросы текущего типа и области действия. Новая переменная вставляется сразу же после текущей. При запуске этой команды открывается окно диалога, в которое требуется ввести описание новой переменной. После этого нажатие кнопки «Сохранить»

помещает созданную переменную в список. Окно ввода открывается снова, так что пользователь может ввести описание новой переменной. Нажатие кнопки «Отказ» останавливает процесс создания переменной.

        Изменение существующей переменной

Команда «Редактор» меню «Редактор» позволяет пользователю изменить описание текущей переменной. При запуске команды открывается окно ввода для изменения описания текущей переменной. При нажатии кнопки «Сохранить» изменения сохраняются. Кроме того, можно нажать кнопки «Следующ» или «Предыдущ» для распространения изменений на другие переменные. Нажатие кнопки «Отказ» останавливает процесс создания переменной.

 
   Удаление и вставка

Инструменты редактирования словаря ISaGRAF содержат выделение нескольких линий. Многие команды могут оперировать со списком выделенных переменных. Ниже приведены доступные команды меню «Редактор» :

КОПИРОВАТЬ.. Копировать выделенную группу переменных в буфер словаря

ВЫРЕЗАТЬ....... Копировать выделенную группу переменных в буфер словаря и удалить её из списка

УДАЛИТЬ.......... Удалить выбранную группу переменных из редактируемого списка

ВСТАВИТЬ........ Вставить буфер словаря перед выделенной переменной


Функции Вырезать/Копировать/Вставить могут быть применены к различным спискам переменных с одинаковыми параметрами.

        Сортировка переменных

Команда «Инструменты / Сортировка» сортирует переменные или макросы текущего списка редактирования. Порядок сортировки определяется атрибутами переменных :

·  сначала внутренние переменные

·  затем переменные ввода

·  наконец, переменные вывода

Переменные с одинаковыми атрибутами сортируются в алфавитном порядке. Макросы всегда сортируются в алфавитном порядке.

        Установка сетевых адресов

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

        Импорт булевых строк “true/false”

При редактировании макросов команда «Инструменты / Импорт определений true/false

" позволяет пользователю автоматически определить строки, присоединённые к булевым переменным, в качестве ключевых слов языка. Они должны быть объявлены как макросы. Эта команда ищет булевы истинностные строки в объявлениях той же области, что и редактируемый, для изменения макросов.


Управление приложением


Меню “Файл” и “Управление”

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

Замечание: Некоторые из этих команд недоступны во время симуляции, потому что приложение, обрабатываемое симулятором, автоматически устанавливается ISaGRAF Workbench.

        Остановка целевого приложения

Команда “Файл / Остановить приложение” останавливает выполнение приложения активного в данный момент на целевой системе ISaGRAF.

        Активизация целевого приложения

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

обычно используется после команды “Остановить приложение”.

 

Замечание: Целевое приложение должно быть остановлено (дезактивировано) перед тем, как станет возможным загрузить новое приложение.

       Загрузка приложения

Команда “Файл / Загрузить” используется для загрузки кода приложения на целевую систему. Выберите тип кода, который будет загружаться, в соответствии с целевым системным процессором и опциями приложения.

        Отображение номера версии

Команда “Файл / Номер версии” используется для отображения идентификации и Workbench, и целевого приложения. Приложение Workbench - одно приложение, открытое на ISaGRAF Workbench. Целевое приложение - одно приложение, выполняемое на целевой ISaGRAF PLC. Отображаются следующие позиции:

Версия:.......................... Это номер версии кода приложения. Этот номер был вычислен генератором кодов.

Дата:........................................ Эта позиция показывает дату и время создания кодов.

CRC:............................... Это контрольная сумма вычисленная вместе с содержимым таблицы символов. Это число было подсчитано генератором кодов. Его значение зависит от содержимого словаря переменных.

Замечание: Команда “Номер версии” также доступна во время симуляции.
В режиме реальной отладки эта команда не может быть использована, если целевое PLC не подключено.

        Модификации во время работы

Команда “Файл / Изменить приложение” позволяет пользователю осуществить “модификацию на ходу” запущенного целевого приложения. Эта команда детализирована в следующих разделах этой главы. Она недоступна, когда отладчик используется в режиме симуляции.

        Режим Реального Времени (Реальное время)

Команда “Управление / Реальное время” недоступна, когда нет активного приложения. Она устанавливает целевое приложение в нормальный режим “реального времени”: Нормальный режим: циклы выполнения запускаются с запрограммированным временным циклом .

        Режим Цикл за Циклом (Пошаговый режим)

Команда “Управление / Пошаговый режим” недоступна, когда нет активного приложения. Она устанавливает целевое приложение в нормальный режим “цикл за циклом”: В этом режиме циклы выполняются один за одним, в соответствии с командами “Выполнить один цикл”, заданными пользователем из меню отладчика.

        Выполнить один цикл

Когда целевое приложение находится в режиме цикл за циклом, команда “Управление / Выполнить один цикл ” запускает выполнение одного цикла.

        Временной цикл

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

        Удаление всех точек останова

Команда “Управление / Очистить все токи останова ” удаляет все текущие точки останова (встреченные или еще активные) во всем приложении. Существующие точки останова автоматически не удаляются, когда закрывается окно отладчика.

        Разблокирование переменных В/В

Команда “Управление / Открыть все переменные ВВ”

разблокирует все переменные В/В, в настоящий момент заблокированные в приложении. Когда переменная В/В заблокирована, состояние входа или выхода не изменяется в соответствующем устройстве В/В.Переменные, подключенные к В/В, могут быть еще записанными приложением или отладчиком. Текущие заблокированные переменные В/В автоматически не разблокируются, когда закрывается окно отладчика.


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


Для запуска пакета управления проектами ISaGRAF дважды щёлкните мышью на иконе «Проекты» ( проекты ) в группе ISaGRAF. В результате откроется окно “Управление Проектом". Проект, соответствующий одному циклу PLC ( программируемый логический контроллер ) выполняется на целевом PLC. Верхнее окно содержит список существующих проектов. Тестовое описание выделенного проекта находится в нижнем окне.

        Изменение размеров окна

Щёлкните мышью на разделителе между списком проектов и их описанием для изменения размера соответствующего окна. Окно описания не может быть полностью спрятано. Оно всегда содержит, по крайней мере, одну строку текста.

        Вставка разделителей

Разделительная линия может быть вставлена перед именем любого проекта. Это позволяет группировать проекты, связанные с одним приложением, в списке расположения. Используйте команду «Редактор / Вставка/удаление разделителей» для вставки или удаления разделителя перед выделенным проектом.

 
   Перемещение проектов в списке

Для перемещения проекта в списке нужно, во-первых, выделить его. После этого щёлкнуть мышью на его имени и перетащить в нужное место в списке. При перетаскивании проекта маленькая стрелка слева указывает место, в которое он будет помещён. Кроме этого, Вы можете использовать команду «Редактор» меню «Файл» для перемещения выделенного проекта построчно. Следует иметь в виду, что если разделитель находится перед выделенным проектом, то он перемещается вместе с ним.



Управление программами


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



Условия, присоединенные к переходам


К каждому переходу присоединяется логическое выражение, которое является условием прохождения этого перехода. Условие обычно записывается на языке ST или LD (быстрый LD редактор). Это Уровень 2 перехода. Однако могут быть использованы и другие структуры:

- Соглашения языка ST

- Соглашения языка LD

- Соглашения языка IL

- Вызовы функций из переходов

Предупреждение:

Если к переходу не присоединено выражение, то по умолчанию условие - TRUE.



Установка


Для установки требуется около 1 мегабайта памяти на диске.

Файл install.bat, находящийся на установочном диске установит все необходимые файлы для указанной платформы  на ваш PC.

Пример: a:\install a:  c:\path

устанавливает файлы с a: на c:  в каталог path.

Создается следующая структура каталогов:

Каталог ROOT содержит некоторые инструментальные средства и файлы readme

Каталог CMDS содержит исполняемые файлы

Каталог DEFS содержит файлы заголовков

Каталог LIB содержит библиотеки

Каталог RELS содержит объектные файлы

Каталог USER содержит ‘C’ файлы пользователя, функциональные блоки и функции преобразований (исходники  и файлы заголовков)

После этого можно начинать работу.



Установка индивидуальных защит


Система разработки ISaGRAF обеспечивает полную систему защиту данных основанную на иерархических паролях. Соединения В/В могут быть глобально защищены паролем. Дополнительно, ISaGRAF позволяет вам установить индивидуальную защиту на любой канал В/В. Это подразумевает, что:

- пароли всегда определяются в системе определения пароля (используйте команду "Проект / Установить пароль" окна Управление Проектами) так, что имеются индивидуальные уровни защиты.

- вы используете для индивидуальной защиты уровни защиты с более высоким приоритетом по сравнению с глобальной защитой В/В.

Когда канал В/В имеет индивидуальную защиту, маленькая иконка нарисована рядом с его именем в окне соединений В/В:

Используйте команды "Установить защиту" и "Уничтожить защиту" меню "Редактор", чтобы установить или удалить индивидуальную защиту для выбранного канала. Обе команды предлагают вам ввести действительный пароль так, что уровень защиты может быть присоединен к каналу. Затем, каждый раз, когда вы хотите изменить соединение с каналом вы должны ввести пароль достаточного уровня приоритета.

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



Установка параметров плат


Для установки значения параметра платы, пользователь должен дважды щелкнуть мышкой на его имени в списке справа. Также возможно выбрать команду “Установить канал /параметр” из меню “Редактор”. Параметры перечислены в начале списка. Следующая иконка используется для представления их в списке:

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

Значение и входной формат параметра разрабатывается поставщиком соответствующей платы В/В или оборудования. Используйте команду “Инструменты / Техническое замечание” или обратитесь к описанию для получения дополнительной информации о параметрах платы.



Временные константы


Временные константы представляют временные значения от 0

секунд до 23h59m59s999ms. Наименьшая допустимая единица - это миллисекунда. Стандартные временные единицы, использующиеся в константах это:

Час                               буква h должна следовать за количеством часов

Минута                        буква m должна следовать за количеством минут

Секунда                      буква s должна следовать за количеством секунд

Миллисекунда          буквы ms должны следовать за количеством миллисекунд

Временные константы должны начинаться с ‘T#’ или ‘TIME#’. Для написания ключевых слов  можно использовать как заглавные буквы, так и прописные. Некоторые единицы могут быть опущены. Вот примеры временных констант:

T#1H450MS                 1 час, 450 миллисекунд

time#1H3M                  1 час, 3 минуты

Выражение ‘0’ представляет аналоговую константу, а не временное значение.



Временные переменные


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

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

Внутренняя:   переменная, хранящаяся в памяти, изменяемая программой

Константа:      неизменяемая переменная, хранящаяся в памяти, с начальным значением

Предупреждение:

Временная переменная не может иметь атрибутов ВХОД или ВЫХОД.

Временные переменные автоматически обновляются системой ISaGRAF. Когда временная переменная активна, ее значение автоматически увеличивается в соответствии с часами реального времени целевой задачи. Для управления временными переменными используются следующие операторы языка ST:

TSTART                       запустить автоматическое обновление временной переменной (таймера)

TSTOP                          остановить автоматическое обновление временной переменной (таймера)



Целевая задача ISaGRAF работает на


Целевая задача ISaGRAF работает на контроллере в соответствии с хорошо известной схемой:

Цикл целевой задачи[1]
состоит из сканирования физических входов, обработки данных в соответствии с прикладной программой и изменения физических выходов.
-  Первая часть этой главы объясняет, как начать работать с целевой задачей ISaGRAF для DOS, OS-9, VxWorks и NT. Во-первых, вы найдете, как запустить целевую задачу ISaGRAF для каждой из этих платформ. После этого, вы получите информацию о таких специфических особенностях как: запуск целевой задачи при включении питания, обработке ошибок, поведении в целом и т.д.
-  Вторая часть имеет дело с методами реализации пользовательских “C” функций, функциональных блоков и функций преобразования для улучшения целевой задачи ISaGRAF.
-  В третьей части содержится информация о Modbus и реализации ISaGRAF. В ней рассматриваются форматы кадров для различных кодов функций.
-  В четвертой части рассматриваются средства преодоления отказов питания и рестарт целевой задачи ISaGRAF.

Ввод диаграммы FBD


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

        Вставка объектов

Для вставки объекта в диаграмму, выберите соответствующую кнопку на панели и щёлкните мышью в области, в которую нужно произвести вставку.

        Выделение объектов

Выделение графических объектов в основном используется для команд редактирования. Редактор ISaGRAF FBD/LD допускает выбор одного или нескольких существующих объектов диаграммы. Для выделения объектов используется кнопка «выбрать» ( отмеченная стрелкой ) на панели инструментов. Для выделения одного объекта пользователю нужно просто щёлкнуть мышью на его символе. Для выделения нескольких объектов, переместите мышь, выделив прямоугольную область диаграммы. Все графические объекты, входящие в эту область будут отмечены как выделенные. Выделенный объект изображается с маленьким чёрным квадратом вокруг своего символа. При выполнении новой операции выделения выделенные ранее объекты перестают быть выделенными. Для снятия выделения, просто щёлкните мышью в пустой области вне выделенного прямоугольника.

        Вставка комментариев

Комментарии могут быть вставлены в любое место диаграммы. Комментарии не влияют на выполнение программы, они повышают её читабельность. Для вставки блока комментариев, выберите эту кнопку на панели и с помощью мыши выделите прямоугольник на экране, в который нужно вставить комментарий. После этого введите текст комментария. Никакие специальные открывающие или закрывающие символы, такие как «(*» или «*)», не нужны. Размер блока комментариев можно изменить, перетащив мышью угол его границы при выделении.

        Перемещение объектов

Для перемещения объекта в диаграмме Вам нужно выделить его и перетащить в нужное место диаграммы.  Для перемещения связанных объектов пользователю нужно просто переместить их символы. Редактор автоматически перерисует связи между перемещёнными объектами.

 
   Изображение связей

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

        Изменение изображения связей

Команда «Инструменты / Двигать линию» используется, когда выделенная связь в диаграмме меняет свой автоматический тип управления. Эта команда не влияет на связи, соединённые с углом, определяемым пользователем. Если связь изображена тремя отрезками, то эта команда изменит положение второго отрезка. Ниже приведён пример.

               
                                              


        Изменение типа связи

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

        Изображение ступеней LD

Для изображения новой ступени LD сначала вставьте новую шину питания. Затем вставьте виток : он будет автоматически связан с шиной питания. Остальные контакты и вертикальные ИЛИ соединения могут быть непосредственно вставлены в линию ступени без изображения новых линий связи.

Когда новый LD контакт или виток вставлен в пустую область редактируемой диаграммы, новая горизонтальная ступень автоматически изображается от нового вставленного элемента до существующих шин питания слева и справа. Этого не происходит автоматически, если новый элемент вставляется не между шинами питания. Вставленные контакт или виток могут быть перемещены внутри созданной ступени. Горизонтальные линии, созданные редактором при вставке, могут быть выделены и удалены. Вы можете ставить новый LD контакт или символ вита на горизонтальной линии существующей ступени. Редактор автоматически изменит размер ступени и соединит со вставленным элементом.

        Множественное соединение

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

в несколько различных точек диаграммы. То же свойство распространяется на каждый правый край. Число линий, изображённых справа от точки соединения, не ограничено.Две линии соединения не могут быть соединены справа с одной и той же точкой входа. Исключением являются следующие символы LD :

...................... правая шина питания

...................... множественное соединение слева (ИЛИ)

Символы LD могут иметь неограниченное число входов.


Ввод диаграммы LD


Все команды редактирования редактора Quick LD могут быть выполнены как при помощи клавиатуры, так и мыши.

        Сетка редактирования

Диаграмма LD вводится при помощи логической матрицы. Каждая ячейка матрицы может содержать до одного символа LD. Пользуйтесь стрелками клавиатуры или мышью для перемещения по ячейкам. Текущая ячейка помечена инвертированным цветом. Для некоторых операций по копированию/вырезанию/вставке можно помечать сразу несколько ячеек. При помощи мыши это делается так : просто перемещайте курсор мыши внутри диаграммы. При помощи клавиатуры, пользуйтесь стрелками при нажатой клавише SHIFT.

        Вставка новой ступени

Для вставки новой ступени в диаграмму, переместите область выбора за последнюю существующую ступень и вставьте контакт ( нажмите F2 или соответствующую кнопку на панели ). Появится новая ступень с одним витом и одним контактом.

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

Каждая ступень может сопровождаться документацией размером до двух строк текста. Для ввода комментария переместите выделенную область до ячейки над ступенью и нажмите клавишу ENTER или дважды щёлкните мышью на этой ячейке :

               

        Ввод метки ступени

Каждая ступень может быть идентифицирована при помощи имени. Это имя может быть использовано в качестве целевой метки для операции перехода. Для ввода или изменения метки ступени переместите выделенную область на начало и нажмите ENTER или дважды щёлкните мышью на ячейке :

               

Редактор ISaGRAF Quick LD запоминает ранее введённые имена ступеней и адреса переходов. Окно диалога "Прыжок/Метка"  даёт Вам возможность выбрать существующую метку или создать новую.

Если Вы введёте новое имя, оно будет автоматически добавлено в список. Кнопка «Уничтожить» используется для удаления выделенного имени из списка. Она не удаляет метку на выделенной ступени диаграммы. Для этого просто нажмите Принять, когда окно диалога пусто.

        Вставка символов в ступень

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

F2....................... контакт слева от выделенного символа

F3....................... контакт справа от выделенного символа

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

F6....................... блок слева от выделенного символа

F7....................... блок справа от выделенного символа

F8....................... блок параллельно выделенному символу

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

F5....................... добавить виток параллельно выделенному

F9....................... добавить символ перехода параллельно выделенному

Shift + F9............ добавить символ возврата параллельно выделенному

При параллельной вставке ( F4/F8 ), если выбраны несколько контактов ступени, символ вставляется параллельно группе выделенных элементов. Ниже приведён пример :

               



Для вставки символов в диаграмму, Вы также можете воспользоваться командами меню «Вставить». При помощи мыши, Вы можете щёлкнуть на кнопке панели внизу экрана, на которой изображён нужный тип символа :

               


        Ввод символов

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

Для ввода текста, обычно, используются диалоги, включающие списки блоков или переменных. Если выбран режим "Ручной ввод с клавиатуры " в меню "Опции", символы переменных и имена вводятся прямо через прямоугольник редактирования текста.


Введите новый текст и нажмите клавишу "Enter", чтобы установить его, или "Escape", чтобы отказаться от изменений и закрыть редактор. Прямоугольник редактирования текста в режиме "ручной ввод с клавиатуры" не может быть закрыт мышкой.

        Изменение типа контакта или витка

Команда «Редактор / изменить виток /тип контакта» изменяет тип выделенного контакта или витка. Контакт может быть прямым, инвертированным, с положительным или отрицательным определением фронта. Виток может быть прямым, инвертированным, с положительным или отрицательным определением фронта. Нажатие пробела приводит к тому же эффекту.

        Вставка ступени в диаграмму

Команда «Редактор / Вставить ступень» вставляет новую ступень в диаграмму перед выделенной. Вставленная ступень имеет один контакт и один виток.


Ввод Потоковой Диаграммы


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

        Ввод объектов

Чтобы ввести объекты в диаграмму, выберите соответствующую кнопку на панели инструментов и щелкните в графической области, где вы хотите ее ввести. Вы можете либо поместить элемент в свободную область, или ввести его в поток, щелкнув на связи потока. Вставка на связи допускается только для вертикальных связей сверху вниз. Вы можете ввести следующие основные элементы:

...................... действия, программируемые на ST, IL или Quick LD

...................... специфические действия ВВ (выделяет непереносимые действия)

...................... тест (решение), запрограммирован на ST, IL or Quick LD

...................... соединитель

...................... вызов подпрограммы FC

...................... комментарий (текст описания)

Редактор Потоковых Диаграмм ISaGRAF, предлагает вам список классических структур Потоковых Диаграмм. Такие структуры могут быть вставлены только в существующую связь потока. Они не могут быть помещены в пустую область:

...................... If / Then / Else (двоичный выбор)

...................... Repeat until (ждать до выполнения условия)

...................... While (цикл пока выполняется условие)

        Выбор объектов

Выбор графических объектов нужен для большинства команд редактирования. Графический редактор ISaGRAF FC позволяет выбрать один или несколько объектов существующих в области диаграммы. Чтобы выбрать объекты, нужно выбрать "режим выбора" (кнопка со стрелкой) в панели инструментов. Чтобы выбрать один объект, пользователь должен щелкнуть на его символе.

Чтобы выбрать список объектов, протащите мышку в диаграмме для захвата прямоугольной области. Все графические объекты в прямоугольнике помечаются как "выбранный".

Выбранные объекты чертятся темно синим цветом, с маленькими черными квадратами вокруг графического символа.
Можно, также удалять или добавлять один объект во множественный выбор щелчком на символе с нажатием клавиш Shift или Ctrl.

Если делается новый выбор, то все отметки ранее выбранных объектов исчезают. Чтобы удалить существующий выбор, просто щелкните мышкой в пустой области, за пределами прямоугольника ограничивающего выбранные объекты.

Для одиночного выбора, можно использовать стрелки клавиатуры, чтобы передвигать выбор с одного объекта на другой в схеме. Потоковые связи так же могут быть выбраны.

        Вставка комментариев

Комментарии могут быть вставлены в любое пустое место диаграммы. Комментарии не оказывают влияние на исполнение программы. Они делают диаграмму более читаемой. Чтобы ввести блок комментариев, выберите соответствующую кнопку в панели инструментов и щелкните на то место в диаграмме, где должен быть помещен комментарий. Щелкните дважды на комментарии, чтобы ввести изменить текст. Никаких специальных ограничивающих символов, типа  "(*" и "*)", не нужно для ввода текста в блоке комментариев. Можно изменить размер блока комментариев путем перетаскивания угла его границы, когда он выбран.

        Черчение связей потока

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

        Использование соединителей

Редактор Потоковых Диаграмм ISaGRAF позволяет использовать графические соединители, как замену видимых связей потока. Соединители могут быть очень полезны при использовании их вместо очень длинных линий и повышают читаемость схемы.


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

Соединитель помещается на схеме как другой объект FC. Он представляется в виде кружка содержащего числовую ссылку элемента (назначения связи потока). Краткое описание элемента появляется рядом с кружком соединителя.



        Передвижение объектов

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

Когда один элемент (действие, тест...) перемещается, редактор Потоковых Диаграмм ISaGRAF автоматически двигает вместе с выбранным элементом все элементы находящиеся ниже и соединенные с ним. Эта особенность не работает в случае множественного выбора.

        Изменение размеров объектов

Можно свободно изменять размер любого графического объекта, за исключением символов "Начало", "Конец" и соединителей. Чтобы изменить размер элемента вы, во-первых, должны его выбрать. Затем перетащите мышкой маленький квадратик, нарисованный на его границе, чтобы изменить размер.

Когда элемент соединен со связью потока, изменение его горизонтальных размеров действует на правую и на левую границы, так что при изменении размеров элемент остается правильно центрированным на связи.

        Обмен выходов на тесте

Вы можете обменять положения выходов Да / Нет на тесте (решение). Чтобы сделать это, просто, щелкните дважды либо на "Да" либо на "Нет" возле символа теста.




Ввод программ уровня


Для ввода программы 2-уровня пользователю нужно дважды щелкнуть мышью на прямоугольнике шага или перехода. Программа 2 уровня появляется справа в окне SFC. Линию раздела между схемой SFC и программой уровня 2 можно свободно перемещать.

Вы можете открыть одновременно 2 области уровня 2. Можно использовать следующие команды клавиатуры, мышки или меню "Редактор":

                                                  Клавиатура  Мышь                   Меню "Редактор"

Открыть в последнем окне    Enter              Double Click            Редактировать

                                                                                                        уровень

2

Открыть в отдельном окне    Ctrl+Enter       Ctrl + DoubleClick    Редактировать

                                                                                                        уровень 2

                                                                                                        в отдельном

                                                                                                        окне

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

По умолчанию для написания программ 2-уровня используется язык ST. Для переходов 2-уровня может быть использован редактор Quick LD. Откроется независимое окно для ввода программы.  Используйте кнопку "ST/LD" в полосе заголовка уровня 2 для смены активного языка. Эта команда действительна только тогда, когда окно программирования уровня 2 - пусто.

Прямоугольник редактирования возникает вверху окна уровня 2. Он используется для ввода короткого текста описания. Этот текст появится, как комментарий IEC на чертеже символов SFC. Это очень полезно, так как он может быть использован в других командах, таких, как "Перейти..." и также в надписях шагов и переходов SFC.

Команда "Опции / Обновить" может быть использована, когда открыты окна уровня 2, для перерисовки схемы SFC с модифицированными программами уровня 2.


Для ввода программы 2-уровня пользователю нужно дважды щелкнуть мышью на символе действия или теста. Программы уровня 2 показаны справа в окне FC. Разделительная линия между схемой  FC и программами уровня 2 может свободно двигаться. Вы можете открыть одновременно одну или две области уровня 2. Имеются следующие команды клавиатуры, мышки и меню "Редактор":

                                               Клавиатура  Мышь                    Меню "Редактор"

Открыть в последнем окне Enter               Double Click           Редактировать

                                                                                                     уровень 2

Открыть в отдельном окне Ctrl+Enter       Ctrl + DoubleClick   Редактировать

                                                                                                     уровень 2 в

                                                                                                     отдельном окне

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

По умолчанию для написания программ 2-уровня используется язык ST (Структурный текст). Языком программирования может быть также IL или Quick LD. Имя выбранного языка появляется в маленьком прямоугольнике в полосе заголовка уровня 2. Запустите команду "Опции / Установить язык уровня 2 " из меню или щелкните по этому прямоугольнику, чтобы изменить активный язык. Эта команда действительна только, если окно программ уровня 2 пусто.

Прямоугольник редактирования возникает вверху окна уровня 2. Он используется для ввода короткого текста описания. Этот текст, также, появится, как комментарий IEC, на чертеже символов FC. Это очень полезно, так как это используется другими командами, такими как "Перейти..." и также в надписях действий и тестов FC.

Команда "Опции / Обновить" может быть использована в любой момент, когда открыто окно уровня 2, чтобы обновить основную схему FC измененными программами уровня 2.



Ввод точек таблицы


Окно диалога “Редактор”

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

Точки вводятся при помощи команд окна. Пользователь должен подчиняться определенному количеству правил для определения точек, описанных в конце этой главы. Окно слева всегда содержит список существующих точек для текущей редактируемой таблицы. Столбик слева показывает электрические (внешние) значения точки. Столбик справа показывает физические (внутренние) значения. Пользователь должен выбрать точку в списке для того, чтобы изменить ее значение или очистить (удалить) ее. Последний выбор в списке (“…   …”) используется для определения новой точки. Окно внизу справа показывает текущую редактируемую таблицу как графическую кривую. Оси и координаты не показаны, так как это пропорциональное представление кривой. Это представление полезно как быстрая проверка того, что кривая правильно определена.

        Определение новой точки

Для определения новой точки выберите последнее вхождение (“…   …”) в списке точек. Это также режим по умолчанию, когда запускается определение новой таблицы преобразования. Пользователь должен ввести электрические (внешние) и физические ( внутренние) значения каждой точки. Значения сохраняются как числа с плавающей точкой простой точности. Помните, что как минимум две точки должны быть введены для определения кривой.  Когда оба значения введены, нажатие кнопки “Сохранить”

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

        Изменение точки

Для изменения значения существующей точки сначала выберите ее из списка. После этого новые электрические (внешние) и физические ( внутренние) значения могут быть введены. Значения сохраняются как числа с плавающей точкой простой точности. Когда оба значения введены, нажатие кнопки “Сохранить” обновляет точку в таблице.

        Очищение точки

Существующая точка очищается выбором ее в списке и нажатием кнопки “Сбросить”. Помните, что как минимум две точки

должны быть введены для определения таблицы.



Выбор переменной из словаря


           При редактировании текстовой программы ( IL или ST ) «Редактор / Вставить переменную» позволяет выбрать объявленную ранее переменную для вставки на текущую позицию курсора. При редактировании программ FBD или LD требуется для описания контактов, витков, параметров блоков ввода/вывода или переменных FBD. В обоих случаях появляется следующее окно диалога :

               

                Окно выбора «Область» для выбора глобальных или локальных переменных. Окно выбора справа позволяет выбрать тип данных. Маленькие иконы рядом с окном выбора типа - это кнопки, которые используются для выбора наиболее часто используемых типов данных :

...................... Boolean

...................... Integer / Real

...................... Timer

...................... Message

                Для выбора переменой щёлкните мышью на имени из списка. В результате этого её имя и описание появятся вверху списка. Затем нажмите кнопку «Принять» для подтверждения выбора. Можно также непосредственно ввести имя переменной, не используя список.



Выгрузить


ISaGRAF поддерживает возможность выгрузки приложения, которое было сохранено в целевой задаче. Процедура выгрузки связывается с целевой задачей для того, чтобы загрузить встроенный упакованный код (ВУК) и, затем, восстанавливает загруженный проект в среде разработки.

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



Выгрузка проекта


Диалог «Выгрузить» запускается командой «Файл» менеджера проектов ISaGRAF. Команда Выгрузить не имеет отношения к существующему проекту в системе разработки.  Выбранный в настоящее время проект в списке проектов не имеет отношения к механизму выгрузки. Чтобы выгрузить приложение работающее на целевой системе, Вы должны:

1-убедиться в том, что целевая задача правильно подключена

2-установить параметры связиsupl_con в соответствии с типом связи

3-нажать кнопку Run

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

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

        Возможные ошибки

Следующие ошибки могут возникнуть при выгрузке проекта. О них Вы будете проинформированы.

- невозможно установить связь с целевой задачей

- целевая задача имеет более раннюю версию чем 3.22

- нет приложения в целевой задаче

- нет ВУК в целевой задаче



Выражения и скобки


Выражения ST объединяют операторы и операнды (переменные или константы). Для одного выражения (объединяющего операнды с одним  ST оператором), тип операндов должен быть одним и тем же.  Это одно выражение имеет тот же тип, что и его операторы и может быть использовано в более сложном выражении. Например:

      (boo_var1 AND boo_var2) BOO тип

      not (boo_var1)                    BOO тип

      (sin (3.14) + 0.72)               REAL ANALOG тип

      (t#1s23 + 1.78)                   неправильное выражение

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

      2 + 3 * 6                               равно  2+18=20           оператор * имеет высший        приоритет

      (2+3) * 6                              равно 5*6=30                     приоритет задается скобками

Предупреждение:

Максимальное количество вложенных скобок - 8.



Вызов других инструментов ISaGRAF


        Проверка ( компиляция ) программ

                Команда «Файл / Проверить» запускает генератор кода ISaGRAF для проверки синтаксиса редактируемой программы. Если она написана на языке SFC, то проверяются как 1-уровень, так и 2-уровень. Когда проверка синтаксиса завершена, окно генерации необходимо закрыть для продолжения редактирования. Если приложение состоит только из одной программы ( редактируемой в данный момент ), то, при отсутствии ошибок, будет создан код приложения. Команда «Создать / Опции компилятора» используется для установки параметров компиляции и оптимизации. Обратитесь к разделу «Использование Генератора Кода» этого раздела за более подобной информацией о генерации кода и компиляции.

 
   Симуляция или отладка приложения

                Команды «Файл / Симулировать» и «Файл / Отладка» запускают графический отладчик ISaGRAF как для режима Симуляции, так и для реального соединения. Они переоткрывают программу на SFC в режиме отладки. В режиме отладки в программе нельзя произвести никаких изменений.

        Редактирование словаря переменных

                Команда «Файл / Словарь» используется для редактирования словаря переменных текущей программы или текущего приложения. Таким же способом можно редактировать макросы. Описатель локальный и макросы относятся к текущей программе.



Вызов функции и функционального блока из действия


Подпрограммы, функции или функциональные блоки (написанные на ST, IL, LD, или FBD) или “C” функции и “C” функциональные блоки, могут быть вызваны непосредственно из блока SFC действия на основе следующего синтаксиса:

Для подпрограмм и “C” функций:

             ACTION (P) :

                         result := sub_program ( ) ;

             END_ACTION;

или

             ACTION (N) :

                         result := sub_program ( ) ;

             END_ACTION;

Для функциональных блоков на "C" или на ST, IL, LD, FBD:

             ACTION (P) :

                         Fbinst(in1, in2);

                         result1 := Fbinst.out1;

                         result2 := Fbinst.out2;

             END_ACTION;

или

             ACTION (N) :

                         Fbinst(in1, in2);

                         result1 := Fbinst.out1;

                         result2 := Fbinst.out2;

             END_ACTION;

Более подробный синтаксис можно найти в описании языка ST.

Пример вызова подпрограммы в блоке действия:

 

(* Программа SFC с вызовом подпрограммы в блоке действия *)

 



Вызов функций и функциональных блоков из FBD


Язык FBD позволяет вызывать подпрограммы, функции и функциональные блоки. Подпрограммы, функции и функциональные блоки представляются прямоугольником функции. Имя, написанное в прямоугольнике, - это имя подпрограммы, функции или функционального блока. В случае подпрограммы или функции единственным выходом прямоугольника является возвращаемая величина. Функциональные  блоки могут иметь более одного выхода.

(* Пример FBD программы использующей блок SUB PROGRAM *)

(* ST Эквивалент *)

net_weight := Weighing (mode, delta); (*вызов подпрограммы*)

If (net_weight = 0) Then Return; End_if;

weight := net_weight + tare_weight;



Вызов менеджера архивов


Диалог "Архив" может быть вызван из меню "Инструменты / Архив" окна Управления Проектами, чтобы сохранить или восстановить проект или общие данные.

Диалог "Архив" может также быть запущен командой "Инструменты / Архив" Менеджера Библиотек ISaGRAF, чтобы сохранить или восстановить элементы библиотеки выбранной в настоящее время в окне Менеджера Библиотек.

        Проекты

Проект всегда сохраняется в его полной форме. Все компоненты проекта (исходные программные файлы, объектные коды и исполняемые коды приложения) сохраняются вместе в одном и том же архивном файле. Выбор опции “сжатие” сокращает размер архива проекта.

        Элементы библиотеки

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

        Общие данные

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

common.eqv... общие макроопределения

oem.bat............ пользовательский командный файл MS-DOS

Эти файлы сохраняются один за одним на резервный диск, в их оригинальной форме. Соответствующие архивные файлы никогда не сжимаются.



Вызов подпрограмм из перехода


Любая подпрограмма или функция (написанные на FBD, LD, ST или IL) или “C” функция могут вычислять значение условия присоединенного к переходу, согласно следующему синтаксису:

             < sub_program > ( ) ;

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

             return value = FALSE                                  условие FALSE

             return value = TRUE                                    условие TRUE

Пример:

(* Программа SFC с вызовом программ для переходов *)



Вызовы функций и функциональных блоков


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

- Подпрограммы

- Библиотечные функции и функциональные блоки, написанные на IEC языках

- “C” функции и функциональные блоки

- Функции преобразования типов

        Вызовы подпрограмм или функций

Имя:                              имя вызываемой подпрограммы или библиотечной функции написанной на IEC языке или “C”

                                     

Значение:                   вызывает ST, IL, LD, или FBD подпрограммы или функции или “C” функции и дает возвращаемое значение

                                     

Синтаксис:                 <variable> := <subprog> (<par1>,...<parN>);

Операнды:                 За типом возвращаемого значения и параметрами вызова должен следовать интерфейс определенный для подпрограммы

                                     

Возвращаемое значение:                значение возвращаемое подпрограммой

Вызовы подпрограмм могут быть использованы в выражении. Они также могут быть использованы в переходах SFC.

Пример 1: вызов подпрограммы

(* Основная ST программа *)

(* получает аналоговое значение и превращает его во временное значение *)

ana_timeprog := SPlimit ( tprog_cmd );

appl_timer := tmr (ana_timeprog * 100);

(* Вызывается FBD программа 'SPlimit' *)

Пример 2: Вызов функции

(* функции использующиеся в сложных выражениях: min, max, right, mlen and left - стандартные "C" функции *)

limited_value := min (16, max (0, input_value) );

rol_msg := right (message, mlen (message) - 1) + left (message, 1);

        Вызов функциональных блоков

Имя:                              имя экземпляра функционального блока

Значение:                   вызывает функциональный блок из библиотеки ISaGRAF или библиотеки пользователя и передает возвращаемые параметры

Синтаксис:                 (* вызвать функциональный блок *)

                                      <blockname> ( <p1>, <p2> ... );


                                      (получить возвращаемые параметры *)

                                      <result> := <blockname>. <ret_param1>;

                                      ...

                                      <result> := <blockname>. <ret_paramN>;

Операнды:                 Параметры и выражения, которые имеют тот же тип, что и параметры этого функционального блока

                                     

Возвращаемое значение:                См. Синтаксис получения возвращаемых параметров

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

Пример:

(*вызов функционального блока ST программой *)

(* объявить экземпляр функционального блока в словаре: *)

(* trigb1 : block R_TRIG - определение переднего фронта*)

(* активизация функционального блока из языка ST *)

trigb1 (b1);

(* доступ к возвращаемым параметрам *)

If (trigb1.Q) Then nb_edge := nb_edge + 1; End_if;


Wait


Значение:     Подвешивает исполнение цикла до истечения задержки

Синтаксис:  Wait <delay>

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

задержка выраженная в соответствии с соглашениями IEC для временных констант. Префиксы "T#" или "TIME#" могут быть опущены. Величина задержки должна быть между 10 миллисекундами и  1 часом.

Замечание:  Точность инструкции "Wait" зависит от системы Windows. Также, задержка должна рассматриваться с точностью плюс минус один цикл ISaGRAF. Если инструкция "Wait" достигнута, циклы ISaGRAF выполняются до тех пор пока не истечет задержка и перед продолжением выполнения скрипта.

Пример:        PrintTime

         Wait 2s

         PrintTime

Выход:    15:45:27

         15:45:29



=XOR


Аргументы: 

IN1                       BOOLEAN

IN2                       BOOLEAN

Q                          BOOLEAN     логическое ИЛИ двух или более входов

Описание:

Логическое ИЛИ двух или больше значений.

(*FBD пример блоков “XOR”*)

(* ST эквивалент: *)

bo10 := bi101 XOR NOT (bi102);

bo5 := (bi51 XOR bi52) XOR bi53;

(* IL эквивалент: *)

LD                     bi101

XORN                bi102

ST                     bo10

LD                     bi51

XOR                  bi52

XOR                  bi53

ST                     bo5



XOR_MASK


Аргументы:

IN                         INT                 целый формат

MSK                    INT                 целый формат

Q                          INT                 побитовый логический исключающий OR между IN и MSK

Описание:

Целый аналоговый побитовый исключающий ИЛИ.

(*FBD пример блоков XOR_MASK*)

(* ST эквивалент: *)

crc32 := XOR_MASK (prevcrc, nextc);

result := XOR_MASK (16#012, 16#011); (* equals 16#003 *)

(* IL эквивалент: *)

LD                     prevcrc

XOR_MASK      nextc

ST                     crc32

LD                     16#012

XOR_MASK      16#011

ST                     result



Заблокированный В/В и виртуальный В/В


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

- это статическое свойство и сохраняется, когда приложение останавливается и перезапускается.

Общие положения главных свойств управления В/В

                                   Виртуальный атрибут    Команда блокировки

средство выбора    соединение платы В/В      отладчик

определение             статичный                          динамичный

режим выбора         плата                                  переменная

приложение              проверка достоверности и тесты обслуживание

Следующая схема объясняет поток данных В/В между задачами ISaGRAF:

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

Когда выходная переменная заблокирована, выполняемое ядро и выходной драйвер не соединены. В этом случае, доступ к выходному устройству еще возможен через выходной драйвер, при помощи отладчика ISaGRAF:

Когда устанавливается виртуальный атрибут для входа, входная база данных и соответствующие входные устройства не соединены. Виртуальный драйвер В/В заменяет реальный драйвер.

Установка виртуального атрибута следует тем же самым правилам, что для входных плат, что для выходных. Для выходных плат ядро ISaGRAF обновляет выходную базу данных. Эта база данных и соответствующие выходные устройства, тем не менее, не соединены. Виртуальный драйвер В/В заменяет реальный.

Обобщим все возможности:



Замечание для пользователей ISaGRAF V


Прожектор может читать графику и списки временных диаграмм построенные средствами ISaGRAF V3.0 или V3.2. Такие файлы возникают в диалоге "Открыть", с описанием их источника. Файлы могут быть прочтены и свободно модифицированы Прожектором.

При открытии графики ISaGRAF V3.2, документ автоматически помечается как "Закрыто". Удалите опцию "Закрыто" из меню "Файл" если вы хотите изменять графику.

Если графика или список временных диаграмм ISaGRAF 3.2 открыт, Прожектор всегда предлагает сохранить его в родном формате Прожектора. Диалог "Сохранить Как " открывается, когда закрывается такой документ.



Зарезервированные ключевые слова


Ниже представлен список зарезервированных ключевых слов. Такие идентификаторы не могут быть использованы в качестве имен программ, переменных, “C” функций или функциональных блоков.

A                       ANA, ABS, ACOS, ADD, ANA, AND, AND_MASK, ANDN, ARRAY, ASIN, AT, ATAN,

B                       BCD_TO_BOOL, BCD_TO_INT, BCD_TO_REAL, BCD_TO_STRING, BCD_TO_TIME, BOO, BOOL, BOOL_TO_BCD, BOOL_TO_INT, BOOL_TO_REAL, BOOL_TO_STRING, BOOL_TO_TIME, BY, BYTE,

C                       CAL, CALC, CALCN, CALN, CALNC, CASE, CONCAT, CONSTANT, COS,

D                       DATE, DATE_AND_TIME, DELETE, DINT, DIV, DO, DT, DWORD,

E                       ELSE, ELSIF, EN, END_CASE, END_FOR, END_FUNCTION, END_IF, END_PROGRAM, END_REPEAT, END_RESSOURCE, END_STRUCT, END_TYPE, END_VAR, END_WHILE, ENO, EQ, EXIT, EXP, EXPT,

F                       FALSE, FEDGE, FIND, FOR, FUNCTION,

G                       GE, GFREEZE, GKILL, GRST, GSTART, GSTATUS, GT,

I                         IF, INSERT, INT, INT_TO_BCD, INT_TO_BOOL, INT_TO_REAL, INT_TO_STRING, INT_TO_TIME,

J                        JMP, JMPC, JMPCN, JMPN, JMPNC,

L                       LD, LDN, LE, LEFT, LEN, LIMIT, LINT, LN, LOG, LREAL, LT, LWORD,

M                       MAX, MID, MIN, MOD, MOVE, MSG, MUL, MUX,

N                       NE, NOT,

O                       OF, ON, OPERATE, OR, OR_MASK, ORN,

P                       PROGRAM

R                       R, REDGE, READ_ONLY, READ_WRITE, REAL, REAL_TO_BCD, REAL_TO_BOOL, REAL_TO_INT, REAL_TO_STRING, REAL_TO_TIME, REDGE, REPEAT, REPLACE, RESSOURCE, RET, RETAIN, RETC, RETCN, RETN, RETNC, RETURN, RIGHT, ROL, ROR,

S                       S, SEL, SHL, SHR, SIN, SINT, SQRT, ST, STN, STRING, STRING_TO_BCD, STRING_TO_BOOL, STRING_TO_INT, STRING_TO_REAL, STRING_TO_TIME, STRUCT, SUB, SYS_ERR_READ, SYS_ERR_TEST, SYS_INITALL, SYS_INITANA, SYS_INITBOO, SYS_INITTMR, SYS_RESTALL, SYS_RESTANA, SYS_RESTBOO, SYS_RESTTMR, SYS_SAVALL, SYS_SAVANA, SYS_SAVBOO, SYS_SAVTMR, SYS_TALLOWED, SYS_TCURRENT, SYS_TMAXIMUM, SYS_TOVERFLOW, SYS_TRESET, SYS_TWRITE, SYSTEM,

T                       TAN, TASK, THEN, TIME, TIME_OF_DAY, TIME_TO_BCD, TIME_TO_BOOL, TIME_TO_INT, TIME_TO_REAL, TIME_TO_STRING, TMR, TO, TOD, TRUE, TSTART, TSTOP, TYPE,

U                       UDINT, UINT, ULINT, UNTIL, USINT,

V                       VAR, VAR_ACCESS, VAR_EXTERNAL, VAR_GLOBAL, VAR_IN_OUT, VAR_INPUT, ,VAR_OUTPUT,

W                      WHILE, WITH, WORD,

X                       XOR, XOR_MASK, XORN

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