示例#1
0
        private void bTestMessageBoxQuestion_Click(object sender, RoutedEventArgs e)
        {
            WPFMessageBoxResult result = WPFMessageBox.ShowQuestion((sender as Button).Content.ToString(), "测试");

            WPFMessageBox.ShowInfo((result == WPFMessageBoxResult.Yes ? "Yes" :
                                    result == WPFMessageBoxResult.No ? "NO" : "Cancel"), "结果");
        }
示例#2
0
        //UI6下降沿
        private void BtnPauseStart_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                FmsAssetTagSetting tag = DeviceMonitor.GetTagSettings("TAG_CODE = 'UI6'").FirstOrDefault();

                if (tag == null)
                {
                    return;
                }

                Cursor = Cursors.Wait;
                int    ret    = 0;
                string error  = "";
                int    iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                if (ret != 0)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }

                Thread.Sleep(500);

                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                Cursor = Cursors.Arrow;
                if (ret == 0)
                {
                    WPFMessageBox.ShowInfo("机器人的暂停后启动信息已经成功给出!", "启动机器人");
                }
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Arrow;
            }
        }
示例#3
0
        //测试
        private void BtnTest_Click(object sender, RoutedEventArgs e)
        {
            TbTestResult.Text = "";
            RefreshCalculationText();

            Type dynamicCode = null;                                                       //获取编译后代码,调用该类用
            Dictionary <string, Dictionary <string, string> >
            FuncAndParamTagPKNO = new Dictionary <string, Dictionary <string, string> >(); //函数和对应参数的Tag的PKNO

            string className = "C" + Guid.NewGuid().ToString("N");

            try
            {
                Cursor = Cursors.Wait;

                #region 形成执行的代码

                string execCode = "using System; \r\n" +
                                  "using System.Text; \r\n" +
                                  "using System.Collections.Generic; \r\n" +
                                  "using BFM.Common.Base; \r\n\r\n";

                execCode += "public class " + className + "\r\n" +
                            "{ \r\n";

                string basicFuc = "AutoCalculation";

                int index = 1;
                FuncAndParamTagPKNO.Clear();

                string exp = CalculationText;                                             //表达式

                string funcname = basicFuc + index.ToString();                            //函数名称
                Dictionary <string, string> paramTas = new Dictionary <string, string>(); //参数对应的标签的PKNO, param名称

                List <string> funcParam = new List <string>();                            //带类型的参数

                string code = "";

                foreach (var line in exp.Split(new string[] { "\r\n" }, StringSplitOptions.None))
                {
                    string ret = line;

                    #region 替换标签值,将标签替换成参数名

                    string[] expTags = line.Split('{');

                    for (int i = 0; i < expTags.Length; i++)
                    {
                        string str    = expTags[i];
                        int    length = str.IndexOf('}');

                        if (length < 0) //没有找到  }
                        {
                            continue;
                        }

                        string tagPKNO = str.Substring(0, length); //{ } 内为PKNO

                        string param = "{" + tagPKNO + "}";

                        if (paramTas.ContainsKey(tagPKNO))  //已经添加了该参数
                        {
                            param = paramTas[tagPKNO];
                        }
                        else
                        {
                            FmsAssetTagSetting tag = DeviceTags.FirstOrDefault(s => s.PKNO == tagPKNO);
                            if (tag == null)
                            {
                                continue;
                            }

                            param = "param" + paramTas.Count;
                            paramTas.Add(tagPKNO, param);
                            string paramType = "string";
                            //string paramType = ((CalculationType == 2) || (tag.VALUE_TYPE > 0 && tag.VALUE_TYPE < 20))
                            //    ? "double"
                            //    : "string";
                            funcParam.Add(paramType + " " + param);
                        }

                        ret = ret.Replace("{" + tagPKNO + "}", param);
                    }

                    #endregion

                    if (string.IsNullOrEmpty(code))
                    {
                        code = "    " + ret;
                    }
                    else
                    {
                        code += Environment.NewLine + "    " + ret;
                    }
                }

                //C#脚本
                //支持C#语法,最后返回值(Double/String)
                string resultType = "string";

                //确定返回结果类型,将code语句转换成C#的语句
                if (CalculationType == 1) //逻辑运算
                {
                    //(结果为1,0):({标签1}==1)&&({标签2}==1)&&({标签3}==0||{标签4}==0)&&({标签5}==1)
                    code       = code.Replace("AND", "&&").Replace("and", "&&").Replace("OR", "||").Replace("or", "||");
                    resultType = "bool";
                }
                else if (CalculationType == 2) //数值运算
                {
                    //{标签1}+3+{标签2}+4
                    resultType = "double";
                }
                else if (CalculationType == 3) //字符运算
                {
                    //{标签1}+"123"
                }
                else if (CalculationType == 12) //条件数值运算
                {
                    //{标签1}==3:{标签2}+1;{标签1}==4:{标签2}+2;{标签1}==5:{标签2}+3
                    resultType = "double";
                    List <string> exps = code.Split(';').ToList();
                    string        temp = "";
                    foreach (var exp1 in exps)
                    {
                        if (exp1.Split(':').Length < 2)
                        {
                            continue;
                        }
                        temp += "        if (" + exp1.Split(':')[0] + ") { return (" + exp1.Split(':')[1] + "); } \r\n";
                    }

                    temp += "        return 0; \r\n";

                    code = temp;
                }
                else if (CalculationType == 13) //条件字符运算
                {
                    //{标签1}==3:{标签1}+"123";{标签1}==4:{标签1}+"123"
                    List <string> exps = code.Split(';').ToList();
                    string        temp = "";
                    foreach (var exp1 in exps)
                    {
                        if (exp1.Split(':').Length < 2)
                        {
                            continue;
                        }
                        temp += "        if (" + exp1.Split(':')[0] + ") { return (" + exp1.Split(':')[1] + ").ToString(); } \r\n";
                    }

                    temp += "        return \"\"; \r\n";

                    code = temp;
                }
                else if (CalculationType == 21)
                {
                    resultType = "string";//{标签1};3
                    List <string> exps = code.Split(';').ToList();
                    string        temp = "";
                    if (exps.Count >= 2)
                    {
                        int arrayIndex = SafeConverter.SafeToInt(exps[1].Trim(), 0);
                        temp += "            if ( " + exps[0].Trim() + ".Split('|').Length > " + arrayIndex + ") { return " + exps[0].Trim() + ".Split('|')[" + arrayIndex + "]; } \r\n";
                    }

                    temp += "        return \"\"; \r\n";

                    code = temp;
                }
                else if (CalculationType == 100) //C#脚本
                {
                    //支持C#语法,最后返回值(Double/String)
                    resultType = "string";
                }
                else  //不支持的类型
                {
                    code = $"        return \"计算类型[{CalculationType}],不支持的类型。\"; \r\n";
                }

                execCode += DynamicCode.BuildExecFunc(funcname, resultType, code, funcParam);

                FuncAndParamTagPKNO.Add(funcname, paramTas); //添加

                execCode += "}\r\n";

                #endregion

                #region 编译代码

                CodeDomProvider    compiler = new CSharpCodeProvider();
                CompilerParameters cp       = new CompilerParameters()
                {
                    GenerateExecutable = false, GenerateInMemory = true,
                };
                cp.ReferencedAssemblies.Add("BFM.Common.Base.dll");
                CompilerResults cr = compiler.CompileAssemblyFromSource(cp, execCode);
                if (cr.Errors.HasErrors)
                {
                    WPFMessageBox.ShowError("测试失败,语法错误.\r\n" + execCode, "测试");
                    return;
                }

                dynamicCode = cr.CompiledAssembly.GetType(className); //获取

                #endregion

                #region 获取值

                index = 0;
                string        funcName    = FuncAndParamTagPKNO.Keys.ToList()[index];
                var           tagParms    = FuncAndParamTagPKNO.Values.ToList()[index];
                List <object> paramValues = new List <object>(); //参数值

                foreach (var tagpkno in tagParms)                //参数
                {
                    object             value;
                    FmsAssetTagSetting tagParam = DeviceTags.FirstOrDefault(s => s.PKNO == tagpkno.Key);

                    if (tagParam != null)
                    {
                        value = SafeConverter.SafeToStr(tagParam.CUR_VALUE);
                        //if ((CalculationType == 2) || (tagParam.VALUE_TYPE > 0 && tagParam.VALUE_TYPE < 20))
                        //{
                        //    value = SafeConverter.SafeToDouble(tagParam.CUR_VALUE);
                        //}
                        //else
                        //{
                        //    value = SafeConverter.SafeToStr(tagParam.CUR_VALUE);
                        //}
                    }
                    else
                    {
                        value = "";
                    }

                    paramValues.Add(value);
                }

                object obj = dynamicCode.InvokeMember(funcName,
                                                      BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod,
                                                      System.Type.DefaultBinder, null, paramValues.ToArray());

                string newValue = "";     //新的计算结果

                if (CalculationType == 1) //逻辑运算
                {
                    newValue = SafeConverter.SafeToBool(obj) ? "1" : "0";
                }
                else
                {
                    newValue = SafeConverter.SafeToStr(obj);
                }

                Console.WriteLine("测试结果:" + newValue);

                TbTestResult.Text = newValue;

                #endregion

                WPFMessageBox.ShowInfo("测试成功. \r\n测试结果为:" + newValue, "测试");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                WPFMessageBox.ShowError("测试失败,错误为:" + ex.Message, "测试");
            }
            finally
            {
                Cursor = Cursors.Arrow;
            }
        }
