Програмно-апаратний комплекс управління та обліку інформації

Розробка інформаційної прецизійної системи управління для вивчення деформаційних властивостей гірських порід неправильної форми з використанням стандартного пресового устаткування. Технічні характеристики магнітострикційних датчиків лінійних переміщень.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык украинский
Дата добавления 11.09.2014
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

(5.22)

де - загальна сумарна потужність обладнання (ЕОМ, оргтехніка та ін), кВт-год.;

- ціна (тариф) електроенергії з ПДВ, грн. / 1 кВт-год.;

- дійсний річний фонд часу роботи обладнання, год. на рік.

Сумарна потужність обладнання за умови, що обладнання експлуатується в робочому режимі (при завантаженні процесора 80%) (дивись Додаток Г):

За станом на 01.04.2011 ціна 1 кВт для промислових споживачів 2-го класу напруги з ПДВ становить 0,95124 грн. /кВт-год [18].

При визначенні дійсного річного фонду часу роботи обладнання () враховується тривалість можливих простоїв на ремонт, заміну і модернізацію обладнання.

Дійсний річний фонд часу роботи обладнання () складає:

(5.23)

де - номінальний (або режимний) фонд часу роботи обладнання (відповідно до встановленого режиму роботи підприємства), год. на рік;

- тривалість планових простоїв на ремонт, заміну і модернізацію устаткування, год. на рік.

У рамках розрахунків дипломної роботи номінальний фонд часу роботи обладнання () приймається рівним дійсному річному фонду часу роботи одного працівника з числа обслуговуючого персоналу (), а тривалість планових простоїв на ремонт, заміну і модернізацію обладнання () дорівнює 10 % від :

(5.24)

(5.25)

Відповідно до формули (5.25) тривалість планових простоїв на ремонт, заміну і модернізацію устаткування становить:

Дійсний річний фонд часу роботи обладнання становить:

Відповідно до формули (5.22) річні витрати на електроенергію () у складі витрат на утримання та експлуатацію устаткування становлять:

Під загальногосподарськими витратами () у складі повних витрат на утримання та експлуатацію устаткування протягом року слід розуміти оплату вартості освітлення, опалення, інших комунальних послуг, вартість оренди приміщення та ін. У рамках дипломної роботи вартість загальногосподарських витрат приймається у розмірі 7% від річного фонду основної заробітної плати обслуговуючого персоналу:

(5.26)

Відповідно до формули (5.26) загальногосподарські витрати () у складі повних витрат на утримання та експлуатацію устаткування протягом року становлять:

Інші накладні витрати () у складі повних витрат на утримання та експлуатацію устаткування протягом року приймаємо у розмірі 5% від річного фонду основної заробітної плати обслуговуючого персоналу:

(5.27)

Відповідно до формули (5.27) інші накладні витрати () у складі повних витрат на утримання та експлуатацію устаткування протягом року становлять:

Відповідно до формули (5.14) повні витрати на утримання та експлуатацію обладнання протягом року становлять:

Відповідно до формули (5.13) вартість 1 машино-години становить:

Розрахуємо витрати на утримання та експлуатацію обладнання у складі витрат на розробку програмного продукту відповідно до формули (5.11):

5.5 Розрахунок інших накладних витрат у складі витрат на розробку програмного продукту

Інші накладні витрати у складі витрат на розробку програмного продукту включають витрати на відрядження, пов'язані із затвердженням технічного завдання з замовником та ін., приймаємо в розмірі 20% від фонду основної заробітної плати розробників програмного продукту:

(5.28)

Відповідно до формули (5.28), інші накладні витрати у складі витрат на розробку програмного продукту складають:

Відповідно до формули (2.1) собівартість розробленого програмного продукту становить:

Результати розрахунку собівартості розробки програмного продукту зведені у таблиці 5.8.

5.6 Розрахунок собівартості апаратного забезпечення

Приведемо таблицю 5.7 у яку зведемо всі елементи апаратного забезпечення.

Таблиця 5.7 - Елементи витрат на апаратну частину комплексу

Назва елементу

Вартість, грн./шт.

Кількість, шт.

Вартість, грн.

Часовий мікрометр

863,23

1

863,23

Угловий енкодер переміщення AS5040

180,00

1

180,00

Мікроконтроллер ATmega8

40,2

1

40,2

РАЗОМ: Вартість покупки матеріалів, грн.

1083,43

3

1083,43

Вартість транспортно-заготівельних витрат, грн. (2%)

21,67

Вартість монтажу, грн. (5%)

54,17

Вартість відладки, 3%(грн.),.

32,50

Витрати на апаратне забезпечення дорівнюють

,

де - транспортні витрати (2%),

- витрати на монтаж апаратного забезпечення,

- витрати на відладку апаратного забезпечення.

Разом витрати на апаратне забезпечення становлять:

грн.

5.7 Висновки за розділом

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

У даному розділі дипломної роботи проведено організаційно-економічні розрахунки, необхідні для визначення собівартості розробки програмного продукту, що передбачає реалізацію рішень типових задач (ступінь новизни - А), включає алгоритми оптимізації та моделювання систем (ступінь складності - 1), на мові програмування високого рівня.

Підсумкова собівартість розробки даного програмного продукту склала 30479,45 грн. Велику частку собівартості становлять витрати на оплату сумарною заробітної плати розробників програмного продукту 46,91% і відрахування із заробітної плати розробників програмного забезпечення до фонду загальнообов'язкового державного соціального страхування 17,25%.

У таблиці 5.7 представлені показники, необхідні для визначення собівартості розробки програмного продукту.

Результати розрахунку собівартості розробки програмного продукту зведені у таблиці 5.8.

Таблиця 5.7 - Розрахункові показники для визначення собівартості розробки програмного продукту

Найменування показника

Позначення

Значення

1. Базова трудомісткість розробки програмного продукту, год.

ТО

509

2. Підсумкова трудомісткість розробки програмного продукту, год.

ТПЗ

804

3. Підсумкова трудомісткість розробки програмного продукту, (8-годинний робочий день) днів

ТПОД

101

4. Фонд машинного часу при створенні програмного продукту, год.

tM

575

5. Дійсний річний фонд часу роботи обладнання, год.-на рік

Фоб

1976,04

6. Повні витрати на утримання та експлуатацію устаткування протягом року, грн.-на рік

Зоб

28300,33

7. Вартість 1 машино-години, грн / год.

Rоб

15,75

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

Назва показника

Позначення

Значення

грн.

%

1

2

3

4

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

СМ

343,06

1,13

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

СЗП

14298,98

