Beispiel #1
0
        void ReadFinish()
        {
            List <string> list = new List <string>();

            list = PlcItemCollection.GetFinishUnnormalItem();
            for (int i = 0; i < list.Count; i++)
            {
                int receivePackage = int.Parse(opcServer.FinishOnlyGroup.ReadD(i).ToString());
                if (receivePackage != 0)
                {
                    WriteLog.GetLog().Write("从电控读取特异型烟任务号:" + receivePackage);
                    UnPokeClass.UpdateunTask1(receivePackage, 20);
                    try { sortnum = RelenishimentClass.GetMinSortNum(); }
                    catch { }
                    lblSortnum.Text = "当前任务:" + sortnum;
                    opcServer.FinishOnlyGroup.Write(0, i);
                }
            }
        }
Beispiel #2
0
        public MainScreen()
        {
            InitializeComponent();
            //OpenSerialPort();
            lbladded = new Label[15]
            {
                LblAdded1, LblAdded2, LblAdded3, LblAdded4, LblAdded5, LblAdded6, LblAdded7, LblAdded8, LblAdded9, LblAdded10, LblAdded11, LblAdded12, LblAdded13, LblAdded14, LblAdded15
            };
            lbladd = new Label[15]
            {
                LblAdd1, LblAdd2, LblAdd3, LblAdd4, LblAdd5, LblAdd6, LblAdd7, LblAdd8, LblAdd9, LblAdd10, LblAdd11, LblAdd12, LblAdd13, LblAdd14, LblAdd15
            };
            try { sp_name = ConfigurationManager.AppSettings["SerialPort"].ToString(); }
            catch { sp_name = "COM2"; }
            CheckForIllegalCrossThreadCalls = false;
            machineSeq        = 1;
            groupNo           = 1;
            lblpack           = new Label();
            lblpack.BackColor = Color.Transparent;
            lblpack.Font      = new Font("宋体", 10, FontStyle.Bold | FontStyle.Italic);

            lblpack.Name     = "lblpack";
            lblpack.Text     = "特异型烟道补货顺序";
            lblpack.Location = new Point(Convert.ToInt32(64), 7);
            lblpack.Size     = new Size(300, 20);

            panel1.Controls.Add(lblpack);
            OpenSerialPort();
            TSender.Start();
            BGWConn.RunWorkerAsync();
            //ProgramAutoRun.SetMeStart(true);
            try { sortnum = RelenishimentClass.GetMinSortNum(); }
            catch { }
            lblSortnum.Text = "当前任务:" + sortnum;
            GetData();

            X = this.Width;  //获取窗体的宽度
            Y = this.Height; //获取窗体的高度
            SetTag(this);    //调用方法
        }
Beispiel #3
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);
                        }
                    }
                }
            }
        }