示例#1
0
        /// <summary>
        /// plc数据发生改变时触发事件
        /// </summary>
        /// <param name="group">plc的DB块组</param>
        /// <param name="clientId">DB块集合</param>
        /// <param name="values">返回的值</param>
        public async void OnDataChange(int group, int[] clientId, object[] values)
        {
            #region
            //if (group == 1)//倍速链 任务发送块组
            //{
            //    for (int i = 0; i < clientId.Length; i++)
            //    {
            //        if (clientId[i] == 8)//接收信号位
            //        {

            //            int packtasknum = int.Parse(plc.ShapeGroup1.Read(0).ToString());//任务号
            //            int tempvalue = int.Parse(plc.ShapeGroup1.Read(7).ToString());//接收信号
            //            if (tempvalue == 0)//如果有接收信号
            //            {
            //                try
            //                {
            //                    //FmInfo.AutoRefreshShow(packtasknum);//更新垛型展示
            //                    //读取接收信号的任务 数据库置接收
            //                    if (packtasknum > 0)
            //                    {
            //                        if (plc.UpDateToYxyState(packtasknum, 15))
            //                        {
            //                            FmInfo.GetTaskInfo("链板机收到任务号" + packtasknum + ",更新已接收!");
            //                        }
            //                        else
            //                        {
            //                            FmInfo.GetTaskInfo("链板机收到任务号" + packtasknum + ",更新失败!");
            //                        }
            //                    }
            //                    //更改标志位 写入新任务
            //                    var x = await Task.Run(() => plc.WriteTaskSend_YXY());
            //                }
            //                catch (Exception ex)
            //                {
            //                    FmInfo.GetTaskInfo("服务器连接失败!" + ex.Message);
            //                    return;
            //                }
            //            }
            //        }
            //    }
            //}
            //else
            #endregion
            if (group == 2)//异型烟倍速链 完成信号块组
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    //完成任务号
                    int tempvalue = int.Parse(values[i].ToString());
                    if (tempvalue > 0)
                    {
                        //try
                        //{
                        if (tempvalue != 0)
                        {
                            FmInfo.GetTaskInfo("异型烟倍速链:任务号" + tempvalue + "完成");
                            FmInfo.GetTaskInfo(plc.ReadAndWriteYXYTaskConpelte(tempvalue, i));    //更新数据库 更新DB块
                            // FmInfo.AutoRefreshShow(tempvalue);//更新跺形显示 暂时用常规烟任务号刷新(2019/04/26)
                        }
                        //}
                        //catch (Exception ex)
                        //{
                        //    FmInfo.GetTaskInfo("异型烟倍速链:服务器连接失败!" + ex.Message);
                        //    return;
                        //}
                    }
                }
            }

            if (group == 3)//常规烟 完成信号块组
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    //完成任务号
                    int tempvalue = int.Parse(values[i].ToString());
                    if (tempvalue > 0)
                    {
                        //try
                        //{
                        if (tempvalue != 0)
                        {
                            FmInfo.GetTaskInfo("常规烟翻版:任务包号" + tempvalue + "完成");
                            FmInfo.GetTaskInfo(plc.ReadAndWriteCGYTaskConpelte(tempvalue, i)); //更新数据库 更新DB块
                            FmInfo.AutoRefreshShow(tempvalue);                                 //更新跺形显示
                        }
                        //}
                        //catch (Exception ex)
                        //{
                        //    FmInfo.GetTaskInfo("常规烟翻版:服务器连接失败!" + ex.Message);
                        //    return;
                        //}
                    }
                }
            }
            else if (group == 6)//标志位监控组
            {
                for (int i = 0; i < clientId.Length; i++)
                {
                    if (clientId[i] == 1)                                              //倍速链任务
                    {
                        if (values[i] != null && int.Parse(values[i].ToString()) == 0) //接收
                        {
                            int tasknum = plc.ShapeGroup1.ReadD(0).CastTo(-1);         //读取到包号
                            if (tasknum > 0)
                            {
                                plc.UpDateToYxyState(tasknum, 15);//更新任务为接收
                                FmInfo.GetTaskInfo("异型烟倍速链:任务包号:" + tasknum + "已经接收!");
                            }
                            //if (plc.startatg)
                            //{
                            //    FmInfo.GetTaskInfo("倍速链,任务已经处于发送状态,接收到多的跳变信号!");
                            //    return;
                            //}
                            string x = await plc.WriteTaskSend_YXY();

                            FmInfo.GetTaskInfo(x);
                        }
                    }
                    else

                    if (clientId[i] == 2)                                              //常规烟 翻版任务
                    {
                        if (values[i] != null && int.Parse(values[i].ToString()) == 0) //接收
                        {
                            int tasknum = plc.ShapeGroup4.ReadD(0).CastTo(-1);         //读取到包号
                            if (tasknum > 0)
                            {
                                plc.UpDateToCgyState(tasknum, 15);//更新任务为接收
                                FmInfo.GetTaskInfo("常规烟翻版:任务包号:" + tasknum + "已经接收!");
                            }
                            //if (plc.startatg)
                            //{
                            //    FmInfo.GetTaskInfo("常规烟,任务已经处于发送状态,接收到多的跳变信号!");
                            //    return;
                            //}
                            string x = await plc.WriteTaskSend_CGY();

                            FmInfo.GetTaskInfo(x);
                        }
                    }
                }
            }
        }