Разработка модели взаимодействия между Simulink/Stateflow и SCADA-системой Infinity
1. Создайте в конфигураторе сигналов сервера Infinity сигналы включения/выключения стеклоочистителей и света фар и сигналы выбора режимов их работы. Типы сигналов, передаваемых между различными средами, должны быть согласованы. Задайте соответствующие типы сигналов (типу uint8 среды MATLAB/Simulink соответствует тип Byte в среде Infinity) и их начальные значения по своему выбору. Структура дерева входных и выходных сигналов показана на рис. 7.10.
Рис. 7.10. Структура дерева сигналов в конфигураторе сервера Infinit
2. Откройте Simulink-модель и с помощью блоков OPC Toolbox свяжите данную модель с OPC-сервером (рис. 7.11), убрав предварительно блоки входных и выходных сигналов, созданные на предыдущем этапе работы.
3. Запустите созданную модель на выполнение и проконтролируйте правильность ее работы, задавая различные сочетания значений входных сигналов и контролируя сигналы на выходе.
4. Создайте упрощенную модель визуализации управляемого процесса в Infinity HMI, предусмотрев соответствующие органы управления и отображения. После запуска процесса моделирования управление режимами работы модели должно осуществляться органами управления, находящимися в окне HMI интерфейса. Визуализация процесса управления должна воспроизводиться также с помощью созданной HMI модели. Проконтролируйте правильность работы созданной модели.
Рис. 7.11. Simulink-модель взаимодействия с системой Infinity
7.4. Контрольные вопросы
1. Что означают термины “событие”, “условие”, “переход” применительно к техническим системам?
2. Как реализуется механизм иерархии с помощью инструментария системы State Flow?
3. Каково назначение переходов по умолчанию?
4. Как обеспечивается параллельная работа независимых подсистем объекта управления?
5. Что означает термин “суперсостояние”?
6. Можно-ли использовать модель Simulink/Stateflow в качестве конфигуратора сигналов для проектируемой системы управления?
Лабораторная работа № 8
РАЗРАБОТКА ПРОГРАММ ДЛЯ ПЛК С ИСПОЛЬЗОВАНИЕМ СРЕД MATLAB И OPENPCS
Цель работы:овладение навыками разработки программ для ПЛК с использованием пакета MATLAB.
Общие сведения
Пакет 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