12403

Моделювання роботи мікропроцесорного прибору ІТМ-11 в середовищі С++Builder

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

Информатика, кибернетика и программирование

Лабораторна робота № 8 Моделювання роботи мікропроцесорного прибору ІТМ11 в середовищі СBuilder Мета: навчитися створювати комп’ютерну імітаційну модель роботи мікропроцесорного приладу ІТМ11 використовуючи стандартні компоненти С Builder. 1. Відомості по приладу ...

Украинкский

2013-04-27

203 KB

5 чел.

Лабораторна робота 8

Моделювання роботи мікропроцесорного прибору ІТМ-11

в середовищі С++Builder

Мета: навчитися створювати комп’ютерну імітаційну модель роботи мікропроцесорного приладу ІТМ-11, використовуючи стандартні компоненти С++ Builder.

1. Відомості по приладу ІТМ-11

У технологічних процесах для реєстрації параметрів використовуються

ІТМ-11(рис. 1). Ці пристрої обладнані також функцією сигналізації.

Рис 1. Передня панель ІТМ-11

Індикатор технологічний мікропроцесорний ІТМ-11:

- Універсальні багатофункціональні одноканальні індикатори;

- Модифікації індикаторів ІТМ-11 - горизонтальне виконання, шкального індикатора 31 сегмент, ІТМ-11В - вертикальне виконання, шкального індикатора 21 сегмент.

Область застосування:

- Системи цифрового і лінійної індикації технологічних параметрів;

- Двопозиційний, трипозиційний і багатопозиційне регулювання температури, тиску, витрат, рівня й інших фізичних величин;

- Дистанційні пристрої зв'язку з об'єктом з індикацією;

- Територіально розподілені і локальні системи управління;

- Місцеві щити та пульти керування, мнемощити, мнемосхеми і т.п.

Функціональні можливості:

- Робота з уніфікованими сигналами, термоперетворювачами опору, термопарами

- Кожен аналоговий вхід може бути налаштований на підключення будь-якого типу датчика

- Індикація параметрів в технологічних одиницях на цифрових і лінійних (0-100%) індикаторах

- Цифрове калібрування (автоматичне і ручне) початку шкали і діапазону вимірювання

- Вибір методу лінійної індикації (сегмент, гістограма)

- Завдання та сигналізація відхилення від установок мінімум і максимум на передній панелі

- Тип технологічної сигналізації: без запам'ятовування спрацьовування, із запам'ятовуванням спрацьовування і квітируванням

- Вхідний цифровий фільтр аналогових входів

- Витяг квадратного кореня (вимірювання витрати по перепаду тиску)

- Функція вимірювання інтегральної витрати

- Лінеаризація вхідного сигналу (по 16 точкам)

- 2 конфігурованих дискретних виходи - транзистор ОК, реле, оптосімістор, твердотільне реле

- Програмована логіка роботи вихідних пристроїв: більше MAX, менше MIN, в зоні MIN-MAX, поза зоною MIN-MAX

- Аналоговий вихід для ретрансміссії вхідних аналогових сигналів

- Архівація даних в енергонезалежну пам'ять (планується модернізація)

- Збереження параметрів при відключенні живлення

- Захист від несанкціонованої зміни параметрів

- Гальванічно розділений інтерфейс RS-485, протокол ModBus RTU (збір інформації, конфігурація)

Перелічимо необхідні компоненти С++ для створення програми.

Image – компонента із вкладки Additional для завантаження рисунків і відображення на формі.

Timerкомпонента із вкладки System, необхідна для створення анімованого зображення.

Label – компонента із вкладки  Standard , необхідна для відображення тексту.

TrackBarкомпонента із вкладки Win32, необхідна для завдання параметру.

Edit - компонента із вкладки  Standard, для забезпечення введення мінімального та максимального значення контрольованого параметру.

Chart - компонента із вкладки Additional для графічного відображення значення контрольованого параметру.

Хід роботи

Крок 1. Створюємо новий проект С++, перейменовуємо назву форми проекту через властивість Caption. Змінюємо назву Form1 на Емулятор ІТМ-11. Зберігаємо зміни. Папку з картинками із назвою ІТМ-11 поміщаємо в ту ж папку де знаходяться файли збереженого проекту.

Крок 2. Розміщуємо на формі програми необхідні компоненти:

Timer1 – Interval=100; Timer2 -  Interval=100; Timer3 - Interval=100.

Image1,Image2,Image3,Image4,Image5,Image6,Image7,Image8.(Для кожного з Image підбираємо необхідні розміри і позиції, усі зміни параметрів робимо через Object Inspector - Properties).

Image1 – AutoSize – true; Picture – завантажуємо  ITM-11.bmp; Left =0;Top=0;

Image2 - Left =62;Top=88; Height=28; Width=20; Picture –завантажуємо  ITM-11\Digits\0.bmp

Image3 - Left =84;Top=88; Height=28; Width=20; Picture –завантажуємо  ITM-11\Digits\0d.bmp

Image4 - Left =106;Top=88; Height=28; Width=20; Picture –завантажуємо  ITM-11\Digits\0.bmp

