Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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
            {
            }
        }
Ejemplo n.º 3
0
 /// <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());
     }
 }
Ejemplo n.º 4
0
 /// <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());
     }
 }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 6
0
        /// <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
        }
Ejemplo n.º 7
0
        /// <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());
            }
        }