📄 dbjy.pas
字号:
GLBCMM[bw]:=tmpstr;
grid2.cells[3,bw]:=tmpstr;
sndstr:='68'+data_chang(GLBH[bw],false)+'688F04'+GLBCQX[bw]+GLBCMM[bw]
+hexadd('68'+data_chang(GLBH[bw],false)+'688F04'+GLBCQX[bw]+GLBCMM[bw])+'16';
end;
end;
result:=sndstr;
end;
function TdbjyForm.txsl_set(dta:string;bw:integer):string;
var
tmpsjcd,tmpsjxbs:string;
sndstr:string;
begin
TMPSJCD:=mid(dta,19,2);
if tmpsjcd='01' then
begin
TMPSJXBS:=hexdel(mid(dta,21,2));
if tmpsjxbs='02' then mscomm1.Settings:='300,e,8,1';
if tmpsjxbs='04' then mscomm1.Settings:='600,e,8,1';
if tmpsjxbs='08' then mscomm1.Settings:='1200,e,8,1';
if tmpsjxbs='10' then mscomm1.Settings:='2400,e,8,1';
if tmpsjxbs='20' then mscomm1.Settings:='4800,e,8,1';
if tmpsjxbs='40' then mscomm1.Settings:='9600,e,8,1';
sndstr:='68'+GLBH[bw]+'688C01'+data_chang(tmpsjxbs,true)+hexadd('68'+GLBH[bw]+'688C01'+data_chang(tmpsjxbs,true))+'16';
end else
sndstr:='68'+GLBH[bw]+'688C01FF'+hexadd('68'+GLBH[bw]+'688C01FF')+'16';
result:=sndstr;
end;
function TdbjyForm.addr_set(dta:string;bw:integer):string;
var
tmpsjx,tmpsjcd:string;
sndstr:string;
begin
sndstr:='';
TMPSJCD:=mid(dta,19,2);
if tmpsjcd='06' then
begin
if bw=0 then exit;
TMPSJX:=mid(dta,21,12);
GLBH[bw]:=data_reset(hexdel(tmpsjx));
Grid2.cells[1,bw]:=data_reset(hexdel(tmpsjx));
sndstr:='68'+tmpsjx+'688A00'+hexadd('68'+tmpsjx+'688A00')+'16';
end;
result:=sndstr;
end;
function TdbjyForm.datetime_set(dta:string;bw:integer):string;
var
i:integer;
tmpsjx:string;
begin
TMPSJX:=hexdel(mid(dta,21,6));
if bw=0 then
begin
for i:=1 to GLGBS do //时间
Grid3.cells[i,2]:=mid(tmpsjx,5,2)+':'+mid(tmpsjx,3,2)+':'+mid(tmpsjx,1,2);
end else
Grid3.cells[bw,2]:=mid(tmpsjx,5,2)+':'+mid(tmpsjx,3,2)+':'+mid(tmpsjx,1,2);
result:='';
end;
function TdbjyForm.write_db_sj(tmpbh,dta:string;bw:integer):string;
var
i,j,m:integer;
fl:string;
tmpsjxbs,tmpsjcd,tmpsjx:string;
tmpsj:string;
sndstr:string;
tmpstr:string;
begin
sndstr:='';
tmpstr:=hexdel(mid(dta,25,8)); //密码 权限
if tmpstr<>(GLBCQX[bw]+GLBCMM[bw]) then
begin
sndstr:='68'+tmpbh+'68C40137'+hexadd('68'+tmpbh+'68C40137')+'16'; //密码错误
end else begin
TMPSJXBS:=mid(dta,21,4);// 标识码
if TMPSJXBS='43F3' then //日期及周次
begin
TMPSJX:=hexdel(mid(dta,33,8));
tmpstr:='20'+mid(tmpsjx,7,2)+'-'+mid(tmpsjx,5,2)+'-'+mid(tmpsjx,3,2);
Grid3.cells[bw,1]:=tmpstr;
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if TMPSJXBS='44F3' then //时间
begin
TMPSJX:=hexdel(mid(dta,33,6));
tmpstr:=mid(tmpsjx,5,2)+':'+mid(tmpsjx,3,2)+':'+mid(tmpsjx,1,2);
Grid3.cells[bw,2]:=tmpstr;
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if (tmpsjxbs='66F3') or (tmpsjxbs='65F3') then //局编号 厂编号
begin
tmpsjx:=data_reset(hexdel(mid(dta,33,12)));
GLBH[bw]:=tmpsjx;
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if (tmpsjxbs='44F4') then //最大需量周期
begin
tmpsjx:=hexdel(mid(dta,33,2));
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if (tmpsjxbs='45F4') then //滑差时间
begin
tmpsjx:=hexdel(mid(dta,33,2));
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if tmpsjxbs='43F6' then //时区总数
begin
TMPSJX:=hexdel(mid(dta,33,2));
db_sqzs:=strtoint(tmpsjx);
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if tmpsjxbs='44F6' then //时段表数
begin
TMPSJX:=hexdel(mid(dta,33,2));
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if tmpsjxbs='45F6' then //日时段数
begin
TMPSJX:=hexdel(mid(dta,33,2));
db_sds:=strtoint(tmpsjx);
sqsdb:=VarArrayCreate([0,1,1,db_sds], varOleStr);
listbox1.Items.Clear;
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end
else if tmpsjxbs='72F6' then //时段表 块写入
begin
tmpsjcd:=mid(dta,19,2);
m:=strtoint('$'+tmpsjcd)-6;
TMPSJX:=hexdel(mid(dta,33,m*2));
m:=m div 3;
for i:=0 to m-1 do
begin
tmpstr:=mid(tmpsjx,1+i*6,2);
j:=strtoint(tmpstr);
case j of
1:
fl:='尖';
2:
fl:='峰';
3:
fl:='平';
4:
fl:='谷';
else
fl:='';
end;
tmpstr:=mid(tmpsjx,5+i*6,2)+':'+mid(tmpsjx,3+i*6,2);
listbox1.Items.Add('------费率:'+fl+'------'+tmpstr);
if fl<>'' then
sqsdb[0,i+1]:=fl;
sqsdb[1,i+1]:=tmpstr+':00';
end;
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
ListBox1.Items.SaveToFile(ExtractFilePath(Application.ExeName)+'sqsd_set.dat');
end
else
for i:=1 to db_sqzs do
begin
if tmpsjxbs=inttohex($53+i,2)+'F6' then
begin
tmpsjx:=hexdel(mid(dta,33,6));
tmpstr:='第'+inttostr(i)+'时区---起始日期:'+mid(tmpsjx,5,2)+'月'+mid(tmpsjx,3,2)+'日';
listbox1.Items.Insert((i-1)*(db_sds+1),tmpstr);
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end else
for m:=1 to db_sds do
begin
tmpstr:=inttohex($53+m+i*$10,2)+'F6';
if tmpsjxbs=tmpstr then
begin
TMPSJX:=hexdel(mid(dta,33,6));
tmpsj:=mid(tmpsjx,1,2);
j:=strtoint(tmpsj);
case j of
1:
fl:='尖';
2:
fl:='峰';
3:
fl:='平';
4:
fl:='谷';
else
fl:='';
end;
tmpsj:=mid(tmpsjx,5,2)+':'+mid(tmpsjx,3,2);
listbox1.Items.Add('------费率:'+fl+'------'+tmpsj);
if fl<>'' then
sqsdb[0,i+1]:=fl;
sqsdb[1,i+1]:=tmpsj+':00';
sndstr:='68'+data_chang(tmpbh,false)+'688400'+hexadd('68'+data_chang(tmpbh,false)+'688400')+'16';
end;
end;
ListBox1.Items.SaveToFile(ExtractFilePath(Application.ExeName)+'sqsd_set.dat');
end;
end;
result:=sndstr;
end;
function TdbjyForm.read_db_sj(tmpbh,dta:string;bw:integer):string;
var
i,fl,num:integer;
tmpsj:string;
tmpsjcd,tmpsjxbs,tmpsjx:string;
sndstr:string;
begin
TMPSJCD:=mid(dta,19,2);
if tmpsjcd<>'02' then
sndstr:='68'+data_chang(TMPBH,false)+'F43435'+hexadd('68'+data_chang(TMPBH,false)+'F43435')+'16'//C10102 错误代码
else
begin
TMPSJXBS:=mid(dta,21,4);
if (tmpsjxbs='65F3') or (tmpsjxbs='66F3') or (tmpsjxbs='67F3') then //表号 用户号 设备号
begin
sndstr:='68999999999999688108'+tmpsjxbs+data_call(GLBH[bw],12,false)
+hexadd('68999999999999688108'+tmpsjxbs+data_call(GLBH[bw],12,false))+'16';
end;
if tmpsjxbs='44F4' then //最大需量周期
sndstr:='68'+data_chang(GLBH[bw],false)+'688103'+tmpsjxbs+'48'+hexadd('68'+data_chang(GLBH[bw],false)+'688103'+tmpsjxbs+'48')+'16';
if tmpsjxbs='45F4' then //滑差时间
sndstr:='68'+data_chang(GLBH[bw],false)+'688103'+tmpsjxbs+'34'+hexadd('68'+data_chang(GLBH[bw],false)+'688103'+tmpsjxbs+'48')+'16';
if tmpsjxbs='72F6' then //时段
begin
tmpsj:='';
for i:=1 to db_sds do
begin
tmpsj:=tmpsj+mid(sqsdb[1,i],1,2)+mid(sqsdb[1,i],4,2);
if sqsdb[0,i]='尖' then tmpsj:=tmpsj+'01';
if sqsdb[0,i]='峰' then tmpsj:=tmpsj+'02';
if sqsdb[0,i]='平' then tmpsj:=tmpsj+'03';
if sqsdb[0,i]='谷' then tmpsj:=tmpsj+'04';
end;
num:=db_sds*3;
sndstr:='68'+data_chang(GLBH[bw],false)+'6881'+formatfloat('00',2+num)+tmpsjxbs+data_chang(tmpsj,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'6881'+formatfloat('00',2+num)+tmpsjxbs+data_chang(tmpsj,true))+'16';
end;
//电压电流
if tmpsjxbs='44E9' then //A相电压
sndstr:='68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('000.0',tmpua),4,True)
+hexadd('68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('000.0',tmpua),4,True))+'16';
if tmpsjxbs='45E9' then //B相电压
sndstr:='68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('000.0',tmpub),4,True)
+hexadd('68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('000.0',tmpub),4,True))+'16';
if tmpsjxbs='46E9' then //C相电压
sndstr:='68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('000.0',tmpuc),4,True)
+hexadd('68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('000.0',tmpuc),4,True))+'16';
if tmpsjxbs='54E9' then //A相电流
sndstr:='68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('00.00',tmpIa),4,True)
+hexadd('68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('00.00',tmpIa),4,True))+'16';
if tmpsjxbs='55E9' then //B相电流
sndstr:='68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('00.00',tmpIb),4,True)
+hexadd('68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('00.00',tmpIb),4,True))+'16';
if tmpsjxbs='56E9' then //C相电流
sndstr:='68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('00.00',tmpIc),4,True)
+hexadd('68'+data_chang(GLBH[bw],false)+'688104'+tmpsjxbs+data_call(formatfloat('00.00',tmpIc),4,True))+'16';
//正向有功
if TMPSJXBS='52C3' then //901F 数据块
begin
for i:=0 to 4 do
tmpsj:=tmpsj+data_CALL(db_dq_dl[bw,0,i],8,true);
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj)+'16';//返回数据
end;
if TMPSJXBS='43C3' then //9010
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,0],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,0],8,true))+'16';//返回数据
if TMPSJXBS='44C3' then //9011
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,1],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,1],8,true))+'16';//返回数据
if TMPSJXBS='45C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,2],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,2],8,true))+'16';//返回数据
if TMPSJXBS='46C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,3],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,3],8,true))+'16';//返回数据
if TMPSJXBS='47C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,4],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,0,4],8,true))+'16';//返回数据
//反向有功
if TMPSJXBS='62C3' then //902F 数据块
begin
tmpsj:='';
for i:=0 to 4 do
tmpsj:=tmpsj+data_CALL(db_dq_dl[bw,1,i],8,true);
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj)+'16';//返回数据
end;
if TMPSJXBS='53C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,0],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,0],8,true))+'16';//返回数据
if TMPSJXBS='54C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,1],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,1],8,true))+'16';//返回数据
if TMPSJXBS='55C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,2],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,2],8,true))+'16';//返回数据
if TMPSJXBS='56C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,3],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,3],8,true))+'16';//返回数据
if TMPSJXBS='57C3' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,4],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,1,4],8,true))+'16';//返回数据
//正向无功
if TMPSJXBS='52C4' then //911F 数据块
begin
tmpsj:='';
for i:=0 to 4 do
tmpsj:=tmpsj+data_CALL(db_dq_dl[bw,2,i],8,true);
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj+hexadd('68'+TMPBH+'688108'+TMPSJXBS+tmpsj)+'16';//返回数据
end;
if TMPSJXBS='43C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,0],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,0],8,true))+'16';//返回数据
if TMPSJXBS='44C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,1],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,1],8,true))+'16';//返回数据
if TMPSJXBS='45C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,2],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,2],8,true))+'16';//返回数据
if TMPSJXBS='46C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,3],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,3],8,true))+'16';//返回数据
if TMPSJXBS='47C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,4],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,2,4],8,true))+'16';//返回数据
//反向无功
if TMPSJXBS='62C4' then //912F 数据块
begin
tmpsj:='';
for i:=0 to 4 do
tmpsj:=tmpsj+data_CALL(db_dq_dl[bw,3,i],8,true);
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj)+'16';//返回数据
end;
if TMPSJXBS='53C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,0],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,0],8,true))+'16';//返回数据
if TMPSJXBS='54C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,1],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,1],8,true))+'16';//返回数据
if TMPSJXBS='55C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,2],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,2],8,true))+'16';//返回数据
if TMPSJXBS='56C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,3],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,3],8,true))+'16';//返回数据
if TMPSJXBS='57C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,4],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_dq_dl[bw,3,4],8,true))+'16';//返回数据
//一象限无功
if TMPSJXBS='72C4' then //912F 数据块
begin
tmpsj:='';
for i:=0 to 4 do
tmpsj:=tmpsj+data_CALL(db_sxx_dl[bw,1,i],8,true);
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+tmpsj)+'16';//返回数据
end;
if TMPSJXBS='63C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_sxx_dl[bw,1,0],8,true)
+hexadd('68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_sxx_dl[bw,1,0],8,true))+'16';//返回数据
if TMPSJXBS='64C4' then
sndstr:='68'+data_chang(GLBH[bw],false)+'688108'+TMPSJXBS+data_CALL(db_sxx_dl[bw,1,1],8,true)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -