Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
STEP7_V53_Programming_r.pdf
Скачиваний:
2
Добавлен:
29.05.2025
Размер:
5.18 Mб
Скачать

Создание исходных файлов на STL

13.4.10Экспорт исходных файлов

Для экспортирования исходных файлов из проекта в любой каталог:

1.Выберите исходный файл в папке исходных файлов.

2.Выберите команду меню Edit > Export Source File [Редактировать>

Экспорт исходного файла] в SIMATIC Manager.

3.Введите определенный каталог и имя файла в появившемся диалоговом окне.

4.Нажмите кнопку "Сохранить".

Замечание

Если имя объекта не имеет расширения, расширение файла возникнет из типа файла добавленного к имени файла. Например, исходный файл STL "prog" экспортируется в файл "prog.awl."

Если имя объекта уже имеет правильное расширение, оно останется без изменений. Например, исходный файл STL "prog.awl" экспортируется в файл

"prog.awl."

Если имя объекта имеет неправильное расширение (например, в имени есть промежуток), расширение файла не добавляется.

Вы найдете список правильных расширений файлов в диалоговом окне "Экспорт исходного файла" в разделе "Тип файла".

13.5Сохранение и компиляция исходных файлов на STL и проверка непротиворечивости

13.5.1Сохранение исходных файлов на STL

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

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

Для сохранения исходного файла под тем же именем:

1.Активизируйте окно для исходного файла, который Вы хотите сохранить.

2.Выберите команду меню File > Save [Файл > Сохранить].

Для сохранения исходного файла под новым именем/в другом проекте:

1.Активизируйте окно для исходного файла, который Вы хотите сохранить.

2.Выберите команду меню File > Save As [Файл > Сохранить как...].

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

13-18

Программирование с помощью STEP 7 v5.3

A5E00261405-01

Создание исходных файлов на STL

13.5.2Проверка непротиворечивости в исходных файлах на STL

С помощью команды меню File > Consistency Check [Файл > Проверка непротиворечивости] Вы можете вывести на экран все синтаксические ошибки, имеющиеся в исходном файле на STL. В отличие от компиляции, блоки при этом не генерируются.

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

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

13.5.3Поиск ошибок в исходных файлах на STL

Активное окно для исходных файлов разделено на две части. В нижней половине перечисляются следующие ошибки:

Ошибки, найденные после запуска компиляции командой меню File > Compile [Файл > Компилировать].

Ошибки, найденные после запуска проверки непротиворечивости с помощью команды меню File > Consistency Check [Файл > Проверка непротиворечивости].

Чтобы найти местоположение ошибки в исходном файле, поместите курсор на соответствующее сообщение об ошибке в нижней части окна. Тогда в верхней части окна автоматически выделяется текстовая строка, содержащая ошибку. Сообщение об ошибке появляется также в строке состояния.

13.5.4Компиляция исходных фалов на STL

Требования

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

Компилироваться могут только исходные файлы, хранящиеся в папке "Source Files [Исходные файлы]" под программой S7.

Папка "Blocks [Блоки], в которой могут быть сохранены блоки, созданные во время компиляции, как и папка "Source Files [Исходные файлы]", должна тоже находиться под программой S7. Блоки, запрограммированные в исходном файле, создаются только в том случае, если исходный файл был скомпилирован без ошибок. Если в исходном файле запрограммировано несколько блоков, создаются только те, которые не содержат ошибок. После этого Вы можете открыть эти блоки, отредактировать их, загрузить их в CPU и отладить их по отдельности.

Программирование с помощью STEP 7 v5.3

13-19

A5E00261405-01

Создание исходных файлов на STL

Последовательность действий в редакторе

1.Откройте исходный файл, который Вы хотите скомпилировать. Этот исходный файл должен находиться в папке исходных файлов программы S7, в пользовательской программе S7 которой должны быть сохранены скомпилированные блоки.

5Выберите команду меню File > Compile [Файл>Компилировать].