Image5 – Stretch=true; Left =22;Top=28; Height=23; Width=251; Picture –завантажуємо  ITM-11\Linear\0.bmp

Image6 – Transparent=true; Left =133;Top=106; Height=17; Width=17; Picture –завантажуємо  ITM-11\at.bmp

Image7 – Transparent=true; Left =133;Top=87; Height=17; Width=17; Picture –завантажуємо  ITM-11\at2.bmp

Image8 - Left =38;Top=88; Height=28; Width=20; Picture –завантажуємо  ITM-11\Digits\0.bmp

TrackBar1 – Min=0,Max=100; SelStart=30; SelEnd=70;

Label1 – змінюємо параметр Font, настроюємо бажаний шрифт і розмір шрифту.

Label2 – змінюємо параметр Caption на Контроль параметру

Розміщуємо на формі компоненти Edit1 та Edit2, Змінюємо параметри для них:

Edit1Text – min;

Edit2Text – max;

Додаємо компоненту Chart, бачимо на формі область для побудови графіку, двічі клікаємо по ній ЛКМ, обираємо Add… із вкладки Series, з’являється Series1. Переходимо на вкладку Titles і називаємо графік «Контрольований параметр»

Після того як усі компоненти розставлені, змінюємо властивості форми Form1 – AutoSize=true;

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

Рисунок 2. Форма із розміщеними на ній компонентами

Крок 3. Заповняємо лістинг програми, створюючи необхідні події і додаючи вказівки препроцесорів. Усі події створюємо або подвійним кліком миші по компоненті, або через Object InspectorEvents.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

float k,P[100],x1,ch;

int x,c,c2,c3,c4,i,min=0,max=10,i2,j,l;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

Form1->DoubleBuffered=true;

Image6->Visible=false;

Image7->Visible=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

  k=(max-min)*0.01;

  x1=min+(TrackBar1->Position)*k;

  x=min+(TrackBar1->Position)*k;

  c=(x-x%100)/100;                        //перша цифра числа

  c2=((x-x%10)-(x-x%100))/10;  //друга цифра

  c3=x%10;                                      //третя цифра

  ch=ceil((x1-x)*10);

  c4=ch;                       //цифра після коми

  l=(TrackBar1->Position*31)/100; //відповідає за заповнення сегментів

  if (max<10)

 {Image8->Picture->LoadFromFile("ITM-11/Digits/0.bmp") ;

  Image2->Picture->LoadFromFile("ITM-11/Digits/0.bmp") ;

  Image3->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c3)+"d.bmp") ;

  Image4->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c4)+".bmp");

  Image5->Picture->LoadFromFile("ITM-11/Linear/"+IntToStr(l)+".bmp");

 }

 if (max<=99 )

{

 Image8->Picture->LoadFromFile("ITM-11/Digits/0.bmp") ;

 Image2->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c2)+".bmp") ;

 Image3->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c3)+"d.bmp") ;

 Image4->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c4)+".bmp");

 Image5->Picture->LoadFromFile("ITM-11/Linear/"+IntToStr(l)+".bmp");

 }

   if (max<1000 )

{

 Image8->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c)+".bmp") ;

 Image2->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c2)+".bmp") ;

 Image3->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c3)+"d.bmp") ;

 Image4->Picture->LoadFromFile("ITM-11/Digits/"+IntToStr(c4)+".bmp");

 Image5->Picture->LoadFromFile("ITM-11/Linear/"+IntToStr(l)+".bmp");

}

if (TrackBar1->Position<=30)

{ Timer2->Enabled=true;Timer3->Enabled=false; Image7->Visible=false;

 Label1->Caption="  Мінімальне навантаження ";

 Label1->Font->Color=clGreen;}

if (TrackBar1->Position>=70)

{Timer3->Enabled=true;Timer2->Enabled=false; Image6->Visible=false;

 Label1->Caption="  Максимальне навантаження ";

 Label1->Font->Color=clRed;}

if (TrackBar1->Position>30 && TrackBar1->Position<70)

{i=0;

 Label1->Caption="  Робочий режим ";

 Image6->Visible=false;

 Image7->Visible=false;

 Timer2->Enabled=false;

 Timer3->Enabled=false;

 Label1->Font->Color=clBlue;}

 //*** Рисування графіка функції***//

  P[100]= x+ch/10;

  for (i2=0;i2<100;i2++)

 {P[i2]=P[i2+1];}

  Series1->Clear();

  for (j=0;j<100;j++)

  {

    Series1->AddY(P[j]);

  }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)

