Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



 

По представленным ранее алгоритмам была написана программа учета времени работы оборудования. Для разработки данного программного продукта была выбрана среда разработки Microsoft Visual Studio и язык программирования C#. Программа состоит из 5 окон – авторизация пользователя, отображение данных для администратора, отображение данных для обычного пользователя, добавление новых цеха, оборудования, параметра, а также формирование отчета.

Все данные хранятся в базе данных, с которой происходит связь по средствам SQL-запросов.

При запуске программы появляется окно авторизации пользователя (рисунок 42), в котором необходимо ввести свои персональные данные – табельный номер и пароль – и нажать на кнопку Вход.

 

Рисунок 42 – Авторизация пользователя

 

Если пользователь вошел впервые и еще не зарегистрирован в базе данных, система предложит зарегистрироваться (рисунок 43). Для этого необходимо заполнить дополнительные поля: Ф. И. О. и Номер цеха.

Рисунок 43 – Регистрация пользователя

 

Если вошедший пользователь не имеет идентификатора администратора, то появится окно, изображенное на рисунке 44. В данном режиме доступа пользователь имеет право просматривать оборудование только того цеха, работником которого он является, а также редактировать данные только за текущую дату.

Если вошедший пользователь – Администратор, то откроется окно программы, изображенное на рисунке 45.

Данный режим доступа позволяет пользователю:

· просматривать оборудование любых цехов;

· редактировать данные за любой день;

· добавлять новую дату, которой нет в списке;

· создавать новые: оборудование, цех, параметр станка;

· формировать отчеты.

 

Рисунок 44 – Окно пользователя

 

Рисунок 45 – Окно администратора

 

При необходимости добавления или редактирования: цеха, оборудования или параметра станка, пользователь нажимает на кнопку Создать – тогда откроется окно, изображенное на рисунке 46. В данном окне вводятся (выбираются) необходимые параметры и нажимается кнопка Сохранить. После этого, данные записываются в базу данных.

 

Рисунок 46 – Окно создания (редактирования)

 

При необходимости, администратор может сформировать отчет о работе любого оборудования, любого цеха, за любой промежуток времени. Окно выбора данных для отчета представлено на рисунке 47. Также можно выбрать путь сохранения отчета. После этого, по нажатии на кнопку Сформировать, в Microsoft Word формируется отчет.

Рисунок 47 – Выбор данных для формирования отчета

 

Сформированный отчет содержит по одной таблице для каждого выбранного станка. В таблице указаны такие данные об оборудовании, как:

· Время работы оборудования – какое общее количество часов тот или иной станок был включен;

· Активное время – какое количество часов тот или иной станок работал;

· Простой по организационным причинам – какое количество часов станок простаивал из-за наладки, снятия/установки детали, контроля ОТК и т.п.;

· Простой по организационным причинам – какое количество часов тот или иной станок простаивал по причине поломки или ремонта;

· Период – с какой по какую дату представлены значения о работе того или иного станка.

Пример сформированного отчета представлен в приложении 3.

Выводы

 

В данной главе были разработаны алгоритмы и программное обеспечение для решения задачи автоматизации оперативно-календарного планирования.

Исходя из полученных исходных данных и разработанной математической модели были составлены алгоритмы, на основе которых разработана программа для оптимальной загрузки оборудования на участке станков с ЧПУ.

Данная программа дает возможность диспетчеру оперативно составлять оптимальные сменно-суточные задания для наладчиков станков с учётом текущей производственной ситуации.

Для оценки эффективности работы программы оперативно календарного планирования, а также для решения проблемы сбора данных о фактически отработанном времени станков с ЧПУ, был разработан программный модуль «Учет времени работы оборудования».

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


 

Заключение

 

При написании работы были изучены современные проблемы организации работ на станках с ЧПУ отечественных предприятий, и, в частности, на ОАО ОмПО «Иртыш». Проведенный анализ проблем позволил выделить наиболее существенные вопросы потерь рабочего времени, а также оптимизировать загрузку оборудования и сократить время простоя группы станков в среднем в два раза.

На основе полученных данных была составлена математическая модель оптимальной загрузки оборудования на участках станков с ЧПУ для решения задачи автоматизации оперативно-календарного планирования.

По разработанной математической модели были составлены алгоритмы перечисли какие алгоритмя, на основе которых построено два программных модуля:

· «Система оперативно календарного планирования загрузки станков с ЧПУ v1.0», позволяющий диспетчеру рассчитать наиболее оптимальный вариант загрузки оборудования затрачивая при этом минимальное время;

· «Учет времени работы оборудования», позволяющий отслеживать фактически отработанное время на станках с ЧПУ, а также дающий возможность увидеть и оценить эффективность использования теоретических исследований и технических разработок.

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

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

 


 

Библиографический список

 

