/// <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); } } } } }