示例#4
0
        private void Btn_Start2Click(object sender, RoutedEventArgs e)
        {
            WcfClient <IPLMService> ws2     = new WcfClient <IPLMService>();
            string             LineCode     = CBaseData.CurLinePKNO;//加工单元
            List <MesJobOrder> mesJobOrders =
                ws2.UseService(s =>
                               s.GetMesJobOrders(
                                   $"USE_FLAG = 1 AND RUN_STATE < 100 AND LINE_PKNO = '{LineCode}'"))
                .OrderBy(c => c.CREATION_DATE).ToList();

            if (mesJobOrders.Count > 20)
            {
                WaitLoading.SetDefault(this);
                WPFMessageBox.ShowError("当前订单过多,请等待加工完成", "加工工单");
                return;
            }

            if (WPFMessageBox.ShowConfirm("确定下达加工工单么吗?\r\n" +
                                          "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n",
                                          "加工工单") != WPFMessageBoxResult.OK)
            {
                return;
            }

            //后台执行添加
            new Thread(delegate()
            {
                WaitLoading.SetWait(this);
                Thread.Sleep(1000);

                DateTime jobOrderTime = DateTime.Now.AddSeconds(-10);
                int iJobOrderIndex    = 0;

                List <MesJobOrder> jobOrders             = new List <MesJobOrder>();       //所有订单
                List <MesProcessCtrol> processCtrols     = new List <MesProcessCtrol>();   //控制流程
                List <WmsAllocationInfo> allocationInfos = new List <WmsAllocationInfo>(); //需要修改的货位

                Dictionary <string, string> ParamValues = new Dictionary <string, string>();
                MesJobOrder job     = null;
                string sFormulaCode = "";
                List <FmsActionFormulaDetail> formulaDetails;
                List <RsItemMaster> items = wsRsm.UseService(s => s.GetRsItemMasters("USE_FLAG = 1"));

                RsItemMaster gyroscope = items.FirstOrDefault(c => c.ITEM_NAME == "指尖陀螺"); //产品信息


                #region 2.车床上料



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                                                         //ParamValues.Add("{加工数量}", this.txt_Qty2.Text);

                #endregion

                sFormulaCode = "车床上料";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 3.加工中心上料



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                                                         //ParamValues.Add("{加工数量}", this.txt_Qty2.Text);

                #endregion

                sFormulaCode = "加工中心上料";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 4.1.AGV充电



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                                                         //ParamValues.Add("{加工数量}", this.txt_Qty2.Text);

                #endregion

                sFormulaCode = "AGV充电";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 4.2 加工中心先下料再上料



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                                                         //ParamValues.Add("{加工数量}", this.txt_Qty2.Text); //生产设备

                #endregion

                sFormulaCode = "加工中心先下料再上料";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 4.3.AGV充电



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                //ParamValues.Add("{加工数量}", this.txt_Qty2.Text); //生产设备

                #endregion

                sFormulaCode = "AGV充电";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 4.4 加工中心先下料再上料



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                //ParamValues.Add("{加工数量}", this.txt_Qty2.Text); //生产设备

                #endregion

                sFormulaCode = "加工中心先下料再上料";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion


                #region 4.3.AGV充电



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                //ParamValues.Add("{加工数量}", this.txt_Qty2.Text); //生产设备

                #endregion

                sFormulaCode = "AGV充电";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 4.4 加工中心先下料再上料



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                //ParamValues.Add("{加工数量}", this.txt_Qty2.Text); //生产设备

                #endregion

                sFormulaCode = "加工中心先下料再上料";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 4.3.AGV充电



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                //ParamValues.Add("{加工数量}", this.txt_Qty2.Text); //生产设备

                #endregion

                sFormulaCode = "AGV充电";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 5.加工中心下料



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                                                         //ParamValues.Add("{加工数量}", this.txt_Qty2.Text);

                #endregion

                sFormulaCode = "加工中心下料";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion

                #region 6.车床下料



                job = BuildNewJobOrder(gyroscope.PKNO, 2, "陀螺生产", jobOrderTime.AddSeconds(iJobOrderIndex++)); //--形成订单--
                jobOrders.Add(job);

                #region --设定参数--

                ParamValues.Clear();
                ParamValues.Add("{图片名称}", LaserPicName); //定制图片
                                                         //ParamValues.Add("{加工数量}", this.txt_Qty2.Text);

                #endregion

                sFormulaCode = "车床下料";

                #region 形成过程控制

                formulaDetails = wsFms.UseService(s =>
                                                  s.GetFmsActionFormulaDetails($"FORMULA_CODE = '{sFormulaCode}' AND USE_FLAG= 1"))
                                 .OrderBy(c => c.PROCESS_INDEX)
                                 .ToList();

                foreach (var detail in formulaDetails) //配方
                {
                    MesProcessCtrol process = BuildNewProcess(job, detail, ParamValues);

                    processCtrols.Add(process);
                }

                #endregion

                #endregion



                DeviceProcessControl.PauseByLine(CBaseData.CurLinePKNO); //暂停,防止任务直接执行

                #region 保存数据

                foreach (var allocationInfo in allocationInfos)
                {
                    ws.UseService(s => s.UpdateWmsAllocationInfo(allocationInfo));
                    Thread.Sleep(100);
                }

                foreach (var ctrol in processCtrols)
                {
                    wsPlm.UseService(s => s.AddMesProcessCtrol(ctrol));
                    Thread.Sleep(100);
                }

                foreach (var jobOrder in jobOrders) //订单
                {
                    wsPlm.UseService(s => s.AddMesJobOrder(jobOrder));
                    Thread.Sleep(100);
                }

                #endregion

                DeviceProcessControl.RunByLine(CBaseData.CurLinePKNO); //启动动作流程

                WaitLoading.SetDefault(this);

                WPFMessageBox.ShowInfo("FCS订单已下达", "指尖陀螺加工");
            }).Start();
        }