1. studme.org. [Электронный ресурс]. [http: //studme.org/1209061323781 /menedzhment/operativno-kalendarnoe_planirovanie]

2. Дьяконов В. П. Новые информационные технологии. Учебное пособие / В.П. Дьяконов [и др.]; под ред. В. П. Дьяконова. Москва: СОЛОН-Пресс, 2008. 640 с. ISBN 5-98003-170-7

3. Guantum-int. [Электронный ресурс]. [http: //www.quantum-int.com/ru/ bibliotek/87- biblioteka/113-mes-tvolushin]

4. Wikipedia. [Электронный ресурс]. [https: //ru.wikipedia.org/wiki/Числовое программное управление]

5. Босинзон М. А. Современные системы ЧПУ и их эксплуатация. Учебное пособие для проф. образования / М. А. Босинзон; под ред. Б. И. Черпакова – 5-е изд., стер. – М.: Издательский центр «Академия», 2012. – 192 с. – ISBN 978-5-7695-9473-1

6. Ловыгин А.А., Васильев А.В. Современный станок с ЧПУ и CAD/ CAM система. А. А. Ловыгин, А. В. Васильев – М.: " Эльф ИПР", 2006. 286 с. ISBN 5-906891-60-7

7. Истомина Т.В. Автоматизированные системы управления предприятием. Диссертация на соискание ученой степени доктора экономических наук. Арсеньев, 2009 – 295 с.

8. Советов Б. Я., Яковлев С. А., Моделирование систем: Учеб. для вузов / Б. Я. Советов, С. А. Яковлев – 3-е изд., перераб. и доп. – М.: Высшая школа, 2001. – 343 с. ISBN 5-06-003860-2

9. Иванько А. Ф. Автоматизация проектирования систем и средств управления: Учебное пособие / А.Ф. Иванько, М.А. Иванько, В.Г. Сидоренко, Г.Б. Фалк – М.: Изд-во МГУП, 2011. – 148 с. ISBN 5-8122-0202-8

10. http: //studopedia.net/7_56962_analiz-ishodnih-dannih-dlya-razrabotki-tehnologicheskogo-protsessa.html

11. Майер Р.В. Компьютерное моделирование: Учебно-методическое пособие / Р. В. Майер – Глазов, Изд-во ГГПИ, 2015. –– 531 c.

12. ASCON.ru [Электронный ресурс]. [http: //machinery.ascon.ru/software /tasks/items/ЛОЦМАН: PLM]

13. Wikipedia. [Электронный ресурс]. [https: //ru.wikipedia.org/ Диаграмма Ганта]

14. Петухов, О. А. Моделирование: системное, имитационное, аналитическое: учеб. пособие / О. А. Петухов, А. В. Морозов, Е. О. Петухова. – 2-е изд., испр. и доп. – СПб.: Изд-во СЗТУ, 2008. – 288 с.

15. Красильников С. Планирование как инструмент управления: твердость или гибкость / С. Красильников // Проблемы теории и практики управления: Международный журнал. – 07/2007. – №07. – С.70-77.

16. Бухалков М. И. Внутрифирменное планирование: Учебник/ М.И. Бухалков. – М.: ИНФРА-М, 2000. – 392 с.

17. http: //www.bestreferat.ru/referat-283800.html вопрос окп (15, 16)

18. Волчкевич И. Л. Рациональное использование станков с ЧПУ в условиях многономенклатурного производства / Наука и образование: электронное научно-техническое издание МГТУ им. Н.Э. Баумана – 02/2012. – №02.

19. ГОСТ 27.004-85 «Надежность в технике. Системы технологические. Термины и определения»

20. Бурцев В. М. Технология машиностроения: в 2 т. Т 2. Производство машин: Учебник для вузов / В. М. Бурцев, А. С. Васильев, О. М. Деев и др.; под. ред. Г. Н. Мельникова. – М.: Изд-во МГТУ им. Н.Э. Баумана, 1998. – 640 с.

21. 3. Борисов С. Р., Васильев В. Н. Основы предпринимательства и организации производства. Учеб.пособие / С. Р. Борисов, В. Н. Васильев; под ред. В.Н.Васильева. – М.: «Издательство Машиностроение-1», 2000. – 752 с.

22. Волчкевич И.Л. Исследование фактической работоспособности современного высокопроизводительного оборудования с ЧПУ // Машиностроение и техносфера XXI века.: Сборник докладов XVII международной научно-технической конференции. Донецк, 2011. С. 144-145.

23. Волчкевич И. Л. Минимизация времен отладок станков с ЧПУ в условиях многономенклатурного производства // Известия Тульского государственного университета. Технические науки. 2011. Выпуск №5 в 3-х ч., Ч. 3. С. 16-21.

24. ГОСТ 7.0-99 «Межгосударственный стандарт. Система стандартов по информации, библиотечному и издательскому делу. Информационно-библиотечная деятельность, библиография. Термины и определения»

25. Иванов Д. И. Принципы организации комплексной информационной системы на примере предприятия угольной отрасли. Диссертация на соискание ученой степени кандидата экономических наук / Д. И. Иванов. – СПб., 2012. – 161с.

26.

 

 


 

Приложение 1

unit uParam;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, ToolWin, ImgList;

type

TfmParam = class(TForm)

ImageList1: TImageList;

GroupBox1: TGroupBox;

LV1: TListView;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

Button1: TButton;

Button2: TButton;

GroupBox2: TGroupBox;

LV2: TListView;

CheckBox1: TCheckBox;

ToolBar2: TToolBar;

ToolButton5: TToolButton;

procedure RefreshListKNG;

procedure ToolButton1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton5Click(Sender: TObject);

procedure LV2DblClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmParam: TfmParam;

implementation

uses uMain, uSetTime;

{$R *.dfm}

 

procedure TfmParam.RefreshListKNG;

var

i: integer;

Item: TListItem;

begin

LV1.Clear;

For i: = 0 to High(PrioritetKNG) do

begin

Item: = LV1.Items.Add;

Item.Caption: = IntToStr(i+1);

Item.SubItems.Add(IntToStr(PrioritetKNG[i]));

end;

end;

 

procedure TfmParam.ToolButton1Click(Sender: TObject);

var

i, tmp: integer;

begin

if LV1.Selected = nil then

Exit;

if LV1.Selected.Index = 0 then

Exit;

i: = LV1.Selected.Index;

tmp: = PrioritetKNG[i-1];

PrioritetKNG[i-1]: = PrioritetKNG[i];

PrioritetKNG[i]: = tmp;

RefreshListKNG;

LV1.Items.Item[i-1].Selected: = true;

end;

 

procedure TfmParam.FormShow(Sender: TObject);

var

i, j: integer;

Item: TListItem;

dtStart: TDate;

tmStart: real;

begin

RefreshListKNG;

//--

LV2.Clear;

For i: = 0 to High(Groups) do

For j: = 0 to High(Groups[i].arrObr) do

begin

Item: = fmParam.LV2.Items.Add;

Item.Caption: = Groups[i].arrObr[j].stName;

fmMain.GetDateTimeEnd(i, j, dtStart, tmStart);

Item.SubItems.Add(DateToStr(dtStart)+' '+ConvertMin(Round(tmStart)));

Item.SubItems.Add(IntToStr(i));

Item.SubItems.Add(IntToStr(j));

Item.ImageIndex: = 3;

Item.Checked: = true;

end;

end;

 

procedure TfmParam.Button1Click(Sender: TObject);

begin

ok: = true;

okkng: = CheckBox1.Checked;

Close;

end;

 

procedure TfmParam.Button2Click(Sender: TObject);

begin

ok: = false;

Close;

end;

procedure TfmParam.ToolButton2Click(Sender: TObject);

var

i, tmp: integer;

begin

if LV1.Selected = nil then

Exit;

if LV1.Selected.Index = High(PrioritetKNG) then

Exit;

i: = LV1.Selected.Index;

tmp: = PrioritetKNG[i+1];

PrioritetKNG[i+1]: = PrioritetKNG[i];

PrioritetKNG[i]: = tmp;

RefreshListKNG;

LV1.Items.Item[i+1].Selected: = true;

end;

 

procedure TfmParam.ToolButton5Click(Sender: TObject);

var

st: string;

begin

if LV2.Selected = nil then

Exit;

st: = LV2.Selected.SubItems.Strings[0];

fmSetTime.ME1.Text: = st;

fmSetTime.DTP1.Date: = StrToDate(copy(st, 1, 10));

fmSetTime.ShowModal;

end;

 

procedure TfmParam.LV2DblClick(Sender: TObject);

begin

ToolButton5Click(nil);

end;

end.

 

 


 

Приложение 2

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 System.Data.SqlClient;

namespace UchetVremeniRabotiStancov

{

public partial class Form4: Form

{

string query, den1Con, mes1Con, data1, time;

List< string> nameCexa = new List< string> ();

List< string> parametriStanka = new List< string> ();

List< string> vremennaja = new List< string> ();

List< string> stanok = new List< string> ();

List< string> idPS = new List< string> ();

List< string> date = new List< string> ();

DateTime ddd1 = new DateTime();

int i, a, s, d, denCon, mesCon, godCon;

SqlConnection cn = new SqlConnection(@" Password=paradigma5; Persist Security Info=True; User ID=ViewUser; Initial Catalog=ERP; Data Source=172.16.0.8" );

public Form4()

{

InitializeComponent();

}

 

private void Form4_Load(object sender, EventArgs e)

{

try//попытка подкючения к серверу

{

cn.Open(); //открытие подключения к базе данных

}

catch (Exception ex)//если не подключился

{

MessageBox.Show(ex.Message); //сообщение об ошибке

}

NewCex();

NewOborudov();

NewParametr();

}

 

public void NameCexa()

{

nameCexa.Clear();

SqlCommand QueryAllData = new SqlCommand(query, cn);

SqlDataReader reader = QueryAllData.ExecuteReader();

while (reader.Read())//пока reader не пустой, считывать

{

nameCexa.Add(reader[0].ToString());

}

reader.Close(); //закрытие потока чтения

}

 

public void Vremennaja()

{

vremennaja.Clear();

SqlCommand QueryAllData = new SqlCommand(query, cn);

SqlDataReader reader = QueryAllData.ExecuteReader();

while (reader.Read())//пока reader не пустой, считывать

{

vremennaja.Add(reader[0].ToString());

}

reader.Close(); //закрытие потока чтения

}

 

public void Stanok()

{

stanok.Clear();

SqlCommand QueryAllData = new SqlCommand(query, cn);

SqlDataReader reader = QueryAllData.ExecuteReader();

while (reader.Read())//пока reader не пустой, считывать

{

stanok.Add(reader[0].ToString());

}

reader.Close(); //закрытие потока чтения

}

 

public void ParametriStanka()

{

parametriStanka.Clear();

SqlCommand QueryAllData = new SqlCommand(query, cn);

SqlDataReader reader = QueryAllData.ExecuteReader();

while (reader.Read())//пока reader не пустой, считывать

{

parametriStanka.Add(reader[0].ToString());

}

reader.Close(); //закрытие потока чтения

}

 

public void IDPS()

{

idPS.Clear();

SqlCommand QueryAllData = new SqlCommand(query, cn);

SqlDataReader reader = QueryAllData.ExecuteReader();

while (reader.Read())//пока reader не пустой, считывать

{

idPS.Add(reader[0].ToString());

}

reader.Close(); //закрытие потока чтения

}

 

public void Date()

{

date.Clear();

SqlCommand QueryAllData = new SqlCommand(query, cn);

SqlDataReader reader = QueryAllData.ExecuteReader();

while (reader.Read())//пока reader не пустой, считывать

{

date.Add(reader[0].ToString());

}

reader.Close(); //закрытие потока чтения

}

 

public void ConvertorData(string qqq)//Конвертация даты

{

ddd1 = Convert.ToDateTime(qqq); //конвертация в дату переданной в процедуру строки

denCon = ddd1.Day; //извлечение дня из даты

den1Con = denCon.ToString(); //перевод в строку полученного дня

if (den1Con.Length! = 2) den1Con = " 0" + denCon.ToString();

mesCon = ddd1.Month; //извлечение месяца из даты

mes1Con = mesCon.ToString(); //перевод в строку полученного месяца

if (mes1Con.Length! = 2) mes1Con = " 0" + mesCon.ToString();

godCon = ddd1.Year; //извлечение года из даты

time = ddd1.TimeOfDay.ToString(); //извлечение времени из даты и перевод его в строку

data1 = godCon.ToString() + " -" + mes1Con + " -" + den1Con + " " + time;

}

 

private void button1_Click(object sender, EventArgs e)//Сохранить

{

if (checkBox1.Checked == true) //если выбрано Номер цеха

{

if (comboBox1.Text! = " " & & comboBox4.Text! = " " )

{

SqlCommand SQLCommand = cn.CreateCommand(); //создание SQL комнады

query = " SELECT NomerCexa from NameCexa where(NomerCexa='" + comboBox1.Text + " ')";

NameCexa();

if (nameCexa.Count == 0)

{

SQLCommand.CommandText = " INSERT INTO NameCexa (NomerCexa, NameCexa, SaveIn) VALUES (@NomerCexa, @NameCexa, @SaveIn)";

SQLCommand.Parameters.AddWithValue(" @NomerCexa", comboBox1.Text);

SQLCommand.Parameters.AddWithValue(" @NameCexa", comboBox4.Text);

SQLCommand.Parameters.AddWithValue(" @SaveIn", " " );

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

NewCex();

}

else MessageBox.Show(" Цех № " + comboBox1.Text + " уже существует.", " ОШИБКА! " );

}

else MessageBox.Show(" Поля ''Номер цеха'' и ''Заголовок таблицы'' должны быть заполнены.", " ОШИБКА! " ); // если хотя бы одно из двух первых полей пустое - ОШИБКА

}

if (checkBox2.Checked == true) //если выбрано Изменить заголовок

{

if (comboBox1.Text! = " " & & comboBox4.Text! = " " )

{

SqlCommand SQLCommand = cn.CreateCommand(); //создание SQL комнады

SQLCommand.CommandText = " UPDATE NameCexa SET NameCexa='" + comboBox4.Text + " ' where (NomerCexa='" + comboBox1.Text + " ')";

SQLCommand.Parameters.AddWithValue(" @NameCexa", comboBox4.Text);

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

NewCex();

}

else MessageBox.Show(" Поля ''Номер цеха'' и ''Заголовок таблицы'' должны быть заполнены.", " ОШИБКА! " ); // если хотя бы одно из двух первых полей пустое - ОШИБКА

}

if (checkBox3.Checked == true) //если выбрано создание Нового оборудования

{

if (comboBox1.Text! = " " & & comboBox2.Text! = " " )

{

SqlCommand SQLCommand = cn.CreateCommand(); //создание SQL комнады

query = " SELECT NameStanka from Stanki where(Cex='" + comboBox1.Text + " ') and (NameStanka='" + comboBox2.Text + " ')";

Stanok();

if (stanok.Count == 0)

{

SQLCommand.Parameters.Clear(); //очищение SQLCommand

SQLCommand.CommandText = " INSERT INTO Stanki (Cex, NameStanka) VALUES (@Cex, @NameStanka)";

 

SQLCommand.Parameters.AddWithValue(" @Cex", comboBox1.Text);

SQLCommand.Parameters.AddWithValue(" @NameStanka", comboBox2.Text);

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

query = " SELECT IdStanka FROM Stanki where(Cex='" + comboBox1.Text + " ') and (NameStanka='" + comboBox2.Text + " ')";

Stanok();

SQLCommand.Parameters.Clear(); //очищение SQLCommand

SQLCommand.CommandText = " INSERT INTO ParametriStanka (IdParam, IdStanka) VALUES (@IdParam, @IdStanka)";

SQLCommand.Parameters.AddWithValue(" @IdParam", 5);

SQLCommand.Parameters.AddWithValue(" @IdStanka", stanok[0]);

SQLCommand.ExecuteNonQuery();

query = " SELECT DISTINCT IdPS FROM ParametriStanka WHERE (IdParam = 5) AND (IdStanka = " + stanok[0] + " )";

IDPS();

query = " SELECT DISTINCT Date FROM ZnachenieParam2 WHERE (NomerCexa = " + comboBox1.Text + " )";

Date();

for (i=0; i< date.Count; i++)

{

ConvertorData(date[i]);

SQLCommand.Parameters.Clear(); //очищение SQLCommand

SQLCommand.CommandText = " INSERT INTO ZnachenieParam2 (IdPS, Znachenie, NomerCexa, Date, FIO) VALUES (@IdPS, @Znachenie, @NomerCexa, @Date, @FIO)";

SQLCommand.Parameters.AddWithValue(" @IdPS", idPS[0]);

SQLCommand.Parameters.AddWithValue(" @Znachenie", " 0" );

SQLCommand.Parameters.AddWithValue(" @NomerCexa", comboBox1.Text);

SQLCommand.Parameters.AddWithValue(" @Date", data1);

SQLCommand.Parameters.AddWithValue(" @FIO", " ФИРСТОВ В. В." );

SQLCommand.ExecuteNonQuery();

}

NewOborudov();

}

else MessageBox.Show(" Оборудование ''" + comboBox2.Text + " '' для цеха № " + comboBox1.Text + " уже существует.", " ОШИБКА! " );

}

else MessageBox.Show(" Поля ''Номер цеха'' и ''Наименование оборудования'' должны быть заполнены.", " ОШИБКА! " ); // если хотя бы одно из трёх первых полей пустое - ОШИБКА

}

if (checkBox4.Checked == true) //если выбрано создание Нового параметра

{

if (comboBox1.Text! = " " & & comboBox2.Text! = " " & & comboBox3.Text! = " " )

{

SqlCommand SQLCommand = cn.CreateCommand(); //создание SQL комнады

query = " SELECT IdParam FROM Parametri where (NameParam='" + comboBox3.Text + " ')"; //есть ли такой параметр в таблице Parametri1?

Vremennaja();

if (vremennaja.Count == 0)

{

//SQLCommand.Parameters.Clear(); //очищение SQLCommand

SQLCommand.CommandText = " INSERT INTO Parametri (NameParam) VALUES (@NameParam)";

SQLCommand.Parameters.AddWithValue(" @NameParam", comboBox3.Text);

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

query = " SELECT IdParam FROM Parametri where (NameParam='" + comboBox3.Text + " ')"; //есть ли такой параметр в таблице Parametri1?

Vremennaja();

query = " SELECT IdStanka FROM Stanki WHERE (Cex='" + comboBox1.Text + " ') and (NameStanka='" + comboBox2.Text + " ')";

Stanok();

if (stanok.Count == 0) MessageBox.Show(" Оборудование ''" + comboBox2.Text + " '' для цеха № " + comboBox1.Text + " не существует.", " ОШИБКА! " );

else

{

query = " SELECT IdPS FROM ParametriStanka WHERE (IdParam='" + vremennaja[0] + " ') and (IdStanka='" + stanok[0] + " ')";

ParametriStanka();

if (parametriStanka.Count! = 0) MessageBox.Show(" Параметр ''" + comboBox3.Text + " '' оборудования ''" + comboBox2.Text + " '' для цеха № " + comboBox1.Text + " уже существует.", " ОШИБКА! " );

else

{

//SQLCommand.Parameters.Clear(); //очищение SQLCommand

SQLCommand.CommandText = " INSERT INTO ParametriStanka (IdParam, IdStanka) VALUES (@IdParam, @IdStanka)";

SQLCommand.Parameters.AddWithValue(" @IdParam", vremennaja[0]);

SQLCommand.Parameters.AddWithValue(" @IdStanka", stanok[0]);

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

query = " SELECT IdPS FROM ParametriStanka WHERE (IdParam='" + vremennaja[0] + " ') AND (IdStanka='" + stanok[0] + " ')";

IDPS();

query = " SELECT DISTINCT Date FROM ZnachenieParam2 WHERE (NomerCexa='" + comboBox1.Text + " ')";

Date();

for (i = 0; i < date.Count; i++)

{

ConvertorData(date[i]);

SQLCommand.Parameters.Clear(); //очищение SQLCommand

SQLCommand.CommandText = " INSERT INTO ZnachenieParam2 (IdPS, Znachenie, NomerCexa, Date, FIO) VALUES (@IdPS, @Znachenie, @NomerCexa, @Date, @FIO)";

SQLCommand.Parameters.AddWithValue(" @Date", data1);

SQLCommand.Parameters.AddWithValue(" @FIO", " ФИРСТОВ В. В." );

SQLCommand.Parameters.AddWithValue(" @IdPS", idPS[0]);

SQLCommand.Parameters.AddWithValue(" @Znachenie", 0);

SQLCommand.Parameters.AddWithValue(" @NomerCexa", comboBox1.Text);

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

}

}

}

NewParametr();

}

else//если такой параметр существует

{

query = " SELECT IdParam FROM Parametri where (NameParam='" + comboBox3.Text + " ')"; //есть ли такой параметр в таблице Parametri1?

Vremennaja();

query = " SELECT IdStanka FROM Stanki WHERE (Cex='" + comboBox1.Text + " ') and (NameStanka='" + comboBox2.Text + " ')";

Stanok();

if (stanok.Count == 0) MessageBox.Show(" Оборудование ''" + comboBox2.Text + " '' для цеха № " + comboBox1.Text + " не существует.", " ОШИБКА! " );

else

{

query = " SELECT IdPS FROM ParametriStanka WHERE (IdParam='" + vremennaja[0] + " ') and (IdStanka='" + stanok[0] + " ')";

ParametriStanka();

if (parametriStanka.Count! = 0) MessageBox.Show(" Параметр ''" + comboBox3.Text + " '' оборудования ''" + comboBox2.Text + " '' для цеха № " + comboBox1.Text + " уже существует.", " ОШИБКА! " );

else

{

SQLCommand.CommandText = " INSERT INTO ParametriStanka (IdParam, IdStanka) VALUES (@IdParam, @IdStanka)";

SQLCommand.Parameters.AddWithValue(" @IdParam", vremennaja[0]);

SQLCommand.Parameters.AddWithValue(" @IdStanka", stanok[0]);

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

query = " SELECT IdPS FROM ParametriStanka WHERE (IdParam='" + vremennaja[0] + " ') AND (IdStanka='" + stanok[0] + " ')";

IDPS();

query = " SELECT DISTINCT Date FROM ZnachenieParam2 WHERE (NomerCexa='" + comboBox1.Text + " ')";

Date();

for (i = 0; i < date.Count; i++)

{

ConvertorData(date[i]);

SQLCommand.Parameters.Clear(); //очищение SQLCommand

SQLCommand.CommandText = " INSERT INTO ZnachenieParam2 (IdPS, Znachenie, NomerCexa, Date, FIO) VALUES (@IdPS, @Znachenie, @NomerCexa, @Date, @FIO)";

SQLCommand.Parameters.AddWithValue(" @IdPS", idPS[0]);

SQLCommand.Parameters.AddWithValue(" @Znachenie", 0);

SQLCommand.Parameters.AddWithValue(" @NomerCexa", comboBox1.Text);

SQLCommand.Parameters.AddWithValue(" @Date", data1);

SQLCommand.Parameters.AddWithValue(" @FIO", " ФИРСТОВ В. В." );

SQLCommand.ExecuteNonQuery(); //выполнение SQL команды

}

}

}

}

NewParametr();

}

else MessageBox.Show(" Поля ''Номер цеха'', ''Наименование оборудования'' и ''Наименование параметра оборудования'' должны быть заполнены.", " ОШИБКА! " );

}

checkBox1.Checked = false; //снятие галочек с checkBox

checkBox2.Checked = false;

checkBox3.Checked = false;

checkBox4.Checked = false;

checkBox1.Enabled = true; //разблокировка всех checkBox

checkBox2.Enabled = true;

checkBox3.Enabled = true;

checkBox4.Enabled = true;

comboBox1.DropDownStyle = ComboBoxStyle.DropDown;

comboBox4.DropDownStyle = ComboBoxStyle.DropDown;

comboBox2.DropDownStyle = ComboBoxStyle.DropDown;

comboBox3.DropDownStyle = ComboBoxStyle.DropDown;

comboBox1.Text = " ";

comboBox4.Text = " ";

comboBox2.Text = " ";

comboBox3.Text = " ";

label1.Enabled = false; //блокировка подписей и полей для ввода/выбора данных

comboBox1.Enabled = false;

label2.Enabled = false;

comboBox4.Visible = true;

comboBox4.Enabled = false;

textBox1.Visible = false;

label3.Enabled = false;

comboBox2.Enabled = false;

label4.Enabled = false;

comboBox3.Enabled = false;

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

if (checkBox1.Checked == true)

{

checkBox2.Enabled = false;

checkBox3.Enabled = false;

checkBox4.Enabled = false;

label1.Enabled = true;

comboBox1.Enabled = true;

label2.Enabled = true;

comboBox4.Enabled = true;

}

else

{

checkBox2.Enabled = true;

checkBox3.Enabled = true;

checkBox4.Enabled = true;

label1.Enabled = false;

comboBox1.Enabled = false;

label2.Enabled = false;

comboBox4.Enabled = false;

}

}

 

private void checkBox2_CheckedChanged(object sender, EventArgs e)

{

if (checkBox2.Checked == true)

{

checkBox1.Enabled = false;

checkBox3.Enabled = false;

checkBox4.Enabled = false;

label1.Enabled = true;

comboBox1.Enabled = true;

label2.Enabled = true;

comboBox4.Enabled = true;

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; //только для чтения

}

else

{

checkBox1.Enabled = true;

checkBox3.Enabled = true;

checkBox4.Enabled = true;

label1.Enabled = false;

comboBox1.Enabled = false;

label2.Enabled = false;

comboBox4.Enabled = false;

comboBox1.DropDownStyle = ComboBoxStyle.DropDown; //только для чтения

}

}

 

private void checkBox3_CheckedChanged(object sender, EventArgs e)

{

if (checkBox3.Checked == true)

{

checkBox1.Enabled = false;

checkBox2.Enabled = false;

checkBox4.Enabled = false;

label1.Enabled = true;

comboBox1.Enabled = true;

label3.Enabled = true;

comboBox2.Enabled = true;

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; //только для чтения

textBox1.ReadOnly = true;

}

else

{

checkBox1.Enabled = true;

checkBox2.Enabled = true;

checkBox4.Enabled = true;

label1.Enabled = false;

comboBox1.Enabled = false;

label3.Enabled = false;

comboBox2.Enabled = false;

comboBox1.DropDownStyle = ComboBoxStyle.DropDown; //только для чтения

textBox1.ReadOnly = false;

}

}

 

private void checkBox4_CheckedChanged(object sender, EventArgs e)

{

if (checkBox4.Checked == true)

{

checkBox1.Enabled = false;

checkBox3.Enabled = false;

checkBox2.Enabled = false;

label1.Enabled = true;

comboBox1.Enabled = true;

label3.Enabled = true;

comboBox2.Enabled = true;

label4.Enabled = true;

comboBox3.Enabled = true;

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; //только для чтения

comboBox2.DropDownStyle = ComboBoxStyle.DropDownList; //только для чтения

}

else

{

checkBox1.Enabled = true;

checkBox3.Enabled = true;

checkBox2.Enabled = true;

label1.Enabled = false;

comboBox1.Enabled = false;

label3.Enabled = false;

comboBox2.Enabled = false;

label4.Enabled = false;

comboBox3.Enabled = false;

comboBox1.DropDownStyle = ComboBoxStyle.DropDown; //только для чтения

comboBox2.DropDownStyle = ComboBoxStyle.DropDown; //только для чтения

}

}

 

public void NewCex()

{

comboBox1.Items.Clear();

comboBox4.Items.Clear();

query = (" select DISTINCT NomerCexa from NameCexa " );

NameCexa();

for (i = 0; i < nameCexa.Count; i++)

{

comboBox1.Items.Add(nameCexa[i]);

}

for (a = 0; a < nameCexa.Count; a++)

{

query = (" select DISTINCT NameCexa from NameCexa where (NomerCexa='" + nameCexa[a] + " ')" );

Vremennaja();

for (s = 0; s < vremennaja.Count; s++)

{

comboBox4.Items.Add(vremennaja[s]);

}

}

}

 

public void NewOborudov()

{

comboBox2.Items.Clear();

query = (" select DISTINCT NameStanka from Stanki" );

Stanok();

for (s = 0; s < stanok.Count; s++)

{

comboBox2.Items.Add(stanok[s]);

}

}

 

public void NewParametr()

{

comboBox3.Items.Clear();

query = (" SELECT DISTINCT NameParam FROM Parametri WHERE (IdParam< > '5')" );

ParametriStanka();

for (s = 0; s < parametriStanka.Count; s++)

{

comboBox3.Items.Add(parametriStanka[s]);

}

}

}

}

 

 


 

Приложение 3

 

Период DMG 3-1
Время работы Активное время Простой, часов
Организационные причины Технические причины
5.ноя-6.ноя
6.ноя-7.ноя
7.ноя-8.ноя
8.ноя-10.ноя
10.ноя-11.ноя
11.ноя-12.ноя
12.ноя-13.ноя
13.ноя-14.ноя
14.ноя-17.ноя
17.ноя-19.ноя
19.ноя-20.ноя
20.ноя-24.ноя
24.ноя-25.ноя
25.ноя-26.ноя
26.ноя-27.ноя
27.ноя-28.ноя
28.ноя-1.дек
1.дек-2.дек
За период
Среднее в сутки 21, 93 11, 52 10, 41

 

Период DMG 3-2
Время работы Активное время Простой, часов
Организационные причины Технические причины
5.ноя-6.ноя
6.ноя-7.ноя
7.ноя-8.ноя
8.ноя-10.ноя
10.ноя-11.ноя
11.ноя-12.ноя
12.ноя-13.ноя
13.ноя-14.ноя
14.ноя-17.ноя
17.ноя-19.ноя
19.ноя-20.ноя
20.ноя-24.ноя
24.ноя-25.ноя
25.ноя-26.ноя
26.ноя-27.ноя
27.ноя-28.ноя
28.ноя-1.дек
1.дек-2.дек
За период
Среднее в сутки 22, 34 13, 24 9, 1

 

Период DMG 3-4
Время работы Активное время Простой, часов
Организационные причины Технические причины
5.ноя-6.ноя
6.ноя-7.ноя
7.ноя-8.ноя
8.ноя-10.ноя
10.ноя-11.ноя
11.ноя-12.ноя
12.ноя-13.ноя
13.ноя-14.ноя
14.ноя-17.ноя
17.ноя-19.ноя
19.ноя-20.ноя
20.ноя-24.ноя
24.ноя-25.ноя
25.ноя-26.ноя
26.ноя-27.ноя
27.ноя-28.ноя
28.ноя-1.дек
1.дек-2.дек
За период
Среднее в сутки 21, 72 11, 93 9, 79

 

 

Период DMG 5-2
Время работы Активное время Простой, часов
Организационные причины Технические причины
5.ноя-6.ноя
6.ноя-7.ноя
7.ноя-8.ноя
8.ноя-10.ноя
10.ноя-11.ноя
11.ноя-12.ноя
12.ноя-13.ноя
13.ноя-14.ноя
14.ноя-17.ноя
17.ноя-19.ноя
19.ноя-20.ноя
20.ноя-24.ноя
24.ноя-25.ноя
25.ноя-26.ноя
26.ноя-27.ноя
27.ноя-28.ноя
28.ноя-1.дек
1.дек-2.дек
За период
Среднее в сутки 22, 28 13, 69 8, 59

 

Период DMG 5-3
Время работы Активное время Простой, часов
Организационные причины Технические причины
5.ноя-6.ноя -24
6.ноя-7.ноя
7.ноя-8.ноя -24
8.ноя-10.ноя
10.ноя-11.ноя -24
11.ноя-12.ноя -24
12.ноя-13.ноя -24
13.ноя-14.ноя -24
14.ноя-17.ноя -24
17.ноя-19.ноя -24
19.ноя-20.ноя -24
20.ноя-24.ноя -24
24.ноя-25.ноя -24
25.ноя-26.ноя -24
26.ноя-27.ноя -24
27.ноя-28.ноя -6311
28.ноя-1.дек -34
1.дек-2.дек -24
За период -6681
Среднее в сутки 217, 14 -230, 38 13, 24

 

Период DMG 5-4
Время работы Активное время Простой, часов
Организационные причины Технические причины
5.ноя-6.ноя
6.ноя-7.ноя
7.ноя-8.ноя
8.ноя-10.ноя
10.ноя-11.ноя
11.ноя-12.ноя
12.ноя-13.ноя
13.ноя-14.ноя
14.ноя-17.ноя
17.ноя-19.ноя
19.ноя-20.ноя
20.ноя-24.ноя
24.ноя-25.ноя
25.ноя-26.ноя
26.ноя-27.ноя
27.ноя-28.ноя
28.ноя-1.дек
1.дек-2.дек
За период
Среднее в сутки 18, 59 9, 48 9, 1

 

 


 

Приложение 4

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-13; Просмотров: 898; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.388 с.)
Главная | Случайная страница | Обратная связь