46,91

3. Відрахування із заробітної плати розробників програмного продукту до фондів загальнообов'язкового державного соціального страхування (відрахування на соціальні заходи), грн.

Ссоц

5257,74

17,25

4. Витрати на утримання та експлуатацію обладнання (або витрати на оплату машинного часу) у складі витрат на розробку програмного продукту, грн.

Соб

9058,5

29,72

5. Інші накладні витрати у складі витрат на розробку програмного продукту, грн.

Сін

1521,17

4,99

РАЗОМ: Собівартість розробленого програмного забезпечення, грн.

СПЗ

30479,45

100,00

5.7.2 Аналіз собівартості системи

Через те що система включає в себе не тільки програмне забезпечення а й апаратне приведемо повну калькуляцію собівартості системи.

Стаття витрат

Значення

грн.

%

1

Витрати на розробку ПО

30479,45

96,24

2

Витрати на придбання апаратного забезпечення

1191,77

3,76

Повна собівартість

31671,22

100

Як бачимо у затратах переважують витрати на розробку ПО 30479,45грн. (96,24%). Затрати на придбання апаратного забезпечення становлять 1191,77 грн.

Висновок

У ході роботи було розроблено пристрій для визначення лінійного зміщення в динамічному діапазоні 0 ... 10 мм. Накопичувальна похибка не перевищує 10 мкм.

Була написана програма прошивка а також реалізована програма високого рівня для управління роботою пристрою.

Перелік посилань

1. ГОСТ 15150-69. Машини, прилади та інші технічні вироби. Виконання для різних районів. Категорії, умови експлуатації, зберігання і транспортування в частині впливу кліматичних факторів зовнішнього середовища. Введ. 01.01.70.

2. Практичний посібник з навчального конструювання РЕА. / Под ред. К.Б. Круковського-Сіневич, Ю.Л. Мазора. - К.: "Вища школа", 1992. - 494с.

3. ГОСТ 23751-86. Плати друковані. Основні параметри конструкції. - Введ. 01.07.87.

4. Методичні вказівки до виконання курсового проекту з дисципліни "Основи конструювання і технології електронних пристроїв" / Укл.: Ю.Е. Паеранд - Алчевськ: ДГМІ, 2003. 55 - с.

5. ДСТУ 2779-94. Монтаж електричний радіоелектронної апаратури та приладів. Загальні технічні вимоги до формування висновків і до установки виробів електронної техніки на друковані плати. - Введ. 01.01.96.

6. ГОСТ 10317 - 79. Друковані плати. Основні розміри. - Введ. 01.01.80.

7. ГОСТ 2.417-91. ЕСКД. Плати друковані. Правила виконання креслень. - Введ. 01.07.92.

8. Закон України "Про оплату праці" № 108/95-вр.

9. Постанова Кабінету Міністрів України "Про оплату праці працівників на основі Єдиної тарифної сітки розрядів і коефіцієнтів з оплати праці працівників установ, закладів та організацій окремих галузей бюджетної сфери" № 1298 від 30.08.2002 р. (у редакції Постанови Кабінету Міністрів України від 22.08.2005г. № 790, із змінами на поточну дату).

10. Закон України "Про загальнообов'язкове державне соціальне страхування від нещасного випадку на виробництві та професійного захворювання, які спричинили втрату працездатності" № 1105-14

11. Закон України "Про загальнообов'язкове державне пенсійне страхування" № 1058-15

12. Закон Украины "Про збір та облік єдиного внеску на загальнообов'язкове державне соціальне страхування" № 2464-VI від 8.07.2010 року (набуття чинності 1 січня 2011 року).

13. Постанова КМУ "Про затвердження Порядку визначення страхових тарифів для підприємств, установ та організацій на загальнообов'язкове державне соціальне страхування від нещасного випадку на виробництві та професійного захворювання" № 1423 від 13 вересня 2000 р.

14. Кодекс законів про працю України № 322-VIII.

15. Лист Мінпраці "Про розрахунок норми тривалості робочого часу на 2011 рік" від 25.08.2010 р. N 9111/0/14-10/13.

16. Закон України "Про оподаткування прибутку підприємств" № 334/94-вр.

17. Національна комісія регулювання електроенергетики (НКРЕ) України Постанова "Щодо затвердження на квітень 2011 року роздрібних тарифів на електроенергію з урахуванням граничних рівнів тарифів при поступовому переході до формування єдиних роздрібних тарифів для споживачів на території України" № 389 від 24 березня 2011.

18. "Основи законодавства України про загальнообов'язкове державне соціальне страхування" № 16/98-вр.

19. Закон України "Про збір на обов'язкове державне пенсійне страхування" № 400/97-вр.

20. Закон України "Про загальнообов'язкове державне соціальне страхування на випадок безробіття" № 1533-14.

21. Закон України "Про розмір внесків на деякі види загальнообов'язкового державного соціального страхування" № 2213-14 (із змінами на поточну дату).

22. Постанова Кабінету Міністрів України "Про затвердження порядку визначення страхових тарифів для підприємств, установ та організацій на загальнообов'язкове державне соціальне страхування від нещасного випадку на виробництві та професійного захворювання" № 1423 від 13.09.2000р.

Додаток А. Єдина тарифна сітка розрядів і коефіцієнтів по оплаті праці робітників

Тарифні розряди

Тарифні коефіцієнти

1

1,00

2

1,09

3

1,18

4

1,27

5

1,36

6

1,45

7

1,54

8

1,64

9

1,73

10

1,82

11

1,97

12

2,12

13

2,27

14

2,42

15

2,58

16

2,79

17

3,00

18

3,21

19

3,42

20

3,64

21

3,85

22

4,06

23

4,27

24

4,36

25

4,51

Додаток Б. Значення коефіцієнта кваліфікації розробника ПЗ

Стаж роботи розробника

Коефіцієнт кваліфікації розробника ()

до 2-х років

0,8

від 2-х до 3-х лет

1,0

від 3-х до 5 лет

1,1…1,2

від 5 до 7 лет

1,2…1,3

більше 7 лет

1,3…1,5

Додаток В. Значення коефіцієнта, що враховує новизну програми

Програмні продукти за новизною відносяться до 4 груп:

група А - рішення нових задач;

група Б - розробка оригінальних програм;

група В - розробка програм з використанням типових рішень;

група Г - реалізація разової типової задачі.

За ступенем важкості програмні продукти можуть бути віднесені до одної з 3 груп:

1 - алгоритми оптимізації та моделювання систем;

2 - задачі обліку, статистики;

3 - стандартні алгоритми.

