Пример #1
0
        //string sortNum = "0";
        public void OnDataChange(int group, int[] clientId, object[] values)
        {
            if (group == 5)//完成信号
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    string tempvalue = values[i].ToString();
                    if (decimal.Parse(tempvalue) >= 1)//分拣完成
                    {
                        try
                        {
                            if (decimal.Parse(tempvalue) != 0)
                            {
                                WriteLog.GetLog().Write("从电控读取特异型烟任务号:" + tempvalue);
                                //UnPokeClass.UpdateunTask(tempvalue, 20);
                                //sortNum = tempvalue;
                                UnPokeClass.UpdateunTask1(decimal.Parse(tempvalue), 20);
                                try { sortnum = RelenishimentClass.GetMinSortNum(); }
                                catch { }
                                lblSortnum.Text = "当前任务:" + sortnum;
                                //SpecialClass.UpdateSpecialState(decimal.Parse(tempvalue),2);
                                WriteLog.GetLog().Write("特异型烟任务号" + tempvalue + "号任务已完成,数据库更新完成");
                                GetData();
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog.GetLog().Write("服务器连接失败" + ex.Message.ToString());
                            return;
                        }
                    }
                    opcServer.FinishOnlyGroup.Write(0, clientId[i] - 1);
                }
            }
            else if (group == 9)//接收标志
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    if (clientId[i] == 1)//一线任务
                    {
                        try
                        {
                            if (values[i] != null && int.Parse(values[i].ToString()) == 0)
                            {
                                while (!opcServer.ConnectState)
                                {
                                    Thread.Sleep(100);
                                }

                                int receivePackage = int.Parse(opcServer.OnlyTaskGroup.ReadD(i).ToString());
                                if (receivePackage != 0)
                                {
                                    WriteLog.GetLog().Write("特异型烟任务号:" + receivePackage + "已接收");
                                    UnPokeClass.UpdateTask(receivePackage, 15);
                                    //UnPokeClass.UpdateHunhe(receivePackage);
                                }
                                if (opcServer.IsSendOn)//如果任务已经在发送中则返回
                                {
                                    return;
                                }
                                StringBuilder outStr = new StringBuilder();
                                object[]      data   = RelenishimentClass.GetSendTasks(10, out outStr);
                                DelSendTask   task   = new DelSendTask(opcServer.SendOnlyTask);
                                IAsyncResult  result = task.BeginInvoke(data, outStr, null, task);
                                StringBuilder re     = task.EndInvoke(result);
                                if (re.ToString() == "特异型烟道暂无任务")
                                {
                                    databaselinkcheck("特异型烟道暂无任务");
                                    return;
                                }
                                WriteLog.GetLog().Write(re.ToString());
                                GetData();
                            }
                            else
                            {
                                if (values[i] != null && int.Parse(values[i].ToString()) != 0)
                                {
                                    WriteLog.GetLog().Write("补货读到标志位:" + values[i]);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog.GetLog().Write("补货异常信息" + ex.Message);
                        }
                    }
                }
            }
        }
