读书人

Delphi7,怎么编写出能够实时监测机器故

发布时间: 2012-10-18 13:46:55 作者: rapoo

Delphi7,如何编写出能够实时监测机器故障
Delphi7,如何编写出能够实时监测多个机器故障,并显示故障,当故障排除后,显示故障的地方自动清除相应故障。

[解决办法]

Delphi(Pascal) code
implementation{$R *.dfm}const  liststr: array[0..3,0..9]of string=(  //按着 B1_DI 数组维数定义一个字符数组常量    ('','','','','','','','','',''),    ('','','1号屏地源热泵机组出现故障','','','','1号屏生活热水循环泵1-a出现故障','','',''),    ('','','','','','','','','',''),    ('','','','','','','','','','')    );var  B1_DI: array[0..3,0..9]of boolean;//假设你的这个2维数组是这样定义  faultnum,faultnum1:integer;procedure TMainForm.Button1Click(Sender: TObject);begin  list_message1.Items.Delete(list_message1.Items.IndexOf('abc'));end;procedure TMainForm.addlist1(str_temp: string);begin  list_message1.Insert(0,str_temp+' '+formatdatetime('hh:mm:ss yyyyy-mm-dd',now));end;procedure TMainForm.Timer7Timer(Sender: TObject);  procedure ClearMark(a1,a2:integer);//清除故障提示  var i:integer;  begin    for i:=0 to list_message1.Items.Count-1 do      if pos(liststr[a1,a2],list_message1.Items.Strings[i])>0 then begin //找到含有提示串的行        list_message1.Items.Delete(i);//删除该行        break;//退出循环      end;  end;begin  if B1_DI[1,2]=True then begin //如果 1,2 传感器复位    faultnum:=0;//标志复位    ClearMark(1,2);//清除故障提示  end  else if faultnum=0 then begin //否则,如果 1,2 传感器置位并且标志未置位    addlist1(liststr[1,2]);//添加故障提示    faultnum:=1;//标志置位  end;  //下面语句作用参看上面注释  if B1_DI[1,6]=True then begin    faultnum1:=0;    ClearMark(1,6);  end  else if faultnum1=0 then begin    faultnum1:=1;    addlist1(liststr[1,6]);  end;end; 

读书人网 >.NET

热点推荐