Exemplo n.º 1
0
 private void btnConnect_Click(object sender, EventArgs e)
 {
     try
     {
         Focas1.focas_ret ret = (Focas1.focas_ret)Focas1.cnc_allclibhndl3("192.168.18.8", 8193, 5, out cncHandle); //¨ú±olibrary handle
         //Focas1.focas_ret ret = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(textBox_IP.Text, 8193, 5, out cncHandle); //¨ú±olibrary handle
         //textBox_IP
         if (ret != Focas1.focas_ret.EW_OK)
         {
             this.rdpara.Enabled      = false;
             this.btnFileDown.Enabled = false;
             this.btnUpload.Enabled   = false;
             throw new Exception("Can't connect to CNC controller!");
         }
         else
         {
             this.rdpara.Enabled      = true;
             this.btnFileDown.Enabled = true;
             this.btnUpload.Enabled   = true;
             btnConnect.Enabled       = false;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Message");
     }
 }
        //Delete the NC Program from CNC Machine
        internal string DeleteProgram(String MacInv, string programNo)
        {
            string retStatus = null;

            Focas1.focas_ret retallclibhndl3 = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(ip, port, timeout, out h);
            if (retallclibhndl3 == Focas1.focas_ret.EW_OK)
            {
                short ret;
                //MessageBox.Show("Inside DeleteMethod");
                String ProgCont = null;
                //GetProgramDataNC(programNo, out ProgCont);
                //SaveNCProg(ProgCont.ToString(), MacInv, programNo.ToString(), 2);
                short mainprogno = Convert.ToInt16(programNo.Substring(1));
                ret = Focas1.cnc_delete(h, mainprogno);
                switch (ret)
                {
                case 0:
                    retStatus = "Success";
                    break;

                case 5:
                    retStatus = "PROGRAM " + programNo + " doesn't exist.";
                    break;

                case 7:
                    retStatus = "Write protection on CNC side";
                    break;

                case -1:
                    retStatus = "Data is protected.";
                    break;

                default:
                    retStatus = "ErrorNo." + ret;
                    break;
                }
                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(retStatus);
        }
Exemplo n.º 3
0
        private void btnSetParam_Click(object sender, EventArgs e)
        {
            short len    = 0;
            short prmNum = 20;
            //short type = 25;//11001
            //byte[] val = new byte[3] {1,2,3};
            byte value = 5;

            //if((type & 4) == 0)
            //{
            len = 4 + 1;//datano(2 bytes)+type(2 bytes)+cdata(1 byte)
            //prmData.datano = prmNum;
            //prmData.type = type;
            prmDataNoAxis.datano = prmNum;
            prmDataNoAxis.type   = 0;//No axis

            //if ((type & 3) == 1)
            //{
            //for (int i = 0; i < 3; i++)
            //   prmData.cdatas[i] = val[i];
            prmDataNoAxis.cdata = value;
            //}

            //Focas1.focas_ret ret = (Focas1.focas_ret)Focas1.cnc_wrparam(cncHandle, len, prmData);
            Focas1.focas_ret ret = (Focas1.focas_ret)Focas1.cnc_wrparam(cncHandle, len, prmDataNoAxis);
            if (ret == Focas1.focas_ret.EW_OK)
            {
                btnSetParam.Enabled = false;
            }
            //}
        }
 internal void AddFanucMac(out int connected, out String ControllerType, out int NoOfAxis, out int CurrentControlAxis, out String ModelType)
 {
     connected          = 0;
     ControllerType     = "";
     NoOfAxis           = 0;
     CurrentControlAxis = 0;
     ModelType          = "";
     Focas1.focas_ret retallclibhndl3 = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(ip, port, timeout, out h);
     if (retallclibhndl3 == Focas1.focas_ret.EW_OK)
     {
         Focas1.ODBSYS MacInfo    = new Focas1.ODBSYS();
         short         SysInfoRet = Focas1.cnc_sysinfo(h, MacInfo);
         if (SysInfoRet == 0)
         {
             connected      = 1;
             ControllerType = (MacInfo.cnc_type[0].ToString() + MacInfo.cnc_type[1].ToString()).ToString().Trim();
             NoOfAxis       = MacInfo.max_axis;
             ModelType      = (MacInfo.mt_type[0].ToString() + MacInfo.mt_type[1].ToString()).ToString().Trim();
             //NoOfAxis = Convert.ToInt32(MacInfo.axes.ToString());
             CurrentControlAxis = Convert.ToInt32((MacInfo.axes[0].ToString() + MacInfo.axes[1].ToString()).ToString().Trim());
             String MacSeries  = MacInfo.series.ToString().Trim();
             String MacVersion = MacInfo.version.ToString().Trim();
         }
     }
 }
Exemplo n.º 5
0
        public string DeleteProgram(string MacInv, string programNo)
        {
            string str1 = (string)null;

            Focas1.focas_ret focasRet = (Focas1.focas_ret)Focas1.cnc_allclibhndl3((object)this.ip, this.port, this.timeout, out this.h);
            string           str2;

            switch (focasRet)
            {
            case Focas1.focas_ret.EW_SOCKET:
                str1 = "Socket communication error. " + focasRet.ToString();
                goto default;

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

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

            case Focas1.focas_ret.EW_OK:
                short num1 = Focas1.cnc_delete(this.h, Convert.ToInt16(programNo.Substring(1)));
                switch (num1)
                {
                case -1:
                    str2 = "Data is protected.";
                    break;

                case 0:
                    str2 = "Success";
                    break;

                case 5:
                    str2 = "PROGRAM " + programNo + " doesn't exist.";
                    break;

                case 7:
                    str2 = "Write protection on CNC side";
                    break;

                default:
                    str2 = "ErrorNo." + (object)num1;
                    break;
                }
                int num2 = (int)Focas1.cnc_freelibhndl(this.h);
                break;

            default:
                str2 = focasRet.ToString();
                break;
            }
            return(str2);
        }
        internal void SetMachineUnlock(ushort UnLockDBit, ushort LockDBit)
        {
            Focas1.focas_ret retallclibhndl3 = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(ip, port, timeout, out h);
            //Locking D Bit Parameters
            var    rdpmcdataLockBit = new Focas1.IODBPMC0();
            short  adr_type         = 9;
            short  data_type        = 0;
            ushort s_number         = LockDBit;
            ushort e_number         = LockDBit;
            ushort length           = 9;

            short rdretLock = Focas1.pmc_rdpmcrng(h, adr_type, data_type, s_number, e_number, length, rdpmcdataLockBit);

            var wrpmcdataLock = rdpmcdataLockBit;

            wrpmcdataLock.cdata[0] = 0;
            for (int i = 0; i < 10; i++)
            {
                short wrret = Focas1.pmc_wrpmcrng(h, length, wrpmcdataLock);
            }

            //UnLocking D Bit Parameters
            var    rdpmcdataUnLockBit = new Focas1.IODBPMC0();
            short  adr_typeUn         = 9;
            short  data_typeUn        = 0;
            ushort s_numberUn         = UnLockDBit;
            ushort e_numberUn         = UnLockDBit;
            ushort lengthUn           = 9;

            short rdretUnLock = Focas1.pmc_rdpmcrng(h, adr_typeUn, data_typeUn, s_numberUn, e_numberUn, lengthUn, rdpmcdataUnLockBit);

            var wrpmcdataUn = rdpmcdataUnLockBit;

            wrpmcdataUn.cdata[0] = 1;
            for (int i = 0; i < 10; i++)
            {
                short wrret = Focas1.pmc_wrpmcrng(h, lengthUn, wrpmcdataUn);
            }

            Thread.Sleep(2000);
            //Lock D Bit reverted back to OFF State
            rdretUnLock = Focas1.pmc_rdpmcrng(h, adr_typeUn, data_typeUn, s_numberUn, e_numberUn, lengthUn, rdpmcdataUnLockBit);
            var wrpmcdata1 = rdpmcdataUnLockBit;

            wrpmcdata1.cdata[0] = 0;
            for (int i = 0; i < 10; i++)
            {
                short wrret = Focas1.pmc_wrpmcrng(h, lengthUn, wrpmcdata1);
            }
        }
Exemplo n.º 7
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            Focas1.focas_ret ret = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(textBox1.Text, 8193, 2, out handle); //取得library handle

            if (ret == Focas1.focas_ret.EW_OK)
            {
                btnDisconnect.Enabled = true;
                btnConnect.Enabled    = false;
                MessageBox.Show("Connect Succuss");
            }
            else
            {
                MessageBox.Show("" + ret);
            }
        }
        //Upload the NC Program to CNC Machine From Remote PC
        internal string UploadCNCProgram(int pthID, string FilePath1, out int retValueInt)
        {
            string retValue = null;

            //int retStatusInt = 0; //failure.
            retValueInt = 0; //EW_OK.
            try
            {
                Focas1.focas_ret retallclibhndl3 = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(ip, port, timeout, out FlibHndl); //library handle
                if (retallclibhndl3 == Focas1.focas_ret.EW_OK)
                {
                    retValueInt = (int)Focas1.focas_ret.EW_OK;
                    short type = 0;
                    FilePath = FilePath1;
                    var fileStream = new FileStream(FilePath, FileMode.Open, FileAccess.Read);
                    using (StreamReader sr = new StreamReader(fileStream, Encoding.UTF8))
                    {
                        StringBuilder DataString = new StringBuilder();
                        while (!sr.EndOfStream)
                        {
                            //read the data line by line into Dictionary, then access it.
                            string line = null;
                            Dictionary <int, string> AllData = new Dictionary <int, string>();
                            int LineNo = 1;
                            while ((line = sr.ReadLine()) != null)
                            {
                                AllData.Add(LineNo, line + "\n");
                                LineNo++;
                            }
                            Focas1.focas_ret retncstart = (Focas1.focas_ret)Focas1.cnc_dwnstart3(FlibHndl, type);
                            if (retncstart == Focas1.focas_ret.EW_OK)
                            {
                                retValueInt = (int)Focas1.focas_ret.EW_OK;
                                for (int row = 1; row < AllData.Count; row++)
                                {
                                    if (DataString != null)
                                    {
                                        DataString.Clear();
                                    }
                                    if (row == 0)
                                    {
                                        DataString.Append("\n");
                                    }
                                    line = null;
                                    int    stringSize      = DataString.Length;
                                    ushort currentLineSize = line != null ? (ushort)line.Length : (ushort)0;
                                    while (stringSize + currentLineSize < 250) //current line + old data size < 256
                                    {
                                        if (line != null)
                                        {
                                            DataString.Append(line); //include currentline
                                        }
                                        stringSize = DataString.Length;
                                        line       = null;
                                        if (AllData.ContainsKey(row))
                                        {
                                            line = AllData[row++];
                                        }
                                        else // Add "%" at the end of Program.
                                        {
                                            DataString.Append("%");
                                            break;
                                        }
                                        currentLineSize = (ushort)line.Length;
                                    }
                                    row -= 2; //Above whileLoop fails only after more data, so don't consider last row + Increment in the ForLoop so -1 => Total -2.
                                    // send cur+-rent data
                                    stringSize = DataString.Length;
                                    Object Data = DataString;
                                    {
                                        Focas1.focas_ret retcnc = (Focas1.focas_ret)Focas1.cnc_download3(FlibHndl, ref stringSize, Data);
                                        if (retcnc == Focas1.focas_ret.EW_OK)
                                        {
                                            retValue    = "Executed Successfully. " + retcnc.ToString();
                                            retValueInt = (int)Focas1.focas_ret.EW_OK;
                                        }
                                        else
                                        {
                                            if (retcnc == Focas1.focas_ret.EW_FUNC)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_FUNC;
                                                retValue    = "cnc_dwnstart3 function has not been executed. " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_RESET)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_RESET;
                                                retValue    = "Reset or stop request. " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_LENGTH)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_LENGTH;
                                                retValue    = "The size of character string is negative. " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_DATA)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_DATA;
                                                retValue    = "Data error. " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_PROT)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_PROT;
                                                retValue    = "Tape memory is write-protected by the CNC parameter setting. " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_OVRFLOW)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_OVRFLOW;
                                                retValue    = "Make enough free area in CNC memory. " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_BUFFER)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_BUFFER;
                                                retValue    = "Retry because the buffer is full. " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_REJECT)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_REJECT;
                                                retValue    = "Downloading is disable in the current CNC status " + retcnc.ToString();
                                            }
                                            else if (retcnc == Focas1.focas_ret.EW_ALARM)
                                            {
                                                retValueInt = (int)Focas1.focas_ret.EW_ALARM;
                                                retValue    = "Alarm has occurred while downloading. " + retcnc.ToString();
                                            }
                                        }
                                        retValue = retcnc.ToString();
                                    }
                                }

                                Focas1.focas_ret retncend = (Focas1.focas_ret)Focas1.cnc_dwnend3(FlibHndl);
                                if (retncend == Focas1.focas_ret.EW_OK)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_OK;
                                    retValue    = "cnc_dwnend3 executed succesfully " + retncend.ToString();
                                    retValue    = "Success";
                                }
                                else
                                {
                                    if (retncend == Focas1.focas_ret.EW_FUNC)
                                    {
                                        retValueInt = (int)Focas1.focas_ret.EW_FUNC;
                                        retValue    = "cnc_dwnstart3 function has not been executed. " + retncend.ToString();
                                    }
                                    else if (retncend == Focas1.focas_ret.EW_DATA)
                                    {
                                        retValueInt = (int)Focas1.focas_ret.EW_DATA;
                                        retValue    = "Data error. " + retncend.ToString();
                                    }
                                    else if (retncend == Focas1.focas_ret.EW_OVRFLOW)
                                    {
                                        retValueInt = (int)Focas1.focas_ret.EW_OVRFLOW;
                                        retValue    = "Make enough free area in CNC memory. " + retncend.ToString();
                                    }
                                    else if (retncend == Focas1.focas_ret.EW_PROT)
                                    {
                                        retValueInt = (int)Focas1.focas_ret.EW_PROT;
                                        retValue    = "Tape memory is write-protected by the CNC parameter setting. " + retncend.ToString();
                                    }
                                    else if (retncend == Focas1.focas_ret.EW_REJECT)
                                    {
                                        retValueInt = (int)Focas1.focas_ret.EW_REJECT;
                                        retValue    = "Downloading is disable in the current CNC status. " + retncend.ToString();
                                    }
                                    else if (retncend == Focas1.focas_ret.EW_ALARM)
                                    {
                                        retValueInt = (int)Focas1.focas_ret.EW_ALARM;
                                        retValue    = "Alarm has occurred while downloading. " + retncend.ToString();
                                    }
                                }
                                //retValue = retncend.ToString();
                            }
                            else
                            {
                                if (retncstart == Focas1.focas_ret.EW_BUSY)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_BUSY;
                                    retValue    = "Busy. " + retncstart.ToString();
                                }
                                else if (retncstart == Focas1.focas_ret.EW_ATTRIB)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_ATTRIB;
                                    retValue    = "Data type (type) is illegal. " + retncstart.ToString();
                                }
                                else if (retncstart == Focas1.focas_ret.EW_NOOPT)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_NOOPT;
                                    retValue    = "No option. " + retncstart.ToString();
                                }
                                else if (retncstart == Focas1.focas_ret.EW_PARAM)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_PARAM;
                                    retValue    = "CNC parameter error. " + retncstart.ToString();
                                }
                                else if (retncstart == Focas1.focas_ret.EW_MODE)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_MODE;
                                    retValue    = "CNC mode error. " + retncstart.ToString();
                                }
                                else if (retncstart == Focas1.focas_ret.EW_REJECT)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_REJECT;
                                    retValue    = "CNC is machining, so Rejected. " + retncstart.ToString();
                                }
                                else if (retncstart == Focas1.focas_ret.EW_ALARM)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_ALARM;
                                    retValue    = "Alarm State error, reset the alarm on CNC. " + retncstart.ToString();
                                }
                                else if (retncstart == Focas1.focas_ret.EW_PASSWD)
                                {
                                    retValueInt = (int)Focas1.focas_ret.EW_PASSWD;
                                    retValue    = "Specified CNC data cannot be written because the data is protected.. " + retncstart.ToString();
                                }
                            }
                            //retValue = retncstart.ToString();
                        }
                    }
                    Focas1.cnc_freelibhndl(h);
                }
                else
                {
                    if (retallclibhndl3 == Focas1.focas_ret.EW_SOCKET)
                    {
                        retValueInt = (int)Focas1.focas_ret.EW_SOCKET;
                        retValue    = "Socket communication error. " + retallclibhndl3.ToString();
                    }
                    else if (retallclibhndl3 == Focas1.focas_ret.EW_NODLL)
                    {
                        retValueInt = (int)Focas1.focas_ret.EW_NODLL;
                        retValue    = "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;
                        retValue    = "Allocation of handle number is failed. " + retallclibhndl3.ToString();
                    }

                    retValue = retallclibhndl3.ToString();
                }

                using (i_facility_shaktiEntities1 redb = new i_facility_shaktiEntities1())
                {
                    var RecordToUpdate = redb.tblprogramtransferhistories.Find(pthID);
                    if (RecordToUpdate != null)
                    {
                        RecordToUpdate.ReturnTime        = DateTime.Now;
                        RecordToUpdate.ReturnStatus      = retValueInt;
                        RecordToUpdate.ReturnDesc        = retValue;
                        redb.Entry(RecordToUpdate).State = System.Data.Entity.EntityState.Modified;
                        redb.SaveChanges();
                    }
                    else
                    {
                        //TextLogFile("Unable to Find Latest Record to update Error/EndTime.");
                    }
                }
                Focas1.cnc_freelibhndl(FlibHndl);
            }
            catch (Exception e)
            {
                retValue += e.ToString();
            }

            return(retValue);
        }
        //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);
        }
        //Get the Program Content from the CNC Machine - Download from CNC Machine
        internal string GetProgramDataNC(string progno, out String ProgramData) //From CNC Machine
        {
            string retStatus = null;

            ProgramData = null;
            //ProgramData = new StringBuilder();
            Focas1.focas_ret retGPL = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(ip, port, timeout, out h);
            if (retGPL == Focas1.focas_ret.EW_OK)
            {
                ProgramReadError(h, 1);
                short        mainprogno     = Convert.ToInt16(progno.Substring(1));
                short        retUploadstart = Focas1.cnc_upstart(h, mainprogno); // Fanuc Controller 32i/Oi-TD/16i-MB/18i-TB/Oi-MC/Oi-TC/Oi-MD/Oi-MC Slim/21i-TB/310iM
                Focas1.ODBUP upld           = new Focas1.ODBUP();
                switch (retUploadstart)
                {
                case 0:
                    retStatus = "Success";
                    short  ret       = 0;
                    ushort len       = 4 + 256;
                    int    LoopCount = 0;
                    //System.Threading.Thread.Sleep(3000);
                    while (ret == 0)
                    {
                        ret = Focas1.cnc_upload(h, upld, ref len);
                        int    a            = upld.data.Length;
                        string retValString = new string(upld.data);
                        if (ret == 10)
                        {
                            len = 256;
                            ret = 0;
                            continue;
                        }
                        else if (ret == 0)
                        {
                            ProgramData += retValString;
                        }
                        else if (ret == 2)
                        {
                            //MessageBox.Show("ret 2 :: Length " + len);
                        }
                        else if (ret == -2)
                        {
                            retStatus = "Error: " + ret;
                            ret       = Focas1.cnc_upend3(h);
                            ProgramReadError(h, 0);
                            break;
                        }
                        else
                        {
                            retStatus = "Else :: Error: " + ret;
                        }

                        if (retValString.Contains('%'))
                        {
                            LoopCount++;
                            if (LoopCount >= 2)
                            {
                                String[] Temp = ProgramData.ToString().Split('%');
                                ProgramData = "%" + Temp[1] + "%";
                                retStatus   = ".Success";
                                ret         = Focas1.cnc_upend3(h);
                                ProgramReadError(h, 0);
                                break;
                            }
                        }
                        else
                        {
                            //retStatus = "Error: " + ret;
                            //MessageBox.Show("Error(cnc_upload4):" + ret);
                        }
                    }
                    ret = Focas1.cnc_upend3(h);
                    ProgramReadError(h, 0);
                    if (LoopCount == 1)
                    {
                        String[] Temp = ProgramData.ToString().Split('%');
                        ProgramData = "%" + Temp[1] + "%";
                    }
                    break;

                case -1:
                    retStatus = "Busy";
                    break;

                case 1:
                    retStatus = "Parameter(No.20,22:Input device) is wrong";
                    break;

                case 7:
                    retStatus = "Write protected on CNC side";
                    break;

                default:
                    retStatus = "cnc_upstart3 :: ErrorNo. :" + retUploadstart;
                    break;
                }
                Focas1.cnc_freelibhndl(h);
            }
            else
            {
                if (retGPL == Focas1.focas_ret.EW_SOCKET)
                {
                    //retValueInt = (int)Focas1.focas_ret.EW_SOCKET;
                    retStatus = "Socket communication error. " + retGPL.ToString();
                }
                else if (retGPL == Focas1.focas_ret.EW_NODLL)
                {
                    //retValueInt = (int)Focas1.focas_ret.EW_NODLL;
                    retStatus = "There is no DLL file for each CNC series . " + retGPL.ToString();
                }
                else if (retGPL == Focas1.focas_ret.EW_HANDLE)
                {
                    //retValueInt = (int)Focas1.focas_ret.EW_HANDLE;
                    retStatus = "Allocation of handle number is failed. " + retGPL.ToString();
                }

                retStatus = retGPL.ToString();
            }
            return(retStatus);
        }
