СИСТЕМЫ РЕАЛЬНОГО...

60
Министерство образования и науки Российской Федерации Южно-Российский государственный политехнический университет (НПИ) имени М. И. Платова СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ПРАКТИЧЕСКИМ ЗАНЯТИЯМ, ЛАБОРАТОРНЫМ РАБОТАМ И САМОСТОЯТЕЛЬНОЙ РАБОТЕ СТУДЕНТОВ Новочеркасск ЮРГПУ (НПИ) 2017

Upload: others

Post on 18-Aug-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

Министерство образования и науки Российской Федерации

Южно-Российский государственный политехнический университет

(НПИ) имени М. И. Платова

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ПРАКТИЧЕСКИМ ЗАНЯТИЯМ,

ЛАБОРАТОРНЫМ РАБОТАМ И САМОСТОЯТЕЛЬНОЙ РАБОТЕ

СТУДЕНТОВ

Новочеркасск

ЮРГПУ (НПИ)

2017

Page 2: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

2

УДК 004.89(076.5)

ББК 22.17

Семенченко И.Г.

Системы реального времени: методические указания к практическим

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

Южно-Российский государственный политехнический университет (НПИ)

им. М. И. Платова.-Новочеркасск: ЮРГПУ (НПИ), 2017. – 60 с.

В данном издании представлены методические материалы по освоению

навыков программирования PLC SMART-2 и ПЛ-150 на языках SFC, FBD и

LD.

Методические указания предназначены для студентов, обучающихся по

направлениям 09.03.04 «Программная инженерия», 09.03.01 «Информатика и

вычислительная техника», 02.02.03 «Математическое обеспечение и

администрирование информационных систем» очной и заочной форм

обучения.

УДК 004.89(076.5)

Рецензент – Д.В. Гринченков, доцент, к.т.н.

Южно-Российский государственный

политехнический университет (НПИ)

имени М.И. Платова, 2017

Page 3: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

3

Направление 09.03.04 «Программная инженерия»

1. ПРАКТИЧЕСКИЕ ЗАНЯТИЯ

1.1. Очная форма обучения

№ Наименование тем занятий Форма

контроля

Сроки

контроля

Литера

тура

1 Программирование сетевого

взаимодействия в ОС РВ QNX 6.2

Опрос 10-14.03 7 [6]

2 Реализация логических

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

автоматов в среде CodeSys

Опрос

23-27.04 7 [4]

Практическое занятие №1

Программирование сетевого взаимодействия в ОС РВ QNX 6.2

Цель занятия: изучить работу CAN контроллера, наладить связь между

двумя компьютерами с помощью магистрали CANbus.

Задание:

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

сообщениями через магистраль CANbus.

- запустить приложения на обоих ПК учебного стенда.

- произвести обмен сообщениями.

Используемые средства: ОС QNX6 Momentics NC, интегрированный

компилятор Watcom С/С++, библиотека для работы с CAN527.

Выполнение работы

В данной работе используется драйвер can527 v1.0 beta, реализован в

виде единой встраиваемой в проект библиотеки функций, предоставляет

программисту удобный интерфейс для работы с одноканальными и

двухканальными платами can527.

Версия v1.0 beta драйвера имеет следующие возможности:

псевдо бесконечный буфер-очередь отправки и приема

сообщений. (насколько это позволяют ресурсы ЭВМ).

независимые процессы могут одновременно использовать

отдельные каналы двухканальных плат CAN527.

инициализация драйвера can527 при вызове конструктора.

автоматическое разрушение драйвера при завершении вашей

программы.

Интеграция библиотеки функций драйвера CAN527 осуществляется:

1. Подключение файла can527.cc к проекту.

Page 4: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

4

#include “can527.cc”

2. Создание объекта канала CAN527 в вашем проекте:

TCan Can(BaseAddress,chanal,Interrupt,SpeedReg1,SpeedReg2);

где

BaseAddress – базовый адрес платы на шине ISA .

chanal – номер канала платы. (1,2)

SpeedReg1 – верхний регистр скорости передачи данных по каналу.

SpeedReg2 – нижний регистр скорости передачи данных по каналу.

Примечание: Скорость передачи данных существенно зависит от длины

линии связи.

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

одинаковой.

Пример.

TCan Can(0xC8000,1,5,0x49,0x23);

0x49, 0x23 – где-то 125 кбит/c.

Построение программы по приему и передаче сообщений по CAN527.

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

работы с каналом CAN.

Используемые переменные:

unsigned int Command;

unsigned int Id;

unsigned char buf[8];

char leng;

sBlock *Blck;

1 секция – может располагаться, где угодно и сколь угодно раз.

Секция вставки сообщения в очередь «отправки».

Can.SendMsg(f+300,buf,8,10);

2 секция – может располагаться в коде один раз, желательно в отдельном

потоке.

Секция отправки сообщения из буфера в канал.

Blck=Can.CanPopMsg(SendBuf);

if (Blck!=NULL)

{

Can.MessSend->InsertMessage(Blck->Id,Blck->buf,Blck->leng);

delete Blck;

}

3 секция – может располагаться в коде лишь один раз, желательно в

отдельном потоке.

Секция приема сообщений из канала в буфер.

Can.FlagData=*(Can.NormAddress+InterruptReg);

if(Can.FlagData>2)

{

Id=Can.MessReceiv->PrintMessage(buf,leng);

Can.CanPushMsg(ReceivBuf,Id,buf,leng);

Page 5: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

5

Can.FlagData=0;

}

4 секция – может располагаться, где угодно, сколь угодно раз.

Секция извлечения сообщения из буфера и обработка данных.

if ( Can.RecesivMsg(Id,buf,leng) >0 )

{

Command=Id;

printf("id = %i \n",Command);

Command=leng;

printf("leng = %i \n",Command);

for(int i=0;i<leng;++i)printf("Msg buf= %i ", buf[i]);

}

Принципиальная структура программы (минимально)

(Модель с общей памятью) приведена ниже.

Код программы приведен ниже.

Листинги программы. Пример программы для передачи и приёма сообщений через CAN-кабель.

#include “can527.cc”

#include <stdio.h>

void main(void)

Процесс

Основной поток.

Одна или несколько секций 1

Доп. поток 1

Объединение секции

2 и секции 3

Доп. поток 2

Секция 4

Глобальный переменные

TCan Can(BaseAddress,chanal,Interrupt,SpeedReg1,SpeedReg2);

Page 6: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

6

{

int i;

unsigned int Command;

int Finish;

unsigned int Id;

unsigned char buf[8];

char leng;

sBlock *Blck;

printf(" -=Driver can527 Batjuchenko Igor, Novocherkassk=- \n");

printf(" -=#[email protected], 2006 Ldt.=- \n");

TCan Can(0xC8000,1,5,0x49,0x23);

//TCan Can(0xC8000,2,7,0x49,0x23);

printf("Addres canal = 0x%x \n",Can.NormAddress);

printf("Start controller \n");

printf("Please enter regim send = 0 receive = 5 >> ");

scanf("%i", &i);

Finish=0;

while(Finish==0)

{

if (i<2)

{

memset(buf,0,8);

printf("Plese enter key... \n");

int f=getchar();

//посылаем тестовое сообщение

Can.SendMsg(f+300,buf,8,10);

// конец

//--------Transmit раздел передачи данных

Blck=Can.CanPopMsg(SendBuf);

if (Blck!=NULL)

{

Can.MessSend->InsertMessage(Blck->Id,Blck->buf,Blck->leng);

delete Blck;

}

//--------Transmit конец раздела передачи данных

}

else

{

//--------Recesive 1 раздел приема сообщений

Can.FlagData=*(Can.NormAddress+InterruptReg);

if(Can.FlagData>2)

{

Id=Can.MessReceiv->PrintMessage(buf,leng);

Can.CanPushMsg(ReceivBuf,Id,buf,leng);

Can.FlagData=0;

Page 7: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

7

}

//--------Recesive 1 конец раздела приема сообщений

//-------- раздел приема сообщений из буфера

if ( Can.RecesivMsg(Id,buf,leng) >0 )

{

Command=Id;

printf("id = %i \n",Command);

Command=leng;

printf("leng = %i \n",Command);

for(int i=0;i<leng;++i)printf("Msg buf= %i ", buf[i]);

}

//-------- конец раздела приема сообщений из буфера

}

}

}

Результат работы программы

Для того чтобы протестировать передачу данных через can-кабель

необходимо запустить на одной машине программу в режиме отправки:

Данная программа отсылает другой программе код сообщения, код генерируется

путём считывания нажатой клавиши:

Другую программу достаточно запустить в режиме приёма сообщений,

она будет получать идентификатор принятого сообщения и выводить на экран:

Page 8: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

8

Практическое занятие №2

Реализация логических контроллеров и дискретных автоматов в среде

CodeSys

Цель занятия: Ознакомиться со средой программирования CodeSys,

программируемым логическим контроллером ПЛК150 и его подключением по

Ethernet или через USB порт компьютера.

Оборудование: персональный компьютер с Ethernet и USB портом, среда

программирования CoDeSys, промышленный контроллер ПЛК150.

Программа практических занятий включает:

1. Знакомство с со средой программирования CoDeSys.

2. Установку СoDeSys, инсталляция Target файлов.

3. Создание (открытие) проекта. Выбор контроллера.

4. Установка связи с контроллером

Знакомство с со средой программирования CoDeSys.

CoDeSys - это современный инструмент для программирования

контроллеров (CoDeSys образуется от слов Controllers Development System).

CoDeSys предоставляет программисту удобную среду для программирования

контроллеров на языках стандарта МЭК 61131-3. Используемые редакторы

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

зарекомендовавших принципах, знакомых по другим популярным средам

профессионального программирования (такие, как Visual C++).

Главное окно CoDeSys:

Page 9: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

9

Главное окно CoDeSys состоит из следующих элементов (в окне они

расположены сверху вниз):

· Меню.

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

меню.

· Организатор объектов, имеющий вкладки POU, Data types, Visualizations и

Resources.

· Разделитель Организатора объектов и рабочей области CoDeSys.

· Рабочая область, в которой находится редактор.

· Окно сообщений.

· Строка статуса, содержащая информацию о текущем состоянии проекта.

Панель инструментов, окно сообщений и строка статуса не являются

обязательными элементами главного окна.

Меню

Меню находится в верхней части главного окна. Оно содержит все команды

CoDeSys.

Панель инструментов

Page 10: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

10

Кнопки на панели инструментов обеспечивают более быстрый доступ к

командам меню. Вызванная с помощью кнопки на панели инструментов

команда автоматически выполняется в активном окне. Команда

выполнится, как только нажатая на панели инструментов кнопка будет

отпущена. Если вы поместите указатель мышки на кнопку панели

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

этой кнопки в подсказке. Кнопки на панели инструментов различны для

разных редакторов CoDeSys. Получить информацию относительно назначения

этих кнопок можно в описании редакторов.

Организатор объектов

Организатор объектов всегда находится в левой части главного окна

CoDeSys. В нижней части организатора объектов находятся вкладки POUs,

Data types (типы данных), Visualizations (визуализации) и Resources

(ресурсы). Переключаться между соответствующими объектами можно с

помощью мышки или клавиш перемещения.

Организатор объектов:

Разделитель экрана.

Разделить экрана – это граница между двумя непересекающимися окнами.

В CoDeSys есть следующие разделители: между организатором объектов и

рабочей областью, между разделом объявлений и разделом кода POU, между

рабочей областью и окном сообщений. Вы можете перемещать разделители

с помощью мышки, нажав ее левую кнопку. Разделитель сохраняет свое

положение даже при изменении размеров окна. Если вы больше не видите

разделителя на экране, значит, стоит изменить размеры окна.

Рабочая область.

Page 11: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

11

Рабочая область находится в правой части главного окна CoDeSys. Все

редакторы, а также менеджер библиотек открываются именно в этой области.

Имя открытого объекта находится в заголовке окна.

Окно сообщений.

Окно сообщений отделено от рабочей области разделителем. Именно в

этом окне появляются сообщения компилятора, результаты поиска и список

перекрестных ссылок. При двойном щелчке мышкой или при нажатии

клавиши <Enter > на сообщении будет открыт объект, к которому относиться

данное сообщение. С помощью команд “Edit” ”Next error” и ”Edit ” ” Previous

error ” можно быстро перемещаться между сообщениями об ошибках.

Окно сообщений можно убрать либо включить с помощью команды “Window”

“ Message”.

Статусная строка

Статусная строка находится в нижней части главного окна CoDeSys и

предоставляет информацию о проекте и командах меню.

При выборе пункта меню его описание появляется в левой части строки

статуса. Если вы работаете в режиме online, то надпись Online в строке

статуса выделяется черным цветом. В ином случае надпись серая. С помощью

статусной строки в режиме online можно определить, в каком состоянии

находится программа: SIM – в режиме эмуляции, RUN – программа

запущена, BP- установлена точка останова, FORCE – происходит фиксация

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

позиция, в которой находится курсор (например, Line:5, Col.:11). В режиме

замены надпись “OV” выделяется черным цветом. Нажимая клавишу <Ins>

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

статусной строке выводятся координаты курсора X и Y, которые

отсчитываются относительно верхнего левого угла окна. Если указатель мыши

находится на элементе или над элементом производятся какие-либо действия,

то указывается номер этого элемента. При вставке элемента в строке статуса

указывается его название (например, Rectangle). Если вы поместили указатель

на пункт меню, то в строке статуса появляется его краткое описание.

Статусную строку можно убрать либо включить (см. 'Project' 'Options'

категория Desktop)

Контекстное меню

Быстрый вызов: <Shift>+<F10>

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

воспользоваться контекстным меню. Это меню, вызываемое правой кнопкой

мыши, содержит наиболее часто используемые команды.

Page 12: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

12

Установка СoDeSys, инсталляция Target файлов

1 Для установки среды программирования CoDeSys 2.3 следует запустить

программу инсталлятор. Обратите внимание: при выборе языка работы

программы русский язык отсутствует в списке, поэтому рекомендуется

выбрать английский язык. Бесплатные обновления версий программы

СoDeSys доступны на сайтах www.codesys.ru и www.3s-software.com.

2. После инсталляции среды CoDeSys следует выполнить инсталляцию Target-

файлов. В Target-файлах содержится информация о ресурсах

программируемых контроллеров, с которыми работает CoDeSys. Target-файл

поставляется производителем контроллера.

ВНИМАНИЕ! Имя Target-файла может не полностью совпадать с названием

контроллера. В названии контроллера применяются русские и английские

буквы, а в названии Target-файла только английские. Например, для

контроллера ПЛК154-220.И-L необходимо устанавливать Target-файл

PLC154.I+L, а для ПЛК154-220.У-М файл PLC154.U-M. Инсталляция Target-

файлов производится при помощи утилиты InstallTarget, устанавливающейся

вместе со средой программирования. Порядок инсталляции Target-файлов:

1) В открывшемся при запуске утилиты InstallTarget окне (рис. 2.1) – нажать

кнопку Open и указать путь доступа к инсталлируемому Target-файлу

(имеющему расширение *.tnf, Target Information File). Target-файлы

контроллеров ОВЕН ПЛК154 находятся на компакт-диске, поставляемом с

контроллером, в папке «Target» или могут быть скачаны с сайта www.owen.ru.

При скачивании с сайта папку с Target-файлами надо разархивировать и

сохранить на жестком диске ПК.

2) После открытия требуемого файла в области «Possible Targets» окна

отобразится папка «Owen».

3) Открыв папку «Owen» и выделив находящуюся там строку, нажать кнопку

Install. В области «Installed Targets» окна отобразится список

инсталлированных Target-файлов.

Page 13: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

13

Рис. 2.1. Окно «InstallTarget» утилиты InstallTarget

Создание (открытие) проекта. Выбор контроллера.

Примеры и запуск программ

1. Для создания нового проекта необходимо в среде СоDеSys вызвать команду

меню File | New или воспользоваться одноименной кнопкой на панели

инструментов.

2. После создания проекта нужно выбрать Target-файл, соответствующий

названию контроллера. Target-файл предварительно должен быть

инсталлирован (см. п. 2.2). Окно выбора Target-файла представлено на рис. 2.2.

Рис. 2.2. Окно выбора Target-файла

Page 14: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

14

3. Затем откроется окно настроек Target-файлов. Как правило, настройки

установлены производителем и не требуют изменения (кроме изменения

объема Retain-памяти).

4. После подтверждения настроек Target-файла необходимо создать основной

РОU (главную программу проекта). Окно этого диалога представлено на рис.

2.3. Главная программа всегда должна иметь тип Program и имя PLC_PRG.

Поэтому в данном диалоге необходимо выбрать только язык

программирования (Language of the POU).

Рис. 2.3. Окно создания основного РОU

5. В зависимости от выбранного языка программирования откроется окно, в

котором необходимо создать программу, исполняемую на контроллере.

Простейшей программой на языке ST является символ «;». Такой программы

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

FBD, LD и SТ приведены на рис. 2.4.

Рис. 2.4. Примеры программ на языках FBD (а), LD (б) и SТ (в)

Page 15: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

15

При написании любого из примеров программ, представленных на рис. 2.4,

будет вызван ассистент ввода (рис. 2.5) для описания переменной а.

Рис. 2.5. Ассистент ввода для объявления переменной

6. Для открытия файла проекта необходимо в среде СоDеSys вызвать команду

меню File | Open или воспользоваться одноименной кнопкой на панели

инструментов.

7. Для загрузки программы в контроллер установите связь с контроллером,

вызвав команду меню Online | Login. Запустите выполнение загруженной

программы, вызвав команду меню Online | Run или нажатием кнопки

"Старт/Стоп" на передней панели контроллера.

8. Если требуется, чтобы программа осталась в памяти контроллера после

перезагрузки, то ее необходимо записать во внутреннюю Flash-память

контроллера, вызвав команду меню Online | Create boot project. После этого

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

и при включении питания.

ВНИМАНИЕ! Ресурс встроенной Flash-памяти контроллера ограничен (около

50 тыс. записей), поэтому не рекомендуется при отладке программы каждый

раз записывать ее во Flash-память.

Установка связи с контроллером

1. Установка связи с контроллером возможна по интерфейсам Ethernet, Debug

RS-232 или через последовательный модем (подключенный к порту Debug RS-

232). Настройка канала соединения с контроллером производится в окне

«Communication parameters», вызываемом командой меню Online |

Communication parameters в среде CoDeSys (рис. 2.6). Нажать кнопку New в

этом окне. Откроется окно «Communication parameters: New Channel». В этом

окне задать имя нового соединения (например, Owen) и выбрать из перечня

Page 16: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

16

интерфейс соединения: Tcp/Ip (Level 2) для связи по интерфейсу Ethernet или

Serial (RS232) для связи через порт Debug RS-+232 напрямую или Serial

(Modem) для связи через последовательный модем.

2. При выборе соединения Serial (RS232) в настройках параметров следует

задать СОМ-порт (параметр Port), по которому ПЛК подключается к

компьютеру и изменить скорость соединения (параметр Baudrate) на 115200

бит/с и настройку бит четности (параметр Parity) на "No". Для изменения

параметра следует дважды щелкнуть левой кнопкой мыши по

имеющемуся значению параметра, и, листая список доступных значений

стрелками на клавиатуре, выбрать новое значение. Для сохранения нового

значения – нажать кнопку Enter на клавиатуре.

3. Для соединения ПЛК с компьютером через последовательный модем

необходимо сначала изменить конфигурацию ПЛК для работы с модемом. Для

изменения конфигурации связь с контроллером должна быть установлена

через интерфейс Debug RS-232 напрямую (см. п. 2) или по интерфейсу

Ethernet.

Рис. 2.6. Настройка коммуникационных параметров для соединения с ПЛК

4. Для установки соединения по интерфейсу Ethernet контроллер и компьютер

должны находится в одной IP+подсети. Возможны два варианта: изменение

имеющегося IP-адреса контроллера в соответствии

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

IP-адреса, входящего в подсеть контроллера.

Изменение IP-адреса контроллера возможно при помощи команды SetIP,

подаваемой через PLC-Browser. При этом связь с контроллером должна быть

установлена через интерфейс Debug RS-232. Задание дополнительного IP

адреса компьютеру делается в свойствах протокола TCP/IP в настройках

сетевого окружения Windows. При изготовлении устанавливается IP-адрес

контроллера 10.0.6.10. Поэтому необходимо присвоить компьютеру

дополнительный IP-адрес в подсети 10.0.6, отличный от адреса 10.0.6.10.

Page 17: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

17

Маску подсети задать равной 255.255.0.0. При настройке соединения Tcp/Ip

(Level 2) в параметре Address необходимо задать IP-адрес контроллера,

дважды щелкнув левой кнопкой мыши по значению адреса, и ввести новое

значение с клавиатуры. Для сохранения нового значения нажать кнопку Enter

на клавиатуре.

5. После настройки соединения подать команду меню Online | Login,

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

Simulation Mode должен быть снят. Для установки связи необходимо, чтобы

была создана программа пользователя.

ВНИМАНИЕ! При смене интерфейса соединения необходимо произвести

перезагрузку контроллера, нажав кнопку "Сброс" на лицевой панели.

2. ЛАБОРАТОРНЫЕ ЗАНЯТИЯ

2.1. Очная форма обучения

№ Наименование тем занятий Форма

контроля

Сроки

контроля

Литера

тура

1 Изучение программирования на

языке SFC и LD в среде

ISaGRAF.

Защита

отчета

10-14.03 7 [4]

2 Реализация логических кон-

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

томатов на промышленном

контроллере SMART-2 в среде

программирования ISaGRAF.

Защита

отчета

10-14.04 7 [4]

3 Изучение программирования на

языке FDB и LD в среде CodeSys.

Защита

отчета

23-24.04 7 [4]

4 Исследование алгоритмов

числового программного

управления

Защита

отчета

03-09.05 7 [5]

Лабораторная работа №1

Изучение программирования на языке SFC и LD в среде ISaGRAF.

Цель работы: C помощью ISaGRAF 3.3 реализовать на языке SFC,

алгоритм логического управления на примере управления двумя клапанами с

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

вычисление логического выражения.

Page 18: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

18

Исходное состояние органов управления и клапанов

Кнопки выбора режима х1 («открыть клапаны») и х2 («закрыть

клапаны») не нажаты, клапаны закрыты — сигнализаторы закрытого

положения х3 и х5 активны; сигнализаторы открытого положения х4 и х6

пассивны. При этом: х1=0; х2=0; х3=1; х4=0; х5=1; х6=0.

Кл1 Кл2

УА

З О

О

З О

З ОЗ

x3 x4 x5 x6

z1 z2 z3 z4

x1 x2

Рис. 1.1. - Схема связей ИИ – А – ИМ

Описание схемы

Кл1 – клапан 1;

Кл2 – клапан 2;

УА – управляющий автомат;

З – индикатор закрытия;

О – индикатор открытия;

Описание переменных

х1 – входная переменная, отвечающая за открытие клапанов;

х2 – входная переменная, отвечающая за закрытие клапанов;

х3, х4 – выходные переменные 1-го клапана;

х3 – сигнализатор закрытого положения 1-го клапана;

х4 – сигнализатор открытого положения 1-го клапана;

Page 19: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

19

х5, х6 – выходные переменные 2-го клапана;

х5– сигнализатор закрытого положения 2-го клапана;

х6 – сигнализатор открытого положения 2-го клапана;

z1, z2, z3, z4 – выходы управляющего устройства;

z1, z2 – входные переменные 1 клапана;

z2 – обеспечивает открытие 1 клапана;

z1 – обеспечивает закрытие 1 клапана;

z3, z4 – входные переменные 2 клапана;

z4 – обеспечивает открытие 2 клапана;

z3 – обеспечивает закрытие 2 клапана;

Алгоритм управления

При нажатии кнопки x1 подается управляющий сигнал на открытие

первого клапана. После его открытия по сигналу сигнализатора открытого

положения x4 снимается управляющий сигнал с первого клапана и начинает

открываться второй. После его открытия по сигналу сигнализатора открытого

положения x6 снимается управляющий сигнал со второго клапана. Система

находится в устойчивом состоянии.

При нажатии кнопки x2 подается управляющий сигнал на закрытие

второго клапана. После его закрытия по сигналу сигнализатора закрытого

положения x5 снимается управляющий сигнал со второго клапана и начинает

закрываться первый. После его закрытия по сигналу сигнализатора закрытого

положения x3 снимается управляющий сигнал с первого клапана. Система

возвращается в исходное состояние.

Граф переходов автомата А, входящего в состав управляющего

устройства

В вершинах графа указаны состояния и значения выходных

переменных, на рёбрах графа указаны условия переходов.

0

0000

1x

1

0100

2

0001

3

0000

4

0010

5

1000

4x 6x

5x3x 2x

1x 4x

6x

2x5x

3x

:1 2 3 4

Y

z z z z

Page 20: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

20

Рис. 1.2 – Граф переходов автомата А

Создание и компиляция программы

Создание проекта

Открыть программу, на панели нажать кнопку «Создать новый проект».

В появившимся окне ввести имя проекта (рисунок 1.3):

Рис. 1.3 – Окно создания проекта

Откроется окно обозревателя программ проекта. На панели

обозревателя программ нажимаем на кнопку «Создать новую программу». В

появившемся окне (рисунок 1.4) ввести имя программы, язык

программирования, в данном случае это SFC и стиль программы, у нас - это

«Sequential: основная программа»:

Рис. 1.4 – Окно новой программы

Нажимаем принять и попадаем в окно разработки программы на языке

SFC.

Объявление переменных

Переменные объявляются в дневнике переменных (Dictionary).

По алгоритму объявляем следующие переменные:

x1, x2 – входные переменные открытия и закрытия(bool)

х3, х5 - вых. переменные, сигнализаторы закрытого положения (bool)

Page 21: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

21

х4, х6 - вых. переменные, сигнализаторы открытого положения (bool)

z1, z2, z3, z4 – выходные переменные, управляющие автоматом (bool)

у1 – переменная для кодирования состояний (int)

k1, k2 – выходные переменные положения клапана (bool)

Для вывода комментариев по ходу работы программы используются

переменные типа message: m, m1.

Рис. 1.5 – Окно словаря

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

индикаторам для удобства работы с помощью I/O connection автоматически ,

так как при создании проекта была выбрана опция «Simulate all variables»

Рис. 1.6 – Окно привязки переменных к визуальной части программы

