Следующая таблица представляет стандартные операторы языка IL:
Оператор | Модификатор | Операнд | Описание | ||||
LD | N | переменная, константа | Загружает операнд
| ||||
ST | N | переменная | Запоминает текущий результат | ||||
S
R | BOO переменная
BOO переменная | Устанавливает на TRUE
Сбрасывает на FALSE | |||||
AND
& OR XOR | N (
N ( N ( N ( | BOO
BOO BOO BOO | логическое И
логическое И логическое ИЛИ исключающее ИЛИ | ||||
ADD
SUB MUL DIV | (
( ( ( | переменная, константа
переменная, константа переменная, константа переменная, константа | Сложение
Вычитание Умножение Деление | ||||
GT
GE EQ LE LT NE | (
( ( ( ( ( | переменная, константа
переменная, константа переменная, константа переменная, константа переменная, константа переменная, константа | Проверить: >
Проверить: >= Проверить: = Проверить: <= Проверить: < Проверить: <> | ||||
CAL
JMP RET | C N
C N C N | Экземпляр функционального блока
имя метка | Вызов функционального блока
Прыжок на метку Возврат из подпрограммы | ||||
) | Выполнить задержанную операцию |
В следующей главе описаны операторы, которые являются специфическими для языка IL, другие стандартные операторы можно найти в главе “Стандартные операторы, функциональные блоки и функции”.
Оператор LDОперация: загружает значение в текущий результат
Допустимые модификаторы: N
Операнд: константа, внутренняя, входная или выходная переменная
Пример:
(* ПРИМЕР LD ОПЕРАЦИЙ *)
LDex: LD false (* результат := FALSE boolean constant *)
LD true (*результат := TRUE boolean constant *)
LD 123 (*результат := integer constant *)
LD 123.1 (*результат := real constant *)
Для любой переменной, функциональных блоков или макросов должно существовать полное описание. Поля описания различаются в зависимости от типа объекта. Следующие поля определены для любого типа :
Имя................................. Имя переменной; первый символ должен быть буквой, остальные - буквы, цифры или символы подчёркивания.
Сетевой адрес............ Шестнадцатеричный сетевой адрес ( не является необходимым ). Переменная с ненулевым сетевым адресом может быть прослежена внешней системой.
Коммент........................ комментарий описания переменной
Хранить......................... эта опция показывает, что переменная должна сохраняться в резервной памяти
Это описание полей для булевых переменных :Атрибут......................... определяет, является переменная внутренней, константой, ввода/вывода
"False" строка.............. строка, используемая в качестве ложного значения во время отладки
"True" строка............... строка, используемая в качестве истинного значения во время отладки
Нач. знач. true.............. если эта опция установлена, то начальное значение истинно, иначе - ложно
Это описание полей для целых или вещественныханалоговых переменных :
Атрибут......................... определяет, является переменная внутренней, константой, ввода/вывода
Формат.......................... определяет целую или вещественную переменную. Формат может быть выбран во время отладки.
Единицы....................... строка, используемая для определения физического цикла отладки
Преобраз...................... Имя таблицы или функции преобразования, присоединённой к переменной ( только для ввода/вывода )
Нач. знач........................ Начальное значение переменной. По умолчанию 0.
Это описание полей для переменных времени:
Атрибут......................... определяет, является переменная внутренней, константой
Меню “Редактор” содержит команды для определения выбранной платы (устанавливает ее параметры) и подключения переменных В/В к их каналам.
Выбор типа плат В/ВПеред подключением переменных В/В к плате, должна быть введена идентификация платы. Библиотека предопределенных плат доступна на ISaGRAF workbench. Эта библиотека может быть скомпилирована одним или более поставщиками устройств В/В. Команда “Редактор / Установить плату/ оборудование”
используется для установки идентификации платы. Эта команда может быть использована для выбора либо одиночной платы, либо сложного оборудования В/В из библиотеки ISaGRAF. Также возможна установка соответствующей платы или оборудования двойным щелчком мыши на разъеме.
Все каналы одной платы имеют один и тот же тип (логическое, целое/вещественное или сообщение) и направление (вход или выход). Переменные типа вещественное и целое не различаются в процессе подключения В/В. Сложное оборудование В/В представляет устройство В/В с каналами различных типов и направлений. Сложное оборудование В/В представляется как список одиночных плат В/В. Оно использует только один разъем в списке шасси.
Удаление платыКоманда “Редактор / Очистить слот ” используется для удаления выбранной платы В/В. Если переменные уже подключены к соответствующим каналам, то они автоматически отключаются при освобождении разъема.
Действительные платы и виртуальные платыКоманда “Редактор / Действительная /виртуальная плата”
устанавливает действительность выбранной платы или сложного оборудования. Следующие иконки используются в списке шасси для отображения действительности платы:
....................... реальная плата ....................... виртуальная платаВ действительном режиме переменные В/В напрямую соединены к соответствующим устройствам В/В. Операции ввода или вывода в программах приложений напрямую связаны с состояниями соответствующих входов или выходов существующих устройств В/В. В виртуальном режиме
переменные В/В обрабатываются именно как внутренние переменные.
Они могут быть прочитаны или изменены при помощи отладчика, так что пользователь может имитировать обработку В/В, но без соединения с внешним миром.
Команда “Ресурсы” меню “Опции” позволяет пользователю определять ресурсы. Ресурсы - это любые, определенные пользователем данные (конфигурация сети, установки оборудования …) любого формата (файл, список значений), которые должны быть соединены с генерируемым кодом, чтобы быть загруженными вместе на целевую PLC. Такие данные напрямую не управляются ядром ISaGRAF, и в основном предназначены для другого программного обеспечения, установленного на целевом PLC. Обратитесь к своему руководству по оборудованию для дальнейшей информации о доступных ресурсах.
Файл определения ресурсовРесурсы, определенные в “Файле определения ресурса ” сохраняются вместе с другими файлами проекта ISaGRAF. Это чисто текстовый файл в ASCII кодах, созданный Компилятором Ресурсов ISaGRAF. Этот компилятор автоматически запускается во время построения кодов приложения. Эта секция объясняет синтаксис этого файла. Файл определения ресурсов использует лексические правила языка ST. Комментарии, начинающиеся с (* и заканчивающиеся символами *), могут быть вставлены в любом месте текста. Строки разграничиваются одиночными апострофами. Обратитесь ко второй части этого руководства для большего объяснения лексических форматов, используемых для ввода числовых значений.
Справочник по языкуНиже дан список ключевых слов и операторов, используемых в файле определения ресурсов.
ULONGDATA
Значение: Определяет ресурс, который является списком целых значений. Значения сохраняются в получаемом коде как 32 битные целые. Значения сохраняются в порядке, указанном в файле определения ресурсов. Значения должны быть разделены запятыми. Имя ресурса не должно превышать 15 символов.
Синтаксис: ULONGDATA '<имя_ресурса>'
BEGIN
...целевой_выбор...
...список переменных...
END
Пример: ULongData 'MYDATA'
Begin
...
0, -1, 100_000, (* десятичные *)
16#A0B1, 2#1011_0101 (*шестнадцатеричн,двоичные*)
Графический стиль и установки существующего символа могут быть изменены, если щелкнуть по его символу или запустить команду «Редактор/ Установить стиль». Диалог «Стиль» также открывается, когда новый символ добавляется в документ. Он объединяет следующую информацию:
Графический стиль и установки:Стиль отображения (текст, колонка, кривая…) символа может быть изменен динамически. Цвета могут быть настроены с помощью соответствующих коробок. Если стиль - “булевская иконка”, должен быть определен путь соответствующий .ICO файлу. Используйте “…” кнопки рядом с этими контролями, чтобы посмотреть иконки существующие на диске.
Масштаб:Это максимальное значение, которое может быть колонками или кривыми. Для биполярных колонок и кривых, используется одно и то же абсолютное значение на положительной и отрицательной осях.
Имя переменной:Когда поле "Имя" является активным, кнопка "…" позволяет пользователю найти имя уже объявленной в словаре.
Заголовок:Заголовок может быть представлен рядом с графическим символом или в графической схеме. Вы можете настроить расположение заголовка (верх, низ, лево или право) и его содержание. Заголовок может быть комбинацией имени переменной и его значения, сформатированного как текст. Настройка заголовка не влияет на схему списка.
Командная переменная:Если установлена опция "Командная переменная", пользователь может изменять значение связанной переменной двойным щелчком по графическому символу.
Замечание: Для этого оператора количество входов может быть больше чем два.
Аргументы:
(inputs) BOOLEAN
output BOOLEAN логическое ИЛИ двух или более входов
Описание:
Логическое ИЛИ двух или больше значений.
(*FBD пример блоков “OR”*)
(* ST эквивалент: *)
bo10 := bi101 OR NOT (bi102);
bo5 := (bi51 OR bi52) OR bi53;
(* IL эквивалент: *)
LD bi101
ORN bi102
ST bo10
LD bi51
OR bi52
OR bi53
ST bo5
Аргументы:
IN INT целый формат
MSK INT целый формат
Q INT побитовый логический OR между IN и MSK
Описание:
Целый аналоговый побитовый ИЛИ.
(*FBD пример блоков OR_MASK*)
(* ST эквивалент: *)
is_odd := OR_MASK (xvalue, 1); (* делает значение всегда нечетным *)
result := OR_MASK (16#abc, 16#f0f); (* равно 16#fbf *)
(* IL эквивалент: *)
LD xvalue
OR_MASK 1
ST is_odd
LD 16#abc
OR_MASK 16#f0f
ST result
Для связи шагов и переходов используются одиночные линии. Это ориентированные связи. Когда ориентация не задана явно, связь ориентирована сверху вниз.
FBD диаграмма описывает функцию между входными переменными и выходными переменными. Функция описывается как множество элементарных функциональных блоков. Входные и выходные переменные связываются в блоки при помощи линий связи. Выход функционального блока может быть также связан с входом другого функционального блока.
Вся функция FBD программы построена из стандартных элементарных
функциональных блоков из библиотеки ISaGRAF. Каждый функциональный блок имеет фиксированное количество входных точек связи и фиксированное количество выходных точек связи. Функциональный блок представляется одиночным прямоугольником. Входы соединяются с левым краем. Выходы соединяются с правым краем. Элементарный функциональный блок реализует одну функцию между входами и выходами. Имя функции, реализуемой блоком, пишется на символе прямоугольника. Каждый вход или выход блока имеют определенный тип.
Входные переменные FBD программы должны быть связаны с точками входа функционального блока. Тип каждой переменной должен быть тем же что и тип соответствующего входа. Входом FBD блока может быть константа, любая внутренняя, входная или выходная переменная.
Выходные переменные FBD программы должны быть связаны с точками выхода функционального блока. Тип каждой переменной должен быть тем же что и тип соответствующего выхода. Выходом FBD блока может быть внутренняя или выходная переменная или имя программы (только для подпрограмм). Когда выходом является имя редактируемой подпрограммы, оно представляет присвоение возвращаемого значения подпрограммы (возвращаемого в вызывающую программу). Входные и выходные переменные, входы и выходы функциональных блоков соединены линиями связи. Линии могут быть использованы для соединения двух логических точек диаграммы:
- Входной переменной и входа функционального блока
- Выхода функционального блока и входа другого блока
- Выхода функционального блока и выходной переменной
Связи ориентированы, это означает, что данные передаются с левого конца к правому. Левый и правый концы связи должны быть одного типа.
Множественные правые связи могут быть использованы чтобы передать информацию от его левого конца к каждому правому концу. Все концы связи должны быть одного типа.
SFC программа - это графический набор шагов и переходов, соединенных вместе направленными связями. Для обозначения схождений и расхождений используются множественные связи. Некоторые части программы могут быть отделены и представлены в основной схеме одним символом - макро шагом. Вот основные графические правила
для SFC:
- шаги не могут следовать подряд
- переходы не могут следовать подряд
IL программа - это список инструкций . Каждая инструкция должна начинаться с новой строки и должна содержать оператор, с дополнительным модификаторами, если нужно, для специфических операций, один или несколько операндов, разделенных запятой (‘,’). Инструкции может предшествовать метка с двоеточием (‘:’). Если к инструкции присоединен комментарий, то он должен находиться в конце строки. Комментарий всегда начинается с ‘(*’ и заканчивается ‘*)’. Между инструкциями может быть введена пустая строка. Комментарии могут быть помещены в пустые строки.
Метка Оператор Операнд Комментарий
Start: LD IX1 (* нажать кнопку *)
ANDN MX5 (* команда разрешена*)
ST QX2 (* запустить мотор *)
МеткиИнструкции может предшествовать метка с двоеточием (‘:’). Метка может быть помещена на пустую строку. Метки используются в качестве операндов для некоторых операций, таких как прыжки. Имена меток должны удовлетворять следующим правилам:
- имя не может быть длиннее 16 символов
- первым символом должна быть буква
- последующими символами могут быть буквы, цифры или символ подчеркивания
В одной программе одно и то же имя не может быть использовано для обозначения более чем одной метки. Имя метки может совпадать с именем переменной.
Модификаторы оператораНиже представлены возможные модификаторы оператора. Символ модификатора должен завершать имя оператора, без пробелов между ними.
N булевское отрицание операнда
( задержанная операция
С условная операция
Модификатор ‘N’ определяет булевское отрицание операнда Например, инструкция ORN IX12 интерпретируется как: result := result OR NOT (IX12).
Модификатор скобка ‘(‘ указывает на то, что выполнение инструкции должно быть задержано до тех пор пока не встретится закрытая скобка ‘)’.
'(' |
модификатор |
указывает операцию, которая должна быть задержана |
')' |
оператор |
выполняет задержанную операцию |
ST программа - это список ST операторов. Каждый оператор заканчивается точкой с запятой (;). Имена используемые в исходном коде (идентификаторы переменных, константы, ключевые слова) разделены неактивными разделителями
(пробелами, символами окончания строки и табуляции) или активными разделителями, которые имеют определенное значение (например, разделитель “>” означает сравнение “больше чем”. В текст могут быть введены комментарии. Комментарий должен начинаться с “(“ и заканчиваться “)”.Каждый оператор заканчивается точкой с запятой (“;”). Основные операторы языка ST:
- оператор присвоения (variable := expression)
- вызов подпрограммы или функции
- вызов функционального блока
- операторы выбора (IF, THEN, ELSE, CASE)
- итеративные операторы (FOR, WHILE, REPEAT)
- управляющие операторы (RETURN, EXIT)
- специальные операторы для связи с такими языками как SFC
Неактивные разделители могут быть свободно введены между активными разделителями, константами и идентификаторами. Неактивные разделители - это пробелы, символы окончания строки и табуляции. В отличие от неформатных языков, таких как IL конец строки может быть введен в любом месте программы. Для улучшения читаемости программ нужно использовать неактивные разделители в соответствии со следующими правилами:
- Не пишите более одного оператора в строке
- Используйте табуляцию для сдвига сложных операторов
- Вводите комментарии для улучшения читаемости строк и параграфов
Диалог "Таблицы преобразований" показывает список определенных таблиц преобразования, и содержит кнопки для основных команд, чтобы редактировать существующую таблицу (определять ее точки), чтобы создавать новую таблицу, и также переименовывать и удалять таблицу. Нажмите Принять, чтобы выйти из диалога "Таблицы преобразований" и сохранить их на диске.
Создание новой таблицыКоманда “Новый” позволяет пользователю создать новую таблицу преобразования. До 127 таблиц преобразования может быть создано для каждого проекта. Только используемые таблицы (которые подключены к аналоговым переменным) включаются в исполняемый код приложения. Наименование таблицы должно удовлетворять следующим правилам:
· Длина имени не должна превышать 16
символов
· Первый символ должен быть буквой
· Следующие символы должны быть буквами, цифрами или символом подчеркивания
· Верхний и нижний регистры в наименовании таблицы не различаются
Изменение содержания таблицыКоманда “Редактор” используется для ввода точек таблицы, выбранных из списка. Также возможно дважды щелкнуть на имени таблицы или нажать клавишу ENTER для вызова команды “Редактор”. Команда “Редактор” автоматически вызывается когда создается новая таблица. Как минимум две точки должны быть введены для каждой таблицы.
Меню “Файл”
содержит команды для проверки синтаксиса программы и генерации кода.
Генерация кода приложенияКоманда “Создать” конструирует целиком код проекта. Пред генерацией чего-либо эта команда проверяет синтаксис определений и программ. Любая ошибка, которая не может быть обнаружена во время компиляции одиночной программы, обнаруживается в процессе генерации кода. Это применимо к таблицам преобразования, соединениям переменных В/В и связям с библиотеками. Генератор кодов останавливает компиляцию программы, когда обнаруживаются ошибки. Эта программа должна быть исправлена перед тем, как будет продолжена генерация кодов. Программы, которые уже были проверены (и ошибки не обнаружены) и не были изменены со времени выполнения последней операции “Проверить”, не компилируются по новой. Проверка объявления переменных и проверка связности приложения производится всегда. Во время проверки программы операция “Создать”
может быть прервана нажатием клавиши ESCAPE.
Замечание: Если объявление локальной переменной программы было изменено, то такая программа проверяется. Если глобальная переменная была изменена, то проверяются все программы.
Проверка синтаксиса программыКоманда “Проверить программу” позволяет пользователю проверить только одну программу. Выбранная программа компилируется, даже если она не была изменена со времени последней проверки. Команда “Проверить словарь” позволяет пользователю проверить объявления всех переменных проекта.
“Проверить все программы ”
проверяет синтаксис всех программ проекта, даже если некоторые из них не были изменены. Эта команда не останавливается когда обнаруживается ошибка в программе. Это может быть использовано для создания полного списка всех ошибок, оставшихся в программах проекта. Эта команда может быть прервана нажатием клавиши ESCAPE.
Имитация измененияКоманда “Коснуться” имитирует изменение всех программ проекта, так что они все будут проверены во время следующей операции “Создать”. Команда “Открыть” используется для открытия последней проверенной программы. Эта команда очень полезна для прямого доступа к программе, в которой была обнаружена синтаксическая ошибка.
Основные компоненты SFC : шаги, начальные шаги, переходы, ориентированные связи, прыжки на шаг.
Для представления контактов используются символы:
- Прямой контакт
- Инвертированный контакт
- Контакт с определением фронта
Для представления витков используются символы:
- Прямой виток
- Инвертированный виток
- SET виток
- RESET виток
- Виток с определением фронта
Имя переменной пишется над этими графическими символами:
Прямой контактПрямой контакт позволяет производить логические операции между состояниями линий и логическими переменными.
Состояние линии соединения на правом конце - это логическое И(AND) состояния левого конца и значения переменной контакта.
(* Пример использования ПРЯМЫХ *)
(* ST Эквивалент: *)
output1 := input1 AND input2;
Инвертированный контактИнвертированный контакт позволяет производить логические операции между состоянием линии и отрицанием логической переменной.
Состояние линии соединения на правом конце - это логическое И(AND) состояния левого конца и отрицания значения переменной контакта.
(* Пример использования ИНВЕРТИРОВАННЫХ контактов*)
(* ST Эквивалент: *)
output1 := NOT (input1) AND NOT (input2);
Контакт с определением переднего фронтаЭтот контакт позволяет производить логические операции между состоянием линии и логической переменной.
Состояние линии соединения на правом конце принимает значение TRUE, когда значение на левом конце - TRUE и значения переменной контакта меняется с FALSE на TRUE. Во всех остальных случаях оно устанавливается равным FALSE.
(* Пример использования контактов ПЕРЕДНЕГО ФРОНТА*)
(* ST Эквивалент: *)
output1 := input1 AND (input2 AND NOT (input2prev));
(* input2prev - значение input2 на предыдущем цикле *)
Контакт с определением заднего фронтаЭтот контакт позволяет производить логические операции между состоянием линии и логической переменной.
Состояние линии соединения на правом конце принимает значение TRUE когда значение на левом конце - TRUE и значения переменной контакта меняется с TRUE на FALSE. Во всех остальных случаях оно устанавливается равным FALSE.
Основные операторы языка ST:
Присвоение
Оператор RETURN
Структура IF-THEN-ELSIF-ELSE
Оператор CASE
Итерационный оператор WHILE
Итерационный оператор REPEAT
Итерационный оператор FOR
Оператор EXIT
ПрисвоениеName: :=
Значение: присваивает значение выражению
Синтаксис: <variable> := <any_expression>;
Операнды: переменная должна быть внутренняя или выход, переменная и выражение должны иметь один и тот же тип
Выражение может быть вызовом подпрограммы или функции из библиотеки ISaGRAF.
Пример:
(* ST программа с присвоением *)
(* variable <<= variable *)
bo23 := bo10;
(* variable <<= expression *)
bo56 := bx34 OR alrm100 & (level >= over_value);
result := (100 * input_value) / scale;
(* присвоение возвращаемого значения подпрограммы *)
rc := PSelect ( );
(* присвоение с вызовом функции *)
limited_value := min (16, max (0, input_value) );
Оператор RETURNИмя: RETURN
Значение: заканчивает выполнение текущей программы
Синтаксис: RETURN;
Операнды: (нет)
В блоке SFC оператор RETURN определяет конец выполнения только данного блока.
Пример:
(* FBD программа: программируемый счетчик *)
(* ST программа *)
If not (CU) then
Q := false;
CV := 0;
RETURN; (* закончить программу*)
end_if;
if R then
CV := 0;
else
if (CV < PV) then
CV := CV + 1;
end_if;
end_if;
Q := (CV >= PV);
Структура IF-THEN-ELSIF-ELSEИмя: IF... THEN... ELSIF... THEN... ELSE... END_IF
Значение: выполняет один или два списка ST операторов, выбор осуществляется в соответствии со значением булевского выражения
Язык SFC используется для представления последовательного процесса. Он разделяет цикл процесса на несколько строго определённых последовательных шагов ( автономных ситуаций ), разделённых переходами. Обратитесь к Руководству по Языкам ISaGRAF за более подробной информацией о языке SFC.
Компоненты SFC объединены ориентированными линиями. По умолчанию, ориентация линии - сверху вниз. Вот основные графические компоненты, используемые для построения диаграмм SFC :
...................... Начальный шаг ...................... Шаг ...................... Переход ...................... Прыжок на шаг ...................... Макрошаг ...................... Начальный макрошаг ...................... Конечный макрошагПрограммирование на SFC обычно разделяется на два различных уровня. 1-Уровень
показывает графические диаграммы, номера ссылок на шаги и переходы и комментарии, присоединённые к ним. 2-Уровень - это программирование действий внутри шага или условий, присоединённых к переходу, на ST или IL. Подпрограммы, написанные на других языках (FDB, ST, LD или IL) могут обращаться к этим действиям или переходам. Ниже приведён пример 1-Уровня и 2-Уровня программирования :
Программа шага на 2 уровне создаётся при помощи текстового редактора. Программа может содержать блоки, написанные на ST или IL. Программа переходов 2 уровня может быть создана на языках ST или IL, или при помощи редактора Quick LD.
Схождение и расхождениеИспользуются для представления множественных связей между переходами. Простое схождение или расхождение представляет различные включающие возможности между различными частями процесса.
Двойное Схождение представляет параллельные процессы.
Переход к шагуРедактор SFC позволяет пользователю рисовать связи только в направлении сверху вниз. Прыжок к шагу может быть использован для представления связи с верхней частью диаграммы. Следующие диаграммы эквивалентны :
Прыжок к переходу запрещён и должен представляться двойным (И) Расхождением.
Макро шагиМакрошаг - это уникальное
представление автономной группы шагов и переходов. Макро шаг начинается с
начального шага и кончается завершающим шагом.
Детальное представление шага макроса должно быть описано в той же SFC - программе. Символ шага макроса должен иметь тот же номер ссылки, что и начальный шаг макроса. Описание макро шага может содержать другой макро шаг.
Любая константа, выражение или переменная, используемая в программе (написанной на любом языке) должна характеризоваться своим типом. Типы должны быть согласованы в графических операциях и текстовых выражениях. Вот основные типы программных объектов:
BOOLEAN: логическая (true или false) величина
ANALOG: целая или действительная (плавающая) непрерывная величина
TIMER: временная величина
MESSAGE: строка символов
Замечание: Переменные типа TIMER (временные) содержат значения не большие, чем один день, и не могут быть использованы для записи данных.
Управление при отказе питания имеет большое значение для приложения по следующим причинам:
- Оно зависит от особенностей процесса
- Оно зависит от возможностей аппаратуры
- Оно зависит от методов программирования
Поэтому решение, заложенное в ISaGRAF не претендует на полноту, универсальность и абсолютность, а представляет собой набор принципов, методов и инструментальных средств, которые должны комбинироваться с учетом особенностей конкретного приложения или, по меньшей мере, аппаратуры.
Для того, чтобы успешно перезапустить процесс в системе управления, после наступления отказа питания, должны быть решены 3 задачи:
- Создание резервной копии
- При старте системы распознавание ситуации, что имел место отказ питания
- Восстановление сохраненных данных
Вторая проблема не имеет стандартного решения одними лишь программными средствами, но поставщик может обеспечить соответствующие средства доступа для определения состояния аппаратуры из приложения ISaGRAF или программы C.
Далее, важно решить какие данные следует сохранять и восстанавливать. Определяется два вида данных:
- Переменные приложения:
Такие переменные процесса как число обрабатываемых элементов, данные об отказе питания, значения параметров процесса и т.д.
Такие программные переменные, как счетчики, таймеры, промежуточные значения и флаги.
- Состояние программы:
Это указатель активных шагов, статус каждой “C” программы и т.д.
Эти два случая изучаются в следующих главах.
Язык FBD - это графическое представление многих различных типов равенств. Операторы представлены функциональными прямоугольниками. Функциональные входы присоединяются к левой части прямоугольника. Функциональные выходы присоединяются к правой части. Входы и выходы диаграммы (переменные) соединены с функциональными прямоугольниками при помощи логических связей. Выходы одного функционального прямоугольника могут соединяться со входами другого.
Язык LD
допускает графическое представление булевых переменных. Логические операции AND, OR, NOT полностью представлены в топологии диаграммы. Булевы входные переменные присоединяются к графическим контактам. Булевы выходные переменные присоединяются к графическим виткам. Контакты и витки соединяются друг с другом и с левыми и правыми шинами питания при помощи горизонтальных линий. Каждый отрезок линии имеет булево состояние - истинное
или ложное. Булево состояние одинаково для всех отрезков, соединённых вместе. Любая горизонтальная линия, соединённая с левой вертикальной шиной питания, имеет истинное состояние.
Диаграммы всегда интерпретируются слева направо и сверху вниз. Обратитесь к Руководству по Языкам ISaGRAF за более подробной информацией по языкам LD и FBD. Вот основные графические компоненты языков LD и FBD, поддерживаемые редактором FBD/LD :
Левая шина питанияСлева ступени должны быть присоединены к левой шине питания, которая имеет начальное истинное состояние. Кроме того, редактор позволяет присоединять любые булевы переменные к левой шине питания.
Правая шина питанияВита могут быть соединены с правой шиной питания. Это дополнительная возможность редактора. Если виток не соединен ни с чем справа, то он включает правую шину питания в своё собственное изображение.
Вертикальное соединение LD «OR»Вертикальное соединение LD допускает несколько соединений слева и справа. Каждое соединение справа эквивалентно комбинации левых соединений, связанных логическим ИЛИ.
КонтактыПотоковые Диаграммы (FC) – это графический язык использующийся для описания последовательных операций. Потоковые Диаграммы состоят из Действий и Тестов. Между действиями и тестами находятся ориентированные связи представляющие потоки данных. Ниже даны графические компоненты языка Потоковых Диаграмм:
Начало схемы FC: Символ "Начало" должен возникать в начале программы Потоковых диаграмм. Он уникален и не может быть пропущен. Он представляет начальное состояние диаграммы, когда она активизирована. Конец схемы FC: Символ "конец" должен возникать в конце программы Потоковых Диаграмм. Он уникален и не может быть пропущен. Может быть так, что никакого соединения не подходит к символу "Конец" (всегда виток), но символ "Конец" все же нарисован внизу схемы. Он представляет собой заключительное состояние схемы, когда исполнение было завершено. Потоковые связи FC: Потоковые связи – это линии, которые представляют потоки между двумя точками в диаграмме. Связь всегда заканчивается стрелкой. Две связи не могут исходить из одного источника. Действия FC: Символ действия представляет собой действие, которое нужно выполнить. Действия идентифицируются при помощи числа и имени. Два разных объекта одной схемы не могут иметь одно и то же имя или логический номер. Языками программирования для действий могут быть ST, LD или IL. Действия всегда соединены со связями, одна подходит к нему, другая исходит из него. Тесты FC: Тест представляет собой булевское условие. Тест идентифицируется числом и именем. В соответствии со значением присоединенного выражения на ST, LD или IL, поток направляется либо по пути "Да", либо "Нет". Если программа написана на ST, то за выражением может следовать двоеточие. Если программа написана на LD, то значение условия представляется единственным витком. Подпрограмма FC: Система допускает описание иерархической структуры программ FC.Программа на языке LD представлена списком ступеней, на которых расположены контакты и витки. Ниже приведены основные компоненты LD диаграммы :
Головная часть ступени ( левая шина питания )Каждая ступень начинается с левой шины питания, начальное значение которой истинно. Редактор Quick LD автоматически создаёт левую шину питания, когда первый контакт ступени создан пользователем. Каждая ступень может иметь логическое имя, которое может использоваться в качестве метки для инструкций прыжка.
КонтактыКонтакты изменяют поток булевых данных в соответствии со значением булевой переменной. Имя переменной изображено над символом контакта. Следующие типы контактов поддерживаются редактором Quick LD :
..................... прямой контакт ..................... инвертированный контакт ..................... контакт с определением положительного (переднего) фронта ..................... контакт с определением отрицательного (заднего) фронта ВиткиВиток представляет действие. Состояние ступени (состояние связи в левой части витка) используется для изменения булевой переменной. Имя переменной изображено над символом витка. Следующие типы витков поддерживаются редактором Quick LD :
..................... прямой виток ..................... инвертированный виток ..................... "установить" виток действия ..................... "сбросить" виток действия ..................... виток с определением положительного (переднего) фронта ..................... виток с определением отрицательного (заднего) фронта Функциональные блокиБлок диаграммы LD может представлять функцию, функциональный блок, подпрограмму или оператор. Его первый входные и выходные параметры всегда соединены со ступенью. Другие параметры описаны вне прямоугольника блока.
Конец ступени ( правая шина питания )
Ступени заканчивается правой шиной питания. Редактор Quick LD автоматически вставляет правую шину питания, когда пользователь помещает виток в диаграмму.
|
IF rung_state THEN q := (value1 > value 2); ELSE q := FALSE; END_IF; (* продолжить ступень с состоянием q *) |
|
AVERAGE(rung_state, Signal, 100); OutSignal := AVERAGE.XOUT; eno := rung_state; (* продолжить шину с состоянием eno *) |
|
IF rung_state THEN result := (value1 + value2); END_IF; eno := rung_state; (* продолжить шину с состоянием eno *) |
Следующие команды доступны из меню «Файл» любого программного редактора.
Открытие другой программыКоманда «Файл / Открыть» позволяет закрыть редактируемую программу и начать редактирование другой программы того же проекта на том же языке. Новая программа заменяет текущую в окне редактирования.
Печать программКоманда «Файл / Печать» выводит редактируемую программу на принтер. Эта команда создаёт эскиз листинга программы. Более подробная информация по этому вопросу получается при использовании генератора документов проекта.
Для графических программ ( SFC, FBD и Quick LD ) Вы можете воспользоваться командой «Редактор / Копировать рисунок (метафайл)» для копирования в буфер изображения диаграммы в формате метафайла. Оно может быть вставлено в другое приложение как в текстовом процессоре. Для программ SFC только 1-уровень информация ( диаграммы, нумерация и комментарии 1-уровня )может быть помещена в метафайл.
Во время симуляции или отладки программ ST и IL, никакие модификации не могут быть введены в программный текст.
IL Для программ IL, инструкции сформатированы в виде списка. Текущее значение переменной использующейся в инструкции появляется в той же строке. Вы можете дважды щелкнуть по инструкции, чтобы изменить значение переменной.
ST Для программ ST, Окно Списка встроено в окно редактора. Вы можете изменять размер просмотров перетаскивая мышью линию разделения между ними.
Для каждой переменной списка, ISaGRAF показывает ее имя, текущее значение и текст комментария. Размер колонок может быть изменен путем перетаскивания разделительных линий.
Сохранение списков на жесткий дискКоманда "Файл / Сохранить список" сохраняет списки переменных на диске, под тем же именем что и редактируемая программа. Этот список будет автоматически подгружаться каждый раз, когда программа ST или IL открывается в режиме отладки. Этот список может быть свободно открыт и модифицирован с использованием средств Списка запущенных с помощью команды "Инструменты / Список переменных" окна отладки.
Вставка переменных в списокКоманда “Редактор/ Вставить переменную” вставляет другую переменную в список. Имя переменной выбирается в списке объектов, определенных в словаре проекта. В этом случае пользователь не должен вводить вручную идентификатор. Переменная вставляется перед переменной, выбранной в данный момент в списке. Список не может содержать более 32
переменных. Одна и та же переменная не может появляться более одного раза в том же самом списке.
Если имя переменной в тексте ST выделено, нажмите эту кнопку на панели инструментов или запустите команду "Редактор/ Подсмотреть выделение ", чтобы напрямую послать переменную во встроенный список шпиона. Изменение выбранной переменнойКоманда “Редактор/ Изменить переменную” замещает выбранную переменную другой переменной. Вы можете также использовать команду “Вырезать” для удаления выбранной переменной из списка.
Чтобы запустить ISaGRAF нужно загрузить один из следующих модулей.
isa.o: вариант единственной целевой задачи (только последовательная связь)
isakerse.o: вариант нескольких целевых задач (только последовательная связь)
isakeret.o: вариант нескольких целевых задач (последовательная связь и/или по Ethernet)
Детальное описание этих модулей - в последующих разделах.
Конфигурирование последовательной связиЦелевая задача ISaGRAF преимущественно использует последовательный порт для связи с отладчиком. При открытии целевая задача не устанавливает никаких параметров на указанный ей последовательный порт. Поэтому пользователь полностью свободен в назначении нужных ему параметров. Единственным требованием является установка бинарного режима передачи (RAW mode). Для этого предназначена функция ISAMOD().
uchar ISAMOD
(
char *desc, /* Имя последовательного устройства*/
uint32 baudrate /* Скорость передачи*/
)
Описание:
Конфигурирует указанное последовательное устройство для передачи бинарных данных с указанной скоростью.
Возвращаемое значение:
0 в случае успеха, BAD_RET - в случае ошибок.
При использовании отладчика системы разработки, убедитесь, что параметры связи (см. руководство пользователя: Управление программами) соответствуют параметрам цели.
Частота системных часовГлобальная переменная CLKRATE (uint32) должна быть инициализирована. Это можно сделать следующим образом
CLKRATE = sysClkRateGet ()
Значение CLKRATE по умолчанию - 60 Hz.
Если редактируемая программа является функцией, функциональным блоком или подпрограммой, то команда «Файл / Параметры» используется для определения её параметров вызова и возвращаемых параметров. Эта команда не действует, если редактируемая программа является SFC программой верхнего уровня, от раздела «Begin» до «End».
Функции, функциональные блоки или подпрограммы могут иметь до 32 параметров ( ввода или вывода ). Функция или подпрограмма имеет ровно один возвращаемый параметр, имя которого должно совпадать с именем функции, в соответствии с правилами преобразования ST. Следующее окно диалога используется для описания параметров подпрограммы :
Список в верхней левой части окна показывает параметры, в порядке способов вызова : сначала параметры вызова, затем - возврата. Нижняя часть окна показывает подробное описание параметра, выделенного в списке. В качестве параметра может быть использован любой тип данных ISaGRAF. Возвращаемый параметр должен располагаться в списке после параметров вызова. Имена параметров должны подчиняться следующим правилам :
· Длина имени не должна превышать 8
символов
· Первый символ должен быть буквой
· Следующие символы могут быть буквой, цифрой или символом подчёркивания
· В имени проекта прописной и строчный регистры не различаются
Команда «Вставить» используется для вставки нового параметра перед выбранным. Команда «Удалить» используется для удаления выделенного параметра. Команда «Упорядочить» автоматически сортирует параметры так, что возвращаемый параметр становится последним в списке.
Кнопка Установки позволяет определить параметры связи системы разработки ISaGRAF и целевой задачи, используемые для Выгрузки. И вы должны убедиться в то, что установленные параметры соответствуют параметрам подключенной целевой задачи до Выгрузки.
ISaGRAF Workbench включает систему полной защиты данных, которая позволяет пользователю защищать паролем проекты и элементы библиотеки. Библиотечный элемент может быть конфигурацией В/В, платой В/В или сложным оборудованием, функцией или функциональным блоком, написанным на языке IEC, “С” функцией, функциональным блоком или функцией преобразования. Защищенная паролем база данных предназначена для одного проекта или библиотечного элемента, и не может быть разделена между несколькими.
Уровни защитыВнутри одного проекта или библиотечного элемента пользователь может определить до 16 уровней доступа, с соответствующими различными паролями. Уровни доступа отсортированы в иерархической системе. Они пронумерованы от 0 до 15. Наивысший уровень доступа пронумерован как 0. Когда пользователь знает пароль, он имеет доступ ко всем пунктам, защищенным на соответствующем уровне доступа, плюс все пункты, защищенные более низкими уровнями. Каждая элементарная команда, или данные проекта, или библиотечный элемент может быть отдельно защищен уровнем доступа. Например, команда “Создать код приложения” из меню ISaGRAF может быть защищена отдельно. Элементарные данные могут быть программой, списком опций, техническим замечанием библиотечного элемента и т.д…
Определение парольной защитыКоманда “Установить пароль” из меню ISaGRAF используется для определения паролей и уровней доступа для одного проекта или одного библиотечного элемента. Эта команда вызывается из меню ISaGRAF Project Manager (для проекта), или из Менеджера Библиотек ISaGRAF (для библиотечного элемента). Пароль не требуется, когда эта команда запускается в первый раз. Если пароли уже определены, то пользователь должен ввести пароль самого высокого уровня, который он знает, перед выполнением этой команды. Более верхний уровень паролей и защищенных пунктов тогда не могут быть изменены. Команда “Установить пароль” позволяет пользователю определить пароли соответствующие различным уровням доступа, и защищать элементарные команды или данные с определенными уровнями.
Генератор Документов ISaGRAF позволяет пользователю строить и печатать законченный документ для выбранного проекта. Окно генератора документа отображается после активизации команды “Печать” из меню “Проект” менеджера Проектов. В отличие от команд “Печать” из других окон ISaGRAF Workbench, Генератор Документов может быть использован для печати более чем одной компоненты проекта в одном и том же документе, с глобальным форматом и нумерацией страниц.
Команды меню “Редактировать” используются для определения элементов проекта, которые должны быть включены в документ. Таким путем пользователь строит “таблицу содержания” необходимого документа. Любая информация о проекте (программы, переменные, опции, соединения В/В …) могут быть вставлены в проектный документ. Никакой информации из другого проекта или из библиотек ISaGRAF не может появиться в этом документе.
Команда “Файл / Печать” генерирует документ и посылает его на принтер, следуя определенной таблице содержания. Работа “Печать” может занять несколько минут для построения и форматирования документа. Рекомендуется подождать, пока не завершится “Работа Печати ” в окне Генератора Документов ISaGRAF, перед запуском других команд ISaGRAF Workbench. Построение документа целиком может потребовать много места на диске. Сообщение об ошибке будет выведено, если весь диск заполнен. В таком случае пользователь должен будет либо освободить дисковое пространство, удалив файлы, либо уменьшить объем работы печати. Появляется окно диалога, когда запускается команда “Печать”. Это позволяет пользователю вводить замечание, описывающее фактическую команду печати. Эти замечания сохраняются в файле предыстории, и будут напечатаны на первой странице любого будущего документа (включая настоящий).Переходы представлены горизонтальными полосками, которые пересекают линии связи. Каждому переходу присвоен номер, следующий за символом перехода. Описание перехода располагается справа от символа перехода. Это описание представляет собой свободный комментарий (не входящий в язык программирования). Вышеприведенная информация называется Уровнем 1 перехода
Система разработки ISaGRAF (workbench) включает редактор перекрестных ссылок, который обеспечивает пользователя полным просмотром объявленных переменных в программах проекта, и мест, где они используются. Цель перекрестной ссылки - это перечисление всех переменных, объявленных в проекте, и локализация, в исходных кодах каждой программы, частей исходного кода, где эти переменные используются. Перекрестные ссылки очень полезны для глобального просмотра жизненного цикла одной переменной. Они помогают локализовать побочные эффекты и сократить время понимания проекта во время его построения. Перекрестные ссылки могут также быть использованы для глобального просмотра всего словаря проекта, так что легко находятся неиспользуемые переменные и оценивается сложность проекта.
Список слева показывает объявленные объекты проекта (программы, переменные и определенные слова), и элементы библиотеки (функции и блоки функций, на которые есть ссылки в проекте. Список справа показывает вхождения в программах объекта, выбранного в данный момент в первом списке.
Описание вхождений включает имя программы, количество шагов FC или SFC, переход или тест, плюс номер строки для текстовых языков или координаты для LD или FBD диаграмм. Для диаграмм quick LD, описание завершается номером штанги. Если переменная используется, как выход, (виток) за номером штанги следует символ звезды ("*").
Установить опцию "Показать неиспользованные переменные " из меню "Опции", чтобы показать, также в основном списке переменные, которые не используются в прикладных программах.
Выбор типа объектаТак как проект может включать большое количество объявленных объектов, то используется combo box в меню средств редактора для выбора типа объектов, которые должны быть отображены в окне. Это позволяет пользователю иметь доступ к выборочной информации.
Каждый раз, когда перекрестные ссылки заново вычисляются, выбор сбрасывается в положение “Все ” для того, чтобы представить весь список.
Переменные программы могут быть локальными
или глобальными. Локальные переменные могут использоваться только одной программой. Глобальные переменные могут использоваться любой программой проекта. Имена переменных должны удовлетворять следующим правилам:
имя не может быть длиннее 16 символов
первым символом должна быть буква
последующими символами могут быть буквы, цифры
или символ подчеркивания
ISaGRAF позволяет использовать переменные прямого представления для того, чтобы представлять в исходном тексте программы свободные каналы. Свободные каналы - это каналы, не связанные с декларированными переменными ввода/вывода. Идентификатор переменной прямого представления всегда начинается с символа “%”.
Ниже приводятся соглашения об именах переменных прямого представления для каналов одиночной платы. “s” - это номер слота на палате. “c” - это номер канала.
%IXs.c свободный канал платы булевого ввода
%IDs.c свободный канал платы целого ввода
%ISs.c свободный канал платы строкового ввода
%QXs.c свободный канал платы булевого вывода
%QDs.c свободный канал платы целого вывода
%QSs.c свободный канал платы строкового вывода
Ниже приводятся соглашения об именах переменных прямого представления для каналов комплексного оборудования. “s” - это номер слота оборудования. “b” - это индекс одной платы внутри комплексного оборудования. “c” - это номер канала.
%IXs.b.c свободный канал платы булевого ввода
%IDs.b.c свободный канал платы целого ввода
%Is.b..c свободный канал платы строкового ввода
%QXs.b.c свободный канал платы булевого вывода
%QDs.b.c свободный канал платы целого вывода
%QSs.b.c свободный канал платы строкового вывода
Примеры:
%QX1.6 6 канал 1 платы (логический вывод)
%ID2.1.7 7 канал 1 платы во 2 оборудовании (целый ввод)
Переменные прямого представления не могут иметь тип real.
Этот раздел описывает инсталляцию системы разработки ISaGRAF. Кроме того, даны короткие примеры программ ISaGRAF. Они дают пользователю сжатый обзор его основных возможностей и позволяют сразу использовать ISaGRAF.
Библиотека плат В/В ISaGRAF определяет стандартный интерфейс между переменными приложения и целевым оборудованием. Во время описания приложения все переменные В/В подключаются к каналам целевой платы В/В. Плата В/В ISaGRAF определяется по имени и по “ключевому коду OEM” (“OEM key code”), который определяет его поставщика. Другие параметры платы В/В описывают топологию платы В/В (количество каналов, направление канала и тип), и конфигурацию, оборудования или программную.
Параметры платы В/ВСуществует два различных типа параметров для платы В/В: общие параметры, которые определяются для любой платы библиотеки ISaGRAF, и OEM параметры, которые специфичны для реализации платы, обеспечиваемые поставщиком оборудования. Общие параметры вводятся в верхней части окна определения параметров платы В/В. Эти параметры (плюс имя платы В/В) идентифицируют стандартный интерфейс платы В/В ISaGRAF.
“Ключевой код OEM” - простое число, которое определяет поставщика оборудования. Все платы, определенные одним поставщиком, должны иметь один и тот же ключевой код OEM. Ключевой код OEM - это 16 битное беззнаковое слово, введенное в шестнадцатеричном формате. Зарезервированный ключевой код OEM для CJ International равен “1”.
Главные параметры определяют топологию платы В/В. Число каналов определяют число доступных каналов на плате. Тип платы - это тип переменных, которые могут быть подключены к каналам платы. Направление определяет какие переменные подключены к плате - входные или выходные.
Замечание: Переменные В/В различных типов или направлений не могут быть сгруппированы на одной и той же плате В/В ISaGRAF. Это свойство требует сложного оборудования В/В.
Параметры OEMПараметры OEM вводятся в нижней части окна определения параметров платы В/В. Эти параметры определяются поставщиками плат В/В и являются специфичными для платы. Существует максимум 16 OEM параметров для платы. Плата может не иметь OEM параметры. Менеджер библиотек ISaGRAF позволяет поставщику оборудования определить идентификацию и формат каждого параметра, и метод их ввода.
Вы должны проинформировать генератор кода, что упакованный исходный текст должен быть встроен в код приложения, если Вы хотите выгружать его в дальнейшем. Для этого нажмите на кнопку Выгрузить в блоке диалога Опции компилятора. Другой блок диалога позволяет определить встроенный исходный код. В этом случае будет встроено минимальное количество исходных файлов. Используйте другие блоки для того, чтобы встроить дополнительные файлы.supl_add
Важное замечание: библиотеки не загружаются с встроенным исходным кодом. Это касается функций, функциональных блоков, плат В/В и оборудования.
Дополнительные файлыВ дополнение к минимальному требуемому исходному коду могут быть встроены следующие файлы. Включение этих файлов ведет к использованию дополнительной памяти.
Дескриптор проекта
Если не встроен то дескриптор проекта после выгрузки будет указывать только дату.
Парольная защита
Функция выгрузки не защищена паролем, если Вы хотите защитить выгруженный проект паролем Вы должны встроить систему парольной защиты в исходный код.
Комментарии для несвязанных каналов В/В
ISaGRAF дает возможность ввести комментарии для несвязанных каналов. Не выбирайте эту опцию, если Вы работаете только со связанными каналами.
История модификаций
Глобальная история изменений проекта.
Файлы дневника
Файл дневника для каждой программы содержит написанные пользователем замечания плюс историю сообщений компилятора относящуюся к программе. Встроенные файлы дневника могут потребовать много памяти в целевой системе.
Списки переменных и временные диаграммы
Эти файлы создаются во время отладки и содержат список переменных и временные диаграммы.
Графики, иконки и битмапы
Включает графики, иконки и битмапы, если они находятся в директории ISaGRAF.
Для установления соединения канала пользователь должен дважды щелкнуть на его расположении в списке справа. Также возможно выбрать и запустить команду “Редактор / Установить канал/параметр”. Следующие иконки используются для представления каналов в списке:
....................... свободный канал ....................... подключенный каналСписок содержит все переменные, которые подходят к выбранной плате по типу и направлению. Здесь перечислены только те переменные, которые еще не подключены. Кнопка “Соединить”
подключает переменные, выбранные в списке к выбранному каналу. Кнопка “Освободить” удаляет (отключает) переменные с выбранного канала. Кнопки “Следующ”
и “Предыдущ” используются для выбора другого канала платы. Расположение выбранного канала всегда отображается в заголовке окна диалога.
Команда
"Опции / Настройки" открывает диалог, где сгруппированы все параметры и опции, касающиеся рабочего пространства редактора и чертежа диаграммы. Используйте проверки группе "Рабочее пространство" чтобы показать или скрыть панель инструментов и статусную панель редактора. Опции группы "Document" позволяют вам показать или скрыть точки решетки редактирования и показать схему либо черно-белой, либо цветной.
Используйте кнопку "Увеличение" панели инструментов, для изменения текущего масштаба. Эта команда всегда имеется при работе с программой Quick LD присоединенной к действию или тесту. Используйте кнопку "Сетка" панели инструментов чтобы показать или скрыть точки решетки редактирования. Эта команда, также, имеется при работе с программой Quick LD присоединенной к действию или тесту.Используйте команду "Опции / Шрифт" для выбора имени шрифта символа который используется во всех документах ISaGRAF. При вызове из блоков ST или IL, вы можете определить размер шрифта. При выборе шрифта для графического вида (FC или Quick LD), стиль шрифта и размер не относятся к делу и их не нужно выбирать. Графические редакторы ISaGRAF всегда рассчитывают размер шрифта в соответствии с текущим масштабом.
Схема состоит из фоновых картинок (битмапов или метафайлов), и набора графических символов, которые будут анимированы во время отладки. Чтобы ввести схему, следующие операции должны быть выполнены: введите фоновые картинки, введите графические символы, свяжите объекты и переменный проекта.
Фоновые картинкиФоновые картинки - это "битмапы" (.BMP) или «метафайлы» (.WMF). Количество картинок включенных в схему не ограничено. Картинки можно двигать или менять размер в графической схеме. Они не появляются в схеме списка. Картинки строятся с помощью других средств. Прожектор не включает средства рисования. Команда "Опции / Цвет фона" используется для выбора цвета пустого пространства в графической схеме.
Замечание: Битмапы требуют большого количества памяти. Настоятельно рекомендуется тщательно выбирать размер картинки, и ограничивать неиспользуемое пространство.
ТекстСимвол «текст» это текст написанный в прямоугольнике. В прямоугольнике выводится значение присоединенной переменной. Таким образом, символ может быть связан со строкой сообщения переменной.
Прямоугольник, в который выводится текст может быть цветным или прозрачным. Шрифт символа подстраивается под размер.
Однополярные и биполярные колонкиКолонка - это закрашенный прямоугольник, которая представляет собой численное значение с присоединенной переменной. Колонка может быть горизонтальной или вертикальной. Однополярная колонка может расти только в одном направлении. Биполярная колонка может расти в положительном или в отрицательном направлении, в зависимости от присоединенной переменной.
КривыеВ документ можно встраивать кривые. Кривая показывает предысторию присоединенной переменной. Хотя это не точное средство измерения, оно может дать полезную отладочную информацию о синхронизации переменных.
Кривая запоминает 200 последних значений переменных. Количество измерений не меняется, кода изменяется размер графической схемы
Булевские иконкиАргументы:
IN REAL любая знаковая аналоговая величина
EXP REAL степень
Q REAL (INexp)
1.0 если IN не 0.0 и EXP = 0.0
0.0 если IN = 0.0 и EXP отрицательно
0.0 если IN = 0ю0 и EXP = 0.0
0.0 если IN отрицательно и EXP не целое
Описание:
Дает действительный результат операции: (база экспонента) ‘база’ - первый аргумент, экспонента - второй. Экспонента - действительное число.
(*FBD пример блока “POW”*)
(* ST Эквивалент: *)
result := POW (xval, power);
(* IL Эквивалент: *)
LD xval
POW power
ST result
Необходимо следовать правилам показанным ниже для определения таблиц преобразования. Таблица может быть использована для преобразования и входных и выходных аналоговых переменных:
· Две точки не могут быть определены с одним и тем же электрическим значением
· Кривая должна непрерывно возрастать или убывать
· Две точки не могут быть определены с одним и тем же физическим значением
Следующие ограничения применяются при определении таблиц преобразования для проекта:
· Не больше чем 127 таблиц преобразования может быть определено в одном проекте
· Не больше чем 32 точки может быть определено для одной таблицы преобразования.
ISaGRAF - это синхронная система. Все операции исполняются по часам. Основная единица длительности времени называется временным циклом:
Основные операции в течение временного цикла:
Это позволяет системе:
- гарантировать, что входные переменные сохраняют свое значение в течение временного цикла,
- гарантировать, что устройства вывода изменяются не более одного раза в течение временного цикла,
- правильно работать с одними и теми же глобальными переменными из различных программ,
- оценивать и управлять временем реакции всего приложения.
%....................................... A-103, B-209
:=................................................... A-155
:= (ST присвоение).................... B-265
=1................................................... B-288
1 уровень SFC............................. D-501
AnyTarget..................................... A-117
appli.tst............................. C-386, C-420
appli.x8m........................... C-386, C-420
ARCREATE.................................. B-364
ARREAD...................................... B-365
ARWRITE..................................... B-366
ASCII............................................. B-353
ASIN.............................................. B-337
Begin................................................ A-27
BinaryFile...................................... A-116
Boolean............................... A-91, D-498
C заголовок.................................. D-498
C код............................................. A-113
C функции........................ C-431, C-438
C функциональные блоки........... C-431
C функциональный блок............. A-169
C функция........................ A-169, D-498
CHAR............................................ B-354
Cycle............................................. A-157
DAY_TIME.................................. B-363
DDE.............................................. A-132
DELETE........................................ B-355
EN................................................... A-62
End...................................... A-27, A-159
ENO................................................ A-62
Ethernet........................................... A-37
F_CLOSE...................................... B-368
F_EOF........................................... B-369
F_ROPEN..................................... B-367
F_WOPEN.................................... B-367
FA_READ..................................... B-371
FA_WRITE................................... B-373
FALSE.............................................
A-91
FBD........................ A-69, C-439, D-500
FC........................... A-51, B-234, D-500
FC подпрограмма......................... B-236
FC соединитель.............................. A-54
FIND............................................. B-356
FM_READ.................................... B-376
From.............................................. A-118
Goto............................................... A-158
If A-159
IF................................................... B-238
IL....................................... A-136, D-501
INSERT......................................... B-357
Integer.............................................. A-91
ISA задача (OS9).......................... C-389
isa_main............................. C-401, C-404
isa_register_slave........................... C-400
ISAKER задача (OS9).................. C-390
ISAKERET.O (VxWorks)............. C-402
ISAKERSE.O (VxWorks).............. C-402
ISAMOD (VxWorks).................... C-399
ISANET задача (OS9).................. C-391
ISATST задача (OS9)................... C-390
ISAx0............................................. C-396
ISAx1............................................. C-396
ISAx1 ·(VxWorks)......................... C-409
ISAx2............................................. C-396
ISAx3............................................. C-396
ISAx4............................................. C-396
ISAx5............................................. C-396
ISAx6............................................. C-396
Label............................................. A-158
LD.................. A-48, A-58, A-60, D-501
LEFT............................................. B-358
LIMIT........................................... B-346
MAX............................................. B-345
Message........................................... A-91
MID............................................... B-359
MIN............................................... B-345
MLEN...........................................
B-360
MOD............................................. B-347
Modbus......................................... D-502
MODBUS....................................... A-94
MUX4........................................... B-348
MUX8........................................... B-349
N модификатор.............................. A-47
NOT...................................... A-71, A-73
ODD.............................................. B-350
OEM ключ................................... A-166
OEM параметр............................. A-166
OEM параметр (плата В/В)......... D-502
OR................................................... A-70
P модификатор............................... A-46
P0 модификатор............................. A-47
P1 модификатор............................. A-47
Print.............................................. A-156
PrintTime..................................... A-156
Quick LD.................... A-48, A-58, A-60
RAND........................................... B-351
Real.................................................. A-91
REPEAT........................................ B-238
REPLACE..................................... B-361
Return................................... A-61, A-71
RIGHT.......................................... B-362
Run-time.......................................... A-33
SEL................................................ B-352
Sequential........................................ A-27
SFC A-38, A-112, A-128, A-176, C-439, D-504
SFC галерея.................................... A-49
SHL................................................ B-343
SHR............................................... B-344
SIN................................................. B-340
SlavesLink...................................... C-406
ST............... A-48, A-136, C-448, D-504
SYSTEM....................................... B-308
Target............................................ A-117
TextFile......................................... A-117
Timer............................................... A-91
To.................................................. A-118
TP.................................................. B-321
TRUE.............................................. A-91
tst_main_ex.................................... C-404
ULongData.................................... A-115
VarList........................................... A-116
Wait............................................... A-157
WHILE.......................................... B-238
XOR.............................................. B-288
Активизировать........................... A-124
Активность шага.............. B-270, D-498
Активность шага.......................... B-214
Аналог.............................. C-433, D-498
Аналоги......................................... C-432
Аргумент...................................... A-168
Арксинус...................................... B-337
Архив......... A-25, A-164, A-171, A-180
Атрибут........................................ D-498
Библиотека A-25, A-32, A-33, A-101, A-102, A-121, A-149, A-161, A-171, C-431, D-502
Бинарный селектор...................... B-352
Битмап........................................... A-138
Битовое поле................................ A-140
Блокировать................................. A-126
Блокировка.................................. A-182
Булевское действие..................... D-498
Булевское действие....................... A-47
В/В A-34, A-100, A-101, A-122, A-126, A-148, A-164, A-165, A-182
В/В специфический...................... B-237
Вввод............................................ A-166
Ввод......... A-100, A-122, A-148, A-150
Верхний уровень........................... A-27
Виртуальная плата.......... A-182, D-505
Виртуальная плата...................... A-101
Виток........................ A-60, A-70, D-499
Вклеить LD.................................... A-66
Внутренний.................................. D-501
Возвращаемое значение..............
D-503
Восстановить A-25, A-164, A-171, A-173, A-180
Временной цикл........................... D-499
Временной цикл................. A-33, A-126
Вставить FBD...................... A-74, A-75
Вставить FC................................... A-56
Вставить SFC................................. A-44
Вставить виток............................... A-64
Вставить контакт........................... A-64
Вставить переменную......... A-46, A-90
Вставить подстроку..................... B-357
Вставить слот............................... A-101
Вставить ступень........................... A-66
Вставить текст................................ A-78
Вставить файл................................ A-79
Вставить элемент FBD.................. A-72
Вставить элемент FC..................... A-53
Встроенный исходный код.......... A-145
Вход.................................. B-203, D-501
Выбрать Прожектор................... A-140
Выбрать элемент FBD................... A-72
Выбрать элемент FC...................... A-53
Вывод...... A-100, A-122, A-148, A-166
Выгрузить.................................... A-144
Выгрузить (подготовить)........... A-145
Выполнить один цикл.................. A-126
Выражение................................... D-500
Вырезать FBD............................... A-74
Вырезать FC.................................. A-56
Вырезать LD.................................. A-66
Вырезать SFC................................ A-44
Вырезать переменную.................. A-90
Вырезать текст............................... A-78
Выход................................ B-203, D-502
Галерея........................................... A-49
Генерация кода.................. A-33, A-110
Глобальный.................................. D-500
Графика............................ A-138, A-143
Группа................................ A-24, A-140
Группа проектов........................... A-24
Дамп.............................................. A-135
Двигать FBD..................................
A-72
Двигать FC..................................... A-55
Двигать SFC................................... A-44
Двигать плату.............................. A-101
Двигать Прожектор.................... A-140
Двинутьпрограмму....................... A-31
Действие................. A-51, B-237, D-498
Действительная плата.................. A-101
Действительный........................... D-503
Действия....................................... B-235
Дескриптор.......................... A-22, A-34
Дескриптор проекта...................... A-23
Диагностика.................................. A-147
Диапазон....................................... D-503
Директория.................................. A-187
Длина сообщения......................... B-360
Длина строки................................ B-360
Длительность активности B-214, B-270
Дневник.............................. A-30, D-500
Документ................. A-24, A-35, A-174
Документ проекта.......................... A-24
Документ проекта............. A-35, A-174
Дочерняя...................................... B-199
Дочерняя SFC.............................. B-199
Дочерняя программа..................... A-28
Дочерняя программа SFC A-28, D-499
Заголовки C...................... C-434, C-441
Заголовок C.................................. C-465
Задержанная операция (IL)......... D-500
Закрытый В/В.............................. D-502
Закрыть файл............................... B-368
Заменить A-45, A-56, A-67, A-74, A-78
Заменить подстроку..................... B-361
Запись в файл............................... B-373
Запись массива.............................. B-366
Защита A-24, A-105, A-162, A-178, A-180
Идентификатор............................ D-501
Иерархия..... A-27, A-31, B-198, D-501
Извлечение подстроки (в середине) B-359
Извлечение подстроки (слева).... B-358
Извлечение подстроки (справа).. B-362
Измененный стиль......................... A-76
Изменить...................................... A-125
Изменить переменную.................. A-90
Изменить размер FC..................... A-55
Изменить размер Прожектора... A-140
Иконка.......................................... A-140
Импорт........................................... A-95
Импортировать функциональный блок A-32
Импортировать функцию............. A-32
Импульс......................................... A-46
Импульсное действие.................. D-503
Импульсное таймирование.......... B-321
Инвертированная связь...... A-71, A-73
Инструкция.................................. D-501
Интерфейс.......................... A-31, A-168
Истинность перехода................... D-504
История................................ A-23, A-35
Исходник C C-435, C-442, C-452, C-465
Исходный код C........................... D-498
Канал.................... A-102, A-104, A-166
Канал В/В..................................... D-501
Ключевое слово........................... D-501
ключевой код OEM..................... D-502
Колонка........................................ A-138
Комментарий.................... B-238, D-499
комментарий FBD.......................... A-72
Комментарий FC............................ A-54
Комментарий программы.............. A-30
Комментарий ступени......... A-63, A-67
Комметарий (SFC)....................... D-499
Коммуникация A-37, A-126, A-144, A-186
Компилировать A-33, A-110, A-163, A-167
Компилятор C.................. C-431, C-465
Конец............................................. B-234
Конечный шаг................................ A-43
Константа...................................... D-499
Контакт.................... A-60, A-70, D-499
Контакт с отрицательным фронтом B-250
Контакт с положительным фронтом B-250
конфигурация В/В....................... A-164
Конфигурация В/В........................ A-22
Копировать FBD........................... A-74
Копировать FC.............................. A-56
Копировать LD.............................. A-66
Копировать SFC............................
A-44
Копировать пееменную................. A-90
Копировать программу................ A-32
Копировать текст........................... A-78
Копия....... A-164, A-171, A-172, A-180
Коснись........................................... A-33
Кривая................. A-138, A-139, A-143
Крснись........................................ A-111
Локальная..................................... A-168
Локальный.................................... D-502
Макроопределение...................... D-500
Макрос................................. A-87, A-91
Макрошаг.................................... D-502
Макрошаг............................ A-41, A-43
Максимум..................................... B-345
Маркер (SFC).............................. D-504
Масштаб.................... A-59, A-67, A-76
Матрица....................................... D-502
Мдификатор (IL)......................... D-502
Менеджер библиотек.................. A-161
Менеджер библиотек....... C-433, C-447
Менеджер программ..................... A-27
Меню инструменты....................... A-35
Метафайл..................................... A-138
Метка...................... A-71, B-242, B-257
Метка (IL).................................... D-501
Метка ступени............................... A-64
Минимум...................................... B-345
Модификация на ходу................. A-125
Модификация на ходу................. A-128
Модуль......................................... B-347
Мультиплексор с 4 входами....... B-348
Мультиплексор с 8 входами....... B-349
На линии......................................... A-36
На ходу......................................... A-123
Набор инструментов................... D-504
Найти A-45, A-56, A-67, A-74, A-78, A-85
Найти подстроку.......................... B-356
Начало........................................... B-234
Начальная ситуация.................... D-501
Начальный шаг................ D-498, D-501
Начальный шаг.................... A-41, A-43
Не сохраненное..............................
A-47
Не сохраненное действие............. D-502
Непосредственно представленные переменные A-103, B-209
Новая переменная.......................... A-89
Новая программа........................... A-29
Новая ступень................................ A-63
Новая функция.............................. A-29
Новый проект................................ A-22
Новый функциональный блок...... A-29
Новый элемент библиотеки......... A-161
Номер версии............................... A-125
Номер подчиненного..................... A-37
Номер ссылки.............................. D-503
Нормальный стиль........................ A-76
Область действия................ A-86, A-88
Общие........................................... A-171
Общий........................................... D-499
Объявление.......................... A-30, A-86
Окно вывода.................................. A-85
Операнд (IL)................................. D-502
Оператор...................................... D-504
Операторы (IL)............................ B-277
Операция (IL)............................... D-502
Описатель проекта......................... A-34
Оптимизатор................................ A-112
Опции компилятора A-34, A-111, A-145
Освобождение перехода.............. D-499
Открыть программу......... A-30, A-122
Открыть проект............................. A-23
Открыть файл.............................. B-367
Отладчик................ A-36, A-123, A-147
Отрицательный контакт.............. B-250
Отслеживание изменений.............. A-76
Ошибка......................................... A-114
Ошибка выполнения.................... A-127
Ошибка исполнения..................... D-503
Ошибка исполнения....................... A-33
Память............................................ A-13
Панель управления..................... A-123
Параметер...................................... A-31
Параметр...................................... A-168
Параметр (C функции)................
C-439
Параметр (C функция)................ D-502
Параметр (Плата В/В)................. D-502
Параметр ( функциональный блок) C-449
Параметр платы............... A-102, A-166
Пароль A-24, A-105, A-162, A-178, A-180
Перейти...................... A-45, A-56, A-78
Перекрестная ссылка.................. D-499
Перекрестные ссылки....... A-34, A-121
Переменная A-30, A-46, A-65, A-71, A-75, A-78, A-86, A-121, A-122, A-127, A-168, D-505
Переменная В/В........................... D-501
Переменные ВВ................ C-432, C-433
Перенумеровать............................ A-45
Переход.................. A-38, A-128, D-504
Печатать программу..................... A-82
Печать............ A-24, A-35, A-89, A-176
Печать........................................... A-174
Плата................................ A-100, A-101
Плата В/В......................... A-165, D-501
Подпрограмма.............................. B-236
Подпрограмма....... A-28, B-200, D-504
Подпрограмма FC......................... A-28
Подсмотреть переменную.......... A-134
Положительный контакт............. B-250
Порядок выполнения.................... A-74
Последний шаг............................. D-500
Последовательная Функциональная Диаграмма D-503
Последовательный....................... B-198
Последовательный канал.............. A-37
Поток.......... A-54, B-235, B-237, B-239
Потоковая диаграмма.................... A-51
Потоковая Диаграмма................. D-500
Потоковые диаграммы................ B-234
Пошаговый режим....................... D-499
Пошаговый режим......................... A-33
Право доступа............................. A-178
Преобразование.............. A-107, D-499
Преобразование ASCII -> символа B-354
Преобразование символа -> ASCII B-353
Привод архива............................. A-172
Привязка В/В................................. A-34
Присвоение (в ST,
=)................................................ B-265
Проверить............. A-33, A-110, A-167
Проверка четности чет/нечет...... B-350
Программа A-27, A-80, A-151, B-198, D-503
Программа верхнего уровня...... D-504
Проект.............................. A-171, D-503
Прожектор................................... A-138
Прыжок........ A-61, A-71, B-242, B-257
Прыжок на шаг............................ D-501
Прыжок на шаг.............................. A-40
Псевдоним...................................... A-67
Рабочее пространство отладки..... A-36
Разблокировать........................... A-126
Разделители проектов................... A-22
Разделитель.................................. D-503
Разединить.................................... A-140
Расхождение......................... A-39, A-43
Реальная плата............................. D-503
Реальное время.................. A-33, A-125
Регистр (IL).................................. D-503
Редактировать дескриптор проекта A-23
Редактор FBD...................... A-69, A-80
Редактор FC................................... A-51
Редактор IL.................................... A-80
Редактор LD................................... A-60
Редактор Quick LD........................ A-80
Редактор SFC....................... A-38, A-80
Редактор ST................................... A-80
Редактор Потоковых Диграмм..... A-51
Режим реального времени.......... D-503
Релейная Диаграмма.................... D-501
Ресурс........................................... A-115
Ресурсы.......................................... A-34
Решение........ A-51, A-55, B-235, D-500
Родительская программа............ D-503
Родительская программа SFC... D-500
Связь A-37, A-71, A-73, A-74, A-126, A-144, A-186, B-235, B-237, B-239
Связь FC........................................ A-54
Сдвиг влево.................................. B-343
Сдвиг вправо................................ B-344
Сдвинуть проект........................... A-22
Секция................................ A-27, D-503
Секция Begin................................ D-498
Секция End................................... D-500
Секция Sequential......................... D-503
Сетевой адрес............................... D-502
Сетевой адрес...................... A-88, A-90
Сетевые адреса............................... A-94
Сетка............................................... A-63
Сжатие.......................................... A-172
Симулятор............. A-35, A-150, A-152
Симуляция................................... A-148
Синус............................................ B-340
Скорость передачи........................ A-37
Скрипт.............................. A-152, A-154
Словарь A-30, A-86, A-122, A-168, C-433, C-447, D-500
Сложное оборудование В/В....... A-165
Слот.................................. A-101, A-104
Случайное число.......................... B-351
Содержание.................................. A-174
Соединение................ A-71, A-73, A-74
СоединениеВ/В............................. D-501
Соединения В/В........................... A-100
Соединитель........... A-54, B-237, D-499
Создание массива......................... B-364
Создать............................... A-33, A-110
Сообщение....................... A-135, D-502
Сообщение компилятора............. A-114
Сообщение об ошибке................... A-85
Сортировать.................................. A-90
Сохранить....................................... A-25
Сохранить сисок.......................... A-134
Специфический В/В..................... B-235
Список переменных A-134, A-136, A-141
Список проектов................. A-22, A-24
Спмсок Инструкций.................... D-501
Старт............................................. A-124
Стиль.................................. A-76, A-141
Стоп.............................................. A-124
Страница....................................... A-176
Строка.......................................... D-504
Структурный текст..................... D-504
Ступень................................ A-66, A-73
Схождение............................ A-39, A-43
Таблица преобразований............ A-107
Таблица преобразования............ D-499
Таблица преобразования............ A-109
Таблица символов........................ A-189
Таймаут.......................................... A-37
Таймер.......................................... D-504
Таймирование цикла.................... A-151
Текст............................................. A-138
Текущий результат (IL).............. D-499
Тест A-51, A-55, A-123, A-148, B-235, D-504
Технические замечания................ D-504
Технические замечания.... A-102, C-432
Техническое замечание................ A-163
Тип A-86, A-88, A-100, A-121, A-166, D-504
Тип витка........................................ A-66
Тип контакта.................................. A-66
Тип платы..................................... A-101
Точка................................ A-107, A-108
Точка останова.... A-126, A-128, D-498
Угол................................................ A-72
Удаленный стиль........................... A-76
Удалить FBD................................. A-74
Удалить FC.................................... A-56
Удалить LD.................................... A-66
Удалить SFC.................................. A-44
Удалить плату.............................. A-101
Удалить подстроку...................... B-355
Удалить программу...................... A-32
Удалить текст................................. A-78
Уровень 2 SFC............................ D-501
Уровень защиты.......................... A-178
Условие......................................... B-235
Условие (для перехода)............... D-499
Файл
определение конца файла......... B-369
Файл архива.................................. A-173
Файл определения ресурсов....... A-115
Фоновая картинка........................ A-138
Фронт............................................ D-500
Фронт контакта............................ B-250
Функции преобразования C-431, C-432
Функциональная Блочная Диаграмма D-500
Функциональный блок...... A-27, D-500
Функциональный блок A-31, A-61, A-70, A-75, A-87, A-91, A-163, B-201, C-446
Функция A-27, A-31, A-163, A-167, B-200
Функция преобразования........... A-170
Целевая задача............................. A-111
Целевой цикл............................... D-504
Целое............................................ D-501
Цель.............................................. D-504
Цикл.................................. B-198, B-203
Цикл за Циклом........................... A-125
Цикл профилера.......................... A-151
Циклический.................... B-198, D-499
Четность......................................... A-37
Чтение массива............................. B-365
Чтение файла................................ B-371
Чтение файла................................ B-376
Шаг......................... A-38, A-128, D-504
Шина..................................... A-60, A-61
Шина питания............................... D-503
Шина питания............ A-60, A-61, A-69
Шпион.................. A-134, A-136, A-138
Шрифт.......................................... A-177
Экземпляр............................ A-87, A-91
Экземпляр функционального блока C-447
Экспорт.......................................... A-95
Экспортировать функциональный блок A-33
Экспортировать функцию............ A-33
Язык.................................... A-28, B-203
Язык C.......................................... C-431
Язык C C-431, C-434, C-435, C-441, C-452, C-465, D-498
Ячейка........................................... D-498
[1] Это руководство подразумевает, что пользователь знаком с целевой задачей ISaGRAF
Список ошибок:
Код | Сообщение | Тип | |||
1 | Не могу выделить память под базу данных для исполнения | система | |||
2 | Неправильная база данных приложения (Motorola/Intel) | приложение | |||
3 | Не могу выделить почтовый ящик для связи | система | |||
4 | Не могу привязать базу данных ядра | система | |||
5 | Таймаут по запросу к ядру | система | |||
6 | Таймаут по ответу от ядра | система | |||
7 | Не могу инициализировать связь | система | |||
8 | не могу выделить память под сохраняемые переменные | приложение | |||
9 | приложение остановлено | приложение | |||
10 | слишком много одновременных действий N или P | приложение | |||
11 | слишком много одновременных действий setting | приложение | |||
12 | слишком много одновременных действий resetting | приложение | |||
13 | неизвестная инструкция TIC | приложение | |||
16 | не могу выполнить запрос чтения данных | система | |||
17 | не могу выполнить запрос записи данных | система | |||
18 | не могу выполнить запрос сессии отладчика | система | |||
19 | не могу выполнить запрос modbus | система | |||
20 | не могу выполнить запрос приложения отладчика | система | |||
21 | не могу ответить отладчику | система | |||
23 | неизвестный код запроса | система | |||
24 | коммуникационная ошибка ethernet | система | |||
25 | коммуникационная ошибка синхронизации | система | |||
28 | не могу выделить память для приложения | система | |||
29 | не могу выделить память для обновления приложения | система | |||
30 | неизвестный код OEM | приложение | |||
31 | не могу инициализировать плату булевских входов | приложение | |||
32 | не могу инициализировать плату аналоговых входов | приложение | |||
33 | не могу инициализировать плату строковых входов | приложение | |||
34 | не могу инициализировать плату булевских выходов | приложение | |||
35 | не могу инициализировать плату аналоговых выходов | приложение | |||
36 | не могу инициализировать плату строковых выходов | приложение | |||
37 | не могу прочитать булевский вход | приложение | |||
38 | не могу прочитать аналоговый вход | приложение | |||
39 | не могу прочитать строковый вход | приложение | |||
40 | не могу вывести переменную булевский выход | приложение | |||
41 | не могу вывести переменную аналоговый выход | приложение | |||
42 | не могу вывести переменную строковый выход | приложение | |||
43 | не могу обработать булевскую переменную | приложение | |||
44 | не могу обработать аналоговую переменную | приложение | |||
45 | не могу обработать строковую переменную | приложение | |||
46 | не могу открыть плату | Приложение | |||
47 | не могу закрыть плату | Приложение | |||
50 | не могу переписать переменную булевский выход | Программа | |||
51 | не могу переписать переменную аналоговый выход | Программа | |||
52 | не могу переписать переменную строковый выход | Программа | |||
61 | неизвестный системный код запроса | Программа | |||
62 | переполнение периода выборки | Программа | |||
63 | функция пользователя не реализована | Приложение | |||
64 | деление целого на 0 | Программа | |||
65 | функция преобразования не реализована | Приложение | |||
66 | функц. блок не реализован | Приложение | |||
67 | стандартная функция не реализована | Приложение | |||
68 | деление вещественного на 0 | Программа | |||
69 | неправильные рабочие параметры | Приложение | |||
72 | параметры приложения нельзя модифицировать | Приложение | |||
73 | не могу обновить: отличается набор булевских переменных | Приложение | |||
74 | не могу обновить: отличается набор аналоговых переменных | Приложение | |||
75 | не могу обновить: отличается набор переменных типа timer | Приложение | |||
76 | не могу обновить: отличается набор переменных типа message | Приложение | |||
77 | не могу обновить: не могу найти новое приложение | Приложение | |||
> 100 | особый OEM код ошибки, за более детальной информацией обращайтесь к вашему поставщику. |
1. не могу выделить память под базу данных для исполнения |
система |
2. неправильная база данных приложения (Motorola/Intel) |
приложение |
3. не могу выделить почтовый ящик для связи |
система |
4. не могу привязать базу данных ядра |
система |
5. таймаут по запросу к ядру |
система |
6. таймаут по ответу от ядра |
система |
7. не могу инициализировать связь |
система |
8. не могу выделить память под сохраняемые переменные |
приложение |
9. приложение остановлено |
приложение |
10. слишком много одновременных действий N или P |
приложение |
11. слишком много одновременных действий setting |
приложение |
12. слишком много одновременных действий resetting |
приложение |
13. неизвестная инструкция TIC |
приложение |
16. не могу выполнить запрос чтения данных |
система |
17. не могу выполнить запрос записи данных |
система |
18. не могу выполнить запрос сессии отладчика |
система |
19. не могу выполнить запрос modbus |
система |
20. не могу выполнить запрос приложения отладчика |
система |
21. не могу ответить отладчику |
система |
23. неизвестный код запроса |
система |
24. коммуникационная ошибка ethernet |
система |
25. коммуникационная ошибка синхронизации |
система |
28. не могу выделить память для приложения |
система |
29. не могу выделить память для обновления приложения |
система |
30. неизвестный код OEM |
приложение |
31. не могу инициализировать плату булевских входов |
приложение |
32. не могу инициализировать плату аналоговых входов |
приложение |
33. не могу инициализировать плату строковых входов |
приложение |
34. не могу инициализировать плату булевских выходов |
приложение |
35. не могу инициализировать плату аналоговых выходов |
приложение |
36. не могу инициализировать плату строковых выходов |
приложение |
37. не могу прочитать булевский вход |
приложение |
38. не могу прочитать аналоговый вход |
приложение |
39. не могу прочитать строковый вход |
приложение |
40. не могу вывести переменную булевский выход |
приложение |
41. не могу вывести переменную аналоговый выход |
приложение |
42. не могу вывести переменную строковый выход |
приложение |
43. не могу обработать булевскую переменную |
приложение |
44. не могу обработать аналоговую переменную |
приложение |
45. не могу обработать строковую переменную |
приложение |
46. не могу открыть плату |
приложение |
47. не могу закрыть плату |
приложение |
50. не могу переписать переменную булевский выход |
программа |
51. не могу переписать переменную аналоговый выход |
программа |
52. не могу переписать переменную строковый выход |
программа |
61. неизвестный системный код запроса |
программа |
62. переполнение периода выборки |
программа |
63. функция пользователя не реализована |
приложение |
64. деление целого на 0 |
программа |
65. функция преобразования не реализована |
приложение |
66. функц. блок не реализован |
приложение |
67. стандартная функция не реализована |
приложение |
68. деление вещественного на 0 |
программа |
69. неправильные рабочие параметры |
приложение |
72. параметры приложения нельзя модифицировать |
приложение |
73. не могу обновить: отличается набор булевских переменных |
приложение |
74. не могу обновить: отличается набор аналоговых переменных |
приложение |
75. не могу обновить: отличается набор переменных типа timer |
приложение |
76. не могу обновить: отличается набор переменных типа message |
приложение |
77. не могу обновить: не могу найти новое приложение |
приложение |
Этот раздел объясняет, шаг за шагом, все основные операции, необходимые для создания, разработки и тестирования коротких, но завершённых многоязыковых приложений.
Ниже приведено полное описание такой программы. В ней используется как LD, так и SFC.
Boolean variables:
IX0_1, IX0_2: вход. Переменные для команды процесса RunCmd: внутренняя команда "run/stop" QX1_1: вых. Переменная: состояние процесса |
Program Command: Циклическая секция begin – LD язык
Вычисляет внутреннюю команду "run/stop" |
Program RunStop: Sequential section - SFC язык
Управление процессом |
Start Запуск Системы разработки ISaGRAF
Для запуска Системы разработки ISaGRAF, дважды щёлкните мышью на иконе «Projects» в группе «ISaGRAF». Это приведёт к открытию окна Менеджера Проектов.
Создание проектаСоздайте проект (под названием «RunStop»), используя команду «Новый» из меню «Файл» или кнопку «Новый». В диалоговом окне:
Введите имя проекта: "RunStop".
Выберите конфигурацию ввода-вывода: "Sim_Boo".
Нажмите кнопку "Принять".
Теперь проект создан.
Открытие проектаПрограммы проекта появляются при открытии окна Менеджера Программ ISaGRAF. Пользуйтесь командой «Редактор» окна Менеджера Программ, или щёлкните два раза мышью на имени нужного проекта, или воспользуйтесь кнопкой «Редактор».
Создание программОкно Менеджера Программ сейчас открыто и пусто (т.к. ни одна программа не определена). Первая программа создаётся при помощи команды «Новый» меню «Файл» или кнопки «Новый». В окне диалога:
Введите имя программы: "Command".
Значение: Пишет строку или значение переменной в окно вывода. Текст выводится как одна новая строка в конце уже написанного текста в окне вывода.
Синтаксис: Print '<text>'
Print <varname>
Аргументы: <text>
любая строка в одиночных кавычках
<varname>
символ объявленной переменной или непосредственно представленная переменная В/В использующая соглашения "%".
Замечание: Выходная переменная всегда форматируется в соответствии с соглашениями IEC.
Пример: Print 'Hello'
Print MyBooVar
Выход: Hello
MyBoovar = TRUE
Значение: Пишет текущую временную отметку в выходное окно. Текст выводится как одна новая строка в конце уже написанного текста в окне вывода.
Синтаксис: PrintTime
Замечание: Временная отметка форматируется в соответствии с текущими установками Windows
Пример: Print 'Time now is:'
PrintTime
Выход: Time now is:
15:45:22
Значение: Присвоить значение переменной ISaGRAF. Она может быть внутренней переменной, входным каналом или выходным каналом.
Синтаксис: <varname> := <constant_expression>
<varname> = <constant_expression>
Аргументы: <varname>
символ объявленной переменной или непосредственно представленная переменная В/В использующая соглашения "%".
<constant_expression> константа, которая соответствует типу переменной. Для булевских, "0" и "1" могут использоваться "FALSE" и "TRUE". Для таймеров, префикс "T#" или "TIME#" может быть опущен.
Замечание: Входная переменная устанавливаемая скриптом не требует блокировки. Чертеж соответствующего входного канала изменяется, когда входная переменная изменяется скриптом.
Предупреждение: не изменяйте входную или выходную переменную присоединенную к преобразованию, так как исполнение скрипта не поддерживает функции и таблицы преобразования.
Пример: MyBooVar := 1 (* то же, что и TRUE *)
MyIntVar := 1234
MyRealVar := 1.2345
MyMsgVar := 'Hello'
MyTmrVar := t#12s
Профилер цикла ISaGRAF – это мощное диагностическое средство, которое показывает, как время цикла распределяется между различными программами, функциями и функциональными блоками приложения. Это средство очень полезно для быстрой диагностики производительности приложения и приводит программиста к той части кода, которая требует оптимизации.
Пофилер цикла запускается командой "Инструменты / Профилер цикла" в меню окна симулятора ISaGRAF. Он показывает, для каждой программы, функции или функционального блока, процент потраченного времени цикла:
Если установлена опция "Вид / Средний", представленная информация – это средние проценты рассчитанные с момента запуска приложения, или с последнего запуска команды "Вид / Сброс".
Если не установлена опция "Вид / Средний", представленная информация – это измерения сделанные в течении последнего цикла. Вы можете также использовать эту возможность, когда приложение находится в режиме "Пошаговый" чтобы получить измерения зависящие от контекста приложения.
Используйте команду "Вид / Копировать" чтобы копировать имена программ и проценты в клипборд Windows в ASCII формате. Затем данные могут быть вставлены в текстовый документ или электронную таблицу.
Важные замечания:
Это неточные измерения. Вычисление процентов основано на подсчете TIC инструкций, принимая во внимание различные времена выполнения инструкций. Вычисление не включает время потраченное на "C" функции и функциональные блоки.
Величина появляющаяся для функции или функционального блока – это сумма всех "времен вызова" из прикладных программ в одном цикле.
Вычисление времени основано на TIC коде и не обеспечивает надежной информации, если действительный код приложения сгенерирован на языке "C" и построен с использованием компилятора "C".
Quick LD доступен для программирования 2-уровня. В случае теса решения LD диаграмма состоит из одной ступени с ровно одним витком, представляющим решение. Имя решения не повторяется на символе витка. Ниже приведен пример теста, написанный на Quick LD:
При программировании на Quick LD используйте стрелки клавиатуры для перемещения по логической сетке и используйте следующие горячие клавиши для вставки символов:
F2:...................... вставить контакт после выделенного символа
F3:...................... вставить контакт перед выделенным символом
F4:...................... вставить контакт параллельно выделенному символу
F5:...................... добавить виток параллельно выделенному символу (не для тестов)
F6:...................... вставить блок после выделенного символа
F7:...................... вставить блок перед выделенным символом
F8:...................... вставить блок параллельно выделенному символу
F9:...................... добавить символ прыжка в параллель с выбранным витком (не для тестов)
Прыжок ведет к имени ступени. Имя ступени может быть введено нажатием ENTER, когда выбран заголовок ступени. Редактор ISaGRAF помнит уже введенные метки ступеней, определены ли они для имени ступени или для операции прыжка. Диалог "Прыжок/Метка"' дает вам возможность ввести новую метку или выбрать существующую. Если вы вводите новое имя, оно будет автоматически добавлено в список. Кнопка "Уничтожить" используется для удаления выделенного имени из списка. Она не удаляет метку на ступени, которую вы выбрали в диаграмме. Чтобы это сделать, просто нажмите Принять
когда прямоугольник редактирования пуст.
Кроме этого вы можете щелкнуть мышью на функциональной кнопке на панели внизу окна программы 2-уровня вместо функциональных клавиш.
Нажмите ENTER при выделенном контакте или параметре блока ввода/вывода для выбора переменной или ввода константного значения. Нажмите ENTER при выделенном функциональном блоке для выбора его типа. Кроме того вы можете дважды щелкнуть мышью на символе для достижения того же эффекта.
Нажмите Control + SPACE при выделенном контакте для выбора или изменения его типа (прямой, обратный). Обратитесь к разделу «Использование редактора Quick LD» этого документа за более подробным описанием возможностей Quick LD.
Программа - это логическая программируемая единица, которая описывает операции с переменными процесса. Программы описывают либо последовательные
либо циклические операции. Циклические программы выполняются на каждом цикле целевой системы. Исполнение последовательных программ определяется динамическими правилами языка SFC.
Программы связаны друг с другом в иерархическое дерево. Программы, помещенные наверху иерархии, активизируются системой. Подпрограммы (нижний уровень иерархии) активизируются их родителями. Программы могут быть описаны любым из следующих графических или текстовых языков:
Язык последовательных функциональных схем (SFC) для программирования высокого уровня
Flow Chart (FC) for high level programming
Язык функциональных блочных диаграмм (FBD) для сложных циклических операций
Язык релейных диаграмм (LD) только для булевских операций
Язык структурированный текст (ST) только для циклических операций
Язык инструкций (IL) для операций низкого уровня
Одна и та же программа не может смешивать несколько языков, за исключением LD и FBD, которые могут быть скомбинированы в одной диаграмме.
Меню “Редактор” содержит команды для просмотра различных текстовых файлов, построенных во время генерации кодов или операций проверки синтаксиса, в окне генератора кодов. Окно генератора кодов - это текстовое поле, которое содержит сообщения во время генерации кодов или операций проверки синтаксиса. Вся информация сохраняется на диске, так что она может быть изучена при помощи команд меню “Редактор”.
Команды редактированияКоманда “Удалить”
используется для очистки текстового окна. Окно автоматически очищается перед каждой генерацией кодов или операцией проверки синтаксиса. Команда “Копировать” используется для копирования отображенного текста в Windows clipboard, так что это может быть использовано другими приложениями, такими как редакторы текста ISaGRAF.
Просмотр выходных сообщений компилятораКоманда “Сообщения”
показывает все сообщения, отображенные в течении последних операций “Создать” или “Проверить” в текстовом окне. Это применимо ко всем сообщениям об ошибках.
Другие выборы меню “Редактор”
позволяет пользователю контролировать вспомогательные текстовые файлы, созданные в течении проверки синтаксиса и генерации кодов. Эти файлы обычно не используются в общем проекте ISaGRAF.
Большинство проблем, касающихся плохой связи между ISaGRAF Workbench и целевым PLC, представлены в окне отладчика статусным сообщением “нет связи”. Перед выполнением любых диагностических тестов должна быть проведена проверка достоверности связи, когда нет активных приложений на целевом PLC. Таким методом последовательная связь может быть проверена сама по себе, изолированно от эффектов выполнения приложения.
Язык “С”, используемый для описания функций преобразования и С функций, разрешает прямой доступ к целевой системе. Ошибки программирования в таком программном компоненте могут вызывать системные ошибки или некорректное поведение системы ISaGRAF. Такие проблемы могут случаться, когда драйверы В/В разрабатываются с Опцией ISaGRAF IO development tool. Системные ошибки, например, могут произойти, если плата В/В подключена на неправильный адрес шины. Следующая таблица дает синтетическое обобщение диагностики ошибок:
статус | контекст | диагностика | |||
“нет связи”
(перед загрузкой) | - цель не запущена
- нет кабеля / плохой кабель - неправильные параметры связи - цель ISaGRAF плохо установлена | ||||
“нет связи”
(после загрузки) | цикл за циклом
режим запуска | - неправильная конфигурация В/В
- сбой системы | |||
реальное время
режим запуска | - неправильная конфигурация В/В
- сбой системы (из-за С программирования) | ||||
“нет приложения” | - приложение не загружено
- приложение не запущено (из-за С программирования) - несовпадение Intel/Motorola - неправильная целевая версия |
Кроме присоединенных ST, LD или IL программ, некоторые другие синтаксические правила применяются к потоковой диаграмме. Ниже дан список основных правил:
- Все точки "соединения" всех символов должны быть связаны. (связь с символом "Конец" может быть опущена)
- Все символы должны быть связаны (не должно быть изолированных частей)
- Все соединители должны иметь правильный пункт назначения
Могут возникать другие синтаксические ошибки:
- Пустые действия (нет программы) рассматриваются, как шаги во время работы
- Пустые тесты (нет программы) рассматриваются, как "всегда истинные"
С помощью средства ISaGRAF «прожектор» пользователь может определить списки наблюдения, которые могут показывать либо графические картинки либо списки во время отладки. Графические символы должны быть связаны с переменными ISaGRAF. Картинки могут быть определены и анимированы во процессе работы.
Для управления значением переменной щелкните дважды по соответствующему графическому символу или схеме в списке. Или нажмите ENTER когда она выбрана.
Вы можете также закрыть документ (запретить модификацию) используя команду ‘Файл/Закрыть». Когда документ закрыт Вы все же можете воздействовать на переменную при помощи двойного щелчка на ее символе.