using iWareSda_QQJF.SrmTranModel; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using logtxtWrite; using Newtonsoft.Json; using System.Threading; using iWareSda_QQJF.WCSNEW.EDM; using iWareSda_QQJF.WCSNEW.生成主任务; using iWareSda_QQJF.RgvModel; namespace iWareSda_QQJF.SRMTRAN.SrmTranService { // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“ISrmTranService”。 public class SrmTranService : ISrmTranService { static bool isLock = false; int oldHandShake = 0; int oldHandShake2 = 0; List errorString = new List() { "西侧6号出口M30转台安全光栅异常", "西侧7号出口M19转台安全光栅异常", "西侧7号入口M15转台安全光栅异常", "西侧8号出口M12转台安全光栅异常", "东南4#安全门急停触发", "东南4#安全门被开启", "西南5#安全门急停触发", "西南5#安全门被开启", "西侧6号出口M30转台急停触发", "西侧7号出口M19转台急停触发", "西侧7号入口M15转台急停触发", "西侧8号出口M12转台急停触发", "东侧2号口M48输送线急停", "东侧2号口M50输送线急停", "东侧2号口M61输送线急停", "东侧2号口M63输送线急停", "西侧升降台M32急停触发", "冲压东北2号口M48扫码超时", "冲压东南3号口M61扫码超时", "东南4号口M65扫码超时", "西南5号口M32扫码超时", "焊装转台7号口M15扫码超时", "M65输送线上的器具底部导向变形", "M32输送线上的器具底部导向变形", "M15输送线上的器具底部导向变形", "M48输送线上的器具底部导向变形", "M61输送线上的器具底部导向变形", }; //public static List boolList = new List(); /// 获取是否有货入库 /// /// /// /// public List HasTranGoods() { try { if (FormMain.hsltrang2.IsConnected) { List boolList = new List(); int enter1 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].enterR1, "bool")); int enter2 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].enterR2, "bool")); int enter3 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].enterR3, "bool")); int enter4 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].enterR4, "bool")); int enter5 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].enterR5, "bool")); int enter6 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].enterR6, "bool")); boolList.Add(enter1); boolList.Add(enter2); boolList.Add(enter3); boolList.Add(enter4); boolList.Add(enter5); boolList.Add(enter6); return boolList; } return new List(); } catch { return new List(); } } /// /// 获取故障信息 /// /// /// public string GetErrorMsg() { string msg = ""; try { for (int i = 0; i < 27; i++) { bool haveError = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[0].ErrorList[i], "bool")); if (haveError) { msg = msg + errorString[i] + " "; } } return msg; } catch { return msg; } } /// 获取入库错误信息 /// /// /// /// public string GetInErrorMsg(int tranId) { try { return CreateMainTask.InErrorMsg[tranId]; } catch { return ""; } } //public void readHasGood() //{ // try // { // if (FormMain.trang2.IsConnected) // { // int enter1 = Convert.ToInt32(FormMain.trang2.ReadValuePoint(FormMain.tranDb[0].enterR1)); // int enter2 = Convert.ToInt32(FormMain.trang2.ReadValuePoint(FormMain.tranDb[0].enterR2)); // int enter3 = Convert.ToInt32(FormMain.trang2.ReadValuePoint(FormMain.tranDb[0].enterR3)); // int enter4 = Convert.ToInt32(FormMain.trang2.ReadValuePoint(FormMain.tranDb[0].enterR4)); // int enter5 = Convert.ToInt32(FormMain.trang2.ReadValuePoint(FormMain.tranDb[0].enterR5)); // int enter6 = Convert.ToInt32(FormMain.trang2.ReadValuePoint(FormMain.tranDb[0].enterR6)); // boolList = new List(); // boolList.Add(enter1); // boolList.Add(enter2); // boolList.Add(enter3); // boolList.Add(enter4); // boolList.Add(enter5); // boolList.Add(enter6); // } // } // catch // { // } //} /// 获取是否尺寸超标 /// /// /// /// public List ErrorTranGoods() { try { if (FormMain.hsltrang2.IsConnected) { List boolList = new List(); int enter1 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].errorR1, "bool")); int enter2 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].errorR2, "bool")); int enter3 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].errorR3, "bool")); int enter4 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].errorR4, "bool")); int enter5 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].errorR5, "bool")); int enter6 = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].errorR6, "bool")); boolList.Add(enter1); boolList.Add(enter2); boolList.Add(enter3); boolList.Add(enter4); boolList.Add(enter5); boolList.Add(enter6); return boolList; } return new List(); } catch { return new List(); } } /// /// 复位入口到位信号 /// public bool ClearTranGoods(int transId) { try { switch (transId) { case 47: return FormMain.hsltrang2.WriteValuePoint(FormMain.tranDb[0].enterR1, false); case 48: return FormMain.hsltrang2.WriteValuePoint(FormMain.tranDb[0].enterR2, false); case 61: return FormMain.hsltrang2.WriteValuePoint(FormMain.tranDb[0].enterR3, false); case 65: return FormMain.hsltrang2.WriteValuePoint(FormMain.tranDb[0].enterR4, false); case 32: return FormMain.hsltrang2.WriteValuePoint(FormMain.tranDb[0].enterR5, false); case 15: return FormMain.hsltrang2.WriteValuePoint(FormMain.tranDb[0].enterR6, false); default: return false; } } catch { return false; } } /// /// 判断掉线 /// public void GetHeart() { SrmTran_CacheEntity.SrmTrans[0].handShake = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[0].handShakeR, "int")); if (SrmTran_CacheEntity.SrmTrans[0].handShake == oldHandShake) { ////断线重连 //FormMain.hsltrang1.Close(); ////Thread.Sleep(200); //FormMain.hsltrang1.Open(); } oldHandShake = SrmTran_CacheEntity.SrmTrans[0].handShake; //另开连接的心跳 int handShake = Convert.ToInt32(FormMain.hsltrang2.ReadValuePoint(FormMain.tranDb[0].handShakeR, "int")); if (handShake == oldHandShake2) { ////断线重连 //FormMain.trang2.Close(); ////Thread.Sleep(200); //FormMain.trang2.Open(); } oldHandShake2 = handShake; } /// 获取指定输送线信息 /// /// /// /// public string GetSrmConveyorStationInfo(int transPlaceId) { if (transPlaceId < 1 || transPlaceId > 68)//[Editby kejj,20230614] { return "输送线站点号请在1-67之间选择"; } EntitySrmTranView tran = new EntitySrmTranView(); //if (isLock == false) { isLock = true; try { if (FormMain.hsltrang1.IsConnected) { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[transPlaceId - 1].stateStationNOW, transPlaceId); FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[transPlaceId - 1].stateStationNOWBat, transPlaceId); //Thread.Sleep(100);//等待数据更新 int taskId = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].taskIdR, "int")); int endStation = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].endStationR, "int")); bool auto = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].autoR, "int")) == 1 ? true : false; bool state = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].stateERR, "bool")); bool PH1 = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].PH1R, "bool")); bool PH2 = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].PH2R, "bool")); bool PRH = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].PRHR, "bool")); bool PRL = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].PRLR, "bool")); bool goods = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].goodsR, "bool")); int errId = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].errIdR, "int")); int shapeCheck = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].shapeCheckR, "int")); int weihgt = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].weight, "int")); bool wait = Convert.ToBoolean(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].stateWait, "bool")); string Code = ReadCode(transPlaceId); int stationNo = Convert.ToInt32(FormMain.hsltrang1.ReadValuePoint(FormMain.tranDb[transPlaceId - 1].stationNoR, "int"));//放最后保证准确性 //int TaskSendAllow = TranReady(); if (stationNo == transPlaceId) { SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].stationNo = stationNo; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].taskId = taskId; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].endStation = endStation; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].auto = auto; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].state = state; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].PH1 = PH1; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].PH2 = PH2; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].PRH = PRH; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].PRL = PRL; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].goods = goods; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].errId = errId; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].shapeCheck = shapeCheck; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].weihgt = ((double)weihgt) / 10; SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].wait = !wait;//有任务转成是否空闲 SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].Code = Code; } //else //{ // GetSrmConveyorStationInfo(transPlaceId);//重查(嵌套) //} } } catch (Exception ex) { WZ.Useful.Commons.LogTextHelper.WriteLine("tranService", "read1", ex.ToString()); //logtxt.txtWrite("类名:SrmTranService/函数名:GettranInfo(获取输送线信息)/ " + logtxt.oneRow(ex.ToString()), 2); } } isLock = false; //中间显示类转换任务ID try { tran.TranName = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].TranName; tran.stationNo = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].stationNo; tran.deviceTaskId = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].taskId; tran.taskId = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].taskId; tran.endStation = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].endStation; tran.auto = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].auto; tran.err = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].state; tran.wait = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].wait; tran.PH1 = SrmTran_CacheEntity.SrmTrans[0].PH1; tran.PH2 = SrmTran_CacheEntity.SrmTrans[0].PH2; tran.PRH = SrmTran_CacheEntity.SrmTrans[0].PRH; tran.PRL = SrmTran_CacheEntity.SrmTrans[0].PRL; tran.goods = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].goods; tran.errId = SrmTran_CacheEntity.SrmTrans[0].errId; tran.weihgt = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].weihgt; tran.handShake = SrmTran_CacheEntity.SrmTrans[0].handShake; tran.shapeCheck = SrmTran_CacheEntity.SrmTrans[0].shapeCheck; tran.Code = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].Code; tran.TaskSendAllow = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].TaskSendAllow; using (Model edm = new Model()) { if (tran.taskId != 0) { //WZ.Useful.Commons.LogTextHelper.WriteLine("tranService", "read3", tran.taskId.ToString()); TranTask tranTask = edm.TranTask.OrderByDescending(x => x.ID).FirstOrDefault(x => (x.ID % 32767) + 1 == tran.taskId); if (tranTask != null) { tran.taskId = tranTask.TASK_TASK.ID; } } } } catch (Exception e) { WZ.Useful.Commons.LogTextHelper.WriteLine("tranService", "read2", e.ToString()); } return JsonConvert.SerializeObject(tran); } /// /// 获取输送线是否有货 /// /// /// public int GetSrmConveyorStationHasGoods(int transPlaceId) { if (transPlaceId < 1 || transPlaceId > 68)//[Editby kejj,20230614] { return 0; } try { GetSrmConveyorStationInfo(transPlaceId); } catch (Exception ex) { logtxt.txtWrite("类名:SrmTranService/函数名:GetSrmConveyorStationHasGoods(获取输送线是否有货)/ " + logtxt.oneRow(ex.ToString()), 2); } if (SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].stationNo == transPlaceId) { if (SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].goods) { return 1; } else { return 2; } } else { return 0; } } /// /// 条码转意 /// /// public string ReadCode(int transPlaceId) { string result = ""; foreach (var i in FormMain.tranDb[transPlaceId - 1].CodeList) { string word = "" + (char)Convert.ToByte(FormMain.hsltrang1.ReadValuePoint(i, "byte")); if (word == "\r" || word == "\n") { break; } result = result + word; } return result; } /// /// 设备允许下发任务状态 /// /// public bool TranReady(int transPlaceId) { GetSrmConveyorStationInfo(transPlaceId); bool auto = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].auto; bool err = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].state; //bool wait = Convert.ToBoolean(FormMain.trang1.ReadValuePoint(FormMain.tranDb.stateWait)); if (auto && !err) { if (transPlaceId == SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].stationNo) { return true; } } return false; } /// /// 设备空闲 /// /// public bool TranNotUse(int transPlaceId) { GetSrmConveyorStationInfo(transPlaceId); bool auto = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].auto; bool wait = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].wait; if (auto && wait) { if (transPlaceId == SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].stationNo) { return true; } } return false; } /// /// 设备无故障 /// /// public bool TranNoASlert(int transPlaceId) { GetSrmConveyorStationInfo(transPlaceId); bool err = SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].state; if (!err) { if (transPlaceId == SrmTran_CacheEntity.SrmTrans[transPlaceId - 1].stationNo) { return true; } } return false; } /// 发送输送线任务 /// /// 起始编号 /// 目标编号 /// 任务ID /// /// 货物尺寸类型 1-8{1:2910*1310*2245;2:2910*1310*1270;3:1850*1310*2300; /// 4:2720*1260*2450;5:2700*2000*1325;6:2700*2000*1100;7:2900*1400*1250;8:2400*1400*1250} /// public int SendGoodsReady(int startId, int endId, int taskId, int fatherid) { if (startId < 1 || endId < 1 || taskId < 1 || startId > 68 || endId > 68)//[Editby kejj,20230614] { logtxt.txtWrite("类名:SrmTranService/函数名:sendTranTask(发送输送线任务)/ startId:" + startId.ToString() + "endId" + endId.ToString() + "taskId" + taskId.ToString(), 0); return 0; } try { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].startStationW, startId); FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].endStationW, endId); FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].taskIdW, taskId); FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].fathertaskIdW, fatherid); //FormMain.trang1.WriteValuePoint(FormMain.tranDb.goodsTypeW, pallet); logtxt.txtWrite("类名:SrmTranService/函数名:sendTranTask(发送输送线任务)/ startId:" + startId.ToString() + "endId" + endId.ToString() + "taskId" + taskId.ToString(), 1); } catch (Exception ex) { logtxt.txtWrite("类名:SrmTranService/函数名:sendTranTask(发送输送线任务)/ startId:" + startId.ToString() + "endId" + endId.ToString() + "taskId" + taskId.ToString() + logtxt.oneRow(ex.ToString()), 2); return 2; } return 1; } /// 发送尺寸给输送线 /// /// /// /// /// /// /// public bool SendGoodsSize(int transId, double length, double width, double height) { //检测站点号是否在编号范围内 if (transId < 1 || transId > 68)//[Editby kejj,20230614] { return false; } string goodSize = "A" + length.ToString() + "A" + width.ToString() + "A" + height.ToString(); try { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].startStationW, transId); int GoodsType = (int)Enum.Parse(typeof(EnumType.ETranGoodSize), goodSize); if (GoodsType < 1 || GoodsType > 8) { logtxt.txtWrite("类名:SrmTranService/函数名:SendGoodsSize(发送货物尺寸)失败/ startID:" + transId.ToString() + goodSize , 0); return false; } FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].goodsTypeW, GoodsType); logtxt.txtWrite("类名:SrmTranService/函数名:SendGoodsSize(发送货物尺寸)成功/ startID:" + transId.ToString() + goodSize , 1); } catch (Exception) { logtxt.txtWrite("类名:SrmTranService/函数名:SendGoodsSize(发送货物尺寸)失败/ startID:" + transId.ToString() + "参数" + goodSize , 2); return false; } return true; } /// /// 发送输送线检测规格 /// /// /// /// public bool SendGoodsType(int transId, int palletType) { //检测站点号是否在编号范围内 if (transId < 1 || transId > 68)//[Editby kejj,20230614] { return false; } try { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].startStationW, transId); if (palletType < 1 || palletType > 13) { logtxt.txtWrite("类名:SrmTranService/函数名:SendGoodsSize(发送货物尺寸)失败/ startID:" + transId.ToString() + palletType , 0); return false; } if (FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[0].goodsTypeW, palletType)) { logtxt.txtWrite("类名:SrmTranService/函数名:SendGoodsSize(发送货物尺寸)成功/ startID:" + transId.ToString() + palletType , 1); } else { logtxt.txtWrite("类名:SrmTranService/函数名:SendGoodsSize(发送货物尺寸)失败/ startID:" + transId.ToString() + "参数" + palletType , 2); return false; } } catch (Exception) { logtxt.txtWrite("类名:SrmTranService/函数名:SendGoodsSize(发送货物尺寸)失败/ startID:" + transId.ToString() + "参数" + palletType , 2); return false; } return true; } /// 发送重量是否OK /// /// /// /// /// public bool SendWeightOk(int transId, bool isOk) { return true; } /// 查询重量 返回-1 参数错误,返回-2异常 返回0 数据没赋值 /// /// /// /// public string GetGoodsWeight(int transId) { GetSrmConveyorStationInfo(transId); string code = SrmTran_CacheEntity.SrmTrans[transId - 1].Code; if (transId < 1 || transId > 68)//[Editby kejj,20230614] { logtxt.txtWrite("类名:SrmTranService/函数名:GetGoodsWeight(重量查询)失败/ transId:" + transId.ToString(), 0); return code + "," + "-1"; //return "P71-1767-001," + -1; } double weight = 0; try { //FormMain.trang1.WriteValuePoint(FormMain.tranDb.stateStationNOW, transId); weight = SrmTran_CacheEntity.SrmTrans[transId - 1].weihgt; logtxt.txtWrite("类名:SrmTranService/函数名:GetGoodsWeight(重量查询)/ transId:" + transId.ToString(), 1); } catch (Exception) { logtxt.txtWrite("类名:SrmTranService/函数名:GetGoodsWeight(重量查询失败)/ transId:" + transId.ToString(), 2); return code + "," + "-2"; //return "P71-1767-001," + -2; } return code + "," + weight; //return "P71-1767-001," + weight; } /// 根据设备号查询货物条形码 /// /// /// /// public string GetGoodsBarcode(int transId) { return "abd1212"; } /// 查询外观是否合格 /// /// /// /// public int IsPassed(int transId) { //if (transId < 1 || transId > 67) //{ // logtxt.txtWrite("类名:SrmTranService/函数名:IsPassed(外观检测参数违规)/ transId:" + transId.ToString(), 0); // return 0; //} //int weight = 0; //try //{ // FormMain.trang1.WriteValuePoint(FormMain.tranDb[transId - 1].stateStationNOWBat, transId); // int weightIsOk = SrmTran_CacheEntity.SrmTrans[0].shapeCheck; // if (weightIsOk==2) // { // logtxt.txtWrite("类名:SrmTranService/函数名:IsPassed(外观检测)/ transId:" + transId.ToString(), 1); // weight=2; // } // else if (weightIsOk == 1) // { weight = 1; } //} //catch (Exception) //{ // logtxt.txtWrite("类名:SrmTranService/函数名:IsPassed(外观检测异常)/ transId:" + transId.ToString(), 2); // return 0; //} //return weight; List errorList = ErrorTranGoods(); try { switch (transId) { case 47: return errorList[0]; case 48: return errorList[1]; case 61: return errorList[2]; case 65: return errorList[3]; case 32: return errorList[4]; case 15: return errorList[5]; default: return 0; } } catch { return 0; } } /// /// 获取任务号 /// /// /// public int FinishTask(int transId) { try { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[transId - 1].stateStationNOW, transId); FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[transId - 1].stateStationNOWBat, transId); int taskid = SrmTran_CacheEntity.SrmTrans[transId - 1].taskId; return taskid; } catch { logtxt.txtWrite("类名:SrmTranService/函数名:FinishTask(获取任务号)/ transId:" + transId.ToString(), 2); } return 0; } /// 急停 /// /// /// public int SendTranStop(int transId) { if (transId < 1 || transId > 100) { logtxt.txtWrite("类名:SrmTranService/函数名:SendTranStop(输送线急停)/transId:" + transId.ToString(), 0); return 0; } try { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[transId - 1].stopW, 1); logtxt.txtWrite("类名:SrmTranService/函数名:SendTranStop(输送线急停)/transId:" + transId.ToString(), 1); } catch (Exception ex) { logtxt.txtWrite("类名:SrmTranService/函数名:SendTranStop(输送线急停)/transId:" + transId.ToString() + logtxt.oneRow(ex.ToString()), 2); return 0; } return 1; } /// 删除任务 /// /// /// public int SendTranDelete(int transId) { if (transId < 1 || transId > 100) { logtxt.txtWrite("类名:SrmTranService/函数名:SendTranDelete(输送线急停)/transId:" + transId.ToString(), 0); return 0; } try { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[transId - 1].deleteW, 1); logtxt.txtWrite("类名:SrmTranService/函数名:SendTranDelete(输送线急停)/transId:" + transId.ToString(), 1); } catch (Exception ex) { logtxt.txtWrite("类名:SrmTranService/函数名:SendTranDelete(输送线急停)/transId:" + transId.ToString() + logtxt.oneRow(ex.ToString()), 2); return 0; } return 1; } /// 解警 /// /// /// public int SendTranReset(int transId) { if (transId < 1 || transId > 100) { logtxt.txtWrite("类名:SrmTranService/函数名:SendTranReset(输送线急停)/transId:" + transId.ToString(), 0); return 0; } try { FormMain.hsltrang1.WriteValuePoint(FormMain.tranDb[transId - 1].resetW, 1); logtxt.txtWrite("类名:SrmTranService/函数名:SendTranReset(输送线急停)/transId:" + transId.ToString(), 1); } catch (Exception ex) { logtxt.txtWrite("类名:SrmTranService/函数名:SendTranReset(输送线急停)/transId:" + transId.ToString() + logtxt.oneRow(ex.ToString()), 2); return 0; } return 1; } ///// ///// 关联删除 ///// ///// ///// //public int SendTranDeleteAll(int tranID) //{ // List tranDoingId = new List(); // List rgvDoingId = new List(); // List srmDoingId = new List(); // if (SrmTran_CacheEntity.SrmTrans[tranID - 1].stationNo == tranID)//校验 // { // int tranTaskId = SrmTran_CacheEntity.SrmTrans[tranID - 1].taskId; // //删除未执行的任务和删除已执行的任务 // bool result = WCS.Helper.DeleteAllByTranTaskId(tranTaskId, out tranDoingId, out rgvDoingId, out srmDoingId); // //删除设备任务 // foreach (var i in rgvDoingId) // { // RGV.RgvService.RgvService srv = new RGV.RgvService.RgvService(); // srv.SendRgvDelete(i); // } // foreach (var i in tranDoingId) // { // SRMTRAN.SrmTranService.SrmTranService srv = new SRMTRAN.SrmTranService.SrmTranService(); // srv.SendTranDelete(i); // } // foreach (var i in srmDoingId) // { // SRM.SrmService.SrmService srv = new SRM.SrmService.SrmService(); // srv.SendSrmDelete(i); // } // if (result) // { // return 1; // } // else // { // return 0; // } // } // else // { // return 2; // } //} /// /// 解锁占用及中转台 /// /// public bool UnlockTran(int east) { WZ.Useful.Commons.LogTextHelper.WriteLine("解锁输送线", "东/西", east.ToString()); using (Model edm = new Model()) { //判断是否安全位置 if (east == 1) { if (Rgv_CacheEntity.Rgvs[2].posation < 50000 || Rgv_CacheEntity.Rgvs[3].posation > 37000) { return false; } } else { if (Rgv_CacheEntity.Rgvs[0].posation < 50000 || Rgv_CacheEntity.Rgvs[1].posation > 37000) { return false; } } List lockList = edm.TranLock.Where(x => x.ISEAST == east).ToList(); foreach (var i in lockList) { i.ISLOCK = 0; //if (i.TRANID == 52 || i.TRANID == 17) //{ // i.ISFULL = 0; //} } if (edm.SaveChanges() > 0) { return true; } else { return false; } } } /// /// 解锁占用及中转台 /// /// public bool UnFullTran(int east) { WZ.Useful.Commons.LogTextHelper.WriteLine("解锁中转台", "东/西", east.ToString()); using (Model edm = new Model()) { int tranid = 0; if (east == 1) { tranid = 52; } else { tranid = 17; } TranLock fullTran = edm.TranLock.FirstOrDefault(x => x.TRANID == tranid); fullTran.ISFULL = 0; if (edm.SaveChanges() > 0) { return true; } else { return false; } } } } }