Exemplo n.º 11
0
        public string UploadCNCProgram(int pthID, string FilePath1, out int retValueInt)
        {
            string str1 = (string)null;

            retValueInt = 0;
            try
            {
                Focas1.focas_ret focasRet1 = (Focas1.focas_ret)Focas1.cnc_allclibhndl3((object)this.ip, this.port, this.timeout, out this.FlibHndl);

                switch (focasRet1)
                {
                case Focas1.focas_ret.EW_SOCKET:
                    retValueInt = -16;
                    str1        = "Socket communication error. " + focasRet1.ToString();
                    goto default;

                case Focas1.focas_ret.EW_NODLL:
                    retValueInt = -15;
                    str1        = "There is no DLL file for each CNC series . " + focasRet1.ToString();
                    goto default;

                case Focas1.focas_ret.EW_HANDLE:
                    retValueInt = -8;
                    str1        = "Allocation of handle number is failed. " + focasRet1.ToString();
                    goto default;

                case Focas1.EW_OK:
                    retValueInt = 0;
                    short a = 0;
                    this.FilePath = FilePath1;
                    using (StreamReader streamReader = new StreamReader((Stream) new FileStream(this.FilePath, FileMode.Open, FileAccess.Read), Encoding.UTF8))
                    {
                        StringBuilder stringBuilder = new StringBuilder();
                        while (!streamReader.EndOfStream)
                        {
                            string str2 = (string)null;
                            Dictionary <int, string> dictionary = new Dictionary <int, string>();
                            int    key1 = 1;
                            string str3;
                            while ((str3 = streamReader.ReadLine()) != null)
                            {
                                dictionary.Add(key1, str3 + "\n");
                                ++key1;
                            }
                            Focas1.focas_ret focasRet2 = (Focas1.focas_ret)Focas1.cnc_dwnstart3(this.FlibHndl, a);
                            switch (focasRet2)
                            {
                            case Focas1.focas_ret.EW_BUSY:
                                retValueInt = -1;
                                str1        = "Busy. " + focasRet2.ToString();
                                continue;

                            case Focas1.focas_ret.EW_OK:
                                retValueInt = 0;
                                int num;
                                for (int key2 = 1; key2 < dictionary.Count; key2 = num + 1)
                                {
                                    stringBuilder?.Clear();
                                    if (key2 == 0)
                                    {
                                        stringBuilder.Append("\n");
                                    }
                                    string str4    = (string)null;
                                    int    length1 = stringBuilder.Length;
                                    for (ushort index = str4 != null ? (ushort)str4.Length : (ushort)0; length1 + (int)index < 250; index = (ushort)str4.Length)
                                    {
                                        if (str4 != null)
                                        {
                                            stringBuilder.Append(str4);
                                        }
                                        length1 = stringBuilder.Length;
                                        str2    = (string)null;
                                        if (dictionary.ContainsKey(key2))
                                        {
                                            str4 = dictionary[key2++];
                                        }
                                        else
                                        {
                                            stringBuilder.Append("%");
                                            break;
                                        }
                                    }
                                    num = key2 - 2;
                                    int              length2   = stringBuilder.Length;
                                    object           b         = (object)stringBuilder;
                                    Focas1.focas_ret focasRet3 = (Focas1.focas_ret)Focas1.cnc_download3(this.FlibHndl, ref length2, b);
                                    switch (focasRet3)
                                    {
                                    case Focas1.focas_ret.EW_RESET:
                                        retValueInt = -2;
                                        str1        = "Reset or stop request. " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_OK:
                                        str1        = "Executed Successfully. " + focasRet3.ToString();
                                        retValueInt = 0;
                                        break;

                                    case Focas1.focas_ret.EW_FUNC:
                                        retValueInt = 1;
                                        str1        = "cnc_dwnstart3 function has not been executed. " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_LENGTH:
                                        retValueInt = 2;
                                        str1        = "The size of character string is negative. " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_DATA:
                                        retValueInt = 5;
                                        str1        = "Data error. " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_PROT:
                                        retValueInt = 7;
                                        str1        = "Tape memory is write-protected by the CNC parameter setting. " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_OVRFLOW:
                                        retValueInt = 8;
                                        str1        = "Make enough free area in CNC memory. " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_BUFFER:
                                        retValueInt = 10;
                                        str1        = "Retry because the buffer is full. " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_REJECT:
                                        retValueInt = 13;
                                        str1        = "Downloading is disable in the current CNC status " + focasRet3.ToString();
                                        break;

                                    case Focas1.focas_ret.EW_ALARM:
                                        retValueInt = 15;
                                        str1        = "Alarm has occurred while downloading. " + focasRet3.ToString();
                                        break;
                                    }
                                    str1 = focasRet3.ToString();
                                }
                                Focas1.focas_ret focasRet4 = (Focas1.focas_ret)Focas1.cnc_dwnend3(this.FlibHndl);
                                switch (focasRet4)
                                {
                                case Focas1.focas_ret.EW_OK:
                                    retValueInt = 0;
                                    //str1 = "cnc_dwnend3 executed succesfully " + focasRet4.ToString();
                                    str1 = "Succesfully";
                                    continue;

                                case Focas1.focas_ret.EW_FUNC:
                                    retValueInt = 1;
                                    str1        = "cnc_dwnstart3 function has not been executed. " + focasRet4.ToString();
                                    continue;

                                case Focas1.focas_ret.EW_DATA:
                                    retValueInt = 5;
                                    str1        = "Data error. " + focasRet4.ToString();
                                    continue;

                                case Focas1.focas_ret.EW_PROT:
                                    retValueInt = 7;
                                    str1        = "Tape memory is write-protected by the CNC parameter setting. " + focasRet4.ToString();
                                    continue;

                                case Focas1.focas_ret.EW_OVRFLOW:
                                    retValueInt = 8;
                                    str1        = "Make enough free area in CNC memory. " + focasRet4.ToString();
                                    continue;

                                case Focas1.focas_ret.EW_REJECT:
                                    retValueInt = 13;
                                    str1        = "Downloading is disable in the current CNC status. " + focasRet4.ToString();
                                    continue;

                                case Focas1.focas_ret.EW_ALARM:
                                    retValueInt = 15;
                                    str1        = "Alarm has occurred while downloading. " + focasRet4.ToString();
                                    continue;

                                default:
                                    continue;
                                }

                            case Focas1.focas_ret.EW_ATTRIB:
                                retValueInt = 4;
                                str1        = "Data type (type) is illegal. " + focasRet2.ToString();
                                continue;

                            case Focas1.focas_ret.EW_NOOPT:
                                retValueInt = 6;
                                str1        = "No option. " + focasRet2.ToString();
                                continue;

                            case Focas1.focas_ret.EW_PARAM:
                                retValueInt = 9;
                                str1        = "CNC parameter error. " + focasRet2.ToString();
                                continue;

                            case Focas1.focas_ret.EW_MODE:
                                retValueInt = 12;
                                str1        = "CNC mode error. " + focasRet2.ToString();
                                continue;

                            case Focas1.focas_ret.EW_REJECT:
                                retValueInt = 13;
                                str1        = "CNC is machining, so Rejected. " + focasRet2.ToString();
                                continue;

                            case Focas1.focas_ret.EW_ALARM:
                                retValueInt = 15;
                                str1        = "Alarm State error, reset the alarm on CNC. " + focasRet2.ToString();
                                continue;

                            case Focas1.focas_ret.EW_PASSWD:
                                retValueInt = 17;
                                str1        = "Specified CNC data cannot be written because the data is protected.. " + focasRet2.ToString();
                                continue;

                            default:
                                continue;
                            }
                        }
                    }
                    int num1 = (int)Focas1.cnc_freelibhndl(this.h);
                    break;

                default:
                    //str1 = str1;// + focasRet1.ToString();
                    break;
                }
                //using (unitworksccsEntities unitworksccsEntities = new unitworksccsEntities())
                //{
                //    tblprogramtransferhistory entity = unitworksccsEntities.tblprogramtransferhistories.Find((object)pthID);
                //    if (entity != null)
                //    {
                //        entity.ReturnTime = new DateTime?(DateTime.Now);
                //        entity.ReturnStatus = new int?(retValueInt);
                //        entity.ReturnDesc = str1;
                //        unitworksccsEntities.Entry<tblprogramtransferhistory>(entity).State = EntityState.Modified;
                //        unitworksccsEntities.SaveChanges();
                //    }
                //}
                int num2 = (int)Focas1.cnc_freelibhndl(this.FlibHndl);
            }
            catch (Exception ex)
            {
                str1 += ex.ToString();
            }
            return(str1);
        }
