Компьютерные технологии разработки
КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ РАЗРАБОТКИ
СОБЫТИЙНО-УПРАВЛЯЕМЫХ СИСТЕМ
Методические указания
к лабораторным работам по дисциплине
«Компьютерные технологии управления в технических системах»
Санкт-Петербург
Издательство СПбГЭТУ «ЛЭТИ»
УДК 528.5-529(075)
Компьютерные технологии разработки событийно-управляемых
систем:Методические указания к лабораторным работам по дисциплине «Компьютерные технологии управления в технических системах» / Сост.:
А. В. Никоза, Д. М. Филатов. СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2014.
Настоящие методические указания продолжают предыдущий цикл из пяти лабораторных работ, опубликованных в [1]. Они содержат методики выполнения лабораторных работ, посвященные методам
разработки событийно-управляемых систем с использованием
инструментария интегрированной среды MATLAB/Simulink/Stateflow и SCADA-системы Infinity, а также вопросам взаимосвязи программных сред посредством OPC интерфейса и подготовки программ для
промышленных логических контроллеров (ПЛК).
Предназначены для студентов, обучающихся по направлению «Управление в технических системах».
Утверждено
Редакционно-издательским советом университета
В качестве методических указаний
© СПбГЭТУ «ЛЭТИ», 2014
Лабораторная работа №6
ВЗАИМОДЕЙСТВИЕ SIMULINK-МОДЕЛЕЙ С OPC СЕРВЕРОМ INFINITY
Цель работы:знакомство с основными свойствами OPC Toolbox;
овладение навыками создания Simulink-моделей, взаимодействующих с OPC сервером Infinity.
Общие сведения
Взаимодействие Simulink-модели с OPC сервером Infinity осуществляется с помощью OPC Toolbox. OPC Toolbox – программный пакет, расширяющий возможности среды MATLAB средствами взаимодействия с OPC серверами. Он позволяет читать и записывать данные с устройств, совместимых со стандартами OPC. OPC Toolbox осуществляет взаимодействие с системами распределенного управления, диспетчерского контроля, захвата данных и с контроллерами программируемой логики. OPC Toolbox позволяет MATLAB и Simulink реагировать на события OPC сервера: включение, выключение, изменение параметров или ошибка.
OPC Toolbox позволяет управлять различными внешними OPC-устройствами с помощью простого синтаксиса. Пакет содержит четыре блока: OPC Configuration, OPC Quality Parts, OPC Read, OPC Write. Блок OPC Configuration определяет OPC клиентов, которые используются в модели, конфигурирует поведение модели в псевдо-реальном времени и определяет поведение модели при возникновении событий и ошибок. У блока OPC Configuration нет входных портов. Имеется один дополнительный выходной порт, который выводит на экран задержку модели (время, потраченное на ожидание на каждом шаге моделирования в псевдо-реальном времени). Блок OPC Quality преобразовывает вектор качества ID OPC в четыре состояния: состояние поставщика, главное качество, качественное подсостояние, предельное состояние. Блок OPC Read предназначен для чтения одного или более сигналов с OPC сервера. Операция чтения выполняется либо синхронно, либо асинхронно. На выход V блок выводит значение сигнала, на дополнительные выходы Q и T соответственно выводятся вектор качества ID OPC и метка времени. Метка времени может быть выведена как дата (реальное время) или как число секунд от момента запуска процесса моделирования (время моделирования). Блок OPC Write предназначен для записи сигналов в OPC сервер. Операция записи осуществляется либо синхронно, либо асинхронно.
Порядок выполнения работы
1. Запустите ОРС сервер Infinity (Управляющий) из директории Пуск\Все программы\ЭлеСи\InfinityLite\Инструменты\Управляющий.
2. Создайте новую конфигурацию сигналов. В этой конфигурации создайте папку Work с сигналом signal(тип float). Проверьте подключение модуля OPC Server в конфигураторе сигналов.
3. Запустите MATLAB. Создайте Simulink-модель аналогичную той, которая представлена на рис. 6.1.
Блоки OPC Configuration, OPC Read, OPC Write находятся в библиотеке расширений OPC Toolbox. Сконфигурируйте OPC сервер для Simulink-модели. Для этого дважды щелкните по блоку OPC Configuration, чтобы открыть его диалоговое окно параметров (рис. 6.2).
Рис. 6.1. Модель sinewave
Рис. 6.2. Окно параметров OPC Configuration
4. Нажмите на кнопку «Configure OPC Clients…» , чтобы открыть OPC Client Manager (рис. 6.3)
Рис.6.3. Окно OPC Client Manager
5. Нажмите на кнопку “Add…” для открытия диалогового окна свойств OPC сервера (рис. 6.4).
Рис.6.4. Окно OPC Server Properties
В появившемся окне (рис. 6.4) нажмите кнопку “Select…” и выберите из появившегося списка «Infinity.OPCServer».
6. Нажмите Ok, и закройте OPC Client Manager (кнопка Close). Закройте окно настройки параметров OPC Configuration.
7. Дважды нажмите на блок OPC Write, чтобы открыть его диалоговое окно параметров (рис. 6.5). Сервер Infinity.OPCServer автоматически выбран в качестве клиента OPC. Убедитесь в этом.
Рис. 6.5. Окно параметров блока OPC Write
8. Выберите имя сигнала, в который будут записываться данные, поступающие в OPC сервер. Для этого нажмите на кнопку «Add Items…» (рис. 6.5).
9. В открывшемся окне (рис. 6.6) выделите сигналsignalи нажмите кнопку «>>«, чтобы добавить его к списку выбранных сигналов; нажмите OK. В диалоговом окне OPC Write (рис. 6.5) нажмите также OK, чтобы принять изменения; закройте диалоговое окно.
Рис. 6.6. Окно выбора элементов (сигналов)
10. Дважды нажмите на блок OPC Read, чтобы открыть его диалоговое окно параметров. В OPC Read добавьте тот же самый сигнал, повторив шаги 8-9.
11. В окне параметров блока OPC Read установите режим чтения (Read mode) в “Synchronous (device)”, а значение “Sample time” установите равным 0. Закройте окно параметров.
12. Запустите процесс моделирования. В результате в окнах Scope 1 и Scope 2 должны отобразиться синусоидальные сигналы (рис. 6.7).
Рис. 6.7. Результат моделирования
Таким образом, в процессе моделирования в OPC сервер Infinity записывается синусоидальный сигнал, сформированный в среде Simulink. С выхода OPC сервера Infinity этот сигнал без какой-либо дополнительной обработки поступает обратно в среду Simulink. Оцените задержку обработки сигнала.
13. Чтобы убедиться, что в OPC сервер Infinity действительно поступает сигнал, сгенерированный в среде Simulink, пронаблюдайте за его изменением с помощью тестового OPC клиента OPCtools. Для этого запустите OPC клиент, подключите его к Infinity.OPCServer, выберите соответствующий сигнал и проконтролируйте изменение его значения.
14. Создайте самостоятельно новую модель. В качестве модели процесса используйте ранее созданную модель в конфигураторе сервера Infinity при выполнении лабораторной работы №1 [1]. Схема модели может иметь вид, показанный на рис 6.8. В качестве входных сигналов следует использовать сигналы Syn и Triangl, Эти сигналы считываются OPC клиентом (блок OPC Read), в качестве которого в данном случае выступает среда MATLAB/Simulink.
Рис. 6.8. Схема модели
15. Запустите процесс моделирования, пронаблюдайте полученный результат и сделайте выводы.
6.3. Контрольные вопросы
1. Для чего предназначен пакет OPC Toolbox?
2. В чем заключается особенность блоков OPC Read и OPC Write в клиент-серверной архитектуре?
3. Для чего предназначен дополнительный выходной порт блока OPC Configuration?
4. Какие выходы имеет блок OPC Read, какие функции они выполняют?
5. Какими свойствами должен обладать сигнал, созданный с помощью конфигуратора OPC сервера, подаваемый на вход модели в Simulink?
6. Какая программная среда может выступать в роли клиента, а какая в роли сервера?
Лабораторная работа №7
Введение в Stateflow
Лабораторная работа № 8
Общие сведения
Пакет MATLAB включает в себя модуль Simulink PLC Coder. Данный модуль позволяет автоматически генерировать согласно стандарту IEC 61131-3 код для программируемых логических контроллеров (ПЛК) и программируемых контроллеров автоматизации. Это позволяет использовать модельно-ориентированное проектирование для промышленного и силового оборудования, управляемого ПЛК. С помощью Simulink PLC Coder инженеры могут автоматически генерировать код для промышленных систем управления, включая замкнутые системы и системы контроля с обратной связью. Автоматическая генерация кода является неотъемлемой и важной частью модельно-ориентированного проектирования, поскольку помогает устранить ошибки, связанные с традиционным ручным написанием кода, уменьшает время разработки, отладки или модификации программ. Simulink PLC Coder генерирует исходный код в структурированном текстовом формате из моделей Simulink, диаграмм Stateflow, и кода Embedded MATLAB, а затем использует интегрированную среду разработки (IDE) от поставщика средств промышленной автоматизации, для компиляции кода и запуска его на контроллерах ПЛК.
Ключевые особенности:
· автоматическая генерация кода IEC 61131-3 (структурированный текст);
· поддержка Simulink, включая подсистемы, блоки ПИД - регуляторов и таблицы поиска (lookup tables);
· поддержка Stateflow, включая графические функции, таблицы истинности и программирование автоматов;
· поддержка Embedded MATLAB, включая if-else выражения, конструкции с циклами и математические операции;
· поддержка различных типов данных, включая булевы, целочисленные, нумерованные и с плавающей точкой, так же как и векторов, матриц, шин и настраиваемых параметров;
· поддержка различных интегрированных сред разработки (IDE), включая B&R Automation Studio™, PLCopen XML, Rockwell Automation® RSlogix™ 5000, и 3S-Smart Software Solutions CoDeSys;
· создание испытательных стендов.
Порядок выполнения работы
Рассмотрим процедуру разработки программы для ПЛК на примере модели системы управления стеклоочистителями и светом фар автомобиля. Эта процедура включает в себя несколько этапов:
1) Создание и отладка Simulink-модели управляемого процесса. Подготовьте модель, разработанную в предыдущей лабораторной работе (см. рис. 8.1).
Рис. 8.1. Simulink-модель
2) Генерация кода для ПЛК. Нажмите правой кнопкой мыши на SF-диаграмму и выберите PLC Coder/Options.
Появиться окно Configuration Parametrs, представленное на рис. 8.2.
Рис. 8.2. Окно Configuration Parametrs
В строке Target IDE выберите Generic и нажмите на кнопку Generate code...
3) Отладка кода для ПЛК. Откройте созданный файл (см. рис. 8.3). Файл находится в папке plcsrc (по умолчанию), которая в свою очередь находится в текущей рабочей папке.
Рис. 8.3. Сгенерированный файл
4) Запустите программу OpenPCS (Пуск\Программы\infoteam OpenPCS2006). Создайте новый проект. Для создания нового проекта необходимо выбрать пункт меню Файл/Новый. В появившемся окне в поле Тип файла выберите Проекты (см. рис. 8.4). В строке Имя введите имя проекта и нажмите на кнопку OK.
Рис. 8.4. Создание нового проекта
5) Создайте файл ST (см. рис. 8.5). Для создания нового файла выберите пункт меню Файл/Новый. В поле Тип файла выберите POU. В поле Язык IEC выберите ST. В строке Имя введите имя файла и нажмите на кнопку OK.
Рис. 8.5. Создание нового файла ST
6) Скопируйте все переменные из файла, сгенерированного в MATLAB, в OpenPCS (все переменные должны находится в общем разделе переменных VAR), присвойте входным и выходным переменным фактические адреса (в качестве примера см. табл. 8.1 и рис. 8.6). Глобальные постоянные объявлены и проинициализированы в блоке VAR_GLOBAL CONSTANT.
Таблица 8.1
Название сигнала | Аппаратный адрес | Тип переменной |
Wswitch | AT%I0.0 | BOOL |
Speed | AT%I1.0 | USINT |
Lswitch | AT%I2.0 | BOOL |
HiBeam | AT%I3.0 | USINT |
M | AT%Q0.0 | USINT |
b_L | AT%Q2.0 | USINT |
Рис. 8.6. Окно OpenPCS (раздел переменных)
7) Далее скопируйте текст программы в раздел программного кода OpenPCS (см. рис. 8.7). В тексте программы в операторах CASE…OF замените все метки их соответствующими числовыми значениями, представленными в блоке VAR_GLOBAL CONSTANT. Проверьте программу на отсутствие ошибок с помощью пункта меню Файл/Проверить синтаксис. При возникновении ошибок в OpenPCS проверьте типы и значения переменных, при необходимости замените их.
Рис. 8.7. Окно OpenPCS (разделы переменных и программного кода)
На данном этапе процедура разработки программы для ПЛК заканчивается.
8) Подготовьте полученную программу к выполнению с помощью встроенного в OpenPCS симулятора. Для этого последовательно нажмите на кнопки “Собрать активный ресурс” и “Подключиться/Отключиться” (см. рис. 8.8 и 8.9)
Рис. 8.8. Создание активного ресурса
Рис. 8.9. Выполнение операции Подключиться/Отключиться
9) Сформируйте список отлаживаемых переменных. Для этого откройте вкладку Resources в левом нижнем поле окна Проекта и выберите необходимые переменные, как это показано на рис. 8.10.
Рис. 8.10. Формирование списка отлаживаемых переменных
10) Запустите программу на выполнение с помощью встроенного симулятора SmartSIM (кнопка run), окно которого представлено на рис. 8.11. Проконтролируйте правильность работы программы, изменяя значения входных переменных и наблюдая за соответствующими им изменениями значений выходных сигналов.
Рис. 8.11. Окно симулятора SmartSIM
11) Закончите работу.
8.3. Контрольные вопросы
1. Как называется модуль, с помощью которого можно сгенерировать программный код для ПЛК в MATLAB?
2. Как называется стандарт, которому соответствует сгенерированный код?
3. Какими основными свойствами обладает Simulink PLC Coder?
4. Каковы преимущества разработки программ для ПЛК с использованием пакета MATLAB?
5. В каком формате генерируется программный код для ПЛК?
6. Какие основные операции следует выполнить с программным кодом, полученным с помощью Simulink PLC Coder, чтобы избежать возможных ошибок при его отладке в среде OpenPCS?
Список литературы
1. Методические указания к лабораторным работам по дисциплине «Компьютерные технологии управления в технических системах» / Сост.: Е. С. Анушина, А. В. Никоза, В. В. Степанов, Д. М. Филатов. СПб.: Изд-во СПбГЭТУ “ЛЭТИ”, 2011. 24 с.
2. Моделирование гибридных систем в Stateflow. Методические указания к лабораторной работе по курсу «Моделирование систем» / Cамар. гос. техн. ун-т; Сост. Рогачев Г. Н. Самара, 2005. 11 с.
3. Г. Н. Рогачев “Stateflow 5. Руководство пользователя”. Ссылка на Internet-ресурс: http://matlab.exponenta.ru/stateflow/book1/index.php
4. Основы разработки систем диспетчерского контроля и управления: Методические указания к лабораторным работам по дисциплине “Проектирование автоматизированных производственных комплексов и систем” / Сост.: Е. С. Филатова, Д. М. Филатов. СПб.: Изд-во СПбГЭТУ “ЛЭТИ”, 2013. 36 с.
Содержание
Лабораторная работа №6
ВЗАИМОДЕЙСТВИЕ SIMULINK-МОДЕЛЕЙ С OPC СЕРВЕРОМ
INFINITY……………………………………………………………..………3
Лабораторная работа № 7
СОЗДАНИЕ SIMULINK-МОДЕЛЕЙ С ИСПОЛЬЗОВАНИЕМ
ИНСТРУМЕНТАРИЯ STATEFLOW. ВЗАИМОДЕЙСТВИЕ
СРЕД SIMULINK/STATEFLOW И INFINITY………………...…..………9
Лабораторная работа № 8
РАЗРАБОТКА ПРОГРАММ ДЛЯ ПЛК С ИСПОЛЬЗОВАНИЕМ
СРЕД MATLAB И OPENPCS……………………...……………………....20
Список литературы………………….……………………………………30
КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ РАЗРАБОТКИ