Exemplo n.º 1
0
        //主程序名称
        private string GetProgComment(ushort handle, out string error)
        {
            error = "";
            //获得当前主程序号
            Focas1.ODBM macro = new Focas1.ODBM();
            short       nRet  = Focas1.cnc_rdmacro(handle, 4000, 10, macro);

            if (nRet == Focas1.EW_OK)
            {
                Focas1.PRGDIR3 buf1      = new Focas1.PRGDIR3();
                double         dSmall    = macro.dec_val * 1.0;
                double         top_prog  = macro.mcr_val / Math.Pow(10.0, dSmall);
                int            ntop_prog = Convert.ToInt32(top_prog);
                short          num_prog  = 1;
                nRet = Focas1.cnc_rdprogdir3(handle, 1, ref ntop_prog, ref num_prog, buf1);

                if (nRet == Focas1.EW_OK)
                {
                    return(buf1.dir1.comment);
                }
            }

            error = $"读取错误!错误代号[{nRet}]";
            return("");
        }
Exemplo n.º 2
0
        //主程序名称
        private static string GetProgComment(string deviceAddress, out string error)
        {
            error = "";
            //获得当前主程序号
            Focas1.ODBM    macro = new Focas1.ODBM();
            Focas1.PRGDIR3 buf1  = new Focas1.PRGDIR3();
            ushort         m_handle;
            short          nRet = Focas1.cnc_allclibhndl3(deviceAddress, 8193, 2, out m_handle);

            if (nRet == Focas1.EW_OK)
            {
                nRet = Focas1.cnc_rdmacro(m_handle, 4000, 10, macro);
            }

            if (nRet == Focas1.EW_OK)
            {
                //****************
                double dSmall    = macro.dec_val * 1.0;
                double top_prog  = macro.mcr_val / Math.Pow(10.0, dSmall);
                int    ntop_prog = Convert.ToInt32(top_prog);
                short  num_prog  = 1;
                nRet = Focas1.cnc_rdprogdir3(m_handle, 1, ref ntop_prog, ref num_prog, buf1);
            }

            if (nRet == Focas1.EW_OK)
            {
                Focas1.cnc_freelibhndl(m_handle); //释放连接
                return(buf1.dir1.comment);
            }

            error = "连接失败";
            return("");
        }
        //Get the Program List from the CNC Machine.
        public List <ProgramListDet> GetProgramList() //out List<ProgramListDet> PrgDetList
        {
            string retStatus = null;
            List <ProgramListDet> PrgDetList = new List <ProgramListDet>();

            Focas1.focas_ret retallclibhndl3 = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(ip, port, timeout, out h);
            if (retallclibhndl3 == Focas1.focas_ret.EW_OK)
            {
                try
                {
                    int            top_prog = 0;
                    short          num_prog = 10;
                    Focas1.PRGDIR3 buf      = new Focas1.PRGDIR3();
                    while (num_prog != 0)
                    {
                        short  Retredprogdir3 = Focas1.cnc_rdprogdir3(h, 2, ref top_prog, ref num_prog, buf);
                        string Msg            = null;
                        switch (Retredprogdir3)
                        {
                        case 0:
                            Msg = "Success";
                            for (int i = 1; i <= num_prog; i++)
                            {
                                ProgramListDet PLD = new ProgramListDet();
                                switch (i)
                                {
                                case 1:
                                    PLD.ProgName = buf.dir1.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir1.number.ToString();
                                    PLD.ProgSize = buf.dir1.length.ToString();
                                    PLD.ProgDate = buf.dir1.mdate.day + "-" + buf.dir1.mdate.month + "-" + buf.dir1.mdate.year + " " + buf.dir1.mdate.hour + ":" + buf.dir1.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir1: ProgramNo: " + buf.dir1.number + " Comment:" + buf.dir1.comment + " mDate:" + buf.dir1.mdate);
                                    top_prog = buf.dir1.number + 1;
                                    break;

                                case 2:
                                    PLD.ProgName = buf.dir2.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir2.number.ToString();
                                    PLD.ProgSize = buf.dir2.length.ToString();
                                    PLD.ProgDate = buf.dir2.mdate.day + "-" + buf.dir2.mdate.month + "-" + buf.dir2.mdate.year + " " + buf.dir2.mdate.hour + ":" + buf.dir2.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir2: ProgramNo: " + buf.dir2.number + " Comment:" + buf.dir2.comment + " Page:" + buf.dir2.page);
                                    top_prog = buf.dir2.number + 1;
                                    break;

                                case 3:
                                    PLD.ProgName = buf.dir3.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir3.number.ToString();
                                    PLD.ProgSize = buf.dir3.length.ToString();
                                    PLD.ProgDate = buf.dir3.mdate.day + "-" + buf.dir3.mdate.month + "-" + buf.dir3.mdate.year + " " + buf.dir3.mdate.hour + ":" + buf.dir3.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir3: ProgramNo: " + buf.dir3.number + " Comment:" + buf.dir3.comment + " Page:" + buf.dir3.page);
                                    top_prog = buf.dir3.number + 1;
                                    break;

                                case 4:
                                    PLD.ProgName = buf.dir4.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir4.number.ToString();
                                    PLD.ProgSize = buf.dir4.length.ToString();
                                    PLD.ProgDate = buf.dir4.mdate.day + "-" + buf.dir4.mdate.month + "-" + buf.dir4.mdate.year + " " + buf.dir4.mdate.hour + ":" + buf.dir4.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir4: ProgramNo: " + buf.dir4.number + " Comment:" + buf.dir4.comment + " Page:" + buf.dir4.page);
                                    top_prog = buf.dir4.number + 1;
                                    break;

                                case 5:
                                    PLD.ProgName = buf.dir5.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir5.number.ToString();
                                    PLD.ProgSize = buf.dir5.length.ToString();
                                    PLD.ProgDate = buf.dir5.mdate.day + "-" + buf.dir5.mdate.month + "-" + buf.dir5.mdate.year + " " + buf.dir5.mdate.hour + ":" + buf.dir5.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir5: ProgramNo: " + buf.dir5.number + " Comment:" + buf.dir5.comment + " mDate:" + buf.dir5.mdate);
                                    top_prog = buf.dir5.number + 1;
                                    break;

                                case 6:
                                    PLD.ProgName = buf.dir6.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir6.number.ToString();
                                    PLD.ProgSize = buf.dir6.length.ToString();
                                    PLD.ProgDate = buf.dir6.mdate.day + "-" + buf.dir6.mdate.month + "-" + buf.dir6.mdate.year + " " + buf.dir6.mdate.hour + ":" + buf.dir6.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir6: ProgramNo: " + buf.dir6.number + " Comment:" + buf.dir6.comment + " Page:" + buf.dir6.page);
                                    top_prog = buf.dir6.number + 1;
                                    break;

                                case 7:
                                    PLD.ProgName = buf.dir7.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir7.number.ToString();
                                    PLD.ProgSize = buf.dir7.length.ToString();
                                    PLD.ProgDate = buf.dir7.mdate.day + "-" + buf.dir7.mdate.month + "-" + buf.dir7.mdate.year + " " + buf.dir7.mdate.hour + ":" + buf.dir7.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir7: ProgramNo: " + buf.dir7.number + " Comment:" + buf.dir7.comment + " Page:" + buf.dir7.page);
                                    top_prog = buf.dir7.number + 1;
                                    break;

                                case 8:
                                    PLD.ProgName = buf.dir8.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir8.number.ToString();
                                    PLD.ProgSize = buf.dir8.length.ToString();
                                    PLD.ProgDate = buf.dir8.mdate.day + "-" + buf.dir8.mdate.month + "-" + buf.dir8.mdate.year + " " + buf.dir8.mdate.hour + ":" + buf.dir8.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir8: ProgramNo: " + buf.dir8.number + " Comment:" + buf.dir8.comment + " Page:" + buf.dir8.page);
                                    top_prog = buf.dir8.number + 1;
                                    break;

                                case 9:
                                    PLD.ProgName = buf.dir9.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir9.number.ToString();
                                    PLD.ProgSize = buf.dir9.length.ToString();
                                    PLD.ProgDate = buf.dir9.mdate.day + "-" + buf.dir9.mdate.month + "-" + buf.dir9.mdate.year + " " + buf.dir9.mdate.hour + ":" + buf.dir9.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir9: ProgramNo: " + buf.dir9.number + " Comment:" + buf.dir9.comment + " Page:" + buf.dir9.page);
                                    top_prog = buf.dir9.number + 1;
                                    break;

                                case 10:
                                    PLD.ProgName = buf.dir10.comment.ToUpper();
                                    PLD.ProgNo   = "O" + buf.dir10.number.ToString();
                                    PLD.ProgSize = buf.dir10.length.ToString();
                                    PLD.ProgDate = buf.dir10.mdate.day + "-" + buf.dir10.mdate.month + "-" + buf.dir10.mdate.year + " " + buf.dir10.mdate.hour + ":" + buf.dir10.mdate.minute;
                                    PrgDetList.Add(PLD);
                                    //MessageBox.Show("dir10: ProgramNo: " + buf.dir10.number + " Comment:" + buf.dir10.comment + " Page:" + buf.dir10.page);
                                    top_prog = buf.dir10.number + 1;
                                    break;

                                default:
                                    break;
                                }
                            }
                            break;

                        case 2:
                            Msg = "The number of readout (num_prog) is wrong." + Retredprogdir3;
                            break;

                        case 3:
                            Msg = "The start number of program (top_prog) is wrong" + Retredprogdir3;
                            break;

                        case 4:
                            Msg = "Output format (type) is wrong. " + Retredprogdir3;
                            break;

                        case 7:
                            Msg = "Write Operation is Prohibited." + Retredprogdir3;
                            break;

                        default:
                            Msg = "Error No.: " + Retredprogdir3;
                            break;
                        }
                    }
                }
                catch (Exception e)
                {
                }
                Focas1.cnc_freelibhndl(h);
            }
            else
            {
                if (retallclibhndl3 == Focas1.focas_ret.EW_SOCKET)
                {
                    //retValueInt = (int)Focas1.focas_ret.EW_SOCKET;
                    retStatus = "Socket communication error. " + retallclibhndl3.ToString();
                }
                else if (retallclibhndl3 == Focas1.focas_ret.EW_NODLL)
                {
                    //retValueInt = (int)Focas1.focas_ret.EW_NODLL;
                    retStatus = "There is no DLL file for each CNC series . " + retallclibhndl3.ToString();
                }
                else if (retallclibhndl3 == Focas1.focas_ret.EW_HANDLE)
                {
                    //retValueInt = (int)Focas1.focas_ret.EW_HANDLE;
                    retStatus = "Allocation of handle number is failed. " + retallclibhndl3.ToString();
                }

                retStatus = retallclibhndl3.ToString();
            }
            return(PrgDetList);
        }