Exemplo n.º 12
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.º 13
0
        public string GetProgramDataNC(string progno, out string ProgramData)
        {
            string str1 = (string)null;

            ProgramData = (string)null;
            Focas1.focas_ret focasRet = (Focas1.focas_ret)Focas1.cnc_allclibhndl3((object)this.ip, this.port, this.timeout, out this.h);
            string           str2;

            switch (focasRet)
            {
            case Focas1.focas_ret.EW_SOCKET:
                str1 = "Socket communication error. " + focasRet.ToString();
                goto default;

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

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

            case Focas1.focas_ret.EW_OK:
                this.ProgramReadError(this.h, 1);
                short        num1 = Focas1.cnc_upstart(this.h, Convert.ToInt16(progno.Substring(1)));
                Focas1.ODBUP a    = new Focas1.ODBUP();
                switch (num1)
                {
                case -1:
                    str2 = "Busy";
                    break;

                case 0:
                    str2 = "Success";
                    short  num2 = 0;
                    ushort b    = 260;
                    int    num3 = 0;
                    short  num4;
                    while (num2 == (short)0)
                    {
                        num2 = Focas1.cnc_upload(this.h, a, ref b);
                        int    length = a.data.Length;
                        string source = new string(a.data);
                        if (num2 == (short)10)
                        {
                            b    = (ushort)256;
                            num2 = (short)0;
                        }
                        else
                        {
                            if (num2 == (short)0)
                            {
                                ProgramData += source;
                            }
                            else if (num2 != (short)2)
                            {
                                if (num2 == (short)-2)
                                {
                                    str2 = "Error: " + (object)num2;
                                    num4 = Focas1.cnc_upend3(this.h);
                                    this.ProgramReadError(this.h, 0);
                                    break;
                                }
                                str2 = "Else :: Error: " + (object)num2;
                            }
                            if (source.Contains <char>('%'))
                            {
                                ++num3;
                                if (num3 >= 2)
                                {
                                    string[] strArray = ProgramData.ToString().Split('%');
                                    ProgramData = "%" + strArray[1] + "%";
                                    str2        = ".Success";
                                    num4        = Focas1.cnc_upend3(this.h);
                                    this.ProgramReadError(this.h, 0);
                                    break;
                                }
                            }
                        }
                    }
                    num4 = Focas1.cnc_upend3(this.h);
                    this.ProgramReadError(this.h, 0);
                    if (num3 == 1)
                    {
                        string[] strArray = ProgramData.ToString().Split('%');
                        ProgramData = "%" + strArray[1] + "%";
                        break;
                    }
                    break;

                case 1:
                    str2 = "Parameter(No.20,22:Input device) is wrong";
                    break;

                case 7:
                    str2 = "Write protected on CNC side";
                    break;

                default:
                    str2 = "cnc_upstart3 :: ErrorNo. :" + (object)num1;
                    break;
                }
                int num5 = (int)Focas1.cnc_freelibhndl(this.h);
                break;

            default:
                str2 = focasRet.ToString();
                break;
            }
            return(str2);
        }
        internal void setmachinelock(bool LockStatus, ushort LockDBit = 0, ushort MsgDBit = 0, ushort UnLockDBit = 0)
        {
            Focas1.focas_ret retallclibhndl3 = (Focas1.focas_ret)Focas1.cnc_allclibhndl3(ip, port, timeout, out h);
            if (LockStatus)
            {
                //UnLocking D Bit Parameters
                var    rdpmcdataUnLockBit = new Focas1.IODBPMC0();
                short  adr_typeUn         = 9;
                short  data_typeUn        = 0;
                ushort s_numberUn         = UnLockDBit;
                ushort e_numberUn         = UnLockDBit;
                ushort lengthUn           = 9;

                short rdretUnLock = Focas1.pmc_rdpmcrng(h, adr_typeUn, data_typeUn, s_numberUn, e_numberUn, lengthUn, rdpmcdataUnLockBit);

                var wrpmcdataUn = rdpmcdataUnLockBit;
                wrpmcdataUn.cdata[0] = 0;
                for (int i = 0; i < 100; i++)
                {
                    short wrret = Focas1.pmc_wrpmcrng(h, lengthUn, wrpmcdataUn);
                    if (wrret == 0)
                    {
                        break;
                    }
                }

                //Locking D Bit Parameters
                var    rdpmcdataLockBit = new Focas1.IODBPMC0();
                short  adr_type         = 9;
                short  data_type        = 0;
                ushort s_number         = LockDBit;
                ushort e_number         = LockDBit;
                ushort length           = 9;

                short rdretLock = Focas1.pmc_rdpmcrng(h, adr_type, data_type, s_number, e_number, length, rdpmcdataLockBit);

                //IdleMessage D Bit Parameters
                var    rdpmcdataIdleBit = new Focas1.IODBPMC0();
                short  adr_typeIdle     = 9;
                short  data_typeIdle    = 0;
                ushort s_numberIdle     = MsgDBit;
                ushort e_numberIdle     = MsgDBit;
                ushort lengthIdle       = 9;

                short rdretIDLE = Focas1.pmc_rdpmcrng(h, adr_typeIdle, data_typeIdle, s_numberIdle, e_numberIdle, lengthIdle, rdpmcdataIdleBit);

                //Machine LOCK D Bit
                var wrpmcdata = rdpmcdataLockBit;
                wrpmcdata.cdata[0] = 1;
                for (int i = 0; i < 10; i++)
                {
                    short wrretLOCK = Focas1.pmc_wrpmcrng(h, length, wrpmcdata);
                }

                if (MsgDBit != 0)
                {
                    //IDLE Message D Bit
                    var wrpmcdataIDLE = rdpmcdataIdleBit;
                    wrpmcdataIDLE.cdata[0] = 1;
                    for (int i = 0; i < 10; i++)
                    {
                        short wrretIDLE = Focas1.pmc_wrpmcrng(h, length, wrpmcdataIDLE);
                    }

                    wrpmcdataIDLE.cdata[0] = 0;
                    for (int i = 0; i < 10; i++)
                    {
                        short wrretIDLE = Focas1.pmc_wrpmcrng(h, length, wrpmcdataIDLE);
                    }
                }

                Thread.Sleep(2000);
                //Lock D Bit reverted back to OFF State
                rdretLock = Focas1.pmc_rdpmcrng(h, adr_type, data_type, s_number, e_number, length, rdpmcdataLockBit);
                var wrpmcdata1 = rdpmcdataLockBit;
                wrpmcdata1.cdata[0] = 0;
                for (int i = 0; i < 10; i++)
                {
                    short wrret = Focas1.pmc_wrpmcrng(h, length, wrpmcdata1);
                }
            }
            else
            {
                //UnLocking D Bit Parameters
                var    rdpmcdataLockBit = new Focas1.IODBPMC0();
                short  adr_type         = 9;
                short  data_type        = 0;
                ushort s_number         = LockDBit;
                ushort e_number         = LockDBit;
                ushort length           = 9;

                short rdretLock = Focas1.pmc_rdpmcrng(h, adr_type, data_type, s_number, e_number, length, rdpmcdataLockBit);

                var wrpmcdata1 = rdpmcdataLockBit;
                wrpmcdata1.cdata[0] = 0;
                for (int i = 0; i < 100; i++)
                {
                    short wrret = Focas1.pmc_wrpmcrng(h, length, wrpmcdata1);
                    if (wrret == 0)
                    {
                        break;
                    }
                }
            }
        }