using SqlSugar;
namespace HH.WCS.Mobox3.RiDong.models
{
///
/// 线体实体类
///
[SugarTable("TN_ConveyorLinesInfo")]
public class ConveyorLinesInfo : BaseModel
{
///
/// 线体编号
///
public string CODE { get; set; }
///
/// 用途
///
public string PURPOSE { get; set; }
///
/// 目的地
///
public int DEVICESIGN { get; set; }
///
/// IP地址
///
public string ADDRESS { get; set; }
///
/// 当前货位信息
///
public string LOCATION { get; set; }
///
/// 写入起始地址(偏移量)
///
public int WRITEADDR { get; set; }
///
/// 读取起始地址(偏移量)
///
public int READADDR { get; set; }
///
/// 取货信号
/// 0 表示没有请求
/// plc写1 plc读取到此处线体的托盘号,写1,代表货已经到达此处
/// wcs写2 wcs循环查询当前线体中间表信息是否为1,如果为1,表示当前货物到达线体,此时wcs完成该托盘的输送线任务以及推送agv任务,推送完后写2
/// wcs写3 agv申请取货时,往该线体写3
/// plc写4 plc读取到信号为3时,代表agv在申请取货,此时如果输送线是可取状态写4
/// wcs写5 wcs读到输送线状态是4的情况下,取货,货物取货完成后写5
/// plc写0 agv取货完成后,读到信号为5,此时给输送线取货完成信号并清理管道
///
public int LOADSTATE { get; set; }
///
/// 放货信号
/// 0 表示没有请求
/// wcs写1 agv申请放货,往中间表写1
/// plc写2 plc读到信号为1时,判断自身是否可以放货,如果可以写2
/// wcs写3 输送线允许卸货,卸货完成后给输送线写3
/// plc写0 读取信号为3,表示卸货完成,此时给输送线写完成信号以及其他数据,中间表更改为0
///
public int UNLOADSTATE { get; set; }
///
/// 任务是否创建
/// 0:创建
/// 1:未创建
///
public int TASKCREATE { get; set; } = 0;
///
/// 任务完成信号
/// 0 没有请求
/// 1 托盘到达终点,写1,wcs读到1后修改对应的任务为完成状态
/// 2 异常状态,表明wcs给的托盘和实际的不同,此时怎么处理
///
public int TASKFINISH { get; set; } = 0;
///
/// 开关门信号
/// 0 没有请求
/// wcs写1 agv申请开哪个门,就给对应的门中间表写1
/// plc写2 plc读取到1后,通知开门,然后中间表写2
/// plc写3 plc一直循环读取门的状态,当门的状态为开门2的时候,写3通知小车进去
/// wcs写4 agv进入后发1025信号,通知关门,写4
/// plc写0 plc读取到关门信号后,写0并关门
///
public int CONTROLDOOR { get; set; }
///
/// 托盘类型
///
public string CONTAINERTYPE { get; set; }
///
/// 条形码
///
public string BARCODE { get; set; }
///
/// 重量
///
public float WEIGHT { get; set; }
///
/// 是否启用(默认启用,为1)
///
public int ENABLE { get; set; } = 1;
///
/// 出库方向
///
public int DIRECTION { get; set; }
///
/// 门禁信号
///
public int ACCESS { get; set; }
///
/// 获取出库方向
///
///
///
public static int GetDirection(string dir, string type)
{
switch (dir)
{
case "产线一":
return 1;
case "产线二":
return 2;
case "产线三":
return 3;
case "产线四":
return 4;
case "国外线":
switch (type)
{
case "整托出库":
return 5;
case "分拣出库":
return 7;
default:
return 0;
}
case "国内线":
switch (type)
{
case "整托出库":
return 6;
case "分拣出库":
return 8;
default:
return 0;
}
default:
return 0;
}
}
}
}