Значення коефіцієнту вибирається з представленої нижче таблиці:

Додаток Г. Розрахунок сумарної потужності устаткування

Додаток Д. Схема принципова, система опитування кутових енкодерів

Додаток Е. Плата друкована, модуль системи опитування датчиків

Додаток Є. Схема принципова, схема узгодження рівні RS-232 і USART

Додаток Ж. Плата друкована, схеми узгодження рівнів RS-232 і USART

Додаток З. Программа прошивка

#include <avr/io.h>

#include <util/delay.h>

#include "pin_macros.h"

#include "scmRTOS/Common/scmRTOS.h"

#include "uart.h"

#include "as5040.h"

#define EncoderCount 5

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

//

// Process types

//

typedef OS::process<OS::pr0, 100> TProc1;

typedef OS::process<OS::pr1, 100> TProc2;

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

//

// Process objects

//

TProc1 Proc1;

TProc2 Proc2;

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

UART::CUart MyUart;

as5040 Encoder;

Data d[EncoderCount]; //значения датчиков

struct TData

{

char a;

};

OS::channel<TData,5> RXChannel;

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

int main()

{

MyUart.init();

Encoder.init();

Encoder.readPosition(EncoderCount,d); //сброс буферов датчиков

_delay_ms(50);

// Start System Timer

TCCR0 = (1 << CS02)|(0 << CS01) | (0 << CS00); // clk/256

TIMSK |= (1 << TOIE0);

//Запускаем ОС

OS::Run();

return 0;

}

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

namespace OS {

char STATUS;

TMutex MutexData;

template<> OS_PROCESS void TProc1::Exec()

{

char Err[]="00000000";

TData data;

STATUS=1;

for(;;)

{

Sleep(200);

if(data.a=='s') //start

{

STATUS=1;

}

if(STATUS==2)

{

MutexData.Lock();

MyUart.sendMass("previos0: ",10);

itoa(d[0].data,Err,10);

MyUart.sendMass(Err,4);

MyUart.sendByte(0x0D);

MyUart.sendByte(0x0A);

MyUart.sendMass("previos1: ",10);

itoa(d[1].data,Err,10);

MyUart.sendMass(Err,4);

MyUart.sendByte(0x0D);

MyUart.sendByte(0x0A);

MyUart.sendMass("previos2: ",10);

itoa(d[2].data,Err,10);

MyUart.sendMass(Err,4);

MyUart.sendByte(0x0D);

MyUart.sendByte(0x0A);

MyUart.sendMass("previos3: ",10);

itoa(d[3].data,Err,10);

MyUart.sendMass(Err,4);

MyUart.sendByte(0x0D);

MyUart.sendByte(0x0A);

MyUart.sendMass("previos4: ",10);

itoa(d[4].data,Err,10);

MyUart.sendMass(Err,4);

MyUart.sendByte(0x0D);

MyUart.sendByte(0x0A);

MyUart.sendMass("==========",10);

MyUart.sendByte(0x0D);

MyUart.sendByte(0x0A);

MutexData.Unlock();

}else if (STATUS==3)

{

MyUart.sendMass("=====Error=====",15);

MyUart.sendByte(0x0D);

MyUart.sendByte(0x0A);

}

}

} // TProc1::Exec()

//процес опрашивает датчики

template<> OS_PROCESS void TProc2::Exec()

{

//STATUS==1 - старт

//STATUS==2 - постоянный опрос датчиков

//STATUS==3 - ошибка

//STATUS==4 - простой

char Err[]="00000000";

for(;;)

{

//Ожидание события начала измерений

if(STATUS==1) //Начало измерений

{

TCritSect cr; //критическая секция.

Encoder.readPosition(EncoderCount,d); //получение первоначальных данных

//инициализация

for(char i=0;i<EncoderCount;i++)

{

d[i].zero=d[i].data; //засекаем точку нуля

d[i].res=0; //Сбрасываем результаты измерений

d[i].previos=0; //предыдущее значение

//MyUart.sendByte('1');

}

STATUS=2; //начало обработки данных

cr.~TCritSect(); //конец критической секции

}

else if(STATUS==2)

{

char err=0;

TCritSect cr;

Encoder.readPosition(EncoderCount,d); //чтение данных

cr.~TCritSect();

//обработка данных

MutexData.Lock();

err=Encoder.correctData(EncoderCount,d);

MutexData.Unlock();

}

//Sleep(500);

}

} // TProc2::Exec()

}

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

OS_INTERRUPT void USART_RXC_vect()

{

OS::TISRW_SS ISRW;

TData data;

data.a=UDR;

RXChannel.push(data);

}

//------ end of file main.cpp -------------------------------------------

Додаток I. Програма верхнього рівня

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using ZedGraph;

using System.IO.Ports;

using System.IO;

using System.Threading;

namespace Bokaev