Exemplo n.º 4
0
        public List <ProgramListDet> GetProgramList()
        {
            List <ProgramListDet> programListDetList = new List <ProgramListDet>();

            Focas1.focas_ret focasRet = (Focas1.focas_ret)Focas1.cnc_allclibhndl3((object)this.ip, this.port, this.timeout, out this.h);
            switch (focasRet)
            {
            case Focas1.focas_ret.EW_SOCKET:
                string str1 = "Socket communication error. " + focasRet.ToString();
                goto default;

            case Focas1.focas_ret.EW_NODLL:
                string str2 = "There is no DLL file for each CNC series . " + focasRet.ToString();
                goto default;

            case Focas1.focas_ret.EW_HANDLE:
                string str3 = "Allocation of handle number is failed. " + focasRet.ToString();
                goto default;

            case Focas1.focas_ret.EW_OK:
                try
                {
                    int            b = 0;
                    short          c = 10;
                    Focas1.PRGDIR3 d = new Focas1.PRGDIR3();
                    while (c != (short)0)
                    {
                        short num = Focas1.cnc_rdprogdir3(this.h, (short)2, ref b, ref c, d);
                        switch (num)
                        {
                        case 0:
                            for (int index = 1; index <= (int)c; ++index)
                            {
                                ProgramListDet programListDet = new ProgramListDet();
                                switch (index)
                                {
                                case 1:
                                    programListDet.ProgName = d.dir1.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir1.number.ToString();
                                    programListDet.ProgSize = d.dir1.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir1.mdate.day).ToString() + "-" + (object)d.dir1.mdate.month + "-" + (object)d.dir1.mdate.year + " " + (object)d.dir1.mdate.hour + ":" + (object)d.dir1.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir1.number + 1;
                                    break;

                                case 2:
                                    programListDet.ProgName = d.dir2.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir2.number.ToString();
                                    programListDet.ProgSize = d.dir2.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir2.mdate.day).ToString() + "-" + (object)d.dir2.mdate.month + "-" + (object)d.dir2.mdate.year + " " + (object)d.dir2.mdate.hour + ":" + (object)d.dir2.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir2.number + 1;
                                    break;

                                case 3:
                                    programListDet.ProgName = d.dir3.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir3.number.ToString();
                                    programListDet.ProgSize = d.dir3.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir3.mdate.day).ToString() + "-" + (object)d.dir3.mdate.month + "-" + (object)d.dir3.mdate.year + " " + (object)d.dir3.mdate.hour + ":" + (object)d.dir3.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir3.number + 1;
                                    break;

                                case 4:
                                    programListDet.ProgName = d.dir4.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir4.number.ToString();
                                    programListDet.ProgSize = d.dir4.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir4.mdate.day).ToString() + "-" + (object)d.dir4.mdate.month + "-" + (object)d.dir4.mdate.year + " " + (object)d.dir4.mdate.hour + ":" + (object)d.dir4.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir4.number + 1;
                                    break;

                                case 5:
                                    programListDet.ProgName = d.dir5.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir5.number.ToString();
                                    programListDet.ProgSize = d.dir5.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir5.mdate.day).ToString() + "-" + (object)d.dir5.mdate.month + "-" + (object)d.dir5.mdate.year + " " + (object)d.dir5.mdate.hour + ":" + (object)d.dir5.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir5.number + 1;
                                    break;

                                case 6:
                                    programListDet.ProgName = d.dir6.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir6.number.ToString();
                                    programListDet.ProgSize = d.dir6.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir6.mdate.day).ToString() + "-" + (object)d.dir6.mdate.month + "-" + (object)d.dir6.mdate.year + " " + (object)d.dir6.mdate.hour + ":" + (object)d.dir6.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir6.number + 1;
                                    break;

                                case 7:
                                    programListDet.ProgName = d.dir7.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir7.number.ToString();
                                    programListDet.ProgSize = d.dir7.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir7.mdate.day).ToString() + "-" + (object)d.dir7.mdate.month + "-" + (object)d.dir7.mdate.year + " " + (object)d.dir7.mdate.hour + ":" + (object)d.dir7.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir7.number + 1;
                                    break;

                                case 8:
                                    programListDet.ProgName = d.dir8.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir8.number.ToString();
                                    programListDet.ProgSize = d.dir8.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir8.mdate.day).ToString() + "-" + (object)d.dir8.mdate.month + "-" + (object)d.dir8.mdate.year + " " + (object)d.dir8.mdate.hour + ":" + (object)d.dir8.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir8.number + 1;
                                    break;

                                case 9:
                                    programListDet.ProgName = d.dir9.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir9.number.ToString();
                                    programListDet.ProgSize = d.dir9.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir9.mdate.day).ToString() + "-" + (object)d.dir9.mdate.month + "-" + (object)d.dir9.mdate.year + " " + (object)d.dir9.mdate.hour + ":" + (object)d.dir9.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir9.number + 1;
                                    break;

                                case 10:
                                    programListDet.ProgName = d.dir10.comment.ToUpper();
                                    programListDet.ProgNo   = "O" + d.dir10.number.ToString();
                                    programListDet.ProgSize = d.dir10.length.ToString();
                                    programListDet.ProgDate = ((int)d.dir10.mdate.day).ToString() + "-" + (object)d.dir10.mdate.month + "-" + (object)d.dir10.mdate.year + " " + (object)d.dir10.mdate.hour + ":" + (object)d.dir10.mdate.minute;
                                    programListDetList.Add(programListDet);
                                    b = d.dir10.number + 1;
                                    break;
                                }
                            }
                            continue;

                        case 2:
                            string str4 = "The number of readout (num_prog) is wrong." + (object)num;
                            continue;

                        case 3:
                            string str5 = "The start number of program (top_prog) is wrong" + (object)num;
                            continue;

                        case 4:
                            string str6 = "Output format (type) is wrong. " + (object)num;
                            continue;

                        case 7:
                            string str7 = "Write Operation is Prohibited." + (object)num;
                            continue;

                        default:
                            string str8 = "Error No.: " + (object)num;
                            continue;
                        }
                    }
                }
                catch
                {
                }
                int num1 = (int)Focas1.cnc_freelibhndl(this.h);
                break;

            default:
                focasRet.ToString();
                break;
            }
            return(programListDetList);
        }