Составление программы на языке SFC

Принцип языка SFC – это строгая последовательность «шаг + переход».

В блоке «шаг» (он обозначен прямоугольником) происходит действие,

Page 22: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

22

описанное на языке ST. В блоке «переход» (он обозначен горизонтальное

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

Добавление «шага» или «перехода» (программирование первого уровня)

осуществляется нажатием соответствующих кнопок на панели управления или

горячих клавиш для «шага» - это F3 для «перехода» - это F4.

Программирование на втором уровне на языке ST: на данном этапе

записываются условия переходов, при выполнении которых этот переход

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

в соответствующих блоках.

Программирование внутри «шагов» или «переходов» на языке ST

(программирование второго уровня) (рисунок 1.7). Для того чтобы перейти в

окно программирования второго уровня нужно два раза кликнуть по «шагу»

или «условию».

Рис. 1.7 – Окно программирования второго уровня на языке ST

Также в программе присутствует элемент «переход» (стрелка,

указывающая вниз) - он позволяет осуществить безусловный переход на

заданный шаг.

Компиляция программы

Перед компиляцией нужно закрыть окно разработки программы,

предварительно сохранив программу, и в окне обозревателя программ на

панели нажать кнопку «Создать код приложения», после чего, если не будет

ошибок, всплывет окно – сообщение об успешной компиляции программы

(рисунок 1.8).

Рис. 1.8 – Окно – сообщение успешной компиляции программы

Page 23: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

23

Результаты работы программы

Для запуска программы в режиме симуляции на панели обозревателя

программ нажимаем на кнопку «Симуляция» после чего программа будет

запущена. Результаты симуляции представлены для исходного состояния на

рисунке 1.9. Выполнить симуляцию и представить результаты по всему

алгоритму открытия клапанов и их последующего закрытия.

Рис. 1.9 – Исходное состояние автомата. Клапана закрыты, индикаторы

закрытия x3 и x5 активированы.

Программа на языке LD.

Логическое выражение:

𝑓(𝑥1, 𝑥2, 𝑥3) = (𝑥3 ∩ 𝑥1 ∪ 𝑥1 ∩ 𝑥2) ∪ (𝑥2 ∪ 𝑥3)

Таблица истинности

X1 X2 X3 f

0 0 0 0

0 1 0 1

1 0 0 1

1 1 0 1

0 0 1 0

0 1 1 0

1 0 1 1

1 1 1 1

Создание и компиляция программы

Создание проекта

Page 24: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

24

Создание проекта на языке LD отличается от проекта на языке SFC лишь

выбором языка в «Окне новой программы», а именно нужно выбрать

«Быстрый LD: Релейная схема» (рисунок 1.10).

Рис. 1.10 – Окно создания программы на языке LD

Объявление переменных

Объявляем следующие переменные:

x1, x2, x3 – входные переменные (bool)

r1, r2, r3, r4 - промежуточные вых. переменные (bool)

f – выходная переменная состояния (bool)

Рис. 1.11 – Окна словаря и привязки переменных к визуальной части

программы

Составление программы на языке LD

Язык LD – это графический язык - применяется для описания логических

выражений различного уровня сложности, графического представления

булевых уравнений. Он содержит контакты (входные аргументы) и катушки

(выходные переменные). Элементы организуются в сеть релейно- контактных

Page 25: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

25

схем. При необходимости можно реализовывать более сложную логику,

используя, например, элементы языка FBD.

Каждому контакту ставится в соответствие логическая переменная,

определяющая его состояние. Ее имя ставится над контактом и служит его

названием. Если контакт замкнут, то переменная имеет значение true, если

разомкнут – false. Последовательное соединение контактов или цепей

соответствует логической операции И/AND, параллельное – ИЛИ/OR.

Нормально замкнутый (инверсный) контакт равнозначен логической операции

НЕ.

LD – схема программы

В данной схеме используются блоки & и OR, нормально разомкнутый

контакт, нормально замкнутый контакт (инверсный), который соответствует

логической операции НЕ.

Рис. 1.12 – Логическое выражение, реализованное на языке LD

Компиляция программы

Этапы компиляции такие же, как и у программы SFC.

Ниже приведен рисунок 1.13 - результат компиляции программы:

Page 26: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

26

Рис. 1.13 – Окно – сообщения результата компиляции программы

Результаты симуляции программы

Симуляция запускается так же, как и с вариантом программы SFC. В

нашей программе мы управляем входами x1, x2, x3 в первой колонке, во

второй колонке показываются промежуточные состояния, в третьей колонке

выходной сигнал. Если лампочка горит значит логическая “1”, если не горит

логический “0”. Ниже приведен один общий скриншот (рисунок 1.14)

выполнения программы с различными комбинациями на входах:

Page 27: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

27

Рис. 1.14 – Результат работы программы согласно таблице истинности

Лабораторная работа №2

Реализация логических контроллеров и дискретных автоматов на

промышленном контроллере SMART-2 в среде программирования

ISaGRAF.

Цель работы: Осуществить подключение ISaGRAF 3.3 к

микроконтроллеру SMART 2 и запустить алгоритм, реализованный на языке

SFC в лабораторной №2, логического управления на примере управления

двумя клапанами с памятью с помощью двух кнопок без памяти.

Техническая структура

Аппаратная часть комплекса имеет:

8 каналов дискретного ввода, подключенных к переключателям и

кнопкам управления

4 канала дискретного вывода, подключенных к лампам индикации

4 канала подключения термосопротивлений типа ПТ100, один

канал подключен к датчику температуры нагревательного

элемента

6 каналов ЦАП с разрешением 12 бит

6 каналов АЦП с разрешением 12 бит

Page 28: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

28

Для связи с ПК имеется 2 интерфейса: последовательный RS232 и

Ethernet.

Состав комплекса

В состав программно-аппаратного комплекса входит:

1. Персональный компьютер

2. Среда программирования ISaGRAF v3.55

3. Учебный стенд с логическим контроллером SMART 2

4. Соединительный кабели

Минимальные характеристики персонального компьютера:

Процессор Intel Pentium II или выше 128 мб оперативной памяти

Дисковод

Не менее 80 мб свободного места на жестком диске

Графический адаптер VGA или SVGA с совместимым монитором

Клавиатура

Мышь (необходимая для средства графической разработки)

В состав стенда входит:

Кнопки - 4 штуки

Переключатели – 11 штук

Лампы – 5 штук

Твердотельное реле – 1 штука

Шкафной нагреватель – 1 штука

Вентиляторы охлаждения – 2 штуки

Термосопротивление типа ПТ100 – 1 штука

Блок питания – 1 штука

Кабель питания

Контроллер SMART 2 состоящий из двух базовых блоков с

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

Таблица 1

№ п/п Наименование Описание модуля

1 SM2 – CPU Процессорный модуль для

2 SM – DC24 4 дискретных выхода = 24 В

3 SM – DIN1 8 дискретных входов = 24 В

4 SM – ADC1 6 аналоговых входов +/- 10 В (0…20 мА), АЦП 12 бит

5 SM – DAC1 6 аналоговых выходов +/- 10В(0…20 мА), ЦАП 12 бит

6 SM – PT100 4 входа для термометров сопротивления ПТ100,

погрешность преобразования 0,2 °C

Установка соединения программы ISaGRAF с микроконтроллером

SMART 2:

Page 29: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

29

Рис. 2.1 – Окно выбора оборудования

Результаты работы стенда

z2

z1

z3

z4

x1 x2 x3 x4 x5 x6

З

О

З

О

x1

x2x3x4x5x6

Рис. 2.2 – Исходное состояние

Page 30: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

30

z2

z1

z3

z4

x1 x2 x3 x4 x5 x6

З

О

З

О

x1x2x3x4x5x6

Рис. 2.3 – вход x1 активен, клапан 1 открыт(z2), клапан 2 открывается

(z4)

z2

z1

z3

z4

x1 x2 x3 x4 x5 x6

З

О

З

О

x1x2x3x4x5x6

Рис. 2.4 – клапана открыты (z2, z3), система находится в устойчивом

состоянии

Page 31: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

31

z2

z1

z3

z4

x1 x2 x3 x4 x5 x6

З

О

З

О

x1x2x3x4x5x6

Рис. 2.5 – Кнопка закрытия активна (x2), клапан 2 закрывается (z3)

z2

z1

z3

z4

x1 x2 x3 x4 x5 x6

З

О

З

О

x1x2x3x4x5x6

Рис. 2.6 – Клапана закрыты, система находится в исходном состоянии

Page 32: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

32

Лабораторная работа №3

Изучение программирования на языке FBD и LD в среде CodeSys

Цель работы: C помощью CodeSys 2.3.9 реализовать на языке FBD,

алгоритм логического управления на примере управления двумя клапанами с

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

LD.

Программа на языке FBD.

Исходное состояние органов управления и клапанов

Кнопки выбора режима х1 («открыть клапаны») и х2 («закрыть

клапаны») не нажаты, клапаны закрыты — сигнализаторы закрытого

положения х3 и х5 активны; сигнализаторы открытого положения х4 и х6

пассивны. При этом: х1=0; х2=0; х3=1; х4=0; х5=1; х6=0.

Кл1 Кл2

УА

З О

О

З О

З ОЗ

x3 x4 x5 x6

z1 z2 z3 z4

x1 x2

Рис. 3.1 - Схема связей ИИ – А - ИМ

Описание схемы

Кл1 – клапан 1;

Кл2 – клапан 2;

УА – управляющий автомат;

З – индикатор закрытия;

Page 33: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

33

О – индикатор открытия;

Описание переменных

х1 – входная переменная, отвечающая за открытие клапанов;

х2 – входная переменная, отвечающая за закрытие клапанов;

х3, х4 – выходные переменные 1-го клапана;

х3 – сигнализатор закрытого положения 1-го клапана;

х4 – сигнализатор открытого положения 1-го клапана;

х5, х6 – выходные переменные 2-го клапана;

х5– сигнализатор закрытого положения 2-го клапана;

х6 – сигнализатор открытого положения 2-го клапана;

z1, z2, z3, z4 – выходы управляющего устройства;

z1, z2 – входные переменные 1 клапана;

z2 – обеспечивает открытие 1 клапана;

z1 – обеспечивает закрытие 1 клапана;

z3, z4 – входные переменные 2 клапана;

z4 – обеспечивает открытие 2 клапана;

z3 – обеспечивает закрытие 2 клапана;

Алгоритм управления

При нажатии кнопки x1 подается управляющий сигнал на открытие

первого клапана. После его открытия по сигналу сигнализатора открытого

положения x4 снимается управляющий сигнал с первого клапана и начинает

открываться второй. После его открытия по сигналу сигнализатора открытого

положения x6 снимается управляющий сигнал со второго клапана. Система

находится в устойчивом состоянии.

При нажатии кнопки x2 подается управляющий сигнал на закрытие

второго клапана. После его закрытия по сигналу сигнализатора закрытого

положения x5 снимается управляющий сигнал со второго клапана и начинает

закрываться первый. После его закрытия по сигналу сигнализатора закрытого

положения x3 снимается управляющий сигнал с первого клапана. Система

возвращается в исходное состояние.

Описание управляющего автомата Мура на языке Си.

switch (Y1) {

case 0 : if (x1) Y1 = 1; break;

case 1 : if (x4) Y1 = 2; break;

case 2 : if (x6) Y1 = 3; break;

case 3 : if (x2) Y1 = 4; break;

case 4 : if (x5) Y1 = 5; break;

case 5 : if (x3) Y1 = 0; break;}

switch (Y1) {

case 0 : z1 = 0; z2 = 0; z3 = 0; z4 = 0; break;

case 1 : z1 = 0; z2 = 1; z3 = 0; z4 = 0; break;

Page 34: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

34

case 2 : z1 = 0; z2 = 0; z3 = 0; z4 = 1; break;

case 3 : z1 = 0; z2 = 0; z3 = 0; z4 = 0; break;

case 4 : z1 = 0; z2 = 0; z3 = 1; z4 = 0; break;

case 5 : z1 = 1; z2 = 0; z3 = 0; z4 = 0; break;}

Граф переходов автомата А, входящего в состав управляющего

устройства

В вершинах графа указаны состояния и значения выходных

переменных, на рёбрах графа указаны условия переходов.

0

0000

1x

1

0100

2

0001

3

0000

4

0010

5

1000

4x 6x

5x3x 2x

1x 4x

6x

2x5x

3x

:1 2 3 4

Y

z z z z

Рис. 3.2 – Граф переходов автомата А

Создание и компиляция программы

Создание проекта

Запустить CodeSys. На панели инструментов CodeSys нажимаем на

кнопку «Создать». В «Настройках целевой платформы» (рисунок 3.3) выбрать

конфигурацию PLC 150. U - L

Page 35: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

35

Рис. 3.3 – Окно новой программы

Далее подтверждаем выбор нажатие кнопки «ОК». В окне «Нового

программного компонента» (рисунок 3.4) выбрать язык программирования

FBD, остальное оставить по – умолчанию.

Рис. 3.4 – Окно ввода имени, типа и языка программирования

программы

Нажимаем ОК и попадаем в окно разработки программы на языке FBD.

Объявление переменных в среде CodeSys

Для того чтобы объявить переменные в CodeSys в «Разделителе

объектов», которое находится в левой части программы нужно перейти во

вкладку «Ресурсы» и выбрать пункт «Конфигурация ПЛК» рисунке 3.5. В поле

дискретных входных переменных объявляем X1, X2, X3, X4, X5, X6, а в поле

дискретных выходных переменных объявляем Z1, Z2, Z3, Z4. Все дискретные

переменные имеют булев тип данных.

Page 36: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

36

Рис. 3.5 – Объявление и привязка переменных

В разделе объявлений объявляем переменные Y0, Y1, Y2, Y3, Y4, Y5

рисунок 3.6.

Рис. 3.6 – Раздел объявление

Составление программы на языке FBD

Редактор FBD - графический редактор. Он работает со списком цепей,

каждая из которых состоит из логических или арифметических выражений,

вызовов функций, программ или функциональных блоков, инструкций

возврата и перехода.

Для того чтобы добавить элемент в схему нужно просто поместить

курсор в место добавления и на панели элементов нажать на элемент, который

нужно добавить.

В схеме используются элементы «AND» и элемент «присваивание».

FBD – схема программы

Page 37: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

37

Рис. 3.7 – Схема FBD

Компиляция программы

Для компиляции программы выберем вкладку «Проект» на панели

«Меню» и в выпадающем меню выбрать «Компилировать» или просто нажать

клавишу F11 на клавиатуре. Результат компиляции показан на рисунке 3.8.

Рис. 3.8 – Результат компиляции программы

Симуляция программы с использованием визуализации

Для симуляции программы переходим во вкладку «Онлайн» нажимаем

на пункт «Подключение», далее нажимаем F5 для старта программы. Для

активации одного из входов нужно два раза нажать на него и нажать на

комбинацию клавиш Ctrl + F7 (записать значение), так же активировать входы

можно в окне «Конфигурации ПЛК».

Page 38: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

38

Рис. 3.9 – Начальное состояние системы

Page 39: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

39

Рис. 3.10 – Кнопка пуск (x1) нажата, клапана открыты (Z2, Z4), система

в устойчивом состоянии

Page 40: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

40

Рис. 3.11 – Кнопка стоп (x2) нажата, клапана закрыты, система в

начальном состоянии

Программа на языке LD.

Логическое выражение:

𝑓(𝑥1, 𝑥2, 𝑥3) = (𝑥3 ∩ 𝑥1 ∪ 𝑥1 ∩ 𝑥2) ∪ (𝑥2 ∪ 𝑥3)

Таблица истинности

X1 X2 X3 f

0 0 0 0

0 1 0 1

1 0 0 1

1 1 0 1

0 0 1 0

0 1 1 0

1 0 1 1

1 1 1 1

Создание и компиляция программы

Создание проекта

Создание проекта на языке LD аналогично созданию на языке FBD и

отличается лишь окном выбора языка (рисунок 3.12).

Page 41: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

41

Рис. 3.12 - Окно ввода имени, типа и языка программирования

программы

Объявление переменных

Объявляем следующие переменные:

x1, x2, x3 – входные переменные (bool)

r1, r2, r3, r4 - промежуточные переменные (bool)

f – выходная переменная состояния (bool)

Рис. 3.13 – Объявление и привязка переменных к дискретным входам и

выходам МК ОВЕН 150. У - Л в среде CodeSys

Составление программы на языке LD

Язык LD – это графический язык - применяется для описания логических

выражений различного уровня сложности, графического представления

булевых уравнений. Он содержит контакты (входные аргументы) и катушки

(выходные переменные). Элементы организуются в сеть релейно- контактных

схем. При необходимости можно реализовывать более сложную логику,

используя, например, элементы языка FBD.

Каждому контакту ставится в соответствие логическая переменная,

определяющая его состояние. Ее имя ставится над контактом и служит его

Page 42: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

42

названием. Если контакт замкнут, то переменная имеет значение true, если

разомкнут – false. Последовательное соединение контактов или цепей

соответствует логической операции И/AND, параллельное – ИЛИ/OR.

Нормально замкнутый (инверсный) контакт равнозначен логической операции

НЕ.

LD – схема программы

Рис. 3.14 – Логическое выражение, реализованное на языке LD

Компиляция программы

Рис. 3.15 – Результат компиляция программы LD

Результаты симуляции программы

Рис. 3.16 – Начальное состояние симуляции

Page 43: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

43

Рис. 3.17 – Активирован первый вход (один из возможных исходов ТИ)

Рис. 3.18 – Результат работы программы согласно таблице истинности

Page 44: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

44

Лабораторная работа №4

Исследование алгоритмов числового программного управления

Цель работы: Получение практических навыков построения цифровых

систем и исследование принципов управления двигателем постоянного тока.

Программа выполнения работы.

Идентификация параметров лабораторного стенда.

Определение кривой разгона электродвигателя постоянного тока

независимого возбуждения.

Определение кривой разгона электродвигателя постоянного тока

независимого возбуждения.

Кривая разгона должна сниматься в пределах линейности

характеристики ШИМ. В результате обработки кривой разгона по методу

касательных определяем эквивалентную постоянную двигателя Тд. Для

определения коэффициента передачи двигателя можно воспользоваться

следующей формулой 1

Д

e

, где

Н я яe

н

U I RC

где

Uн – номинальное напряжение двигателя;

Iя – номинальный ток якоря;

Rя – сопротивление якорной обмотки.

В результате получаем передаточную функцию двигателя, считая

выходным параметром скорость вращения.

( )1

Д

Д

Д

KW s

T s

Передаточная функция двигателя по углу поворота:

( )( 1)

Д

Д

Д

KW s

T s s

Идентификация параметров лабораторного стенда.

Нельзя обеспечить качественное управление системой, если ее

математическая модель неизвестна с достаточной точностью. Опыт,

накопленный при проектировании встроенных систем управления,

убедительно свидетельствует о том, что нельзя построить математическую

модель, адекватную реальной системе, только на основе теоретических

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

образом математическая модель, как правило, значительно отличается от

реальной системы, что приводит соответственно к снижению качества

управления. Поэтому в процессе проектирования систем управления

одновременно с теоретическими исследованиями проводятся многочисленные

Page 45: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

45

эксперименты по определению и уточнению математической модели системы.

Методы определения математических моделей по результатам

экспериментальных исследований являются предметом теории

идентификации. В зависимости от объема априорной информации о системе

различают задачи идентификации в широком и узком смысле. При решении

задач идентификации в широком смысле априорная информация о системе

либо незначительна, либо вообще отсутствует. Система представляется виде

«черного ящика», и для ее идентификации необходимо решение ряда

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

стационарности, линейности и др. При решении задачи идентификации в

узком смысле считается, что известны структура системы и класс моделей, к

которому она относится. Априорная информация о системе достаточно

обширна. Такая постановка задачи идентификации наиболее соответствует

реальным условиям проектирования и поэтому широко используется в

инженерной практике.

Для идентификации параметров лабораторного стенда будем считать,

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

систем и описывается передаточной функцией следующего вида:

2

( )( ) 1

Д П

П Д П Д

K KW s

Т Т s Т Т s

, (1)

где ДK – коэффициент передачи двигателя;

ДТ – постоянная времени двигателя;

ПK – коэффициент передачи преобразователя;

ПТ – постоянная времени преобразователя.

По определению передаточной функции имеем

( )

( )( )

sW s

U s

, (2)

где ( )s – скорость вращения двигателя (выход системы);

( )U s – управление (вход системы).

Перейдем от передаточной функции к представлению системы в

пространстве состояний. На основании (1) и из определения передаточной

функции (2) запишем

2

Д П Д П Д П

d dT T T T K K U

dt dt

. (3)

Введем следующие обозначения:

1 2, .d

x xdt

Далее получим:

12

22 1Д П Д П Д П

dxx

dt

dxT T T T x x K K U

dt

Page 46: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

46

Выразив 2dx

dt из второго уравнения системы, получим:

1 2

2 2 1

1 1 Д П

Д П Д П

x x

K Kx x x U

T T T T

(4)

Воспользуемся методом регрессионной идентификации линейных

динамических процессов.

Линейные динамические системы можно описать следующим

уравнением состояния:

X X U , (5)

где X – n-мерный вектор состояния;

U – m-мерный вектор управления (вход).

Исходя из полученной модели лабораторного стенда (4) n = m = 2 , и 0 1

1 1 1

Д П Д ПT T T T

0

Д П

Д П

K K

T T

В дискретной форме уравнение (5) может быть записано так:

1k k kX AX BU , (6)

где t k t ( t – период дискретности отображения данных), и

Для лабораторного стенда матрицы коэффициентов равны:

1

1 11

0

Д П Д П

Д П

Д П

t

A tt

T T T T

K KBt

T T

Введем теперь

1,1 1,2 1 1

2,1 2,2 2 2

Т

Т

a a b ФФ

a a b Ф

,

1, 2,k k k kw x x u .

Следовательно, уравнение (6) запишется в виде

1k kX Ф w .

Если запомнить p единовременных совокупных измерений величин

1,k kx w , то элементы матрицы Ф можно идентифицировать с помощью

линейной регрессионной процедуры по методу наименьших квадратов. По

Page 47: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

47

методу наименьших квадратов оценка iФ i-ой строки матрицы задается

соотношением 1

, 1 1, 2,

ТT T

i k k k i k i i iФ W W W a a b

,

где 1 2

1 2

k k k

k

k p k p k p

x x u

W

x x u

pki

ki

ki

x

x

1,

1,

1,

Практический интерес представляет нахождение второй строки

параметров в матрице Ф . 1

2 2, 1 1,2 2,2 2

ТT T

k k k kФ W W W a a b

, здесь

1,2

2,2

2

;

1 11 ;

.

Д П

Д П

Д П

Д П

ta

T T

a tT T

K Kb t

T T

(7)

После определения параметров из соотношений (7) можно найти

постоянные времени и произведение коэффициентов передачи двигателя и

преобразователя.

Предполагается, что вектор состояния X может быть измерен

полностью. Для этого необходимо знать kx ,1 (скорость вращения двигателя) и

kx ,2 (ускорение). Однако для лабораторного стенда возможным представляется

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

невозможной. Тем не менее при известной скорости мы можем оценить

ускорение как первую производную скорости по времени и параметры

системы поддаются идентификации.

Также существует возможность идентификации параметров системы,

представленной в виде разностного уравнения. Обозначим y для

уравнения (3):

2 1Д П Д П

Д П Д П Д П

T T K Kd y dyy U

dt T T dt T T T T

Заменив первую и вторую производные на их разностное представление,

получим:

2

( ) 2 ( ) ( ) ( ) ( ) 1( ) ( )

2

Д П Д П

Д П Д П Д П

T T K Ky t dt y t y t dt y t dt y t dty t U t

dt T T dt T T T T

После преобразований получим разностную модель системы:

( ) ( ) ( 2 )y t A y t dt B y t dt C U ,

Page 48: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

48

где 24

2

Д П

Д П Д П

T T dtA

dtT dtT T T

;

2

2

Д П Д П

Д П Д П

T T dtT dtTB

dtT dtT T T

; (8)

22

2

Д П

Д П Д П

K K dtC

dtT dtT T T

.

Для оценки параметров A, B, C воспользуемся методом наименьших

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

«вычисленная переменная» y определяется следующей моделью:

1 1 2 2( ) ( ) ... ( )n ny x x x , (9)

где 1 2, ,... n – известные функции;

1 2, ,... n – неизвестные параметры.

Пары наблюдений {( , ), 1,2,..., }i ix y i N получают экспериментально.

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

iy , вычисленные по формуле (9) для различных значений ix , были бы

максимально близки к измеренным значениям iy . В предположении, что все

измерения выполняются с одинаковой точностью, в соответствии с

принципом наименьших квадратов параметры i должны быть такими, чтобы

функция потерь 2

1

1( )

2

N

i

i

J

была минимальной, где , 1,2,...,i i iy y i N .

Решение этой задачи находится с помощью следующей теоремы.

Теорема 1. Функция минимальна, если вектор удовлетворяет

уравнению: T TW W W y

Если матрица TW W не вырождена, то решение единственно и

определяется как

1T

T TW W W A B C

1

1

k k k

k p k p k p

y y u

W

y y u

2

2

k

k p

y

y

y

.

Нестрого говоря, последнее условие выполняется, если спектр входного

сигнала должен быть достаточно богат.

Метод наименьших квадратов можно использовать и для

идентификации параметров динамических систем.

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

поэтому желательно уметь находить среднеквадратические оценки для

Page 49: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

49

различных значений параметров. Если известны оценки для наблюдений, то,

наверное, было бы нерационально вновь проводить все расчеты для получения

еще одной точки. Поэтому имеет смысл использовать вычислительную

процедуру, в которой для получения оценок n+1 наблюдений можно

эффективно использовать оценки, полученные для n предыдущих

наблюдений. Этот метод называется методом наименьших квадратов с

рекурсией по числу наблюдений.

,1

ˆˆˆ

1

1

111

T

nnn

T

nnn

nnnnnn

P

PK

ФxKФФ

где nnnn PKIP 11

n – n-я строка матрицы Ф

Для получения начального значения nP и nФ̂ используются следующие

формулы:

,

000

1

000

T

nnn

n

T

nn

WPФ

WWP

Далее можно воспользоваться рекуррентными уравнениями для 0nn .

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

Идентификация параметров лабораторного стенда

1. Запустите программу Server.exe. Установите параметры регулятора

лабораторного стенда следующим образом: 0K = 0 (регулятор выключен,

работает задатчик ШИМ). В этом режиме управление = 1 2K K . Варьируя

значения коэффициентов 1K и 2K в соответствующих полях формы установите

управление равным 2000. Нажмите последовательно с минимальной

задержкой кнопки “Старт” и “Задать”. Через 2-3 с. нажмите кнопку “Стоп” и

установите нулевое управление( 1 0K или 2 0K ) для остановки двигателя.

2. Нажмите на кнопку “Идентификация 1”.

3. Решите систему (8) для полученных значений A , B , C и найдите

значения ДT , ПT и

Д ПK K . Нажмите на кнопку “Идентификация 2”.

4. Решите систему (7) для полученных значений 1,2a ,

2,2a , 2b и найдите

значения ДT , ПT и

Д ПK K .

Определение кривой разгона электродвигателя постоянного тока

независимого возбуждения 1. Запустите программу Server.exe. Установите параметры регулятора

лабораторного стенда следующим образом:

0K = 0 (регулятор выключен, работает задатчик ШИМ).

В этом режиме управление = 1 2K K . Варьируя значения коэффициентов 1K

и 2K в соответствующих полях формы установите управление в пределах от

3000 до 3200. Нажмите последовательно с минимальной задержкой кнопки

Page 50: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

50

“Старт” и “Задать”. Через 2-3 с. нажмите кнопку “Стоп” и установите нулевое

управление для остановки двигателя.

2. Исходя из полученного графика переходного процесса методом

касательных определите постоянную времени двигателя ДТ . Исходя из

основных параметров электродвигателя, рассчитайте коэффициент передачи

двигателя ДК .

3. Запишите передаточную функцию двигателя.

На рисунке 4.1 представлена разгонная характеристика двигателя.

Рис.4.1 Разгонная характеристика двигателя.

2.5 Варианты выполнения лабораторных работ

Варианты выполнения лабораторных работ 1-3 выбрать из книги А.А.

Шалыто «SWITCH-технология. Алгоритмизация и программирование задач

логического управления.» приложение 5, стр. 544. СПб.: Наука, 1998, – 628 с.

Page 51: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

51

3. САМОСТОЯТЕЛЬНАЯ РАБОТА

СРС – темы и (или) разделы тем для самостоятельного изучения, в том

числе конспектирование – 89,2ч.

№ Наименование тем

Кол-

во

часов

Номер

компе-

тенции

Литера-

тура

1 Тема 1. ОС РВ OS-9

Составные части и характеристики

операционной системы OS-9. Внутренняя

структура и основные понятия системы

OS-9. Возможности взаимодействия

процессов в OS-9. Взаимодействие

процессов с помощью сигналов, звонков и

событий, характеристика системных

вызовов. Концепция модуля в системе OS-

9. Память системы OS-9. Обмен данными

с помощью каналов, модулей данных и

дисковых файлов, характеристика

системных вызовов. Механизмы

диспетчеризации процессов в системе OS-

9. Архитектура системы ввода-вывода.

Менеджеры и драйверы устройств.

Дескрипторы устройств, пути доступа,

описатели маршрутов.

45 ОПК-

2,ПК-1.2

7 [1,2]

2 Тема 2. ОС РВ QNX

Архитектура ядра системы QNX.

Системные процессы. Администратор

процессов. Примитивы создания

процессов, наследуемость, жизненный

цикл процесса. Состояния процессов.

Символьные имена процессов. Примитивы

передачи сообщений. Синхронизация

процессов, состояния блокировки. Proxy,

сигналы, взаимодействие процессов в сети.

Планирование процессов. Методы

планирования, приоритеты процессов.

Задержка прерываний, планирования.

Таймеры. Простые и сложные таймеры.

Обработчики прерываний. Обработчики

прерываний от таймера. Система ввода-

вывода. Пространство имён системы

ввода-вывода. Префиксы. Соглашения о

44,2 ОПК-

2,ПК-1.2

7 [1,2]

Page 52: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

52

№ Наименование тем

Кол-

во

часов

Номер

компе-

тенции

Литера-

тура

путевых именах. Пространство имён

дескрипторов файлов.

Направление 02.02.03 «Математическое обеспечение и

администрирование информационных систем»

1. ПРАКТИЧЕСКИЕ ЗАНЯТИЯ

1.1. Очная форма обучения

№ Наименование тем занятий Форма

контроля

Сроки

контроля

Литера

тура

1 Программирование сетевого

взаимодействия в ОС РВ QNX 6.2

Опрос 10-14.03 7 [6]

2 Реализация логических

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

автоматов в среде CodeSys

Опрос

23-27.04 7 [4]

2. ЛАБОРАТОРНЫЕ ЗАНЯТИЯ

2.1. Очная форма обучения

№ Наименование тем занятий Форма

контроля

Сроки

контроля

Литера

тура

1 Изучение программирования на

языке SFC и LD в среде

ISaGRAF.

Защита

отчета

10-14.03 7 [4]

2 Реализация логических кон-

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

томатов на промышленном

контроллере SMART-2 в среде

программирования ISaGRAF.

Защита

отчета

10-14.04 7 [4]

3 Изучение программирования на

языке FDB и LD в среде CodeSys.

Защита

отчета

23-24.04 7 [4]

4 Исследование алгоритмов

числового программного

управления

Защита

отчета

03-09.05 7 [5]

Page 53: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

53

Методические указания к выполнению практических занятий и

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

направления «Программная инженерия».

3. САМОСТОЯТЕЛЬНАЯ РАБОТА

СРС – темы и (или) разделы тем для самостоятельного изучения, в том

числе конспектирование – 48 ч.

№ Наименование тем

Кол-

во

часов

Номер

компе-

тенции

Литера-

тура

1 Тема 1. ОС РВ OS-9

Составные части и характеристики

операционной системы OS-9. Внутренняя

структура и основные понятия системы OS-

9. Возможности взаимодействия процессов

в OS-9. Взаимодействие процессов с

помощью сигналов, звонков и событий,

характеристика системных вызовов.

Концепция модуля в системе OS-9. Память

системы OS-9. Обмен данными с помощью

каналов, модулей данных и дисковых

файлов, характеристика системных

вызовов. Механизмы диспетчеризации

процессов в системе OS-9. Архитектура

системы ввода-вывода. Менеджеры и

драйверы устройств. Дескрипторы

устройств, пути доступа, описатели

маршрутов.

24 ОПК-

2,10

7 [1,2]

2 Тема 2. ОС РВ QNX

Архитектура ядра системы QNX.

Системные процессы. Администратор

процессов. Примитивы создания процессов,

наследуемость, жизненный цикл процесса.

Состояния процессов. Символьные имена

процессов. Примитивы передачи

сообщений. Синхронизация процессов,

состояния блокировки. Proxy, сигналы,

взаимодействие процессов в сети.

24 ОПК-

2,10

7 [1,2]

Page 54: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

54

№ Наименование тем

Кол-

во

часов

Номер

компе-

тенции

Литера-

тура

Планирование процессов. Методы

планирования, приоритеты процессов.

Задержка прерываний, планирования.

Таймеры. Простые и сложные таймеры.

Обработчики прерываний. Обработчики

прерываний от таймера. Система ввода-

вывода. Пространство имён системы ввода-

вывода. Префиксы. Соглашения о путевых

именах. Пространство имён дескрипторов

файлов.

Направление 09.03.01 «Информатика и вычислительная

техника» 1. ПРАКТИЧЕСКИЕ ЗАНЯТИЯ

1.1. Очная форма обучения

№ Наименование тем занятий Форма

контроля

Сроки

контроля

Литера

тура

1 Программирование сетевого

взаимодействия в ОС РВ QNX 6.2

Опрос 10-14.03 7 [6]

2 Реализация логических

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

автоматов в среде CodeSys

Опрос

23-27.04 7 [4]

2. ЛАБОРАТОРНЫЕ ЗАНЯТИЯ

2.1. Очная форма обучения

№ Наименование тем занятий Форма

контроля

Сроки

контроля

Литера

тура

1 Изучение программирования на

языке SFC и LD в среде

ISaGRAF.

Защита

отчета

10-14.03 7 [4]

2 Реализация логических кон-

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

томатов на промышленном

Защита

отчета

10-14.04 7 [4]

Page 55: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

55

№ Наименование тем занятий Форма

контроля

Сроки

контроля

Литера

тура

контроллере SMART-2 в среде

программирования ISaGRAF.

2.2. Заочная форма обучения

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

лабораторных работ 1-2 из пункта 2.1, на проверку каждой из которых

отводится по 2 часа в период лабораторно-экзаменационной сессии.

Методические указания к выполнению практических занятий и

лабораторных работ заочной и очной форм обучения соответствуют

указаниям, приведенным выше, для направления «Программная инженерия».

3. САМОСТОЯТЕЛЬНАЯ РАБОТА

3.1. Очная форма обучения

СРС – темы и (или) разделы тем для самостоятельного изучения, в том

числе конспектирование – 91,2ч.

№ Наименование тем

Кол-

во

часов

Номер

компе-

тенции

Литера-

тура

1 Тема 1. ОС РВ OS-9

Составные части и характеристики

операционной системы OS-9. Внутренняя

структура и основные понятия системы

OS-9. Возможности взаимодействия

процессов в OS-9. Взаимодействие

процессов с помощью сигналов, звонков и

событий, характеристика системных

вызовов. Концепция модуля в системе OS-

9. Память системы OS-9. Обмен данными

с помощью каналов, модулей данных и

дисковых файлов, характеристика

системных вызовов. Механизмы

диспетчеризации процессов в системе OS-

9. Архитектура системы ввода-вывода.

Менеджеры и драйверы устройств.

Дескрипторы устройств, пути доступа,

описатели маршрутов.

45 ОПК-5 7 [1,2]

Page 56: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

56

3.2. Заочная форма обучения

СРС – темы и (или) разделы тем для самостоятельного изучения, в том

числе конспектирование – 117,1ч.

2 Тема 2. ОС РВ QNX

Архитектура ядра системы QNX.

Системные процессы. Администратор

процессов. Примитивы создания

процессов, наследуемость, жизненный

цикл процесса. Состояния процессов.

Символьные имена процессов. Примитивы

передачи сообщений. Синхронизация

процессов, состояния блокировки. Proxy,

сигналы, взаимодействие процессов в

сети. Планирование процессов. Методы

планирования, приоритеты процессов.

Задержка прерываний, планирования.

Таймеры. Простые и сложные таймеры.

Обработчики прерываний. Обработчики

прерываний от таймера. Система ввода-

вывода. Пространство имён системы

ввода-вывода. Префиксы. Соглашения о

путевых именах. Пространство имён

дескрипторов файлов.

46,2 ОПК-5 7[1,2]

№ Наименование тем

Кол-

во

часов

Номер

компе-

тенции

Литера-

тура

1 Тема 1. ОС РВ OS-9

Составные части и характеристики

операционной системы OS-9. Внутренняя

структура и основные понятия системы OS-

9. Возможности взаимодействия процессов

в OS-9. Взаимодействие процессов с

помощью сигналов, звонков и событий,

характеристика системных вызовов.

Концепция модуля в системе OS-9. Память

системы OS-9. Обмен данными с помощью

каналов, модулей данных и дисковых

файлов, характеристика системных

вызовов. Механизмы диспетчеризации

60 ОПК-5 7 [1,2]

Page 57: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

57

Зачетные вопросы по курсу

1. Понятие системы реального времени. Примеры типовых систем

реального времени

2. Характерные особенности интерфейсов систем реального времени.

3. Соотношение ОСРВ и ОС универсального назначения

4. Специфика реального времени. Жесткое реальное время и реальное

время с допусками

5. Важнейшие параметры ОСРВ: время реакции системы, время

переключения контекста, размеры системы.

6. Механизмы реального времени

7. Классы систем реального времени

8. Расширение реального времени для Windows

9. Архитектура программно аппаратных средств СРВ. Открытые

технологии

процессов в системе OS-9. Архитектура

системы ввода-вывода. Менеджеры и

драйверы устройств. Дескрипторы

устройств, пути доступа, описатели

маршрутов.

2 Тема 2. ОС РВ QNX

Архитектура ядра системы QNX.

Системные процессы. Администратор

процессов. Примитивы создания процессов,

наследуемость, жизненный цикл процесса.

Состояния процессов. Символьные имена

процессов. Примитивы передачи

сообщений. Синхронизация процессов,

состояния блокировки. Proxy, сигналы,

взаимодействие процессов в сети.

Планирование процессов. Методы

планирования, приоритеты процессов.

Задержка прерываний, планирования.

Таймеры. Простые и сложные таймеры.

Обработчики прерываний. Обработчики

прерываний от таймера. Система ввода-

вывода. Пространство имён системы ввода-

вывода. Префиксы. Соглашения о путевых

именах. Пространство имён дескрипторов

файлов.

57,1 ОПК-5 7 [1,2]

Page 58: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

58

10. Распределенные средства автоматизации на базе промышленных

сетей

11. Краткая характеристика полевых шин Profibus, Can, Industrial

Ethernet

12. Инструментальные системы программирования логических

контроллеров, стандарт IEC 1131-3

13. Язык программирования SFC

14. Язык программирования FBD

15. Язык программирования структурированного текста ST

16. Язык программирования релейных диаграмм

17. ISaGRAF как пример 1131 системы. Структура и краткая

характеристика

18. CodeSys как пример 1131 системы. Структура и краткая

характеристика

19. Инструментальные системы SCADA. Характеристики SCADA

систем

20. Составные части и характеристики операционной системы OS-9

21. Взаимодействие процессов. Механизмы межпроцесной

синхронизации в OS-9

22. Концепция модуля в системе OS-9

23. Память системы OS-9

24. Основные дисциплины организации очередей в системе OS-9

25. Архитектура системы ввода-вывода в OS-9

26. Архитектура ядра QNX. Системные процессы.

27. Администратор процессов QNX

28. Состояние процессов QNX. Символические имена процессов

29. Связь между процессами в системе QNX посредством сообщений

30. Связь между процессами в системе QNX посредством proxy

31. Связь между процессами в системе QNX посредством сигналов

32. Планирование процессов. Приоритеты процессов в системе QNX

33. Среды для параллельной обработки, сервисы ОСРВ, стандарт POSIX

34. Технологии клиент-серверных и распределенных систем.

35. Платформы для распределенных вычислений. Вызов удаленных

процессов.

36. Стандарт CORBA. Статическое и динамическое связывание

сервисов CORBA

37. Компонентная технология COM DCOM

38. Стандарт OPC. Спецификация стандарта

39. Синхронизация доступа к классам и проектирование разъемов

40. Проектирование архитектуры распределенных приложений.

Диаграммы параллельной кооперации и последовательностей

41. Разбиение приложений на параллельные задачи Критерии

выделения задач ввода-вывода. Критерии выделения внутренних

задач.

Page 59: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

59

42. Критерии группировки задач. Инверсия задач.

43. Коммуникация между задачами и синхронизация

44. Проектирование классов приложений реального времени

45. Детальное проектирование ПО, темпоральная группировка и

группировка задач по управлению

46. Теория планирования в реальном времени. Теорема о верхней

границе коэффикиента использования и времени завершения

47. Анализ производительности с помощью теории планирования

реального времени и анализа последовательности событий

Основная учебная литература

1.Шишов О.В. Современные технологии промышленной автоматизации

[Электронный ресурс]. – Директ-Медиа, 2015. – 368 с. – Режим доступа: htpp:

//www.knigafund.ru/books

2.Галатенко В.А. Мобильное программирование приложений реального

времени в стандарте POSIX [Электронный ресурс]. – Интернет-Университет

Информационных Технологий, 2004. – 393 с. – Режим доступа: htpp:

//www.knigafund.ru/books

Дополнительная литература

3. Мохов В.А. Интеллектуальные технологии в представлении

знаний [Электронный ресурс] : учебное пособие/ В.А.Мохов,

А.В.Кузнецова . Новочеркасск: ЮРГТУ (НПИ), 2012 г.-104с. - Режим

доступа: www.lib.npi-tu.ru

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

К лабораторным занятиям

4. Семенченко И.Г. Программирование логических контроллеров.

Методические указания к лабораторным работам по курсу «Системы

реального времени».- Новочеркасск, 2007.- 54 с. (электронный носитель).

5. Маринин В.И., Семенченко И.Г. Исследование системы числового

программного управления электродвигателем постоянного тока.

Методические указания к лабораторным работам по курсу «Системы

реального времени».- Новочеркасск, 2007.- 28 с. (электронный носитель).

6. Семенченко И.Г., Батюченко И.Л. Программирование сетевого

взаимодействия в ОС РВ QNX. Методические указания к лабораторным

работам по курсу «Системы реального времени».- Новочеркасск, 2007.- 10 с.

(электронный носитель).

Page 60: СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVIL... · 3 Направление 09.03.04 «Программная инженерия»

60

Учебно-методическое издание

Семенченко Иван Гаврилович

Системы реального времени

Методические указания к практическим занятиям и выполнению

лабораторных и самостоятельных работ

Редактор Н.А.Юшко

Подписано в печать 25.01.2017

Формат 60x84 1/16. Бумага офсетная. Печать цифровая.

Усл. печ. л. 3,49. Уч.-изд.л. 3,5. Тираж 50 экз. Заказ ____.

Южно-Российский государственный политехнический университет

(НПИ) имени М.И. Платова

Редакционно-издательский отдел ЮРГПУ (НПИ)

346428, г. Новочеркасск, ул. Просвещения, 132

Отпечатано в ИД «Политехник»

346428, г. Новочеркасск, ул. Первомайская, 166

[email protected]