procedure TForm1.Timer1Timer(Sender: TObject);
Var
t1,t2,t3,t4,t5,t6,t7:word;
DataTime,str2,str3,Slen,S_CRC:string;
begin
DecodeDateTime(now,t1,t2,t3,t4,t5,t6,t7);
QN:=inttostr(t1);
if t2<10 then QN:=QN+'0'+inttostr(t2) else QN:=QN+inttostr(t2);
if t3<10 then QN:=QN+'0'+inttostr(t3) else QN:=QN+inttostr(t3);
if t4<10 then QN:=QN+'0'+inttostr(t4) else QN:=QN+inttostr(t4);
if t5<10 then QN:=QN+'0'+inttostr(t5) else QN:=QN+inttostr(t5);
if t6<10 then QN:=QN+'0'+inttostr(t6) else QN:=QN+inttostr(t6);
DataTime:=QN;
QN:=QN+inttostr(t7);
if ((t4=strtoint(trim(Edit3.Text))) and (ZDFlag<>1)) then
begin
with CSPZ2 do
begin
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\表1.mdb;Persist Security Info=False';
close;
sql.Clear;
sql.Add('select * from YSPZ');
open;
first;
str2:='ST=32;CN=2021;QN='+QN+';PW='+Edt_PW+';MN='+Edt_MN+';Flag=1;CP=&&DataTime='+DataTime+';';
str2:=str2+'002-SLP='+FieldByName('SO2XL').AsString+','
+'002-INT='+FieldByName('SO2JJ').AsString+','
+'002-URV='+FieldByName('SO2SX').AsString+','
+'002-LRV='+FieldByName('SO2XX').AsString+';' //SO2斜率、截距、上限、下限
+'003-SLP='+FieldByName('NOXXL').AsString+','
+'003-INT='+FieldByName('NOXJJ').AsString+','
+'003-URV='+FieldByName('NOXSX').AsString+','
+'003-LRV='+FieldByName('NOXXX').AsString+';' //NOX斜率、截距、上限、下限
+'001-SLP='+FieldByName('DUSTXL').AsString+','
+'001-INT='+FieldByName('DUSTJJ').AsString+','
+'001-URV='+FieldByName('DUSTSX').AsString+','
+'001-LRV='+FieldByName('DUSTXX').AsString+';' //DUST斜率、截距、上限、下限
+'S01-SLP='+FieldByName('O2XL').AsString+','
+'S01-INT='+FieldByName('O2JJ').AsString+','
+'S01-URV='+FieldByName('O2SX').AsString+','
+'S01-LRV='+FieldByName('O2XX').AsString+';' //氧含量斜率、截距、上限、下限
+'S05-SLP='+FieldByName('TEMPXL').AsString+','
+'S05-INT='+FieldByName('TEMPJJ').AsString+','
+'S05-URV='+FieldByName('TEMPSX').AsString+','
+'S05-LRV='+FieldByName('TEMPXX').AsString+';' //煙溫斜率、截距、上限、下限
+'S08-SLP='+FieldByName('PRESXL').AsString+','
+'S08-INT='+FieldByName('PRESJJ').AsString+','
+'S08-URV='+FieldByName('PRESSX').AsString+','
+'S08-LRV='+FieldByName('PRESXX').AsString+';' //壓力斜率、截距、上限、下限
+'S02-SLP='+FieldByName('VELOXL').AsString+','
+'S02-INT='+FieldByName('VELOJJ').AsString+','
+'S02-URV='+FieldByName('VELOSX').AsString+','
+'S02-LRV='+FieldByName('VELOXX').AsString+';' //流速斜率、截距、上限、下限
+'301-Rtd='+FieldByName('AREA').AsString+';' //煙道面積
+'302-Rtd='+FieldByName('SDCXS').AsString+';' //速度場系數
+'303-Rtd='+FieldByName('KQGSXS').AsString+';' //空氣過剩系數
+'304-Rtd='+FieldByName('PTGXS').AsString+'&&'; //皮托管系數
end; ///讀取資料
Slen:=inttostr(length(str2));
S_CRC:=inttohex4(CalcCRC(pchar(str2),length(str2)));
if strlen(pchar(Slen))=2 then Slen := '00'+Slen
else if length(Slen)=3 then Slen:='0'+Slen;
str2:='##'+Slen+str2+S_CRC+#13#10; ////////CRC校驗
if not SendCS.Active then SendCS.Active:=true;
SendCS.Host:=trim(Edit1.Text);
SendCS.Port:=strtoint(Edit2.Text);
try
SendCS.Open;
SendCS.Socket.SendText(str2);
mm_send.Lines.Add(datetimetostr(now)+' to '+SendCS.Address+':'+str2);
except
Edit4.Text:='與服務器1端連接發生錯誤!';
end;
end
else
begin
if (t4<>strtoint(trim(Edit3.Text))) then ZDFlag:=0;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Filename:=ExtractFilePath(Paramstr(0))+'syscfg.ini';
myinifile:=Tinifile.create(filename);
Edt_MN:=myinifile.ReadString('DSC_CONFIG','mn','000000000000000');
Edt_PW:=myinifile.ReadString('DSC_CONFIG','pw','123456');
Edt_DS:=myinifile.ReadString('DSC_CONFIG','dsfs','23');
Edit1.Text:='10.41.100.58';
Edit2.Text:='6008';
Edit3.Text:=Edt_DS;
myinifile.Destroy;
ZDFlag:=0;
BHFlag:=0;
SendCS.Active:=true;
end;
procedure TForm1.SendCSRead(Sender: TObject; Socket: TCustomWinSocket);
var
GetStr,s1,s2,s3,s4:string;
i,j,a,b:integer;
begin
GetStr:=socket.ReceiveText;
i:=length(Getstr);
if i<>0 then ZDFlag:=1;
mm_send.Lines.Add(GetStr);
end;
end
uj5u.com熱心網友回復:
最好在Timer1Timer檢測下 ZDFlag:的值,寫個日志檔案出來看看就清楚了uj5u.com熱心網友回復:
第一天發,第二天就不發了,說明重啟電腦或者重啟程式導致的。同意樓上說的,加上詳細的日志,輸出到本地,查找原因就好找了
uj5u.com熱心網友回復:
相對簡單的就是增加一個測驗處理按鈕(getlasterror()獲取錯誤號),當第二天不發資料時,點擊這個按鈕看下回傳值是什么,你網路通訊控制元件也是用的API搭的,所以getlasterror()是可以拿到錯誤資訊的。再根據Error Lookup查查錯誤描述是什么。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98906.html
標籤:網絡通信/分布式開發
