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<string> errorString = new List<string>()
|
{
|
"西侧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<int> boolList = new List<int>();
|
|
/// <summary>获取是否有货入库
|
///
|
/// </summary>
|
/// <param name="transPlaceId"></param>
|
/// <returns></returns>
|
public List<int> HasTranGoods()
|
{
|
try
|
{
|
if (FormMain.hsltrang2.IsConnected)
|
{
|
List<int> boolList = new List<int>();
|
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<int>();
|
|
}
|
catch
|
{
|
return new List<int>();
|
}
|
}
|
|
/// <summary>
|
/// 获取故障信息
|
/// </summary>
|
/// <param name="transPlaceId"></param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
|
/// <summary>获取入库错误信息
|
///
|
/// </summary>
|
/// <param name="transPlaceId"></param>
|
/// <returns></returns>
|
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<int>();
|
// boolList.Add(enter1);
|
// boolList.Add(enter2);
|
// boolList.Add(enter3);
|
// boolList.Add(enter4);
|
// boolList.Add(enter5);
|
// boolList.Add(enter6);
|
|
// }
|
|
// }
|
// catch
|
// {
|
// }
|
//}
|
|
/// <summary>获取是否尺寸超标
|
///
|
/// </summary>
|
/// <param name="transPlaceId"></param>
|
/// <returns></returns>
|
public List<int> ErrorTranGoods()
|
{
|
try
|
{
|
if (FormMain.hsltrang2.IsConnected)
|
{
|
List<int> boolList = new List<int>();
|
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<int>();
|
|
}
|
catch
|
{
|
return new List<int>();
|
}
|
}
|
|
/// <summary>
|
/// 复位入口到位信号
|
/// </summary>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 判断掉线
|
/// </summary>
|
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;
|
}
|
|
/// <summary>获取指定输送线信息
|
///
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 获取输送线是否有货
|
/// </summary>
|
/// <param name="transPlaceId"></param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
|
|
/// <summary>
|
/// 条码转意
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 设备允许下发任务状态
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 设备空闲
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 设备无故障
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
|
|
/// <summary>发送输送线任务
|
/// </summary>
|
/// <param name="startID"></param>起始编号
|
/// <param name="endID"></param>目标编号
|
/// <param name="taskID"></param>任务ID
|
/// /// <param name="goodsType"></param>货物尺寸类型 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}
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>发送尺寸给输送线
|
///
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <param name="length"></param>
|
/// <param name="width"></param>
|
/// <param name="height"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 发送输送线检测规格
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <param name="palletType"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
|
/// <summary>发送重量是否OK
|
///
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <param name="isOk"></param>
|
/// <returns></returns>
|
public bool SendWeightOk(int transId, bool isOk)
|
{
|
return true;
|
}
|
/// <summary>查询重量 返回-1 参数错误,返回-2异常 返回0 数据没赋值
|
///
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>根据设备号查询货物条形码
|
///
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <returns></returns>
|
public string GetGoodsBarcode(int transId)
|
{
|
|
return "abd1212";
|
}
|
/// <summary>查询外观是否合格
|
///
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <returns></returns>
|
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<int> 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;
|
}
|
|
}
|
|
/// <summary>
|
/// 获取任务号
|
/// </summary>
|
/// <param name="transId"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>急停
|
///
|
/// </summary>
|
/// <param name="rgvId"></param>
|
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;
|
}
|
|
/// <summary>删除任务
|
///
|
/// </summary>
|
/// <param name="rgvId"></param>
|
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;
|
}
|
|
/// <summary>解警
|
///
|
/// </summary>
|
/// <param name="rgvId"></param>
|
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;
|
}
|
|
|
///// <summary>
|
///// 关联删除
|
///// </summary>
|
///// <param name="tranID"></param>
|
///// <returns></returns>
|
//public int SendTranDeleteAll(int tranID)
|
//{
|
// List<int> tranDoingId = new List<int>();
|
// List<int> rgvDoingId = new List<int>();
|
// List<int> srmDoingId = new List<int>();
|
|
// 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;
|
// }
|
//}
|
|
/// <summary>
|
/// 解锁占用及中转台
|
/// </summary>
|
/// <returns></returns>
|
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<TranLock> 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;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 解锁占用及中转台
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
}
|
}
|
|
}
|
}
|