Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2. Методы программирования контроллеров.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.66 Mб
Скачать

2.6. Инструментальная система программирования контроллеров iSaGraf.

Система разработана компанией CJInternational (Франция), в данный момент принадлежит фирме AlSys (США или Канада?) и относится к классу CASE – систем, Computer Aided Software Engineering – системе компьютерной поддержки программирования.

Основные возможности пакета:

  • Поддержка всех пяти языков стандарта МЭК 1131-3 плюс реализация языка Flow Chart как средства описания диаграмм состояний. При этом ISaGRAF позволяет смешивать программы и процедуры, написанные на разных языках, а также вставлять кодовые последовательности из одного языка в коды, написанные на другом языке.

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

  • Поддержка различных протоколов промышленных сетей (Modbus и ProfiBus).

I SaGRAF представлен в виде двух частей: набора средств разработки и исполняемого на целевом ПЛК ядра-интерпретатора. Набор средств разработки исполняется на компьютере проектировщика, например, компьютере типа IBM PC, и состоит из редактора, отладчика и препроцессора, который подготавливает описанный проектировщиком алгоритм к формату, "понятному" ядру-интерпретатору. Этот набор имеет современный пользовательский интерфейс, позволяет тестировать алгоритм в режиме эмуляции и получать листинг алгоритма на языках его описания.

После создания пользовательская программа совместно с ядром-интерпретатором загружается в целевой ПЛК для исполнения. Ядро-интерпретатор, как следует уже из его названия, транслирует пользовательский алгоритм во время исполнения.

Это позволяет сконцентрировать машино-зависимый код и таким образом снизить накладные расходы при переходе на другой ПЛК.

Недостаток - интерпретационная модель имеет недостаток - она всегда снижает показатели эффективности исполнения программы.

Архитектура проекта в ISaGRAF.

Циклические исполняются на каждом цикле работы программы. Последовательные исполняются по динамическим правилам языка SFC. Программы могут выполняться и помещаться в трёх секциях.

Секции

Begin sequentional end

(начальная) (последовательная) (конечная)

Циклические программы помещаются в секции begin & end. Последовательные в секции sequentional, программы пишутся только на SFC. В остальных секциях на любых других языках, кроме SFC.

Цикл исполнения программ включает:

  1. чтение входных переменных;

  2. выполнение программ начальной секции;

  3. выполнение программ последовательной секции;

  4. выполнение программ конечной секции;

  5. обновление выходных переменных.

2.7. Данные и переменные в iSaGraf

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

Существует три уровня видимости переменных:

  1. СOMMON – общие, доступные любой программе любого проекта;

  2. GLOBAL – доступные любой программе одного проекта;

  3. LOCAL – локальные доступные только одной программе одного проекта.

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

boolean – булевые,

analog – аналоговые (могут быть как integer, так и real),

timers – таймерные,

messages – сообщение.

Кроме того, объявляется вид переменной:

internal – внутренний,

input – входная,

output – выходная.

Примечание 1: Переменные ввода-вывода всегда GLOBAL.

Примечание 2: Переменные timers всегда internal.

Особенности таймерных переменных

Значения констант:

  • Базовая единица – 1 миллисекунда

  • Синтаксис: t#1h450ms, time#1h3m, t#0s

  • Таймер не может превышать t#23h59m59s999ms

  • Значение таймера всегда положительно

  • Таймер не может быть уменьшающимся счетчиком.

  • Таймерная переменная не может быть связана с платой ВВ

Механизм работы

  • При старте переменная автоматически инициализируется (значение инициализации может быть указано при определении таймерной переменной – по умолчанию t#0ms).

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

  • Таймер может быть запущен и остановлен.