Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МУ_Проектирование распределенных систем управления 04.09.2023

.pdf
Скачиваний:
10
Добавлен:
18.10.2024
Размер:
5.05 Mб
Скачать

Лабораторная работа № 5. Конфигурирование входных и выходных данных контроллера

Цель работы: ознакомление с принципом работы входных и выходных модулей.

Содержание работы

1.Использование области ввода и вывода, запись переменных и блоков

втаблицу символов.

2.Программирование блока OB1 на языке SCL.

3.Загрузка аппаратной конфигурации в PLC. Подтверждение отсутствия ошибок на PLC и модуле расширения.

Общие сведения Два способа создания программ

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

Вслучае создания программы путем написания исходных файлов ("source-oriented") Вы должны создать одну или несколько исходных программ и сохранить их в виде файлов в каталоге Source Files (Исходные файлы). Исходные программы - это текстовые файлы формата ASCII,

которые содержат операторы программы для одного или нескольких блоков, возможно даже целиком всю программу. Вы должны скомпилировать исходные программы; скомпилированные блоки программы помещаются в каталог Blocks (Блоки). Скомпилированные блоки содержат код MC7 и выполняются в S7 CPU.

Вслучае создания программы "инкрементным" путем ("incremental"),

-методом добавления - Вы вводите программу блок за блоком. Вводимые блоки немедленно проверяются на наличие синтаксических ошибок. При поступлении команды на сохранение блок сначала компилируется, затем сохраняется в каталоге Blocks (Блоки). При создании программы данным методом Вы можете также редактировать блоки в интерактивном (online) режиме в CPU, даже во время рабочего режима.

81

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

Блоки

Организационные блоки OB (Organization blocks). Этот тип блоков служит своеобразным интерфейсом между операционной системой и пользовательской программой. Операционная система CPU вызывает организационные блоки при возникновении особого события, например, аппаратного прерывания или прерывания времени суток. Главная программа находится в организационном блоке OB 1. Остальные организационные блоки имеют постоянные назначенные номера, основанные на событиях, для обработки которых они вызываются. Например, блок OB1 имеет самый низкий приоритет, и в нем исполняется основная программа, а блок OB33 служит для аппаратного прерывания раз в 500 мс.

Функции FC (Functions)

Функции используются для программирования часто повторяющихся или сложных функций автоматики (automation functions). Функциям могут назначаться параметры. Функции могут возвращать значение (значение вызванной функции) в вызывающий блок. Причем значение функции - необязательный параметр. Кроме функционального значения

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

Блоки данных DB (Data blocks)

Эти блоки содержат данные Вашей программы. Программируя блоки данных, Вы определяете, в какой форме данные будут сохраняться (в котором блоке, в каком порядке и с каким типом данных). Существует два способа использования блоков данных: как блоки глобальных данных (global data blocks) и как экземплярные блоки данных (instance data blocks). Блоки глобальных данных в пользовательской программе

являются, как говорится, "свободными" ("free") блоками данных и не назначаются кодовому блоку. Экземплярные блоки данных, однако, назначаются функциональному блоку и сохраняют часть локальных данных этого функционального блока.

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

Язык SCL

82

Язык SCL оптимизирован для программирования программируемых контроллеров (PLC). SCL содержит в себе элементы языка Паскаль (Paskal) наряду с типичными для PLC элементами, такими, например, как "вход" ("input") и "выход" ("output").

SCL особенно подходит для программирования сложных алгоритмов или для задач, относящихся к области управления данными. Язык SCL поддерживает характерную для STEP 7 блочную структуру, а также позволяет создавать S7-программы, включающие в себя фрагменты на базовых языках программирования STL, LAD и FBD.

Таблица символов

В управляющей программе Вы имеете дело с адресами, т.е. с входами, с выходами, таймерами и блоками. Вы можете назначать абсолютные адреса (например, I1.0) или символьные адреса (например, Start signal [сигнал запуска]). При символьной адресации используются символьные имена. Это делает программу легко читаемой.