{

public partial class Form1 : Form

{

//создаем графики

GraphPane pane0, pane1, pane2, pane3, pane4;

//проверочные графики

GraphPane paneControl0, paneControl1, paneControl2, paneControl3, paneControl4;

// создаем списки точек

PointPairList list0 = new PointPairList();

PointPairList list1 = new PointPairList();

PointPairList list2 = new PointPairList();

PointPairList list3 = new PointPairList();

PointPairList list4 = new PointPairList();

//списки проверочных точек

PointPairList listControl0 = new PointPairList();

PointPairList listControl1 = new PointPairList();

PointPairList listControl2 = new PointPairList();

PointPairList listControl3 = new PointPairList();

PointPairList listControl4 = new PointPairList();

//координата Х (время)

double x = 0;

//CSV Writer (Excel)

private StreamWriter m_CSVWriter;

private StreamWriter m_CSVWriter1;

private StreamWriter m_CSVWriter2;

private StreamWriter m_CSVWriter3;

private StreamWriter m_CSVWriter4;

private StreamWriter global_CSVWriter;

//Для определения времени измерения

DateTime data1, data2;

public Form1()

{

InitializeComponent();

//csv добавляем пункт меню

zedGraph.ContextMenuBuilder += new ZedGraphControl.ContextMenuBuilderEventHandler(MyContextMenuBuilder);

zedGraph1.ContextMenuBuilder += new ZedGraphControl.ContextMenuBuilderEventHandler(MyContextMenuBuilder1);

zedGraph2.ContextMenuBuilder += new ZedGraphControl.ContextMenuBuilderEventHandler(MyContextMenuBuilder2);

zedGraph3.ContextMenuBuilder += new ZedGraphControl.ContextMenuBuilderEventHandler(MyContextMenuBuilder3);

zedGraph4.ContextMenuBuilder += new ZedGraphControl.ContextMenuBuilderEventHandler(MyContextMenuBuilder4);

}

//==============================0

//добавлеение меню(Excel)

private void MyContextMenuBuilder(ZedGraphControl control,ContextMenuStrip menuStrip,

Point mousePt, ZedGraphControl.ContextMenuObjectState objState)

{

// зодать новую запись меню

ToolStripMenuItem _item = new ToolStripMenuItem();

//Для обращения к меню

_item.Name = "Export Data as CSV";

_item.Tag = "export_data_csv";

//Отображение меню

_item.Text = "Export Data as CSV";

// Получить хендел на функцию меню

_item.Click += new System.EventHandler(ShowSaveAsForExportCSV);

// Вставить пункт по указанному месту

menuStrip.Items.Insert(2, _item);

}

//функция меню

private void ShowSaveAsForExportCSV(object sender, System.EventArgs e)

{

try

{

//Отображение диалога для сохранения

saveFileDialog1.Filter = "CSV files (*.csv)|*.csv";

saveFileDialog1.ShowDialog();

//получить имя файла

m_CSVWriter = new StreamWriter(saveFileDialog1.FileName);

WriteCSVToStream(); //запись

m_CSVWriter.Close(); //закрыть

MessageBox.Show("CSV File Saved", " ZedGraph ", MessageBoxButtons.OK);

}

catch (Exception ex)

{

MessageBox.Show("Выбранный файл недоступен для записи", "Ошибка", MessageBoxButtons.OK);

}

}

//запись в файл

private void WriteCSVToStream()

{

//записать информацию о измерениях

//название графика

m_CSVWriter.Write("Name graph: ;" + zedGraph.GraphPane.Title.Text + "\n");

//время начала

m_CSVWriter.Write("Date start: ;" + data1.ToString() +"\n" );

//время конца

m_CSVWriter.Write("Date end: ;" + DateTime.Now.ToString()+"\n");

//продолжительность

m_CSVWriter.Write("Time: ;" + (DateTime.Now-data1).ToString() + "\n");

//количество записей

m_CSVWriter.Write("Count: ;" + list0.Count.ToString() + "\n");

//цена деления

m_CSVWriter.Write("Frequency (ms): ;" + txtFren.Text+ "\n");

//Записываем заголовки осей Х и У

string _xAxisHeader = CheckCSVString(zedGraph.GraphPane.XAxis.Title.Text);

string _yAxisHeader = CheckCSVString(zedGraph.GraphPane.YAxis.Title.Text);

m_CSVWriter.Write(_xAxisHeader + ";" + _yAxisHeader + "\n");

//записываем точки из списка

for (int i = 0; i < list0.Count; i++)

{

m_CSVWriter.Write(list0[i].X.ToString() + ";" + list0[i].Y.ToString() + "\n");

}

}

//============ End 0

//==============================1

//добавлеение меню(Excel)

private void MyContextMenuBuilder1(ZedGraphControl control, ContextMenuStrip menuStrip,

Point mousePt, ZedGraphControl.ContextMenuObjectState objState)

{

// зодать новую запись меню

ToolStripMenuItem _item = new ToolStripMenuItem();

//Для обращения к меню

_item.Name = "Export Data as CSV";

_item.Tag = "export_data_csv";

//Отображение меню

_item.Text = "Export Data as CSV";

// Получить хендел на функцию меню

_item.Click += new System.EventHandler(ShowSaveAsForExportCSV1);

// Вставить пункт по указанному месту

menuStrip.Items.Insert(2, _item);

}

//функция меню

private void ShowSaveAsForExportCSV1(object sender, System.EventArgs e)

{

try

{

//Отображение диалога для сохранения

saveFileDialog1.Filter = "CSV files (*.csv)|*.csv";

saveFileDialog1.ShowDialog();

//получить имя файла

m_CSVWriter1 = new StreamWriter(saveFileDialog1.FileName);

WriteCSVToStream1(); //запись

m_CSVWriter1.Close(); //закрыть

MessageBox.Show("CSV File Saved", " ZedGraph ", MessageBoxButtons.OK);

}

catch (Exception ex)

{

MessageBox.Show("Выбранный файл недоступен для записи", "Ошибка", MessageBoxButtons.OK);

}

}

//запись в файл

private void WriteCSVToStream1()

{

//записать информацию о измерениях

//название графика

m_CSVWriter1.Write("Name graph: ;" + zedGraph1.GraphPane.Title.Text + "\n");

//время начала

m_CSVWriter1.Write("Date start: ;" + data1.ToString() + "\n");

//время конца

m_CSVWriter1.Write("Date end: ;" + DateTime.Now.ToString() + "\n");

//продолжительность

m_CSVWriter1.Write("Time: ;" + (DateTime.Now - data1).ToString() + "\n");

//количество записей

m_CSVWriter1.Write("Count: ;" + list1.Count.ToString() + "\n");

//цена деления

m_CSVWriter1.Write("Frequency (ms): ;" + txtFren.Text + "\n");

//Записываем заголовки осей Х и У

string _xAxisHeader = CheckCSVString(zedGraph1.GraphPane.XAxis.Title.Text);

string _yAxisHeader = CheckCSVString(zedGraph1.GraphPane.YAxis.Title.Text);

m_CSVWriter1.Write(_xAxisHeader + ";" + _yAxisHeader + "\n");

//записываем точки из списка

for (int i = 0; i < list1.Count; i++)

{

m_CSVWriter1.Write(list1[i].X.ToString() + ";" + list1[i].Y.ToString() + "\n");

}

}

//============ End 1

//==============================2

//добавлеение меню(Excel)

private void MyContextMenuBuilder2(ZedGraphControl control, ContextMenuStrip menuStrip,

Point mousePt, ZedGraphControl.ContextMenuObjectState objState)

{

// зодать новую запись меню

ToolStripMenuItem _item = new ToolStripMenuItem();

//Для обращения к меню

_item.Name = "Export Data as CSV";

_item.Tag = "export_data_csv";

//Отображение меню

_item.Text = "Export Data as CSV";

// Получить хендел на функцию меню

_item.Click += new System.EventHandler(ShowSaveAsForExportCSV2);

// Вставить пункт по указанному месту

menuStrip.Items.Insert(2, _item);

}

//функция меню

private void ShowSaveAsForExportCSV2(object sender, System.EventArgs e)

{

try

{

//Отображение диалога для сохранения

saveFileDialog1.Filter = "CSV files (*.csv)|*.csv";

saveFileDialog1.ShowDialog();

//получить имя файла

m_CSVWriter2 = new StreamWriter(saveFileDialog1.FileName);

WriteCSVToStream2(); //запись

m_CSVWriter2.Close(); //закрыть

MessageBox.Show("CSV File Saved", " ZedGraph ", MessageBoxButtons.OK);

}

catch (Exception ex)

{

MessageBox.Show("Выбранный файл недоступен для записи", "Ошибка", MessageBoxButtons.OK);

}

}

//запись в файл

private void WriteCSVToStream2()

{

//записать информацию о измерениях

//название графика

m_CSVWriter2.Write("Name graph: ;" + zedGraph2.GraphPane.Title.Text + "\n");

//время начала

m_CSVWriter2.Write("Date start: ;" + data1.ToString() + "\n");

//время конца

m_CSVWriter2.Write("Date end: ;" + DateTime.Now.ToString() + "\n");

//продолжительность

m_CSVWriter2.Write("Time: ;" + (DateTime.Now - data1).ToString() + "\n");

//количество записей

m_CSVWriter2.Write("Count: ;" + list2.Count.ToString() + "\n");

//цена деления

m_CSVWriter2.Write("Frequency (ms): ;" + txtFren.Text + "\n");

//Записываем заголовки осей Х и У

string _xAxisHeader = CheckCSVString(zedGraph2.GraphPane.XAxis.Title.Text);

string _yAxisHeader = CheckCSVString(zedGraph2.GraphPane.YAxis.Title.Text);

m_CSVWriter2.Write(_xAxisHeader + ";" + _yAxisHeader + "\n");

//записываем точки из списка

for (int i = 0; i < list2.Count; i++)

{

m_CSVWriter2.Write(list2[i].X.ToString() + ";" + list2[i].Y.ToString() + "\n");

}

}

//============ End 2

//==============================3

//добавлеение меню(Excel)

private void MyContextMenuBuilder3(ZedGraphControl control, ContextMenuStrip menuStrip,

Point mousePt, ZedGraphControl.ContextMenuObjectState objState)

{

// зодать новую запись меню

ToolStripMenuItem _item = new ToolStripMenuItem();

//Для обращения к меню

_item.Name = "Export Data as CSV";

_item.Tag = "export_data_csv";

//Отображение меню

_item.Text = "Export Data as CSV";

// Получить хендел на функцию меню

_item.Click += new System.EventHandler(ShowSaveAsForExportCSV3);

// Вставить пункт по указанному месту

menuStrip.Items.Insert(2, _item);

}

//функция меню

private void ShowSaveAsForExportCSV3(object sender, System.EventArgs e)

{

try

{

//Отображение диалога для сохранения

saveFileDialog1.Filter = "CSV files (*.csv)|*.csv";

saveFileDialog1.ShowDialog();

//получить имя файла

m_CSVWriter3 = new StreamWriter(saveFileDialog1.FileName);

WriteCSVToStream3(); //запись

m_CSVWriter3.Close(); //закрыть

MessageBox.Show("CSV File Saved", " ZedGraph ", MessageBoxButtons.OK);

}

catch (Exception ex)

{

MessageBox.Show("Выбранный файл недоступен для записи", "Ошибка", MessageBoxButtons.OK);

}

}

//запись в файл

private void WriteCSVToStream3()

{

//записать информацию о измерениях

//название графика

m_CSVWriter3.Write("Name graph: ;" + zedGraph3.GraphPane.Title.Text + "\n");

//время начала

m_CSVWriter3.Write("Date start: ;" + data1.ToString() + "\n");

//время конца

m_CSVWriter3.Write("Date end: ;" + DateTime.Now.ToString() + "\n");

//продолжительность

m_CSVWriter3.Write("Time: ;" + (DateTime.Now - data1).ToString() + "\n");

//количество записей

m_CSVWriter3.Write("Count: ;" + list3.Count.ToString() + "\n");

//цена деления

m_CSVWriter3.Write("Frequency (ms): ;" + txtFren.Text + "\n");

//Записываем заголовки осей Х и У

string _xAxisHeader = CheckCSVString(zedGraph3.GraphPane.XAxis.Title.Text);

string _yAxisHeader = CheckCSVString(zedGraph3.GraphPane.YAxis.Title.Text);

m_CSVWriter3.Write(_xAxisHeader + ";" + _yAxisHeader + "\n");

//записываем точки из списка

for (int i = 0; i < list3.Count; i++)

{

m_CSVWriter3.Write(list3[i].X.ToString() + ";" + list3[i].Y.ToString() + "\n");

}

}

//============ End 3

//==============================4

//добавлеение меню(Excel)

private void MyContextMenuBuilder4(ZedGraphControl control, ContextMenuStrip menuStrip,

Point mousePt, ZedGraphControl.ContextMenuObjectState objState)

{

// зодать новую запись меню

ToolStripMenuItem _item = new ToolStripMenuItem();

//Для обращения к меню

_item.Name = "Export Data as CSV";

_item.Tag = "export_data_csv";

//Отображение меню

_item.Text = "Export Data as CSV";

// Получить хендел на функцию меню

_item.Click += new System.EventHandler(ShowSaveAsForExportCSV4);

// Вставить пункт по указанному месту

menuStrip.Items.Insert(2, _item);

}

//функция меню

private void ShowSaveAsForExportCSV4(object sender, System.EventArgs e)

{

try

{

//Отображение диалога для сохранения

saveFileDialog1.Filter = "CSV files (*.csv)|*.csv";

saveFileDialog1.ShowDialog();

//получить имя файла

m_CSVWriter4 = new StreamWriter(saveFileDialog1.FileName);

WriteCSVToStream4(); //запись

m_CSVWriter4.Close(); //закрыть

MessageBox.Show("CSV File Saved", " ZedGraph ", MessageBoxButtons.OK);

}

catch (Exception ex)

{

MessageBox.Show("Выбранный файл недоступен для записи", "Ошибка", MessageBoxButtons.OK);

}

}

//запись в файл

private void WriteCSVToStream4()

{

//записать информацию о измерениях

//название графика

m_CSVWriter4.Write("Name graph: ;" + zedGraph4.GraphPane.Title.Text + "\n");

//время начала

m_CSVWriter4.Write("Date start: ;" + data1.ToString() + "\n");

//время конца

m_CSVWriter4.Write("Date end: ;" + DateTime.Now.ToString() + "\n");

//продолжительность

m_CSVWriter4.Write("Time: ;" + (DateTime.Now - data1).ToString() + "\n");

//количество записей

m_CSVWriter4.Write("Count: ;" + list4.Count.ToString() + "\n");

//цена деления

m_CSVWriter4.Write("Frequency (ms): ;" + txtFren.Text + "\n");

//Записываем заголовки осей Х и У

string _xAxisHeader = CheckCSVString(zedGraph4.GraphPane.XAxis.Title.Text);

string _yAxisHeader = CheckCSVString(zedGraph4.GraphPane.YAxis.Title.Text);

m_CSVWriter4.Write(_xAxisHeader + ";" + _yAxisHeader + "\n");

//записываем точки из списка

for (int i = 0; i < list4.Count; i++)

{

m_CSVWriter4.Write(list4[i].X.ToString() + ";" + list4[i].Y.ToString() + "\n");

}

}

//============ End 4

private string CheckCSVString(string _string)

{//Check to see if there are any characters that can disturb the CSV delimeters.

string _returnString = _string;

if (_string.IndexOfAny("\",\x0A\x0D".ToCharArray()) > -1)

{

_returnString = "\"" + _string.Replace("\"", "\"\"") + "\"";

}

return _returnString;

}

private void Form1_Load(object sender, EventArgs e)

{

//инициализация графиков

pane0 = zedGraph.GraphPane;

pane1 = zedGraph1.GraphPane;

pane2 = zedGraph2.GraphPane;

pane3 = zedGraph3.GraphPane;

pane4 = zedGraph4.GraphPane;

//инициализация проверочных графиков

paneControl0= zedGraphControl5.GraphPane;

paneControl1 =zedGraphControl4.GraphPane;

paneControl2 =zedGraphControl3.GraphPane;

paneControl3= zedGraphControl2.GraphPane;

paneControl4 =zedGraphControl1.GraphPane;

// Устанавливаем цвет линии и привязываем список точек

Color curveColor = Color.Black;

LineItem myCurve0 = pane0.AddCurve("", list0, curveColor, SymbolType.None);

LineItem myCurve1 = pane1.AddCurve("", list1, curveColor, SymbolType.None);

LineItem myCurve2 = pane2.AddCurve("", list2, curveColor, SymbolType.None);

LineItem myCurve3 = pane3.AddCurve("", list3, curveColor, SymbolType.None);

LineItem myCurve4 = pane4.AddCurve("", list4, curveColor, SymbolType.None);

LineItem myCurveControl0 = paneControl0.AddCurve("", listControl0, curveColor, SymbolType.None);

LineItem myCurveControl1 = paneControl1.AddCurve("", listControl1, curveColor, SymbolType.None);

LineItem myCurveControl2 = paneControl2.AddCurve("", listControl2, curveColor, SymbolType.None);

LineItem myCurveControl3 = paneControl3.AddCurve("", listControl3, curveColor, SymbolType.None);

LineItem myCurveControl4 = paneControl4.AddCurve("", listControl4, curveColor, SymbolType.None);

//Задать оси и названия графиков

pane0.Title.Text = "Graph0";

pane0.XAxis.Title.Text = "X";

pane0.YAxis.Title.Text = "Y";

pane1.Title.Text = "Graph1";

pane1.XAxis.Title.Text = "X";

pane1.YAxis.Title.Text = "Y";

pane2.Title.Text = "Graph2";

pane2.XAxis.Title.Text = "X";

pane2.YAxis.Title.Text = "Y";

pane3.Title.Text = "Graph3";

pane3.XAxis.Title.Text = "X";

pane3.YAxis.Title.Text = "Y";

pane4.Title.Text = "Graph4";

pane4.XAxis.Title.Text = "X";

pane4.YAxis.Title.Text = "Y";

//Задаем оси для проверочных графиков

paneControl0.Title.Text = "Graph0";

paneControl0.XAxis.Title.Text = "X";

paneControl0.YAxis.Title.Text = "Y";

paneControl1.Title.Text = "Graph1";

paneControl1.XAxis.Title.Text = "X";

paneControl1.YAxis.Title.Text = "Y";

paneControl2.Title.Text = "Graph2";

paneControl2.XAxis.Title.Text = "X";

paneControl2.YAxis.Title.Text = "Y";

paneControl3.Title.Text = "Graph3";

paneControl3.XAxis.Title.Text = "X";

paneControl3.YAxis.Title.Text = "Y";

paneControl4.Title.Text = "Graph4";

paneControl4.XAxis.Title.Text = "X";

paneControl4.YAxis.Title.Text = "Y";

}

//начать опрос

private void button1_Click(object sender, EventArgs e)

{

//открыть файл для записи (Excel)

try

{

//получить имя файла

global_CSVWriter = new StreamWriter(txtSave.Text);

//записать шапку

//записать информацию о измерениях

//время начала

global_CSVWriter.Write("Date start: ;" + data1.ToString() + "\n");

//цена деления

global_CSVWriter.Write("Frequency (ms): ;" + txtFren.Text + "\n");

//название графика

global_CSVWriter.Write("Name graph: ;" + zedGraph.GraphPane.Title.Text +";;;"

+ zedGraph1.GraphPane.Title.Text +";;;"

+ zedGraph2.GraphPane.Title.Text +";;;"

+ zedGraph3.GraphPane.Title.Text +";;;"

+ zedGraph4.GraphPane.Title.Text +"\n");

//Записываем заголовки осей Х и У

string _xAxisHeader0 = CheckCSVString(zedGraph.GraphPane.XAxis.Title.Text);

string _yAxisHeader0 = CheckCSVString(zedGraph.GraphPane.YAxis.Title.Text);

string _xAxisHeader1 = CheckCSVString(zedGraph1.GraphPane.XAxis.Title.Text);

string _yAxisHeader1 = CheckCSVString(zedGraph1.GraphPane.YAxis.Title.Text);

string _xAxisHeader2 = CheckCSVString(zedGraph2.GraphPane.XAxis.Title.Text);

string _yAxisHeader2 = CheckCSVString(zedGraph2.GraphPane.YAxis.Title.Text);

string _xAxisHeader3 = CheckCSVString(zedGraph3.GraphPane.XAxis.Title.Text);

string _yAxisHeader3 = CheckCSVString(zedGraph3.GraphPane.YAxis.Title.Text);

string _xAxisHeader4 = CheckCSVString(zedGraph4.GraphPane.XAxis.Title.Text);

string _yAxisHeader4 = CheckCSVString(zedGraph4.GraphPane.YAxis.Title.Text);

global_CSVWriter.Write( _xAxisHeader0 + ";" + _yAxisHeader0 + ";;"

+ _xAxisHeader1 + ";" + _yAxisHeader1 + ";;"

+ _xAxisHeader2 + ";" + _yAxisHeader2 + ";;"

+ _xAxisHeader3 + ";" + _yAxisHeader3 + ";;"

+ _xAxisHeader4 + ";" + _yAxisHeader4 + "\n");

serialPort1.PortName = txtPort.Text;

serialPort1.BaudRate = 19200;

serialPort1.Open();

serialPort1.ReadTimeout = 100;

serialPort1.Write("s"); //начало измерений

//очистить графики

list0.Clear();

list1.Clear();

list2.Clear();

list3.Clear();

list4.Clear();

x = 0;

listControl0.Clear();

listControl1.Clear();

listControl2.Clear();

listControl3.Clear();

listControl4.Clear();

//задаем настройки опроса

switch (txtFren.Text)

{

case "1000":

timer1.Interval = 1000;

break;

case "1500":

timer1.Interval = 1500;

break;

case "2000":

timer1.Interval = 2000;

break;

case "2500":

timer1.Interval = 2500;

break;

case "3000":

timer1.Interval = 3000;

break;

}

//заблокировать кнопки

button1.Enabled = false;

btnStart.Enabled = false;

button2.Enabled = true;

//Отобразить время начала измерений

data1 = DateTime.Now;

lblStart.Text = DateTime.Now.ToString();

timer1.Enabled = true;

serialPort1.Write("r"); //команда получить данные

// Обновим график

zedGraph.AxisChange();

zedGraph.Invalidate();

zedGraph1.AxisChange();

zedGraph1.Invalidate();

zedGraph2.AxisChange();

zedGraph2.Invalidate();

zedGraph3.AxisChange();

zedGraph3.Invalidate();

zedGraph4.AxisChange();

zedGraph4.Invalidate();

//проверочные

zedGraphControl1.AxisChange();

zedGraphControl1.Invalidate();

zedGraphControl2.AxisChange();

zedGraphControl2.Invalidate();

zedGraphControl3.AxisChange();

zedGraphControl3.Invalidate();

zedGraphControl4.AxisChange();

zedGraphControl4.Invalidate();

zedGraphControl5.AxisChange();

zedGraphControl5.Invalidate();

}

catch (Exception ex)

{

// в случае исключения прекратить процедуру

global_CSVWriter.Close();

serialPort1.Close();

//MessageBox.Show(ex.ToString());

MessageBox.Show("COM порт недоступен, или запрещена запись в файл.", " Ошибка ", MessageBoxButtons.OK);

}

}

//таймер опроса датчиков

private void timer1_Tick(object sender, EventArgs e)

{

byte[] Mes = new byte[11]; //массив входных данных

int y0,y1,y2,y3,y4; //буфер для значения датчика

try

{

serialPort1.Write("r"); //команда получить данные

Thread.Sleep(1);

serialPort1.Read(Mes, 0, 11); //получить посылку с данными

//определяем координату У

y0 = (Mes[0] << 8);

y0 |= (Mes[1]);

y1 = (Mes[2] << 8);

y1 |= (Mes[3]);

y2 = (Mes[4] << 8);

y2 |= (Mes[5]);

y3 = (Mes[6] << 8);

y3 |= (Mes[7]);

y4 = (Mes[8] << 8);

y4 |= (Mes[9]);

//расчет силы

textBox1.Text = (0.05 * y0).ToString();

// добавим в список точку

list0.Add(y1, y0);

list1.Add(y2, y0);

list2.Add(y3, y0);

list3.Add(x, y0);

list4.Add(y4, y0);

// добавим в список точку

listControl0.Add(x, y0*(1/1.024));

listControl1.Add(x, y1*(1 / 1.024));

listControl2.Add(x, y2*(1 / 1.024));

listControl3.Add(x, y3*(1 / 1.024));

listControl4.Add(x, y4*(1 / 1.024));

//вывести значения

label10.Text = (y0 * (1 / 1.024)).ToString();

label11.Text = (y1 * (1 / 1.024)).ToString();

label12.Text = (y2 * (1 / 1.024)).ToString();

label13.Text = (y3 * (1 / 1.024)).ToString();

label14.Text = (y4 * (1 / 1.024)).ToString();

//сохранить данные в excel файле

global_CSVWriter.Write(list0[list0.Count - 1].X.ToString() + ";" + list0[list0.Count - 1].Y.ToString() + ";;"

+ list1[list1.Count - 1].X.ToString() + ";" + list1[list1.Count - 1].Y.ToString() + ";;"

+ list2[list2.Count - 1].X.ToString() + ";" + list2[list2.Count - 1].Y.ToString() + ";;"

+ list3[list3.Count - 1].X.ToString() + ";" + list3[list3.Count - 1].Y.ToString() + ";;"

+ list4[list4.Count - 1].X.ToString() + ";" + list4[list4.Count - 1].Y.ToString() + "\n");

global_CSVWriter.Flush();

//время

x++;

// Обновим график

zedGraph.AxisChange();

zedGraph.Invalidate();

zedGraph1.AxisChange();

zedGraph1.Invalidate();

zedGraph2.AxisChange();

zedGraph2.Invalidate();

zedGraph3.AxisChange();

zedGraph3.Invalidate();

zedGraph4.AxisChange();

zedGraph4.Invalidate();

//проверочные

zedGraphControl1.AxisChange();

zedGraphControl1.Invalidate();

zedGraphControl2.AxisChange();

zedGraphControl2.Invalidate();

zedGraphControl3.AxisChange();

zedGraphControl3.Invalidate();

zedGraphControl4.AxisChange();

zedGraphControl4.Invalidate();

zedGraphControl5.AxisChange();

zedGraphControl5.Invalidate();

}

catch (Exception ex)

{

timer1.Enabled = false;

//заблокировать кнопки

button1.Enabled = true;

button2.Enabled = false;

btnStart.Enabled = true;

serialPort1.Close();

global_CSVWriter.Close();

MessageBox.Show("Произошол сбой.Возможные причины: \n1)Устройство не отвечает на запросы;\n2)Файл стал недоступен для записи.", " Ошибка ", MessageBoxButtons.OK);

}

}

//остановить опрос

private void button2_Click(object sender, EventArgs e)

{

serialPort1.Write("c"); //прекратить измерения

//задаем настройки опроса

timer1.Enabled = false;

serialPort1.Close();

//отобразить время завершения измерений

data2 = DateTime.Now;

lblEnd.Text = DateTime.Now.ToString();

//продолжительность измерения

lblTime.Text = (data2 - data1).ToString();

global_CSVWriter.Write("\n");

//время конца

global_CSVWriter.Write("Date end: ;" + data2.ToString() + "\n");

//продолжительность

global_CSVWriter.Write("Time: ;" + lblTime.Text + "\n");

//количество записей

global_CSVWriter.Write("Count: ;" + list0.Count.ToString() + "\n");

global_CSVWriter.Close();

//заблокировать кнопки

button1.Enabled = true;

button2.Enabled = false;

btnStart.Enabled = true;

}

//Начало измерений

private void btnStart_Click(object sender, EventArgs e)

{

frmConfig frmCnf = new frmConfig();

frmCnf.ShowDialog();

}

private void btnSave_Click_1(object sender, EventArgs e)

{

//Отображение диалога для сохранения

saveFileDialog1.Filter = "CSV files (*.csv)|*.csv";

saveFileDialog1.ShowDialog();

//получить имя файла

txtNameT.Text = saveFileDialog1.FileName;

button3.Enabled = true;

}

private void tabPage2_Click(object sender, EventArgs e)

{

}

private void button3_Click(object sender, EventArgs e)

{

//открыть файл для записи (Excel)

StreamWriter CSVWriter;

//получить имя файла

CSVWriter = new StreamWriter(txtNameT.Text);

//записать шапку

//записать информацию о измерениях

//время начала

CSVWriter.Write("Date start: ;" + data1.ToString() + "\n");

//время конца

CSVWriter.Write("Date end: ;" + DateTime.Now.ToString() + "\n");

//продолжительность

CSVWriter.Write("Time: ;" + (DateTime.Now - data1).ToString() + "\n");

//количество записей

CSVWriter.Write("Count: ;" + listControl0.Count.ToString() + "\n");

//цена деления

CSVWriter.Write("Frequency (ms): ;" + txtFren.Text + "\n");

//название графика

CSVWriter.Write("Name graph: ;" + zedGraphControl1.GraphPane.Title.Text +";;;"

+ zedGraphControl2.GraphPane.Title.Text + ";;;"

+ zedGraphControl3.GraphPane.Title.Text + ";;;"

+ zedGraphControl4.GraphPane.Title.Text + ";;;"

+ zedGraphControl5.GraphPane.Title.Text + "\n");

//Записываем заголовки осей Х и У

string _xAxisHeader0 = CheckCSVString(zedGraphControl1.GraphPane.XAxis.Title.Text);

string _yAxisHeader0 = CheckCSVString(zedGraphControl1.GraphPane.YAxis.Title.Text);

string _xAxisHeader1 = CheckCSVString(zedGraphControl2.GraphPane.XAxis.Title.Text);

string _yAxisHeader1 = CheckCSVString(zedGraphControl2.GraphPane.YAxis.Title.Text);

string _xAxisHeader2 = CheckCSVString(zedGraphControl3.GraphPane.XAxis.Title.Text);

string _yAxisHeader2 = CheckCSVString(zedGraphControl3.GraphPane.YAxis.Title.Text);

string _xAxisHeader3 = CheckCSVString(zedGraphControl4.GraphPane.XAxis.Title.Text);

string _yAxisHeader3 = CheckCSVString(zedGraphControl4.GraphPane.YAxis.Title.Text);

string _xAxisHeader4 = CheckCSVString(zedGraphControl5.GraphPane.XAxis.Title.Text);

string _yAxisHeader4 = CheckCSVString(zedGraphControl5.GraphPane.YAxis.Title.Text);


Подобные документы

  • Мнемосхема процесу завантаження вагонеток. Технічні характеристики та конструктивне оформлення системи управління. Розробка принципової схеми: вибір елементної бази, датчиків та основних елементів силової частини. Розрахунок енергоспоживання пристрою.

    курсовая работа [228,3 K], добавлен 14.11.2011

  • Складання логічної схеми алгоритмів при проектуванні системи управління агрегатом, формування мікрокоманд, що включають логічні та функціональні оператори. Розробка структурної та принципової схеми системи управління, її конструктивне оформлення.

    курсовая работа [1,0 M], добавлен 28.09.2011

  • Розробка мікропроцесорної системи управління роботом з контролем переміщення на базі мікроконтролера AT89C51. Розробка і опис структурної схеми мікропроцесорної системи. Відстань між світлодіодом і фототранзистором. Розробка алгоритмів програми.

    курсовая работа [2,3 M], добавлен 13.04.2013

  • Розробка та формалізація алгоритму управління вузлом виготовлення глиняного брусу на базі RS-тригерної моделі. Структурна та принципова схеми системи управління, її конструктивне оформлення. Реалізація системи на дискретних логічних елементах серії К555.

    курсовая работа [711,2 K], добавлен 30.09.2011

  • Принципи побудови акустичних датчиків. Конструкції й технічні характеристики сучасних датчиків. Аналіз можливих варіантів побудови датчиків акустичних хвиль. Принцип дії та функціональна схема термодатчика. Розрахунок порогової чутливості термодатчика.

    дипломная работа [2,5 M], добавлен 30.08.2010

  • Розробка функціональної схеми цифрової слідкуючої системи. Складання передаточних функцій її елементів. Вибір виконавчого двигуна і підсилювача потужності. Розрахунок, побудова та моделювання послідовної безперервної корегуючої ланки методом ЛАЧХ.

    курсовая работа [169,8 K], добавлен 21.04.2011

  • Розробка структурної схеми мікропроцесора. Узгодження максимальної вхідної напруги від датчиків з напругою, що може обробити МПСза допомогою дільника напруги та аналогового буферного повторювача. Система тактування та живлення. Організація виводу даних.

    курсовая работа [354,3 K], добавлен 14.12.2010

  • Основні переваги систем відеоспостереження перед іншими засобами безпеки. Обгрунтування вибору Trace Mode. Розробка загальної структури керування. Послідовність дій по реалізації. Тестування програмного забезпечення автоматичної системи управління.

    курсовая работа [1,9 M], добавлен 05.02.2015

  • Розробка цифрової радіорелейної системи передачі на базі обладнання Ericsson mini-link TN. Створення мікрохвильових вузлів мереж безпроводового зв'язку. Розробка DCN для передачі інформації сторонніх систем управління. Дослідження профілів даної РРЛ.

    контрольная работа [807,7 K], добавлен 05.02.2015

  • Проект електронного пристрою керування автономним інвертором напруги. Розробка схем мікропроцесорної системи управління перетворювачем частоти. Конструювання друкованого вузла на основі трифазного інвертора з драйвером управління та елементами захисту.

    дипломная работа [2,7 M], добавлен 17.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.