Exemplo n.º 1
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            switch (stateItem.ItemName)
            {
            case "TaskFinished01":
            case "TaskFinished02":
                object[] obj = ObjectUtil.GetObjects(stateItem.State);

                if (obj == null)
                {
                    return;
                }
                string TaskNo = ConvertStringChar.BytesToString(obj);

                //存储过程处理
                if (TaskNo.Length > 0)
                {
                    DataParameter[] para = new DataParameter[] { new DataParameter("{0}", string.Format("Task.TaskNo='{0}'", TaskNo)) };
                    DataTable       dt   = bll.FillDataTable("WCS.SelectElevatorTask", para);
                    if (dt.Rows.Count > 0)
                    {
                        string TaskType = dt.Rows[0]["TaskType"].ToString();


                        if (TaskType == "12")
                        {
                            bll.ExecNonQuery("WCS.UpdateCellEmpty", new DataParameter[] { new DataParameter("@CellCode", dt.Rows[0]["CellCode"].ToString()) });
                            bll.ExecNonQuery("WCS.UpdateTaskByFilter", new DataParameter[] { new DataParameter("{0}", "State=11,Car_FinishDate=getdate()"), new DataParameter("{1}", string.Format("TaskNo='{0}'", TaskNo)) });
                        }
                        else
                        {
                            DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) };
                            bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param);
                        }
                    }

                    byte[] b = new byte[30];
                    ConvertStringChar.stringToByte("", 30).CopyTo(b, 0);
                    WriteToService(stateItem.Name, stateItem.ItemName, b);
                    Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo);
                }

                break;

            case "Run":
                blRun = (int)stateItem.State == 1;
                if (blRun)
                {
                    tmWorkTimer.Start();
                    Logger.Info("换层提升机联机");
                }
                else
                {
                    tmWorkTimer.Stop();
                    Logger.Info("换层提升机脱机");
                }
                break;

            default:
                break;
            }
        }
Exemplo n.º 2
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            switch (stateItem.ItemName)
            {
            case "TaskFinished01":
            case "TaskFinished02":
                object[] obj = ObjectUtil.GetObjects(stateItem.State);

                if (obj == null)
                {
                    return;
                }
                string TaskNo = ConvertStringChar.BytesToString(obj);
                {
                    //存储过程处理
                    if (TaskNo.Length > 0)
                    {
                        byte[] b = new byte[30];
                        ConvertStringChar.stringToByte("", 30).CopyTo(b, 0);
                        WriteToService(stateItem.Name, stateItem.ItemName, b);

                        Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo);
                        DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) };
                        bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param);
                    }
                    //上报总控WCS,下架完成
                }
                break;

            case "CarAlarm01":
            case "CarAlarm02":
                object obj1 = ObjectUtil.GetObject(stateItem.State);
                if (obj1 == null)
                {
                    return;
                }
                if (obj1.ToString() != "0")
                {
                    string    strError = "";
                    DataRow[] drs      = dtDeviceAlarm.Select(string.Format("Flag=2 and AlarmCode={0}", obj1.ToString()));
                    if (drs.Length > 0)
                    {
                        strError = drs[0]["AlarmCode"].ToString();
                    }
                    else
                    {
                        strError = "穿梭车未知错误!";
                    }
                    Logger.Error(strError);
                }
                break;

            case "ElevatorAlarm":
                object obj2 = ObjectUtil.GetObject(stateItem.State);
                if (obj2 == null)
                {
                    return;
                }
                if (obj2.ToString() != "0")
                {
                    string    strError = "";
                    DataRow[] drs      = dtDeviceAlarm.Select(string.Format("Flag=3 and AlarmCode={0}", obj2.ToString()));
                    if (drs.Length > 0)
                    {
                        strError = drs[0]["AlarmCode"].ToString();
                    }
                    else
                    {
                        strError = "提升机未知错误!";
                    }
                    Logger.Error(strError);
                }
                break;

            case "Run":
                blRun = (int)stateItem.State == 1;
                if (blRun)
                {
                    tmWorkTimer.Start();
                    Logger.Info("提升机联机");
                }
                else
                {
                    tmWorkTimer.Stop();
                    Logger.Info("提升机脱机");
                }
                break;

            default:
                break;
            }


            return;
        }
Exemplo n.º 3
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            switch (stateItem.ItemName)
            {
            case "TaskFinished01":
            case "TaskFinished02":


                try
                {
                    object[] obj = ObjectUtil.GetObjects(stateItem.State);

                    Logger.Debug("收到完成信号,PLC编号:" + stateItem.Name + "小车号:" + stateItem.ItemName + "任务号:" + ConvertStringChar.BytesToString(obj));
                    if (obj == null)
                    {
                        return;
                    }
                    string TaskNo = ConvertStringChar.BytesToString(obj);

                    //存储过程处理
                    if (TaskNo.Length > 0)
                    {
                        byte[] b = new byte[30];
                        ConvertStringChar.stringToByte("", 30).CopyTo(b, 0);
                        WriteToService(stateItem.Name, stateItem.ItemName, b);

                        Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo);
                        DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) };
                        bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param);

                        DataParameter[] para = new DataParameter[] { new DataParameter("{0}", string.Format("WCS_Task.TaskNo='{0}'", TaskNo)) };
                        DataTable       dt   = bll.FillDataTable("WCS.SelectTask", para);

                        if (dt.Rows.Count > 0)
                        {
                            string TaskType = dt.Rows[0]["TaskType"].ToString();
                            if (TaskType == "12")
                            {
                                string Barcode = dt.Rows[0]["PalletBarcode"].ToString();
                                byte[] barcode = new byte[20];
                                ConvertStringChar.stringToByte(Barcode, 20).CopyTo(barcode, 0);
                                WriteToService(stateItem.Name, "OutLocation01", barcode);
                            }
                        }

                        report.Send2MJWcs(base.Context, 3, TaskNo);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Error("小车完成过程中出错" + ex.ToString());
                }
                //上报总控WCS,下架完成

                break;

            case "Run":
                blRun = (int)stateItem.State == 1;
                if (blRun)
                {
                    tmWorkTimer.Start();
                    Logger.Info("提升机联机");
                }
                else
                {
                    tmWorkTimer.Stop();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    Logger.Info("提升机脱机");
                }
                break;

            default:
                break;
            }
        }