6Диалоговое окно "Отчет компилятора" покажет количество скомпилированных строк и найденных синтаксических ошибок.

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

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

Последовательность действий в SIMATIC Manager

1.Откройте нужную папку "Source Files [Исходные файлы]", дважды щелкнув на ней.

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

3.Для запуска компиляции выберите команду меню File > Compile [Файл > Компилировать]. Для выбранного Вами исходного файла вызывается нужный компилятор. Успешно скомпилированные блоки сохраняются затем в папке блоков под программой S7.

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

13-20

Программирование с помощью STEP 7 v5.3

A5E00261405-01

Создание исходных файлов на STL

13.6Примеры исходных файлов на STL

13.6.1Примеры описания переменных в исходных файлах на STL

Переменные, относящиеся к элементарному типу данных

// Комментарии отделяются от раздела описаний двойным слешем.

VAR_INPUT

// Ключевое слово для входной переменной.

in1 : INT;

// Имя переменной и ее тип разделяются двоеточием ":"

in3 : DWORD;

// Описание каждой переменной завершается точкой с запятой.

in2 : INT := 10;

// Необязательная установка начального значения в описании

END_VAR

// Завершение описания переменных, относящихся к одному типу описания

VAR_OUTPUT

// Ключевое слово для выходной переменной

out1 : WORD;

 

END_VAR

 

VAR_TEMP

// Ключевое слово для временной переменной

temp1 : INT;

 

END_VAR

 

Переменная типа Array [массив]

VAR_INPUT

// Входная переменная

array1 : ARRAY [1..20] of INT;

// array1 – это одномерный массив

array2 : ARRAY [1..20, 1..40] of DWORD;

// array2 – это двумерный массив

END_VAR

 

Переменные типа "Структура"

 

VAR_OUT

// Выходная переменная

OUTPUT1: STRUCT

// OUTPUT1 имеет тип данных STRUCT

var1 : BOOL;

// 1-й элемент структуры

var2 : DWORD;

// 2-й элемент структуры

END_STRUCT;

// Конец структуры

END_VAR

 

Программирование с помощью STEP 7 v5.3

13-21

A5E00261405-01

Создание исходных файлов на STL

13.6.2Пример организационных блоков в исходных файлах на

STL

ORGANIZATION_BLOCK OB1

TITLE = Пример ОВ1 с различными вызовами блоков

//Три сегмента иллюстрируют вызовы блоков с параметрами и без параметров

{S7_m_c := 'true'}

//Системный атрибут для блоков

AUTHOR

Siemens

FAMILY

Пример

NAME

Test_OB

VERSION

1.1

VAR_TEMP

 

Interim value : INT;

// Промежуточное значение, буфер

END_VAR

 

BEGIN NETWORK

TITLE = Вызов функции с передачей параметров // Передача параметров в одной строке

CALL FC1 (param1 :=I0.0,param2 :=I0.1);

NETWORK

TITLE = Вызов функционального блока

//с передачей параметров

//Передача параметров в более чем одной строке

CALL Traffic light control , DB6 (

// Имя FB (Управление светофором), экземплярный

 

 

// блок данных

dur_g_p

:= S5T#10S,

// Присваивание фактических значений параметрам

del_r_p

:= S5T#30S,

 

starter

:= TRUE,

 

t_dur_y_car

:= T 2,

 

t_dur_g_ped

:= T 3,

 

t_delay_y_car

:= T 4,

 

t_dur_r_car

:= T 5,

 

t_next_red_car

:= T 6,

 

r_car

:= "re_main",

// Кавычки показывают символические

y_car

:= "ye_main",

// имена, введенные в таблице символов

g_car

:= "gr_main",

 

r_ped

:= "re_int",

 

g_ped

:= "gr_int");

 

NETWORK

 

 

TITLE = Вызов функционального блока

//с передачей параметров

//Передача параметров в одной строке

CALL FB10, DB100 (para1 :=I0.0,para2 :=I0.1); END_ORGANIZATION_BLOCK

13-22

Программирование с помощью STEP 7 v5.3