При использовании символьной адресации различаются локальные (local) и глобальные (global) символы (символьные имена). Локальный (local) символ распознается только в блоке, в котором они определены (в структурах VAR … END_VAR). Поэтому при необходимости Вы можете использовать одинаковые локальные символьные имена в различных целях в разных блоках. Глобальный символ распознается в любом месте программы и имеет одинаковое значение во всех блоках программы. Вы должны определить глобальный символ в таблице символов (объект Symbols в каталоге S7 Program). Глобальный символ начинается с символа алфавита и может иметь в длину до 24 символов. В таблице символов Вы можете назначать имена следующим адресам и объектам:

Входам I, выходам Q, периферийным входам PI и выходам PQ

Меркерам M, таймерам T и счетчикам C

Блокам кодов OB, FB, FC, SFC, SFB и блокам данных DB

Типам данных, определенным пользователем, UDT

Таблице переменных VAT

Например, чтобы обозначить символически дискретные входы в проекте на рис 3.3, HWConfiguration, нужно использовать байты 0 и 1 области входов.

Таблица 3.1

83

Symbol

Address

Data Type

Comment

 

 

 

 

Input_DI1

I0.0

BOOL

Дискретный вход 1

 

 

 

 

Input_DI2

I0.1

BOOL

Дискретный вход 2

 

 

 

 

Input_DI16

I1.7

BOOL

Дискретный вход 16

 

 

 

 

Output_AO1

QW 512

WORD

Аналоговый выход 1

 

 

 

 

Output_AO2

QW 514

WORD

Аналоговый выход 2

 

 

 

 

Рис. 3.3. Области ввода-вывода При создании блоков программы также удобнее назначать символьные

адреса. Ниже приведен пример назначения символьных имен. Таблица 3.2

Symbol

Address

Data Type

Comment

 

 

 

 

 

 

DGI

DB 1

DB 1

Блок входных дискретных данных

 

 

 

 

ANI

DB 2

DB 2

Блок входных аналоговых данных

 

 

 

 

Minim_val

FC 11

FC 11

Функция сравнения двух величин

 

 

 

 

 

 

Read_AI

FB 20

FB 20

Функциональный блок

для

чтения

 

 

 

аналоговой величины

 

 

 

 

 

 

 

 

Reading_AI

FB 100

FB 100

Функциональный блок

для

вызова

 

 

 

блока FB 20

 

 

 

 

 

 

Reading_AI_DB

DB 10

FB 100

Связанный с FB100 блок данных для

 

 

 

хранения данных

 

 

 

 

 

 

 

 

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

Выделите раздел Sources [Исходные программы] и затем выберите опции меню: Insert -> SCL Source (Вставка -> Исходная программа SCL) (такая опция меню будет доступна для использования, только в том случае, если Вы установили SCL в своей системе). Теперь Вы можете переименовать вставленный объект SCL Source(1). Дважды щелкнув кнопкой мыши на этом

84

объекте, вызовите редактор SCL-программ, который отобразит при открытии на экране монитора "пустой" исходный SCL-файл. Теперь Вы можете вводить SCL-программу.

Рис. 3.4. Создание программы с использованием редактора SСL Program

Editor.

Простой способ создания нового блока возможен при использовании опций меню: Insert -> Block Template -> OB (Вставка -> Шаблон блока -> OB), а также Вы можете вставить готовые программные структуры в исходный программный файл в позиции курсора.

Организационные блоки

Организационные блоки обрабатываются циклически. Период и приоритет обработки определяется номером организационного блока. Главная программа располагается в организационном блоке ОВ1, он

используется практически во всех пользовательских программах. После завершения выполнения ОВ1, что соответствует окончанию выполнения программы, CPU возвращает управление в операционную систему и после

85

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

Компиляция

Программирование на SCL ориентировано на создание исходных блоков программы в папке Blocks после компиляции файлов в папке Sources.

Для компиляции необходимо нажать на иконку в редакторе SCL или нажмите Ctrl+B.

Порядок выполнения работы

1.Конфигурирование проекта

(См. предыдущую работу)

2.Создание таблицы символов

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

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

3.Создание блоков данных

Создать блоки данных для считывания входных и записи выходных сигналов, дискретных и аналоговых. Для этого

a.Создать файл SCL в Simatic Manager - > S7 Program -> Sources ->

правой кнопкой мыши создать новый SCL файл, назвать его содержательным именем и открыть двойным щелчком (открыть редактор SCL).

b.Вызвать шаблон блока через строку меню Insert -> Block Template -> DB