Пример #2
0
        public void OnDataChange(int group, int[] clientId, object[] values)
        {
            if (group == 5)                               //1线完成信号
            {
                for (int i = 0; i < clientId.Length; i++) //"出口号:" + clientId[i] + ";任务号:" + taskno
                {
                    int tempvalue = int.Parse((values[i].ToString()));
                    if (tempvalue >= 1)//分拣完成
                    {
                        try
                        {
                            if (tempvalue != 0)
                            {
                                WriteLog.GetLog().Write(ListLineNum[0] + "线从电控读取出口号:" + clientId[i] + ";任务号:" + tempvalue);
                                UnPokeClass.UpdateunTask(tempvalue, 20);
                                WriteLog.GetLog().Write(ListLineNum[0] + "线烟仓任务号" + tempvalue + "数据库更新完成");

                                GetTaskInfo(ListLineNum[0] + "线烟仓:" + tempvalue + "号任务已完成");
                            }
                        }
                        catch (Exception ex)
                        {
                            GetTaskInfo("服务器连接失败" + ex.Message.ToString());
                            return;
                        }
                    }
                    opcServer.FinishOnlyGroup.Write(0, clientId[i] - 1);
                }
            }
            else if (group == 9)//接收标志
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    if (clientId[i] == 1)//一线任务
                    {
                        try
                        {
                            if (values[i] != null && int.Parse(values[i].ToString()) == 0)
                            {
                                while (!opcServer.ConnectState)
                                {
                                    Thread.Sleep(100);
                                }

                                int receivePackage = int.Parse(opcServer.OnlyTaskGroup.ReadD(i).ToString());

                                if (receivePackage != 0)
                                {
                                    int row = UnPokeClass.UpdateTask1(receivePackage, 15);
                                    if (row > 0)
                                    {
                                        GetTaskInfo(ListLineNum[0] + "线烟仓任务包号:" + receivePackage + "已接收");
                                    }
                                    else
                                    {
                                        GetTaskInfo("线烟仓任务包号:" + receivePackage + "已接收但未更新到数据库");
                                    }
                                }
                                if (opcServer.IsSendOn)//如果任务已经在发送中则返回
                                {
                                    return;
                                }

                                StringBuilder outStr = new StringBuilder();
                                object[]      data   = UnPokeClass.GetOneDateBaseTask(10, "1", out outStr);
                                DelSendTask   task   = new DelSendTask(opcServer.SendOnlyTask);
                                IAsyncResult  result = task.BeginInvoke(data, outStr, null, task);
                                StringBuilder re     = task.EndInvoke(result);
                                GetTaskInfo(re.ToString());
                            }
                            else
                            {
                                if (values[i] != null && int.Parse(values[i].ToString()) != 0)
                                {
                                    WriteLog.GetLog().Write(ListLineNum[0] + "线烟仓读到标志位:" + values[i]);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog.GetLog().Write(ListLineNum[0] + "线烟仓异常信息" + ex.Message);
                        }
                    }
                }
            }
        }
Пример #3
0
        public void OnDataChange(int group, int[] clientId, object[] values)
        {
            if (group == 5)//完成信号
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    string tempvalue = values[i].ToString();
                    if (decimal.Parse(tempvalue) >= 1)//分拣完成
                    {
                        try
                        {
                            if (decimal.Parse(tempvalue) != 0)
                            {
                                WriteLog.GetLog().Write("从电控读取补货任务号:" + tempvalue);
                                RelenishimentClass.Completed(tempvalue);
                                sortnum = tempvalue;
                                WriteLog.GetLog().Write("补货任务号" + tempvalue + "号任务已完成,数据库更新完成");
                                GetData();
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog.GetLog().Write("服务器连接失败" + ex.Message.ToString());
                            return;
                        }
                    }
                    opcServer.FinishOnlyGroup.Write(0, clientId[i] - 1);
                }
            }
            else if (group == 9)//接收标志
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    if (clientId[i] == 1)//一线任务
                    {
                        try
                        {
                            if (values[i] != null && int.Parse(values[i].ToString()) == 0)
                            {
                                while (!opcServer.ConnectState)
                                {
                                    Thread.Sleep(100);
                                }

                                int receivePackage = int.Parse(opcServer.OnlyTaskGroup.ReadD(i).ToString());
                                if (receivePackage != 0)
                                {
                                    WriteLog.GetLog().Write("补货任务号:" + receivePackage + "已接收");
                                    try
                                    {
                                        RelenishimentClass.UpdateReplanTask(receivePackage.ToString(), 15);
                                    }
                                    catch { }
                                }
                                if (opcServer.IsSendOn)//如果任务已经在发送中则返回
                                {
                                    return;
                                }
                                StringBuilder outStr = new StringBuilder();
                                object[]      data   = RelenishimentClass.GetSendTask(10, out outStr);
                                DelSendTask   task   = new DelSendTask(opcServer.SendOnlyTask);
                                IAsyncResult  result = task.BeginInvoke(data, outStr, null, task);
                                StringBuilder re     = task.EndInvoke(result);
                                //try
                                //{
                                //    RelenishimentClass.UpdateReplanTask(data[0].ToString(), 15);
                                //}
                                //catch { }
                                WriteLog.GetLog().Write(re.ToString());
                            }
                            else
                            {
                                if (values[i] != null && int.Parse(values[i].ToString()) != 0)
                                {
                                    WriteLog.GetLog().Write("补货读到标志位:" + values[i]);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog.GetLog().Write("补货异常信息" + ex.Message);
                        }
                    }
                }
            }
        }