示例#5
0
        private void bTestMessageBoxConfirm_Click(object sender, RoutedEventArgs e)
        {
            WPFMessageBoxResult result = WPFMessageBox.ShowConfirm((sender as Button).Content.ToString(), "测试");

            WPFMessageBox.ShowInfo((result == WPFMessageBoxResult.OK ? "OK" : "Cancel"), "结果");
        }
示例#6
0
 private void bTestMessageBoxInfo_Click(object sender, RoutedEventArgs e)
 {
     WPFMessageBox.ShowInfo((sender as Button).Content.ToString(), "测试");
 }
示例#7
0
        private void btnRestDevice1_Click(object sender, RoutedEventArgs e)
        {
            //创胜特尔
            try
            {
                Cursor = Cursors.Wait;
                string assetCode = "SH00003";

                int                ret        = 0;
                string             error      = "";
                int                iWrite     = 0;
                string             tagAddress = "";
                FmsAssetTagSetting tag        = null;

                tagAddress = "#120";
                #region 清空换刀刀号

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "#121";
                #region 清空下次换刀刀号

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "E520.0";
                #region 清空启动程序

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "E521.0";
                #region 清空 机床加工下发/完成

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "E521.1";
                #region 清空 机床换刀中

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "E530";
                #region 清空 机床加工程序号

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "E531.0";
                #region 清空 机床松开刀

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "E532.0";
                #region 清空 机床拉紧刀

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagAddress = "E533.0";
                #region 清空 机器人离开机床

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                Cursor = Cursors.Arrow;

                if (ret == 0)
                {
                    WPFMessageBox.ShowInfo("1#机床(创胜特尔)的FCS状态已复位.", "复位机床状态");
                }
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Arrow;
            }
        }