{

 i++;

 if (i==1)

 {Image6->Visible=true;}

 if(i==2)

 {Image6->Visible=false;i=0;}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer3Timer(TObject *Sender)

{

 i++;

 if (i==1)

 {Image7->Visible=true;}

 if(i==2)

 {Image7->Visible=false;i=0;}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)

{

min=StrToInt(Edit1->Text);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2Change(TObject *Sender)

{

max=StrToInt(Edit2->Text);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2Click(TObject *Sender)

{

Edit2->Text=IntToStr(max);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Click(TObject *Sender)

{

Edit1->Text=IntToStr(min);

}

//---------------------------------------------------------------------------

Готова робоча програма повинна мати вигляд як на рисунку 3.

Рисунок 3. С++ програма для демонстрації роботи ІТМ-11.


 

А также другие работы, которые могут Вас заинтересовать

30196. Приготовление борща 1.09 MB
  По данным этимологических словарей славянских языков[2] слово борщ произошло от названия растения: первоначально борщом назывался борщевик, съедобные листья которого использовались в пищу (по-видимому, распространённое мнение о том, что «бърщь» является старославянским названием свёклы, следует отнести к народной этимологии
30197. Расчет электрических показателей автоматизированного цеха 9.3 MB
  Расчет нагрузок для ЯУ5115 В данное РУ входят вентиляторы мощностью Рн =45 кВт Определяется суммарная мощность по формуле Рн∑ = Рн ∙п кВт 1 Изм. Определяется средняя активная мощность за наиболее нагруженную смену по формуле Рсм=Ки∙ Рн∑ кВт 2 где Ки коэффициент использования электроприемников определяется на основании опыта эксплуатации [по табл. Определяется средняя реактивная мощность за наиболее нагруженную смену по формуле Qсм =Рсм∙ квар 3 где коэффициент реактивной мощности определяется на основании...
30198. Опытно – экспериментальная работа по теме «Нетрадиционные графические материалы и техники» 105.16 KB
  Суть искусства определяется тем что оно представляет собой наиболее полную и действенную форму эстетического осознания окружающего мира. Задачи исследования: Рассмотреть особенности эстетического воспитания младших школьников в начальных классах общеобразовательной школы. Эстетическое воспитание младших школьников в начальных классах общеобразовательной школы Понятие об эстетическом воспитании Идеи эстетического воспитания зародились в глубокой древности.Представления о сущности эстетического воспитания его задачах цели изменялись...
30199. ВЛИЯНИЕ ПРОДОВОЛЬСТВЕННОГО КРИЗИСА НА ЦЕНЫ И ПОТРЕБЛЕНИЕ ВНУТРИ СТРАНЫ 25.86 KB
  Тогда вслед за экономическим кризисом стали резко расти цены на продовольственные товары. Индекс продовольственных цен на зерновые культуры по оценке ФАО в 2008 году достиг небывалых высот – 2378 пунктов рост за 12 месяцев составил – 709 пунктов. Многие страны ощутили на себе отрицательные последствия резкого роста цен на зерно однако КНР благодаря своей развитой системе аграрного производства именно зерновых культур а также широкой зерновой базе удалось сгладить или даже избежать подобных последствий.
30200. Моделирование систем управления различного уровня 1.04 MB
  Новшества различного рода проявляют себя в организациях в виде организационной модернизации системы управления, что требует уточнения основных параметров системы, отдельных связей, применение более эффективных методов их реализации, увеличение уровня надежности. Организационная модернизация системы затрагивает уже не только отдельные связи, но и структуру управления, в общем
30201. Общая классификация вторжений и характеристика угроз 136.5 KB
  3] Правовая защита Защита информации Возросший интерес к проблеме защиты информации основан на объективных процессах создания и сбора информации и информационного обмена. Угроза искажения информации существует в любой точке сети начиная от места ввода в сеть сообщения и до места его получения. Проблемы защиты информации затрагивают различные аспекты ее представления хранения и обработки а также вопросы выбора и реализации средств защиты.
30202. Налоги и налогообложение. Методические указания по выполнению аналитической части дипломной работы 60.5 KB
  Содержание и оформление разделов основной части ВКР По структуре дипломная работа должна состоять из следующих разделов: Введение; Теоретическая часть работы; Практическая часть работы; Заключение. В общем виде ВКР включает пояснительную записку и иллюстрационные плакаты. II раздел баланса стр. 220 стр.
30203. Анализ пожарной опасности медицинских учреждений 623 KB
  Анализ зарегистрированных крупных пожаров в медицинских учреждениях показал что при пожарах в этих зданиях создается сложная обстановка для пожаротушения поэтому требуется разработка комплекса мероприятий по противопожарной защите. В профилактической работе ГПС важно не только предупреждение пожаров но и создание условий для их локализации. Знание условий распространения пожара позволяет заранее предусмотреть эффективные решения пожарной безопасности для предупреждения крупных пожаров.
30204. Состояние и пути совершенствования технологии производства молока в ООО «Бебелево» Ферзиковского района Калужской области 44.5 KB
  Выпускная квалификационная работа бакалаврская работа изложена на 77 страницах компьютерного набора состоит из введения пяти разделов характеристика хозяйства и организационноэкономический анализ хозяйственной деятельности; современное состояние и зоотехническая оценка отраслей животноводства; мероприятия по охране труда животноводов и охране природы; работа в условиях радиоактивного загрязнения местности; экспериментальное исследование по теме выводов и предложений списка использованной литературы; содержит 28 таблиц. Состояние...