Выбор методов и средств контроля системы управления компрессорной установкой
Цели производственного контроля изготовления молочных продуктов. Разработка системы управления компрессорной установкой в составе технологического процесса переработки молока на предприятии ТОО "Восток-Молоко". Программная реализация системы управления.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 16.05.2013 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
SaveVal (frmMain. ProgressCyl8. Tag, nMasTvor,1);
SaveVal (frmMain. ProgressCyl9. Tag, nMasOxl,1);
SaveVal (frmMain. ProgressCyl10. Tag, nMasRez,1);
frmMain. Label39. Caption: = 'T ';
frmMain. Label40. Caption: = 'P ';
setSlivAnimation (2);
end;
procedure TSliv. setProc;
var nRan, T1, P1: Integer;
begin
// если в ванне1 больше 3 - масса в ванне1 уменьшается на 3
if nMasVan1 > 3 then
begin
// по 1 кг закинем
if nMasTvor < nMaxTvor then
begin
nMasTvor: = nMasTvor + 1;
nMasVan1: = nMasVan1 - 1;
end;
if nMasRez < nMaxRez then
begin
nMasRez: = nMasRez + 1;
nMasVan1: = nMasVan1 - 1;
end;
if nMasOxl < nMaxOxl then
begin
nMasOxl: = nMasOxl + 1;
nMasVan1: = nMasVan1 - 1;
end;
end;
// если в ванне2 больше 2 - масса в ванне2 уменьшается на 2
if nMasVan2 > 2 then
begin
// по 1 кг закинем
if nMasSep < nMaxSep then
begin
nMasSep: = nMasSep + 1;
nMasVan2: = nMasVan2 - 1;
end;
if nMasVan3 < nMaxVan3 then
begin
nMasVan3: = nMasVan3 + 1;
nMasVan2: = nMasVan2 - 1;
end;
end;
if (nMasVan1<=3) and (nMasVan2<=2) then
begin
isSliv: = False;
setSlivAnimation (2);
end;
// параметры
T1: = getParVal (3);
P1: = getParVal (4);
frmMain. Label39. Caption: = 'T ' + IntToStr (T1);
frmMain. Label40. Caption: = 'P ' + IntToStr (P1);
frmMain. ProgressCyl3. Position: = nMasVan1;
frmMain. ProgressCyl4. Position: = nMasVan2;
frmMain. ProgressCyl5. Position: = nMasSep;
frmMain. Label28. Caption: = IntToStr (nMasSep) +' кг. ';
frmMain. ProgressCyl6. Position: = nMasVan3;
frmMain. Label29. Caption: = IntToStr (nMasVan3) +' кг. ';
frmMain. ProgressCyl8. Position: = nMasTvor;
frmMain. Label22. Caption: = IntToStr (nMasTvor) +' кг. ';
frmMain. ProgressCyl10. Position: = nMasRez;
frmMain. Label24. Caption: = IntToStr (nMasRez) +' кг. ';
frmMain. ProgressCyl9. Position: = nMasOxl;
frmMain. Label23. Caption: = IntToStr (nMasOxl) +' кг. ';
nRan: = frmMain. TrackBar4. Position * 100;
Sleep (nRan);
end;
end.
unit Vedom;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, DateUtils, ComObj;
type
TfrmVedom = class (TForm)
Bevel1: TBevel;
Label1: TLabel;
DateTimePicker1: TDateTimePicker;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click (Sender: TObject);
procedure BitBtn1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmVedom: TfrmVedom;
implementation
uses DM, Main, Util, DB;
{$R *. dfm}
procedure TfrmVedom. BitBtn2Click (Sender: TObject);
begin
Close;
end;
procedure TfrmVedom. BitBtn1Click (Sender: TObject);
var dDat: TDate;
i: Integer;
cDat, cDat1, cDat2, cSmena1, cSmena2: String;
oExcel: Variant;
begin
dDat: = DateTimePicker1. Date;
cDat1: = IntToStr (MonthOf (dDat)) +'/'+IntToStr (DayOf (dDat)) +'/'+IntToStr (YearOf (dDat)) + ' 00: 01: 00';
cDat2: = IntToStr (MonthOf (dDat)) +'/'+IntToStr (DayOf (dDat)) +'/'+IntToStr (YearOf (dDat)) + ' 23: 59: 59';
// узнать, работали ли смены в этот день
dt. qSmena. Close;
dt. qSmena. sql. Clear;
dt. qSmena. SQL. Add ('SELECT s_smena. nam, d_process. dtime, s_process. nam_process, s_bak. nam_bak, d_process. val');
dt. qSmena. SQL. Add ('FROM s_bak INNER JOIN (s_process INNER JOIN (s_smena INNER JOIN d_process ON s_smena. id_smena = d_process. id_smena) ');
dt. qSmena. SQL. Add ('ON s_process. id_process = d_process. id_process) ON s_bak. id_bak = d_process. id_bak');
dt. qSmena. SQL. Add ('WHERE d_process. dtime>=#'+cDat1+'# and dtime<=#'+cDat2+'# order by d_process. dtime');
dt. qSmena. Open;
if dt. qSmena. RecordCount = 0 then
begin
ShowMessage ('Пустая выборка. Данных за выбранный день нет. ');
Exit;
end;
// ************* EXCEL ************** //
if not CopyFile (PChar (gcExePath + 'Rep1. xls'), PChar (gcExePath+'Report1. xls'), False) then
begin
ShowMessage ('Ошибка копирования макета отчета. Продолжение невозможно. ');
Exit;
end;
oExcel: = CreateOleObject ('Excel. Application');
oExcel. Application. Visible: = False;
oExcel. WorkBooks. Open (gcExePath+'Report1. xls');
oExcel. Range ['e1']. value: = DateToStr (dDat);
i: = 5;
cSmena2: = '';
while not dt. qSmena. Eof do
begin
cSmena1: = dt. qSmena. FieldByName ('nam'). AsString;
if cSmena1 <> cSmena2 then oExcel. Range ['A'+IntToStr (i)]. Value: = cSmena1;
oExcel. Range ['B'+IntToStr (i)]. Value: = dt. qSmena. FieldByName ('dtime'). AsString;
oExcel. Range ['C'+IntToStr (i)]. Value: = dt. qSmena. FieldByName ('nam_process'). AsString;
oExcel. Range ['D'+IntToStr (i)]. Value: = dt. qSmena. FieldByName ('nam_bak'). AsString;
oExcel. Range ['E'+IntToStr (i)]. Value: = dt. qSmena. FieldByName ('val'). AsString;
i: = i + 1;
cSmena2: = cSmena1;
dt. qSmena. Next;
end;
oExcel. Application. ActiveWorkbook. Save;
oExcel. Application. Visible: = True;
end;
end.
unit Stakan;
interface
uses
Classes;
type
TStakan = class (TThread)
private
{ Private declarations }
protected
procedure Execute; override;
procedure setProc;
end;
implementation
uses DM, Main, Util, SysUtils;
var nMassVann, nMassXol, nMaxXol: Integer;
{ TStakan }
procedure TStakan. Execute;
begin
// массы в ванне и сепараторе
nMassVann: = getValBak (frmMain. ProgressCyl6. Tag);
nMassXol: = getValBak (frmMain. ProgressCyl12. Tag);
nMaxXol: = getMaxValBak (frmMain. ProgressCyl12. Tag);
// если на весах нету молока, или на весах все занято - тогда выход
if (nMassVann=0) or (nMassXol>=nMaxXol) then
begin
frmMain. SpeedButton13. Enabled: = True;
frmMain. Animate15. Active: = false;
frmMain. Animate16. Visible: = false;
frmMain. Animate16. Active: = false;
frmMain. Animate17. Visible: = false;
frmMain. Animate17. Active: = false;
frmMain. Animate18. Visible: = false;
frmMain. Animate18. Active: = false;
isStakan: = False;
Exit;
end;
frmMain. Animate15. Active: = true;
frmMain. Animate16. Visible: = true;
frmMain. Animate16. Active: = true;
frmMain. Animate17. Visible: = true;
frmMain. Animate17. Active: = true;
frmMain. Animate18. Visible: = true;
frmMain. Animate18. Active: = true;
// продолжать загрузку пока не будет команды "СТОП"
while isStakan = True do
begin
Synchronize (setProc);
end;
// запись в остаток
SaveVal (frmMain. ProgressCyl6. Tag, nMassVann,2);
SaveVal (frmMain. ProgressCyl12. Tag, nMassXol,1);
frmMain. SpeedButton13. Enabled: = True;
frmMain. Animate15. Active: = false;
frmMain. Animate16. Visible: = false;
frmMain. Animate16. Active: = false;
frmMain. Animate17. Visible: = false;
frmMain. Animate17. Active: = false;
frmMain. Animate18. Visible: = false;
frmMain. Animate18. Active: = false;
end;
procedure TStakan. setProc;
begin
// масса на весах уменьшается
nMassVann: = nMassVann - 1;
// масса в ванне увеличивается
nMassXol: = nMassXol + 1;
// если в баке кончилось или на весах максимум, тогда стоп
if (nMassVann = 0) or (nMassXol>=nMaxXol) then
begin
isStakan: = False;
frmMain. Animate15. Active: = false;
frmMain. Animate16. Visible: = false;
frmMain. Animate16. Active: = false;
frmMain. Animate17. Visible: = false;
frmMain. Animate17. Active: = false;
frmMain. Animate18. Visible: = false;
frmMain. Animate18. Active: = false;
end;
frmMain. ProgressCyl6. Position: = nMassVann;
frmMain. Label29. Caption: = IntToStr (nMassVann) +' кг. ';
frmMain. ProgressCyl12. Position: = nMassXol;
frmMain. Label26. Caption: = IntToStr (nMassXol) +' кг. ';
Sleep (300);
end;
end.
unit Bak_Zagr;
interface
uses
Classes;
type
TBak_zagr = class (TThread)
private
{ Private declarations }
protected
procedure Execute; override;
procedure setProc;
end;
implementation
uses DM, Main, Util, SysUtils;
var nMass, nMax: Integer;
{ Bak_zagr }
procedure TBak_zagr. Execute;
// var nMass, nMax: Integer;
begin
// сколько в баке лежит, MAX
nMass: = getValBak (frmMain. ProgressCyl1. Tag);
nMax: = getMaxValBak (frmMain. ProgressCyl1. Tag);
// продолжать загрузку пока не будет команды "СТОП"
while (isBak_zagr = True) do
begin
Synchronize (setProc);
end;
// запись в остаток
SaveVal (frmMain. ProgressCyl1. Tag, nMass,1);
frmMain. SpeedButton1. Enabled: = True;
end;
procedure TBak_zagr. setProc;
begin
nMass: = nMass + 1;
// если в баке максимум, тогда стоп
if nMass >= nMax then
begin
isBak_zagr: = False;
nMass: = nMax;
end;
frmMain. ProgressCyl1. Position: = nMass;
frmMain. Label19. Caption: = IntToStr (nMass) +' кг. ';
Sleep (100);
frmMain. ProgressCyl1. Refresh;
end;
end.
Размещено на Allbest.ru
Подобные документы
Разработка автоматизированной системы управления холодильной установкой, позволяющей сократить время технологического процесса и обеспечивающую комфортные условия для контроля его параметров. Составление алгоритма данного оптимизированного управления.
курсовая работа [8,5 M], добавлен 22.12.2010Общая характеристика системы контроля и управления. Разработка автоматизированной 2-х уровневой системы управления технологическим процессом вакуумной компрессорной станции № 23 Самотлорского месторождения на базе продукции компании Rockwell Automation.
дипломная работа [2,6 M], добавлен 29.09.2013Принципы работы систем контроля и управления доступом, принцип их работы и оценка возможностей. Сравнительное описание методов идентификации. Разработка информационно-компьютерной системы контроля и управления доступом. Создание аппаратной подсистемы.
дипломная работа [1,7 M], добавлен 26.07.2013Особенности решения задачи контроля и управления посещением охраняемого объекта. Создание системы как совокупности программных и технических средств. Классификация систем контроля и управления доступом. Основные устройства системы и их характеристика.
презентация [677,7 K], добавлен 03.12.2014Разработка автоматизированной системы управления технологическими процессами очистки, компримирования и осушки нефтяного газа на базе программируемого логического контроллера SLC-500 фирмы Allen Bradley. Расчёт системы автоматического регулирования.
дипломная работа [309,0 K], добавлен 06.05.2015Обзор и анализ методов и средств автоматизации работы сотрудника отдела закупок. Функциональное и лингвистическое моделирование системы контроля и управления закупками на предприятии ОАО "Рогачевский МКК". Разработка графического интерфейса программы.
курсовая работа [1,7 M], добавлен 08.09.2014Понятие, назначение, задачи и классификация системы контроля и управления доступом, ее основные компоненты. Сравнительный анализ деятельности производителей данных систем: Legos, Parsec, PERCo. Выбор архитектуры системы, оборудование и его размещение.
дипломная работа [7,7 M], добавлен 07.06.2014Назначение, классификация и состав системы контроля управления доступом. Основные характеристики биометрических средств идентификации личности. Идентификация пользователя по радужной оболочке глаз. Разработка алгоритма функционирования устройства.
дипломная работа [1,1 M], добавлен 25.11.2014Анализ существующих систем контроля и управления доступом различных фирм-производителей. Анализ технических и эксплуатационных характеристик различных систем, разработка системы контроля и управления доступом. Предложение плана реализации системы.
дипломная работа [2,7 M], добавлен 07.06.2011Анализ современного состояния систем автоматизации управления данными; учет инфраструктуры информационной системы и требования к ресурсам организации. Разработка системы управления данными на базе SharePoint-сайта, программная реализация и внедрение.
диссертация [4,1 M], добавлен 10.11.2011