using System.Collections.Generic;
using System.ComponentModel;
using VirtualConveyor.Cache.Entity;
using VirtualConveyor.Common.Entity;
using VirtualConveyor.Conveyor.EnumType;
using System;
using System.Linq;
namespace VirtualConveyor.Conveyor.Entity
{
public class GateEntity: BindableBase
{
///
/// 拥有更多该输送点的输送机
///
public ConveyorEntity Conveyor { get; private set; }
///
/// 端口名称
///
public string Name { get; private set; }
///
/// 4允许放货
///
private bool wPutDownLicense = true;
public bool WPutDownLicense
{
get { return wPutDownLicense; }
set { SetProperty(ref wPutDownLicense, value); }
}
///
/// 4允许取货
///
private bool wPickUpLicense = true;
public bool WPickUpLicense
{
get { return wPickUpLicense; }
set { SetProperty(ref wPickUpLicense, value); }
}
///
/// 到位信号
///
private bool wOccupied = true;
public bool WOccupied
{
get { return wOccupied; }
set { SetProperty(ref wOccupied, value); }
}
///
/// 7滚动开始
///
private bool wStartRotation = true;
public bool WStartRotation
{
get { return wStartRotation; }
set { SetProperty(ref wStartRotation, value); }
}
///
/// 8手动允许取货(输送机空闲)
///
private bool wPickUpLicenseManual = true;
public bool WPickUpLicenseManual
{
get { return wPickUpLicenseManual; }
set { SetProperty(ref wPickUpLicenseManual, value); }
}
///
/// 9滚料完成
///
private bool wLayingOffComplete = true;
public bool WLayingOffComplete
{
get { return wLayingOffComplete; }
set { SetProperty(ref wLayingOffComplete, value); }
}
///
/// 10人工抽样结果
///
private int wCheckResult = -1;
public int WCheckResult
{
get { return wCheckResult; }
set { SetProperty(ref wCheckResult, value); }
}
///
/// 任务号
///
private string wtaskId;
public string WTaskId
{
get { return wtaskId; }
set { SetProperty(ref wtaskId, value); }
}
///
/// 任务号
///
private string taskId;
public string TaskId
{
get { return taskId; }
set { SetProperty(ref taskId, value); }
}
///
/// 5放货完成
///
private bool putSymbol;
public bool PutSymbol
{
get { return putSymbol; }
set { SetProperty(ref putSymbol, value); }
}
///
/// 6取货完成
///
private bool pickSymbol;
public bool PickSymbol
{
get { return pickSymbol; }
set { SetProperty(ref pickSymbol, value); }
}
///
/// 7手动放货完成
///
private bool putSymbolManual;
public bool PutSymbolManual
{
get { return putSymbolManual; }
set { SetProperty(ref putSymbolManual, value); }
}
///
/// WCS需要写入的OPC地址
///
public OpcWriteItem OpcWriteItems { get; set; }
///
/// WCS需要读取的OPC地址
///
public OpcReadItem OpcReadItems { get; set; }
private bool flag = false;
///
/// 构造函数
///
/// 调用该货口的输送机
public GateEntity(ConveyorEntity conveyor,string name)
{
this.Conveyor = conveyor;
this.Name = name;
switch(name)
{
//输送机Conveyor1
//起始点
case "gate11":
OpcReadItems = new OpcReadItem
{
TaskId = "S7:[@LOCALSERVER]DB1,STRING164.254", //任务号
PutSymbol = "S7:[@LOCALSERVER]DB1,X682.0",//放货完成
PutSymbolManual = "S7:[@LOCALSERVER]DB1,X682.2"//手动放货完成
};
OpcWriteItems = new OpcWriteItem
{
PutDownLicense = "S7:[@LOCALSERVER]DB1,X684.0",//允许放货
Occupied = "S7:[@LOCALSERVER]DB1,X684.1",//到位信号
StartRotation = "S7:[@LOCALSERVER]DB1,X688.0",//滚动开始
PickUpLicenseManual = "S7:[@LOCALSERVER]DB1,X688.1"//允许手动放货
};
break;
//目标点立库入库口
case "gate12":
OpcReadItems = new OpcReadItem
{
PickSymbol = "S7:[@LOCALSERVER]DB1,X952.1"//取货完成
};
OpcWriteItems = new OpcWriteItem
{
TaskId = "S7:[@LOCALSERVER]DB1,STRING164.254", //任务号
PickUpLicense = "S7:[@LOCALSERVER]DB1,X1466.0",//允许取货
Occupied = "S7:[@LOCALSERVER]DB1,X1466.1",//到位信号
CheckResult = "S7:[@LOCALSERVER]DB1,INT1988"//人工检验结果
};
break;
//输送机conveyor2
//起始点立库出库口
case "gate21":
OpcReadItems = new OpcReadItem
{
TaskId = "S7:[@LOCALSERVER]DB1,STRING1990.254", //任务号
PutSymbol = "S7:[@LOCALSERVER]DB1,X2250.0",//放货完成 S7:[@LOCALSERVER]DB1,X2250.1
};
OpcWriteItems = new OpcWriteItem
{
PutDownLicense = "S7:[@LOCALSERVER]DB1,X2508.1",//允许放货
Occupied = "S7:[@LOCALSERVER]DB1,X2508.0",//到位信号
StartRotation = "S7:[@LOCALSERVER]DB1,X2508.2",//滚动开始
};
break;
//目标点
case "gate22":
OpcReadItems = new OpcReadItem
{
PickSymbol = "S7:[@LOCALSERVER]DB1,X2766.0"//取货完成
};
OpcWriteItems = new OpcWriteItem
{
TaskId = "S7:[@LOCALSERVER]DB1,STRING1990.254", //任务号
PickUpLicense = "S7:[@LOCALSERVER]DB1,X3018.1",//允许取货
Occupied = "S7:[@LOCALSERVER]DB1,X3018.0",//到位信号
};
break;
}
this.PropertyChanged += new PropertyChangedEventHandler(OnPropertyChanged);
var items = new List();
var values = new List