示例#8
0
        //UI18下降沿
        private void BtnStart_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Cursor = Cursors.Wait;

                int                ret     = 0;
                string             error   = "";
                int                iWrite  = 0;
                string             tagCode = "";
                FmsAssetTagSetting tag     = null;
                #region 清空相关DI
                #region 清空DI271
                tagCode = "DI271";
                tag     = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                #region 清空DI272
                tagCode = "DI272";
                tag     = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion
                #region 清空DI275
                tagCode = "DI275";
                tag     = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion
                #region 清空DI276
                tagCode = "DI276";
                tag     = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                #region 清空DI277
                tagCode = "DI277";
                tag     = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                #region AGV寄存器清空
                tagCode = "1005";
                tag     = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion
                #endregion
                tagCode = "清空机器人GI";
                #region 清空GI

                tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion


                tagCode = "UI5";
                #region 给出UI5

                tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagCode = "UI17";
                #region 给出UI17

                tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                Thread.Sleep(300);

                tagCode = "UI18";
                #region UI18 下降沿

                tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                if (ret != 0)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }

                Thread.Sleep(300);

                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                Thread.Sleep(1000);

                tagCode = "UI17";
                #region 清空 UI17

                tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                tagCode = "UI5";
                #region 清空 UI5

                tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "0", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                Cursor = Cursors.Arrow;

                if (ret == 0)
                {
                    WPFMessageBox.ShowInfo("机器人启动信号已经成功给出.", "启动机器人");
                }
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Arrow;
            }
        }
