Проект на делфи
Измерение технологических параметров должно производиться с интервалом 500 миллисекунд.
Алгоритмы должны выполняться с периодом 5 секунд. Расчет производится по значениям, усредненным за 5 секунд.
Программный модуль должен формировать сообщения согласно диагностическим алгоритмам и обеспечивать возможность их считывания средствами ПО верхнего уровня. Сообщения должны оставаться активными в течение всего времени, пока выполняются соответствующие условия. Исходными данными для системы диагностики являются измеряемые параметры, а также вводимые в систему уставки. Все это необходимо сделать в DLL. Если возьметесь, то вышлю Все исходные данные. Ну и для проверки визуализацию, данные должны считываться с Exel-файла при проверке..
Примерно должны быть реализованы 3 класса:...
пример проги во вложении
срок 3 дня
ICQ: 380945346
library DiagTVV; //Библиотека dll
uses Classes, FRIntf, PlugUtils, SysUtils, htypes, Variants, IniFiles; //объявляем все классы
const Consts: String = 'Consts'; Settings: String = 'Settings';
type
TSeries = class //название класса
Data: array of Double; //данные это массив из double
Limit,Count,MaxDevIndex: Integer; //переменные типа интеджер
Sum,Avg,Min,Max,Dev: Double; // переменные типа даубле
constructor Create(ALimit: Integer); //конструктор создания
procedure Clear; //процедура очистки
function AddValue(Value: Double): Boolean; //функция с выходом 0-1
procedure DelValue(Index: Integer); //процедура очистки
end;
TSensor = class
Name: String;
Value,Current,Sum: Double;
Index,SensIndex,ItemCount,ValueCount,FailCount: Integer;
FailTime: array[0..9] of TDateTime;
History: TSeries;
Uncertain,RefSaved: Boolean;
function RefKey: String;
function LoadRef: String;
function SaveRef(AValue: String): String;
end;
TSensorList = class
Items: array[0..299] of TSensor;
SensorCount: Integer;
constructor Create;
procedure AddSensor(AName: String; Count: Integer = 1);
function GetSensor(AName: String; AIndex: Integer = 0): TSensor;
function GetSensorValue(AName: String; AIndex: Integer = 0): Double;
function GetMin(AName: String): Integer;
function GetMax(AName: String): Integer;
function GetAvg(AName: String; AIndex: Integer = 0; ACount: Integer = 0): Double;
function Compare(S1,S2: String): Boolean;
property Sensor[Index:]: TSensor read GetSensor;
property SensorValue[Index:]: Double read GetSensorValue; default;
end;