A5E00261405-01

Создание исходных файлов на STL

13.6.3Пример функций в исходных файлах на STL

FUNCTION FC1: VOID

// Только должна быть вызвана

VAR_INPUT param1 : bool; param2 : bool;

END_VAR Begin end_function

FUNCTION FC2 : INT

TITLE = Увеличение количества деталей

//Пока передаваемое значение < 1000, эта функция

//увеличивает передаваемое значение. Если число деталей

//превышает 1000, через возвращаемое значение для функции

//(RET_VAL) возвращается "-1".

AUTHOR

 

Siemens

FAMILY

 

Контроль производительности

NAME

:

INCR_ITEM_NOS

VERSION

:

1.0

VAR_IN_OUT

 

ITEM_NOS : INT;

// Текущее количество изготовленных деталей

END_VAR

 

BEGIN

 

NETWORK

TITLE = Увеличение количества деталей на 1

//Пока текущее количество предметов меньше 1000,

//счетчик может быть увеличен на 1

L ITEM_NOS; L 1000;

// Пример более одного

> I; JC ERR;

// оператора в строке.

L 0; T RET_VAL;

 

L ITEM_NOS; INC 1; T ITEM_NOS; BEU;

 

ERR: L -1;

 

T RET_VAL;

 

END_FUNCTION

 

Программирование с помощью STEP 7 v5.3

13-23

A5E00261405-01

Создание исходных файлов на STL

FUNCTION FC3 {S7_m_c := 'true'} : INT TITLE = Увеличение количества деталей

// Пока передаваемое количество < 1000, эта функция //увеличивает передаваемое значение. Если количество деталей //превышает 1000, через возвращаемое значение для функции

// (RET_VAL) возвращается "-1".

//

//RET_VAL здесь имеет системный атрибут для параметров

AUTHOR

:

Siemens

FAMILY

:

Контроль производительности

NAME

:

INCR_ITEM_NOS

VERSION

:

1.0

VAR_IN_OUT

ITEM_NOS {S7_visible := 'true'}: INT; // Текущее количество произведенных деталей //Системные атрибуты для параметров

END_VAR

BEGIN

NETWORK

TITLE = Увеличение количества деталей на 1

//Пока текущее количество деталей меньше 1000,

//счетчик может быть увеличен на 1

L ITEM_NOS; L 1000;

// Пример более чем одного

> I; JC ERR;

// оператора в строке.

L 0; T RET_VAL;

 

L ITEM_NOS; INC 1; T ITEM_NOS; BEU;

 

ERR: L -1;

 

T RET_VAL;

 

END_FUNCTION

 

13-24

Программирование с помощью STEP 7 v5.3

A5E00261405-01

Создание исходных файлов на STL

AUTHOR

:

Siemens

FAMILY

:

Throughput check

NAME

:

INCR_ITEM_NOS

VERSION

:

1.0

VAR_IN_OUT

ITEM_NOS {S7_visible := 'true'}: INT; // Число произведенных пунктов

//Системные атрибуты для параметров

END_VAR

BEGIN

NETWORK

TITLE = Increment number of items by 1

// Пока число произведенных пунктов менее 1000, // счетчик может увеличиваться на 1

L ITEM_NOS; L 1000;

// Пример более чем одной

> I; JC ERR;

// инструкции в строке.

L 0; T RET_VAL;

 

L ITEM_NOS; INC 1; T ITEM_NOS; BEU;

 

ERR: L -1;

 

T RET_VAL;

 

END_FUNCTION

 

Программирование с помощью STEP 7 v5.3

13-25

A5E00261405-01

Создание исходных файлов на STL

13.6.4Пример функциональных блоков в исходных файлах на STL

FUNCTION_BLOCK FB6

TITLE = Простое переключение светофора

//Управление светофором на пешеходном переходе

//на главной улице

{S7_m_c := 'true'}

 

//Системный атрибут для блоков

AUTHOR

:

Siemens

 

 

FAMILY

:

Светофор

 

 

NAME

:

Светофор01

 

 

VERSION

:

1.3

 

 

VAR_INPUT

 

 

 

 

starter

:

BOOL :=

FALSE;

// Запрос на переход от пешехода

t_dur_y_car

:

TIMER;

// Длительность зеленого для пешеходов

t_next_r_car

:

TIMER;

// Интервал между красными фазами для автомобилей

t_dur_r_car

:

TIMER;

 

 

END_VAR

 

 

 

 

VAR_OUTPUT

 

 

 

 

g_car

:

BOOL

:=

FALSE; // ЗЕЛЕНЫЙ для автомобилей

number

{S7_server := 'alarm_archiv'; S7_a_type := 'alarm_8'} :DWORD;

//Количество автомобилей

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

END_VAR

 

 

 

VAR

 

 

 

Condition

:

BOOL :=

FALSE; // Условие красного для автомобилей

END_VAR

 

 

 

BEGIN

NETWORK

TITLE = Условие красного для движения по главной улице

//По истечении минимального интервала, запрос на зеленый свет на

//пешеходном переходе образует условие включения красного сигнала

//для движения по главной улице

A(;

 

 

A

#starter;

// Запрос на зеленый на пешеходном переходе и

A

#t_next_r_car;

// время между красными фазами превышено

O

#condition;

// или условие для красного

);

 

 

AN

#t_dur_y_car;

// И в настоящее время свет не красный

=

#condition;

// Условие для красного

NETWORK

13-26

Программирование с помощью STEP 7 v5.3

A5E00261405-01

Создание исходных файлов на STL

TITLE = Зеленый свет для движения по главной улице

AN

#condition;

// Нет условия для красного для движения по главной

 

 

// улице

=

#g_car;

// ЗЕЛЕНЫЙ для движения по главной улице

NETWORK

TITLE = Длительность желтой фазы для автомобилей

//Дополнительная программа, необходимая для управления

//светофорами

END_FUNCTION_BLOCK

FUNCTION_BLOCK FB10

VAR_INPUT

Para1 : bool;

Para2: bool;

End_var

Begin

End_function_block

Data_block db10

FB10

Begin

End_data_block

Data_block db6

FB6

Begin

End_data_block

Программирование с помощью STEP 7 v5.3

13-27

A5E00261405-01

Создание исходных файлов на STL

13.6.5Пример блоков данных в исходных файлах на STL

Блок данных:

DATA_BLOCK DB10

 

TITLE = DB Пример 10

 

STRUCT

 

aa : BOOL;

// Переменная aa типа BOOL

bb : INT;

// Переменная bb типа INT

cc : WORD;

 

END_STRUCT;

 

BEGIN

// Присваивание начальных значений

aa := TRUE;

 

bb := 1500;

 

END_DATA_BLOCK

 

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

DATA_BLOCK DB20

 

TITLE = DB (UDT) Пример

 

UDT 20

// Соответствующий тип данных, определенный

 

// пользователем

BEGIN

 

start := TRUE;

// Присваивание начальных значений

setp. := 10;

 

END_DATA_BLOCK

 

Замечание

Используемый UDT должен находиться в исходном файле до блока данных.

13-28

Программирование с помощью STEP 7 v5.3

A5E00261405-01

Создание исходных файлов на STL

Блок данных с соответствующим функциональным блоком:

DATA_BLOCK DB30

 

TITLE = DB (FB) Пример

 

FB30

// Соответствующий функциональный блок

BEGIN

 

start := TRUE;

// Присваивание начальных значений

setp. := 10;

 

END_DATA_BLOCK

 

Замечание

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

13.6.6Пример типов данных, определенных пользователем, в исходных файлах на STL

TYPE UDT20

STRUCT

start : BOOL;

//Переменная типа BOOL

setp. : INT;

// Переменная типа INT

value : WORD;

// Переменная типа WORD

END_STRUCT;

END_TYPE

Программирование с помощью STEP 7 v5.3

13-29

A5E00261405-01