Языки программирования, реализованные в ISaGRAF

В ISaGRAF заложена методология структурного программирования, позволяющая пользователю представить автоматизированный процесс в наиболее легкой и понятной форме. Стандартом IEC 61131-3 определяется пять языков: три графических (SFC, FBD, LD) и два текстовых (ST, IL) Помимо этих языков, ISaGRAF предлагает язык блок-схем (Flowchart). Все эти языки программирования интегрированы в единую инструментальную среду и работают с едиными объектами данных.

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

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

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

ST - язык структурированного текста. Относится к классу языков высокого уровня, похожих на Паскаль, удобен для программирования сложных процедур, которые трудно описать графическими языками.

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

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

Программирование контроллера

Работа начинается с создания проекта в ISaGRAF (File - New). В описании проекта можно указать автора проекта, его название. В самом проекте создается программа, при этом надо указать, какой язык программирования будет использоваться (Languare - New Program), тип программы (начальная, последовательная, конечная).

Перед тем как вводить текст программы, необходимо объявить используемые в ней переменные (Dictionary - Global variables) (по типу: булевые, аналоговые, таймерные, сообщения, функциональные блоки; по виду: внутренние, входные, выходные).

После ввода текста необходимо проверить программу на наличие ошибок (Files - Verify). И только после этого производят присоединение переменных ввода/вывода к платам и подсоединение переменных для наблюдения за изменениями сигналов.

Программирование на языке ST

ST (Structured Text) - текстовый высокоуровневый язык общего назначеня, по синтаксису ориентированный на Паскаль. Язык по умолчанию используется для описания действий внутри шагов и переходов.

ST программа - это список ST операторов. Каждый оператор заканчивается точкой с запятой.

Имена, используемые в исходном коде (идентификаторы переменных, константы, ключевые слова) разделены неактивными разделителями (пробелами, символами окончания строки и табуляции) или активными разделителями, которые имеют определенное значение (например, разделитель «>» означает сравнение «больше чем»). В текст могут быть введены комментарии. Комментарий должен начинаться с «(» и заканчиваться «)». Каждый оператор заканчивается точкой с запятой («;»).

Основные операторы языка ST:

- оператор присвоения (variable:=expression);

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

- вызов функционального блока оператор условия (IF, THEN, ELSE);

- оператор выбора (CASE);

- итеративные (циклические) операторы (FOR, WHILE, REPEAT);

- управляющие операторы (RETURN, EXIT);

- специальные операторы для связи с такими языками как SFC.

Оператор присвоения:

«:=» - присваивает переменной значение некоторого выражения или константы: <переменная>:= <любое выражение или константа>.

Булевые операторы:

NOT, AND, OR, XOR.

Операторы сравнения:

<, >, =, <=, >=.

Оператор RETURN

RETURN завершает выполнение текущей программы. В блоке операций на языке SFC оператор RETURN обеспечивает конец выполнения блока.

Оператор IF-THEN-ELSE

If <условие> then <список операторов 1>: end_if;

 
< Пред   СОДЕРЖАНИЕ   Скачать   След >