Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Poyasnitelnaya_zapiska_ukr_variant_polnostyu_go...doc
Скачиваний:
5
Добавлен:
08.09.2019
Размер:
1.85 Mб
Скачать

Додаток а

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

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

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

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 -------------------------------------------

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]