示例#9
0
        //机器人使能
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            //机器人使能UI1=1 UI2=1 UI3=1 UI8=1 UI9=1
            FmsAssetTagSetting tag = null;
            int    ret             = 0;
            string error           = "";
            int    iWrite          = 0;
            string tagCode         = "UI1";



            tagCode = "UI1";
            #region 给出使能

            tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

            if (tag == null)
            {
                return;
            }
            iWrite = 0;
            while (iWrite < ReWriteCount)
            {
                ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                if (ret == 0)
                {
                    break;
                }
                iWrite++;
                Thread.Sleep(100);
            }

            #endregion

            tagCode = "UI2";
            #region 给出使能

            tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

            if (tag == null)
            {
                return;
            }
            iWrite = 0;
            while (iWrite < ReWriteCount)
            {
                ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                if (ret == 0)
                {
                    break;
                }
                iWrite++;
                Thread.Sleep(100);
            }

            #endregion

            tagCode = "UI3";
            #region 给出使能

            tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

            if (tag == null)
            {
                return;
            }
            iWrite = 0;
            while (iWrite < ReWriteCount)
            {
                ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                if (ret == 0)
                {
                    break;
                }
                iWrite++;
                Thread.Sleep(100);
            }

            #endregion

            tagCode = "UI8";
            #region 给出使能

            tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

            if (tag == null)
            {
                return;
            }
            iWrite = 0;
            while (iWrite < ReWriteCount)
            {
                ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                if (ret == 0)
                {
                    break;
                }
                iWrite++;
                Thread.Sleep(100);
            }

            #endregion

            tagCode = "UI9";
            #region 给出使能

            tag = DeviceMonitor.GetTagSettings($"TAG_CODE = '{tagCode}'").FirstOrDefault();

            if (tag == null)
            {
                return;
            }
            iWrite = 0;
            while (iWrite < ReWriteCount)
            {
                ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                if (ret == 0)
                {
                    break;
                }
                iWrite++;
                Thread.Sleep(100);
            }

            #endregion

            if (ret == 0)
            {
                WPFMessageBox.ShowInfo("机器人使能已经给出.", "启动机器人");
            }
        }
示例#10
0
        private void btnRestDevice2_Click(object sender, RoutedEventArgs e)
        {
            //英伟达
            try
            {
                Cursor = Cursors.Wait;
                string assetCode = "SH00002";

                int                ret        = 0;
                string             error      = "";
                int                iWrite     = 0;
                string             tagAddress = "";
                FmsAssetTagSetting tag        = null;
                tagAddress = "E530";
                #region 初始化101程序

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "101", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion


                tagAddress = "E520.0";
                #region 初始化开始状态

                tag = DeviceMonitor.GetTagSettings($"ASSET_CODE = '{assetCode}' AND TAG_ADDRESS = '{tagAddress}'").FirstOrDefault();

                if (tag == null)
                {
                    Cursor = Cursors.Arrow;
                    return;
                }
                iWrite = 0;
                while (iWrite < ReWriteCount)
                {
                    ret = DeviceMonitor.WriteTagToDevice(tag.PKNO, "1", out error);
                    if (ret == 0)
                    {
                        break;
                    }

                    iWrite++;
                    Thread.Sleep(100);
                }

                #endregion

                Cursor = Cursors.Arrow;

                if (ret == 0)
                {
                    WPFMessageBox.ShowInfo("2#机床(英伟达)的FCS状态已复位.", "复位机床状态");
                }
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Arrow;
            }
        }