home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / RealTime Graphics ActiveX / DATA.3 / Examples / Delphi / PID / PIDU.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1997-10-17  |  1.2 KB  |  58 lines

  1. unit PIDU;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   SCROLLX, OleCtrls, RTPIDX;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     RTPIDXCtrl1: TRTPIDXCtrl;
  12.     ScrollXCtrl1: TScrollXCtrl;
  13.     procedure RTPIDXCtrl1OnInternalTimer(Sender: TObject);
  14.     procedure FormCreate(Sender: TObject);
  15.   private
  16.     { Private declarations }
  17.   public
  18.     { Public declarations }
  19.   end;
  20.  
  21. var
  22.   Form1: TForm1;
  23.  
  24. implementation
  25. uses ctwxdef;
  26. {$R *.DFM}
  27. var
  28.     rMeasured,
  29.     rOutput,
  30.     rSetpoint: double;
  31.  
  32. procedure TForm1.RTPIDXCtrl1OnInternalTimer(Sender: TObject);
  33. var rValues: Array[0..2] of double;
  34. begin
  35.  
  36.   rMeasured := rMeasured + (rOutput / 20);
  37.   rOutput := RTPIDXCtrl1.CalcPID(rMeasured);
  38.  
  39.   RTPIDXCtrl1.UpdatePIDBargraph(rMeasured, rSetpoint, rOutput);
  40.  
  41.   rValues[0] := rSetpoint;
  42.   rValues[1] := rMeasured;
  43.   rValues[2] := rOutput;
  44.   ScrollXCtrl1.UpdateDynData(0,rValues[0]);
  45. end;
  46.  
  47. procedure TForm1.FormCreate(Sender: TObject);
  48. begin
  49.     rMeasured := 32;
  50.     rOutput := 0.0;
  51.     rSetpoint := 68;
  52.  
  53.     RTPIDXCtrl1.PIDSetpoint := rSetpoint;
  54.     RTPIDXCtrl1.EnableInternalTimer := TRUE;
  55. end;
  56.  
  57. end.
  58.