c.Дать имя блокам, заменить DBxxx на символьные имена, заданные в таблице символов для блоков. Теперь для заполнения тела блоков нужно создать простой конфигуратор Excel.

Откройте файл excel, в нем надо создать 4 листа для каждого типа сигнала. Определить назначение и функционал каждого столбца (номер сигнала, алгоритмическое имя (для использования в программе), тип данных (bool или word), Название переменной.

86

Добавить столбцы для автоматической записи переменных в блок данных в формате

«Алгоритмическкое_имя»_: тип_данных; // Название переменной, комментарий.

Создать автоматическое заполнение для каждой ячейки, скопировать результат в блоки между Struct и End_Struct. Скомпилировать блоки, убедиться в отсутствии ошибок.

4.Создание программы чтения данных по условию «Читать данные»

Необходимо создать программу чтения данных по условию «Читать данные».

a.Дать имя функции FC в таблице символов.

b.Вызвать шаблон функции в редакторе SCL, переименовать ее заданным именем.

c.Создать переменную для условия и блок данных для нее (например, разрешение чтения, «Read_perm»).

Чтобы записать переменную transmit в переменную receive, хранящиеся в той же программе (объявленные в var), нужно записать:

Receive := transmit;

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

Data.volume1 – обращение к переменной volume1, хранящейся в блоке DB с именем Data.

d.Разработать программу чтения входных данных из области I в блоки данных входных сигналов, дискретных и аналоговых, по условию: если есть разрешение, осуществить чтение данных, иначе ничего не делать. Отсутствие разрешения на чтение позволяет в дальнейшем использовать программы-симуляторы датчиков и оборудования для тестирования логики программы управления технологическим процессом.

Для этого использовать следующий формат условного оператора

IF:

IF <условие выполнения> then

87

<действия для IF>; Else // не обязательно

<действия для else>; End_if;

Скомпилировать блок, убедиться в отсутствии ошибок.

5.Создание программы запись данных по условию «Писать данные»

a.Дать имя функции FC в таблице символов.

b.Вызвать шаблон функции в редакторе SCL, переименовать ее заданным именем.

c.Создать переменную для условия и блок данных для нее (например, разрешение чтения, «Write_perm»).

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

дальнейшем проводить безопасно пуско-наладочные работы. Скомпилировать блок, убедиться в отсутствии ошибок.

6. Создание программы в OB1

Создайте SCL-файл (см. «Создание программы»), осуществите в нем вызов блока OB1. Для этого в шаблоне организационного блока необходимо символы xxx заменить на 1. Получится запись

«ORGANIZATION_BLOCK OB1».

Далее необходимо осуществить запись параметра аналогового выход а из Вашего списка по варианту (выбрать любой из пяти) в зоне « Statement» (любое значение типа word):

88

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

«Имя_функции»(); Затем необходимо скомпилировать программу и убедиться в

отсутствии ошибок.

4.Проверка правильности работы

Теперь нужно загрузить программу в контроллер или симулятор

PLCSIM.

В отсутствии проекта визуализации проверку рационально проводить с помощью VAT-таблицы. Она создается в папке Blocks. После открытия таблицы необходимо заполнить ее необходимыми переменными в поле Symbol (символьные имена).

Для мониторинга переменных нужно нажать на кнопку

.

 

Для записи значений переменных в поле Modify Value (изменить

значение) вводится необходимое значение, затем записывается кнопкой

.

Подключите блоки данных онлайн к контроллеру аналогично тому, как сделано в VAT.

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

89

Чтение из области входов I

Разрешение

0

 

Область I

0

Любое значение

DB

 

 

 

 

 

чтения

 

 

Н1 включен

 

 

 

Н1 включен

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Любое значение

 

 

 

1

 

 

0

0

 

 

 

 

 

Область I

 

DB

 

 

 

 

 

 

 

 

 

 

Н1 включен

 

 

 

Н1 включен

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

Запись в область выходов Q

Разрешение

0

 

 

 

0

0

 

 

 

 

 

DB

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

записи

 

 

 

 

 

Включить Н1

 

 

 

 

 

 

Включить Н1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

DB

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Включить Н1

 

 

 

 

 

 

Включить Н1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

5.Вывод

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

Лабораторная работа №6. Разработка программы преобразования аналогового сигнала

Цель работы: получение навыков разработки программного блока

FB.

90