public void savedata(int i, double val) { var db = new sqlDbHelp(); string sql = "insert into l1_tag_value(id,val) values(" + i + "," + val + ")"; db.ExeSql(sql); }
/// <summary> /// 获取各流速度和跟踪值(每1s接受一个数据) /// </summary> public void getSpeedAndTrack() { try { double L1S = ccmCutStrand_1.getSpeed(); double L2S = ccmCutStrand_2.getSpeed(); double L3S = ccmCutStrand_3.getSpeed(); double L4S = ccmCutStrand_4.getSpeed(); if (L1S > 0 || L2S > 0 || L3S > 0 || L4S > 0) { double L1T = ccmCutStrand_1.getTrack(); double L2T = ccmCutStrand_2.getTrack(); double L3T = ccmCutStrand_3.getTrack(); double L4T = ccmCutStrand_4.getTrack(); ccmCutStrand_1.speed = L1S; ccmCutStrand_1.track = L1T; ccmCutStrand_2.speed = L2S; ccmCutStrand_2.track = L2T; ccmCutStrand_3.speed = L3S; ccmCutStrand_3.track = L3T; ccmCutStrand_4.speed = L4S; ccmCutStrand_4.track = L4T; #region 根据跟踪值,计算钢坯位置 calZhuPiWeizhi(ccmCutStrand_1); calZhuPiWeizhi(ccmCutStrand_2); calZhuPiWeizhi(ccmCutStrand_3); calZhuPiWeizhi(ccmCutStrand_4); #endregion oraDbHelp service = new oraDbHelp(); service.connectionString = "Data Source = 192.168.48.117/XGMES; User Id = XGMES; Password =XGMES;"; string exeSql = " insert into CUT_Speed_DATA(CCMID,SPEED_1ST,TRACK_1ST,SPEED_2ST,TRACK_2ST,SPEED_3ST,TRACK_3ST,SPEED_4ST,TRACK_4ST) "; exeSql += " values('" + CCMID + "', " + L1S + ", " + L1T + ", " + L2S + ", " + L2T + ", " + L3S + ", " + L3T + ", " + L4S + ", " + L4T + ") "; service.Update(exeSql); #region 向数据库保存铸坯跟踪数据 string sqlstr = " insert into cut_strand_info_his (ccmid,strandid,heatid,starttrack,endtrack,zhupiStart,zhupiEnd,speed) "; sqlstr += " values('" + CCMID + "', 1, '" + ccmCutStrand_1.heatid + "', " + ccmCutStrand_1.pitouTrack + "," + ccmCutStrand_1.track + ", " + ccmCutStrand_1.zhupiStart + ", " + ccmCutStrand_1.zhupiEnd + ", " + ccmCutStrand_1.speed + ") "; sqlstr += " ,('" + CCMID + "', 2, '" + ccmCutStrand_2.heatid + "', " + ccmCutStrand_2.pitouTrack + "," + ccmCutStrand_2.track + ", " + ccmCutStrand_2.zhupiStart + ", " + ccmCutStrand_2.zhupiEnd + ", " + ccmCutStrand_2.speed + ") "; sqlstr += " ,('" + CCMID + "', 3, '" + ccmCutStrand_3.heatid + "', " + ccmCutStrand_3.pitouTrack + "," + ccmCutStrand_3.track + ", " + ccmCutStrand_3.zhupiStart + ", " + ccmCutStrand_3.zhupiEnd + ", " + ccmCutStrand_3.speed + ") "; sqlstr += " ,('" + CCMID + "', 4, '" + ccmCutStrand_4.heatid + "', " + ccmCutStrand_4.pitouTrack + "," + ccmCutStrand_4.track + ", " + ccmCutStrand_4.zhupiStart + ", " + ccmCutStrand_4.zhupiEnd + ", " + ccmCutStrand_4.speed + ") "; try { var db = new sqlDbHelp(); db.ExeSql(sqlstr); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";insert into cut_strand_info_his方法出错" + ex.ToString() + sqlstr); } #endregion } } catch { } }
/// <summary> /// 加载变量表 /// </summary> public void loadValList() { try { string sql = "select id,L1name as name,scanrate,datatype from L1OPC_TAG where used=1 and type=" + type + " order by id "; var dt = new sqlDbHelp().Query(sql); listTag = dt_to_list(dt); } catch (Exception ex) { throw new Exception("加载变量列表时出错:" + ex.ToString()); } }
/// <summary> /// 加载变量表 /// </summary> public void loadValList() { try { string sql = "select id,L1name as name,scanrate,datatype from L1OPC_TAG where used=1 and type=" + type + " order by id "; var dt = new sqlDbHelp().Query(sql); listTag = dt_to_list(dt); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "--loadValList方法加载变量列表时出错" + ex.ToString()); throw new Exception("加载变量列表时出错:" + ex.ToString()); } }
public static List <L1tag> GetTagList() { if (listTag == null) { listTag = new List <L1tag>(); string sql = "select id,type from L1OPC_TAG where used=1 order by id "; var dt = new sqlDbHelp().Query(sql); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow item in dt.Rows) { L1tag tag = new L1tag(); tag.id = Convert.ToInt16(item["id"]); //tag.name = item["name"].ToString(); //tag.scanrate = Convert.ToInt16(item["scanrate"]); //tag.datatype = Convert.ToInt16(item["datatype"]); tag.type = Convert.ToInt16(item["type"]); //tag.lasttime = DateTime.Now.AddHours(-2); listTag.Add(tag); } } } return(listTag); }
/// <summary> /// 大包缝,可以理解为各流开浇时刻,将流的下一炉号赋给当前炉号 /// </summary> /// <param name="status"></param> public void acceptLadlefeng(int status) { //保存到数据库 double L1T = ccmCutStrand_1.getTrack(); double L2T = ccmCutStrand_2.getTrack(); double L3T = ccmCutStrand_3.getTrack(); double L4T = ccmCutStrand_4.getTrack(); oraDbHelp service = new oraDbHelp(); service.connectionString = "Data Source = 192.168.48.117/XGMES; User Id = XGMES; Password =XGMES;"; string exeSql = " insert into CUT_LADLEFENG_DATA(CCMID,LADLEFENG,TRACK_1ST,TRACK_2ST,TRACK_3ST,TRACK_4ST) "; exeSql += " values('" + CCMID + "'," + status + "," + L1T + "," + L2T + "," + L3T + "," + L4T + ") "; service.Update(exeSql); #region 流炉号变更 if (ccmCutStrand_1.heatid == "" || ccmCutStrand_1.heatid == null) { oraDbHelp service1 = new oraDbHelp(); string selectSql = " select heatid from(select heatid, PRODUCTIONDATE from cccm_base_data where ccmid = '" + CCMID + "' order by PRODUCTIONDATE desc) where rownum <= 2"; var steelGradeInfo = service1.Query(selectSql); if (steelGradeInfo != null && steelGradeInfo.Tables.Count > 0 && steelGradeInfo.Tables[0].Rows.Count > 0) { ccmCutStrand_1.heatid = steelGradeInfo.Tables[0].Rows[1]["heatid"].ToString(); ccmCutStrand_2.heatid = steelGradeInfo.Tables[0].Rows[1]["heatid"].ToString(); ccmCutStrand_3.heatid = steelGradeInfo.Tables[0].Rows[1]["heatid"].ToString(); ccmCutStrand_4.heatid = steelGradeInfo.Tables[0].Rows[1]["heatid"].ToString(); } } #region 记录大包缝数据 // insert into cut_ladlefenginfo(ccmid,strandid,heatid,endtrack) //values('S63', 1, '99', 33.3) try { var db = new sqlDbHelp(); string sql = ""; if (ccmCutStrand_1.strandstatus == 1) { ladleFeng s1ladlefeng = new ladleFeng(); s1ladlefeng.heatid = ccmCutStrand_1.heatid; s1ladlefeng.startTrack = L1T; ccmCutStrand_1.listLadleFeng.Add(s1ladlefeng); try { sql = " insert into cut_ladlefenginfo(ccmid,strandid,heatid,endtrack) "; sql += " values('" + CCMID + "', 1, '" + s1ladlefeng.heatid + "', " + s1ladlefeng.startTrack + ") "; db.ExeSql(sql); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";insert into cut_ladlefenginfo方法出错1" + ex.ToString()); } } if (ccmCutStrand_2.strandstatus == 1) { ladleFeng s2ladlefeng = new ladleFeng(); s2ladlefeng.heatid = ccmCutStrand_2.heatid; s2ladlefeng.startTrack = L2T; ccmCutStrand_2.listLadleFeng.Add(s2ladlefeng); try { sql = " insert into cut_ladlefenginfo(ccmid,strandid,heatid,endtrack) "; sql += " values('" + CCMID + "', 2, '" + s2ladlefeng.heatid + "', " + s2ladlefeng.startTrack + ") "; db.ExeSql(sql); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";insert into cut_ladlefenginfo方法出错2" + ex.ToString()); } } if (ccmCutStrand_3.strandstatus == 1) { ladleFeng s3ladlefeng = new ladleFeng(); s3ladlefeng.heatid = ccmCutStrand_3.heatid; s3ladlefeng.startTrack = L3T; ccmCutStrand_3.listLadleFeng.Add(s3ladlefeng); try { sql = " insert into cut_ladlefenginfo(ccmid,strandid,heatid,endtrack) "; sql += " values('" + CCMID + "', 3, '" + s3ladlefeng.heatid + "', " + s3ladlefeng.startTrack + ") "; db.ExeSql(sql); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";insert into cut_ladlefenginfo方法出错3" + ex.ToString()); } } if (ccmCutStrand_4.strandstatus == 1) { ladleFeng s4ladlefeng = new ladleFeng(); s4ladlefeng.heatid = ccmCutStrand_4.heatid; s4ladlefeng.startTrack = L4T; ccmCutStrand_4.listLadleFeng.Add(s4ladlefeng); try { sql = " insert into cut_ladlefenginfo(ccmid,strandid,heatid,endtrack) "; sql += " values('" + CCMID + "', 4, '" + s4ladlefeng.heatid + "', " + s4ladlefeng.startTrack + ") "; db.ExeSql(sql); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";insert into cut_ladlefenginfo方法出错4" + ex.ToString()); } } } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";insert into cut_ladlefenginfo方法出错5" + ex.ToString()); } #endregion if (heatid == "" || heatid == null) { oraDbHelp service1 = new oraDbHelp(); string selectSql = " select heatid from(select heatid, PRODUCTIONDATE from cccm_base_data where ccmid = '" + CCMID + "' order by PRODUCTIONDATE desc) where rownum = 1"; var steelGradeInfo = service1.Query(selectSql); if (steelGradeInfo != null && steelGradeInfo.Tables.Count > 0 && steelGradeInfo.Tables[0].Rows.Count > 0) { heatid = steelGradeInfo.Tables[0].Rows[0]["heatid"].ToString(); } } ccmCutStrand_1.heatid = heatid; ccmCutStrand_2.heatid = heatid; ccmCutStrand_3.heatid = heatid; ccmCutStrand_4.heatid = heatid; #endregion }
/// <summary> /// 各流切割状态的变化 /// </summary> /// <param name="cutStatus"></param> public void acceptCutStatus(int cutStatus) { //将流号,切割状态、跟踪值保存到数据库 double billet_length = getValue(valid_billetLength); double track_value = getValue(valid_trackvalue); double track = getValue(valid_track); string curheatid = heatid; double yuanPiTouTrack = pitouTrack; double yuanPiWeiTrack = 0; double dabaofeng = 0; try { oraDbHelp service = new oraDbHelp(); service.connectionString = "Data Source = 192.168.48.117/XGMES; User Id = XGMES; Password =XGMES;"; string exeSql = " insert into CUT_STRAND_DATA(CCMID, STRANDID, STATUS, BILLETLENGTH, TRACKVALUE) "; exeSql += " values('" + CCMID + "', " + strandid + ", " + cutStatus + ", " + billet_length + ", " + track_value + ") "; service.Update(exeSql); if (cutStatus == 3) { #region 切割时,铸坯位置的跟踪计算 if (strandstatus == 1) { //正常浇注模式,坯头跟踪值,为跟踪值-固定值 pitouTrack = track - zhupichangdu; zhupiStart = zhupichangdu; } else { //拉尾坯时,坯头跟踪值,原坯头跟踪值+定尺 pitouTrack = pitouTrack + billet_length; zhupiStart = zhupichangdu; //坯尾的位置:固定长度--(实际红坯的长度) zhupiEnd = zhupichangdu - (track - pitouTrack); } #endregion yuanPiWeiTrack = pitouTrack; #region 切割时,对大包缝的判断 #endregion if (listLadleFeng.Count > 0) { dabaofeng = listLadleFeng[0].startTrack; //如果小于大包缝的跟踪,则使用大包缝的炉号 if (yuanPiWeiTrack < listLadleFeng[0].startTrack) { curheatid = listLadleFeng[0].heatid; } //大包缝在中间时 else if (yuanPiWeiTrack >= listLadleFeng[0].startTrack && yuanPiTouTrack < listLadleFeng[0].startTrack) { double zhongdian = (yuanPiWeiTrack - yuanPiTouTrack) / 2 + yuanPiTouTrack; if (zhongdian < listLadleFeng[0].startTrack) { curheatid = listLadleFeng[0].heatid; } else { //如果存在两个大包缝,则用第二个 if (listLadleFeng.Count > 1) { curheatid = listLadleFeng[1].heatid; } } #region 在数据库中将此状态置为1 //update cut_ladlefenginfo set status=1,u_ts='1' where heatid='' and strandid=1 try { var db = new sqlDbHelp(); string sql = "update cut_ladlefenginfo set status=1,u_ts='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where heatid='" + listLadleFeng[0].heatid + "' and strandid=" + strandid + ""; db.ExeSql(sql); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";流号:" + strandid + ";acceptCutStatus-update cut_ladlefenginfo方法出错" + ex.ToString()); } #endregion //移除第一个大包缝 listLadleFeng.RemoveAt(0); //如果有第二个大包缝,则继续移除 if (listLadleFeng.Count > 0) { if (yuanPiWeiTrack >= listLadleFeng[0].startTrack) { listLadleFeng.RemoveAt(0); } } } } try { var dbhelp = new sqlDbHelp(); string inSql = "insert into cut_info(ccmid,strandid,heatid,toutrack,weitrack,fengtrack) "; inSql += "values('" + CCMID + "', " + strandid + ", '" + curheatid + "', " + yuanPiTouTrack + "," + yuanPiWeiTrack + ", " + dabaofeng + ")"; dbhelp.ExeSql(inSql); } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";流号:" + strandid + ";acceptCutStatus-insert into cut_info方法出错" + ex.ToString()); } } } catch (Exception ex) { SysLog.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-- 铸机:" + CCMID + ";流号:" + strandid + ";acceptCutStatus方法出错" + ex.ToString()); } }