Exemplo n.º 5
0
        //读注册程序
        private void button8_Click(object sender, EventArgs e)
        {
            Fanuc.PRGDIR3 prgdir3 = new Focas1.PRGDIR3();
            short         a = 2, c = 100;//a:输出type b:指针开始位置 c:程序的总数量
            int           b   = Convert.ToInt16(textBox1.Text);
            short         ret = Fanuc.cnc_rdprogdir3(Fanuc.h, a, ref b, ref c, prgdir3);

            //dir1包含的数据number编号 length程序大小 comment注释
            if (ret == Fanuc.EW_OK)
            {
                string sprgdir3       = "dir";
                string sprgdir3_data  = "number";
                string sprgdir3_data2 = "length";
                string sprgdir3_data3 = "comment";
                string sprgdir3_data4 = "mdate";
                string sprgdir3_data5 = "year";
                string sprgdir3_data6 = "month";
                string sprgdir3_data7 = "day";
                string sprgdir3_data8 = "hour";
                string sprgdir3_data9 = "minute";

                if (ret == Fanuc.EW_OK)
                {
                    //处理显示的数据
                    listcnc_rdprogdir2.Items.Clear();
                    listcnc_rdprogdir2.Items.Add("合计:" + c);
                    listcnc_rdprogdir2.Items.Add("程序号(个)|大小(Kbyte)|时间            |注释()");
                    System.Type type = prgdir3.GetType();                 //|2016/5/25 24:24
                    for (int j = 1; j < c + 1; j++)
                    {
                        sprgdir3 = "dir" + j;
                        FieldInfo   fieidinfo = type.GetField(sprgdir3);
                        object      ob        = fieidinfo.GetValue(prgdir3);
                        System.Type typeob    = ob.GetType();

                        string ncNumber = typeob.GetField(sprgdir3_data).GetValue(ob).ToString().PadLeft(4, '0');
                        ncNumber = ncNumber.PadRight(12, ' ');

                        double temp = Convert.ToDouble(typeob.GetField(sprgdir3_data2).GetValue(ob).ToString());
                        temp = temp / 1024.0 + 0.5;
                        if (temp < 1)
                        {
                            temp += 0.5;
                        }
                        string ncLength = ((int)temp).ToString();
                        ncLength = ncLength.PadRight(13, ' ');

                        object      ob1    = typeob.GetField(sprgdir3_data4).GetValue(ob);
                        System.Type tyob1  = ob1.GetType();
                        string      year   = tyob1.GetField(sprgdir3_data5).GetValue(ob1).ToString().PadLeft(4, '0');
                        string      month  = tyob1.GetField(sprgdir3_data6).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      day    = tyob1.GetField(sprgdir3_data7).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      hour   = tyob1.GetField(sprgdir3_data8).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      minute = tyob1.GetField(sprgdir3_data9).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      nctime = year + "/" + month + "/" + day + " " + hour + ":" + minute;

                        string ncComment = typeob.GetField(sprgdir3_data3).GetValue(ob).ToString();

                        string all = ncNumber + "|" + ncLength + "|" + nctime + "|" + ncComment;
                        listcnc_rdprogdir2.Items.Add(all);
                    }
                }
            }
        }