📄 main.~pas
字号:
end;
end
end;
begin
ADOQueryFault.SQL.Clear;
ADOQueryFault.SQL.ADD('dtc_cxx_fault_all_end_s5 :Machine_id');
ADOQueryFault.Parameters.ParamByName('Machine_id').Value :=Machine_id;
ADOQueryFault.ExecSQL;
end;
//if (DW1_current=0) and (DW1_current=0) then
// NoFault:=True //主副机正常无故障
//else
// NoFault:=False;
myinifile.WriteInteger('fault','dw1',DW1_current);
myinifile.WriteInteger('fault','dw2',DW2_current); //把故障变量写入ini文件供下次调用
myinifile.WriteInteger('fault','FaultCount',FaultCount); //把故障数写入ini文件供下次调用
//**************************************************************
end;
procedure Tmainfrm.Tm_ConnStateTimer(Sender: TObject);
begin
try
AdoConnServer.Close;
AdoConnServer.Open;
if AdoConnServer.Connected then
begin
lbl_ConnState.Caption:='正常 ';
Tm_fault.Enabled:=true;
Tm_output.Enabled:=true;
Tm_nowdata.Enabled:=true;
Tm_parachange.Enabled:=true;
end;
except
lbl_ConnState.Caption:='连接失败 ';
Tm_fault.Enabled:=false;
Tm_output.Enabled:=false;
Tm_nowdata.Enabled:=false;
Tm_parachange.Enabled:=false;
end;
end;
procedure Tmainfrm.FormCreate(Sender: TObject);
begin
SysTime0:=now;
Machine_type:='s5';
Machine_id:=8;
product_countMax:=65535;
myinifile:=Tinifile.Create(Extractfilepath(paramstr(0))+'para.ini'); //连接ini文件
lbl_Machine_id.Caption:='成型'+inttostr(Machine_id)+'#机 ';
//************从本地Access读取设备实时数据****************************
ADOQLocal_eq.Close;
ADOQLocal_eq.SQL.Clear;
ADOQLocal_eq.SQL.Add('SELECT TOP 1 * FROM dtc_cxx_eq_now_s5_local ORDER BY 本地时间 DESC');
ADOQLocal_eq.Open;
Guige_id:=ADOQLocal_eq.FieldByName('Guige_id').AsInteger;
Data[1]:=ADOQLocal_eq.FieldByName('Ttg_dqwz').AsInteger;
Data[2]:=ADOQLocal_eq.FieldByName('Jx_yq_dqwz').AsInteger;
Data[3]:=ADOQLocal_eq.FieldByName('Tmcdh_dqwz').AsInteger;
Data[4]:=ADOQLocal_eq.FieldByName('Dsg_dqz').AsInteger;
Data[5]:=ADOQLocal_eq.FieldByName('Ttcdh_dqz').AsInteger;
Data[6]:=ADOQLocal_eq.FieldByName('Cxg_pzdqz').AsInteger;
Localtime0:= ADOQLocal_eq.FieldByName('本地时间').AsDateTime;
//************从本地Access读取设备实时数据*****************************
ADOQ_output.SQL.Clear;
ADOQ_output.SQL.Add('dtc_cxx_output_xiaban_get :Machine_id');
ADOQ_output.Parameters.ParamByName('Machine_id').Value := Machine_id;
ADOQ_output.Open;
OnDuty0:=ADOQ_output.fieldbyName('Xiaban_id').AsInteger;
//**********************读入工艺参数 *********************************//
tempGuige_id:=Guige_id;
ADOQLoacl_techpara.Close;
ADOQLoacl_techpara.SQL.Clear;
ADOQLoacl_techpara.SQL.Add('SELECT TOP 1 * FROM dtc_cxx_techpara_s5_local ORDER BY 本地时间 DESC');
ADOQLoacl_techpara.Open;
tempdata[0]:=ADOQLoacl_techpara.FieldByName('胎面压合径向起始位置').AsInteger;
tempdata[1]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向起始位置').AsInteger;
tempdata[2]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向2区压力位置').AsInteger;
tempdata[3]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向3区压力位置').AsInteger;
tempdata[4]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向结束位置').AsInteger;
tempdata[5]:=ADOQLoacl_techpara.FieldByName('胎面压合旋转起始位置').AsInteger;
tempdata[6]:=ADOQLoacl_techpara.FieldByName('胎面压合旋转结束位置').AsInteger;
tempdata[7]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向起始位置').AsInteger;
tempdata[8]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向5区压力位置').AsInteger;
tempdata[9]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向6区压力位置').AsInteger;
tempdata[10]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向结束位置').AsInteger;
tempdata[11]:=ADOQLoacl_techpara.FieldByName('胎侧压合轴向起始位置').AsInteger;
tempdata[12]:=ADOQLoacl_techpara.FieldByName('胎侧压合旋转起始位置').AsInteger;
tempdata[13]:=ADOQLoacl_techpara.FieldByName('胎侧压合旋转结束位置').AsInteger;
//****************************读入工艺参数*******************************//
end;
procedure Tmainfrm.Tm_NowDataTimer(Sender: TObject);
begin
SysTime:=now;
//************设备实时数据读取*****************************
ADOQLocal_eq.Close;
ADOQLocal_eq.SQL.Clear;
ADOQLocal_eq.SQL.Add('SELECT TOP 1 * FROM dtc_cxx_eq_now_s5_local ORDER BY 本地时间 DESC');
ADOQLocal_eq.Open;
Guige_id:=ADOQLocal_eq.FieldByName('Guige_id').AsInteger;
Data[1]:=ADOQLocal_eq.FieldByName('Ttg_dqwz').AsInteger;
Data[2]:=ADOQLocal_eq.FieldByName('Jx_yq_dqwz').AsInteger;
Data[3]:=ADOQLocal_eq.FieldByName('Tmcdh_dqwz').AsInteger;
Data[4]:=ADOQLocal_eq.FieldByName('Dsg_dqz').AsInteger;
Data[5]:=ADOQLocal_eq.FieldByName('Ttcdh_dqz').AsInteger;
Data[6]:=ADOQLocal_eq.FieldByName('Cxg_pzdqz').AsInteger;
Localtime:= ADOQLocal_eq.FieldByName('本地时间').AsDateTime;
//************设备实时数据读取*****************************
//******PLC与Movicon通讯连接判断********如果超过两分钟,本地时间没变化,或者从本地Access读到的数全为0,则表示PLC与MOvicon的通讯连接不上
if LocalTime=LocalTime0 then
begin
if ((SysTime-SysTime0)*24*60> 2) then
begin
Plc2Movicon:=false;
end
else
Plc2Movicon:=true;
end
else
begin
Plc2Movicon:=true;
SysTime0:=SysTime;
end;
LocalTime0:=LocalTime;
if Plc2Movicon=false or ((Data[1]=0) and (Data[2]=0) and (Data[3]=0) and (Data[4]=0) and (Data[5]=0) and (Data[6]=0)) then
begin
Plc2Movicon:=false;
lbl_Plc2Movicon.Caption:='连接失败 ';
end
else
begin
Plc2Movicon:=true;
lbl_Plc2Movicon.Caption:='正常 ';
end;
//****************PLC与Movicon通讯连接判断*************
if Plc2Movicon then
begin
//************设备实时数据上传*****************************
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('dtc_cxx_eq_now_update :Machine_type,:Machine_id,:Guige_id,:para1,:para2,:para3,:para4,:para5,:para6,:para7,:para8,:para9');
ADOQuery1.Parameters.ParamByName('Machine_type').Value := Machine_type;
ADOQuery1.Parameters.ParamByName('Machine_id').Value := Machine_id;
ADOQuery1.Parameters.ParamByName('Guige_id').Value := Guige_id;
ADOQuery1.Parameters.ParamByName('para1').Value := Data[1];
ADOQuery1.Parameters.ParamByName('para2').Value := Data[2];
ADOQuery1.Parameters.ParamByName('para3').Value := Data[3];
ADOQuery1.Parameters.ParamByName('para4').Value := Data[4];
ADOQuery1.Parameters.ParamByName('para5').Value := Data[5];
ADOQuery1.Parameters.ParamByName('para6').Value := Data[6];
ADOQuery1.ExecSQL;
//************设备实时数据上传*****************************
end ;
end;
procedure Tmainfrm.Tm_ParaChangeTimer(Sender: TObject);
var
i,up :integer;
begin
if Plc2Movicon then //PLC与MOvicon通讯连接上了才进行有关产量的各种处理
begin
if tempGuige_id=Guige_id then //规格没有变化才进行工艺参数变更判断
begin
ADOQLoacl_techpara.Close;
ADOQLoacl_techpara.SQL.Clear;
ADOQLoacl_techpara.SQL.Add('SELECT TOP 1 * FROM dtc_cxx_techpara_s5_local ORDER BY 本地时间 DESC');
ADOQLoacl_techpara.Open;
techpara[0]:=ADOQLoacl_techpara.FieldByName('胎面压合径向起始位置').AsInteger;
techpara[1]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向起始位置').AsInteger;
techpara[2]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向2区压力位置').AsInteger;
techpara[3]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向3区压力位置').AsInteger;
techpara[4]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向结束位置').AsInteger;
techpara[5]:=ADOQLoacl_techpara.FieldByName('胎面压合旋转起始位置').AsInteger;
techpara[6]:=ADOQLoacl_techpara.FieldByName('胎面压合旋转结束位置').AsInteger;
techpara[7]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向起始位置').AsInteger;
techpara[8]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向5区压力位置').AsInteger;
techpara[9]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向6区压力位置').AsInteger;
techpara[10]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向结束位置').AsInteger;
techpara[11]:=ADOQLoacl_techpara.FieldByName('胎侧压合轴向起始位置').AsInteger;
techpara[12]:=ADOQLoacl_techpara.FieldByName('胎侧压合旋转起始位置').AsInteger;
techpara[13]:=ADOQLoacl_techpara.FieldByName('胎侧压合旋转结束位置').AsInteger;
for i:=0 to 13 Do
if techpara[i]=tempdata[i] then //no change
begin
up:=0;
end
else //change occurs
begin
up:=1;break;
end;
if up=0 then //no data change
begin
end
else //data change
begin
ADOQueryParaChange.SQL.Clear;
ADOQueryParaChange.SQL.Add('dtc_cxx_techpara_update :Machine_type,:Machine_id,:Guige_id,:para1,:para2,:para3,:para4,:para5,:para6,:para7,:para8,:para9,:para10,'
+':para11,:para12,:para13,:para14,:para15,:para16,:para17,:para18,:para19,:para20,'
+':para21,:para22,:para23,:para24,:para25,:para26,:para27,:para28,:para29,:para30,'
+':para31,:para32,:para33,:para34,:para35,:para36,:para37,:para38,:para39,:para40,'
+':para41,:para42,:para43,:para44,:para45,:para46,:para47,:para48,:para49,:para50,'
+':para51,:para52,:para53,:para54,:para55,:para56,:para57,:para58,:para59,:para60,'
+':para61,:para62,:para63,:para64,:para65,:para66,:para67,:para68,:para69,:para70');
ADOQueryParaChange.Parameters.ParamByName('Machine_type').Value:=Machine_type;
ADOQueryParaChange.Parameters.ParamByName('Machine_id').Value:=Machine_id;
ADOQueryParaChange.Parameters.ParamByName('Guige_id').Value:=Machine_id;
ADOQueryParaChange.Parameters.ParamByName('para1').Value:=techpara[0];
ADOQueryParaChange.Parameters.ParamByName('para2').Value:=techpara[1];
ADOQueryParaChange.Parameters.ParamByName('para3').Value:=techpara[2];
ADOQueryParaChange.Parameters.ParamByName('para4').Value:=techpara[3];
ADOQueryParaChange.Parameters.ParamByName('para5').Value:=techpara[4];
ADOQueryParaChange.Parameters.ParamByName('para6').Value:=techpara[5];
ADOQueryParaChange.Parameters.ParamByName('para7').Value:=techpara[6];
ADOQueryParaChange.Parameters.ParamByName('para10').Value:=techpara[7];
ADOQueryParaChange.Parameters.ParamByName('para11').Value:=techpara[8];
ADOQueryParaChange.Parameters.ParamByName('para12').Value:=techpara[9];
ADOQueryParaChange.Parameters.ParamByName('para13').Value:=techpara[10];
ADOQueryParaChange.Parameters.ParamByName('para14').Value:=techpara[11];
ADOQueryParaChange.Parameters.ParamByName('para16').Value:=techpara[12];
ADOQueryParaChange.Parameters.ParamByName('para17').Value:=techpara[13];
ADOQueryParaChange.ExecSQL;
end;
for i:=0 to 13 Do
tempdata[i]:=techpara[i];
end
else //若规格改变,不用判断工艺参数变更
begin
tempGuige_id:=Guige_id;
ADOQLoacl_techpara.Close;
ADOQLoacl_techpara.SQL.Clear;
ADOQLoacl_techpara.SQL.Add('SELECT TOP 1 * FROM dtc_cxx_techpara_s5_local ORDER BY 本地时间 DESC');
ADOQLoacl_techpara.Open;
tempdata[0]:=ADOQLoacl_techpara.FieldByName('胎面压合径向起始位置').AsInteger;
tempdata[1]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向起始位置').AsInteger;
tempdata[2]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向2区压力位置').AsInteger;
tempdata[3]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向3区压力位置').AsInteger;
tempdata[4]:=ADOQLoacl_techpara.FieldByName('胎面压合轴向结束位置').AsInteger;
tempdata[5]:=ADOQLoacl_techpara.FieldByName('胎面压合旋转起始位置').AsInteger;
tempdata[6]:=ADOQLoacl_techpara.FieldByName('胎面压合旋转结束位置').AsInteger;
tempdata[7]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向起始位置').AsInteger;
tempdata[8]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向5区压力位置').AsInteger;
tempdata[9]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向6区压力位置').AsInteger;
tempdata[10]:=ADOQLoacl_techpara.FieldByName('胎侧压合径向结束位置').AsInteger;
tempdata[11]:=ADOQLoacl_techpara.FieldByName('胎侧压合轴向起始位置').AsInteger;
tempdata[12]:=ADOQLoacl_techpara.FieldByName('胎侧压合旋转起始位置').AsInteger;
tempdata[13]:=ADOQLoacl_techpara.FieldByName('胎侧压合旋转结束位置').AsInteger;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -